ARM64: Fix LDP code generation.

Thanks to Zhongwei Yao. #1028
This commit is contained in:
Mike Pall 2023-07-08 12:10:18 +02:00
parent ff6c496ba1
commit 9493acc1a2

View File

@ -143,7 +143,7 @@ static void emit_lso(ASMState *as, A64Ins ai, Reg rd, Reg rn, int64_t ofs)
goto nopair; goto nopair;
} }
if (ofsm >= (int)((unsigned int)-64<<sc) && ofsm <= (63<<sc)) { if (ofsm >= (int)((unsigned int)-64<<sc) && ofsm <= (63<<sc)) {
*as->mcp = aip | A64F_N(rn) | ((ofsm >> sc) << 15) | *as->mcp = aip | A64F_N(rn) | (((ofsm >> sc) & 0x7f) << 15) |
(ai ^ ((ai == A64I_LDRx || ai == A64I_STRx) ? 0x50000000 : 0x90000000)); (ai ^ ((ai == A64I_LDRx || ai == A64I_STRx) ? 0x50000000 : 0x90000000));
return; return;
} }