浏览代码

* get_frame_*/get_caller_* does not work yet on MIPS

git-svn-id: trunk@21239 -
florian 13 年之前
父节点
当前提交
6b8f452804
共有 1 个文件被更改,包括 18 次插入3 次删除
  1. 18 3
      rtl/mips/mips.inc

+ 18 - 3
rtl/mips/mips.inc

@@ -57,21 +57,36 @@ var
 {$define FPC_SYSTEM_HAS_GET_FRAME}
 function get_frame:pointer;assembler;nostackframe;
   asm
-    lw $2,0($sp)
+    { we need to use the information of the .pdr section to do this properly:
+       0 proc. start adress
+       4 regmask
+       8 reg. offset
+      12 fmask
+      16 foffset
+      20 frame size
+      24 stack reg
+      28 link reg
+
+      Further, we need to know the pc
+    }
+    // lw $2,0($sp)
+    lui $2,0
   end;
 
 
 {$define FPC_SYSTEM_HAS_GET_CALLER_ADDR}
 function get_caller_addr(framebp:pointer):pointer;assembler;nostackframe;
   asm
-    lw $2,4($4) // #movl    4(%eax),%eax
+    // lw $2,4($4) // #movl    4(%eax),%eax
+    lui $2,0
   end;
 
 
 {$define FPC_SYSTEM_HAS_GET_CALLER_FRAME}
 function get_caller_frame(framebp:pointer):pointer;assembler;nostackframe;
   asm
-    lw $2,0($4) // #movl    (%eax),%eax
+    // lw $2,0($4) // #movl    (%eax),%eax
+    lui $2,0
   end;