From e842a6614a83845b784f6ab916467425ab2530f0 Mon Sep 17 00:00:00 2001 From: Ben Vanik Date: Sat, 19 Oct 2013 19:59:09 -0700 Subject: [PATCH] Fixing LR argument for indirect branches. --- src/xenia/cpu/global_exports.cc | 1 - src/xenia/cpu/x64/x64_emitter.cc | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/src/xenia/cpu/global_exports.cc b/src/xenia/cpu/global_exports.cc index 19b5e9aeb..eb9d83c5c 100644 --- a/src/xenia/cpu/global_exports.cc +++ b/src/xenia/cpu/global_exports.cc @@ -36,7 +36,6 @@ void _cdecl XeTrap( void* _cdecl XeIndirectBranch( xe_ppc_state_t* state, uint64_t target, uint64_t br_ia) { // TODO(benvanik): track this statistic - this path is very slow! - XEASSERT(target != 0xBEBEBEBE); Processor* processor = state->processor; void* target_ptr = processor->GetFunctionPointer((uint32_t)target); // target_ptr will be null when the given target is not a function. diff --git a/src/xenia/cpu/x64/x64_emitter.cc b/src/xenia/cpu/x64/x64_emitter.cc index b9c6846b5..276d49d38 100644 --- a/src/xenia/cpu/x64/x64_emitter.cc +++ b/src/xenia/cpu/x64/x64_emitter.cc @@ -1131,6 +1131,7 @@ int X64Emitter::GenerateIndirectionBranch(uint32_t cia, GpVar& target, // Call target. // void fn(ppc_state*, uint64_t) + c.mov(arg2, imm(cia + 4)); call = c.call(target_ptr); call->setComment("Indirection branch"); call->setPrototype(kX86FuncConvDefault,