# fr30 testcase for ldm0 ($reglist_low)
# mach(): fr30

	.include "testutils.inc"

	START

	.text
	.global ldm0
ldm0:
	; Test ldm0 ($reglist_low)
	mvr_h_gr	sp,r9		; 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
	ldm0      	(r0,r2,r4,r6)
	test_cc		1 1 1 1
	testr_h_gr	sp,r9
	test_h_gr 	0,r0
	test_h_gr 	1,r2
	test_h_gr 	2,r4
	test_h_gr   	3,r6

	inci_h_gr	-16,sp
	set_cc          0x0f		; Condition codes should not change
	ldm0      	(r1,r3,r5,r7)
	test_cc		1 1 1 1
	testr_h_gr	sp,r9
	test_h_gr 	0,r1
	test_h_gr 	1,r3
	test_h_gr 	2,r5
	test_h_gr   	3,r7

	inci_h_gr	-16,sp
	set_cc          0x0f		; Condition codes should not change
	ldm0      	(r1,r5,r7,r3)	; Order speficied should not matter
	test_cc		1 1 1 1
	testr_h_gr	sp,r9
	test_h_gr 	0,r1
	test_h_gr 	1,r3
	test_h_gr 	2,r5
	test_h_gr   	3,r7

	set_cc          0x0f		; Condition codes should not change
	ldm0      	()		; Nothing should happen
	test_cc		1 1 1 1
	testr_h_gr	sp,r9
	test_h_gr 	0,r1
	test_h_gr 	1,r3
	test_h_gr 	2,r5
	test_h_gr   	3,r7

	pass
