wingo pushed a commit to branch lightning
in repository guile.
commit 13d521bded5ee4fd3ddcddc00fa3d5bbc68b5491
Author: pcpa <[email protected]>
Date: Tue Sep 10 21:26:13 2013 -0300
S390X: Correct values of float registers saved on stack.
* lib/jit_s390x-cpu.c: Spill/reload correct callee save
float registers.
---
ChangeLog | 5 +++++
lib/jit_s390x-cpu.c | 16 ++++++++--------
2 files changed, 13 insertions(+), 8 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 4667e99..0f70ff3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
2013-09-10 Paulo Andrade <[email protected]>
+ * lib/jit_s390x-cpu.c: Spill/reload correct callee save
+ float registers.
+
+2013-09-10 Paulo Andrade <[email protected]>
+
* lib/jit_hppa-cpu.c: Correct code to call a function stored
in a register or a patched function address.
diff --git a/lib/jit_s390x-cpu.c b/lib/jit_s390x-cpu.c
index fec4799..343a39a 100644
--- a/lib/jit_s390x-cpu.c
+++ b/lib/jit_s390x-cpu.c
@@ -3285,10 +3285,10 @@ _prolog(jit_state_t *_jit, jit_node_t *i0)
SPILL(_F12, 32);
SPILL(_F13, 48);
/* Last 4 in high address */
- SPILL(_F10, 128);
- SPILL(_F11, 136);
- SPILL(_F12, 144);
- SPILL(_F13, 152);
+ SPILL(_F14, 128);
+ SPILL(_F15, 136);
+ SPILL(_F8, 144);
+ SPILL(_F9, 152);
#undef SPILL
LGR(_R13_REGNO, _R15_REGNO);
subi(_R15_REGNO, _R15_REGNO, stack_framesize + _jitc->function->stack);
@@ -3313,10 +3313,10 @@ _epilog(jit_state_t *_jit, jit_node_t *i0)
LOAD(_F11, 24);
LOAD(_F12, 32);
LOAD(_F13, 48);
- LOAD(_F10, 128);
- LOAD(_F11, 136);
- LOAD(_F12, 144);
- LOAD(_F13, 152);
+ LOAD(_F14, 128);
+ LOAD(_F15, 136);
+ LOAD(_F8, 144);
+ LOAD(_F9, 152);
#undef LOAD
LMG(rn(gprs[regno]), _R15_REGNO, x20(offset), _R15_REGNO);
BR(_R14_REGNO);