/[gxemul]/upstream/0.3.2/tests/README
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Contents of /upstream/0.3.2/tests/README

Parent Directory Parent Directory | Revision Log Revision Log


Revision 5 - (show annotations)
Mon Oct 8 16:18:06 2007 UTC (11 years, 11 months ago) by dpavlin
File size: 6922 byte(s)
0.3.2
1 $Id: README,v 1.16 2005/03/05 12:40:17 debug Exp $
2
3 About GXemul's regression tests:
4 --------------------------------
5
6 This is a framework for regression testing the emulator. Unfortunately I
7 don't have the time or incentive to actually write the individual tests,
8 but hopefully this README file should be enough to get someone who wishes
9 to write tests started.
10
11 The regression tests require a MIPS (cross-)compiler to be available.
12 Please study Makefile.skel and ../configure for more information.
13
14 Adding a new test is done by writing an assembly language file called
15 test_X.S, where X is the name of the test. test_X.good is a file which
16 contains the wanted output.
17
18 The code in test_common.c calls a function called testmain() in each test
19 (which should be written to conform to a 64-bit ABI calling model, and
20 return an int value) and prints the return value in hex. If a test wants
21 to check more than one int, then it may call printhex() and printstr()
22 manually, as long as the output of the program and the contents of
23 test_X.good are the same.
24
25
26 Here is a list of MIPS instructions; some of them are implemented in the
27 emulator, only a few so far have regression tests. NOTE: This list is not
28 complete, and probably incorrect in many places.
29
30
31 ISA level:
32 12345,32,64,
33 Instr.: MDMX,3D,16 Impl: Reg. test filename:
34 ------- ----------- ----- -------------------
35 abs.fmt 1
36 add 1 yes
37 add.fmt 1 yes
38 adda.s ?
39 addciu ?
40 addi 1 yes
41 addiu 1 yes
42 addu 1 yes test_addu.S
43 alnv.ps ?
44 and 1 yes
45 andi 1 yes
46 bc0f 1
47 bc0fl 2
48 bc0t 1
49 bc0tl 2
50 bc1f 1
51 bc1t 1
52 beq 1 yes
53 beql 2 yes
54 bgez 1 yes
55 bgezal 1 yes
56 bgezall 2 yes
57 bgezl 2 yes
58 bgtz 1 yes
59 bgtzl 2 yes
60 blez 1 yes
61 blezl 2 yes
62 bltz 1 yes
63 bltzal 1 yes
64 bltzall 2 yes
65 bltzl 2 yes
66 bne 1 yes
67 bnel 2 yes
68 break 1 yes
69 c.cond 1 yes
70 cache 3 (?) yes
71 ceil.l.fmt 3
72 ceil.w.fmt 2
73 cfc1 1 yes
74 clo 32 yes test_clo_clz.S
75 clz 32 yes test_clo_clz.S
76 ctc1 1
77 cvt.d.fmt 1 or 3 yes
78 cvt.l.fmt 3 yes
79 cvt.s.fmt 1 or 3 yes
80 cvt.w.fmt 1 yes
81 dadd 3 yes
82 daddi 3 yes
83 daddiu 3 yes
84 daddu 3 yes test_daddu.S
85 dclo 64 yes test_dclo_dclz.S
86 dclz 64 yes test_dclo_dclz.S
87 dctr ?
88 dctw ?
89 ddiv 3 yes
90 ddivu 3 yes
91 deret ? yes
92 di c790 yes(ugly)
93 div 1 yes
94 div.fmt 1 yes
95 div1 c790 no
96 divu 1 yes
97 divu1 c790 no
98 dmadd16 ?
99 dmfc1 3 yes
100 dmtc1 3 yes
101 dmult 3
102 dmultu 3
103 dsll 3 yes
104 dsll32 3 yes
105 dsllv 3 yes
106 dsra 3 yes
107 dsra32 3 yes
108 dsrav 3 yes
109 dsrl 3 yes
110 dsrl32 3 yes
111 dsrlv 3 yes
112 dsub 3 yes
113 dsubu 3 yes
114 ei c790 yes(ugly)
115 eret 3 (?)
116 ffc ?
117 floor.l.fmt 3
118 floow.w.fmt 2
119 flushi ?
120 flushd ?
121 flushid ?
122 hibernate ?
123 j 1 yes
124 jal 1 yes
125 jalx 16
126 jalr 1 yes
127 jr 1 yes
128 lb 1 yes
129 lbu 1 yes
130 ld 3 yes
131 ldc1 2 yes
132 ldl 3 yes test_unaligned.S
133 ldr 3 yes test_unaligned.S
134 ldxc1 4
135 lh 1 yes
136 lhu 1 yes
137 ll 2 yes
138 lld 3 yes
139 lui 1 yes
140 luxc1 5
141 lq c790 yes
142 lqc2 ?
143 lw 1 yes
144 lwc1 1 yes
145 lwxc1 4
146 lwl 1 yes test_unaligned.S
147 lwr 1 yes test_unaligned.S
148 lwu 3 yes
149 mad ?
150 madu ?
151 madd 32,c790
152 madd1 c790
153 madd16 ?
154 madda.s ?
155 maddu 32,c790
156 maddu1 c790
157 max.s ?
158 mfbpc c790
159 mfc0 ? yes
160 mfc1 1 yes
161 mfdab c790
162 mfdabm c790
163 mfdvb c790
164 mfdvbm c790
165 mfhi 1 yes
166 mfhi1 c790
167 mfiab c790
168 mfiabm c790
169 mflo 1 yes
170 mflo1 c790
171 mfpc c790
172 mfps c790
173 mfsa c790
174 min.s ?
175 mov.fmt 1 yes
176 movn 4 yes
177 movz 4 yes
178 mtbpc c790
179 mtc0 ? yes
180 mtc1 1 yes
181 mtdab c790
182 mtdabm c790
183 mtdvb c790
184 mtdvbm c790
185 mthi 1 yes
186 mthi1 c790
187 mtiab c790
188 mtiabm c790
189 mtlo 1 yes
190 mtlo1 c790
191 mtpc c790
192 mtps c790
193 mtsa c790
194 mtsab c790
195 mtsah c790
196 mul.fmt 1 yes
197 mult 1 (c790 spec.) yes
198 mult1 c790
199 multu 1 (c790 spec.) yes
200 multu1 c790
201 neg.fmt 1 yes
202 nmadd.fmt 64, 4 or 5
203 nmsub.fmt 64, 4 or 5
204 nop 1 yes
205 nor 1 yes
206 or 1 yes
207 ori 1 yes
208 pabsh c790
209 pabsw c790
210 paddb c790
211 paddh c790
212 paddsb c790
213 paddsh c790
214 paddsw c790
215 paddub c790
216 padduh c790
217 padduw c790
218 paddw c790
219 padsbh c790
220 pand c790
221 pceqb c790
222 pceqh c790
223 pceqw c790
224 pcgtb c790
225 pcgth c790
226 pcgtw c790
227 pcpyh c790
228 pcpyld c790
229 pcpyud c790
230 pdivbw c790
231 pdivuw c790
232 pdivw c790
233 pexch c790
234 pexcw c790
235 pexeh c790
236 pexew c790
237 pext5 c790
238 pextlb c790
239 pextlh c790
240 pextlw c790
241 pextub c790
242 pextuh c790
243 pextuw c790
244 phmadh c790
245 phmsbh c790
246 pinteh c790
247 pinth c790
248 pll.ps 5, 64
249 plu.ps 5, 64
250 plzcw c790
251 pmaddh c790
252 pmadduw c790
253 pmaddw c790
254 pmaxh c790
255 pmaxw c790
256 pmfhi c790
257 pmfhl c790
258 pmflo c790
259 pminh c790
260 pminw c790
261 pmsubh c790
262 pmsubw c790
263 pmthi c790
264 pmthl c790
265 pmtlo c790
266 pmulth c790
267 pmultuw c790
268 pmultw c790
269 pnor c790
270 por c790
271 ppac5 c790
272 ppacb c790
273 ppach c790
274 ppacw c790
275 prevh c790
276 pref 4, 32 yes
277 prefx 4, 32?, 64
278 prot3w c790
279 psllh c790
280 psllvw c790
281 psllw c790
282 psrah c790
283 psravw c790
284 psraw c790
285 psrlh c790
286 psrlvw c790
287 psrlw c790
288 psubb c790
289 psubh c790
290 psubsb c790
291 psubsh c790
292 psubsw c790
293 psubub c790
294 psubuh c790
295 psubuw c790
296 psubw c790
297 pul.ps 5, 64
298 puu.ps 5, 64
299 pxor c790
300 qfsrv c790
301 recip.fmt 4
302 rfe 1 yes
303 round.l.fmt 3
304 round.w.fmt 2
305 rsqrt.d 4
306 rsqrt.s 4 or 5
307 sb 1 yes
308 sc 2 yes
309 scd 3 yes
310 sd 3 yes
311 sdbbp 32
312 sdc1 2 yes
313 sdl 3 yes
314 sdr 3 yes
315 sdxc1 4
316 selsl ?
317 selsr ?
318 sh 1 yes
319 sll 1 yes
320 sllv 1 yes
321 slt 1 yes
322 slti 1 yes
323 sltiu 1 yes
324 sq c790 yes
325 sqc2 ?
326 sqrt.fmt 2 yes
327 stlu 1 yes
328 sra 1 yes
329 srav 1 yes
330 srl 1 yes
331 srlv 1 yes
332 ssnop ? yes
333 standby ?
334 sub 1 yes
335 sub.fmt 1 yes
336 subu 1 yes
337 suspend ?
338 suxc1 5, 64
339 sw 1 yes
340 swc1 1 yes
341 swxc1 4, 64
342 swl 1 yes
343 swr 1 yes
344 sync 2 yes
345 syscall 1 yes
346 teq 2 yes
347 teqi 2 no
348 tge 2
349 tgei 2
350 tgeiu 2
351 tgeu 2
352 tlbp ?
353 tlbr ?
354 tlbwi ?
355 tlbwr ?
356 tlt 2
357 tlti 2
358 tltiu 2
359 tltu 2
360 tne 2
361 tnei 2
362 trunc.l.fmt 3 yes
363 trunc.w.fmt 2 tes
364 vabs ?
365 vadd ?
366 vaddi ?
367 vaddq ?
368 vaddw ?
369 vaddx ?
370 vaddy ?
371 vaddz ?
372 vadda ?
373 vaddai ?
374 vaddaq ?
375 vaddaw ?
376 vaddax ?
377 vadday ?
378 vaddaz ?
379 vcallms ?
380 vcallmsr ?
381 vclipw ?
382 vdiv ?
383 vftoi0 ?
384 vftoi4 ?
385 vftoi12 ?
386 vftoi15 ?
387 viadd ?
388 viaddi ?
389 viand ?
390 vilwr.w ?
391 vilwr.x ?
392 vilwr.y ?
393 vilwr.z ?
394 vior ?
395 viswr.w ?
396 viswr.x ?
397 viswr.y ?
398 viswr.z ?
399 visub ?
400 vitof0 ?
401 vitof4 ?
402 vitof12 ?
403 vitof15 ?
404 vlqd ?
405 vlqi ?
406 vmadd ?
407 vmaddi ?
408 vmaddq ?
409 vmaddw ?
410 vmaddx ?
411 vmaddy ?
412 vmaddz ?
413 vmadda ?
414 vmaddai ?
415 vmaddaq ?
416 vmaddaw ?
417 vmaddax ?
418 vmadday ?
419 vmaddaz ?
420 vmax ?
421 vmaxi ?
422 vmaxw ?
423 vmaxx ?
424 vmaxy ?
425 vmaxz ?
426 vmfir ?
427 vmini ?
428 vminii ?
429 vminiw ?
430 vminix ?
431 vminiy ?
432 vminiz ?
433 vmove ?
434 vmr32 ?
435 vmsub ?
436 vmsubi ?
437 vmsubq ?
438 vmsubw ?
439 vmsubx ?
440 vmsuby ?
441 vmsubz ?
442 vmsuba ?
443 vmsubai ?
444 vmsubaq ?
445 vmsubaw ?
446 vmsubax ?
447 vmsubay ?
448 vmsubaz ?
449 vmtir ?
450 vmul ?
451 vmuli ?
452 vmulq ?
453 vmulw ?
454 vmulx ?
455 vmuly ?
456 vmulz ?
457 vmula ?
458 vmulai ?
459 vmulaq ?
460 vmulaw ?
461 vmulax ?
462 vmulay ?
463 vmulaz ?
464 vnop ?
465 vopmula ?
466 vopmsub ?
467 vrget ?
468 vrinit ?
469 vrnext ?
470 vrsqrt ?
471 vrxor ?
472 vsqd ?
473 vsqi ?
474 vsqrt ?
475 vsub ?
476 vsubi ?
477 vsubq ?
478 vsubw ?
479 vsubx ?
480 vsuby ?
481 vsubz ?
482 vsuba ?
483 vsubai ?
484 vsubaq ?
485 vsubaw ?
486 vsubax ?
487 vsubay ?
488 vsubaz ?
489 vwaitq ?
490 wait 32
491 waiti ?
492 wb ?
493 xor 1 yes
494 xori 1 yes
495
496
497
498 TODO:
499 o) Hopefully, some day, someone will have the time and energy
500 to actually write all the regression tests necessary.
501
502 o) 32-bit vs 64-bit modes?
503
504 o) MIPS I, II, III, IV, V (?), MDMX (?)
505
506 o) MIPS16 encoding?
507
508 o) 32-bit vs 64-bit ELFs?
509
510 o) Try the regression tests using different compilers automagically?
511 ie gcc vs ccc vs solaris' cc...
512
513 o) Remove the usage of tmpnam(), and make do_tests.c less
514 ugly in general.
515
516

  ViewVC Help
Powered by ViewVC 1.1.26