mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-06-06 15:38:26 +02:00
* only call cg64.a_XXX_loc for LOC_(C)REFERENCE and LOC_(C)REGISTER locations in
tcginlinenode.second_AndOrXorShiftRot_assign git-svn-id: trunk@45301 -
This commit is contained in:
parent
69e8926295
commit
5aaf863d56
@ -579,7 +579,8 @@ implementation
|
|||||||
else
|
else
|
||||||
maskvalue:=maskvalue and 31;
|
maskvalue:=maskvalue and 31;
|
||||||
{$if not defined(cpu64bitalu) and not defined(cpuhighleveltarget)}
|
{$if not defined(cpu64bitalu) and not defined(cpuhighleveltarget)}
|
||||||
if def_cgsize(tcallparanode(left).right.resultdef) in [OS_64,OS_S64] then
|
if (def_cgsize(tcallparanode(left).right.resultdef) in [OS_64,OS_S64]) and
|
||||||
|
(tcallparanode(tcallparanode(left).right).left.location.loc in [LOC_REFERENCE,LOC_CREFERENCE,LOC_REGISTER,LOC_CREGISTER]) then
|
||||||
cg64.a_op64_const_loc(current_asmdata.CurrAsmList,andorxorop[inlinenumber],def_cgsize(tcallparanode(left).right.resultdef),maskvalue.svalue,tcallparanode(tcallparanode(left).right).left.location)
|
cg64.a_op64_const_loc(current_asmdata.CurrAsmList,andorxorop[inlinenumber],def_cgsize(tcallparanode(left).right.resultdef),maskvalue.svalue,tcallparanode(tcallparanode(left).right).left.location)
|
||||||
else
|
else
|
||||||
{$endif not cpu64bitalu and not cpuhighleveltarget}
|
{$endif not cpu64bitalu and not cpuhighleveltarget}
|
||||||
@ -594,7 +595,8 @@ implementation
|
|||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
{$if not defined(cpu64bitalu) and not defined(cpuhighleveltarget)}
|
{$if not defined(cpu64bitalu) and not defined(cpuhighleveltarget)}
|
||||||
if def_cgsize(tcallparanode(left).right.resultdef) in [OS_64,OS_S64] then
|
if (def_cgsize(tcallparanode(left).right.resultdef) in [OS_64,OS_S64]) and
|
||||||
|
(tcallparanode(tcallparanode(left).right).left.location.loc in [LOC_REFERENCE,LOC_CREFERENCE,LOC_REGISTER,LOC_CREGISTER]) then
|
||||||
cg64.a_op64_reg_loc(current_asmdata.CurrAsmList,andorxorop[inlinenumber],def_cgsize(tcallparanode(left).right.resultdef),
|
cg64.a_op64_reg_loc(current_asmdata.CurrAsmList,andorxorop[inlinenumber],def_cgsize(tcallparanode(left).right.resultdef),
|
||||||
joinreg64(hregister,hregisterhi),tcallparanode(tcallparanode(left).right).left.location)
|
joinreg64(hregister,hregisterhi),tcallparanode(tcallparanode(left).right).left.location)
|
||||||
else
|
else
|
||||||
|
Loading…
Reference in New Issue
Block a user