diff --git a/compiler/i386/cpupi.pas b/compiler/i386/cpupi.pas index 79ad5d00d2..983475ab61 100644 --- a/compiler/i386/cpupi.pas +++ b/compiler/i386/cpupi.pas @@ -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