1 /* { dg-do compile } */
2 /* { dg-skip-if "-mpure-code supports M-profile only" { *-*-* } { "-mpure-code" } } */
3 /* { dg-options "-O2 -fno-omit-frame-pointer -march=armv7-a" } */
4
5 int a, h, j;
6 long long d, e, i;
7 int f;
8 int
9 fn1 (void *p1, int p2)
10 {
11 switch (p2)
12 case 8:
13 {
14 register int b = *(long long *) p1, c asm ("r2");
15 asm ("%0": "=r" (a), "=r" (c):"r" (b), "r" (0));
16 *(long long *) p1 = c;
17 }
18 }
19
20 int
21 fn2 ()
22 {
23 int k;
24 k = f;
25 while (1)
26 {
27 fn1 (&i, sizeof i);
28 e = d + k;
29 switch (d)
30 case 0:
31 (
32 {
33 register int l asm ("r4");
34 register int m asm ("r0");
35 asm (" .err .endif\n\t": "=r" (h), "=r" (j):"r" (m),
36 "r"
37 (l));;
38 });
39 }
40 }