summaryrefslogtreecommitdiff
path: root/sim/testsuite/sim/frv/rstdf.cgs
blob: 9d0d841c5d4728903c7257d45c11bb88c5adf17b (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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
# frv testcase for rstdf $FRk,@($GRi,$GRj)
# mach: frv
# as(frv): -mcpu=frv

	.include "testutils.inc"

	start

	.global add
add:
	; No nesr's active
	set_gr_gr	sp,gr20
	set_mem_limmed	0x2222,0x2222,gr20
	set_gr_gr	gr20,gr27
	inc_gr_immed	-4,gr27
	set_mem_limmed	0x3333,0x3333,gr27
	set_gr_gr	gr27,gr26
	inc_gr_immed	-4,gr26
	set_mem_limmed	0x4444,0x4444,gr26
	set_gr_gr	gr26,gr25
	inc_gr_immed	-4,gr25
	set_mem_limmed	0x5555,0x5555,gr25
	set_gr_gr	gr25,gr24
	inc_gr_immed	-4,gr24
	set_mem_limmed	0x6666,0x6666,gr24
	set_gr_gr	gr24,gr23
	inc_gr_immed	-4,gr23
	set_mem_limmed	0x7777,0x7777,gr23
	set_gr_gr	gr23,gr22
	inc_gr_immed	-4,gr22
	set_mem_limmed	0x8888,0x8888,gr22
	set_gr_gr	gr22,gr21
	inc_gr_immed	-4,gr21
	set_mem_limmed	0x9999,0x9999,gr21
	set_gr_limmed	0x1111,0x1111,gr40
	set_gr_limmed	0x1111,0x1111,gr41
	set_fr_iimmed	0x1111,0x1111,fr40
	set_fr_iimmed	0x1111,0x1111,fr41
	inc_gr_immed	-4,sp
	set_gr_immed	0,gr7
	set_fr_iimmed	0xeeee,0xeeee,fr8
	set_fr_iimmed	0xffff,0xffff,fr9
	rstdf		fr8,@(sp,gr7)
	test_mem_limmed	0xffff,0xffff,gr20
	test_mem_limmed	0xeeee,0xeeee,gr27
	test_mem_limmed	0x4444,0x4444,gr26
	test_mem_limmed	0x5555,0x5555,gr25
	test_mem_limmed	0x6666,0x6666,gr24
	test_mem_limmed	0x7777,0x7777,gr23
	test_mem_limmed	0x8888,0x8888,gr22
	test_mem_limmed	0x9999,0x9999,gr21
	test_gr_limmed	0x1111,0x1111,gr40
	test_gr_limmed	0x1111,0x1111,gr41
	test_fr_limmed	0x1111,0x1111,fr40
	test_fr_limmed	0x1111,0x1111,fr41

	; 1 nesr active with the incorrect address in neear for gr
	set_gr_gr	sp,gr10
	inc_gr_immed	-16,gr10
	nlddi		@(sp,-16),gr40
	test_spr_gr	neear0,gr10
	set_mem_limmed	0x2222,0x2222,gr20
	set_mem_limmed	0x3333,0x3333,gr27
	set_mem_limmed	0x4444,0x4444,gr26
	set_mem_limmed	0x5555,0x5555,gr25
	set_mem_limmed	0x6666,0x6666,gr24
	set_mem_limmed	0x7777,0x7777,gr23
	set_mem_limmed	0x8888,0x8888,gr22
	set_mem_limmed	0x9999,0x9999,gr21
	set_fr_iimmed	0xeeee,0xeeee,fr8
	set_fr_iimmed	0xffff,0xffff,fr9
	set_gr_limmed	0x1111,0x1111,gr40
	set_gr_limmed	0x1111,0x1111,gr41
	set_fr_iimmed	0x1111,0x1111,fr40
	set_fr_iimmed	0x1111,0x1111,fr41
	set_gr_immed	-8,gr7
	rstdf		fr8,@(sp,gr7)
	test_mem_limmed	0x2222,0x2222,gr20
	test_mem_limmed	0x3333,0x3333,gr27
	test_mem_limmed	0xffff,0xffff,gr26
	test_mem_limmed	0xeeee,0xeeee,gr25
	test_mem_limmed	0x6666,0x6666,gr24
	test_mem_limmed	0x7777,0x7777,gr23
	test_mem_limmed	0x8888,0x8888,gr22
	test_mem_limmed	0x9999,0x9999,gr21
	test_gr_limmed	0x1111,0x1111,gr40
	test_gr_limmed	0x1111,0x1111,gr41
	test_fr_limmed	0x1111,0x1111,fr40
	test_fr_limmed	0x1111,0x1111,fr41

	; 1 nesr active with the incorrect address in neear for fr
	inc_gr_immed	-8,gr10
	nlddfi		@(sp,-24),fr40
	test_spr_gr	neear1,gr10
	set_mem_limmed	0x2222,0x2222,gr20
	set_mem_limmed	0x3333,0x3333,gr27
	set_mem_limmed	0x4444,0x4444,gr26
	set_mem_limmed	0x5555,0x5555,gr25
	set_mem_limmed	0x6666,0x6666,gr24
	set_mem_limmed	0x7777,0x7777,gr23
	set_mem_limmed	0x8888,0x8888,gr22
	set_mem_limmed	0x9999,0x9999,gr21
	set_fr_iimmed	0xeeee,0xeeee,fr8
	set_fr_iimmed	0xffff,0xffff,fr9
	set_gr_limmed	0x1111,0x1111,gr40
	set_gr_limmed	0x1111,0x1111,gr41
	set_fr_iimmed	0x1111,0x1111,fr40
	set_fr_iimmed	0x1111,0x1111,fr41
	inc_gr_immed	-8,sp
	set_gr_immed	8,gr7
	rstdf		fr8,@(sp,gr7)
	test_mem_limmed	0xffff,0xffff,gr20
	test_mem_limmed	0xeeee,0xeeee,gr27
	test_mem_limmed	0x4444,0x4444,gr26
	test_mem_limmed	0x5555,0x5555,gr25
	test_mem_limmed	0x6666,0x6666,gr24
	test_mem_limmed	0x7777,0x7777,gr23
	test_mem_limmed	0x8888,0x8888,gr22
	test_mem_limmed	0x9999,0x9999,gr21
	test_gr_limmed	0x1111,0x1111,gr40
	test_gr_limmed	0x1111,0x1111,gr41
	test_fr_limmed	0x1111,0x1111,fr40
	test_fr_limmed	0x1111,0x1111,fr41

	; 1 nesr active with the correct address in neear for gr
	set_mem_limmed	0x2222,0x2222,gr20
	set_mem_limmed	0x3333,0x3333,gr27
	set_mem_limmed	0x4444,0x4444,gr26
	set_mem_limmed	0x5555,0x5555,gr25
	set_mem_limmed	0x6666,0x6666,gr24
	set_mem_limmed	0x7777,0x7777,gr23
	set_mem_limmed	0x8888,0x8888,gr22
	set_mem_limmed	0x9999,0x9999,gr21
	set_fr_iimmed	0xeeee,0xeeee,fr8
	set_fr_iimmed	0xffff,0xffff,fr9
	set_gr_limmed	0x1111,0x1111,gr40
	set_gr_limmed	0x1111,0x1111,gr41
	set_fr_iimmed	0x1111,0x1111,fr40
	set_fr_iimmed	0x1111,0x1111,fr41
	inc_gr_immed	-8,sp
	set_gr_immed	0,gr7
	rstdf		fr8,@(sp,gr7)
	test_mem_limmed	0x2222,0x2222,gr20
	test_mem_limmed	0x3333,0x3333,gr27
	test_mem_limmed	0x4444,0x4444,gr26
	test_mem_limmed	0x5555,0x5555,gr25
	test_mem_limmed	0xffff,0xffff,gr24
	test_mem_limmed	0xeeee,0xeeee,gr23
	test_mem_limmed	0x8888,0x8888,gr22
	test_mem_limmed	0x9999,0x9999,gr21
	test_gr_limmed	0xffff,0xffff,gr41
	test_gr_limmed	0xeeee,0xeeee,gr40
	test_fr_limmed	0x1111,0x1111,fr41
	test_fr_limmed	0x1111,0x1111,fr40

	; 1 nesr active with the correct address in neear for fr
	set_mem_limmed	0x2222,0x2222,gr20
	set_mem_limmed	0x3333,0x3333,gr27
	set_mem_limmed	0x4444,0x4444,gr26
	set_mem_limmed	0x5555,0x5555,gr25
	set_mem_limmed	0x6666,0x6666,gr24
	set_mem_limmed	0x7777,0x7777,gr23
	set_mem_limmed	0x8888,0x8888,gr22
	set_mem_limmed	0x9999,0x9999,gr21
	set_fr_iimmed	0xeeee,0xeeee,fr8
	set_fr_iimmed	0xffff,0xffff,fr9
	set_gr_limmed	0x1111,0x1111,gr40
	set_gr_limmed	0x1111,0x1111,gr41
	set_fr_iimmed	0x1111,0x1111,fr40
	set_fr_iimmed	0x1111,0x1111,fr41
	set_gr_immed	-8,gr7
	rstdf		fr8,@(sp,gr7)
	test_mem_limmed	0x2222,0x2222,gr20
	test_mem_limmed	0x3333,0x3333,gr27
	test_mem_limmed	0x4444,0x4444,gr26
	test_mem_limmed	0x5555,0x5555,gr25
	test_mem_limmed	0x6666,0x6666,gr24
	test_mem_limmed	0x7777,0x7777,gr23
	test_mem_limmed	0xffff,0xffff,gr22
	test_mem_limmed	0xeeee,0xeeee,gr21
	test_gr_limmed	0x1111,0x1111,gr41
	test_gr_limmed	0x1111,0x1111,gr40
	test_fr_limmed	0xffff,0xffff,fr41
	test_fr_limmed	0xeeee,0xeeee,fr40

	pass