// 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 ( "cmd/internal/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 }