The first non-register argument isn't placed at offset 0.
Cc: Stefan Weil <[email protected]>
Signed-off-by: Richard Henderson <[email protected]>
---
tcg/i386/tcg-target.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
---
You were right, Stefan. Naturally, this bug really manifest
until paging is enabled, thus all the rom boot tests are false.
Please give this a go.
r~
diff --git a/tcg/i386/tcg-target.c b/tcg/i386/tcg-target.c
index d910233..4133dcf 100644
--- a/tcg/i386/tcg-target.c
+++ b/tcg/i386/tcg-target.c
@@ -1407,7 +1407,8 @@ static void tcg_out_qemu_st_slow_path(TCGContext *s,
TCGLabelQemuLdst *l)
} else {
retaddr = TCG_REG_RAX;
tcg_out_movi(s, TCG_TYPE_PTR, retaddr, (uintptr_t)l->raddr);
- tcg_out_st(s, TCG_TYPE_PTR, retaddr, TCG_REG_ESP, 0);
+ tcg_out_st(s, TCG_TYPE_PTR, retaddr, TCG_REG_ESP,
+ TCG_TARGET_CALL_STACK_OFFSET);
}
}
--
1.9.3