tcg/arm: Fix SIGILL in tcg_out_qemu_st_direct
When tcg_out_qemu_st_{index,direct} were merged, the direct case for MO_64 was omitted, causing qemu_st_i64 to be encoded as 0xffffffff due to underflow when adding h.base and h.index. Fixes:1df6d611bd
("tcg/arm: Introduce HostAddress") Signed-off-by: Joseph Burt <caseorum@gmail.com> Message-Id: <20240121211439.100829-1-caseorum@gmail.com> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> (cherry picked from commit9f6523e8e4
) Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
This commit is contained in:
parent
76a9da39d4
commit
c173670033
@ -1667,6 +1667,9 @@ static void tcg_out_qemu_st_direct(TCGContext *s, MemOp opc, TCGReg datalo,
|
||||
} else {
|
||||
tcg_out_strd_r(s, h.cond, datalo, h.base, h.index);
|
||||
}
|
||||
} else if (h.index < 0) {
|
||||
tcg_out_st32_12(s, h.cond, datalo, h.base, 0);
|
||||
tcg_out_st32_12(s, h.cond, datahi, h.base, 4);
|
||||
} else if (h.index_scratch) {
|
||||
tcg_out_st32_rwb(s, h.cond, datalo, h.index, h.base);
|
||||
tcg_out_st32_12(s, h.cond, datahi, h.index, 4);
|
||||
|
Loading…
Reference in New Issue
Block a user