Browse Source

* improve call0 calling conventions

git-svn-id: trunk@46797 -
florian 4 years ago
parent
commit
93eef547ae
3 changed files with 5 additions and 2 deletions
  1. 1 1
      compiler/psub.pas
  2. 2 0
      compiler/xtensa/cpupara.pas
  3. 2 1
      compiler/xtensa/cpupi.pas

+ 1 - 1
compiler/psub.pas

@@ -1173,7 +1173,7 @@ implementation
           with an internal error, so this switch is not enabled by default yet. To overcome this,
           multipass compilation of subroutines must be supported
         }
-        if (target_info.abi=abi_xtensa_windowed) and (procdef.stack_tainting_parameter(calleeside)) then
+        if procdef.stack_tainting_parameter(calleeside) then
           begin
             include(flags,pi_estimatestacksize);
             set_first_temp_offset;

+ 2 - 0
compiler/xtensa/cpupara.pas

@@ -158,6 +158,8 @@ unit cpupara;
             begin
               curintreg:=RS_A2;
               maxintreg:=RS_A7;
+              if (side=calleeside) and (current_procinfo.framepointer=NR_STACK_POINTER_REG) then
+                cur_stack_offset:=(p as tcpuprocdef).total_stackframe_size;
             end;
           else
             Internalerror(2020031404);

+ 2 - 1
compiler/xtensa/cpupi.pas

@@ -84,7 +84,8 @@ unit cpupi;
             callins:=A_CALL0;
             callxins:=A_CALLX0;
             maxcall:=0;
-            framepointer:=NR_FRAME_POINTER_REG;
+            { we do not use a frame pointer }
+            framepointer:=NR_STACK_POINTER_REG;
           end;
       end;