209 |
|
|
210 |
extern int __op_jmp0, __op_jmp1, __op_jmp2, __op_jmp3; |
extern int __op_jmp0, __op_jmp1, __op_jmp2, __op_jmp3; |
211 |
|
|
212 |
|
#if defined(_WIN32) |
213 |
|
#define ASM_NAME(x) "_" #x |
214 |
|
#else |
215 |
|
#define ASM_NAME(x) #x |
216 |
|
#endif |
217 |
|
|
218 |
#ifdef __i386__ |
#ifdef __i386__ |
219 |
#define EXIT_TB() asm volatile ("ret") |
#define EXIT_TB() asm volatile ("ret") |
220 |
#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) |
221 |
#endif |
#endif |
222 |
#ifdef __x86_64__ |
#ifdef __x86_64__ |
223 |
#define EXIT_TB() asm volatile ("ret") |
#define EXIT_TB() asm volatile ("ret") |
224 |
#endif |
#endif |
225 |
#ifdef __powerpc__ |
#ifdef __powerpc__ |
226 |
#define EXIT_TB() asm volatile ("blr") |
#define EXIT_TB() asm volatile ("blr") |
227 |
#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) |
228 |
#endif |
#endif |
229 |
#ifdef __s390__ |
#ifdef __s390__ |
230 |
#define EXIT_TB() asm volatile ("br %r14") |
#define EXIT_TB() asm volatile ("br %r14") |