OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [or1ksim/] [testsuite/] [or1ksim.tests/] [inst-set-test.exp] - Blame information for rev 116

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 107 jeremybenn
# inst-set-test.exp. Tests of ORBIS32 instruction set
2
 
3
# Copyright (C) 2010 Embecosm Limited
4
 
5
# Contributor Jeremy Bennett 
6
 
7
# This file is part of OpenRISC 1000 Architectural Simulator.
8
 
9
# This program is free software; you can redistribute it and/or modify it
10
# under the terms of the GNU General Public License as published by the Free
11
# Software Foundation; either version 3 of the License, or (at your option)
12
# any later version.
13
 
14
# This program is distributed in the hope that it will be useful, but WITHOUT
15
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
16
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
17
# more details.
18
 
19
# You should have received a copy of the GNU General Public License along
20
# with this program.  If not, see .  */
21
 
22
# -----------------------------------------------------------------------------
23
# This code is commented throughout for use with Doxygen.
24
# -----------------------------------------------------------------------------
25
 
26
 
27 112 jeremybenn
# Run the l.add, l.addc, l.addi and l.addic tests
28 115 jeremybenn
run_or1ksim "add-test"                                     \
29 114 jeremybenn
    [list "!l.add"                                         \
30
          "  0x00000001 + 0x00000002 = 0x00000003: OK"     \
31
          "  - carry flag set:    FALSE"                   \
32
          "  - overflow flag set: FALSE"                   \
33
          "  0x00000001 + 0x00000002 = 0x00000003: OK"     \
34
          "  - carry flag set:    FALSE"                   \
35
          "  - overflow flag set: FALSE"                   \
36
          "  0xffffffff + 0xfffffffe = 0xfffffffd: OK"     \
37
          "  - carry flag set:    TRUE"                    \
38
          "  - overflow flag set: FALSE"                   \
39
          "  0x40000000 + 0x3fffffff = 0x7fffffff: OK"     \
40
          "  - carry flag set:    FALSE"                   \
41
          "  - overflow flag set: FALSE"                   \
42
          "  0x40000000 + 0x40000000 = 0x80000000: OK"     \
43
          "  - carry flag set:    FALSE"                   \
44
          "  - overflow flag set: TRUE"                    \
45
          "  0xc0000000 + 0xc0000000 = 0x80000000: OK"     \
46
          "  - carry flag set:    TRUE"                    \
47
          "  - overflow flag set: FALSE"                   \
48
          "  0xbfffffff + 0xbfffffff = 0x7ffffffe: OK"     \
49
          "  - carry flag set:    TRUE"                    \
50
          "  - overflow flag set: TRUE"                    \
51
          "!  ** OVE flag set **"                          \
52
          "  RANGE exception"                              \
53
          "  - caused by: report(0xe0853000);"             \
54
          "  - SR value:  report(0x00009a01);"             \
55
          "  0x40000000 + 0x40000000 = 0x80000000: OK"     \
56
          "  - carry flag set:    FALSE"                   \
57
          "  - overflow flag set: TRUE"                    \
58
          "  0xffffffff + 0xfffffffe = 0xfffffffd: OK"     \
59
          "  - carry flag set:    TRUE"                    \
60
          "  - overflow flag set: FALSE"                   \
61
          "  RANGE exception"                              \
62
          "  - caused by: report(0xe0853000);"             \
63
          "  - SR value:  report(0x00009e01);"             \
64
          "  0xbfffffff + 0xbfffffff = 0x7ffffffe: OK"     \
65
          "  - carry flag set:    TRUE"                    \
66
          "  - overflow flag set: TRUE"                    \
67
          "!  ** OVE flag cleared **"                      \
68
          "!l.addc"                                        \
69
          "  0x00000001 + 0x00000002     = 0x00000003: OK" \
70
          "  - carry flag set:    FALSE"                   \
71
          "  - overflow flag set: FALSE"                   \
72
          "  0xffffffff + 0xfffffffe     = 0xfffffffd: OK" \
73
          "  - carry flag set:    TRUE"                    \
74
          "  - overflow flag set: FALSE"                   \
75
          "  0x40000000 + 0x3fffffff     = 0x7fffffff: OK" \
76
          "  - carry flag set:    FALSE"                   \
77
          "  - overflow flag set: FALSE"                   \
78
          "  0x40000000 + 0x3fffffff + c = 0x80000000: OK" \
79
          "  - carry flag set:    FALSE"                   \
80
          "  - overflow flag set: TRUE"                    \
81
          "  0x40000000 + 0x40000000     = 0x80000000: OK" \
82
          "  - carry flag set:    FALSE"                   \
83
          "  - overflow flag set: TRUE"                    \
84
          "  0xffffffff + 0x00000000 + c = 0x00000000: OK" \
85
          "  - carry flag set:    TRUE"                    \
86
          "  - overflow flag set: FALSE"                   \
87
          "  0x00000000 + 0xffffffff + c = 0x00000000: OK" \
88
          "  - carry flag set:    TRUE"                    \
89
          "  - overflow flag set: FALSE"                   \
90
          "  0xc0000000 + 0xc0000000     = 0x80000000: OK" \
91
          "  - carry flag set:    TRUE"                    \
92
          "  - overflow flag set: FALSE"                   \
93
          "  0xc0000000 + 0xbfffffff + c = 0x80000000: OK" \
94
          "  - carry flag set:    TRUE"                    \
95
          "  - overflow flag set: FALSE"                   \
96
          "  0xbfffffff + 0xbfffffff     = 0x7ffffffe: OK" \
97
          "  - carry flag set:    TRUE"                    \
98
          "  - overflow flag set: TRUE"                    \
99
          "!  ** OVE flag set **"                          \
100
          "  RANGE exception"                              \
101
          "  - caused by: report(0xe0853001);"             \
102
          "  - SR value:  report(0x00009a01);"             \
103
          "  0x40000000 + 0x40000000     = 0x80000000: OK" \
104
          "  - carry flag set:    FALSE"                   \
105
          "  - overflow flag set: TRUE"                    \
106
          "  RANGE exception"                              \
107
          "  - caused by: report(0xe0853001);"             \
108
          "  - SR value:  report(0x00009a01);"             \
109
          "  0x40000000 + 0x3fffffff + c = 0x80000000: OK" \
110
          "  - carry flag set:    FALSE"                   \
111
          "  - overflow flag set: TRUE"                    \
112
          "  0xffffffff + 0xfffffffe     = 0xfffffffd: OK" \
113
          "  - carry flag set:    TRUE"                    \
114
          "  - overflow flag set: FALSE"                   \
115
          "  0x00000000 + 0xffffffff + c = 0x00000000: OK" \
116
          "  - carry flag set:    TRUE"                    \
117
          "  - overflow flag set: FALSE"                   \
118
          "  RANGE exception"                              \
119
          "  - caused by: report(0xe0853001);"             \
120
          "  - SR value:  report(0x00009e01);"             \
121
          "  0xbfffffff + 0xbfffffff     = 0x7ffffffe: OK" \
122
          "  - carry flag set:    TRUE"                    \
123
          "  - overflow flag set: TRUE"                    \
124
          "!  ** OVE flag cleared **"                      \
125
          "!l.addi"                                        \
126
          "  0x00000001 + 0x00000002 = 0x00000003: OK"     \
127
          "  - carry flag set:    FALSE"                   \
128
          "  - overflow flag set: FALSE"                   \
129
          "  0x00000001 + 0x00000002 = 0x00000003: OK"     \
130
          "  - carry flag set:    FALSE"                   \
131
          "  - overflow flag set: FALSE"                   \
132
          "  0xffffffff + 0xfffffffe = 0xfffffffd: OK"     \
133
          "  - carry flag set:    TRUE"                    \
134
          "  - overflow flag set: FALSE"                   \
135
          "  0x7fff8000 + 0x00007fff = 0x7fffffff: OK"     \
136
          "  - carry flag set:    FALSE"                   \
137
          "  - overflow flag set: FALSE"                   \
138
          "  0x7fffc000 + 0x00004000 = 0x80000000: OK"     \
139
          "  - carry flag set:    FALSE"                   \
140
          "  - overflow flag set: TRUE"                    \
141
          "  0x80008000 + 0xffff8000 = 0x80000000: OK"     \
142
          "  - carry flag set:    TRUE"                    \
143
          "  - overflow flag set: FALSE"                   \
144
          "  0x80007fff + 0xffff8000 = 0x7fffffff: OK"     \
145
          "  - carry flag set:    TRUE"                    \
146
          "  - overflow flag set: TRUE"                    \
147
          "!  ** OVE flag set **"                          \
148
          "  RANGE exception"                              \
149
          "  - caused by: report(0x9c854000);"             \
150
          "  - SR value:  report(0x00009a01);"             \
151
          "  0x7fffc000 + 0x00004000 = 0x80000000: OK"     \
152
          "  - carry flag set:    FALSE"                   \
153
          "  - overflow flag set: TRUE"                    \
154
          "  0xffffffff + 0xfffffffe = 0xfffffffd: OK"     \
155
          "  - carry flag set:    TRUE"                    \
156
          "  - overflow flag set: FALSE"                   \
157
          "  RANGE exception"                              \
158
          "  - caused by: report(0x9c858000);"             \
159
          "  - SR value:  report(0x00009e01);"             \
160
          "  0x80007fff + 0xffff8000 = 0x7ffffffe: OK"     \
161
          "  - carry flag set:    TRUE"                    \
162
          "  - overflow flag set: TRUE"                    \
163
          "!  ** OVE flag cleared **"                      \
164
          "!l.addic"                                       \
165
          "  0x00000001 + 0x00000002     = 0x00000003: OK" \
166
          "  - carry flag set:    FALSE"                   \
167
          "  - overflow flag set: FALSE"                   \
168
          "  0xffffffff + 0xfffffffe     = 0xfffffffd: OK" \
169
          "  - carry flag set:    TRUE"                    \
170
          "  - overflow flag set: FALSE"                   \
171
          "  0x7fff8000 + 0x00007fff     = 0x7fffffff: OK" \
172
          "  - carry flag set:    FALSE"                   \
173
          "  - overflow flag set: FALSE"                   \
174
          "  0x7fff8000 + 0x00007fff + c = 0x80000000: OK" \
175
          "  - carry flag set:    FALSE"                   \
176
          "  - overflow flag set: TRUE"                    \
177
          "  0x7fffc000 + 0x00004000     = 0x80000000: OK" \
178
          "  - carry flag set:    FALSE"                   \
179
          "  - overflow flag set: TRUE"                    \
180
          "  0xffffffff + 0x00000000 + c = 0x00000000: OK" \
181
          "  - carry flag set:    TRUE"                    \
182
          "  - overflow flag set: FALSE"                   \
183
          "  0x00000000 + 0xffffffff + c = 0x00000000: OK" \
184
          "  - carry flag set:    TRUE"                    \
185
          "  - overflow flag set: FALSE"                   \
186
          "  0x80008000 + 0xffff8000     = 0x80000000: OK" \
187
          "  - carry flag set:    TRUE"                    \
188
          "  - overflow flag set: FALSE"                   \
189
          "  0x80007fff + 0xffff8000 + c = 0x80000000: OK" \
190
          "  - carry flag set:    TRUE"                    \
191
          "  - overflow flag set: FALSE"                   \
192
          "  0x80007fff + 0xffff8000     = 0x7fffffff: OK" \
193
          "  - carry flag set:    TRUE"                    \
194
          "  - overflow flag set: TRUE"                    \
195
          "!  ** OVE flag set **"                          \
196
          "  RANGE exception"                              \
197
          "  - caused by: report(0xa0854000);"             \
198
          "  - SR value:  report(0x00009a01);"             \
199
          "  0x7fffc000 + 0x00004000     = 0x80000000: OK" \
200
          "  - carry flag set:    FALSE"                   \
201
          "  - overflow flag set: TRUE"                    \
202
          "  RANGE exception"                              \
203
          "  - caused by: report(0xa0853fff);"             \
204
          "  - SR value:  report(0x00009a01);"             \
205
          "  0x7fffc000 + 0x00003fff + c = 0x80000000: OK" \
206
          "  - carry flag set:    FALSE"                   \
207
          "  - overflow flag set: TRUE"                    \
208
          "  0xffffffff + 0xfffffffe     = 0xfffffffd: OK" \
209
          "  - carry flag set:    TRUE"                    \
210
          "  - overflow flag set: FALSE"                   \
211
          "  0x00000000 + 0xffffffff + c = 0x00000000: OK" \
212
          "  - carry flag set:    TRUE"                    \
213
          "  - overflow flag set: FALSE"                   \
214
          "  RANGE exception"                              \
215
          "  - caused by: report(0xa0858000);"             \
216
          "  - SR value:  report(0x00009e01);"             \
217
          "  0x80007fff + 0xffff8000     = 0x7ffffffe: OK" \
218
          "  - carry flag set:    TRUE"                    \
219
          "  - overflow flag set: TRUE"                    \
220
          "!  ** OVE flag cleared **"                      \
221
          "!Test completed"                                \
222
          "!report(0xdeaddead);"                           \
223
          "!exit(0)"]                                      \
