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