aboutsummaryrefslogtreecommitdiff
path: root/dyngen-exec.h
diff options
context:
space:
mode:
Diffstat (limited to 'dyngen-exec.h')
-rw-r--r--dyngen-exec.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/dyngen-exec.h b/dyngen-exec.h
index 69c3cd99cf..8ceb2301df 100644
--- a/dyngen-exec.h
+++ b/dyngen-exec.h
@@ -129,10 +129,15 @@ extern int printf(const char *, ...);
#define AREG3 "r6"
#endif
#ifdef __mips__
-#define AREG0 "s3"
+#define AREG0 "fp"
#define AREG1 "s0"
#define AREG2 "s1"
#define AREG3 "s2"
+#define AREG4 "s3"
+#define AREG5 "s4"
+#define AREG6 "s5"
+#define AREG7 "s6"
+#define AREG8 "s7"
#endif
#ifdef __sparc__
#ifdef HOST_SOLARIS
@@ -280,5 +285,9 @@ extern int __op_jmp0, __op_jmp1, __op_jmp2, __op_jmp3;
#ifdef __mc68000
#define EXIT_TB() asm volatile ("rts")
#endif
+#ifdef __mips__
+#define EXIT_TB() asm volatile ("jr $ra")
+#define GOTO_LABEL_PARAM(n) asm volatile (".set noat; la $1, " ASM_NAME(__op_gen_label) #n "; jr $1; .set at")
+#endif
#endif /* !defined(__DYNGEN_EXEC_H__) */