| /* __regio_symbol operations. */ |
| |
| /* { dg-do compile } */ |
| /* { dg-options "-Os" } */ |
| |
| #include "regio.h" |
| |
| void |
| test_r30_w_const (void) |
| { |
| /* { dg-final { scan-assembler "mov\\tr30, r\[012\]\[0-9\]?" } } */ |
| __R30 = 1; |
| } |
| |
| void |
| test_r31_w_zext_qi (unsigned char val1) |
| { |
| /* { dg-final { scan-assembler "mov\\tr31, r14.b0" } } */ |
| __R31 = val1; |
| } |
| |
| void |
| test_r31_w_zext_hi (unsigned short val1) |
| { |
| /* { dg-final { scan-assembler "mov\\tr31, r14.w0" } } */ |
| __R31 = val1; |
| } |
| |
| void |
| test_r31_w (unsigned int val1) |
| { |
| /* { dg-final { scan-assembler "mov\\tr31, r14" } } */ |
| __R31 = val1; |
| } |
| |
| uint32_t |
| test_r30_r (void) |
| { |
| /* { dg-final { scan-assembler "mov\\tr14, r30" } } */ |
| return __R30; |
| } |
| |
| void |
| test_r30_rw (void) |
| { |
| /* { dg-final { scan-assembler "mov\\tr\[012\]\[0-9\]?, r30" } } */ |
| /* { dg-final { scan-assembler "mov\\tr30, r\[012\]\[0-9\]?" } } */ |
| __R30 = __R30; |
| } |
| |
| void |
| test_r31_rw (void) |
| { |
| /* { dg-final { scan-assembler "mov\\tr\[012\]\[0-9\]?, r31" } } */ |
| /* { dg-final { scan-assembler "mov\\tr31, r\[012\]\[0-9\]?" } } */ |
| __R31 |= 101; |
| } |
| |