| /* Test for switching architectures during compilation. */ |
| /* { dg-skip-if "instruction not valid on thumb" { *-*-* } { "-mthumb" } { "" } } */ |
| /* { dg-do assemble } */ |
| /* { dg-require-effective-target arm_arm_ok } */ |
| /* { dg-require-effective-target arm_arch_v5te_arm_ok } */ |
| /* { dg-additional-options "-Wall -O2 -march=armv5te -std=gnu99 -marm" } */ |
| |
| #pragma GCC target ("arch=armv6") |
| int test_assembly (int hi, int lo) |
| { |
| int res; |
| __asm__ __volatile__ ( |
| "uxtah %0, %1, %2\n" |
| : "=r" (res) |
| : "r" (hi), "r" (lo)); |
| return res; |
| } |
| |