...

Source file src/pkg/cmd/internal/obj/s390x/vector.go

     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		"cmd/internal/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, 1, 0
   982		case AVSUMQG:
   983			return op_VSUMQ, 2, 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	}
  1070	

View as plain text