|
@@ -40,6 +40,7 @@ interface
|
|
|
floatregstart : aint;
|
|
|
intregssave,
|
|
|
floatregssave : byte;
|
|
|
+ needs_frame_pointer: boolean;
|
|
|
register_used : tparasupregsused;
|
|
|
register_offset : tparasupregsoffset;
|
|
|
computed_local_size : longint;
|
|
@@ -71,7 +72,8 @@ implementation
|
|
|
end;
|
|
|
floatregssave:=12; { f20-f31 }
|
|
|
intregssave:=12; { r16-r23,r28-r31 }
|
|
|
-
|
|
|
+ { for testing }
|
|
|
+ needs_frame_pointer := true;//false;
|
|
|
computed_local_size:=-1;
|
|
|
end;
|
|
|
|
|
@@ -84,7 +86,8 @@ implementation
|
|
|
if tg.direction = -1 then
|
|
|
tg.setfirsttemp(0)
|
|
|
else
|
|
|
- tg.setfirsttemp(maxpushedparasize+floatregssave*sizeof(aint)+intregssave*sizeof(aint));
|
|
|
+ tg.setfirsttemp(maxpushedparasize+
|
|
|
+ floatregssave*sizeof(aint)+intregssave*sizeof(aint));
|
|
|
end;
|
|
|
|
|
|
|
|
@@ -97,7 +100,7 @@ implementation
|
|
|
floatregstart:=result;
|
|
|
inc(result,floatregssave*4);
|
|
|
intregstart:=result;
|
|
|
- inc(result,intregssave*4);
|
|
|
+ //inc(result,intregssave*4);
|
|
|
result:=Align(tg.lasttemp,max(current_settings.alignment.localalignmin,8));
|
|
|
if computed_local_size=-1 then
|
|
|
begin
|