224 112 jeremybenn
    "inst-set-test.cfg" "inst-set-test/is-add-test"
225 115 jeremybenn
 
226
# Run the l.div and l.divu test
227
run_or1ksim "div-test"                                \
228
    [list "!l.div"                                    \
229
          "!  RANGE exception"                        \
230
          "  - caused by: report(0xe0853309);"        \
231
          "!  - SR value:  report(0x00008601);"       \
232
          "  1 / 0 (with error) carry flag set: TRUE" \
233
          "!l.divu"                                   \
234
          "!  RANGE exception"                        \
235
          "  - caused by: report(0xe085330a);"        \
236
          "!  - SR value:  report(0x00008601);"       \
237
          "  1 / 0 (with error) carry flag set: TRUE" \
238
          "!Test completed"                           \
239
          "!report(0xdeaddead);"                      \
240
          "!exit(0)"]                                 \
241
    "inst-set-test.cfg" "inst-set-test/is-div-test"
242
 
243
# Run the l.ff1 and l.fl1 test
244
run_or1ksim "find-test"                 \
245
    [list "!l.ff1"                      \
246
          "  ff1 (0x00000001) =  1: OK" \
247
          "  ff1 (0x80000000) = 32: OK" \
248
          "  ff1 (0x55555555) =  1: OK" \
249
          "  ff1 (0xaaaaaaaa) =  2: OK" \
250
          "  ff1 (0x00018000) = 16: OK" \
251
          "  ff1 (0xc0000000) = 31: OK" \
252
          "  ff1 (0x00000000) =  0: OK" \
253
          "!l.fl1"                      \
254
          "  fl1 (0x00000001) =  1: OK" \
255
          "  fl1 (0x80000000) = 32: OK" \
256
          "  fl1 (0x55555555) = 31: OK" \
257
          "  fl1 (0xaaaaaaaa) = 32: OK" \
258
          "  fl1 (0x00018000) = 17: OK" \
259
          "  fl1 (0xc0000000) = 32: OK" \
260
          "  fl1 (0x00000000) =  0: OK" \
261
          "!Test completed"             \
262
          "!report(0xdeaddead);"        \
263
          "!exit(0)"]                   \
