mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 00:03:54 -06:00
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>
This commit is contained in:
parent
0ea731db5a
commit
9f6523e8e4
1 changed files with 3 additions and 0 deletions
|
@ -1662,6 +1662,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…
Add table
Add a link
Reference in a new issue