| /* APPLE LOCAL file CW asm blocks */ |
| /* Test whole asm functions. */ |
| |
| /* { dg-do run { target powerpc*-*-darwin* } } */ |
| /* { dg-options "-fasm-blocks -O2" } */ |
| |
| extern "C" void abort(void); |
| |
| asm void normal_fn () |
| { |
| nop |
| nop |
| } |
| |
| asm void nofralloc_fn () |
| { |
| nofralloc |
| nop |
| blr |
| } |
| |
| asm void fralloc_fn () |
| { |
| fralloc |
| nop |
| nop |
| } |
| |
| asm int fralloc_fn_1 () |
| { |
| fralloc |
| mr r4,r1 |
| frfree |
| sub r3,r4,r1 |
| blr |
| } |
| |
| asm int fralloc_fn_2 () |
| { |
| fralloc 1000 |
| nop |
| frfree |
| blr |
| } |
| |
| asm int fralloc_fn_3 () |
| { |
| int loc1, loc2; |
| fralloc 41 |
| nop |
| mr r3, loc2 |
| frfree |
| mr r3, loc1 |
| blr |
| } |
| |
| asm int f6 () |
| { |
| opword 0x386004d2 /* li r3,1234 */ |
| } |
| |
| main() |
| { |
| normal_fn (); |
| nofralloc_fn (); |
| fralloc_fn (); |
| fralloc_fn_1 (); |
| fralloc_fn_2 (); |
| fralloc_fn_3 (); |
| if (f6 () != 1234) |
| abort (); |
| return 0; |
| } |