|
@@ -71,13 +71,14 @@ implementation
|
|
var
|
|
var
|
|
power : longint;
|
|
power : longint;
|
|
begin
|
|
begin
|
|
- if (right.nodetype=ordconstn) and
|
|
|
|
- (nodetype=divn) and
|
|
|
|
- (ispowerof2(tordconstnode(right).value,power) or
|
|
|
|
- (tordconstnode(right).value=1) or
|
|
|
|
- (tordconstnode(right).value=int64(-1))
|
|
|
|
- ) and
|
|
|
|
- not(is_64bitint(resultdef)) then
|
|
|
|
|
|
+ if not(cs_check_overflow in current_settings.localswitches) and
|
|
|
|
+ (right.nodetype=ordconstn) and
|
|
|
|
+ (nodetype=divn) and
|
|
|
|
+ (ispowerof2(tordconstnode(right).value,power) or
|
|
|
|
+ (tordconstnode(right).value=1) or
|
|
|
|
+ (tordconstnode(right).value=int64(-1))
|
|
|
|
+ ) and
|
|
|
|
+ not(is_64bitint(resultdef)) then
|
|
result:=nil
|
|
result:=nil
|
|
else if ((GenerateThumbCode) and (CPUARM_HAS_THUMB_IDIV in cpu_capabilities[current_settings.cputype])) and
|
|
else if ((GenerateThumbCode) and (CPUARM_HAS_THUMB_IDIV in cpu_capabilities[current_settings.cputype])) and
|
|
(nodetype=divn) and
|
|
(nodetype=divn) and
|