Breaking on indirect branches.

This commit is contained in:
Ben Vanik 2013-05-24 18:34:08 -07:00
parent 692f85ed4f
commit 2ab01af0bd
1 changed files with 5 additions and 1 deletions

View File

@ -651,8 +651,9 @@ int X64Emitter::CallFunction(FunctionSymbol* target_symbol,
c.ret(); c.ret();
#endif // ASMJIT_WINDOWS #endif // ASMJIT_WINDOWS
} else { } else {
#endif #else
{ {
#endif // tail call disable
// void fn(ppc_state*, uint64_t) // void fn(ppc_state*, uint64_t)
X86CompilerFuncCall* call = c.call(target_ptr); X86CompilerFuncCall* call = c.call(target_ptr);
call->setComment(target_symbol->name()); call->setComment(target_symbol->name());
@ -818,6 +819,8 @@ void X64Emitter::TraceBranch(uint32_t cia) {
int X64Emitter::GenerateIndirectionBranch(uint32_t cia, GpVar& target, int X64Emitter::GenerateIndirectionBranch(uint32_t cia, GpVar& target,
bool lk, bool likely_local) { bool lk, bool likely_local) {
X86Compiler& c = compiler_;
// This function is called by the control emitters when they know that an // This function is called by the control emitters when they know that an
// indirect branch is required. // indirect branch is required.
// It first tries to see if the branch is to an address within the function // It first tries to see if the branch is to an address within the function
@ -827,6 +830,7 @@ int X64Emitter::GenerateIndirectionBranch(uint32_t cia, GpVar& target,
// TODO(benvanik): port indirection. // TODO(benvanik): port indirection.
//XEASSERTALWAYS(); //XEASSERTALWAYS();
c.int3();
// BasicBlock* next_block = GetNextBasicBlock(); // BasicBlock* next_block = GetNextBasicBlock();