From 66b9617ba7954bee3eafafce8ab2316ebe836f38 Mon Sep 17 00:00:00 2001 From: pierre Date: Tue, 11 Sep 2012 08:08:48 +0000 Subject: [PATCH] Do not add 8 to NIL values of get_caller_addr git-svn-id: trunk@22370 - --- rtl/sparc/sparc.inc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/rtl/sparc/sparc.inc b/rtl/sparc/sparc.inc index 3178d6d835..d849c70cc6 100644 --- a/rtl/sparc/sparc.inc +++ b/rtl/sparc/sparc.inc @@ -87,7 +87,11 @@ function get_caller_addr(framebp:pointer;addr:pointer=nil):pointer;assembler;nos { flush register windows, so they are stored in the stack } ta 3 ld [%o0+60],%o0 - { add 8 to skip jmpl and delay slot } + { check if new %o0 register is zero } + subcc %o0,0,%o0 + be .Lframezero + nop + { if not zero, add 8 to skip jmpl and delay slot } add %o0,8,%o0 .Lframezero: end;