* disable 32 bit operation optimization for powerpc64

git-svn-id: trunk@25979 -
This commit is contained in:
florian 2013-11-06 21:11:08 +00:00
parent 424d5cafb2
commit bbabb77ec9
2 changed files with 11 additions and 2 deletions

View File

@ -136,6 +136,7 @@
{$define cpurox}
{$define cpurefshaveindexreg}
{$define fpc_compiler_has_fixup_jmps}
{$define cpuno32bitops}
{$endif powerpc64}
{$ifdef arm}

View File

@ -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;