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