* add string returns in LOC_REFERENCE

This commit is contained in:
peter 2003-04-26 09:12:55 +00:00
parent fe96aad6d6
commit a23e3f0a2f
4 changed files with 24 additions and 12 deletions

View File

@ -335,7 +335,7 @@ interface
if (nodetype = addn) and
is_shortstring(resulttype.def) then
begin
expectloc:=LOC_CREFERENCE;
expectloc:=LOC_REFERENCE;
calcregisters(self,0,0,0);
result := nil;
exit;
@ -389,7 +389,7 @@ interface
{ location is released by copyshortstring }
location_freetemp(exprasmlist,left.location);
location_reset(left.location,LOC_CREFERENCE,def_cgsize(resulttype.def));
location_reset(left.location,LOC_REFERENCE,def_cgsize(resulttype.def));
left.location.reference:=href;
end;
@ -1664,7 +1664,10 @@ begin
end.
{
$Log$
Revision 1.65 2003-04-23 20:16:04 peter
Revision 1.66 2003-04-26 09:12:55 peter
* add string returns in LOC_REFERENCE
Revision 1.65 2003/04/23 20:16:04 peter
+ added currency support based on int64
+ is_64bit for use in cg units instead of is_64bitint
* removed cgmessage from n386add, replace with internalerrors

View File

@ -1782,7 +1782,7 @@ implementation
else if is_longstring(ld) then
begin
{ this is only for add, the comparisaion is handled later }
expectloc:=LOC_CREFERENCE;
expectloc:=LOC_REFERENCE;
end
else
begin
@ -1957,7 +1957,10 @@ begin
end.
{
$Log$
Revision 1.85 2003-04-24 22:29:57 florian
Revision 1.86 2003-04-26 09:12:55 peter
* add string returns in LOC_REFERENCE
Revision 1.85 2003/04/24 22:29:57 florian
* fixed a lot of PowerPC related stuff
Revision 1.84 2003/04/23 20:16:04 peter

View File

@ -77,7 +77,7 @@ begin
firstpass(right);
if codegenerror then
exit;
expectloc:=LOC_CREFERENCE;
expectloc:=LOC_REFERENCE;
if not is_constcharnode(right) then
{ it's not sure we need the register, but we can't know it here yet }
calcregisters(self,2,0,0)
@ -106,7 +106,7 @@ begin
{ location is released by copyshortstring }
location_freetemp(exprasmlist,left.location);
{ return temp reference }
location_reset(left.location,LOC_CREFERENCE,def_cgsize(resulttype.def));
location_reset(left.location,LOC_REFERENCE,def_cgsize(resulttype.def));
left.location.reference:=href;
end;
secondpass(right);
@ -218,7 +218,7 @@ begin
{ release the registers }
location_freetemp(exprasmlist,left.location);
{ return temp reference }
location_reset(left.location,LOC_CREFERENCE,def_cgsize(resulttype.def));
location_reset(left.location,LOC_REFERENCE,def_cgsize(resulttype.def));
left.location.reference:=href;
end;
secondpass(right);
@ -252,6 +252,9 @@ end.
{
$Log$
Revision 1.1 2003-04-24 11:20:06 florian
Revision 1.2 2003-04-26 09:12:55 peter
* add string returns in LOC_REFERENCE
Revision 1.1 2003/04/24 11:20:06 florian
+ created from n386opt
}
}

View File

@ -137,7 +137,7 @@ end;
function taddsstringoptnode.pass_1: tnode;
begin
pass_1 := nil;
expectloc:= LOC_CREFERENCE;
expectloc:= LOC_REFERENCE;
calcregisters(self,0,0,0);
{ here we call STRCONCAT or STRCMP or STRCOPY }
procinfo.flags:=procinfo.flags or pi_do_call;
@ -278,7 +278,10 @@ end.
{
$Log$
Revision 1.13 2003-04-22 23:50:23 peter
Revision 1.14 2003-04-26 09:12:55 peter
* add string returns in LOC_REFERENCE
Revision 1.13 2003/04/22 23:50:23 peter
* firstpass uses expectloc
* checks if there are differences between the expectloc and
location.loc from secondpass in EXTDEBUG