blob: 00f578340f9db69bc43451d23a074c48af0c93af [file] [log] [blame]
// 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
}