wingo pushed a commit to branch lightning
in repository guile.
commit b64b82ca5182cfec170b79ae7e8a23d6c088632d
Author: Paulo Andrade <[email protected]>
Date: Thu Feb 22 13:17:28 2018 -0300
Always set t12 to address of called function
* lib/jit_alpha-cpu.c: Always set t12 to the address of the
current function, to properly work on all systems. Previously
the shortcut did only work on Tru64. For Linux and glibc the
change is required.
---
ChangeLog | 7 +++++++
lib/jit_alpha-cpu.c | 6 ++++++
2 files changed, 13 insertions(+)
diff --git a/ChangeLog b/ChangeLog
index 2c0a4ae..660f018 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
2018-02-22 Paulo Andrade <[email protected]>
+ * lib/jit_alpha-cpu.c: Always set t12 to the address of the
+ current function, to properly work on all systems. Previously
+ the shortcut did only work on Tru64. For Linux and glibc the
+ change is required.
+
+2018-02-22 Paulo Andrade <[email protected]>
+
* lib/jit_aarch64.c, lib/jit_alpha.c, lib/jit_arm.c,
lib/jit_mips.c, lib/jit_ppc.c, lib/jit_sparc.c, lib/jit_x86.c:
Correct wrong logic in usage of jit_live in jit_retr. The
diff --git a/lib/jit_alpha-cpu.c b/lib/jit_alpha-cpu.c
index 89755aa..afc22bb 100644
--- a/lib/jit_alpha-cpu.c
+++ b/lib/jit_alpha-cpu.c
@@ -2550,6 +2550,8 @@ _callr(jit_state_t *_jit, jit_int32_t r0)
static void
_calli(jit_state_t *_jit, jit_word_t i0)
{
+ /* FIXME use a small buffer to load constants - using gp */
+#if 0
jit_word_t w;
jit_word_t d;
w = _jit->pc.w;
@@ -2558,6 +2560,10 @@ _calli(jit_state_t *_jit, jit_word_t i0)
BSR(_RA_REGNO, d);
else
(void)calli_p(i0);
+#else
+ movi(_PV_REGNO, i0);
+ callr(_PV_REGNO);
+#endif
}
static jit_word_t