gtsocial-umbx

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

vector.go (19825B)


      1 // Copyright 2016 The Go Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style
      3 // license that can be found in the LICENSE file.
      4 
      5 package s390x
      6 
      7 import (
      8 	"github.com/twitchyliquid64/golang-asm/obj"
      9 )
     10 
     11 // This file contains utility functions for use when
     12 // assembling vector instructions.
     13 
     14 // vop returns the opcode, element size and condition
     15 // setting for the given (possibly extended) mnemonic.
     16 func vop(as obj.As) (opcode, es, cs uint32) {
     17 	switch as {
     18 	default:
     19 		return 0, 0, 0
     20 	case AVA:
     21 		return op_VA, 0, 0
     22 	case AVAB:
     23 		return op_VA, 0, 0
     24 	case AVAH:
     25 		return op_VA, 1, 0
     26 	case AVAF:
     27 		return op_VA, 2, 0
     28 	case AVAG:
     29 		return op_VA, 3, 0
     30 	case AVAQ:
     31 		return op_VA, 4, 0
     32 	case AVACC:
     33 		return op_VACC, 0, 0
     34 	case AVACCB:
     35 		return op_VACC, 0, 0
     36 	case AVACCH:
     37 		return op_VACC, 1, 0
     38 	case AVACCF:
     39 		return op_VACC, 2, 0
     40 	case AVACCG:
     41 		return op_VACC, 3, 0
     42 	case AVACCQ:
     43 		return op_VACC, 4, 0
     44 	case AVAC:
     45 		return op_VAC, 0, 0
     46 	case AVACQ:
     47 		return op_VAC, 4, 0
     48 	case AVMSLG, AVMSLEG, AVMSLOG, AVMSLEOG:
     49 		return op_VMSL, 3, 0
     50 	case AVACCC:
     51 		return op_VACCC, 0, 0
     52 	case AVACCCQ:
     53 		return op_VACCC, 4, 0
     54 	case AVN:
     55 		return op_VN, 0, 0
     56 	case AVNC:
     57 		return op_VNC, 0, 0
     58 	case AVAVG:
     59 		return op_VAVG, 0, 0
     60 	case AVAVGB:
     61 		return op_VAVG, 0, 0
     62 	case AVAVGH:
     63 		return op_VAVG, 1, 0
     64 	case AVAVGF:
     65 		return op_VAVG, 2, 0
     66 	case AVAVGG:
     67 		return op_VAVG, 3, 0
     68 	case AVAVGL:
     69 		return op_VAVGL, 0, 0
     70 	case AVAVGLB:
     71 		return op_VAVGL, 0, 0
     72 	case AVAVGLH:
     73 		return op_VAVGL, 1, 0
     74 	case AVAVGLF:
     75 		return op_VAVGL, 2, 0
     76 	case AVAVGLG:
     77 		return op_VAVGL, 3, 0
     78 	case AVCKSM:
     79 		return op_VCKSM, 0, 0
     80 	case AVCEQ:
     81 		return op_VCEQ, 0, 0
     82 	case AVCEQB:
     83 		return op_VCEQ, 0, 0
     84 	case AVCEQH:
     85 		return op_VCEQ, 1, 0
     86 	case AVCEQF:
     87 		return op_VCEQ, 2, 0
     88 	case AVCEQG:
     89 		return op_VCEQ, 3, 0
     90 	case AVCEQBS:
     91 		return op_VCEQ, 0, 1
     92 	case AVCEQHS:
     93 		return op_VCEQ, 1, 1
     94 	case AVCEQFS:
     95 		return op_VCEQ, 2, 1
     96 	case AVCEQGS:
     97 		return op_VCEQ, 3, 1
     98 	case AVCH:
     99 		return op_VCH, 0, 0
    100 	case AVCHB:
    101 		return op_VCH, 0, 0
    102 	case AVCHH:
    103 		return op_VCH, 1, 0
    104 	case AVCHF:
    105 		return op_VCH, 2, 0
    106 	case AVCHG:
    107 		return op_VCH, 3, 0
    108 	case AVCHBS:
    109 		return op_VCH, 0, 1
    110 	case AVCHHS:
    111 		return op_VCH, 1, 1
    112 	case AVCHFS:
    113 		return op_VCH, 2, 1
    114 	case AVCHGS:
    115 		return op_VCH, 3, 1
    116 	case AVCHL:
    117 		return op_VCHL, 0, 0
    118 	case AVCHLB:
    119 		return op_VCHL, 0, 0
    120 	case AVCHLH:
    121 		return op_VCHL, 1, 0
    122 	case AVCHLF:
    123 		return op_VCHL, 2, 0
    124 	case AVCHLG:
    125 		return op_VCHL, 3, 0
    126 	case AVCHLBS:
    127 		return op_VCHL, 0, 1
    128 	case AVCHLHS:
    129 		return op_VCHL, 1, 1
    130 	case AVCHLFS:
    131 		return op_VCHL, 2, 1
    132 	case AVCHLGS:
    133 		return op_VCHL, 3, 1
    134 	case AVCLZ:
    135 		return op_VCLZ, 0, 0
    136 	case AVCLZB:
    137 		return op_VCLZ, 0, 0
    138 	case AVCLZH:
    139 		return op_VCLZ, 1, 0
    140 	case AVCLZF:
    141 		return op_VCLZ, 2, 0
    142 	case AVCLZG:
    143 		return op_VCLZ, 3, 0
    144 	case AVCTZ:
    145 		return op_VCTZ, 0, 0
    146 	case AVCTZB:
    147 		return op_VCTZ, 0, 0
    148 	case AVCTZH:
    149 		return op_VCTZ, 1, 0
    150 	case AVCTZF:
    151 		return op_VCTZ, 2, 0
    152 	case AVCTZG:
    153 		return op_VCTZ, 3, 0
    154 	case AVEC:
    155 		return op_VEC, 0, 0
    156 	case AVECB:
    157 		return op_VEC, 0, 0
    158 	case AVECH:
    159 		return op_VEC, 1, 0
    160 	case AVECF:
    161 		return op_VEC, 2, 0
    162 	case AVECG:
    163 		return op_VEC, 3, 0
    164 	case AVECL:
    165 		return op_VECL, 0, 0
    166 	case AVECLB:
    167 		return op_VECL, 0, 0
    168 	case AVECLH:
    169 		return op_VECL, 1, 0
    170 	case AVECLF:
    171 		return op_VECL, 2, 0
    172 	case AVECLG:
    173 		return op_VECL, 3, 0
    174 	case AVERIM:
    175 		return op_VERIM, 0, 0
    176 	case AVERIMB:
    177 		return op_VERIM, 0, 0
    178 	case AVERIMH:
    179 		return op_VERIM, 1, 0
    180 	case AVERIMF:
    181 		return op_VERIM, 2, 0
    182 	case AVERIMG:
    183 		return op_VERIM, 3, 0
    184 	case AVERLL:
    185 		return op_VERLL, 0, 0
    186 	case AVERLLB:
    187 		return op_VERLL, 0, 0
    188 	case AVERLLH:
    189 		return op_VERLL, 1, 0
    190 	case AVERLLF:
    191 		return op_VERLL, 2, 0
    192 	case AVERLLG:
    193 		return op_VERLL, 3, 0
    194 	case AVERLLV:
    195 		return op_VERLLV, 0, 0
    196 	case AVERLLVB:
    197 		return op_VERLLV, 0, 0
    198 	case AVERLLVH:
    199 		return op_VERLLV, 1, 0
    200 	case AVERLLVF:
    201 		return op_VERLLV, 2, 0
    202 	case AVERLLVG:
    203 		return op_VERLLV, 3, 0
    204 	case AVESLV:
    205 		return op_VESLV, 0, 0
    206 	case AVESLVB:
    207 		return op_VESLV, 0, 0
    208 	case AVESLVH:
    209 		return op_VESLV, 1, 0
    210 	case AVESLVF:
    211 		return op_VESLV, 2, 0
    212 	case AVESLVG:
    213 		return op_VESLV, 3, 0
    214 	case AVESL:
    215 		return op_VESL, 0, 0
    216 	case AVESLB:
    217 		return op_VESL, 0, 0
    218 	case AVESLH:
    219 		return op_VESL, 1, 0
    220 	case AVESLF:
    221 		return op_VESL, 2, 0
    222 	case AVESLG:
    223 		return op_VESL, 3, 0
    224 	case AVESRA:
    225 		return op_VESRA, 0, 0
    226 	case AVESRAB:
    227 		return op_VESRA, 0, 0
    228 	case AVESRAH:
    229 		return op_VESRA, 1, 0
    230 	case AVESRAF:
    231 		return op_VESRA, 2, 0
    232 	case AVESRAG:
    233 		return op_VESRA, 3, 0
    234 	case AVESRAV:
    235 		return op_VESRAV, 0, 0
    236 	case AVESRAVB:
    237 		return op_VESRAV, 0, 0
    238 	case AVESRAVH:
    239 		return op_VESRAV, 1, 0
    240 	case AVESRAVF:
    241 		return op_VESRAV, 2, 0
    242 	case AVESRAVG:
    243 		return op_VESRAV, 3, 0
    244 	case AVESRL:
    245 		return op_VESRL, 0, 0
    246 	case AVESRLB:
    247 		return op_VESRL, 0, 0
    248 	case AVESRLH:
    249 		return op_VESRL, 1, 0
    250 	case AVESRLF:
    251 		return op_VESRL, 2, 0
    252 	case AVESRLG:
    253 		return op_VESRL, 3, 0
    254 	case AVESRLV:
    255 		return op_VESRLV, 0, 0
    256 	case AVESRLVB:
    257 		return op_VESRLV, 0, 0
    258 	case AVESRLVH:
    259 		return op_VESRLV, 1, 0
    260 	case AVESRLVF:
    261 		return op_VESRLV, 2, 0
    262 	case AVESRLVG:
    263 		return op_VESRLV, 3, 0
    264 	case AVX:
    265 		return op_VX, 0, 0
    266 	case AVFAE:
    267 		return op_VFAE, 0, 0
    268 	case AVFAEB:
    269 		return op_VFAE, 0, 0
    270 	case AVFAEH:
    271 		return op_VFAE, 1, 0
    272 	case AVFAEF:
    273 		return op_VFAE, 2, 0
    274 	case AVFAEBS:
    275 		return op_VFAE, 0, 1
    276 	case AVFAEHS:
    277 		return op_VFAE, 1, 1
    278 	case AVFAEFS:
    279 		return op_VFAE, 2, 1
    280 	case AVFAEZB:
    281 		return op_VFAE, 0, 2
    282 	case AVFAEZH:
    283 		return op_VFAE, 1, 2
    284 	case AVFAEZF:
    285 		return op_VFAE, 2, 2
    286 	case AVFAEZBS:
    287 		return op_VFAE, 0, 3
    288 	case AVFAEZHS:
    289 		return op_VFAE, 1, 3
    290 	case AVFAEZFS:
    291 		return op_VFAE, 2, 3
    292 	case AVFEE:
    293 		return op_VFEE, 0, 0
    294 	case AVFEEB:
    295 		return op_VFEE, 0, 0
    296 	case AVFEEH:
    297 		return op_VFEE, 1, 0
    298 	case AVFEEF:
    299 		return op_VFEE, 2, 0
    300 	case AVFEEBS:
    301 		return op_VFEE, 0, 1
    302 	case AVFEEHS:
    303 		return op_VFEE, 1, 1
    304 	case AVFEEFS:
    305 		return op_VFEE, 2, 1
    306 	case AVFEEZB:
    307 		return op_VFEE, 0, 2
    308 	case AVFEEZH:
    309 		return op_VFEE, 1, 2
    310 	case AVFEEZF:
    311 		return op_VFEE, 2, 2
    312 	case AVFEEZBS:
    313 		return op_VFEE, 0, 3
    314 	case AVFEEZHS:
    315 		return op_VFEE, 1, 3
    316 	case AVFEEZFS:
    317 		return op_VFEE, 2, 3
    318 	case AVFENE:
    319 		return op_VFENE, 0, 0
    320 	case AVFENEB:
    321 		return op_VFENE, 0, 0
    322 	case AVFENEH:
    323 		return op_VFENE, 1, 0
    324 	case AVFENEF:
    325 		return op_VFENE, 2, 0
    326 	case AVFENEBS:
    327 		return op_VFENE, 0, 1
    328 	case AVFENEHS:
    329 		return op_VFENE, 1, 1
    330 	case AVFENEFS:
    331 		return op_VFENE, 2, 1
    332 	case AVFENEZB:
    333 		return op_VFENE, 0, 2
    334 	case AVFENEZH:
    335 		return op_VFENE, 1, 2
    336 	case AVFENEZF:
    337 		return op_VFENE, 2, 2
    338 	case AVFENEZBS:
    339 		return op_VFENE, 0, 3
    340 	case AVFENEZHS:
    341 		return op_VFENE, 1, 3
    342 	case AVFENEZFS:
    343 		return op_VFENE, 2, 3
    344 	case AVFA:
    345 		return op_VFA, 0, 0
    346 	case AVFADB:
    347 		return op_VFA, 3, 0
    348 	case AWFADB:
    349 		return op_VFA, 3, 0
    350 	case AWFK:
    351 		return op_WFK, 0, 0
    352 	case AWFKDB:
    353 		return op_WFK, 3, 0
    354 	case AVFCE:
    355 		return op_VFCE, 0, 0
    356 	case AVFCEDB:
    357 		return op_VFCE, 3, 0
    358 	case AVFCEDBS:
    359 		return op_VFCE, 3, 1
    360 	case AWFCEDB:
    361 		return op_VFCE, 3, 0
    362 	case AWFCEDBS:
    363 		return op_VFCE, 3, 1
    364 	case AVFCH:
    365 		return op_VFCH, 0, 0
    366 	case AVFCHDB:
    367 		return op_VFCH, 3, 0
    368 	case AVFCHDBS:
    369 		return op_VFCH, 3, 1
    370 	case AWFCHDB:
    371 		return op_VFCH, 3, 0
    372 	case AWFCHDBS:
    373 		return op_VFCH, 3, 1
    374 	case AVFCHE:
    375 		return op_VFCHE, 0, 0
    376 	case AVFCHEDB:
    377 		return op_VFCHE, 3, 0
    378 	case AVFCHEDBS:
    379 		return op_VFCHE, 3, 1
    380 	case AWFCHEDB:
    381 		return op_VFCHE, 3, 0
    382 	case AWFCHEDBS:
    383 		return op_VFCHE, 3, 1
    384 	case AWFC:
    385 		return op_WFC, 0, 0
    386 	case AWFCDB:
    387 		return op_WFC, 3, 0
    388 	case AVCDG:
    389 		return op_VCDG, 0, 0
    390 	case AVCDGB:
    391 		return op_VCDG, 3, 0
    392 	case AWCDGB:
    393 		return op_VCDG, 3, 0
    394 	case AVCDLG:
    395 		return op_VCDLG, 0, 0
    396 	case AVCDLGB:
    397 		return op_VCDLG, 3, 0
    398 	case AWCDLGB:
    399 		return op_VCDLG, 3, 0
    400 	case AVCGD:
    401 		return op_VCGD, 0, 0
    402 	case AVCGDB:
    403 		return op_VCGD, 3, 0
    404 	case AWCGDB:
    405 		return op_VCGD, 3, 0
    406 	case AVCLGD:
    407 		return op_VCLGD, 0, 0
    408 	case AVCLGDB:
    409 		return op_VCLGD, 3, 0
    410 	case AWCLGDB:
    411 		return op_VCLGD, 3, 0
    412 	case AVFD:
    413 		return op_VFD, 0, 0
    414 	case AVFDDB:
    415 		return op_VFD, 3, 0
    416 	case AWFDDB:
    417 		return op_VFD, 3, 0
    418 	case AVLDE:
    419 		return op_VLDE, 0, 0
    420 	case AVLDEB:
    421 		return op_VLDE, 2, 0
    422 	case AWLDEB:
    423 		return op_VLDE, 2, 0
    424 	case AVLED:
    425 		return op_VLED, 0, 0
    426 	case AVLEDB:
    427 		return op_VLED, 3, 0
    428 	case AWLEDB:
    429 		return op_VLED, 3, 0
    430 	case AVFM:
    431 		return op_VFM, 0, 0
    432 	case AVFMDB:
    433 		return op_VFM, 3, 0
    434 	case AWFMDB:
    435 		return op_VFM, 3, 0
    436 	case AVFMA:
    437 		return op_VFMA, 0, 0
    438 	case AVFMADB:
    439 		return op_VFMA, 3, 0
    440 	case AWFMADB:
    441 		return op_VFMA, 3, 0
    442 	case AVFMS:
    443 		return op_VFMS, 0, 0
    444 	case AVFMSDB:
    445 		return op_VFMS, 3, 0
    446 	case AWFMSDB:
    447 		return op_VFMS, 3, 0
    448 	case AVFPSO:
    449 		return op_VFPSO, 0, 0
    450 	case AVFPSODB:
    451 		return op_VFPSO, 3, 0
    452 	case AWFPSODB:
    453 		return op_VFPSO, 3, 0
    454 	case AVFLCDB:
    455 		return op_VFPSO, 3, 0
    456 	case AWFLCDB:
    457 		return op_VFPSO, 3, 0
    458 	case AVFLNDB:
    459 		return op_VFPSO, 3, 1
    460 	case AWFLNDB:
    461 		return op_VFPSO, 3, 1
    462 	case AVFLPDB:
    463 		return op_VFPSO, 3, 2
    464 	case AWFLPDB:
    465 		return op_VFPSO, 3, 2
    466 	case AVFSQ:
    467 		return op_VFSQ, 0, 0
    468 	case AVFSQDB:
    469 		return op_VFSQ, 3, 0
    470 	case AWFSQDB:
    471 		return op_VFSQ, 3, 0
    472 	case AVFS:
    473 		return op_VFS, 0, 0
    474 	case AVFSDB:
    475 		return op_VFS, 3, 0
    476 	case AWFSDB:
    477 		return op_VFS, 3, 0
    478 	case AVFTCI:
    479 		return op_VFTCI, 0, 0
    480 	case AVFTCIDB:
    481 		return op_VFTCI, 3, 0
    482 	case AWFTCIDB:
    483 		return op_VFTCI, 3, 0
    484 	case AVGFM:
    485 		return op_VGFM, 0, 0
    486 	case AVGFMB:
    487 		return op_VGFM, 0, 0
    488 	case AVGFMH:
    489 		return op_VGFM, 1, 0
    490 	case AVGFMF:
    491 		return op_VGFM, 2, 0
    492 	case AVGFMG:
    493 		return op_VGFM, 3, 0
    494 	case AVGFMA:
    495 		return op_VGFMA, 0, 0
    496 	case AVGFMAB:
    497 		return op_VGFMA, 0, 0
    498 	case AVGFMAH:
    499 		return op_VGFMA, 1, 0
    500 	case AVGFMAF:
    501 		return op_VGFMA, 2, 0
    502 	case AVGFMAG:
    503 		return op_VGFMA, 3, 0
    504 	case AVGEF:
    505 		return op_VGEF, 0, 0
    506 	case AVGEG:
    507 		return op_VGEG, 0, 0
    508 	case AVGBM:
    509 		return op_VGBM, 0, 0
    510 	case AVZERO:
    511 		return op_VGBM, 0, 0
    512 	case AVONE:
    513 		return op_VGBM, 0, 0
    514 	case AVGM:
    515 		return op_VGM, 0, 0
    516 	case AVGMB:
    517 		return op_VGM, 0, 0
    518 	case AVGMH:
    519 		return op_VGM, 1, 0
    520 	case AVGMF:
    521 		return op_VGM, 2, 0
    522 	case AVGMG:
    523 		return op_VGM, 3, 0
    524 	case AVISTR:
    525 		return op_VISTR, 0, 0
    526 	case AVISTRB:
    527 		return op_VISTR, 0, 0
    528 	case AVISTRH:
    529 		return op_VISTR, 1, 0
    530 	case AVISTRF:
    531 		return op_VISTR, 2, 0
    532 	case AVISTRBS:
    533 		return op_VISTR, 0, 1
    534 	case AVISTRHS:
    535 		return op_VISTR, 1, 1
    536 	case AVISTRFS:
    537 		return op_VISTR, 2, 1
    538 	case AVL:
    539 		return op_VL, 0, 0
    540 	case AVLR:
    541 		return op_VLR, 0, 0
    542 	case AVLREP:
    543 		return op_VLREP, 0, 0
    544 	case AVLREPB:
    545 		return op_VLREP, 0, 0
    546 	case AVLREPH:
    547 		return op_VLREP, 1, 0
    548 	case AVLREPF:
    549 		return op_VLREP, 2, 0
    550 	case AVLREPG:
    551 		return op_VLREP, 3, 0
    552 	case AVLC:
    553 		return op_VLC, 0, 0
    554 	case AVLCB:
    555 		return op_VLC, 0, 0
    556 	case AVLCH:
    557 		return op_VLC, 1, 0
    558 	case AVLCF:
    559 		return op_VLC, 2, 0
    560 	case AVLCG:
    561 		return op_VLC, 3, 0
    562 	case AVLEH:
    563 		return op_VLEH, 0, 0
    564 	case AVLEF:
    565 		return op_VLEF, 0, 0
    566 	case AVLEG:
    567 		return op_VLEG, 0, 0
    568 	case AVLEB:
    569 		return op_VLEB, 0, 0
    570 	case AVLEIH:
    571 		return op_VLEIH, 0, 0
    572 	case AVLEIF:
    573 		return op_VLEIF, 0, 0
    574 	case AVLEIG:
    575 		return op_VLEIG, 0, 0
    576 	case AVLEIB:
    577 		return op_VLEIB, 0, 0
    578 	case AVFI:
    579 		return op_VFI, 0, 0
    580 	case AVFIDB:
    581 		return op_VFI, 3, 0
    582 	case AWFIDB:
    583 		return op_VFI, 3, 0
    584 	case AVLGV:
    585 		return op_VLGV, 0, 0
    586 	case AVLGVB:
    587 		return op_VLGV, 0, 0
    588 	case AVLGVH:
    589 		return op_VLGV, 1, 0
    590 	case AVLGVF:
    591 		return op_VLGV, 2, 0
    592 	case AVLGVG:
    593 		return op_VLGV, 3, 0
    594 	case AVLLEZ:
    595 		return op_VLLEZ, 0, 0
    596 	case AVLLEZB:
    597 		return op_VLLEZ, 0, 0
    598 	case AVLLEZH:
    599 		return op_VLLEZ, 1, 0
    600 	case AVLLEZF:
    601 		return op_VLLEZ, 2, 0
    602 	case AVLLEZG:
    603 		return op_VLLEZ, 3, 0
    604 	case AVLM:
    605 		return op_VLM, 0, 0
    606 	case AVLP:
    607 		return op_VLP, 0, 0
    608 	case AVLPB:
    609 		return op_VLP, 0, 0
    610 	case AVLPH:
    611 		return op_VLP, 1, 0
    612 	case AVLPF:
    613 		return op_VLP, 2, 0
    614 	case AVLPG:
    615 		return op_VLP, 3, 0
    616 	case AVLBB:
    617 		return op_VLBB, 0, 0
    618 	case AVLVG:
    619 		return op_VLVG, 0, 0
    620 	case AVLVGB:
    621 		return op_VLVG, 0, 0
    622 	case AVLVGH:
    623 		return op_VLVG, 1, 0
    624 	case AVLVGF:
    625 		return op_VLVG, 2, 0
    626 	case AVLVGG:
    627 		return op_VLVG, 3, 0
    628 	case AVLVGP:
    629 		return op_VLVGP, 0, 0
    630 	case AVLL:
    631 		return op_VLL, 0, 0
    632 	case AVMX:
    633 		return op_VMX, 0, 0
    634 	case AVMXB:
    635 		return op_VMX, 0, 0
    636 	case AVMXH:
    637 		return op_VMX, 1, 0
    638 	case AVMXF:
    639 		return op_VMX, 2, 0
    640 	case AVMXG:
    641 		return op_VMX, 3, 0
    642 	case AVMXL:
    643 		return op_VMXL, 0, 0
    644 	case AVMXLB:
    645 		return op_VMXL, 0, 0
    646 	case AVMXLH:
    647 		return op_VMXL, 1, 0
    648 	case AVMXLF:
    649 		return op_VMXL, 2, 0
    650 	case AVMXLG:
    651 		return op_VMXL, 3, 0
    652 	case AVMRH:
    653 		return op_VMRH, 0, 0
    654 	case AVMRHB:
    655 		return op_VMRH, 0, 0
    656 	case AVMRHH:
    657 		return op_VMRH, 1, 0
    658 	case AVMRHF:
    659 		return op_VMRH, 2, 0
    660 	case AVMRHG:
    661 		return op_VMRH, 3, 0
    662 	case AVMRL:
    663 		return op_VMRL, 0, 0
    664 	case AVMRLB:
    665 		return op_VMRL, 0, 0
    666 	case AVMRLH:
    667 		return op_VMRL, 1, 0
    668 	case AVMRLF:
    669 		return op_VMRL, 2, 0
    670 	case AVMRLG:
    671 		return op_VMRL, 3, 0
    672 	case AVMN:
    673 		return op_VMN, 0, 0
    674 	case AVMNB:
    675 		return op_VMN, 0, 0
    676 	case AVMNH:
    677 		return op_VMN, 1, 0
    678 	case AVMNF:
    679 		return op_VMN, 2, 0
    680 	case AVMNG:
    681 		return op_VMN, 3, 0
    682 	case AVMNL:
    683 		return op_VMNL, 0, 0
    684 	case AVMNLB:
    685 		return op_VMNL, 0, 0
    686 	case AVMNLH:
    687 		return op_VMNL, 1, 0
    688 	case AVMNLF:
    689 		return op_VMNL, 2, 0
    690 	case AVMNLG:
    691 		return op_VMNL, 3, 0
    692 	case AVMAE:
    693 		return op_VMAE, 0, 0
    694 	case AVMAEB:
    695 		return op_VMAE, 0, 0
    696 	case AVMAEH:
    697 		return op_VMAE, 1, 0
    698 	case AVMAEF:
    699 		return op_VMAE, 2, 0
    700 	case AVMAH:
    701 		return op_VMAH, 0, 0
    702 	case AVMAHB:
    703 		return op_VMAH, 0, 0
    704 	case AVMAHH:
    705 		return op_VMAH, 1, 0
    706 	case AVMAHF:
    707 		return op_VMAH, 2, 0
    708 	case AVMALE:
    709 		return op_VMALE, 0, 0
    710 	case AVMALEB:
    711 		return op_VMALE, 0, 0
    712 	case AVMALEH:
    713 		return op_VMALE, 1, 0
    714 	case AVMALEF:
    715 		return op_VMALE, 2, 0
    716 	case AVMALH:
    717 		return op_VMALH, 0, 0
    718 	case AVMALHB:
    719 		return op_VMALH, 0, 0
    720 	case AVMALHH:
    721 		return op_VMALH, 1, 0
    722 	case AVMALHF:
    723 		return op_VMALH, 2, 0
    724 	case AVMALO:
    725 		return op_VMALO, 0, 0
    726 	case AVMALOB:
    727 		return op_VMALO, 0, 0
    728 	case AVMALOH:
    729 		return op_VMALO, 1, 0
    730 	case AVMALOF:
    731 		return op_VMALO, 2, 0
    732 	case AVMAL:
    733 		return op_VMAL, 0, 0
    734 	case AVMALB:
    735 		return op_VMAL, 0, 0
    736 	case AVMALHW:
    737 		return op_VMAL, 1, 0
    738 	case AVMALF:
    739 		return op_VMAL, 2, 0
    740 	case AVMAO:
    741 		return op_VMAO, 0, 0
    742 	case AVMAOB:
    743 		return op_VMAO, 0, 0
    744 	case AVMAOH:
    745 		return op_VMAO, 1, 0
    746 	case AVMAOF:
    747 		return op_VMAO, 2, 0
    748 	case AVME:
    749 		return op_VME, 0, 0
    750 	case AVMEB:
    751 		return op_VME, 0, 0
    752 	case AVMEH:
    753 		return op_VME, 1, 0
    754 	case AVMEF:
    755 		return op_VME, 2, 0
    756 	case AVMH:
    757 		return op_VMH, 0, 0
    758 	case AVMHB:
    759 		return op_VMH, 0, 0
    760 	case AVMHH:
    761 		return op_VMH, 1, 0
    762 	case AVMHF:
    763 		return op_VMH, 2, 0
    764 	case AVMLE:
    765 		return op_VMLE, 0, 0
    766 	case AVMLEB:
    767 		return op_VMLE, 0, 0
    768 	case AVMLEH:
    769 		return op_VMLE, 1, 0
    770 	case AVMLEF:
    771 		return op_VMLE, 2, 0
    772 	case AVMLH:
    773 		return op_VMLH, 0, 0
    774 	case AVMLHB:
    775 		return op_VMLH, 0, 0
    776 	case AVMLHH:
    777 		return op_VMLH, 1, 0
    778 	case AVMLHF:
    779 		return op_VMLH, 2, 0
    780 	case AVMLO:
    781 		return op_VMLO, 0, 0
    782 	case AVMLOB:
    783 		return op_VMLO, 0, 0
    784 	case AVMLOH:
    785 		return op_VMLO, 1, 0
    786 	case AVMLOF:
    787 		return op_VMLO, 2, 0
    788 	case AVML:
    789 		return op_VML, 0, 0
    790 	case AVMLB:
    791 		return op_VML, 0, 0
    792 	case AVMLHW:
    793 		return op_VML, 1, 0
    794 	case AVMLF:
    795 		return op_VML, 2, 0
    796 	case AVMO:
    797 		return op_VMO, 0, 0
    798 	case AVMOB:
    799 		return op_VMO, 0, 0
    800 	case AVMOH:
    801 		return op_VMO, 1, 0
    802 	case AVMOF:
    803 		return op_VMO, 2, 0
    804 	case AVNO:
    805 		return op_VNO, 0, 0
    806 	case AVNOT:
    807 		return op_VNO, 0, 0
    808 	case AVO:
    809 		return op_VO, 0, 0
    810 	case AVPK:
    811 		return op_VPK, 0, 0
    812 	case AVPKH:
    813 		return op_VPK, 1, 0
    814 	case AVPKF:
    815 		return op_VPK, 2, 0
    816 	case AVPKG:
    817 		return op_VPK, 3, 0
    818 	case AVPKLS:
    819 		return op_VPKLS, 0, 0
    820 	case AVPKLSH:
    821 		return op_VPKLS, 1, 0
    822 	case AVPKLSF:
    823 		return op_VPKLS, 2, 0
    824 	case AVPKLSG:
    825 		return op_VPKLS, 3, 0
    826 	case AVPKLSHS:
    827 		return op_VPKLS, 1, 1
    828 	case AVPKLSFS:
    829 		return op_VPKLS, 2, 1
    830 	case AVPKLSGS:
    831 		return op_VPKLS, 3, 1
    832 	case AVPKS:
    833 		return op_VPKS, 0, 0
    834 	case AVPKSH:
    835 		return op_VPKS, 1, 0
    836 	case AVPKSF:
    837 		return op_VPKS, 2, 0
    838 	case AVPKSG:
    839 		return op_VPKS, 3, 0
    840 	case AVPKSHS:
    841 		return op_VPKS, 1, 1
    842 	case AVPKSFS:
    843 		return op_VPKS, 2, 1
    844 	case AVPKSGS:
    845 		return op_VPKS, 3, 1
    846 	case AVPERM:
    847 		return op_VPERM, 0, 0
    848 	case AVPDI:
    849 		return op_VPDI, 0, 0
    850 	case AVPOPCT:
    851 		return op_VPOPCT, 0, 0
    852 	case AVREP:
    853 		return op_VREP, 0, 0
    854 	case AVREPB:
    855 		return op_VREP, 0, 0
    856 	case AVREPH:
    857 		return op_VREP, 1, 0
    858 	case AVREPF:
    859 		return op_VREP, 2, 0
    860 	case AVREPG:
    861 		return op_VREP, 3, 0
    862 	case AVREPI:
    863 		return op_VREPI, 0, 0
    864 	case AVREPIB:
    865 		return op_VREPI, 0, 0
    866 	case AVREPIH:
    867 		return op_VREPI, 1, 0
    868 	case AVREPIF:
    869 		return op_VREPI, 2, 0
    870 	case AVREPIG:
    871 		return op_VREPI, 3, 0
    872 	case AVSCEF:
    873 		return op_VSCEF, 0, 0
    874 	case AVSCEG:
    875 		return op_VSCEG, 0, 0
    876 	case AVSEL:
    877 		return op_VSEL, 0, 0
    878 	case AVSL:
    879 		return op_VSL, 0, 0
    880 	case AVSLB:
    881 		return op_VSLB, 0, 0
    882 	case AVSLDB:
    883 		return op_VSLDB, 0, 0
    884 	case AVSRA:
    885 		return op_VSRA, 0, 0
    886 	case AVSRAB:
    887 		return op_VSRAB, 0, 0
    888 	case AVSRL:
    889 		return op_VSRL, 0, 0
    890 	case AVSRLB:
    891 		return op_VSRLB, 0, 0
    892 	case AVSEG:
    893 		return op_VSEG, 0, 0
    894 	case AVSEGB:
    895 		return op_VSEG, 0, 0
    896 	case AVSEGH:
    897 		return op_VSEG, 1, 0
    898 	case AVSEGF:
    899 		return op_VSEG, 2, 0
    900 	case AVST:
    901 		return op_VST, 0, 0
    902 	case AVSTEH:
    903 		return op_VSTEH, 0, 0
    904 	case AVSTEF:
    905 		return op_VSTEF, 0, 0
    906 	case AVSTEG:
    907 		return op_VSTEG, 0, 0
    908 	case AVSTEB:
    909 		return op_VSTEB, 0, 0
    910 	case AVSTM:
    911 		return op_VSTM, 0, 0
    912 	case AVSTL:
    913 		return op_VSTL, 0, 0
    914 	case AVSTRC:
    915 		return op_VSTRC, 0, 0
    916 	case AVSTRCB:
    917 		return op_VSTRC, 0, 0
    918 	case AVSTRCH:
    919 		return op_VSTRC, 1, 0
    920 	case AVSTRCF:
    921 		return op_VSTRC, 2, 0
    922 	case AVSTRCBS:
    923 		return op_VSTRC, 0, 1
    924 	case AVSTRCHS:
    925 		return op_VSTRC, 1, 1
    926 	case AVSTRCFS:
    927 		return op_VSTRC, 2, 1
    928 	case AVSTRCZB:
    929 		return op_VSTRC, 0, 2
    930 	case AVSTRCZH:
    931 		return op_VSTRC, 1, 2
    932 	case AVSTRCZF:
    933 		return op_VSTRC, 2, 2
    934 	case AVSTRCZBS:
    935 		return op_VSTRC, 0, 3
    936 	case AVSTRCZHS:
    937 		return op_VSTRC, 1, 3
    938 	case AVSTRCZFS:
    939 		return op_VSTRC, 2, 3
    940 	case AVS:
    941 		return op_VS, 0, 0
    942 	case AVSB:
    943 		return op_VS, 0, 0
    944 	case AVSH:
    945 		return op_VS, 1, 0
    946 	case AVSF:
    947 		return op_VS, 2, 0
    948 	case AVSG:
    949 		return op_VS, 3, 0
    950 	case AVSQ:
    951 		return op_VS, 4, 0
    952 	case AVSCBI:
    953 		return op_VSCBI, 0, 0
    954 	case AVSCBIB:
    955 		return op_VSCBI, 0, 0
    956 	case AVSCBIH:
    957 		return op_VSCBI, 1, 0
    958 	case AVSCBIF:
    959 		return op_VSCBI, 2, 0
    960 	case AVSCBIG:
    961 		return op_VSCBI, 3, 0
    962 	case AVSCBIQ:
    963 		return op_VSCBI, 4, 0
    964 	case AVSBCBI:
    965 		return op_VSBCBI, 0, 0
    966 	case AVSBCBIQ:
    967 		return op_VSBCBI, 4, 0
    968 	case AVSBI:
    969 		return op_VSBI, 0, 0
    970 	case AVSBIQ:
    971 		return op_VSBI, 4, 0
    972 	case AVSUMG:
    973 		return op_VSUMG, 0, 0
    974 	case AVSUMGH:
    975 		return op_VSUMG, 1, 0
    976 	case AVSUMGF:
    977 		return op_VSUMG, 2, 0
    978 	case AVSUMQ:
    979 		return op_VSUMQ, 0, 0
    980 	case AVSUMQF:
    981 		return op_VSUMQ, 2, 0
    982 	case AVSUMQG:
    983 		return op_VSUMQ, 3, 0
    984 	case AVSUM:
    985 		return op_VSUM, 0, 0
    986 	case AVSUMB:
    987 		return op_VSUM, 0, 0
    988 	case AVSUMH:
    989 		return op_VSUM, 1, 0
    990 	case AVTM:
    991 		return op_VTM, 0, 0
    992 	case AVUPH:
    993 		return op_VUPH, 0, 0
    994 	case AVUPHB:
    995 		return op_VUPH, 0, 0
    996 	case AVUPHH:
    997 		return op_VUPH, 1, 0
    998 	case AVUPHF:
    999 		return op_VUPH, 2, 0
   1000 	case AVUPLH:
   1001 		return op_VUPLH, 0, 0
   1002 	case AVUPLHB:
   1003 		return op_VUPLH, 0, 0
   1004 	case AVUPLHH:
   1005 		return op_VUPLH, 1, 0
   1006 	case AVUPLHF:
   1007 		return op_VUPLH, 2, 0
   1008 	case AVUPLL:
   1009 		return op_VUPLL, 0, 0
   1010 	case AVUPLLB:
   1011 		return op_VUPLL, 0, 0
   1012 	case AVUPLLH:
   1013 		return op_VUPLL, 1, 0
   1014 	case AVUPLLF:
   1015 		return op_VUPLL, 2, 0
   1016 	case AVUPL:
   1017 		return op_VUPL, 0, 0
   1018 	case AVUPLB:
   1019 		return op_VUPL, 0, 0
   1020 	case AVUPLHW:
   1021 		return op_VUPL, 1, 0
   1022 	case AVUPLF:
   1023 		return op_VUPL, 2, 0
   1024 	}
   1025 }
   1026 
   1027 // singleElementMask returns the single element mask bits required for the
   1028 // given instruction.
   1029 func singleElementMask(as obj.As) uint32 {
   1030 	switch as {
   1031 	case AWFADB,
   1032 		AWFK,
   1033 		AWFKDB,
   1034 		AWFCEDB,
   1035 		AWFCEDBS,
   1036 		AWFCHDB,
   1037 		AWFCHDBS,
   1038 		AWFCHEDB,
   1039 		AWFCHEDBS,
   1040 		AWFC,
   1041 		AWFCDB,
   1042 		AWCDGB,
   1043 		AWCDLGB,
   1044 		AWCGDB,
   1045 		AWCLGDB,
   1046 		AWFDDB,
   1047 		AWLDEB,
   1048 		AWLEDB,
   1049 		AWFMDB,
   1050 		AWFMADB,
   1051 		AWFMSDB,
   1052 		AWFPSODB,
   1053 		AWFLCDB,
   1054 		AWFLNDB,
   1055 		AWFLPDB,
   1056 		AWFSQDB,
   1057 		AWFSDB,
   1058 		AWFTCIDB,
   1059 		AWFIDB:
   1060 		return 8
   1061 	case AVMSLEG:
   1062 		return 8
   1063 	case AVMSLOG:
   1064 		return 4
   1065 	case AVMSLEOG:
   1066 		return 12
   1067 	}
   1068 	return 0
   1069 }