|
@@ -129,7 +129,7 @@ implementation
|
|
|
uses
|
|
|
cutils,globtype,systems,
|
|
|
verbose,globals,
|
|
|
- symconst,types,
|
|
|
+ symconst,paramgr,types,
|
|
|
htypechk,pass_1,cpuinfo,cpubase,
|
|
|
ncnv,nld,ninl,nadd,ncon,
|
|
|
rgobj,cgbase
|
|
@@ -370,7 +370,7 @@ implementation
|
|
|
if not(assigned(aktcallprocdef) and
|
|
|
(aktcallprocdef.proccalloption in [pocall_cppdecl,pocall_cdecl]) and
|
|
|
(po_external in aktcallprocdef.procoptions)) and
|
|
|
- push_high_param(defcoll.paratype.def) then
|
|
|
+ paramanager.push_high_param(defcoll.paratype.def) then
|
|
|
gen_high_tree(is_open_string(defcoll.paratype.def));
|
|
|
|
|
|
{ test conversions }
|
|
@@ -417,7 +417,7 @@ implementation
|
|
|
left.resulttype.def.typename,defcoll.paratype.def.typename);
|
|
|
end;
|
|
|
{ Process open parameters }
|
|
|
- if push_high_param(defcoll.paratype.def) then
|
|
|
+ if paramanager.push_high_param(defcoll.paratype.def) then
|
|
|
begin
|
|
|
{ insert type conv but hold the ranges of the array }
|
|
|
oldtype:=left.resulttype;
|
|
@@ -682,7 +682,7 @@ implementation
|
|
|
restypeset := true;
|
|
|
{ both the normal and specified resulttype either have to be returned via a }
|
|
|
{ parameter or not, but no mixing (JM) }
|
|
|
- if ret_in_param(restype.def) xor ret_in_param(symtableprocentry.defs^.def.rettype.def) then
|
|
|
+ if paramanager.ret_in_param(restype.def) xor paramanager.ret_in_param(symtableprocentry.defs^.def.rettype.def) then
|
|
|
internalerror(200108291);
|
|
|
end;
|
|
|
|
|
@@ -691,7 +691,7 @@ implementation
|
|
|
begin
|
|
|
self.createintern(name,params);
|
|
|
funcretrefnode:=returnnode;
|
|
|
- if not ret_in_param(symtableprocentry.defs^.def.rettype.def) then
|
|
|
+ if not paramanager.ret_in_param(symtableprocentry.defs^.def.rettype.def) then
|
|
|
internalerror(200204247);
|
|
|
end;
|
|
|
|
|
@@ -1509,7 +1509,7 @@ implementation
|
|
|
{ get a register for the return value }
|
|
|
if (not is_void(resulttype.def)) then
|
|
|
begin
|
|
|
- if ret_in_acc(resulttype.def) then
|
|
|
+ if paramanager.ret_in_acc(resulttype.def) then
|
|
|
begin
|
|
|
{ wide- and ansistrings are returned in EAX }
|
|
|
{ but they are imm. moved to a memory location }
|
|
@@ -1638,13 +1638,13 @@ implementation
|
|
|
|
|
|
{ It doesn't hurt to calculate it already though :) (JM) }
|
|
|
rg.incrementregisterpushed(tprocdef(procdefinition).usedregisters);
|
|
|
-
|
|
|
+
|
|
|
end;
|
|
|
|
|
|
{ get a register for the return value }
|
|
|
if (not is_void(resulttype.def)) then
|
|
|
begin
|
|
|
- if ret_in_param(resulttype.def) then
|
|
|
+ if paramanager.ret_in_param(resulttype.def) then
|
|
|
begin
|
|
|
location.loc:=LOC_CREFERENCE;
|
|
|
end
|
|
@@ -1828,7 +1828,7 @@ implementation
|
|
|
retoffset:=-POINTER_SIZE; { less dangerous as zero (PM) }
|
|
|
para_offset:=0;
|
|
|
para_size:=inlineprocdef.para_size(target_info.alignment.paraalign);
|
|
|
- if ret_in_param(inlineprocdef.rettype.def) then
|
|
|
+ if paramanager.ret_in_param(inlineprocdef.rettype.def) then
|
|
|
inc(para_size,POINTER_SIZE);
|
|
|
{ copy args }
|
|
|
if assigned(code) then
|
|
@@ -1896,7 +1896,13 @@ begin
|
|
|
end.
|
|
|
{
|
|
|
$Log$
|
|
|
- Revision 1.80 2002-07-14 18:00:43 daniel
|
|
|
+ Revision 1.81 2002-07-15 18:03:14 florian
|
|
|
+ * readded removed changes
|
|
|
+
|
|
|
+ Revision 1.79 2002/07/11 14:41:27 florian
|
|
|
+ * start of the new generic parameter handling
|
|
|
+
|
|
|
+ Revision 1.80 2002/07/14 18:00:43 daniel
|
|
|
+ Added the beginning of a state tracker. This will track the values of
|
|
|
variables through procedures and optimize things away.
|
|
|
|
|
@@ -2014,4 +2020,4 @@ end.
|
|
|
Revision 1.62 2002/01/19 11:57:05 peter
|
|
|
* fixed path appending for lib
|
|
|
|
|
|
-}
|
|
|
+}
|