+ enable using the cg64 ops OP_SHR/OP_SHL/OP_SAR on i386 for implementing the

64-bit in_sar/shl/shr_assign_x_y inline nodes

git-svn-id: trunk@35835 -
This commit is contained in:
nickysn 2017-04-18 14:36:41 +00:00
parent 03dfa07ebc
commit d7c8a081a1
2 changed files with 9 additions and 0 deletions

View File

@ -75,6 +75,7 @@
{$define SUPPORT_SAFECALL}
{$define SUPPORT_GET_FRAME}
{$define cpucapabilities}
{$define cpucg64shiftsupport}
{$endif i386}
{$ifdef x86_64}

View File

@ -4676,6 +4676,14 @@ implementation
var
procname: string[31];
begin
{$ifdef cpucg64shiftsupport}
if inlinenumber in [in_sar_assign_x_y,in_shl_assign_x_y,in_shr_assign_x_y] then
begin
result:=nil;
expectloc:=tcallparanode(tcallparanode(left).right).left.expectloc;
exit;
end;
{$endif cpucg64shiftsupport}
result := nil;
if is_signed(tcallparanode(left).right.resultdef) then
procname:='int64'