From f0a77f9e598960fe9b6af76f1514e0670e482a7c Mon Sep 17 00:00:00 2001 From: epetrich Date: Fri, 24 Nov 2006 05:04:05 +0000 Subject: [PATCH] * src/hc08/gen.c (genPcall): fix for bug #1601032 git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@4482 4a8a32a2-be11-0410-ad9d-d568d2c75423 --- ChangeLog | 4 ++++ src/hc08/gen.c | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/ChangeLog b/ChangeLog index 282e00e4..2dbe7e57 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2006-11-24 Erik Petrich + + * src/hc08/gen.c (genPcall): fix for bug #1601032 + 2006-11-23 Maarten Brock * device/include/mcs51/c8051f000.h, device/include/mcs51/C8051F000.h, diff --git a/src/hc08/gen.c b/src/hc08/gen.c index 2897a995..5659f555 100644 --- a/src/hc08/gen.c +++ b/src/hc08/gen.c @@ -2735,6 +2735,8 @@ genPcall (iCode * ic) emitBranch ("bsr", tlbl); emitBranch ("bra", rlbl); emitLabel (tlbl); + _G.stackPushes += 2; /* account for the bsr return address now on stack */ + updateCFA(); /* Push the function's address */ aopOp (IC_LEFT (ic), ic, FALSE); @@ -2753,6 +2755,8 @@ genPcall (iCode * ic) emitcode ("rts", ""); emitLabel (rlbl); + _G.stackPushes -= 4; /* account for rts here & in called function */ + updateCFA(); /* if we need assign a result value */ -- 2.30.2