| # fr30 testcase for ldm1 ($reglist_low) |
| # mach(): fr30 |
| |
| .include "testutils.inc" |
| |
| START |
| |
| .text |
| .global ldm1 |
| ldm1: |
| ; Test ldm1 ($reglist_low) |
| mvr_h_gr sp,r1 ; save stack pointer permanently |
| inci_h_gr -4,sp |
| mvi_h_mem 3,sp |
| inci_h_gr -4,sp |
| mvi_h_mem 2,sp |
| inci_h_gr -4,sp |
| mvi_h_mem 1,sp |
| inci_h_gr -4,sp |
| mvi_h_mem 0,sp |
| |
| set_cc 0x0f ; Condition codes should not change |
| ldm1 (r8,r10,r12,r14) |
| test_cc 1 1 1 1 |
| testr_h_gr sp,r1 |
| test_h_gr 0,r8 |
| test_h_gr 1,r10 |
| test_h_gr 2,r12 |
| test_h_gr 3,r14 |
| |
| inci_h_gr -16,sp |
| set_cc 0x0f ; Condition codes should not change |
| ldm1 (r9,r11,r13,r15) |
| test_cc 1 1 1 1 |
| test_h_gr 0,r9 |
| test_h_gr 1,r11 |
| test_h_gr 2,r13 |
| test_h_gr 3,r15 |
| |
| mvr_h_gr r1,sp ; restore stack pointer |
| inci_h_gr -16,sp |
| set_cc 0x0f ; Condition codes should not change |
| ldm1 (r9,r13,r15,r11); Order speficied should not matter |
| test_cc 1 1 1 1 |
| test_h_gr 0,r9 |
| test_h_gr 1,r11 |
| test_h_gr 2,r13 |
| test_h_gr 3,r15 |
| |
| mvr_h_gr r1,sp ; restore stack pointer |
| set_cc 0x0f ; Condition codes should not change |
| ldm1 () ; Nothing should happen |
| test_cc 1 1 1 1 |
| testr_h_gr sp,r1 |
| test_h_gr 0,r9 |
| test_h_gr 1,r11 |
| test_h_gr 2,r13 |
| |
| pass |