| 1 | # fr30 testcase for reti |
| 2 | # mach(): fr30 |
| 3 | |
| 4 | .include "testutils.inc" |
| 5 | |
| 6 | START |
| 7 | |
| 8 | .text |
| 9 | .global reti |
| 10 | reti: |
| 11 | ; Test reti with low reset of ilm allowed |
| 12 | mvr_h_gr sp,r8 ; Save stack pointer |
| 13 | set_s_system |
| 14 | set_i 1 |
| 15 | set_ilm 15 ; attempt reset of low range |
| 16 | set_cc 0x0f ; Condition codes should not change |
| 17 | save_ps |
| 18 | inci_h_gr -4,sp |
| 19 | mvi_h_mem ret1,sp |
| 20 | set_i 0 ; Set opposite of expected |
| 21 | set_ilm 0 ; attempt reset of low range |
| 22 | set_cc 0x00 ; Set opposite of expected |
| 23 | |
| 24 | reti |
| 25 | fail |
| 26 | |
| 27 | ret1: |
| 28 | test_cc 1 1 1 1 |
| 29 | test_s_system |
| 30 | test_i 1 |
| 31 | test_ilm 15 |
| 32 | testr_h_gr r8,sp |
| 33 | |
| 34 | ; Test reti with low reset of ilm not allowed |
| 35 | mvr_h_gr sp,r8 ; Save stack pointer |
| 36 | set_s_system |
| 37 | set_i 0 |
| 38 | set_ilm 15 ; attempt reset of low range |
| 39 | set_cc 0x0f ; Condition codes should not change |
| 40 | save_ps |
| 41 | inci_h_gr -4,sp |
| 42 | mvi_h_mem ret2,sp |
| 43 | set_i 0 ; Set opposite of expected |
| 44 | set_ilm 16 ; disallow reset of low range |
| 45 | set_cc 0x00 ; Set opposite of expected |
| 46 | |
| 47 | reti |
| 48 | fail |
| 49 | |
| 50 | ret2: |
| 51 | test_cc 1 1 1 1 |
| 52 | test_s_system |
| 53 | test_i 0 |
| 54 | test_ilm 31 |
| 55 | testr_h_gr r8,sp |
| 56 | |
| 57 | pass |