1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069 |
- // Copyright 2016 The Go Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style
- // license that can be found in the LICENSE file.
- package s390x
- import (
- "github.com/twitchyliquid64/golang-asm/obj"
- )
- // This file contains utility functions for use when
- // assembling vector instructions.
- // vop returns the opcode, element size and condition
- // setting for the given (possibly extended) mnemonic.
- func vop(as obj.As) (opcode, es, cs uint32) {
- switch as {
- default:
- return 0, 0, 0
- case AVA:
- return op_VA, 0, 0
- case AVAB:
- return op_VA, 0, 0
- case AVAH:
- return op_VA, 1, 0
- case AVAF:
- return op_VA, 2, 0
- case AVAG:
- return op_VA, 3, 0
- case AVAQ:
- return op_VA, 4, 0
- case AVACC:
- return op_VACC, 0, 0
- case AVACCB:
- return op_VACC, 0, 0
- case AVACCH:
- return op_VACC, 1, 0
- case AVACCF:
- return op_VACC, 2, 0
- case AVACCG:
- return op_VACC, 3, 0
- case AVACCQ:
- return op_VACC, 4, 0
- case AVAC:
- return op_VAC, 0, 0
- case AVACQ:
- return op_VAC, 4, 0
- case AVMSLG, AVMSLEG, AVMSLOG, AVMSLEOG:
- return op_VMSL, 3, 0
- case AVACCC:
- return op_VACCC, 0, 0
- case AVACCCQ:
- return op_VACCC, 4, 0
- case AVN:
- return op_VN, 0, 0
- case AVNC:
- return op_VNC, 0, 0
- case AVAVG:
- return op_VAVG, 0, 0
- case AVAVGB:
- return op_VAVG, 0, 0
- case AVAVGH:
- return op_VAVG, 1, 0
- case AVAVGF:
- return op_VAVG, 2, 0
- case AVAVGG:
- return op_VAVG, 3, 0
- case AVAVGL:
- return op_VAVGL, 0, 0
- case AVAVGLB:
- return op_VAVGL, 0, 0
- case AVAVGLH:
- return op_VAVGL, 1, 0
- case AVAVGLF:
- return op_VAVGL, 2, 0
- case AVAVGLG:
- return op_VAVGL, 3, 0
- case AVCKSM:
- return op_VCKSM, 0, 0
- case AVCEQ:
- return op_VCEQ, 0, 0
- case AVCEQB:
- return op_VCEQ, 0, 0
- case AVCEQH:
- return op_VCEQ, 1, 0
- case AVCEQF:
- return op_VCEQ, 2, 0
- case AVCEQG:
- return op_VCEQ, 3, 0
- case AVCEQBS:
- return op_VCEQ, 0, 1
- case AVCEQHS:
- return op_VCEQ, 1, 1
- case AVCEQFS:
- return op_VCEQ, 2, 1
- case AVCEQGS:
- return op_VCEQ, 3, 1
- case AVCH:
- return op_VCH, 0, 0
- case AVCHB:
- return op_VCH, 0, 0
- case AVCHH:
- return op_VCH, 1, 0
- case AVCHF:
- return op_VCH, 2, 0
- case AVCHG:
- return op_VCH, 3, 0
- case AVCHBS:
- return op_VCH, 0, 1
- case AVCHHS:
- return op_VCH, 1, 1
- case AVCHFS:
- return op_VCH, 2, 1
- case AVCHGS:
- return op_VCH, 3, 1
- case AVCHL:
- return op_VCHL, 0, 0
- case AVCHLB:
- return op_VCHL, 0, 0
- case AVCHLH:
- return op_VCHL, 1, 0
- case AVCHLF:
- return op_VCHL, 2, 0
- case AVCHLG:
- return op_VCHL, 3, 0
- case AVCHLBS:
- return op_VCHL, 0, 1
- case AVCHLHS:
- return op_VCHL, 1, 1
- case AVCHLFS:
- return op_VCHL, 2, 1
- case AVCHLGS:
- return op_VCHL, 3, 1
- case AVCLZ:
- return op_VCLZ, 0, 0
- case AVCLZB:
- return op_VCLZ, 0, 0
- case AVCLZH:
- return op_VCLZ, 1, 0
- case AVCLZF:
- return op_VCLZ, 2, 0
- case AVCLZG:
- return op_VCLZ, 3, 0
- case AVCTZ:
- return op_VCTZ, 0, 0
- case AVCTZB:
- return op_VCTZ, 0, 0
- case AVCTZH:
- return op_VCTZ, 1, 0
- case AVCTZF:
- return op_VCTZ, 2, 0
- case AVCTZG:
- return op_VCTZ, 3, 0
- case AVEC:
- return op_VEC, 0, 0
- case AVECB:
- return op_VEC, 0, 0
- case AVECH:
- return op_VEC, 1, 0
- case AVECF:
- return op_VEC, 2, 0
- case AVECG:
- return op_VEC, 3, 0
- case AVECL:
- return op_VECL, 0, 0
- case AVECLB:
- return op_VECL, 0, 0
- case AVECLH:
- return op_VECL, 1, 0
- case AVECLF:
- return op_VECL, 2, 0
- case AVECLG:
- return op_VECL, 3, 0
- case AVERIM:
- return op_VERIM, 0, 0
- case AVERIMB:
- return op_VERIM, 0, 0
- case AVERIMH:
- return op_VERIM, 1, 0
- case AVERIMF:
- return op_VERIM, 2, 0
- case AVERIMG:
- return op_VERIM, 3, 0
- case AVERLL:
- return op_VERLL, 0, 0
- case AVERLLB:
- return op_VERLL, 0, 0
- case AVERLLH:
- return op_VERLL, 1, 0
- case AVERLLF:
- return op_VERLL, 2, 0
- case AVERLLG:
- return op_VERLL, 3, 0
- case AVERLLV:
- return op_VERLLV, 0, 0
- case AVERLLVB:
- return op_VERLLV, 0, 0
- case AVERLLVH:
- return op_VERLLV, 1, 0
- case AVERLLVF:
- return op_VERLLV, 2, 0
- case AVERLLVG:
- return op_VERLLV, 3, 0
- case AVESLV:
- return op_VESLV, 0, 0
- case AVESLVB:
- return op_VESLV, 0, 0
- case AVESLVH:
- return op_VESLV, 1, 0
- case AVESLVF:
- return op_VESLV, 2, 0
- case AVESLVG:
- return op_VESLV, 3, 0
- case AVESL:
- return op_VESL, 0, 0
- case AVESLB:
- return op_VESL, 0, 0
- case AVESLH:
- return op_VESL, 1, 0
- case AVESLF:
- return op_VESL, 2, 0
- case AVESLG:
- return op_VESL, 3, 0
- case AVESRA:
- return op_VESRA, 0, 0
- case AVESRAB:
- return op_VESRA, 0, 0
- case AVESRAH:
- return op_VESRA, 1, 0
- case AVESRAF:
- return op_VESRA, 2, 0
- case AVESRAG:
- return op_VESRA, 3, 0
- case AVESRAV:
- return op_VESRAV, 0, 0
- case AVESRAVB:
- return op_VESRAV, 0, 0
- case AVESRAVH:
- return op_VESRAV, 1, 0
- case AVESRAVF:
- return op_VESRAV, 2, 0
- case AVESRAVG:
- return op_VESRAV, 3, 0
- case AVESRL:
- return op_VESRL, 0, 0
- case AVESRLB:
- return op_VESRL, 0, 0
- case AVESRLH:
- return op_VESRL, 1, 0
- case AVESRLF:
- return op_VESRL, 2, 0
- case AVESRLG:
- return op_VESRL, 3, 0
- case AVESRLV:
- return op_VESRLV, 0, 0
- case AVESRLVB:
- return op_VESRLV, 0, 0
- case AVESRLVH:
- return op_VESRLV, 1, 0
- case AVESRLVF:
- return op_VESRLV, 2, 0
- case AVESRLVG:
- return op_VESRLV, 3, 0
- case AVX:
- return op_VX, 0, 0
- case AVFAE:
- return op_VFAE, 0, 0
- case AVFAEB:
- return op_VFAE, 0, 0
- case AVFAEH:
- return op_VFAE, 1, 0
- case AVFAEF:
- return op_VFAE, 2, 0
- case AVFAEBS:
- return op_VFAE, 0, 1
- case AVFAEHS:
- return op_VFAE, 1, 1
- case AVFAEFS:
- return op_VFAE, 2, 1
- case AVFAEZB:
- return op_VFAE, 0, 2
- case AVFAEZH:
- return op_VFAE, 1, 2
- case AVFAEZF:
- return op_VFAE, 2, 2
- case AVFAEZBS:
- return op_VFAE, 0, 3
- case AVFAEZHS:
- return op_VFAE, 1, 3
- case AVFAEZFS:
- return op_VFAE, 2, 3
- case AVFEE:
- return op_VFEE, 0, 0
- case AVFEEB:
- return op_VFEE, 0, 0
- case AVFEEH:
- return op_VFEE, 1, 0
- case AVFEEF:
- return op_VFEE, 2, 0
- case AVFEEBS:
- return op_VFEE, 0, 1
- case AVFEEHS:
- return op_VFEE, 1, 1
- case AVFEEFS:
- return op_VFEE, 2, 1
- case AVFEEZB:
- return op_VFEE, 0, 2
- case AVFEEZH:
- return op_VFEE, 1, 2
- case AVFEEZF:
- return op_VFEE, 2, 2
- case AVFEEZBS:
- return op_VFEE, 0, 3
- case AVFEEZHS:
- return op_VFEE, 1, 3
- case AVFEEZFS:
- return op_VFEE, 2, 3
- case AVFENE:
- return op_VFENE, 0, 0
- case AVFENEB:
- return op_VFENE, 0, 0
- case AVFENEH:
- return op_VFENE, 1, 0
- case AVFENEF:
- return op_VFENE, 2, 0
- case AVFENEBS:
- return op_VFENE, 0, 1
- case AVFENEHS:
- return op_VFENE, 1, 1
- case AVFENEFS:
- return op_VFENE, 2, 1
- case AVFENEZB:
- return op_VFENE, 0, 2
- case AVFENEZH:
- return op_VFENE, 1, 2
- case AVFENEZF:
- return op_VFENE, 2, 2
- case AVFENEZBS:
- return op_VFENE, 0, 3
- case AVFENEZHS:
- return op_VFENE, 1, 3
- case AVFENEZFS:
- return op_VFENE, 2, 3
- case AVFA:
- return op_VFA, 0, 0
- case AVFADB:
- return op_VFA, 3, 0
- case AWFADB:
- return op_VFA, 3, 0
- case AWFK:
- return op_WFK, 0, 0
- case AWFKDB:
- return op_WFK, 3, 0
- case AVFCE:
- return op_VFCE, 0, 0
- case AVFCEDB:
- return op_VFCE, 3, 0
- case AVFCEDBS:
- return op_VFCE, 3, 1
- case AWFCEDB:
- return op_VFCE, 3, 0
- case AWFCEDBS:
- return op_VFCE, 3, 1
- case AVFCH:
- return op_VFCH, 0, 0
- case AVFCHDB:
- return op_VFCH, 3, 0
- case AVFCHDBS:
- return op_VFCH, 3, 1
- case AWFCHDB:
- return op_VFCH, 3, 0
- case AWFCHDBS:
- return op_VFCH, 3, 1
- case AVFCHE:
- return op_VFCHE, 0, 0
- case AVFCHEDB:
- return op_VFCHE, 3, 0
- case AVFCHEDBS:
- return op_VFCHE, 3, 1
- case AWFCHEDB:
- return op_VFCHE, 3, 0
- case AWFCHEDBS:
- return op_VFCHE, 3, 1
- case AWFC:
- return op_WFC, 0, 0
- case AWFCDB:
- return op_WFC, 3, 0
- case AVCDG:
- return op_VCDG, 0, 0
- case AVCDGB:
- return op_VCDG, 3, 0
- case AWCDGB:
- return op_VCDG, 3, 0
- case AVCDLG:
- return op_VCDLG, 0, 0
- case AVCDLGB:
- return op_VCDLG, 3, 0
- case AWCDLGB:
- return op_VCDLG, 3, 0
- case AVCGD:
- return op_VCGD, 0, 0
- case AVCGDB:
- return op_VCGD, 3, 0
- case AWCGDB:
- return op_VCGD, 3, 0
- case AVCLGD:
- return op_VCLGD, 0, 0
- case AVCLGDB:
- return op_VCLGD, 3, 0
- case AWCLGDB:
- return op_VCLGD, 3, 0
- case AVFD:
- return op_VFD, 0, 0
- case AVFDDB:
- return op_VFD, 3, 0
- case AWFDDB:
- return op_VFD, 3, 0
- case AVLDE:
- return op_VLDE, 0, 0
- case AVLDEB:
- return op_VLDE, 2, 0
- case AWLDEB:
- return op_VLDE, 2, 0
- case AVLED:
- return op_VLED, 0, 0
- case AVLEDB:
- return op_VLED, 3, 0
- case AWLEDB:
- return op_VLED, 3, 0
- case AVFM:
- return op_VFM, 0, 0
- case AVFMDB:
- return op_VFM, 3, 0
- case AWFMDB:
- return op_VFM, 3, 0
- case AVFMA:
- return op_VFMA, 0, 0
- case AVFMADB:
- return op_VFMA, 3, 0
- case AWFMADB:
- return op_VFMA, 3, 0
- case AVFMS:
- return op_VFMS, 0, 0
- case AVFMSDB:
- return op_VFMS, 3, 0
- case AWFMSDB:
- return op_VFMS, 3, 0
- case AVFPSO:
- return op_VFPSO, 0, 0
- case AVFPSODB:
- return op_VFPSO, 3, 0
- case AWFPSODB:
- return op_VFPSO, 3, 0
- case AVFLCDB:
- return op_VFPSO, 3, 0
- case AWFLCDB:
- return op_VFPSO, 3, 0
- case AVFLNDB:
- return op_VFPSO, 3, 1
- case AWFLNDB:
- return op_VFPSO, 3, 1
- case AVFLPDB:
- return op_VFPSO, 3, 2
- case AWFLPDB:
- return op_VFPSO, 3, 2
- case AVFSQ:
- return op_VFSQ, 0, 0
- case AVFSQDB:
- return op_VFSQ, 3, 0
- case AWFSQDB:
- return op_VFSQ, 3, 0
- case AVFS:
- return op_VFS, 0, 0
- case AVFSDB:
- return op_VFS, 3, 0
- case AWFSDB:
- return op_VFS, 3, 0
- case AVFTCI:
- return op_VFTCI, 0, 0
- case AVFTCIDB:
- return op_VFTCI, 3, 0
- case AWFTCIDB:
- return op_VFTCI, 3, 0
- case AVGFM:
- return op_VGFM, 0, 0
- case AVGFMB:
- return op_VGFM, 0, 0
- case AVGFMH:
- return op_VGFM, 1, 0
- case AVGFMF:
- return op_VGFM, 2, 0
- case AVGFMG:
- return op_VGFM, 3, 0
- case AVGFMA:
- return op_VGFMA, 0, 0
- case AVGFMAB:
- return op_VGFMA, 0, 0
- case AVGFMAH:
- return op_VGFMA, 1, 0
- case AVGFMAF:
- return op_VGFMA, 2, 0
- case AVGFMAG:
- return op_VGFMA, 3, 0
- case AVGEF:
- return op_VGEF, 0, 0
- case AVGEG:
- return op_VGEG, 0, 0
- case AVGBM:
- return op_VGBM, 0, 0
- case AVZERO:
- return op_VGBM, 0, 0
- case AVONE:
- return op_VGBM, 0, 0
- case AVGM:
- return op_VGM, 0, 0
- case AVGMB:
- return op_VGM, 0, 0
- case AVGMH:
- return op_VGM, 1, 0
- case AVGMF:
- return op_VGM, 2, 0
- case AVGMG:
- return op_VGM, 3, 0
- case AVISTR:
- return op_VISTR, 0, 0
- case AVISTRB:
- return op_VISTR, 0, 0
- case AVISTRH:
- return op_VISTR, 1, 0
- case AVISTRF:
- return op_VISTR, 2, 0
- case AVISTRBS:
- return op_VISTR, 0, 1
- case AVISTRHS:
- return op_VISTR, 1, 1
- case AVISTRFS:
- return op_VISTR, 2, 1
- case AVL:
- return op_VL, 0, 0
- case AVLR:
- return op_VLR, 0, 0
- case AVLREP:
- return op_VLREP, 0, 0
- case AVLREPB:
- return op_VLREP, 0, 0
- case AVLREPH:
- return op_VLREP, 1, 0
- case AVLREPF:
- return op_VLREP, 2, 0
- case AVLREPG:
- return op_VLREP, 3, 0
- case AVLC:
- return op_VLC, 0, 0
- case AVLCB:
- return op_VLC, 0, 0
- case AVLCH:
- return op_VLC, 1, 0
- case AVLCF:
- return op_VLC, 2, 0
- case AVLCG:
- return op_VLC, 3, 0
- case AVLEH:
- return op_VLEH, 0, 0
- case AVLEF:
- return op_VLEF, 0, 0
- case AVLEG:
- return op_VLEG, 0, 0
- case AVLEB:
- return op_VLEB, 0, 0
- case AVLEIH:
- return op_VLEIH, 0, 0
- case AVLEIF:
- return op_VLEIF, 0, 0
- case AVLEIG:
- return op_VLEIG, 0, 0
- case AVLEIB:
- return op_VLEIB, 0, 0
- case AVFI:
- return op_VFI, 0, 0
- case AVFIDB:
- return op_VFI, 3, 0
- case AWFIDB:
- return op_VFI, 3, 0
- case AVLGV:
- return op_VLGV, 0, 0
- case AVLGVB:
- return op_VLGV, 0, 0
- case AVLGVH:
- return op_VLGV, 1, 0
- case AVLGVF:
- return op_VLGV, 2, 0
- case AVLGVG:
- return op_VLGV, 3, 0
- case AVLLEZ:
- return op_VLLEZ, 0, 0
- case AVLLEZB:
- return op_VLLEZ, 0, 0
- case AVLLEZH:
- return op_VLLEZ, 1, 0
- case AVLLEZF:
- return op_VLLEZ, 2, 0
- case AVLLEZG:
- return op_VLLEZ, 3, 0
- case AVLM:
- return op_VLM, 0, 0
- case AVLP:
- return op_VLP, 0, 0
- case AVLPB:
- return op_VLP, 0, 0
- case AVLPH:
- return op_VLP, 1, 0
- case AVLPF:
- return op_VLP, 2, 0
- case AVLPG:
- return op_VLP, 3, 0
- case AVLBB:
- return op_VLBB, 0, 0
- case AVLVG:
- return op_VLVG, 0, 0
- case AVLVGB:
- return op_VLVG, 0, 0
- case AVLVGH:
- return op_VLVG, 1, 0
- case AVLVGF:
- return op_VLVG, 2, 0
- case AVLVGG:
- return op_VLVG, 3, 0
- case AVLVGP:
- return op_VLVGP, 0, 0
- case AVLL:
- return op_VLL, 0, 0
- case AVMX:
- return op_VMX, 0, 0
- case AVMXB:
- return op_VMX, 0, 0
- case AVMXH:
- return op_VMX, 1, 0
- case AVMXF:
- return op_VMX, 2, 0
- case AVMXG:
- return op_VMX, 3, 0
- case AVMXL:
- return op_VMXL, 0, 0
- case AVMXLB:
- return op_VMXL, 0, 0
- case AVMXLH:
- return op_VMXL, 1, 0
- case AVMXLF:
- return op_VMXL, 2, 0
- case AVMXLG:
- return op_VMXL, 3, 0
- case AVMRH:
- return op_VMRH, 0, 0
- case AVMRHB:
- return op_VMRH, 0, 0
- case AVMRHH:
- return op_VMRH, 1, 0
- case AVMRHF:
- return op_VMRH, 2, 0
- case AVMRHG:
- return op_VMRH, 3, 0
- case AVMRL:
- return op_VMRL, 0, 0
- case AVMRLB:
- return op_VMRL, 0, 0
- case AVMRLH:
- return op_VMRL, 1, 0
- case AVMRLF:
- return op_VMRL, 2, 0
- case AVMRLG:
- return op_VMRL, 3, 0
- case AVMN:
- return op_VMN, 0, 0
- case AVMNB:
- return op_VMN, 0, 0
- case AVMNH:
- return op_VMN, 1, 0
- case AVMNF:
- return op_VMN, 2, 0
- case AVMNG:
- return op_VMN, 3, 0
- case AVMNL:
- return op_VMNL, 0, 0
- case AVMNLB:
- return op_VMNL, 0, 0
- case AVMNLH:
- return op_VMNL, 1, 0
- case AVMNLF:
- return op_VMNL, 2, 0
- case AVMNLG:
- return op_VMNL, 3, 0
- case AVMAE:
- return op_VMAE, 0, 0
- case AVMAEB:
- return op_VMAE, 0, 0
- case AVMAEH:
- return op_VMAE, 1, 0
- case AVMAEF:
- return op_VMAE, 2, 0
- case AVMAH:
- return op_VMAH, 0, 0
- case AVMAHB:
- return op_VMAH, 0, 0
- case AVMAHH:
- return op_VMAH, 1, 0
- case AVMAHF:
- return op_VMAH, 2, 0
- case AVMALE:
- return op_VMALE, 0, 0
- case AVMALEB:
- return op_VMALE, 0, 0
- case AVMALEH:
- return op_VMALE, 1, 0
- case AVMALEF:
- return op_VMALE, 2, 0
- case AVMALH:
- return op_VMALH, 0, 0
- case AVMALHB:
- return op_VMALH, 0, 0
- case AVMALHH:
- return op_VMALH, 1, 0
- case AVMALHF:
- return op_VMALH, 2, 0
- case AVMALO:
- return op_VMALO, 0, 0
- case AVMALOB:
- return op_VMALO, 0, 0
- case AVMALOH:
- return op_VMALO, 1, 0
- case AVMALOF:
- return op_VMALO, 2, 0
- case AVMAL:
- return op_VMAL, 0, 0
- case AVMALB:
- return op_VMAL, 0, 0
- case AVMALHW:
- return op_VMAL, 1, 0
- case AVMALF:
- return op_VMAL, 2, 0
- case AVMAO:
- return op_VMAO, 0, 0
- case AVMAOB:
- return op_VMAO, 0, 0
- case AVMAOH:
- return op_VMAO, 1, 0
- case AVMAOF:
- return op_VMAO, 2, 0
- case AVME:
- return op_VME, 0, 0
- case AVMEB:
- return op_VME, 0, 0
- case AVMEH:
- return op_VME, 1, 0
- case AVMEF:
- return op_VME, 2, 0
- case AVMH:
- return op_VMH, 0, 0
- case AVMHB:
- return op_VMH, 0, 0
- case AVMHH:
- return op_VMH, 1, 0
- case AVMHF:
- return op_VMH, 2, 0
- case AVMLE:
- return op_VMLE, 0, 0
- case AVMLEB:
- return op_VMLE, 0, 0
- case AVMLEH:
- return op_VMLE, 1, 0
- case AVMLEF:
- return op_VMLE, 2, 0
- case AVMLH:
- return op_VMLH, 0, 0
- case AVMLHB:
- return op_VMLH, 0, 0
- case AVMLHH:
- return op_VMLH, 1, 0
- case AVMLHF:
- return op_VMLH, 2, 0
- case AVMLO:
- return op_VMLO, 0, 0
- case AVMLOB:
- return op_VMLO, 0, 0
- case AVMLOH:
- return op_VMLO, 1, 0
- case AVMLOF:
- return op_VMLO, 2, 0
- case AVML:
- return op_VML, 0, 0
- case AVMLB:
- return op_VML, 0, 0
- case AVMLHW:
- return op_VML, 1, 0
- case AVMLF:
- return op_VML, 2, 0
- case AVMO:
- return op_VMO, 0, 0
- case AVMOB:
- return op_VMO, 0, 0
- case AVMOH:
- return op_VMO, 1, 0
- case AVMOF:
- return op_VMO, 2, 0
- case AVNO:
- return op_VNO, 0, 0
- case AVNOT:
- return op_VNO, 0, 0
- case AVO:
- return op_VO, 0, 0
- case AVPK:
- return op_VPK, 0, 0
- case AVPKH:
- return op_VPK, 1, 0
- case AVPKF:
- return op_VPK, 2, 0
- case AVPKG:
- return op_VPK, 3, 0
- case AVPKLS:
- return op_VPKLS, 0, 0
- case AVPKLSH:
- return op_VPKLS, 1, 0
- case AVPKLSF:
- return op_VPKLS, 2, 0
- case AVPKLSG:
- return op_VPKLS, 3, 0
- case AVPKLSHS:
- return op_VPKLS, 1, 1
- case AVPKLSFS:
- return op_VPKLS, 2, 1
- case AVPKLSGS:
- return op_VPKLS, 3, 1
- case AVPKS:
- return op_VPKS, 0, 0
- case AVPKSH:
- return op_VPKS, 1, 0
- case AVPKSF:
- return op_VPKS, 2, 0
- case AVPKSG:
- return op_VPKS, 3, 0
- case AVPKSHS:
- return op_VPKS, 1, 1
- case AVPKSFS:
- return op_VPKS, 2, 1
- case AVPKSGS:
- return op_VPKS, 3, 1
- case AVPERM:
- return op_VPERM, 0, 0
- case AVPDI:
- return op_VPDI, 0, 0
- case AVPOPCT:
- return op_VPOPCT, 0, 0
- case AVREP:
- return op_VREP, 0, 0
- case AVREPB:
- return op_VREP, 0, 0
- case AVREPH:
- return op_VREP, 1, 0
- case AVREPF:
- return op_VREP, 2, 0
- case AVREPG:
- return op_VREP, 3, 0
- case AVREPI:
- return op_VREPI, 0, 0
- case AVREPIB:
- return op_VREPI, 0, 0
- case AVREPIH:
- return op_VREPI, 1, 0
- case AVREPIF:
- return op_VREPI, 2, 0
- case AVREPIG:
- return op_VREPI, 3, 0
- case AVSCEF:
- return op_VSCEF, 0, 0
- case AVSCEG:
- return op_VSCEG, 0, 0
- case AVSEL:
- return op_VSEL, 0, 0
- case AVSL:
- return op_VSL, 0, 0
- case AVSLB:
- return op_VSLB, 0, 0
- case AVSLDB:
- return op_VSLDB, 0, 0
- case AVSRA:
- return op_VSRA, 0, 0
- case AVSRAB:
- return op_VSRAB, 0, 0
- case AVSRL:
- return op_VSRL, 0, 0
- case AVSRLB:
- return op_VSRLB, 0, 0
- case AVSEG:
- return op_VSEG, 0, 0
- case AVSEGB:
- return op_VSEG, 0, 0
- case AVSEGH:
- return op_VSEG, 1, 0
- case AVSEGF:
- return op_VSEG, 2, 0
- case AVST:
- return op_VST, 0, 0
- case AVSTEH:
- return op_VSTEH, 0, 0
- case AVSTEF:
- return op_VSTEF, 0, 0
- case AVSTEG:
- return op_VSTEG, 0, 0
- case AVSTEB:
- return op_VSTEB, 0, 0
- case AVSTM:
- return op_VSTM, 0, 0
- case AVSTL:
- return op_VSTL, 0, 0
- case AVSTRC:
- return op_VSTRC, 0, 0
- case AVSTRCB:
- return op_VSTRC, 0, 0
- case AVSTRCH:
- return op_VSTRC, 1, 0
- case AVSTRCF:
- return op_VSTRC, 2, 0
- case AVSTRCBS:
- return op_VSTRC, 0, 1
- case AVSTRCHS:
- return op_VSTRC, 1, 1
- case AVSTRCFS:
- return op_VSTRC, 2, 1
- case AVSTRCZB:
- return op_VSTRC, 0, 2
- case AVSTRCZH:
- return op_VSTRC, 1, 2
- case AVSTRCZF:
- return op_VSTRC, 2, 2
- case AVSTRCZBS:
- return op_VSTRC, 0, 3
- case AVSTRCZHS:
- return op_VSTRC, 1, 3
- case AVSTRCZFS:
- return op_VSTRC, 2, 3
- case AVS:
- return op_VS, 0, 0
- case AVSB:
- return op_VS, 0, 0
- case AVSH:
- return op_VS, 1, 0
- case AVSF:
- return op_VS, 2, 0
- case AVSG:
- return op_VS, 3, 0
- case AVSQ:
- return op_VS, 4, 0
- case AVSCBI:
- return op_VSCBI, 0, 0
- case AVSCBIB:
- return op_VSCBI, 0, 0
- case AVSCBIH:
- return op_VSCBI, 1, 0
- case AVSCBIF:
- return op_VSCBI, 2, 0
- case AVSCBIG:
- return op_VSCBI, 3, 0
- case AVSCBIQ:
- return op_VSCBI, 4, 0
- case AVSBCBI:
- return op_VSBCBI, 0, 0
- case AVSBCBIQ:
- return op_VSBCBI, 4, 0
- case AVSBI:
- return op_VSBI, 0, 0
- case AVSBIQ:
- return op_VSBI, 4, 0
- case AVSUMG:
- return op_VSUMG, 0, 0
- case AVSUMGH:
- return op_VSUMG, 1, 0
- case AVSUMGF:
- return op_VSUMG, 2, 0
- case AVSUMQ:
- return op_VSUMQ, 0, 0
- case AVSUMQF:
- return op_VSUMQ, 2, 0
- case AVSUMQG:
- return op_VSUMQ, 3, 0
- case AVSUM:
- return op_VSUM, 0, 0
- case AVSUMB:
- return op_VSUM, 0, 0
- case AVSUMH:
- return op_VSUM, 1, 0
- case AVTM:
- return op_VTM, 0, 0
- case AVUPH:
- return op_VUPH, 0, 0
- case AVUPHB:
- return op_VUPH, 0, 0
- case AVUPHH:
- return op_VUPH, 1, 0
- case AVUPHF:
- return op_VUPH, 2, 0
- case AVUPLH:
- return op_VUPLH, 0, 0
- case AVUPLHB:
- return op_VUPLH, 0, 0
- case AVUPLHH:
- return op_VUPLH, 1, 0
- case AVUPLHF:
- return op_VUPLH, 2, 0
- case AVUPLL:
- return op_VUPLL, 0, 0
- case AVUPLLB:
- return op_VUPLL, 0, 0
- case AVUPLLH:
- return op_VUPLL, 1, 0
- case AVUPLLF:
- return op_VUPLL, 2, 0
- case AVUPL:
- return op_VUPL, 0, 0
- case AVUPLB:
- return op_VUPL, 0, 0
- case AVUPLHW:
- return op_VUPL, 1, 0
- case AVUPLF:
- return op_VUPL, 2, 0
- }
- }
- // singleElementMask returns the single element mask bits required for the
- // given instruction.
- func singleElementMask(as obj.As) uint32 {
- switch as {
- case AWFADB,
- AWFK,
- AWFKDB,
- AWFCEDB,
- AWFCEDBS,
- AWFCHDB,
- AWFCHDBS,
- AWFCHEDB,
- AWFCHEDBS,
- AWFC,
- AWFCDB,
- AWCDGB,
- AWCDLGB,
- AWCGDB,
- AWCLGDB,
- AWFDDB,
- AWLDEB,
- AWLEDB,
- AWFMDB,
- AWFMADB,
- AWFMSDB,
- AWFPSODB,
- AWFLCDB,
- AWFLNDB,
- AWFLPDB,
- AWFSQDB,
- AWFSDB,
- AWFTCIDB,
- AWFIDB:
- return 8
- case AVMSLEG:
- return 8
- case AVMSLOG:
- return 4
- case AVMSLEOG:
- return 12
- }
- return 0
- }
|