summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--target-mips/helper.h20
-rw-r--r--target-mips/translate.c5
2 files changed, 18 insertions, 7 deletions
diff --git a/target-mips/helper.h b/target-mips/helper.h
index 98a97c9be2..cee92fc823 100644
--- a/target-mips/helper.h
+++ b/target-mips/helper.h
@@ -1,8 +1,14 @@
-void do_raise_exception_err(int excp, int err);
-void do_raise_exception(int excp);
-void do_interrupt_restart (void);
+#ifndef DEF_HELPER
+#define DEF_HELPER(ret, name, params) ret name params;
+#endif
-void do_clo (void);
-void do_clz (void);
-void do_dclo (void);
-void do_dclz (void);
+DEF_HELPER(void, do_raise_exception_err, (int excp, int err))
+DEF_HELPER(void, do_raise_exception, (int excp))
+DEF_HELPER(void, do_interrupt_restart, (void))
+
+DEF_HELPER(void, do_clo, (void))
+DEF_HELPER(void, do_clz, (void))
+#ifdef TARGET_MIPS64
+DEF_HELPER(void, do_dclo, (void))
+DEF_HELPER(void, do_dclz, (void))
+#endif
diff --git a/target-mips/translate.c b/target-mips/translate.c
index f0dc14d828..e6b3f547c5 100644
--- a/target-mips/translate.c
+++ b/target-mips/translate.c
@@ -7476,6 +7476,11 @@ static void mips_tcg_init(void)
cpu_T[1] = tcg_global_reg_new(TCG_TYPE_TL, TCG_AREG2, "T1");
#endif
+ /* register helpers */
+#undef DEF_HELPER
+#define DEF_HELPER(ret, name, params) tcg_register_helper(name, #name);
+#include "helper.h"
+
inited = 1;
}