264
    "inst-set-test.cfg" "inst-set-test/is-find-test"
265
 
266
# Run the l.lws test
267
run_or1ksim "lws-test"                            \
268
    [list "!l.lws"                                \
269
          "   l.lws r4,0(r5): r4=0xdeadbeef:  OK" \
270
          "   l.lws r4,0(r5): r4=0x00000000:  OK" \
271
          "   l.lws r4,0(r5): r4=0x7fffffff:  OK" \
272
          "   l.lws r4,0(r5): r4=0x80000000:  OK" \
273
          "   l.lws r4,0(r5): r4=0xffffffff:  OK" \
274
          "   l.lws r4,0(r5): r4=0x00000000:  OK" \
275
          "   l.lws r4,0(r5): r4=0x7fffffff:  OK" \
276
          "   l.lws r4,0(r5): r4=0x80000000:  OK" \
277
          "   l.lws r4,0(r5): r4=0xffffffff:  OK" \
278
          "   l.lws r4,0(r5): r4=0xdeadbeef:  OK" \
279
          "   l.lws r4,0(r5): r4=0x00000000:  OK" \
280
          "   l.lws r4,0(r5): r4=0x7fffffff:  OK" \
281
          "   l.lws r4,0(r5): r4=0x80000000:  OK" \
282
          "!Test completed"                       \
283
          "!report(0xdeaddead);"                  \
284
          "!exit(0)"]                             \
