3
0
Fork 0
forked from suyu/suyu

macro_jit_x64: Remove NEXT_PARAMETER

Not required, as PARAMETERS can just be incremented directly.
This commit is contained in:
MerryMage 2020-06-15 21:16:47 +01:00
parent 1799f4e774
commit cf0aad7d6a

View file

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