1 /* __regio_symbol operations. */
2 
3 /* { dg-do compile } */
4 /* { dg-options "-Os" } */
5 
6 #include "regio.h"
7 
8 void
test_r30_w_const(void)9 test_r30_w_const (void)
10 {
11   /* { dg-final { scan-assembler "mov\\tr30, r\[012\]\[0-9\]?" } } */
12   __R30 = 1;
13 }
14 
15 void
test_r31_w_zext_qi(unsigned char val1)16 test_r31_w_zext_qi (unsigned char val1)
17 {
18   /* { dg-final { scan-assembler "mov\\tr31, r14.b0" } } */
19   __R31 = val1;
20 }
21 
22 void
test_r31_w_zext_hi(unsigned short val1)23 test_r31_w_zext_hi (unsigned short val1)
24 {
25   /* { dg-final { scan-assembler "mov\\tr31, r14.w0" } } */
26   __R31 = val1;
27 }
28 
29 void
test_r31_w(unsigned int val1)30 test_r31_w (unsigned int val1)
31 {
32   /* { dg-final { scan-assembler "mov\\tr31, r14" } } */
33   __R31 = val1;
34 }
35 
36 uint32_t
test_r30_r(void)37 test_r30_r (void)
38 {
39   /* { dg-final { scan-assembler "mov\\tr14, r30" } } */
40   return __R30;
41 }
42 
43 void
test_r30_rw(void)44 test_r30_rw (void)
45 {
46   /* { dg-final { scan-assembler "mov\\tr\[012\]\[0-9\]?, r30" } } */
47   /* { dg-final { scan-assembler "mov\\tr30, r\[012\]\[0-9\]?" } } */
48   __R30 = __R30;
49 }
50 
51 void
test_r31_rw(void)52 test_r31_rw (void)
53 {
54   /* { dg-final { scan-assembler "mov\\tr\[012\]\[0-9\]?, r31" } } */
55   /* { dg-final { scan-assembler "mov\\tr31, r\[012\]\[0-9\]?" } } */
56   __R31 |= 101;
57 }
58 
59