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)9test_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)16test_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)23test_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)30test_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)37test_r30_r (void) 38 { 39 /* { dg-final { scan-assembler "mov\\tr14, r30" } } */ 40 return __R30; 41 } 42 43 void test_r30_rw(void)44test_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)52test_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