mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-30 23:30:18 +02:00
* several packed array and varset related ies on sparc fixed
git-svn-id: trunk@6899 -
This commit is contained in:
parent
d7752d3c69
commit
53b2b1e882
@ -232,11 +232,11 @@ interface
|
|||||||
procedure tcgaddnode.second_opsmallset;
|
procedure tcgaddnode.second_opsmallset;
|
||||||
begin
|
begin
|
||||||
{ when a setdef is passed, it has to be a smallset }
|
{ when a setdef is passed, it has to be a smallset }
|
||||||
if ((left.resultdef.typ=setdef) and
|
if is_varset(left.resultdef) or
|
||||||
(tsetdef(left.resultdef).settype<>smallset)) or
|
is_normalset(left.resultdef) or
|
||||||
((right.resultdef.typ=setdef) and
|
is_varset(right.resultdef) or
|
||||||
(tsetdef(right.resultdef).settype<>smallset)) then
|
is_normalset(right.resultdef) then
|
||||||
internalerror(200203301);
|
internalerror(200203302);
|
||||||
|
|
||||||
if nodetype in [equaln,unequaln,gtn,gten,lten,ltn] then
|
if nodetype in [equaln,unequaln,gtn,gten,lten,ltn] then
|
||||||
second_cmpsmallset
|
second_cmpsmallset
|
||||||
@ -769,7 +769,8 @@ interface
|
|||||||
begin
|
begin
|
||||||
{Normalsets are already handled in pass1 if mmx
|
{Normalsets are already handled in pass1 if mmx
|
||||||
should not be used.}
|
should not be used.}
|
||||||
if (tsetdef(left.resultdef).settype<>smallset) then
|
if is_varset(tsetdef(left.resultdef)) or
|
||||||
|
is_normalset(tsetdef(left.resultdef)) then
|
||||||
begin
|
begin
|
||||||
{$ifdef SUPPORT_MMX}
|
{$ifdef SUPPORT_MMX}
|
||||||
{$ifdef i386}
|
{$ifdef i386}
|
||||||
|
@ -308,7 +308,10 @@ implementation
|
|||||||
location_copy(location,left.location);
|
location_copy(location,left.location);
|
||||||
inverse_flags(location.resflags);
|
inverse_flags(location.resflags);
|
||||||
end;
|
end;
|
||||||
LOC_REGISTER, LOC_CREGISTER, LOC_REFERENCE, LOC_CREFERENCE :
|
LOC_REGISTER, LOC_CREGISTER,
|
||||||
|
LOC_REFERENCE, LOC_CREFERENCE,
|
||||||
|
LOC_SUBSETREG, LOC_CSUBSETREG,
|
||||||
|
LOC_SUBSETREF, LOC_CSUBSETREF:
|
||||||
begin
|
begin
|
||||||
location_force_reg(current_asmdata.CurrAsmList,left.location,def_cgsize(left.resultdef),true);
|
location_force_reg(current_asmdata.CurrAsmList,left.location,def_cgsize(left.resultdef),true);
|
||||||
current_asmdata.CurrAsmList.concat(taicpu.op_reg_const_reg(A_SUBcc,left.location.register,0,NR_G0));
|
current_asmdata.CurrAsmList.concat(taicpu.op_reg_const_reg(A_SUBcc,left.location.register,0,NR_G0));
|
||||||
|
Loading…
Reference in New Issue
Block a user