Very basic, super slow, nasty indirection.

This commit is contained in:
Ben Vanik
2013-05-25 20:32:58 -07:00
parent 2986a0be82
commit 4073028188
11 changed files with 113 additions and 63 deletions

View File

@@ -9,6 +9,7 @@
#include <xenia/cpu/global_exports.h>
#include <xenia/cpu/processor.h>
#include <xenia/cpu/sdb.h>
#include <xenia/cpu/ppc/instr.h>
#include <xenia/cpu/ppc/state.h>
@@ -30,11 +31,12 @@ void _cdecl XeTrap(
XEASSERTALWAYS();
}
void _cdecl XeIndirectBranch(
void* _cdecl XeIndirectBranch(
xe_ppc_state_t* state, uint64_t target, uint64_t br_ia) {
XELOGCPU("INDIRECT BRANCH %.8X -> %.8X",
(uint32_t)br_ia, (uint32_t)target);
XEASSERTALWAYS();
// TODO(benvanik): track this statistic - this path is very slow!
Processor* processor = (Processor*)state->processor;
void* target_ptr = processor->GetFunctionPointer((uint32_t)target);
return target_ptr;
}
void _cdecl XeInvalidInstruction(