Browse Source

+ implementated get_frame() and get_pc_addr() for the i8086

git-svn-id: trunk@25795 -
nickysn 11 years ago
parent
commit
ea1370a89e
1 changed files with 18 additions and 0 deletions
  1. 18 0
      rtl/i8086/i8086.inc

+ 18 - 0
rtl/i8086/i8086.inc

@@ -52,6 +52,24 @@ asm
   mov ax, ss
   mov ax, ss
 end;
 end;
 
 
+{$IFNDEF INTERNAL_BACKTRACE}
+{$define FPC_SYSTEM_HAS_GET_FRAME}
+function get_frame:pointer;assembler;nostackframe;{$ifdef SYSTEMINLINE}inline;{$endif}
+asm
+  mov ax, bp
+end;
+{$ENDIF not INTERNAL_BACKTRACE}
+
+{$define FPC_SYSTEM_HAS_GET_PC_ADDR}
+Function Get_pc_addr : CodePointer;assembler;nostackframe;
+asm
+  mov bx, bp
+  mov ax, ss:[bx]
+{$ifdef FPC_X86_CODE_FAR}
+  mov dx, ss:[bx+2]
+{$endif FPC_X86_CODE_FAR}
+end;
+
 {$define FPC_SYSTEM_HAS_GET_CALLER_ADDR}
 {$define FPC_SYSTEM_HAS_GET_CALLER_ADDR}
 function get_caller_addr(framebp:pointer;addr:codepointer=nil):codepointer;nostackframe;assembler;
 function get_caller_addr(framebp:pointer;addr:codepointer=nil):codepointer;nostackframe;assembler;
 asm
 asm