/[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

Annotation of /upstream/0.3.2/tests/README

Parent Directory Parent Directory | Revision Log Revision Log


Revision 5 - (hide annotations)
Mon Oct 8 16:18:06 2007 UTC (16 years, 6 months ago) by dpavlin
File size: 6922 byte(s)
0.3.2
1 dpavlin 2 $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