Explorar o código

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

git-svn-id: trunk@25795 -
nickysn %!s(int64=11) %!d(string=hai) anos
pai
achega
ea1370a89e
Modificáronse 1 ficheiros con 18 adicións e 0 borrados
  1. 18 0
      rtl/i8086/i8086.inc

+ 18 - 0
rtl/i8086/i8086.inc

@@ -52,6 +52,24 @@ asm
   mov ax, ss
 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}
 function get_caller_addr(framebp:pointer;addr:codepointer=nil):codepointer;nostackframe;assembler;
 asm