Revision 810260a8 tcg/tcg.h

b/tcg/tcg.h
414 414

  
415 415
extern uint8_t code_gen_prologue[];
416 416
#ifdef __powerpc__
417
#ifdef __powerpc64__
418
#define tcg_qemu_tb_exec(tb_ptr)                                        \
419
    ({ unsigned long p;                                                 \
420
       asm volatile (                                                   \
421
         "mtctr %1\n\t"                                                 \
422
         "mr 3,%2\n\t"                                                  \
423
         "bctrl\n\t"                                                    \
424
         "mr %0,3\n\t"                                                  \
425
         : "=r" (p)                                                     \
426
         : "r" (code_gen_prologue), "r" (tb_ptr)                        \
427
         : "3", "4", "5", "6", "7", "8", "9", "10", "11", "12");        \
428
    p;                                                                  \
429
    })
430
#else
417 431
#define tcg_qemu_tb_exec(tb_ptr) \
418 432
    ((long REGPARM __attribute__ ((longcall)) (*)(void *))code_gen_prologue)(tb_ptr)
433
#endif
419 434
#else
420 435
#define tcg_qemu_tb_exec(tb_ptr) ((long REGPARM (*)(void *))code_gen_prologue)(tb_ptr)
421 436
#endif

Also available in: Unified diff