ARM64: Also save FP registers around the JIT dispatcher loop

This commit is contained in:
Henrik Rydgard 2015-06-14 13:03:18 +02:00
parent 2c05334d47
commit e848247f88
2 changed files with 3 additions and 5 deletions

View File

@ -96,10 +96,9 @@ void Arm64Jit::GenerateFixedCode() {
enterCode = AlignCode16();
BitSet32 regs_to_save(Arm64Gen::ALL_CALLEE_SAVED);
enterCode = GetCodePtr();
BitSet32 regs_to_save_fp(Arm64Gen::ALL_CALLEE_SAVED_FP);
ABI_PushRegisters(regs_to_save);
// TODO: Also push D8-D15, the fp registers we need to save.
fp.ABI_PushRegisters(regs_to_save_fp);
// Fixed registers, these are always kept when in Jit context.
// R8 is used to hold flags during delay slots. Not always needed.
@ -198,6 +197,7 @@ void Arm64Jit::GenerateFixedCode() {
SaveDowncount();
RestoreRoundingMode(true);
fp.ABI_PopRegisters(regs_to_save_fp);
ABI_PopRegisters(regs_to_save);
RET();

View File

@ -138,8 +138,6 @@ JittedVertexDecoder VertexDecoderJitCache::Compile(const VertexDecoder &dec) {
const u8 *start = AlignCode16();
// TODO: Also push D8-D15, the fp registers we need to save.
bool prescaleStep = false;
bool skinning = false;