From ea1370a89e0800b53cb2016686bdcd7281017da7 Mon Sep 17 00:00:00 2001 From: nickysn Date: Tue, 15 Oct 2013 20:16:13 +0000 Subject: [PATCH] + implementated get_frame() and get_pc_addr() for the i8086 git-svn-id: trunk@25795 - --- rtl/i8086/i8086.inc | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/rtl/i8086/i8086.inc b/rtl/i8086/i8086.inc index c8d3fee6e2..81b1bcfecf 100644 --- a/rtl/i8086/i8086.inc +++ b/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