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 }