mirror of
https://github.com/LuaJIT/LuaJIT.git
synced 2025-02-07 15:14:08 +00:00
ARM64: Fix LDP/STP fusing for unaligned accesses.
Thanks to Peter Cawley. #1056
This commit is contained in:
parent
c0d5240a25
commit
0fa2f1cbcf
@ -142,7 +142,7 @@ static void emit_lso(ASMState *as, A64Ins ai, Reg rd, Reg rn, int64_t ofs)
|
|||||||
} else {
|
} else {
|
||||||
goto nopair;
|
goto nopair;
|
||||||
}
|
}
|
||||||
if (ofsm >= (int)((unsigned int)-64<<sc) && ofsm <= (63<<sc)) {
|
if (lj_ror((unsigned int)ofsm + (64u<<sc), sc) <= 127u) {
|
||||||
*as->mcp = aip | A64F_N(rn) | (((ofsm >> sc) & 0x7f) << 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;
|
||||||
|
Loading…
Reference in New Issue
Block a user