1 .set noreorder 2 .set noat 3 4 .globl text_label .text 5text_label: 6 7 # VU Macromode instruction set 8 vabs.xyzw $vf0xyzw,$vf31xyzw 9 vadd.xyzw $vf10xyzw,$vf31xyzw,$vf0xyzw 10 vaddi.xyzw $vf10xyzw,$vf31xyzw,$I 11 vaddq.xyzw $vf10xyzw,$vf31xyzw,$Q 12 vaddw.xyzw $vf10xyzw,$vf31xyzw,$vf1w 13 vaddx.xyzw $vf10xyzw,$vf31xyzw,$vf1x 14 vaddy.xyzw $vf10xyzw,$vf31xyzw,$vf1y 15 vaddz.xyzw $vf10xyzw,$vf31xyzw,$vf1z 16 vadda.xyzw $ACCxyzw,$vf0xyzw,$vf31xyzw 17 vaddai.xyzw $ACCxyzw,$vf31xyzw,$I 18 vaddaq.xyzw $ACCxyzw,$vf31xyzw,$Q 19 vaddaw.xyzw $ACCxyzw,$vf31xyzw,$vf1w 20 vaddax.xyzw $ACCxyzw,$vf31xyzw,$vf1x 21 vadday.xyzw $ACCxyzw,$vf31xyzw,$vf1y 22 vaddaz.xyzw $ACCxyzw,$vf31xyzw,$vf1z 23 vcallms 0x0 24 vcallms 0x340 25 vcallms 0xff8 26 vcallmsr $vi27 27 vclipw.xyz $vf31xyz,$vf1w 28 vclipw $vf31xyz,$vf1w 29 vdiv $Q,$vf1y,$vf11x 30 vftoi0.xyzw $vf0xyzw,$vf31xyzw 31 vftoi4.xyzw $vf0xyzw,$vf31xyzw 32 vftoi12.xyzw $vf0xyzw,$vf31xyzw 33 vftoi15.xyzw $vf0xyzw,$vf31xyzw 34 viadd $vi1,$vi15,$vi0 35 viaddi $vi0,$vi15,-1 36 viand $vi1,$vi15,$vi0 37 vilwr.w $vi0,($vi15) 38 vilwr.x $vi0,($vi15) 39 vilwr.y $vi0,($vi15) 40 vilwr.z $vi0,($vi15) 41 vior $vi1,$vi15,$vi0 42 viswr.w $vi0,($vi15) 43 viswr.x $vi0,($vi15) 44 viswr.y $vi0,($vi15) 45 viswr.z $vi0,($vi15) 46 visub $vi1,$vi15,$vi0 47 vitof0.xyzw $vf0xyzw,$vf31xyzw 48 vitof4.xyzw $vf0xyzw,$vf31xyzw 49 vitof12.xyzw $vf0xyzw,$vf31xyzw 50 vitof15.xyzw $vf0xyzw,$vf31xyzw 51 vlqd.xyzw $vf0xyzw,(--$vi15) 52 vlqi.xyzw $vf0xyzw,($vi15++) 53 vmadd.xyzw $vf10xyzw,$vf31xyzw,$vf0xyzw 54 vmaddi.xyzw $vf10xyzw,$vf31xyzw,$I 55 vmaddq.xyzw $vf10xyzw,$vf31xyzw,$Q 56 vmaddw.xyzw $vf10xyzw,$vf31xyzw,$vf1w 57 vmaddx.xyzw $vf10xyzw,$vf31xyzw,$vf1x 58 vmaddy.xyzw $vf10xyzw,$vf31xyzw,$vf1y 59 vmaddz.xyzw $vf10xyzw,$vf31xyzw,$vf1z 60 vmaddz $vf6, $vf3, $vf5 61 vmadda.xyzw $ACCxyzw,$vf31xyzw,$vf0xyzw 62 vmaddai.xyzw $ACCxyzw,$vf31xyzw,$I 63 vmaddaq.xyzw $ACCxyzw,$vf31xyzw,$Q 64 vmaddaw.xyzw $ACCxyzw,$vf31xyzw,$vf1w 65 vmaddax.xyzw $ACCxyzw,$vf31xyzw,$vf1x 66 vmaddax $ACC, $vf1, $vf5 67 vmadday.xyzw $ACCxyzw,$vf31xyzw,$vf1y 68 vmadday $ACC, $vf2, $vf5 69 vmaddaz.xyzw $ACCxyzw,$vf31xyzw,$vf1z 70 vmax.xyzw $vf10xyzw,$vf31xyzw,$vf0xyzw 71 vmaxi.xyzw $vf10xyzw,$vf31xyzw,$I 72 vmaxw.xyzw $vf10xyzw,$vf31xyzw,$vf1w 73 vmaxx.xyzw $vf10xyzw,$vf31xyzw,$vf1x 74 vmaxy.xyzw $vf10xyzw,$vf31xyzw,$vf1y 75 vmaxz.xyzw $vf10xyzw,$vf31xyzw,$vf1z 76 vmfir.xyzw $vf0xyzw,$vi15 77 vmini.xyzw $vf10xyzw,$vf31xyzw,$vf0xyzw 78 vminii.xyzw $vf10xyzw,$vf31xyzw,$I 79 vminiw.xyzw $vf10xyzw,$vf31xyzw,$vf1w 80 vminix.xyzw $vf10xyzw,$vf31xyzw,$vf1x 81 vminiy.xyzw $vf10xyzw,$vf31xyzw,$vf1y 82 vminiz.xyzw $vf10xyzw,$vf31xyzw,$vf1z 83 vmove.xyzw $vf0xyzw,$vf31xyzw 84 vmr32.xyzw $vf0xyzw,$vf31xyzw 85 vmsub.xyzw $vf10xyzw,$vf31xyzw,$vf0xyzw 86 vmsubi.xyzw $vf10xyzw,$vf31xyzw,$I 87 vmsubq.xyzw $vf10xyzw,$vf31xyzw,$Q 88 vmsubw.xyzw $vf10xyzw,$vf31xyzw,$vf1w 89 vmsubx.xyzw $vf10xyzw,$vf31xyzw,$vf1x 90 vmsuby.xyzw $vf10xyzw,$vf31xyzw,$vf1y 91 vmsubz.xyzw $vf10xyzw,$vf31xyzw,$vf1z 92 vmsuba.xyzw $ACCxyzw,$vf0xyzw,$vf31xyzw 93 vmsubai.xyzw $ACCxyzw,$vf31xyzw,$I 94 vmsubaq.xyzw $ACCxyzw,$vf31xyzw,$Q 95 vmsubaw.xyzw $ACCxyzw,$vf31xyzw,$vf1w 96 vmsubax.xyzw $ACCxyzw,$vf31xyzw,$vf1x 97 vmsubay.xyzw $ACCxyzw,$vf31xyzw,$vf1y 98 vmsubaz.xyzw $ACCxyzw,$vf31xyzw,$vf1z 99 vmtir $vi0,$vf1z 100 vmul.xyzw $vf10xyzw,$vf31xyzw,$vf0xyzw 101 vmuli.xyzw $vf10xyzw,$vf31xyzw,$I 102 vmulq.xyzw $vf10xyzw,$vf31xyzw,$Q 103 vmulw.xyzw $vf10xyzw,$vf31xyzw,$vf1w 104 vmulx.xyzw $vf10xyzw,$vf31xyzw,$vf1x 105 vmuly.xyzw $vf10xyzw,$vf31xyzw,$vf1y 106 vmulz.xyzw $vf10xyzw,$vf31xyzw,$vf1z 107 vmula.xyzw $ACCxyzw,$vf31xyzw,$vf0xyzw 108 vmulai.xyzw $ACCxyzw,$vf31xyzw,$I 109 vmulaq.xyzw $ACCxyzw,$vf31xyzw,$Q 110 vmulaw.xyzw $ACCxyzw,$vf31xyzw,$vf1w 111 vmulaw $ACC, $vf4, $vf0 112 vmulax.xyzw $ACCxyzw,$vf31xyzw,$vf1x 113 vmulay.xyzw $ACCxyzw,$vf31xyzw,$vf1y 114 vmulaz.xyzw $ACCxyzw,$vf31xyzw,$vf1z 115 vnop 116 vopmula.xyz $ACCxyz,$vf31xyz,$vf0xyz 117 vopmsub.xyz $vf10xyz,$vf31xyz,$vf0xyz 118 vrget.xyzw $vf0xyzw,$R 119 vrinit $R,$vf1w 120 vrnext.xyzw $vf0xyzw,$R 121 vrsqrt $Q,$vf1w,$vf11x 122 vrxor $R,$vf1x 123 vsqd.xyzw $vf31xyzw,(--$vi0) 124 vsqi.xyzw $vf31xyzw,($vi0++) 125 vsqrt $Q,$vf11z 126 vsub.xyzw $vf10xyzw,$vf31xyzw,$vf0xyzw 127 vsubi.xyzw $vf10xyzw,$vf31xyzw,$I 128 vsubq.xyzw $vf10xyzw,$vf31xyzw,$Q 129 vsubw.xyzw $vf10xyzw,$vf31xyzw,$vf1w 130 vsubx.xyzw $vf10xyzw,$vf31xyzw,$vf1x 131 vsuby.xyzw $vf10xyzw,$vf31xyzw,$vf1y 132 vsubz.xyzw $vf10xyzw,$vf31xyzw,$vf1z 133 vsuba.xyzw $ACCxyzw,$vf31xyzw,$vf0xyzw 134 vsubai.xyzw $ACCxyzw,$vf31xyzw,$I 135 vsubaq.xyzw $ACCxyzw,$vf31xyzw,$Q 136 vsubaw.xyzw $ACCxyzw,$vf31xyzw,$vf1w 137 vsubax.xyzw $ACCxyzw,$vf31xyzw,$vf1x 138 vsubay.xyzw $ACCxyzw,$vf31xyzw,$vf1y 139 vsubaz.xyzw $ACCxyzw,$vf31xyzw,$vf1z 140 vwaitq 141 142 # Implicit suffixes 143 vadd.xyzw $vf10,$vf31,$vf0 144 vadd.xy $vf10,$vf31,$vf0 145 vadd.xyzw $vf10,$vf31,$vf0 146 vlqi.xy $vf0,($vi15++) 147 148 # VU floating point registers 149 vadd.xyzw $vf0,$vf1,$vf2 150 vadd.xyzw $vf3,$vf4,$vf5 151 vadd.xyzw $vf6,$vf7,$vf8 152 vadd.xyzw $vf9,$vf10,$vf11 153 vadd.xyzw $vf12,$vf13,$vf14 154 vadd.xyzw $vf15,$vf16,$vf17 155 vadd.xyzw $vf18,$vf19,$vf20 156 vadd.xyzw $vf21,$vf22,$vf23 157 vadd.xyzw $vf24,$vf25,$vf26 158 vadd.xyzw $vf27,$vf28,$vf29 159 vadd.xyzw $vf30,$vf31,$vf0 160 161 # VU integer registers 162 viadd $vi0,$vi1,$vi2 163 viadd $vi3,$vi4,$vi5 164 viadd $vi6,$vi7,$vi8 165 viadd $vi9,$vi10,$vi11 166 viadd $vi12,$vi13,$vi14 167 viadd $vi15,$vi16,$vi17 168 viadd $vi18,$vi19,$vi20 169 viadd $vi21,$vi22,$vi23 170 viadd $vi24,$vi25,$vi26 171 viadd $vi27,$vi28,$vi29 172 viadd $vi30,$vi31,$vi0 173 174 # Floating point transfer to VU 175 lqc2 $0,0($0) 176 lqc2 $1, 0x7fff($1) 177 lqc2 $8, -0x8000($8) 178 lqc2 $31, -1($31) 179 180 # Floating point transfer from VU 181 sqc2 $0,0($0) 182 sqc2 $1, 0x7fff($1) 183 sqc2 $8, -0x8000($8) 184 sqc2 $31, -1($31) 185 186 # Integer transfer from VU 187 cfc2 $0,$0 188 cfc2 $0,$31 189 cfc2.i $0,$0 190 cfc2.i $0,$31 191 cfc2.ni $0,$0 192 cfc2.ni $0,$31 193 194 # Integer transfer to VU 195 ctc2 $0,$0 196 ctc2 $0,$31 197 ctc2.i $0,$0 198 ctc2.i $0,$31 199 ctc2.ni $0,$0 200 ctc2.ni $0,$31 201 202 # Floating point transfer from VU 203 qmfc2 $0,$0 204 qmfc2 $0,$31 205 qmfc2.i $0,$0 206 qmfc2.i $0,$31 207 qmfc2.ni $0,$0 208 qmfc2.ni $0,$31 209 210 # Floating point transfer to VU 211 qmtc2 $0,$0 212 qmtc2 $0,$31 213 qmtc2.i $0,$0 214 qmtc2.i $0,$31 215 qmtc2.ni $0,$0 216 qmtc2.ni $0,$31 217 218# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ... 219 .space 8 220