[AArch64] Add support for JitRegister to the dispatcher and paired loadstores
This commit is contained in:
parent
eefe710571
commit
c5a7243eb2
|
@ -3,6 +3,7 @@
|
||||||
// Refer to the license.txt file included.
|
// Refer to the license.txt file included.
|
||||||
|
|
||||||
#include "Common/Arm64Emitter.h"
|
#include "Common/Arm64Emitter.h"
|
||||||
|
#include "Common/JitRegister.h"
|
||||||
|
|
||||||
#include "Core/PowerPC/PowerPC.h"
|
#include "Core/PowerPC/PowerPC.h"
|
||||||
#include "Core/PowerPC/JitArm64/Jit.h"
|
#include "Core/PowerPC/JitArm64/Jit.h"
|
||||||
|
@ -94,6 +95,8 @@ void JitArm64AsmRoutineManager::Generate()
|
||||||
ABI_PopRegisters(regs_to_save);
|
ABI_PopRegisters(regs_to_save);
|
||||||
RET(X30);
|
RET(X30);
|
||||||
|
|
||||||
|
JitRegister::Register(enterCode, GetCodePtr(), "JIT_Dispatcher");
|
||||||
|
|
||||||
GenerateCommon();
|
GenerateCommon();
|
||||||
|
|
||||||
FlushIcache();
|
FlushIcache();
|
||||||
|
@ -112,6 +115,7 @@ void JitArm64AsmRoutineManager::GenerateCommon()
|
||||||
ARM64Reg scale_reg = X0;
|
ARM64Reg scale_reg = X0;
|
||||||
ARM64FloatEmitter float_emit(this);
|
ARM64FloatEmitter float_emit(this);
|
||||||
|
|
||||||
|
const u8* start = GetCodePtr();
|
||||||
const u8* loadPairedIllegal = GetCodePtr();
|
const u8* loadPairedIllegal = GetCodePtr();
|
||||||
BRK(100);
|
BRK(100);
|
||||||
const u8* loadPairedFloatTwo = GetCodePtr();
|
const u8* loadPairedFloatTwo = GetCodePtr();
|
||||||
|
@ -242,6 +246,8 @@ void JitArm64AsmRoutineManager::GenerateCommon()
|
||||||
RET(X30);
|
RET(X30);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
JitRegister::Register(start, GetCodePtr(), "JIT_QuantizedLoad");
|
||||||
|
|
||||||
pairedLoadQuantized = reinterpret_cast<const u8**>(const_cast<u8*>(AlignCode16()));
|
pairedLoadQuantized = reinterpret_cast<const u8**>(const_cast<u8*>(AlignCode16()));
|
||||||
ReserveCodeSpace(16 * sizeof(u8*));
|
ReserveCodeSpace(16 * sizeof(u8*));
|
||||||
|
|
||||||
|
@ -264,6 +270,7 @@ void JitArm64AsmRoutineManager::GenerateCommon()
|
||||||
pairedLoadQuantized[15] = loadPairedS16One;
|
pairedLoadQuantized[15] = loadPairedS16One;
|
||||||
|
|
||||||
// Stores
|
// Stores
|
||||||
|
start = GetCodePtr();
|
||||||
const u8* storePairedIllegal = GetCodePtr();
|
const u8* storePairedIllegal = GetCodePtr();
|
||||||
BRK(0x101);
|
BRK(0x101);
|
||||||
const u8* storePairedFloat;
|
const u8* storePairedFloat;
|
||||||
|
@ -519,6 +526,8 @@ void JitArm64AsmRoutineManager::GenerateCommon()
|
||||||
BR(X2);
|
BR(X2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
JitRegister::Register(start, GetCodePtr(), "JIT_QuantizedStore");
|
||||||
|
|
||||||
pairedStoreQuantized = reinterpret_cast<const u8**>(const_cast<u8*>(AlignCode16()));
|
pairedStoreQuantized = reinterpret_cast<const u8**>(const_cast<u8*>(AlignCode16()));
|
||||||
ReserveCodeSpace(32 * sizeof(u8*));
|
ReserveCodeSpace(32 * sizeof(u8*));
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue