| # fr30 testcase for stm1 ($reglist_low) |
| # mach(): fr30 |
| |
| .include "testutils.inc" |
| |
| START |
| |
| .text |
| .global stm1 |
| stm1: |
| ; Test stm1 ($reglist_low) |
| mvr_h_gr sp,r1 ; save stack pointer temporarily |
| mvr_h_gr sp,r2 ; save stack pointer permanently |
| mvi_h_gr 8,r8 |
| mvi_h_gr 9,r9 |
| mvi_h_gr 10,r10 |
| mvi_h_gr 11,r11 |
| mvi_h_gr 12,r12 |
| mvi_h_gr 13,r13 |
| mvi_h_gr 14,r14 |
| set_cc 0x0f ; Condition codes should not change |
| stm1 (r8,r10,r12,r14) |
| test_cc 1 1 1 1 |
| inci_h_gr -4,r1 |
| test_h_mem 14,r1 |
| inci_h_gr -4,r1 |
| test_h_mem 12,r1 |
| inci_h_gr -4,r1 |
| test_h_mem 10,r1 |
| inci_h_gr -4,r1 |
| testr_h_mem 8,r1 |
| |
| mvr_h_gr r2,sp ; restore stack pointer |
| mvr_h_gr r2,r1 ; save stack pointer temporarily |
| mvi_h_gr 8,r8 |
| mvi_h_gr 9,r9 |
| mvi_h_gr 10,r10 |
| mvi_h_gr 11,r11 |
| mvi_h_gr 12,r12 |
| mvi_h_gr 13,r13 |
| mvi_h_gr 14,r14 |
| set_cc 0x0f ; Condition codes should not change |
| stm1 (r9,r11,r13,r15) |
| test_cc 1 1 1 1 |
| inci_h_gr -4,r1 |
| testr_h_mem r2,r1 |
| inci_h_gr -4,r1 |
| test_h_mem 13,r1 |
| inci_h_gr -4,r1 |
| test_h_mem 11,r1 |
| inci_h_gr -4,r1 |
| test_h_mem 9,r1 ; saved r15 is from before stm1 |
| |
| mvr_h_gr r2,sp ; restore stack pointer |
| mvr_h_gr r2,r1 ; save stack pointer temporarily |
| mvi_h_gr 8,r8 |
| mvi_h_gr 9,r9 |
| mvi_h_gr 10,r10 |
| mvi_h_gr 11,r11 |
| mvi_h_gr 12,r12 |
| mvi_h_gr 13,r13 |
| mvi_h_gr 14,r14 |
| set_cc 0x0f ; Condition codes should not change |
| stm1 (r9,r13,r15,r11); Order specified should not matter |
| test_cc 1 1 1 1 |
| inci_h_gr -4,r1 |
| testr_h_mem r2,r1 |
| inci_h_gr -4,r1 |
| test_h_mem 13,r1 |
| inci_h_gr -4,r1 |
| test_h_mem 11,r1 |
| inci_h_gr -4,r1 |
| test_h_mem 9,r1 ; saved r15 is from before stm1 |
| |
| mvr_h_gr r2,sp ; restore stack pointer |
| mvr_h_gr r2,r1 ; save stack pointer temporarily |
| mvi_h_gr 9,r8 |
| mvi_h_gr 9,r9 |
| mvi_h_gr 9,r10 |
| mvi_h_gr 9,r11 |
| mvi_h_gr 9,r12 |
| mvi_h_gr 9,r13 |
| mvi_h_gr 9,r14 |
| set_cc 0x0f ; Condition codes should not change |
| stm1 () ; should do nothing |
| test_cc 1 1 1 1 |
| testr_h_gr r2,sp |
| inci_h_gr -4,r1 |
| testr_h_mem r2,r1 |
| inci_h_gr -4,r1 |
| test_h_mem 13,r1 |
| inci_h_gr -4,r1 |
| test_h_mem 11,r1 |
| inci_h_gr -4,r1 |
| test_h_mem 9,r1 |
| |
| pass |