mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-14 07:09:23 +02:00
+ get_caller_addr/frame implemented
This commit is contained in:
parent
e46d6d2f91
commit
a6589cbab1
@ -29,33 +29,27 @@ end;
|
|||||||
{$define FPC_SYSTEM_HAS_GET_FRAME}
|
{$define FPC_SYSTEM_HAS_GET_FRAME}
|
||||||
function get_frame:pointer;assembler;{$ifdef SYSTEMINLINE}inline;{$endif}
|
function get_frame:pointer;assembler;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||||
asm
|
asm
|
||||||
mov r0,fp
|
mov r0,r11
|
||||||
end ['R0'];
|
end ['R0'];
|
||||||
|
|
||||||
|
|
||||||
{$define FPC_SYSTEM_HAS_GET_CALLER_ADDR}
|
{$define FPC_SYSTEM_HAS_GET_CALLER_ADDR}
|
||||||
function get_caller_addr(framebp:pointer):pointer;assembler;{$ifdef SYSTEMINLINE}inline;{$endif}
|
function get_caller_addr(framebp:pointer):pointer;assembler;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||||
asm
|
asm
|
||||||
(*!!!!!!
|
movs r0,r0
|
||||||
movl framebp,%eax
|
beq .Lg_a_null
|
||||||
orl %eax,%eax
|
ldr r0,[r0,#-4]
|
||||||
jz .Lg_a_null
|
|
||||||
movl 4(%eax),%eax
|
|
||||||
.Lg_a_null:
|
.Lg_a_null:
|
||||||
*)
|
|
||||||
end ['R0'];
|
end ['R0'];
|
||||||
|
|
||||||
|
|
||||||
{$define FPC_SYSTEM_HAS_GET_CALLER_FRAME}
|
{$define FPC_SYSTEM_HAS_GET_CALLER_FRAME}
|
||||||
function get_caller_frame(framebp:pointer):pointer;assembler;{$ifdef SYSTEMINLINE}inline;{$endif}
|
function get_caller_frame(framebp:pointer):pointer;assembler;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||||
asm
|
asm
|
||||||
(*!!!!!
|
movs r0,r0
|
||||||
movl framebp,%eax
|
beq .Lgnf_null
|
||||||
orl %eax,%eax
|
ldr r0,[r0,#-12]
|
||||||
jz .Lgnf_null
|
|
||||||
movl (%eax),%eax
|
|
||||||
.Lgnf_null:
|
.Lgnf_null:
|
||||||
*)
|
|
||||||
end ['R0'];
|
end ['R0'];
|
||||||
|
|
||||||
|
|
||||||
@ -123,7 +117,10 @@ end;
|
|||||||
|
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.4 2004-01-20 21:01:57 florian
|
Revision 1.5 2004-01-21 23:12:07 florian
|
||||||
|
+ get_caller_addr/frame implemented
|
||||||
|
|
||||||
|
Revision 1.4 2004/01/20 21:01:57 florian
|
||||||
* fixed setjump
|
* fixed setjump
|
||||||
* fixed syscalls
|
* fixed syscalls
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user