summaryrefslogtreecommitdiff
path: root/dyngen-exec.h
diff options
context:
space:
mode:
Diffstat (limited to 'dyngen-exec.h')
-rw-r--r--dyngen-exec.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/dyngen-exec.h b/dyngen-exec.h
index 62bcbf33b5..2bf6922304 100644
--- a/dyngen-exec.h
+++ b/dyngen-exec.h
@@ -209,16 +209,22 @@ extern int __op_param1, __op_param2, __op_param3;
extern int __op_jmp0, __op_jmp1, __op_jmp2, __op_jmp3;
+#if defined(_WIN32)
+#define ASM_NAME(x) "_" #x
+#else
+#define ASM_NAME(x) #x
+#endif
+
#ifdef __i386__
#define EXIT_TB() asm volatile ("ret")
-#define GOTO_LABEL_PARAM(n) asm volatile ("jmp __op_gen_label" #n)
+#define GOTO_LABEL_PARAM(n) asm volatile ("jmp " ASM_NAME(__op_gen_label) #n)
#endif
#ifdef __x86_64__
#define EXIT_TB() asm volatile ("ret")
#endif
#ifdef __powerpc__
#define EXIT_TB() asm volatile ("blr")
-#define GOTO_LABEL_PARAM(n) asm volatile ("b __op_gen_label" #n)
+#define GOTO_LABEL_PARAM(n) asm volatile ("b " ASM_NAME(__op_gen_label) #n)
#endif
#ifdef __s390__
#define EXIT_TB() asm volatile ("br %r14")