[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] 01/02: Fix mips32r6 bug
From: |
Andy Wingo |
Subject: |
[Guile-commits] 01/02: Fix mips32r6 bug |
Date: |
Mon, 6 Jan 2020 16:01:09 -0500 (EST) |
wingo pushed a commit to branch master
in repository guile.
commit 2db2b12e857a2694b5a70e108055e2c902051247
Author: Andy Wingo <address@hidden>
AuthorDate: Mon Jan 6 21:58:04 2020 +0100
Fix mips32r6 bug
See also:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=925129
http://hades.mech.northwestern.edu/images/1/16/MIPS32_Architecture_Volume_II-A_Instruction_Set.pdf
https://lists.gnu.org/archive/html/lightning/2019-08/msg00010.html
https://lists.gnu.org/archive/html/guile-devel/2019-08/msg00030.html
* lightening/mips-cpu.c: Fix encoding of LR. Thanks to Bruno Haible.
---
lightening/mips-cpu.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/lightening/mips-cpu.c b/lightening/mips-cpu.c
index 7ab58b8..704a2cd 100644
--- a/lightening/mips-cpu.c
+++ b/lightening/mips-cpu.c
@@ -379,7 +379,11 @@ static void _nop(jit_state_t*,int32_t);
# define BGTZ(rs,im) hrri(MIPS_BGTZ,rs,_ZERO_REGNO,im)
# define BNE(rs,rt,im) hrri(MIPS_BNE,rs,rt,im)
# define JALR(r0)
hrrrit(MIPS_SPECIAL,r0,0,_RA_REGNO,0,MIPS_JALR)
-# define JR(r0) hrrrit(MIPS_SPECIAL,r0,0,0,0,MIPS_JR)
+# if 1 /* supports MIPS32 R6 */
+# define JR(r0) hrrrit(MIPS_SPECIAL,r0,0,0,0,MIPS_JALR)
+# else /* does not support MIPS32 R6 */
+# define JR(r0) hrrrit(MIPS_SPECIAL,r0,0,0,0,MIPS_JR)
+# endif
# define J(i0) hi(MIPS_J,i0)
# define MOVZ(rd,rs,rt) hrrrit(0,rs,rt,rd,0,MIPS_MOVZ)
# define comr(r0,r1) xori(r0,r1,-1)