tcg/loongarch64: Set vector registers call clobbered
Because there are more call clobbered registers than call saved registers, we begin with all registers as call clobbered and then reset those that are saved. This was missed when we introduced the LSX support. Cc: qemu-stable@nongnu.org Fixes: 16288ded944 ("tcg/loongarch64: Lower basic tcg vec ops to LSX") Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2136 Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Song Gao <gaosong@loongson.cn> Message-Id: <20240201233414.500588-1-richard.henderson@linaro.org> (cherry picked from commit 45bf0e7aa648369cf8ab2333bd20144806fc1be3) Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
This commit is contained in:
parent
5f5e30229e
commit
8b7750c66f
@ -2327,7 +2327,7 @@ static void tcg_target_init(TCGContext *s)
|
||||
tcg_target_available_regs[TCG_TYPE_I32] = ALL_GENERAL_REGS;
|
||||
tcg_target_available_regs[TCG_TYPE_I64] = ALL_GENERAL_REGS;
|
||||
|
||||
tcg_target_call_clobber_regs = ALL_GENERAL_REGS;
|
||||
tcg_target_call_clobber_regs = ALL_GENERAL_REGS | ALL_VECTOR_REGS;
|
||||
tcg_regset_reset_reg(tcg_target_call_clobber_regs, TCG_REG_S0);
|
||||
tcg_regset_reset_reg(tcg_target_call_clobber_regs, TCG_REG_S1);
|
||||
tcg_regset_reset_reg(tcg_target_call_clobber_regs, TCG_REG_S2);
|
||||
|
Loading…
x
Reference in New Issue
Block a user