diff options
Diffstat (limited to 'gas/testsuite/gas/mips/r5900-full-vu0.s')
-rw-r--r-- | gas/testsuite/gas/mips/r5900-full-vu0.s | 214 |
1 files changed, 214 insertions, 0 deletions
diff --git a/gas/testsuite/gas/mips/r5900-full-vu0.s b/gas/testsuite/gas/mips/r5900-full-vu0.s new file mode 100644 index 0000000000..a26235b9f1 --- /dev/null +++ b/gas/testsuite/gas/mips/r5900-full-vu0.s @@ -0,0 +1,214 @@ + .set noreorder + .set noat + + .globl text_label .text +text_label: + + # VU Macromode instruction set + vabs.xyzw $vf0xyzw,$vf31xyzw + vadd.xyzw $vf10xyzw,$vf31xyzw,$vf0xyzw + vaddi.xyzw $vf10xyzw,$vf31xyzw,$I + vaddq.xyzw $vf10xyzw,$vf31xyzw,$Q + vaddw.xyzw $vf10xyzw,$vf31xyzw,$vf1w + vaddx.xyzw $vf10xyzw,$vf31xyzw,$vf1x + vaddy.xyzw $vf10xyzw,$vf31xyzw,$vf1y + vaddz.xyzw $vf10xyzw,$vf31xyzw,$vf1z + vadda.xyzw $ACCxyzw,$vf0xyzw,$vf31xyzw + vaddai.xyzw $ACCxyzw,$vf31xyzw,$I + vaddaq.xyzw $ACCxyzw,$vf31xyzw,$Q + vaddaw.xyzw $ACCxyzw,$vf31xyzw,$vf1w + vaddax.xyzw $ACCxyzw,$vf31xyzw,$vf1x + vadday.xyzw $ACCxyzw,$vf31xyzw,$vf1y + vaddaz.xyzw $ACCxyzw,$vf31xyzw,$vf1z + vcallms 0x0 + vcallms 0x340 + vcallms 0xff8 + vcallmsr $vi27 + vclipw.xyz $vf31xyz,$vf1w + vdiv $Q,$vf1y,$vf11x + vftoi0.xyzw $vf0xyzw,$vf31xyzw + vftoi4.xyzw $vf0xyzw,$vf31xyzw + vftoi12.xyzw $vf0xyzw,$vf31xyzw + vftoi15.xyzw $vf0xyzw,$vf31xyzw + viadd $vi1,$vi15,$vi0 + viaddi $vi0,$vi15,-1 + viand $vi1,$vi15,$vi0 + vilwr.w $vi0,($vi15) + vilwr.x $vi0,($vi15) + vilwr.y $vi0,($vi15) + vilwr.z $vi0,($vi15) + vior $vi1,$vi15,$vi0 + viswr.w $vi0,($vi15) + viswr.x $vi0,($vi15) + viswr.y $vi0,($vi15) + viswr.z $vi0,($vi15) + visub $vi1,$vi15,$vi0 + vitof0.xyzw $vf0xyzw,$vf31xyzw + vitof4.xyzw $vf0xyzw,$vf31xyzw + vitof12.xyzw $vf0xyzw,$vf31xyzw + vitof15.xyzw $vf0xyzw,$vf31xyzw + vlqd.xyzw $vf0xyzw,(--$vi15) + vlqi.xyzw $vf0xyzw,($vi15++) + vmadd.xyzw $vf10xyzw,$vf31xyzw,$vf0xyzw + vmaddi.xyzw $vf10xyzw,$vf31xyzw,$I + vmaddq.xyzw $vf10xyzw,$vf31xyzw,$Q + vmaddw.xyzw $vf10xyzw,$vf31xyzw,$vf1w + vmaddx.xyzw $vf10xyzw,$vf31xyzw,$vf1x + vmaddy.xyzw $vf10xyzw,$vf31xyzw,$vf1y + vmaddz.xyzw $vf10xyzw,$vf31xyzw,$vf1z + vmadda.xyzw $ACCxyzw,$vf31xyzw,$vf0xyzw + vmaddai.xyzw $ACCxyzw,$vf31xyzw,$I + vmaddaq.xyzw $ACCxyzw,$vf31xyzw,$Q + vmaddaw.xyzw $ACCxyzw,$vf31xyzw,$vf1w + vmaddax.xyzw $ACCxyzw,$vf31xyzw,$vf1x + vmadday.xyzw $ACCxyzw,$vf31xyzw,$vf1y + vmaddaz.xyzw $ACCxyzw,$vf31xyzw,$vf1z + vmax.xyzw $vf10xyzw,$vf31xyzw,$vf0xyzw + vmaxi.xyzw $vf10xyzw,$vf31xyzw,$I + vmaxw.xyzw $vf10xyzw,$vf31xyzw,$vf1w + vmaxx.xyzw $vf10xyzw,$vf31xyzw,$vf1x + vmaxy.xyzw $vf10xyzw,$vf31xyzw,$vf1y + vmaxz.xyzw $vf10xyzw,$vf31xyzw,$vf1z + vmfir.xyzw $vf0xyzw,$vi15 + vmini.xyzw $vf10xyzw,$vf31xyzw,$vf0xyzw + vminii.xyzw $vf10xyzw,$vf31xyzw,$I + vminiw.xyzw $vf10xyzw,$vf31xyzw,$vf1w + vminix.xyzw $vf10xyzw,$vf31xyzw,$vf1x + vminiy.xyzw $vf10xyzw,$vf31xyzw,$vf1y + vminiz.xyzw $vf10xyzw,$vf31xyzw,$vf1z + vmove.xyzw $vf0xyzw,$vf31xyzw + vmr32.xyzw $vf0xyzw,$vf31xyzw + vmsub.xyzw $vf10xyzw,$vf31xyzw,$vf0xyzw + vmsubi.xyzw $vf10xyzw,$vf31xyzw,$I + vmsubq.xyzw $vf10xyzw,$vf31xyzw,$Q + vmsubw.xyzw $vf10xyzw,$vf31xyzw,$vf1w + vmsubx.xyzw $vf10xyzw,$vf31xyzw,$vf1x + vmsuby.xyzw $vf10xyzw,$vf31xyzw,$vf1y + vmsubz.xyzw $vf10xyzw,$vf31xyzw,$vf1z + vmsuba.xyzw $ACCxyzw,$vf0xyzw,$vf31xyzw + vmsubai.xyzw $ACCxyzw,$vf31xyzw,$I + vmsubaq.xyzw $ACCxyzw,$vf31xyzw,$Q + vmsubaw.xyzw $ACCxyzw,$vf31xyzw,$vf1w + vmsubax.xyzw $ACCxyzw,$vf31xyzw,$vf1x + vmsubay.xyzw $ACCxyzw,$vf31xyzw,$vf1y + vmsubaz.xyzw $ACCxyzw,$vf31xyzw,$vf1z + vmtir $vi0,$vf1z + vmul.xyzw $vf10xyzw,$vf31xyzw,$vf0xyzw + vmuli.xyzw $vf10xyzw,$vf31xyzw,$I + vmulq.xyzw $vf10xyzw,$vf31xyzw,$Q + vmulw.xyzw $vf10xyzw,$vf31xyzw,$vf1w + vmulx.xyzw $vf10xyzw,$vf31xyzw,$vf1x + vmuly.xyzw $vf10xyzw,$vf31xyzw,$vf1y + vmulz.xyzw $vf10xyzw,$vf31xyzw,$vf1z + vmula.xyzw $ACCxyzw,$vf31xyzw,$vf0xyzw + vmulai.xyzw $ACCxyzw,$vf31xyzw,$I + vmulaq.xyzw $ACCxyzw,$vf31xyzw,$Q + vmulaw.xyzw $ACCxyzw,$vf31xyzw,$vf1w + vmulax.xyzw $ACCxyzw,$vf31xyzw,$vf1x + vmulay.xyzw $ACCxyzw,$vf31xyzw,$vf1y + vmulaz.xyzw $ACCxyzw,$vf31xyzw,$vf1z + vnop + vopmula.xyz $ACCxyz,$vf31xyz,$vf0xyz + vopmsub.xyz $vf10xyz,$vf31xyz,$vf0xyz + vrget.xyzw $vf0xyzw,$R + vrinit $R,$vf1w + vrnext.xyzw $vf0xyzw,$R + vrsqrt $Q,$vf1w,$vf11x + vrxor $R,$vf1x + vsqd.xyzw $vf31xyzw,(--$vi0) + vsqi.xyzw $vf31xyzw,($vi0++) + vsqrt $Q,$vf11z + vsub.xyzw $vf10xyzw,$vf31xyzw,$vf0xyzw + vsubi.xyzw $vf10xyzw,$vf31xyzw,$I + vsubq.xyzw $vf10xyzw,$vf31xyzw,$Q + vsubw.xyzw $vf10xyzw,$vf31xyzw,$vf1w + vsubx.xyzw $vf10xyzw,$vf31xyzw,$vf1x + vsuby.xyzw $vf10xyzw,$vf31xyzw,$vf1y + vsubz.xyzw $vf10xyzw,$vf31xyzw,$vf1z + vsuba.xyzw $ACCxyzw,$vf31xyzw,$vf0xyzw + vsubai.xyzw $ACCxyzw,$vf31xyzw,$I + vsubaq.xyzw $ACCxyzw,$vf31xyzw,$Q + vsubaw.xyzw $ACCxyzw,$vf31xyzw,$vf1w + vsubax.xyzw $ACCxyzw,$vf31xyzw,$vf1x + vsubay.xyzw $ACCxyzw,$vf31xyzw,$vf1y + vsubaz.xyzw $ACCxyzw,$vf31xyzw,$vf1z + vwaitq + + # Implicit suffixes + vadd.xyzw $vf10,$vf31,$vf0 + vadd.xy $vf10,$vf31,$vf0 + vadd.xyzw $vf10,$vf31,$vf0 + vlqi.xy $vf0,($vi15++) + + # VU floating point registers + vadd.xyzw $vf0,$vf1,$vf2 + vadd.xyzw $vf3,$vf4,$vf5 + vadd.xyzw $vf6,$vf7,$vf8 + vadd.xyzw $vf9,$vf10,$vf11 + vadd.xyzw $vf12,$vf13,$vf14 + vadd.xyzw $vf15,$vf16,$vf17 + vadd.xyzw $vf18,$vf19,$vf20 + vadd.xyzw $vf21,$vf22,$vf23 + vadd.xyzw $vf24,$vf25,$vf26 + vadd.xyzw $vf27,$vf28,$vf29 + vadd.xyzw $vf30,$vf31,$vf0 + + # VU integer registers + viadd $vi0,$vi1,$vi2 + viadd $vi3,$vi4,$vi5 + viadd $vi6,$vi7,$vi8 + viadd $vi9,$vi10,$vi11 + viadd $vi12,$vi13,$vi14 + viadd $vi15,$vi16,$vi17 + viadd $vi18,$vi19,$vi20 + viadd $vi21,$vi22,$vi23 + viadd $vi24,$vi25,$vi26 + viadd $vi27,$vi28,$vi29 + viadd $vi30,$vi31,$vi0 + + # Floating point transfer to VU + lqc2 $0,0($0) + lqc2 $1, 0x7fff($1) + lqc2 $8, -0x8000($8) + lqc2 $31, -1($31) + + # Floating point transfer from VU + sqc2 $0,0($0) + sqc2 $1, 0x7fff($1) + sqc2 $8, -0x8000($8) + sqc2 $31, -1($31) + + # Integer transfer from VU + cfc2 $0,$0 + cfc2 $0,$31 + cfc2.i $0,$0 + cfc2.i $0,$31 + cfc2.ni $0,$0 + cfc2.ni $0,$31 + + # Integer transfer to VU + ctc2 $0,$0 + ctc2 $0,$31 + ctc2.i $0,$0 + ctc2.i $0,$31 + ctc2.ni $0,$0 + ctc2.ni $0,$31 + + # Floating point transfer from VU + qmfc2 $0,$0 + qmfc2 $0,$31 + qmfc2.i $0,$0 + qmfc2.i $0,$31 + qmfc2.ni $0,$0 + qmfc2.ni $0,$31 + + # Floating point transfer to VU + qmtc2 $0,$0 + qmtc2 $0,$31 + qmtc2.i $0,$0 + qmtc2.i $0,$31 + qmtc2.ni $0,$0 + qmtc2.ni $0,$31 + +# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ... + .space 8 |