1 # Blackfin testcase for having RETI LSB set correctly when not self nested
3 # sim: --environment operating
6 .include "testutils.inc"
14 loadsym R1, _fail_lvl;
15 [P5 + 4] = R1; /* IVG12 */
16 [P5 + 12] = R1; /* IVG14 */
20 # Disable self nesting
26 # Enable IVG11/IVG13/IVG14 but not IVG12
34 # Counters to keep track of nesting depth
38 # Lower ourselves to IVG11
39 loadsym R4, _fail_lvl;
47 # This IVG makes sure we don't re-enter when self RAISE is pending
51 # Make sure we are indeed at IVG11
55 IF !CC JUMP _fail_lvl;
57 # Should not be re-entering
59 IF !CC JUMP _fail_lvl;
61 # Make sure LSB of RETI is not set
65 # Try to avoid nesting a few times
77 # Move down to IVG13 for next test
78 1: loadsym R4, _fail_lvl;
82 # This IVG makes sure RETI LSB is ignored on transition out (RTI)
86 # Make sure we are indeed at IVG13
90 IF !CC JUMP _fail_lvl;
92 # RETI LSB should not be set when entering IVG13
96 # Should get here only after a few IVG11 tests
98 IF !CC JUMP _fail_lvl;
100 # Make sure IVG13 isn't pending
103 CC = BITTST (R1, 13);
104 IF CC JUMP _fail_lvl;
106 # Manually set RETI to with LSB set so we should stay at IVG13
107 # even though SNEN is disabled
114 1: # Make sure we get here in right number of tests
117 IF !CC JUMP _fail_lvl;
119 # Make sure we are still at IVG13
122 CC = BITTST (R1, 13);
123 IF !CC JUMP _fail_lvl;