aboutsummaryrefslogtreecommitdiff
path: root/tcg
diff options
context:
space:
mode:
authorRichard Henderson <rth@twiddle.net>2014-03-25 08:32:04 -0700
committerRichard Henderson <rth@twiddle.net>2014-06-23 07:31:29 -0700
commit5456788db7982938db6600d6308fd2f449b40d5c (patch)
tree9ee277e9c1176d8605676a047fa7d7e23bcd2b66 /tcg
parenta921fddcc1c9aae30c89e408f1e31e831a0a4389 (diff)
downloadqemu-5456788db7982938db6600d6308fd2f449b40d5c.zip
qemu-5456788db7982938db6600d6308fd2f449b40d5c.tar.gz
qemu-5456788db7982938db6600d6308fd2f449b40d5c.tar.bz2
tcg-ppc64: Fix TCG_TARGET_CALL_STACK_OFFSET
The calling convention reserves space for the 8 register parameters on the stack, so using only 6*8=48 as the offset was wrong. We never saw this bug because we don't have any helpers with more than 5 parameters. Tested-by: Tom Musta <tommusta@gmail.com> Signed-off-by: Richard Henderson <rth@twiddle.net>
Diffstat (limited to 'tcg')
-rw-r--r--tcg/ppc64/tcg-target.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/tcg/ppc64/tcg-target.c b/tcg/ppc64/tcg-target.c
index c5362da..44abf7b 100644
--- a/tcg/ppc64/tcg-target.c
+++ b/tcg/ppc64/tcg-target.c
@@ -1408,7 +1408,7 @@ static void tcg_out_qemu_st(TCGContext *s, TCGReg data_reg, TCGReg addr_reg,
/* Parameters for function call generation, used in tcg.c. */
#define TCG_TARGET_STACK_ALIGN 16
-#define TCG_TARGET_CALL_STACK_OFFSET 48
+#define TCG_TARGET_CALL_STACK_OFFSET ((6 + 8) * SZR)
#define TCG_TARGET_EXTEND_ARGS 1
#define FRAME_SIZE ((int) \