1 .text 2 3;;; Test some common instruction patterns for disabling/enabling interrupts. 4;;; "MOV &FOO,r10" is used as an artbitrary statement which isn't a NOP, to 5;;; break up the instructions being tested. 6 7fn1: 8;;; 1: Test EINT 9;; 430 ISA: NOP *not* required before *or* after EINT 10;; 430x ISA: NOP *is* required before *and* after EINT 11 MOV &FOO,r10 12 13 EINT 14 15 MOV &FOO,r10 16 17 BIS.W #8,SR ; Alias for EINT 18 19 MOV &FOO,r10 20;;; 2: Test DINT 21;; 430 ISA: NOP *is* required after DINT 22;; 430x ISA: NOP *is* required after DINT 23 MOV &FOO,r10 24 25 DINT 26 NOP 27 28 MOV &FOO,r10 29 30 BIC.W #8,SR ; Alias for DINT 31 NOP 32 33 MOV &FOO,r10 34;;; 3: Test EINT immediately before DINT 35;; 430 ISA: NOP *not* required. 36;; 430x ISA: NOP *is* required between EINT and DINT 37 MOV &FOO,r10 38 39 NOP 40 EINT 41 DINT 42 NOP 43 44 MOV &FOO,r10 45 46 NOP 47 BIS.W #8,SR ; Alias for EINT 48 BIC.W #8,SR ; Alias for DINT 49 NOP 50 51 MOV &FOO,r10 52;;; 4: Test DINT immediately before EINT 53;; 430 ISA: NOP *is* required after DINT. 54;; 430x ISA: NOP *is* required after DINT and before EINT. Ensure only one 55;; warning is emitted. 56 MOV &FOO,r10 57 58 NOP 59 DINT 60 EINT 61 NOP 62 63 MOV &FOO,r10 64 65 BIC.W #8,SR ; Alias for DINT 66 BIS.W #8,SR ; Alias for EINT 67 NOP 68 69 MOV &FOO,r10 70 71;;; 5: Test EINT last insn in file 72 73 NOP 74 EINT 75