Re: [PATCH v2] target/arm: Fix signed integer overflow undefined behavior.

2025-02-20 Thread Peter Maydell
On Wed, 19 Feb 2025 at 16:55, Stephen Longfield wrote: > > The problem is internal to t32_expandimm_imm, the imm intermediate > immediate value. > > It's extracted via: int imm = extract32(x, 0, 8);, so the value will be > between 0-255 > > It is then multiplied by one of 1, 0x00010001, 0x01000100

[PATCH v2] target/arm: Fix signed integer overflow undefined behavior.

2025-02-19 Thread Stephen Longfield
The problem is internal to t32_expandimm_imm, the imm intermediate immediate value. It's extracted via: int imm = extract32(x, 0, 8);, so the value will be between 0-255 It is then multiplied by one of 1, 0x00010001, 0x01000100, 0x01010101, or 0x80. Values between 128-255 multiplied by 0x0100010