diff options
| author | Mike Pall <mike> | 2023-07-08 12:10:18 +0200 |
|---|---|---|
| committer | Mike Pall <mike> | 2023-07-08 12:10:18 +0200 |
| commit | 9493acc1a28f15b0ac4453e716f33436186c7acd (patch) | |
| tree | 0681a30c5db8df0526dae700d840c2416e9f67ce /src | |
| parent | ff6c496ba1b51ed360065cbc5259f62becd70daa (diff) | |
| download | luajit-9493acc1a28f15b0ac4453e716f33436186c7acd.tar.gz luajit-9493acc1a28f15b0ac4453e716f33436186c7acd.tar.bz2 luajit-9493acc1a28f15b0ac4453e716f33436186c7acd.zip | |
ARM64: Fix LDP code generation.
Thanks to Zhongwei Yao. #1028
Diffstat (limited to 'src')
| -rw-r--r-- | src/lj_emit_arm64.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/lj_emit_arm64.h b/src/lj_emit_arm64.h index 0ddba4a3..fcc9c1d8 100644 --- a/src/lj_emit_arm64.h +++ b/src/lj_emit_arm64.h | |||
| @@ -143,7 +143,7 @@ static void emit_lso(ASMState *as, A64Ins ai, Reg rd, Reg rn, int64_t ofs) | |||
| 143 | goto nopair; | 143 | goto nopair; |
| 144 | } | 144 | } |
| 145 | if (ofsm >= (int)((unsigned int)-64<<sc) && ofsm <= (63<<sc)) { | 145 | if (ofsm >= (int)((unsigned int)-64<<sc) && ofsm <= (63<<sc)) { |
| 146 | *as->mcp = aip | A64F_N(rn) | ((ofsm >> sc) << 15) | | 146 | *as->mcp = aip | A64F_N(rn) | (((ofsm >> sc) & 0x7f) << 15) | |
| 147 | (ai ^ ((ai == A64I_LDRx || ai == A64I_STRx) ? 0x50000000 : 0x90000000)); | 147 | (ai ^ ((ai == A64I_LDRx || ai == A64I_STRx) ? 0x50000000 : 0x90000000)); |
| 148 | return; | 148 | return; |
| 149 | } | 149 | } |
