|
@@ -65,7 +65,7 @@ unit cpupi;
|
|
constructor txtensaprocinfo.create(aparent: tprocinfo);
|
|
constructor txtensaprocinfo.create(aparent: tprocinfo);
|
|
begin
|
|
begin
|
|
inherited create(aparent);
|
|
inherited create(aparent);
|
|
- maxpushedparasize := 0;
|
|
|
|
|
|
+ maxpushedparasize:=0;
|
|
if target_info.abi=abi_xtensa_windowed then
|
|
if target_info.abi=abi_xtensa_windowed then
|
|
begin
|
|
begin
|
|
callins:=A_CALL8;
|
|
callins:=A_CALL8;
|
|
@@ -92,23 +92,15 @@ unit cpupi;
|
|
localsize : aint;
|
|
localsize : aint;
|
|
i : longint;
|
|
i : longint;
|
|
begin
|
|
begin
|
|
- if (po_nostackframe in procdef.procoptions) then
|
|
|
|
- begin
|
|
|
|
- { maxpushedparasize sghould be zero,
|
|
|
|
- if not we will get an error later. }
|
|
|
|
- tg.setfirsttemp(maxpushedparasize);
|
|
|
|
- exit;
|
|
|
|
- end;
|
|
|
|
|
|
+ tg.setfirsttemp(maxpushedparasize);
|
|
|
|
|
|
- if tg.direction = -1 then
|
|
|
|
- tg.setfirsttemp(-(1+12)*4)
|
|
|
|
- else
|
|
|
|
- tg.setfirsttemp(maxpushedparasize);
|
|
|
|
|
|
+ if po_nostackframe in procdef.procoptions then
|
|
|
|
+ exit;
|
|
|
|
|
|
{ estimate stack frame size }
|
|
{ estimate stack frame size }
|
|
if pi_estimatestacksize in flags then
|
|
if pi_estimatestacksize in flags then
|
|
begin
|
|
begin
|
|
- stackframesize:=maxpushedparasize+32;
|
|
|
|
|
|
+ stackframesize:=maxpushedparasize;
|
|
localsize:=0;
|
|
localsize:=0;
|
|
for i:=0 to procdef.localst.SymList.Count-1 do
|
|
for i:=0 to procdef.localst.SymList.Count-1 do
|
|
if tsym(procdef.localst.SymList[i]).typ=localvarsym then
|
|
if tsym(procdef.localst.SymList[i]).typ=localvarsym then
|
|
@@ -126,7 +118,6 @@ unit cpupi;
|
|
else
|
|
else
|
|
inc(localsize,tabstractnormalvarsym(procdef.parast.SymList[i]).getsize);
|
|
inc(localsize,tabstractnormalvarsym(procdef.parast.SymList[i]).getsize);
|
|
end;
|
|
end;
|
|
-
|
|
|
|
inc(stackframesize,localsize);
|
|
inc(stackframesize,localsize);
|
|
|
|
|
|
if pi_needs_implicit_finally in flags then
|
|
if pi_needs_implicit_finally in flags then
|