Dylan McKay | a789f40 | 2016-11-16 21:58:04 +0000 | [diff] [blame] | 1 | ; RUN: llc < %s -march=avr | FileCheck %s |
| 2 | |
| 3 | define avr_intrcc void @interrupt_handler() { |
| 4 | ; CHECK-LABEL: interrupt_handler: |
| 5 | ; CHECK: sei |
| 6 | ; CHECK-NEXT: push r0 |
| 7 | ; CHECK-NEXT: push r1 |
| 8 | ; CHECK-NEXT: in r0, 63 |
| 9 | ; CHECK-NEXT: push r0 |
| 10 | ; CHECK: eor r0, r0 |
| 11 | ; CHECK: pop r0 |
| 12 | ; CHECK-NEXT: out 63, r0 |
| 13 | ; CHECK-NEXT: pop r1 |
| 14 | ; CHECK-NEXT: pop r0 |
| 15 | ; CHECK-NEXT: reti |
| 16 | ret void |
| 17 | } |
| 18 | |
| 19 | define avr_signalcc void @signal_handler() { |
| 20 | ; CHECK-LABEL: signal_handler: |
| 21 | ; CHECK-NOT: sei |
| 22 | ; CHECK: push r0 |
| 23 | ; CHECK-NEXT: push r1 |
| 24 | ; CHECK-NEXT: in r0, 63 |
| 25 | ; CHECK-NEXT: push r0 |
| 26 | ; CHECK: eor r0, r0 |
| 27 | ; CHECK: pop r0 |
| 28 | ; CHECK-NEXT: out 63, r0 |
| 29 | ; CHECK-NEXT: pop r1 |
| 30 | ; CHECK-NEXT: pop r0 |
| 31 | ; CHECK-NEXT: reti |
| 32 | ret void |
| 33 | } |