* fixed get_caller_frame() and get_caller_addr() for nil addresses

git-svn-id: trunk@7470 -
This commit is contained in:
Jonas Maebe 2007-05-25 12:01:28 +00:00
parent 4919cecb3b
commit 4f95f742f4

View File

@ -73,21 +73,29 @@ function get_frame:pointer;assembler;nostackframe;
function get_caller_addr(framebp:pointer):pointer;assembler;nostackframe;
asm
{ framebp = %o0 }
subcc %o0,0,%o0
be .Lframezero
nop
{ flush register windows, so they are stored in the stack }
ta 3
ld [%o0+60],%o0
{ add 8 to skip jmpl and delay slot }
add %o0,8,%o0
.Lframezero:
end;
{$define FPC_SYSTEM_HAS_GET_CALLER_FRAME}
function get_caller_frame(framebp:pointer):pointer;assembler;nostackframe;
asm
{ framebp = %o0 }
subcc %o0,0,%o0
be .Lframezero
nop
{ flush register windows, so they are stored in the stack }
ta 3
{ framebp = %o0 }
ld [%o0+56],%o0
.Lframezero:
end;