summaryrefslogtreecommitdiff
path: root/gas/testsuite/gas/mips/r5900-full-vu0.s
diff options
context:
space:
mode:
Diffstat (limited to 'gas/testsuite/gas/mips/r5900-full-vu0.s')
-rw-r--r--gas/testsuite/gas/mips/r5900-full-vu0.s214
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