mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-17 00:19:19 +02:00
* add string returns in LOC_REFERENCE
This commit is contained in:
parent
fe96aad6d6
commit
a23e3f0a2f
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user