]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - sim/testsuite/sim/fr30/ld.cgs
Initial creation of sourceware repository
[thirdparty/binutils-gdb.git] / sim / testsuite / sim / fr30 / ld.cgs
1 # fr30 testcase for
2 # mach(): fr30
3 # ld $Rj,$Ri
4 # ld @($R13,$Rj),$Ri
5 # ld @($R14,$disp10),$Ri
6 # ld @($R15,$udisp6),$Ri
7 # ld @$R15+,$Ri
8 # ld @$R15+,$Rs
9
10 .include "testutils.inc"
11
12 START
13
14 .text
15 .global ld
16 ld:
17 ; Test ld $Rj,$Ri
18 mvi_h_mem #0x00000000,sp
19 set_cc 0x0f ; condition codes should not change
20 ld @sp,r7
21 test_cc 1 1 1 1
22 test_h_gr 0,r7
23
24 mvi_h_mem #0x00000001,sp
25 set_cc 0x07 ; condition codes should not change
26 ld @sp,r7
27 test_cc 0 1 1 1
28 test_h_gr 1,r7
29
30 mvi_h_mem #0x7fffffff,sp
31 set_cc 0x0b ; condition codes should not change
32 ld @sp,r7
33 test_cc 1 0 1 1
34 test_h_gr 0x7fffffff,r7
35
36 mvi_h_mem #0x80000000,sp
37 set_cc 0x0d ; condition codes should not change
38 ld @sp,r7
39 test_cc 1 1 0 1
40 test_h_gr 0x80000000,r7
41
42 mvi_h_mem #0xffffffff,sp
43 set_cc 0x0e ; condition codes should not change
44 ld @sp,r7
45 test_cc 1 1 1 0
46 test_h_gr -1,r7
47
48 ; Test ld @($R13,$Rj),$Ri
49 mvr_h_gr sp,r13
50 inci_h_gr -8,r13
51 mvi_h_gr 8,r8
52
53 mvi_h_mem #0x00000000,sp
54 set_cc 0x0f ; condition codes should not change
55 ld @(r13,r8),r7
56 test_cc 1 1 1 1
57 test_h_gr 0,r7
58
59 mvi_h_mem #0x00000001,sp
60 set_cc 0x07 ; condition codes should not change
61 ld @(r13,r8),r7
62 test_cc 0 1 1 1
63 test_h_gr 1,r7
64
65 mvi_h_mem #0x7fffffff,sp
66 set_cc 0x0b ; condition codes should not change
67 ld @(r13,r8),r7
68 test_cc 1 0 1 1
69 test_h_gr 0x7fffffff,r7
70
71 mvi_h_mem #0x80000000,sp
72 set_cc 0x0d ; condition codes should not change
73 ld @(r13,r8),r7
74 test_cc 1 1 0 1
75 test_h_gr 0x80000000,r7
76
77 mvi_h_mem #0xffffffff,sp
78 set_cc 0x0e ; condition codes should not change
79 ld @(r13,r8),r7
80 test_cc 1 1 1 0
81 test_h_gr -1,r7
82
83 ; Test ld @($R14,$disp10),$Ri
84 mvi_h_mem #0xdeadbeef,sp
85 mvr_h_gr sp,r14
86 mvi_h_gr -0x1fc,r8
87 add_h_gr r8,r14
88
89 set_cc 0x0f ; condition codes should not change
90 ld @(r14,0x1fc),r7
91 test_cc 1 1 1 1
92 test_h_gr 0xdeadbeef,r7
93
94 inci_h_gr 0xfc,r14
95 set_cc 0x07 ; condition codes should not change
96 ld @(r14,0x100),r7
97 test_cc 0 1 1 1
98 test_h_gr 0xdeadbeef,r7
99
100 inci_h_gr 0x100,r14
101 set_cc 0x0b ; condition codes should not change
102 ld @(r14,0x0),r7
103 test_cc 1 0 1 1
104 test_h_gr 0xdeadbeef,r7
105
106 inci_h_gr 0x100,r14
107 set_cc 0x0d ; condition codes should not change
108 ld @(r14,-0x100),r7
109 test_cc 1 1 0 1
110 test_h_gr 0xdeadbeef,r7
111
112 inci_h_gr 0x100,r14
113 set_cc 0x0e ; condition codes should not change
114 ld @(r14,-0x200),r7
115 test_cc 1 1 1 0
116 test_h_gr 0xdeadbeef,r7
117
118 ; Test ld @($R15,$udisp6),$Ri
119 mvi_h_mem #0xdeadbeef,sp
120 mvr_h_gr sp,r14
121 mvi_h_gr -0x3c,r8
122 add_h_gr r8,r14
123
124 set_cc 0x0f ; condition codes should not change
125 ld @(r14,0x3c),r7
126 test_cc 1 1 1 1
127 test_h_gr 0xdeadbeef,r7
128
129 inci_h_gr 0x1c,r14
130 set_cc 0x07 ; condition codes should not change
131 ld @(r14,0x20),r7
132 test_cc 0 1 1 1
133 test_h_gr 0xdeadbeef,r7
134
135 inci_h_gr 0x20,r14
136 set_cc 0x0b ; condition codes should not change
137 ld @(r14,0x0),r7
138 test_cc 1 0 1 1
139 test_h_gr 0xdeadbeef,r7
140
141 ; Test ld @$R15+,$Ri
142 mvr_h_gr sp,r8 ; save original stack pointer
143 mvr_h_gr r8,r9
144 inci_h_gr 4,r9 ; original stack pointer + 4
145 mvi_h_mem #0xdeadbeef,sp ; prime memory
146
147 mvr_h_gr r8,sp ; restore original stack pointer
148 set_cc 0x0f ; condition codes should not change
149 ld @r15+,r7
150 test_cc 1 1 1 1
151 test_h_gr 0xdeadbeef,r7
152 testr_h_gr sp,r9 ; should have been incremented
153
154 mvr_h_gr r8,sp ; restore original stack pointer
155 set_cc 0x0f ; condition codes should not change
156 ld @r15+,sp
157 test_cc 1 1 1 1
158 test_h_gr 0xdeadbeef,sp ; should not have been incremented
159
160 ; Test ld @$R15+,$Rs
161 mvr_h_gr r8,sp ; restore original stack pointer
162 set_cc 0x0f ; condition codes should not change
163 ld @r15+,tbr
164 test_cc 1 1 1 1
165 test_h_dr 0xdeadbeef,tbr
166 testr_h_gr sp,r9 ; should have been incremented
167
168 mvr_h_gr r8,sp ; restore original stack pointer
169 set_cc 0x0f ; condition codes should not change
170 ld @r15+,rp
171 test_cc 1 1 1 1
172 test_h_dr 0xdeadbeef,rp
173 testr_h_gr sp,r9 ; should have been incremented
174
175 mvr_h_gr r8,sp ; restore original stack pointer
176 set_cc 0x0f ; condition codes should not change
177 ld @r15+,mdh
178 test_cc 1 1 1 1
179 test_h_dr 0xdeadbeef,mdh
180 testr_h_gr sp,r9 ; should have been incremented
181
182 mvr_h_gr r8,sp ; restore original stack pointer
183 set_cc 0x0f ; condition codes should not change
184 ld @r15+,mdl
185 test_cc 1 1 1 1
186 test_h_dr 0xdeadbeef,mdl
187 testr_h_gr sp,r9 ; should have been incremented
188
189 set_s_user
190 mvr_h_gr r8,sp ; restore original stack pointer
191 set_cc 0x0f ; condition codes should not change
192 ld @r15+,ssp
193 test_cc 1 1 1 1
194 test_h_dr 0xdeadbeef,ssp
195 testr_h_gr sp,r9 ; should have been incremented
196
197 mvr_h_gr r8,sp ; restore original stack pointer
198 set_cc 0x0f ; condition codes should not change
199 ld @r15+,usp
200 test_cc 1 1 1 1
201 test_h_dr 0xdeadbeef,usp
202 test_h_gr 0xdeadbeef,sp ; should not have been incremented
203
204 set_s_system
205 mvr_h_gr r8,sp ; restore original stack pointer
206 set_cc 0x0f ; condition codes should not change
207 ld @r15+,usp
208 test_cc 1 1 1 1
209 test_h_dr 0xdeadbeef,usp
210 testr_h_gr sp,r9 ; should have been incremented
211
212 mvr_h_gr r8,sp ; restore original stack pointer
213 set_cc 0x0f ; condition codes should not change
214 ld @r15+,ssp
215 test_cc 1 1 1 1
216 test_h_dr 0xdeadbeef,ssp
217 test_h_gr 0xdeadbeef,sp ; should not have been incremented
218
219 pass