JitAsmCommon: Use MOVBE everywhere it matters (!x86 only code, !old CPU support code).
This commit is contained in:
parent
fcbe265adc
commit
6cb42859d4
|
@ -21,15 +21,11 @@ void CommonAsmRoutines::GenFifoWrite(int size)
|
||||||
PUSH(ESI);
|
PUSH(ESI);
|
||||||
if (size != 32)
|
if (size != 32)
|
||||||
PUSH(EDX);
|
PUSH(EDX);
|
||||||
BSWAP(size, ABI_PARAM1);
|
|
||||||
MOV(32, R(EAX), Imm32((u32)(u64)GPFifo::m_gatherPipe));
|
MOV(32, R(EAX), Imm32((u32)(u64)GPFifo::m_gatherPipe));
|
||||||
MOV(32, R(ESI), M(&GPFifo::m_gatherPipeCount));
|
MOV(32, R(ESI), M(&GPFifo::m_gatherPipeCount));
|
||||||
if (size != 32) {
|
|
||||||
MOV(32, R(EDX), R(ABI_PARAM1));
|
SwapAndStore(size, MComplex(RAX, RSI, 1, 0), ABI_PARAM1);
|
||||||
MOV(size, MComplex(RAX, RSI, 1, 0), R(EDX));
|
|
||||||
} else {
|
|
||||||
MOV(size, MComplex(RAX, RSI, 1, 0), R(ABI_PARAM1));
|
|
||||||
}
|
|
||||||
ADD(32, R(ESI), Imm8(size >> 3));
|
ADD(32, R(ESI), Imm8(size >> 3));
|
||||||
MOV(32, M(&GPFifo::m_gatherPipeCount), R(ESI));
|
MOV(32, M(&GPFifo::m_gatherPipeCount), R(ESI));
|
||||||
if (size != 32)
|
if (size != 32)
|
||||||
|
@ -45,10 +41,9 @@ void CommonAsmRoutines::GenFifoFloatWrite()
|
||||||
PUSH(EDX);
|
PUSH(EDX);
|
||||||
MOVSS(M(&temp32), XMM0);
|
MOVSS(M(&temp32), XMM0);
|
||||||
MOV(32, R(EDX), M(&temp32));
|
MOV(32, R(EDX), M(&temp32));
|
||||||
BSWAP(32, EDX);
|
|
||||||
MOV(32, R(EAX), Imm32((u32)(u64)GPFifo::m_gatherPipe));
|
MOV(32, R(EAX), Imm32((u32)(u64)GPFifo::m_gatherPipe));
|
||||||
MOV(32, R(ESI), M(&GPFifo::m_gatherPipeCount));
|
MOV(32, R(ESI), M(&GPFifo::m_gatherPipeCount));
|
||||||
MOV(32, MComplex(RAX, RSI, 1, 0), R(EDX));
|
SwapAndStore(32, MComplex(RAX, RSI, 1, 0), EDX);
|
||||||
ADD(32, R(ESI), Imm8(4));
|
ADD(32, R(ESI), Imm8(4));
|
||||||
MOV(32, M(&GPFifo::m_gatherPipeCount), R(ESI));
|
MOV(32, M(&GPFifo::m_gatherPipeCount), R(ESI));
|
||||||
POP(EDX);
|
POP(EDX);
|
||||||
|
@ -150,8 +145,7 @@ void CommonAsmRoutines::GenQuantizedStores()
|
||||||
TEST(32, R(ECX), Imm32(0x0C000000));
|
TEST(32, R(ECX), Imm32(0x0C000000));
|
||||||
FixupBranch too_complex = J_CC(CC_NZ, true);
|
FixupBranch too_complex = J_CC(CC_NZ, true);
|
||||||
MOV(64, R(RAX), M(&psTemp[0]));
|
MOV(64, R(RAX), M(&psTemp[0]));
|
||||||
BSWAP(64, RAX);
|
SwapAndStore(64, MComplex(RBX, RCX, SCALE_1, 0), RAX);
|
||||||
MOV(64, MComplex(RBX, RCX, SCALE_1, 0), R(RAX));
|
|
||||||
FixupBranch skip_complex = J(true);
|
FixupBranch skip_complex = J(true);
|
||||||
SetJumpTarget(too_complex);
|
SetJumpTarget(too_complex);
|
||||||
ABI_PushRegistersAndAdjustStack(QUANTIZED_REGS_TO_SAVE, true);
|
ABI_PushRegistersAndAdjustStack(QUANTIZED_REGS_TO_SAVE, true);
|
||||||
|
@ -371,8 +365,7 @@ void CommonAsmRoutines::GenQuantizedLoads()
|
||||||
PSHUFB(XMM0, M((void *)pbswapShuffle2x4));
|
PSHUFB(XMM0, M((void *)pbswapShuffle2x4));
|
||||||
} else {
|
} else {
|
||||||
#if _M_X86_64
|
#if _M_X86_64
|
||||||
MOV(64, R(RCX), MComplex(RBX, RCX, 1, 0));
|
LoadAndSwap(64, RCX, MComplex(RBX, RCX, 1, 0));
|
||||||
BSWAP(64, RCX);
|
|
||||||
ROL(64, R(RCX), Imm8(32));
|
ROL(64, R(RCX), Imm8(32));
|
||||||
MOVQ_xmm(XMM0, R(RCX));
|
MOVQ_xmm(XMM0, R(RCX));
|
||||||
#else
|
#else
|
||||||
|
|
Loading…
Reference in New Issue