mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2024-10-08 00:03:36 +00:00
[AArch64] Minor performance improvements to paired stores.
We can combine these two ST1 calls in to a single ST1 call. Saves a few cycles in paired stores
This commit is contained in:
parent
235f6c2445
commit
631c8a981e
@ -273,8 +273,7 @@ void JitArm64AsmRoutineManager::GenerateCommon()
|
|||||||
|
|
||||||
float_emit.REV32(8, D0, D0);
|
float_emit.REV32(8, D0, D0);
|
||||||
MOVK(addr_reg, ((u64)Memory::base >> 32) & 0xFFFF, SHIFT_32);
|
MOVK(addr_reg, ((u64)Memory::base >> 32) & 0xFFFF, SHIFT_32);
|
||||||
float_emit.ST1(32, Q0, 0, addr_reg, SP);
|
float_emit.ST1(64, Q0, 0, addr_reg, SP);
|
||||||
float_emit.ST1(32, Q0, 1, addr_reg, SP);
|
|
||||||
RET(X30);
|
RET(X30);
|
||||||
|
|
||||||
SetJumpTarget(argh);
|
SetJumpTarget(argh);
|
||||||
@ -304,9 +303,9 @@ void JitArm64AsmRoutineManager::GenerateCommon()
|
|||||||
|
|
||||||
TST(DecodeReg(addr_reg), 6, 1);
|
TST(DecodeReg(addr_reg), 6, 1);
|
||||||
FixupBranch argh = B(CC_NEQ);
|
FixupBranch argh = B(CC_NEQ);
|
||||||
|
|
||||||
MOVK(addr_reg, ((u64)Memory::base >> 32) & 0xFFFF, SHIFT_32);
|
MOVK(addr_reg, ((u64)Memory::base >> 32) & 0xFFFF, SHIFT_32);
|
||||||
float_emit.ST1(8, Q0, 0, addr_reg, SP);
|
float_emit.ST1(16, Q0, 0, addr_reg, SP);
|
||||||
float_emit.ST1(8, Q0, 1, addr_reg, SP);
|
|
||||||
RET(X30);
|
RET(X30);
|
||||||
|
|
||||||
SetJumpTarget(argh);
|
SetJumpTarget(argh);
|
||||||
@ -335,9 +334,9 @@ void JitArm64AsmRoutineManager::GenerateCommon()
|
|||||||
|
|
||||||
TST(DecodeReg(addr_reg), 6, 1);
|
TST(DecodeReg(addr_reg), 6, 1);
|
||||||
FixupBranch argh = B(CC_NEQ);
|
FixupBranch argh = B(CC_NEQ);
|
||||||
|
|
||||||
MOVK(addr_reg, ((u64)Memory::base >> 32) & 0xFFFF, SHIFT_32);
|
MOVK(addr_reg, ((u64)Memory::base >> 32) & 0xFFFF, SHIFT_32);
|
||||||
float_emit.ST1(8, Q0, 0, addr_reg, SP);
|
float_emit.ST1(16, Q0, 0, addr_reg, SP);
|
||||||
float_emit.ST1(8, Q0, 1, addr_reg, SP);
|
|
||||||
RET(X30);
|
RET(X30);
|
||||||
|
|
||||||
SetJumpTarget(argh);
|
SetJumpTarget(argh);
|
||||||
@ -368,8 +367,7 @@ void JitArm64AsmRoutineManager::GenerateCommon()
|
|||||||
TST(DecodeReg(addr_reg), 6, 1);
|
TST(DecodeReg(addr_reg), 6, 1);
|
||||||
FixupBranch argh = B(CC_NEQ);
|
FixupBranch argh = B(CC_NEQ);
|
||||||
MOVK(addr_reg, ((u64)Memory::base >> 32) & 0xFFFF, SHIFT_32);
|
MOVK(addr_reg, ((u64)Memory::base >> 32) & 0xFFFF, SHIFT_32);
|
||||||
float_emit.ST1(16, Q0, 0, addr_reg, SP);
|
float_emit.ST1(32, Q0, 0, addr_reg, SP);
|
||||||
float_emit.ST1(16, Q0, 1, addr_reg, SP);
|
|
||||||
RET(X30);
|
RET(X30);
|
||||||
|
|
||||||
SetJumpTarget(argh);
|
SetJumpTarget(argh);
|
||||||
@ -399,8 +397,7 @@ void JitArm64AsmRoutineManager::GenerateCommon()
|
|||||||
TST(DecodeReg(addr_reg), 6, 1);
|
TST(DecodeReg(addr_reg), 6, 1);
|
||||||
FixupBranch argh = B(CC_NEQ);
|
FixupBranch argh = B(CC_NEQ);
|
||||||
MOVK(addr_reg, ((u64)Memory::base >> 32) & 0xFFFF, SHIFT_32);
|
MOVK(addr_reg, ((u64)Memory::base >> 32) & 0xFFFF, SHIFT_32);
|
||||||
float_emit.ST1(16, Q0, 0, addr_reg, SP);
|
float_emit.ST1(32, Q0, 0, addr_reg, SP);
|
||||||
float_emit.ST1(16, Q0, 1, addr_reg, SP);
|
|
||||||
RET(X30);
|
RET(X30);
|
||||||
|
|
||||||
SetJumpTarget(argh);
|
SetJumpTarget(argh);
|
||||||
|
Loading…
Reference in New Issue
Block a user