bool jit_fallback(PPCEmuAssembler& a, Instruction instr) { auto data = gInstructionTable.decode(instr); auto fptr = cpu::interpreter::getInstructionHandler(data->id); if (!fptr) { throw; } if (TRACK_FALLBACK_CALLS) { a.mov(a.zax, reinterpret_cast<intptr_t>(&sFallbackCalls[static_cast<uint32_t>(data->id)])); a.lock(); a.inc(asmjit::X86Mem(a.zax, 0)); } a.mov(a.zcx, a.state); a.mov(a.edx, (uint32_t)instr); a.call(asmjit::Ptr(fptr)); return true; }