aboutsummaryrefslogtreecommitdiff
path: root/hw/i386/kvm/xenstore_impl.c
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2023-07-27 11:39:06 +0100
committerPeter Maydell <peter.maydell@linaro.org>2023-07-31 11:40:24 +0100
commit2b0d656ab6484cae7f174e194215a6d50343ecd2 (patch)
tree3415a17d0d12744582e3cf065846a729ccf6bf51 /hw/i386/kvm/xenstore_impl.c
parent548b8edc6d9a5d6e1aab932f0ffcf43235c33a67 (diff)
target/arm: Avoid writing to constant TCGv in trans_CSEL()
In commit 0b188ea05acb5 we changed the implementation of trans_CSEL() to use tcg_constant_i32(). However, this change was incorrect, because the implementation of the function sets up the TCGv_i32 rn and rm to be either zero or else a TCG temp created in load_reg(), and these TCG temps are then in both cases written to by the emitted TCG ops. The result is that we hit a TCG assertion: qemu-system-arm: ../../tcg/tcg.c:4455: tcg_reg_alloc_mov: Assertion `!temp_readonly(ots)' failed. (or on a non-debug build, just produce a garbage result) Adjust the code so that rn and rm are always writeable temporaries whether the instruction is using the special case "0" or a normal register as input. Cc: qemu-stable@nongnu.org Fixes: 0b188ea05acb5 ("target/arm: Use tcg_constant in trans_CSEL") Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20230727103906.2641264-1-peter.maydell@linaro.org
Diffstat (limited to 'hw/i386/kvm/xenstore_impl.c')
0 files changed, 0 insertions, 0 deletions