|
@@ -510,9 +510,9 @@ interface
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
end
|
|
end
|
|
- { unsigned modulus by a power-of-2 constant? }
|
|
|
|
|
|
+ { unsigned modulus by a (+/-)power-of-2 constant? }
|
|
else if (nodetype=modn) and (right.nodetype=ordconstn) and
|
|
else if (nodetype=modn) and (right.nodetype=ordconstn) and
|
|
- ispowerof2(tordconstnode(right).value,power) and
|
|
|
|
|
|
+ isabspowerof2(tordconstnode(right).value,power) and
|
|
not(is_signed(left.resultdef)) then
|
|
not(is_signed(left.resultdef)) then
|
|
begin
|
|
begin
|
|
emit_const_reg(A_AND,opsize,(aint(1) shl power)-1,hreg1);
|
|
emit_const_reg(A_AND,opsize,(aint(1) shl power)-1,hreg1);
|