summaryrefslogtreecommitdiff
path: root/sim/testsuite/sim/frv/fr400/movgs.cgs
blob: 4e22aab5b5d272043d91eae10f47f1b3e595cf40 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# frv testcase for movgs $GRj,iacc0[hl]
# mach: fr400

	.include "../testutils.inc"

	start

	.global movgs
IACC0H:
	set_gr_limmed	0xdead,0xbeef,gr8
	and_spr_immed	0,iacc0h
	movgs gr8,iacc0h
	test_gr_limmed	0xdead,0xbeef,gr8
	test_spr_limmed	0xdead,0xbeef,iacc0h
SPR280:
	; try alternate names for iacc0h
	and_spr_immed	0,280
	movgs gr8,spr[280]			; iacc0h is spr number 280
	test_gr_limmed	0xdead,0xbeef,gr8
	test_spr_limmed	0xdead,0xbeef,spr[280]

IACC0L:
	set_gr_limmed	0xdead,0xbeef,gr8
	and_spr_immed	0,iacc0l
	movgs gr8,iacc0l
	test_gr_limmed	0xdead,0xbeef,gr8
	test_spr_limmed	0xdead,0xbeef,iacc0l
SPR281:
	; try alternate names for iacc0l
	and_spr_immed	0,281
	movgs gr8,spr[281]			; iacc0l is spr number 281
	test_gr_limmed	0xdead,0xbeef,gr8
	test_spr_limmed	0xdead,0xbeef,spr[281]

IACC0L_SPR281:
	; try crossing between iacc0l and spr[281]
	and_spr_immed	0,281
	and_spr_immed	0,iacc0l
	movgs gr8,spr[281]			; iacc0l is spr number 281
	test_gr_limmed	0xdead,0xbeef,gr8
	test_spr_limmed	0xdead,0xbeef,iacc0l

SPR280_IACC0H:
	and_spr_immed	0,280
	and_spr_immed	0,iacc0h
	movgs gr8,iacc0h			; iacc0h is spr number 280
	test_gr_limmed	0xdead,0xbeef,gr8
	test_spr_limmed	0xdead,0xbeef,spr[280]

	pass