Revision 9bbc5cc8 exec-all.h

b/exec-all.h
340 340
		  "1:\n");\
341 341
} while (0)
342 342

  
343
#elif defined(__s390__)
344
/* GCC spills R13, so we have to restore it before branching away */
345

  
346
#define GOTO_TB(opname, tbparam, n)\
347
do {\
348
    static void __attribute__((used)) *dummy ## n = &&dummy_label ## n;\
349
    static void __attribute__((used)) *__op_label ## n \
350
        __asm__(ASM_OP_LABEL_NAME(n, opname)) = &&label ## n;\
351
	__asm__ __volatile__ ( \
352
		"l %%r13,52(%%r15)\n" \
353
		"br %0\n" \
354
	: : "r" (((TranslationBlock*)tbparam)->tb_next[n]));\
355
	\
356
	for(;*((int*)0);); /* just to keep GCC busy */ \
357
label ## n: ;\
358
dummy_label ## n: ;\
359
} while(0)
360

  
343 361
#else
344 362

  
345 363
/* jump to next block operations (more portable code, does not need

Also available in: Unified diff