285
    "inst-set-test.cfg" "inst-set-test/is-lws-test"
286 116 jeremybenn
 
287
# Run the l.mac test
288
run_or1ksim "mac-test"                            \
289
    [list "!l.mac"                                \
290
  "  0x00000000 00000000 + 0x00000002 * 0x00000003 = 0x00000000 00000006: OK" \
291
  "  0x00000000 00000006 + 0x00000002 * 0x00000003 = 0x00000000 0000000c: OK" \
292
  "  0x00000000 fffffffa + 0x00000002 * 0x00000003 = 0x00000001 00000000: OK" \
293
  "  0x3fffffff fffffffa + 0x00000002 * 0x00000003 = 0x40000000 00000000: OK" \
294
  "  0xffffffff fffffffa + 0x00000002 * 0x00000003 = 0x00000000 00000000: OK" \
295
  "  0xffffffff 00000000 + 0x00000002 * 0x00000003 = 0xffffffff 00000006: OK" \
296
  "  0x80000000 00000000 + 0x00000002 * 0x00000003 = 0x80000000 00000006: OK" \
297
  "!" \
298
  "  0x00000000 00000000 + 0x00008001 * 0x0000fffe = 0x00000000 7ffffffe: OK" \
299
  "  0x00000000 00000002 + 0x00008001 * 0x0000fffe = 0x00000000 80000000: OK" \
300
  "  0x00000000 80000002 + 0x00008001 * 0x0000fffe = 0x00000001 00000000: OK" \
301
  "  0x7fffffff 80000001 + 0x00008001 * 0x0000fffe = 0x7fffffff ffffffff: OK" \
302
  "  0xffffffff ffffffff + 0x00008001 * 0x0000fffe = 0x00000000 7ffffffd: OK" \
303
  "  0xffffffff 80000002 + 0x00008001 * 0x0000fffe = 0x00000000 00000000: OK" \
304
  "  0xfffffffe 80000002 + 0x00008001 * 0x0000fffe = 0xffffffff 00000000: OK" \
305
  "!" \
306
  "  0x00000000 00000000 + 0xfffffffe * 0xfffffffd = 0x00000000 00000006: OK" \
307
  "  0x00000000 00000006 + 0xfffffffe * 0xfffffffd = 0x00000000 0000000c: OK" \
308
  "  0xffffffff ffffffff + 0xfffffffe * 0xfffffffd = 0x00000000 00000005: OK" \
309
  "!" \
310
  "  0x00000000 00000000 + 0x00000002 * 0xfffffffd = 0xffffffff fffffffa: OK" \
311
  "  0x00000000 0000000c + 0x00000002 * 0xfffffffd = 0x00000000 00000006: OK" \
312
  "  0x00000001 00000005 + 0x00000002 * 0xfffffffd = 0x00000000 ffffffff: OK" \
313
  "  0x7fffffff ffffffff + 0x00000002 * 0xfffffffd = 0x7fffffff fffffff9: OK" \
314
  "  0xffffffff ffffffff + 0x00000002 * 0xfffffffd = 0xffffffff fffffff9: OK" \
315
  "  0xffffffff 00000005 + 0x00000002 * 0xfffffffd = 0xfffffffe ffffffff: OK" \
316
  "  0x80000000 00000006 + 0x00000002 * 0xfffffffd = 0x80000000 00000000: OK" \
317
  "!" \
318
  "  0x00000000 00000000 + 0x00008000 * 0xffff0000 = 0xffffffff 80000000: OK" \
319
  "  0x00000000 00000006 + 0x00008000 * 0xffff0000 = 0xffffffff 80000006: OK" \
320
  "  0x00000000 80000000 + 0x00008000 * 0xffff0000 = 0x00000000 00000000: OK" \
321
  "  0x7fffffff ffffffff + 0x00008000 * 0xffff0000 = 0x7fffffff 7fffffff: OK" \
322
  "  0xffffffff ffffffff + 0x00008000 * 0xffff0000 = 0xffffffff 7fffffff: OK" \
323
  "  0xffffffff 7fffffff + 0x00008000 * 0xffff0000 = 0xfffffffe ffffffff: OK" \
324
  "  0x80000000 80000000 + 0x00008000 * 0xffff0000 = 0x80000000 00000000: OK" \
325
  "!" \
326
  "l.maci" \
327
  "  0x00000000 00000000 + 0x00000002 * 0x00000003 = 0x00000000 00000006: OK" \
328
  "  0x00000000 00000006 + 0x00000002 * 0x00000003 = 0x00000000 0000000c: OK" \
329
  "  0x00000000 fffffffa + 0x00000002 * 0x00000003 = 0x00000001 00000000: OK" \
330
  "  0x3fffffff fffffffa + 0x00000002 * 0x00000003 = 0x40000000 00000000: OK" \
331
  "  0xffffffff fffffffa + 0x00000002 * 0x00000003 = 0x00000000 00000000: OK" \
332
  "  0xffffffff 00000000 + 0x00000002 * 0x00000003 = 0xffffffff 00000006: OK" \
333
  "  0x80000000 00000000 + 0x00000002 * 0x00000003 = 0x80000000 00000006: OK" \
334
  "!" \
335
  "  0x00000000 00000000 + 0x00010002 * 0x00007fff = 0x00000000 7ffffffe: OK" \
336
  "  0x00000000 00000002 + 0x00010002 * 0x00007fff = 0x00000000 80000000: OK" \
337
  "  0x00000000 80000002 + 0x00010002 * 0x00007fff = 0x00000001 00000000: OK" \
338
  "  0x7fffffff 80000001 + 0x00010002 * 0x00007fff = 0x7fffffff ffffffff: OK" \
339
  "  0xffffffff ffffffff + 0x00010002 * 0x00007fff = 0x00000000 7ffffffd: OK" \
340
  "  0xffffffff 80000002 + 0x00010002 * 0x00007fff = 0x00000000 00000000: OK" \
341
  "  0xfffffffe 80000002 + 0x00010002 * 0x00007fff = 0xffffffff 00000000: OK" \
342
  "!" \
343
  "  0x00000000 00000000 + 0xfffffffe * 0x0000fffd = 0x00000000 00000006: OK" \
344
  "  0x00000000 00000006 + 0xfffffffe * 0x0000fffd = 0x00000000 0000000c: OK" \
345
  "  0xffffffff ffffffff + 0xfffffffe * 0x0000fffd = 0x00000000 00000005: OK" \
346
  "!" \
347
  "  0x00000000 00000000 + 0x00000002 * 0x0000fffd = 0xffffffff fffffffa: OK" \
348
  "  0x00000000 0000000c + 0x00000002 * 0x0000fffd = 0x00000000 00000006: OK" \
349
  "  0x00000001 00000005 + 0x00000002 * 0x0000fffd = 0x00000000 ffffffff: OK" \
350
  "  0x7fffffff ffffffff + 0x00000002 * 0x0000fffd = 0x7fffffff fffffff9: OK" \
351
  "  0xffffffff ffffffff + 0x00000002 * 0x0000fffd = 0xffffffff fffffff9: OK" \
352
  "  0xffffffff 00000005 + 0x00000002 * 0x0000fffd = 0xfffffffe ffffffff: OK" \
353
  "  0x80000000 00000006 + 0x00000002 * 0x0000fffd = 0x80000000 00000000: OK" \
354
  "!" \
355
  "  0x00000000 00000000 + 0x00010000 * 0x00008000 = 0xffffffff 80000000: OK" \
356
  "  0x00000000 00000006 + 0x00010000 * 0x00008000 = 0xffffffff 80000006: OK" \
357
  "  0x00000000 80000000 + 0x00010000 * 0x00008000 = 0x00000000 00000000: OK" \
358
  "  0x7fffffff ffffffff + 0x00010000 * 0x00008000 = 0x7fffffff 7fffffff: OK" \
359
  "  0xffffffff ffffffff + 0x00010000 * 0x00008000 = 0xffffffff 7fffffff: OK" \
360
  "  0xffffffff 7fffffff + 0x00010000 * 0x00008000 = 0xfffffffe ffffffff: OK" \
361
  "  0x80000000 80000000 + 0x00010000 * 0x00008000 = 0x80000000 00000000: OK" \
362
  "!" \
363
  "l.macrc" \
364
  "  0x00000000 00000000 + 0x00000002 * 0x00000003 = 0x00000006:   OK" \
365
  "  - MACHI cleared" \
366
  "  - MACLO cleared" \
367
  "  0x00000000 00000006 + 0x00000002 * 0x00000003 = 0x0000000c:   OK" \
368
  "  - MACHI cleared" \
369
  "  - MACLO cleared" \
370
  "  0x00000000 fffffffa + 0x00000002 * 0x00000003 = 0x00000000:   OK" \
371
  "  - MACHI cleared" \
372
  "  - MACLO cleared" \
373
  "  0x3fffffff fffffffa + 0x00000002 * 0x00000003 = 0x00000000:   OK" \
374
  "  - MACHI cleared" \
375
  "  - MACLO cleared" \
376
  "  0xffffffff fffffffa + 0x00000002 * 0x00000003 = 0x00000000:   OK" \
377
  "  - MACHI cleared" \
378
  "  - MACLO cleared" \
379
  "  0xffffffff 00000000 + 0x00000002 * 0x00000003 = 0x00000006:   OK" \
380
  "  - MACHI cleared" \
381
  "  - MACLO cleared" \
382
  "  0x80000000 00000000 + 0x00000002 * 0x00000003 = 0x00000006:   OK" \
383
  "  - MACHI cleared" \
384
  "  - MACLO cleared" \
385
  "!" \
386
  "  0x00000000 00000000 + 0x00008001 * 0x0000fffe = 0x7ffffffe:   OK" \
387
  "  - MACHI cleared" \
388
  "  - MACLO cleared" \
389
  "  0x00000000 00000002 + 0x00008001 * 0x0000fffe = 0x80000000:   OK" \
390
  "  - MACHI cleared" \
391
  "  - MACLO cleared" \
392
  "  0x00000000 80000002 + 0x00008001 * 0x0000fffe = 0x00000000:   OK" \
393
  "  - MACHI cleared" \
394
  "  - MACLO cleared" \
395
  "  0x7fffffff 80000001 + 0x00008001 * 0x0000fffe = 0xffffffff:   OK" \
396
  "  - MACHI cleared" \
397
  "  - MACLO cleared" \
398
  "  0xffffffff ffffffff + 0x00008001 * 0x0000fffe = 0x7ffffffd:   OK" \
399
  "  - MACHI cleared" \
400
  "  - MACLO cleared" \
401
  "  0xffffffff 80000002 + 0x00008001 * 0x0000fffe = 0x00000000:   OK" \
402
  "  - MACHI cleared" \
403
  "  - MACLO cleared" \
404
  "  0xfffffffe 80000002 + 0x00008001 * 0x0000fffe = 0x00000000:   OK" \
405
  "  - MACHI cleared" \
406
  "  - MACLO cleared" \
407
  "!" \
408
  "  0x00000000 00000000 + 0xfffffffe * 0xfffffffd = 0x00000006:   OK" \
409
  "  - MACHI cleared" \
410
  "  - MACLO cleared" \
411
  "  0x00000000 00000006 + 0xfffffffe * 0xfffffffd = 0x0000000c:   OK" \
412
  "  - MACHI cleared" \
413
  "  - MACLO cleared" \
414
  "  0xffffffff ffffffff + 0xfffffffe * 0xfffffffd = 0x00000005:   OK" \
415
  "  - MACHI cleared" \
416
  "  - MACLO cleared" \
417
  "!" \
418
  "  0x00000000 00000000 + 0x00000002 * 0xfffffffd = 0xfffffffa:   OK" \
419
  "  - MACHI cleared" \
420
  "  - MACLO cleared" \
421
  "  0x00000000 0000000c + 0x00000002 * 0xfffffffd = 0x00000006:   OK" \
422
  "  - MACHI cleared" \
423
  "  - MACLO cleared" \
424
  "  0x00000001 00000005 + 0x00000002 * 0xfffffffd = 0xffffffff:   OK" \
425
  "  - MACHI cleared" \
426
  "  - MACLO cleared" \
427
  "  0x7fffffff ffffffff + 0x00000002 * 0xfffffffd = 0xfffffff9:   OK" \
428
  "  - MACHI cleared" \
429
  "  - MACLO cleared" \
430
  "  0xffffffff ffffffff + 0x00000002 * 0xfffffffd = 0xfffffff9:   OK" \
431
  "  - MACHI cleared" \
432
  "  - MACLO cleared" \
433
  "  0xffffffff 00000005 + 0x00000002 * 0xfffffffd = 0xffffffff:   OK" \
434
  "  - MACHI cleared" \
435
  "  - MACLO cleared" \
436
  "  0x80000000 00000006 + 0x00000002 * 0xfffffffd = 0x00000000:   OK" \
437
  "  - MACHI cleared" \
438
  "  - MACLO cleared" \
439
  "!" \
440
  "  0x00000000 00000000 + 0x00008000 * 0xffff0000 = 0x80000000:   OK" \
441
  "  - MACHI cleared" \
442
  "  - MACLO cleared" \
443
  "  0x00000000 00000006 + 0x00008000 * 0xffff0000 = 0x80000006:   OK" \
444
  "  - MACHI cleared" \
445
  "  - MACLO cleared" \
446
  "  0x00000000 80000000 + 0x00008000 * 0xffff0000 = 0x00000000:   OK" \
447
  "  - MACHI cleared" \
448
  "  - MACLO cleared" \
449
  "  0x7fffffff ffffffff + 0x00008000 * 0xffff0000 = 0x7fffffff:   OK" \
450
  "  - MACHI cleared" \
451
  "  - MACLO cleared" \
452
  "  0xffffffff ffffffff + 0x00008000 * 0xffff0000 = 0x7fffffff:   OK" \
453
  "  - MACHI cleared" \
454
  "  - MACLO cleared" \
455
  "  0xffffffff 7fffffff + 0x00008000 * 0xffff0000 = 0xffffffff:   OK" \
456
  "  - MACHI cleared" \
457
  "  - MACLO cleared" \
458
  "  0x80000000 80000000 + 0x00008000 * 0xffff0000 = 0x00000000:   OK" \
459
  "  - MACHI cleared" \
460
  "  - MACLO cleared" \
461
  "!" \
462
  "l.msb" \
463
  "  0x00000000 00000000 - 0x00000002 * 0x00000003 = 0xffffffff fffffffa: OK" \
464
  "  0x00000000 0000000c - 0x00000002 * 0x00000003 = 0x00000000 00000006: OK" \
465
  "  0x00000001 00000000 - 0x00000002 * 0x00000003 = 0x00000000 fffffffa: OK" \
466
  "  0x40000000 00000000 - 0x00000002 * 0x00000003 = 0x3fffffff fffffffa: OK" \
467
  "  0xffffffff fffffffa - 0x00000002 * 0x00000003 = 0xffffffff fffffff4: OK" \
468
  "  0xffffffff 00000005 - 0x00000002 * 0x00000003 = 0xfffffffe ffffffff: OK" \
469
  "  0x80000000 00000006 - 0x00000002 * 0x00000003 = 0x80000000 00000000: OK" \
470
  "!" \
471
  "  0x00000000 00000000 - 0x00008001 * 0x0000fffe = 0xffffffff 80000002: OK" \
472
  "  0x00000000 00000002 - 0x00008001 * 0x0000fffe = 0xffffffff 80000004: OK" \
473
  "  0x00000000 80000002 - 0x00008001 * 0x0000fffe = 0x00000000 00000004: OK" \
474
  "  0x7fffffff 7ffffffd - 0x00008001 * 0x0000fffe = 0x7ffffffe ffffffff: OK" \
475
  "  0xffffffff ffffffff - 0x00008001 * 0x0000fffe = 0xffffffff 80000001: OK" \
476
  "  0xffffffff 80000002 - 0x00008001 * 0x0000fffe = 0xffffffff 00000004: OK" \
477
  "  0xfffffffe 80000002 - 0x00008001 * 0x0000fffe = 0xfffffffe 00000004: OK" \
478
  "!" \
479
  "  0x00000000 00000006 - 0xfffffffe * 0xfffffffd = 0x00000000 00000000: OK" \
480
  "  0x00000000 0000000c - 0xfffffffe * 0xfffffffd = 0x00000000 00000006: OK" \
481
  "  0xffffffff ffffffff - 0xfffffffe * 0xfffffffd = 0xffffffff fffffff9: OK" \
482
  "!" \
483
  "  0x00000000 00000000 - 0x00000002 * 0xfffffffd = 0x00000000 00000006: OK" \
484
  "  0x00000000 00000006 - 0x00000002 * 0xfffffffd = 0x00000000 0000000c: OK" \
485
  "  0x00000000 ffffffff - 0x00000002 * 0xfffffffd = 0x00000001 00000005: OK" \
486
  "  0x7fffffff fffffff9 - 0x00000002 * 0xfffffffd = 0x7fffffff ffffffff: OK" \
487
  "  0xffffffff fffffff9 - 0x00000002 * 0xfffffffd = 0xffffffff ffffffff: OK" \
488
  "  0xfffffffe ffffffff - 0x00000002 * 0xfffffffd = 0xffffffff 00000005: OK" \
489
  "  0x80000000 00000000 - 0x00000002 * 0xfffffffd = 0x80000000 00000006: OK" \
490
  "!" \
491
  "  0x00000000 00000000 - 0x00008000 * 0xffff0000 = 0x00000000 80000000: OK" \
492
  "  0x00000000 00000006 - 0x00008000 * 0xffff0000 = 0x00000000 80000006: OK" \
493
  "  0x00000000 80000000 - 0x00008000 * 0xffff0000 = 0x00000001 00000000: OK" \
494
  "  0x7fffffff 7fffffff - 0x00008000 * 0xffff0000 = 0x7fffffff ffffffff: OK" \
495
  "  0xffffffff ffffffff - 0x00008000 * 0xffff0000 = 0x00000000 7fffffff: OK" \
496
  "  0xfffffffe ffffffff - 0x00008000 * 0xffff0000 = 0xffffffff 7fffffff: OK" \
497
  "  0x80000000 00000000 - 0x00008000 * 0xffff0000 = 0x80000000 80000000: OK" \
498
  "!" \
499
  "!Test completed"                       \
500
  "!report(0xdeaddead);"                  \
501
  "!exit(0)"]                             \
502
    "inst-set-test.cfg" "inst-set-test/is-mac-test"

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.