wingo pushed a commit to branch lightning
in repository guile.
commit 7f677a6d4f3ebc9551b7833b0d158f842d5f75e2
Author: pcpa <[email protected]>
Date: Mon Aug 26 15:53:40 2013 -0300
Correct build and make check on gcc111 - AIX 7.1.
lib/jit_ppc.c: Correct C sequence point problem miscalculating
the actual function address in a function descriptor. Problem
happens with gcc 4.8.1 at least.
---
ChangeLog | 6 ++++++
lib/jit_ppc.c | 6 ++++--
2 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 28fc900..f8ee83e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2013-08-26 Paulo Andrade <[email protected]>
+
+ lib/jit_ppc.c: Correct C sequence point problem miscalculating
+ the actual function address in a function descriptor. Problem
+ happens with gcc 4.8.1 at least.
+
2013-08-11 Paulo Andrade <[email protected]>
* lib/jit_s390x-cpu.c: Correct code checking if immediate
diff --git a/lib/jit_ppc.c b/lib/jit_ppc.c
index 95c5c47..003fcbb 100644
--- a/lib/jit_ppc.c
+++ b/lib/jit_ppc.c
@@ -779,7 +779,8 @@ _emit_code(jit_state_t *_jit)
#if __powerpc__
undo.prolog_offset = 0;
/* code may start with a jump so add an initial function descriptor */
- iw(_jit->pc.w + sizeof(void*) * 3); /* addr */
+ word = _jit->pc.w + sizeof(void*) * 3;
+ iw(word); /* addr */
iw(0); /* toc */
iw(0); /* env */
#endif
@@ -1289,7 +1290,8 @@ _emit_code(jit_state_t *_jit)
}
_jitc->prolog.ptr[_jitc->prolog.offset++] = _jit->pc.w;
/* function descriptor */
- iw(_jit->pc.w + sizeof(void*) * 3); /* addr */
+ word = _jit->pc.w + sizeof(void*) * 3;
+ iw(word); /* addr */
iw(0); /* toc */
iw(0); /* env */
}