mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-13 09:59:25 +02:00
* disable 32 bit operation optimization for powerpc64
git-svn-id: trunk@25979 -
This commit is contained in:
parent
424d5cafb2
commit
bbabb77ec9
@ -136,6 +136,7 @@
|
||||
{$define cpurox}
|
||||
{$define cpurefshaveindexreg}
|
||||
{$define fpc_compiler_has_fixup_jmps}
|
||||
{$define cpuno32bitops}
|
||||
{$endif powerpc64}
|
||||
|
||||
{$ifdef arm}
|
||||
|
@ -2437,6 +2437,11 @@ implementation
|
||||
result:=typecheck_call_helper(convtype);
|
||||
end;
|
||||
|
||||
{ some code generators for 64 bit CPUs might not support 32 bit operations, so we can
|
||||
disable the following optimization in fpcdefs.inc. Currently the only CPU for which
|
||||
this applies is powerpc64
|
||||
}
|
||||
{$ifdef CPUNO32BITOPS}
|
||||
{ checks whether we can safely remove 64 bit typeconversions
|
||||
in case range and overflow checking are off, and in case
|
||||
the result of this node tree is downcasted again to a
|
||||
@ -2553,12 +2558,14 @@ implementation
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
{$endif CPUNO32BITOPS}
|
||||
|
||||
function ttypeconvnode.simplify(forinline : boolean): tnode;
|
||||
var
|
||||
hp: tnode;
|
||||
{$ifdef CPUNO32BITOPS}
|
||||
foundsint: boolean;
|
||||
{$endif CPUNO32BITOPS}
|
||||
begin
|
||||
result := nil;
|
||||
{ Constant folding and other node transitions to
|
||||
@ -2732,7 +2739,7 @@ implementation
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
{$ifdef CPUNO32BITOPS}
|
||||
{ must be done before code below, because we need the
|
||||
typeconversions for ordconstn's as well }
|
||||
case convtype of
|
||||
@ -2751,6 +2758,7 @@ implementation
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
{$endif CPUNO32BITOPS}
|
||||
end;
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user