On 10/17/24 12:00, Peter Maydell wrote:
On Thu, 17 Oct 2024 at 10:14, Paolo Bonzini <[email protected]> wrote:32-bit TSTEQ and TSTNE is subject to the same constraints as for 64-bit, but setcond_i32 and negsetcond_i32 were incorrectly using TCG_CT_CONST ("i") instead of TCG_CT_CONST_CMP ("C"). Adjust the constraint and make tcg_target_const_match use the same sequence as tgen_cmp2: first check if the constant is a valid operand for TSTEQ/TSTNE, then accept everything for 32-bit non-test comparisons, finally check if the constant is a valid operand for 64-bit non-test comparisons. Reported-by: Philippe Mathieu-Daudé <[email protected]> Signed-off-by: Paolo Bonzini <[email protected]>Should this cc stable? Does it cause any current problems? (AIUI the x86 target changes in your pending pullreq do trigger this.)
Yeah, that's a good idea. It's probably possible to construct x86 code that triggers it (I'm surprised it wasn't found until now).
Paolo
