Change AVOID_OVERFLOW to avoid warning about inequality being always true

This commit is contained in:
Pierre Muller 2023-10-26 07:47:10 +00:00
parent b521ac967f
commit acf5675a90

View File

@ -70,7 +70,7 @@ unit cgcpu;
{$ifopt Q+}
{$define AVOID_OVERFLOW}
const
low_value = low(longint);
max_12_bit = 1 shl 12;
{$endif}
{ Range check must be disabled explicitly as conversions between signed and unsigned
@ -479,7 +479,7 @@ unit cgcpu;
tmplo:=cg.GetIntRegister(list,OS_32);
carry:=cg.GetIntRegister(list,OS_32);
if {$ifdef AVOID_OVERFLOW} (lo(value) <> low_value) and {$endif} is_imm12(-aint(lo(value))) then
if {$ifdef AVOID_OVERFLOW} (abs(value) <= max_12_bit) and {$endif} is_imm12(-aint(lo(value))) then
list.concat(taicpu.op_reg_reg_const(A_ADDI,tmplo,regsrc.reglo,-aint(lo(value))))
else
begin