| /* { dg-do compile } */ |
| /* { dg-skip-if "not implemented for Darwin" { powerpc*-*-darwin* } } */ |
| /* { dg-additional-options "-mno-speculate-indirect-jumps" } */ |
| /* { dg-warning "'-mno-speculate-indirect-jumps' is deprecated" "" { target *-*-* } 0 } */ |
| |
| /* Test for deliberate misprediction of indirect calls. */ |
| |
| extern int (*f)(); |
| |
| int bar () |
| { |
| return (*f) (); |
| } |
| |
| /* { dg-final { scan-assembler "crset 2" } } */ |
| |
| /* The AIX and ELFv2 ABIs don't allow a sibcall here. */ |
| /* { dg-final { scan-assembler "beqctrl-" { target { lp64 || { powerpc*-*-aix* } } } } } */ |
| |
| /* The other ABIs do allow a sibcall. */ |
| /* { dg-final { scan-assembler "beqctr-" { target { ilp32 && !powerpc*-*-aix* } } } } */ |
| /* { dg-final { scan-assembler {b \$} { target { ilp32 && !powerpc*-*-aix* } } } } */ |