|
@@ -33,6 +33,7 @@ unit cpupi;
|
|
|
type
|
|
|
ti386procinfo = class(tcgprocinfo)
|
|
|
constructor create(aparent:tprocinfo);override;
|
|
|
+ procedure set_first_temp_offset;override;
|
|
|
function calc_stackframe_size:longint;override;
|
|
|
procedure generate_parameter_info;override;
|
|
|
end;
|
|
@@ -45,7 +46,8 @@ unit cpupi;
|
|
|
systems,globals,
|
|
|
tgobj,
|
|
|
cpubase,
|
|
|
- cgutils;
|
|
|
+ cgutils,
|
|
|
+ symconst;
|
|
|
|
|
|
constructor ti386procinfo.create(aparent:tprocinfo);
|
|
|
begin
|
|
@@ -54,6 +56,16 @@ unit cpupi;
|
|
|
end;
|
|
|
|
|
|
|
|
|
+ procedure ti386procinfo.set_first_temp_offset;
|
|
|
+ begin
|
|
|
+ if use_fixed_stack then
|
|
|
+ begin
|
|
|
+ if not(po_assembler in procdef.procoptions) then
|
|
|
+ tg.setfirsttemp(tg.direction*maxpushedparasize);
|
|
|
+ end;
|
|
|
+ end;
|
|
|
+
|
|
|
+
|
|
|
function ti386procinfo.calc_stackframe_size:longint;
|
|
|
begin
|
|
|
{ align to 4 bytes at least
|