Browse Source

* Xtensa: set correct frame pointer register

git-svn-id: trunk@44366 -
florian 5 years ago
parent
commit
f976083e7f
1 changed files with 15 additions and 0 deletions
  1. 15 0
      compiler/xtensa/cpupi.pas

+ 15 - 0
compiler/xtensa/cpupi.pas

@@ -46,6 +46,7 @@ unit cpupi;
           constructor create(aparent: tprocinfo); override;
           procedure set_first_temp_offset;override;
           function calc_stackframe_size:longint;override;
+          procedure init_framepointer;override;
       end;
 
 
@@ -126,6 +127,20 @@ unit cpupi;
       end;
 
 
+    procedure txtensaprocinfo.init_framepointer;
+      begin
+        if target_info.abi=abi_xtensa_call0 then
+          begin
+            RS_FRAME_POINTER_REG:=RS_A15;
+            NR_FRAME_POINTER_REG:=NR_A15;
+          end
+        else
+          begin
+            RS_FRAME_POINTER_REG:=RS_A7;
+            NR_FRAME_POINTER_REG:=NR_A7;
+          end;
+      end;
+
 begin
    cprocinfo:=txtensaprocinfo;
 end.