1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219
|
.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
vclipw $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
vmaddz $vf6, $vf3, $vf5
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
vmaddax $ACC, $vf1, $vf5
vmadday.xyzw $ACCxyzw,$vf31xyzw,$vf1y
vmadday $ACC, $vf2, $vf5
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
vmulaw $ACC, $vf4, $vf0
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
|