From 89f74579522e93e67c1e9c95912cbbd349791380 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcin=20Ko=C5=9Bcielnicki?= Date: Tue, 8 Mar 2016 03:46:22 +0100 Subject: [PATCH] ppc: Fix 64-bit SAVE_CR The ABI mandates using CR save space in the caller's frame - we cannot use the slot in our own frame, since some function we call could overwrite it. --- src/vm_ppc.dasc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/vm_ppc.dasc b/src/vm_ppc.dasc index 18ac6530..f8775611 100644 --- a/src/vm_ppc.dasc +++ b/src/vm_ppc.dasc @@ -191,6 +191,7 @@ |.define SAVE_MULTRES, 456(sp) // | |.define SAVE_CFRAME, 448(sp) // / 64 bit C frame chain. |.define SAVE_LR, 416(sp) +|.define SAVE_CR, 408(sp) // 64 bit CR save. |.define CFRAME_SPACE, 400 // Delta for sp. |// Back chain for sp: 400(sp) <-- sp entering interpreter |.define SAVE_FPR_, 256 // .. 256+18*8: 64 bit FPR saves. @@ -202,7 +203,7 @@ |.define TONUM_LO, 28(sp) // \ Compiler temp (ABI mandated). |.define TONUM_HI, 24(sp) // / |// Next frame lr: 16(sp) -|.define SAVE_CR, 8(sp) // 64 bit CR save. +|// Next frame cr: 8(sp) |// Back chain for sp: 0(sp) <-- sp while in interpreter | |.define TMPD_BLO, 39(sp)