# fr30 testcase for dmov
# mach(): fr30

	.include "testutils.inc"
	START

	.text
	.global dmov
dmov:
	; Test dmov @$dir10,$R13
	mvi_h_gr	0xdeadbeef,r1
	mvi_h_gr	0x200,r2
	mvr_h_mem	r1,r2
	set_cc          0x0f		; Condition codes shouldn't change
	dmov		@0x200,r13
	test_cc		1 1 1 1
	test_h_gr	0xdeadbeef,r13

	; Test dmov $R13,@$dir10
	mvi_h_gr	0xbeefdead,r13
	set_cc          0x0e		; Condition codes shouldn't change
	dmov		r13,@0x200
	test_cc		1 1 1 0
	test_h_mem	0xbeefdead,r2

	; Test dmov @$dir10,@R13+
	mvi_h_gr	0x1fc,r13
	set_cc          0x0d		; Condition codes shouldn't change
	dmov		@0x200,@r13+
	test_cc		1 1 0 1
	mvi_h_gr	0x1fc,r2
	test_h_mem	0xbeefdead,r2
	inci_h_gr	4,r2
	test_h_mem	0xbeefdead,r2
	test_h_gr	0x200,r13

	; Test dmov @$R13+,@$dir10
	mvi_h_gr	0x1fc,r13
	mvi_h_mem	0xdeadbeef,r13
	set_cc          0x0c		; Condition codes shouldn't change
	dmov		@r13+,@0x200
	test_cc		1 1 0 0
	mvi_h_gr	0x1fc,r2
	test_h_mem	0xdeadbeef,r2
	inci_h_gr	4,r2
	test_h_mem	0xdeadbeef,r2
	test_h_gr	0x200,r13

	; Test dmov @$dir10,@-R15
	mvi_h_gr	0x200,r15
	mvi_h_mem	0xdeadbeef,r15
	set_cc          0x0b		; Condition codes shouldn't change
	dmov		@0x200,@-r15
	test_cc		1 0 1 1
	mvi_h_gr	0x1fc,r2
	test_h_mem	0xdeadbeef,r2
	inci_h_gr	4,r2
	test_h_mem	0xdeadbeef,r2
	test_h_gr	0x1fc,r15

	; Test dmov @$R15+,@$dir10
	mvi_h_gr	0x1fc,r15
	mvi_h_mem	0xbeefdead,r15
	set_cc          0x0a		; Condition codes shouldn't change
	dmov		@r15+,@0x200
	test_cc		1 0 1 0
	mvi_h_gr	0x1fc,r2
	test_h_mem	0xbeefdead,r2
	inci_h_gr	4,r2
	test_h_mem	0xbeefdead,r2
	test_h_gr	0x200,r15

	pass
