|
|
|
@ -17,7 +17,6 @@ namespace Tegra { |
|
|
|
static const Xbyak::Reg64 STATE = Xbyak::util::rbx; |
|
|
|
static const Xbyak::Reg32 RESULT = Xbyak::util::ebp; |
|
|
|
static const Xbyak::Reg64 PARAMETERS = Xbyak::util::r12; |
|
|
|
static const Xbyak::Reg64 NEXT_PARAMETER = Xbyak::util::r13; |
|
|
|
static const Xbyak::Reg32 METHOD_ADDRESS = Xbyak::util::r14d; |
|
|
|
static const Xbyak::Reg64 BRANCH_HOLDER = Xbyak::util::r15; |
|
|
|
|
|
|
|
@ -25,7 +24,6 @@ static const std::bitset<32> PERSISTENT_REGISTERS = Common::X64::BuildRegSet({ |
|
|
|
STATE, |
|
|
|
RESULT, |
|
|
|
PARAMETERS, |
|
|
|
NEXT_PARAMETER, |
|
|
|
METHOD_ADDRESS, |
|
|
|
BRANCH_HOLDER, |
|
|
|
}); |
|
|
|
@ -422,7 +420,6 @@ void MacroJITx64Impl::Compile() { |
|
|
|
mov(PARAMETERS, Common::X64::ABI_PARAM2); |
|
|
|
xor_(RESULT, RESULT); |
|
|
|
xor_(METHOD_ADDRESS, METHOD_ADDRESS); |
|
|
|
xor_(NEXT_PARAMETER, NEXT_PARAMETER); |
|
|
|
xor_(BRANCH_HOLDER, BRANCH_HOLDER); |
|
|
|
|
|
|
|
mov(dword[STATE + offsetof(JITState, registers) + 4], Compile_FetchParameter()); |
|
|
|
@ -529,8 +526,8 @@ bool MacroJITx64Impl::Compile_NextInstruction() { |
|
|
|
} |
|
|
|
|
|
|
|
Xbyak::Reg32 Tegra::MacroJITx64Impl::Compile_FetchParameter() { |
|
|
|
mov(eax, dword[PARAMETERS + NEXT_PARAMETER * sizeof(u32)]); |
|
|
|
inc(NEXT_PARAMETER); |
|
|
|
mov(eax, dword[PARAMETERS]); |
|
|
|
add(PARAMETERS, sizeof(u32)); |
|
|
|
return eax; |
|
|
|
} |
|
|
|
|
|
|
|
|