Rebase.
[official-gcc.git] / gcc / testsuite / gcc.target / cris / inasm-other.c
blobc1c043f56d340bbe54e2b0dcd67efa28f3cacc31
1 /* { dg-do assemble } */
2 /* { dg-options "-DOTHER_ISA=0 -march=v0" { target crisv32-*-* } } */
3 /* { dg-options "-DOTHER_ISA=32 -march=v32" { target cris-*-* } } */
5 /* Make sure we can (generate code and) assemble for the "other"
6 variant, with the twist that the gcc option -march=v0 isn't
7 valid for the assembler. We don't check that the generated code
8 is for the other variant; other tests cover that already, but they
9 don't *assemble* the result. We can't trust the prologue and
10 epilogue to contain incompatible insns (they actually deliberately
11 don't, usually and it'd be brittle to tweak the function signature
12 to make it so), so we force some with inline asm. */
14 void f(void)
16 #if OTHER_ISA == 32
17 asm volatile ("addoq 42,$r11,$acr");
18 #else
19 asm volatile ("0: move.d [$r12=$sp+42],$r10\n\t"
20 "bwf 0b\n\t"
21 "nop");
22 #endif