mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-14 19:10:34 +02:00
* parameter regvar fixes
This commit is contained in:
parent
d6bffaf5c6
commit
4f7667488b
@ -1239,7 +1239,16 @@ implementation
|
||||
LOC_REFERENCE :
|
||||
begin
|
||||
reference_reset_base(href,paraloc.reference.index,paraloc.reference.offset);
|
||||
cg.a_load_ref_reg(list,paraloc.size,paraloc.size,href,reg);
|
||||
case getregtype(reg) of
|
||||
R_INTREGISTER :
|
||||
cg.a_load_ref_reg(list,paraloc.size,paraloc.size,href,reg);
|
||||
R_FPUREGISTER :
|
||||
cg.a_loadfpu_ref_reg(list,paraloc.size,href,reg);
|
||||
R_MMREGISTER :
|
||||
cg.a_loadmm_ref_reg(list,paraloc.size,paraloc.size,href,reg,mms_movescalar);
|
||||
else
|
||||
internalerror(2004101012);
|
||||
end;
|
||||
end;
|
||||
else
|
||||
internalerror(2002081302);
|
||||
@ -2207,7 +2216,10 @@ implementation
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.224 2004-10-10 20:51:46 peter
|
||||
Revision 1.225 2004-10-10 21:08:55 peter
|
||||
* parameter regvar fixes
|
||||
|
||||
Revision 1.224 2004/10/10 20:51:46 peter
|
||||
* fixed sparc compile
|
||||
* fixed float regvar loading
|
||||
|
||||
|
@ -136,9 +136,12 @@ implementation
|
||||
if pd.deftype=procdef then
|
||||
akttokenpos:=tprocdef(pd).fileinfo;
|
||||
|
||||
{ Generate result variable accessing function result }
|
||||
{ Generate result variable accessing function result, it
|
||||
can't be put in a register since it must be accessable
|
||||
from the framepointer }
|
||||
vs:=tvarsym.create('$parentfp',vs_var,voidpointertype);
|
||||
include(vs.varoptions,vo_is_parentfp);
|
||||
vs.varregable:=vr_none;
|
||||
pd.parast.insert(vs);
|
||||
pd.insertpara(vs.vartype,vs,nil,true);
|
||||
|
||||
@ -2260,7 +2263,10 @@ const
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.191 2004-10-08 17:09:43 peter
|
||||
Revision 1.192 2004-10-10 21:08:55 peter
|
||||
* parameter regvar fixes
|
||||
|
||||
Revision 1.191 2004/10/08 17:09:43 peter
|
||||
* tvarsym.varregable added, split vo_regable from varoptions
|
||||
|
||||
Revision 1.190 2004/08/29 11:28:41 peter
|
||||
|
@ -1281,7 +1281,11 @@ implementation
|
||||
|
||||
function tstoreddef.is_fpuregable : boolean;
|
||||
begin
|
||||
is_fpuregable:=(deftype=floatdef);
|
||||
{$ifdef x86}
|
||||
result:=false;
|
||||
{$else x86}
|
||||
result:=(deftype=floatdef);
|
||||
{$endif x86}
|
||||
end;
|
||||
|
||||
|
||||
@ -6200,7 +6204,10 @@ implementation
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.257 2004-10-04 21:23:15 florian
|
||||
Revision 1.258 2004-10-10 21:08:55 peter
|
||||
* parameter regvar fixes
|
||||
|
||||
Revision 1.257 2004/10/04 21:23:15 florian
|
||||
* rtti alignment fixed
|
||||
|
||||
Revision 1.256 2004/09/21 23:36:51 hajny
|
||||
|
@ -1511,7 +1511,8 @@ implementation
|
||||
if (vo_is_self in varoptions) then
|
||||
begin
|
||||
case loc of
|
||||
LOC_REGISTER:
|
||||
LOC_REGISTER,
|
||||
LOC_CREGISTER:
|
||||
regidx:=findreg_by_number(localloc.register);
|
||||
LOC_REFERENCE: ;
|
||||
else
|
||||
@ -2222,7 +2223,10 @@ implementation
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.182 2004-10-10 20:22:53 peter
|
||||
Revision 1.183 2004-10-10 21:08:55 peter
|
||||
* parameter regvar fixes
|
||||
|
||||
Revision 1.182 2004/10/10 20:22:53 peter
|
||||
* symtable allocation rewritten
|
||||
* loading of parameters to local temps/regs cleanup
|
||||
* regvar support for parameters
|
||||
|
Loading…
Reference in New Issue
Block a user