ppc-opc.c: place new instructions at SFFS level
authorDmitry Selyutin <ghostmansd@gmail.com>
Sun, 28 May 2023 22:04:57 +0000 (01:04 +0300)
committerDmitry Selyutin <ghostmansd@gmail.com>
Tue, 14 Nov 2023 19:53:36 +0000 (22:53 +0300)
opcodes/ppc-opc.c

index 6e3217df02f9cdf74aa4dae8f79f76384a4d6a18..e9f9d3ac97130875f0c044ed4e003885f0976f55 100644 (file)
@@ -5091,7 +5091,8 @@ const unsigned int num_powerpc_operands = ARRAY_SIZE (powerpc_operands);
 #define PPCHTM PPC_OPCODE_POWER8
 #define E200Z4 PPC_OPCODE_E200Z4
 #define PPCLSP PPC_OPCODE_LSP
-#define SVP64  PPC_OPCODE_SVP64
+#define SFFS   PPC_OPCODE_SFFS
+#define SFFS   PPC_OPCODE_SFFS
 /* Used to mark extended mnemonic in deprecated field so that -Mraw
    won't use this variant in disassembly.  */
 #define EXT    PPC_OPCODE_RAW
@@ -5247,7 +5248,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
 {"maddhdu",    VXA(4,  49),    VXA_MASK,    POWER9,    0,              {RT, RA, RB, RC}},
 {"ps_mul",     A  (4,  25,0),  AFRB_MASK,   PPCPS,     0,              {FRT, FRA, FRC}},
 {"ps_mul.",    A  (4,  25,1),  AFRB_MASK,   PPCPS,     0,              {FRT, FRA, FRC}},
-{"maddedu",    VXA(4,  50),    VXA_MASK,    SVP64,     PPCVLE,         {RT, RA, RB, RC}},
+{"maddedu",    VXA(4,  50),    VXA_MASK,    SFFS,      PPCVLE,         {RT, RA, RB, RC}},
 {"maddld",     VXA(4,  51),    VXA_MASK,    POWER9,    0,              {RT, RA, RB, RC}},
 {"divmod2du",  VXA(4,  58),    VXA_MASK,    SFFS,      0,              {RT, RA, RB, RC}},
 {"ps_rsqrte",  A  (4,  26,0), AFRAFRC_MASK, PPCPS,     0,              {FRT, FRB}},
@@ -7030,43 +7031,43 @@ const struct powerpc_opcode powerpc_opcodes[] = {
 {"rlmi",       M(22,0),        M_MASK,      M601,      PPCVLE,         {RA, RS, RB, MBE, ME}},
 {"rlmi.",      M(22,1),        M_MASK,      M601,      PPCVLE,         {RA, RS, RB, MBE, ME}},
 
-{"fmvis",      DX(22,3),       DX_MASK,        SVP64,  PPCVLE, {FRS, DXD}},
-{"fishmv",     DX(22,11),      DX_MASK,        SVP64,  PPCVLE, {FRS, DXD}},
+{"fmvis",      DX(22,3),       DX_MASK,        SFFS,   PPCVLE, {FRS, DXD}},
+{"fishmv",     DX(22,11),      DX_MASK,        SFFS,   PPCVLE, {FRS, DXD}},
 
-{"bmask",      BM2(22,17),     BM2_MASK,       SVP64,  PPCVLE, {RT, RA, RB, bm, LBM2}},
+{"bmask",      BM2(22,17),     BM2_MASK,       SFFS,   PPCVLE, {RT, RA, RB, bm, LBM2}},
 
-{"svstep",     SVL(22,19,0),   SVL_MASK,       SVP64,  PPCVLE, {RT, SVi, vf}},
-{"svstep.",    SVL(22,19,1),   SVL_MASK,       SVP64,  PPCVLE, {RT, SVi, vf}},
+{"svstep",     SVL(22,19,0),   SVL_MASK,       SFFS,   PPCVLE, {RT, SVi, vf}},
+{"svstep.",    SVL(22,19,1),   SVL_MASK,       SFFS,   PPCVLE, {RT, SVi, vf}},
 
-{"svshape2",   SVM2(22,281),   SVM2_MASK,      SVP64,  PPCVLE, {SVo, yx10, rmm, SVd, sk, mm}},
-{"svshape",    SVM(22,25),     SVM_MASK,       SVP64,  PPCVLE, {SVxd, SVyd, SVzd, SVrm, vf}},
+{"svshape2",   SVM2(22,281),   SVM2_MASK,      SFFS,   PPCVLE, {SVo, yx10, rmm, SVd, sk, mm}},
+{"svshape",    SVM(22,25),     SVM_MASK,       SFFS,   PPCVLE, {SVxd, SVyd, SVzd, SVrm, vf}},
 
-{"setvl",      SVL(22,27,0),   SVL_MASK,       SVP64,  PPCVLE, {RT, RA, SVi, vf, vs, ms}},
-{"setvl.",     SVL(22,27,1),   SVL_MASK,       SVP64,  PPCVLE, {RT, RA, SVi, vf, vs, ms}},
+{"setvl",      SVL(22,27,0),   SVL_MASK,       SFFS,   PPCVLE, {RT, RA, SVi, vf, vs, ms}},
+{"setvl.",     SVL(22,27,1),   SVL_MASK,       SFFS,   PPCVLE, {RT, RA, SVi, vf, vs, ms}},
 
-{"svindex",    SVI(22,41),     SVI_MASK,       SVP64,  PPCVLE, {SVG, rmm, SVd, ew, yx, mm, sk}},
+{"svindex",    SVI(22,41),     SVI_MASK,       SFFS,   PPCVLE, {SVG, rmm, SVd, ew, yx, mm, sk}},
 
-{"svremap",    SVRM(22,57),    SVRM_MASK,      SVP64,  PPCVLE, {SVme, mi0, mi1, mi2, mo0, mo1, pst}},
+{"svremap",    SVRM(22,57),    SVRM_MASK,      SFFS,   PPCVLE, {SVme, mi0, mi1, mi2, mo0, mo1, pst}},
 
-{"sadd",       ZRC(22,110,0),  Z2_MASK,        SVP64,  PPCVLE, {RT, RA, RB, SHP1}},
-{"sadd.",      ZRC(22,110,1),  Z2_MASK,        SVP64,  PPCVLE, {RT, RA, RB, SHP1}},
-{"sadduw",     ZRC(22,238,0),  Z2_MASK,        SVP64,  PPCVLE, {RT, RA, RB, SHP1}},
-{"sadduw.",    ZRC(22,238,1),  Z2_MASK,        SVP64,  PPCVLE, {RT, RA, RB, SHP1}},
+{"sadd",       ZRC(22,110,0),  Z2_MASK,        SFFS,   PPCVLE, {RT, RA, RB, SHP1}},
+{"sadd.",      ZRC(22,110,1),  Z2_MASK,        SFFS,   PPCVLE, {RT, RA, RB, SHP1}},
+{"sadduw",     ZRC(22,238,0),  Z2_MASK,        SFFS,   PPCVLE, {RT, RA, RB, SHP1}},
+{"sadduw.",    ZRC(22,238,1),  Z2_MASK,        SFFS,   PPCVLE, {RT, RA, RB, SHP1}},
 
 {"cprop",      XRC(22,398,0),  X_MASK, SVP64,  PPCVLE, {RT, RA, RB}},
 {"cprop.",     XRC(22,398,1),  X_MASK, SVP64,  PPCVLE, {RT, RA, RB}},
 
-{"absdacs",    XRC(22,502,0),  X_MASK, SVP64,  PPCVLE, {RT, RA, RB}},
-{"absdacs.",   XRC(22,502,1),  X_MASK, SVP64,  PPCVLE, {RT, RA, RB}},
-{"absds",      XRC(22,630,0),  X_MASK, SVP64,  PPCVLE, {RT, RA, RB}},
-{"absds.",     XRC(22,630,1),  X_MASK, SVP64,  PPCVLE, {RT, RA, RB}},
-{"absdu",      XRC(22,758,0),  X_MASK, SVP64,  PPCVLE, {RT, RA, RB}},
-{"absdu.",     XRC(22,758,1),  X_MASK, SVP64,  PPCVLE, {RT, RA, RB}},
-{"absdacu",    XRC(22,1014,0), X_MASK, SVP64,  PPCVLE, {RT, RA, RB}},
-{"absdacu.",   XRC(22,1014,1), X_MASK, SVP64,  PPCVLE, {RT, RA, RB}},
+{"absdacs",    XRC(22,502,0),  X_MASK, SFFS,   PPCVLE, {RT, RA, RB}},
+{"absdacs.",   XRC(22,502,1),  X_MASK, SFFS,   PPCVLE, {RT, RA, RB}},
+{"absds",      XRC(22,630,0),  X_MASK, SFFS,   PPCVLE, {RT, RA, RB}},
+{"absds.",     XRC(22,630,1),  X_MASK, SFFS,   PPCVLE, {RT, RA, RB}},
+{"absdu",      XRC(22,758,0),  X_MASK, SFFS,   PPCVLE, {RT, RA, RB}},
+{"absdu.",     XRC(22,758,1),  X_MASK, SFFS,   PPCVLE, {RT, RA, RB}},
+{"absdacu",    XRC(22,1014,0), X_MASK, SFFS,   PPCVLE, {RT, RA, RB}},
+{"absdacu.",   XRC(22,1014,1), X_MASK, SFFS,   PPCVLE, {RT, RA, RB}},
 
-{"avgadd",     XRC(22,846,0),  X_MASK, SVP64,  PPCVLE, {RT, RA, RB}},
-{"avgadd.",    XRC(22,846,1),  X_MASK, SVP64,  PPCVLE, {RT, RA, RB}},
+{"avgadd",     XRC(22,846,0),  X_MASK, SFFS,   PPCVLE, {RT, RA, RB}},
+{"avgadd.",    XRC(22,846,1),  X_MASK, SFFS,   PPCVLE, {RT, RA, RB}},
 
 {"rotlw",      MME(23,31,0),   MMBME_MASK,  PPCCOM,    PPCVLE|EXT,     {RA, RS, RB}},
 {"rlwnm",      M(23,0),        M_MASK,      PPCCOM,    PPCVLE,         {RA, RS, RB, MBE, ME}},
@@ -9331,122 +9332,122 @@ const struct powerpc_opcode powerpc_opcodes[] = {
 {"dmxvf64gernn",XX3(59,250),   XX3ACC_MASK, POWER10,   PPCVLE,         {ACC, XA6ap, XB6a}},
 {"xvf64gernn", XX3(59,250),    XX3ACC_MASK, POWER10,   PPCVLE,         {ACC, XA6ap, XB6a}},
 
-{"fcbrts",     XRC(59,524,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fcbrts.",    XRC(59,524,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fsinpis",    XRC(59,525,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fsinpis.",   XRC(59,525,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fatan2pis",  XRC(59,526,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fatan2pis.", XRC(59,526,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fasinpis",   XRC(59,527,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fasinpis.",  XRC(59,527,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fcospis",    XRC(59,556,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fcospis.",   XRC(59,556,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"ftanpis",    XRC(59,557,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"ftanpis.",   XRC(59,557,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"facospis",   XRC(59,558,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"facospis.",  XRC(59,558,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fatanpis",   XRC(59,559,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fatanpis.",  XRC(59,559,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"frsqrts",    XRC(59,588,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"frsqrts.",   XRC(59,588,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fsins",      XRC(59,589,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fsins.",     XRC(59,589,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fatan2s",    XRC(59,590,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fatan2s.",   XRC(59,590,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fasins",     XRC(59,591,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fasins.",    XRC(59,591,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fcoss",      XRC(59,620,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fcoss.",     XRC(59,620,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"ftans",      XRC(59,621,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"ftans.",     XRC(59,621,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"facoss",     XRC(59,622,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"facoss.",    XRC(59,622,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fatans",     XRC(59,623,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fatans.",    XRC(59,623,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"frecips",    XRC(59,652,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"frecips.",   XRC(59,652,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fsinhs",     XRC(59,653,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fsinhs.",    XRC(59,653,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fhypots",    XRC(59,654,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fhypots.",   XRC(59,654,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fasinhs",    XRC(59,655,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fasinhs.",   XRC(59,655,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fcoshs",     XRC(59,684,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fcoshs.",    XRC(59,684,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"ftanhs",     XRC(59,685,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"ftanhs.",    XRC(59,685,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"facoshs",    XRC(59,686,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"facoshs.",   XRC(59,686,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fatanhs",    XRC(59,687,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fatanhs.",   XRC(59,687,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fminnum08s", XRC(59,716,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fminnum08s.",        XRC(59,716,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fmin19s",    XRC(59,717,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fmin19s.",   XRC(59,717,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fminnum19s", XRC(59,718,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fminnum19s.",        XRC(59,718,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fmincs",     XRC(59,719,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fmincs.",    XRC(59,719,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fmaxnum08s", XRC(59,748,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fmaxnum08s.",        XRC(59,748,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fmax19s",    XRC(59,749,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fmax19s.",   XRC(59,749,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fmaxnum19s", XRC(59,750,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fmaxnum19s.",        XRC(59,750,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fmaxcs",     XRC(59,751,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fmaxcs.",    XRC(59,751,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fexp2m1s",   XRC(59,780,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fexp2m1s.",  XRC(59,780,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"flog2p1s",   XRC(59,781,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"flog2p1s.",  XRC(59,781,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fminmagnum08s",      XRC(59,782,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fminmagnum08s.",     XRC(59,782,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fmaxmagnum08s",      XRC(59,783,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fmaxmagnum08s.",     XRC(59,783,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fexpm1s",    XRC(59,812,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fexpm1s.",   XRC(59,812,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"flogp1s",    XRC(59,813,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"flogp1s.",   XRC(59,813,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fexp10m1s",  XRC(59,844,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fexp10m1s.", XRC(59,844,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"flog10p1s",  XRC(59,845,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"flog10p1s.", XRC(59,845,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fmods",      XRC(59,847,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fmods.",     XRC(59,847,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fpowns",     XRC(59,876,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, RB}},
-{"fpowns.",    XRC(59,876,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, RB}},
-{"frootns",    XRC(59,877,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, RB}},
-{"frootns.",   XRC(59,877,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, RB}},
-{"fminmag19s", XRC(59,878,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fminmag19s.",        XRC(59,878,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fmaxmag19s", XRC(59,879,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fmaxmag19s.",        XRC(59,879,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fexp2s",     XRC(59,908,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fexp2s.",    XRC(59,908,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"flog2s",     XRC(59,909,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"flog2s.",    XRC(59,909,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fminmagnum19s",      XRC(59,910,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fminmagnum19s.",     XRC(59,910,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fmaxmagnum19s",      XRC(59,911,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fmaxmagnum19s.",     XRC(59,911,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fexps",      XRC(59,940,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fexps.",     XRC(59,940,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"flogs",      XRC(59,941,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"flogs.",     XRC(59,941,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fexp10s",    XRC(59,972,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fexp10s.",   XRC(59,972,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"flog10s",    XRC(59,973,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"flog10s.",   XRC(59,973,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fremainders",        XRC(59,975,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fremainders.",       XRC(59,975,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fpowrs",     XRC(59,1004,0), X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fpowrs.",    XRC(59,1004,1), X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fpows",      XRC(59,1005,0), X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fpows.",     XRC(59,1005,1), X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fminmagcs",  XRC(59,1006,0), X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fminmagcs.", XRC(59,1006,1), X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fmaxmagcs",  XRC(59,1007,0), X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fmaxmagcs.", XRC(59,1007,1), X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
+{"fcbrts",     XRC(59,524,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fcbrts.",    XRC(59,524,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fsinpis",    XRC(59,525,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fsinpis.",   XRC(59,525,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fatan2pis",  XRC(59,526,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fatan2pis.", XRC(59,526,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fasinpis",   XRC(59,527,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fasinpis.",  XRC(59,527,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fcospis",    XRC(59,556,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fcospis.",   XRC(59,556,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"ftanpis",    XRC(59,557,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"ftanpis.",   XRC(59,557,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"facospis",   XRC(59,558,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"facospis.",  XRC(59,558,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fatanpis",   XRC(59,559,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fatanpis.",  XRC(59,559,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"frsqrts",    XRC(59,588,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"frsqrts.",   XRC(59,588,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fsins",      XRC(59,589,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fsins.",     XRC(59,589,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fatan2s",    XRC(59,590,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fatan2s.",   XRC(59,590,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fasins",     XRC(59,591,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fasins.",    XRC(59,591,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fcoss",      XRC(59,620,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fcoss.",     XRC(59,620,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"ftans",      XRC(59,621,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"ftans.",     XRC(59,621,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"facoss",     XRC(59,622,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"facoss.",    XRC(59,622,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fatans",     XRC(59,623,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fatans.",    XRC(59,623,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"frecips",    XRC(59,652,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"frecips.",   XRC(59,652,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fsinhs",     XRC(59,653,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fsinhs.",    XRC(59,653,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fhypots",    XRC(59,654,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fhypots.",   XRC(59,654,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fasinhs",    XRC(59,655,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fasinhs.",   XRC(59,655,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fcoshs",     XRC(59,684,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fcoshs.",    XRC(59,684,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"ftanhs",     XRC(59,685,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"ftanhs.",    XRC(59,685,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"facoshs",    XRC(59,686,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"facoshs.",   XRC(59,686,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fatanhs",    XRC(59,687,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fatanhs.",   XRC(59,687,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fminnum08s", XRC(59,716,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fminnum08s.",        XRC(59,716,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fmin19s",    XRC(59,717,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fmin19s.",   XRC(59,717,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fminnum19s", XRC(59,718,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fminnum19s.",        XRC(59,718,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fmincs",     XRC(59,719,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fmincs.",    XRC(59,719,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fmaxnum08s", XRC(59,748,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fmaxnum08s.",        XRC(59,748,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fmax19s",    XRC(59,749,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fmax19s.",   XRC(59,749,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fmaxnum19s", XRC(59,750,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fmaxnum19s.",        XRC(59,750,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fmaxcs",     XRC(59,751,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fmaxcs.",    XRC(59,751,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fexp2m1s",   XRC(59,780,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fexp2m1s.",  XRC(59,780,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"flog2p1s",   XRC(59,781,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"flog2p1s.",  XRC(59,781,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fminmagnum08s",      XRC(59,782,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fminmagnum08s.",     XRC(59,782,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fmaxmagnum08s",      XRC(59,783,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fmaxmagnum08s.",     XRC(59,783,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fexpm1s",    XRC(59,812,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fexpm1s.",   XRC(59,812,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"flogp1s",    XRC(59,813,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"flogp1s.",   XRC(59,813,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fexp10m1s",  XRC(59,844,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fexp10m1s.", XRC(59,844,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"flog10p1s",  XRC(59,845,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"flog10p1s.", XRC(59,845,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fmods",      XRC(59,847,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fmods.",     XRC(59,847,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fpowns",     XRC(59,876,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, RB}},
+{"fpowns.",    XRC(59,876,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, RB}},
+{"frootns",    XRC(59,877,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, RB}},
+{"frootns.",   XRC(59,877,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, RB}},
+{"fminmag19s", XRC(59,878,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fminmag19s.",        XRC(59,878,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fmaxmag19s", XRC(59,879,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fmaxmag19s.",        XRC(59,879,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fexp2s",     XRC(59,908,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fexp2s.",    XRC(59,908,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"flog2s",     XRC(59,909,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"flog2s.",    XRC(59,909,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fminmagnum19s",      XRC(59,910,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fminmagnum19s.",     XRC(59,910,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fmaxmagnum19s",      XRC(59,911,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fmaxmagnum19s.",     XRC(59,911,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fexps",      XRC(59,940,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fexps.",     XRC(59,940,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"flogs",      XRC(59,941,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"flogs.",     XRC(59,941,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fexp10s",    XRC(59,972,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fexp10s.",   XRC(59,972,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"flog10s",    XRC(59,973,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"flog10s.",   XRC(59,973,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fremainders",        XRC(59,975,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fremainders.",       XRC(59,975,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fpowrs",     XRC(59,1004,0), X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fpowrs.",    XRC(59,1004,1), X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fpows",      XRC(59,1005,0), X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fpows.",     XRC(59,1005,1), X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fminmagcs",  XRC(59,1006,0), X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fminmagcs.", XRC(59,1006,1), X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fmaxmagcs",  XRC(59,1007,0), X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fmaxmagcs.", XRC(59,1007,1), X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
 
 {"xsaddsp",    XX3(60,0),      XX3_MASK,    PPCVSX2,   PPCVLE,         {XT6, XA6, XB6}},
 {"xsmaddasp",  XX3(60,1),      XX3_MASK,    PPCVSX2,   PPCVLE,         {XT6, XA6, XB6}},
@@ -9987,122 +9988,122 @@ const struct powerpc_opcode powerpc_opcodes[] = {
 {"dcffixqq",   XVA(63,994,0),  XVA_MASK,    POWER10,   PPCVLE,         {FRTp, VB}},
 {"dctfixqq",   XVA(63,994,1),  XVA_MASK,    POWER10,   PPCVLE,         {VD, FRBp}},
 
-{"fcbrt",      XRC(63,524,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fcbrt.",     XRC(63,524,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fsinpi",     XRC(63,525,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fsinpi.",    XRC(63,525,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fatan2pi",   XRC(63,526,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fatan2pi.",  XRC(63,526,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fasinpi",    XRC(63,527,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fasinpi.",   XRC(63,527,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fcospi",     XRC(63,556,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fcospi.",    XRC(63,556,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"ftanpi",     XRC(63,557,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"ftanpi.",    XRC(63,557,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"facospi",    XRC(63,558,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"facospi.",   XRC(63,558,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fatanpi",    XRC(63,559,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fatanpi.",   XRC(63,559,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"frsqrt",     XRC(63,588,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"frsqrt.",    XRC(63,588,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fsin",       XRC(63,589,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fsin.",      XRC(63,589,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fatan2",     XRC(63,590,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fatan2.",    XRC(63,590,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fasin",      XRC(63,591,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fasin.",     XRC(63,591,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fcos",       XRC(63,620,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fcos.",      XRC(63,620,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"ftan",       XRC(63,621,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"ftan.",      XRC(63,621,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"facos",      XRC(63,622,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"facos.",     XRC(63,622,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fatan",      XRC(63,623,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fatan.",     XRC(63,623,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"frecip",     XRC(63,652,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"frecip.",    XRC(63,652,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fsinh",      XRC(63,653,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fsinh.",     XRC(63,653,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fhypot",     XRC(63,654,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fhypot.",    XRC(63,654,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fasinh",     XRC(63,655,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fasinh.",    XRC(63,655,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fcosh",      XRC(63,684,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fcosh.",     XRC(63,684,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"ftanh",      XRC(63,685,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"ftanh.",     XRC(63,685,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"facosh",     XRC(63,686,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"facosh.",    XRC(63,686,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fatanh",     XRC(63,687,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fatanh.",    XRC(63,687,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fminnum08",  XRC(63,716,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fminnum08.", XRC(63,716,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fmin19",     XRC(63,717,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fmin19.",    XRC(63,717,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fminnum19",  XRC(63,718,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fminnum19.", XRC(63,718,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fminc",      XRC(63,719,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fminc.",     XRC(63,719,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fmaxnum08",  XRC(63,748,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fmaxnum08.", XRC(63,748,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fmax19",     XRC(63,749,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fmax19.",    XRC(63,749,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fmaxnum19",  XRC(63,750,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fmaxnum19.", XRC(63,750,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fmaxc",      XRC(63,751,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fmaxc.",     XRC(63,751,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fexp2m1",    XRC(63,780,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fexp2m1.",   XRC(63,780,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"flog2p1",    XRC(63,781,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"flog2p1.",   XRC(63,781,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fminmagnum08",       XRC(63,782,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fminmagnum08.",      XRC(63,782,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fmaxmagnum08",       XRC(63,783,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fmaxmagnum08.",      XRC(63,783,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fexpm1",     XRC(63,812,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fexpm1.",    XRC(63,812,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"flogp1",     XRC(63,813,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"flogp1.",    XRC(63,813,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fexp10m1",   XRC(63,844,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fexp10m1.",  XRC(63,844,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"flog10p1",   XRC(63,845,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"flog10p1.",  XRC(63,845,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fmod",       XRC(63,847,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fmod.",      XRC(63,847,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fpown",      XRC(63,876,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, RB}},
-{"fpown.",     XRC(63,876,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, RB}},
-{"frootn",     XRC(63,877,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, RB}},
-{"frootn.",    XRC(63,877,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, RB}},
-{"fminmag19",  XRC(63,878,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fminmag19.", XRC(63,878,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fmaxmag19",  XRC(63,879,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fmaxmag19.", XRC(63,879,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fexp2",      XRC(63,908,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fexp2.",     XRC(63,908,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"flog2",      XRC(63,909,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"flog2.",     XRC(63,909,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fminmagnum19",       XRC(63,910,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fminmagnum19.",      XRC(63,910,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fmaxmagnum19",       XRC(63,911,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fmaxmagnum19.",      XRC(63,911,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fexp",       XRC(63,940,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fexp.",      XRC(63,940,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"flog",       XRC(63,941,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"flog.",      XRC(63,941,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fexp10",     XRC(63,972,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fexp10.",    XRC(63,972,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"flog10",     XRC(63,973,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"flog10.",    XRC(63,973,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRB}},
-{"fremainder", XRC(63,975,0),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fremainder.",        XRC(63,975,1),  X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fpowr",      XRC(63,1004,0), X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fpowr.",     XRC(63,1004,1), X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fpow",       XRC(63,1005,0), X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fpow.",      XRC(63,1005,1), X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fminmagc",   XRC(63,1006,0), X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fminmagc.",  XRC(63,1006,1), X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fmaxmagc",   XRC(63,1007,0), X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
-{"fmaxmagc.",  XRC(63,1007,1), X_MASK, SVP64,  PPCVLE, {FRT, FRA, FRB}},
+{"fcbrt",      XRC(63,524,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fcbrt.",     XRC(63,524,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fsinpi",     XRC(63,525,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fsinpi.",    XRC(63,525,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fatan2pi",   XRC(63,526,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fatan2pi.",  XRC(63,526,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fasinpi",    XRC(63,527,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fasinpi.",   XRC(63,527,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fcospi",     XRC(63,556,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fcospi.",    XRC(63,556,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"ftanpi",     XRC(63,557,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"ftanpi.",    XRC(63,557,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"facospi",    XRC(63,558,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"facospi.",   XRC(63,558,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fatanpi",    XRC(63,559,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fatanpi.",   XRC(63,559,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"frsqrt",     XRC(63,588,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"frsqrt.",    XRC(63,588,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fsin",       XRC(63,589,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fsin.",      XRC(63,589,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fatan2",     XRC(63,590,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fatan2.",    XRC(63,590,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fasin",      XRC(63,591,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fasin.",     XRC(63,591,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fcos",       XRC(63,620,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fcos.",      XRC(63,620,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"ftan",       XRC(63,621,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"ftan.",      XRC(63,621,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"facos",      XRC(63,622,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"facos.",     XRC(63,622,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fatan",      XRC(63,623,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fatan.",     XRC(63,623,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"frecip",     XRC(63,652,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"frecip.",    XRC(63,652,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fsinh",      XRC(63,653,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fsinh.",     XRC(63,653,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fhypot",     XRC(63,654,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fhypot.",    XRC(63,654,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fasinh",     XRC(63,655,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fasinh.",    XRC(63,655,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fcosh",      XRC(63,684,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fcosh.",     XRC(63,684,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"ftanh",      XRC(63,685,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"ftanh.",     XRC(63,685,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"facosh",     XRC(63,686,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"facosh.",    XRC(63,686,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fatanh",     XRC(63,687,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fatanh.",    XRC(63,687,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fminnum08",  XRC(63,716,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fminnum08.", XRC(63,716,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fmin19",     XRC(63,717,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fmin19.",    XRC(63,717,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fminnum19",  XRC(63,718,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fminnum19.", XRC(63,718,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fminc",      XRC(63,719,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fminc.",     XRC(63,719,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fmaxnum08",  XRC(63,748,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fmaxnum08.", XRC(63,748,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fmax19",     XRC(63,749,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fmax19.",    XRC(63,749,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fmaxnum19",  XRC(63,750,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fmaxnum19.", XRC(63,750,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fmaxc",      XRC(63,751,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fmaxc.",     XRC(63,751,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fexp2m1",    XRC(63,780,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fexp2m1.",   XRC(63,780,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"flog2p1",    XRC(63,781,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"flog2p1.",   XRC(63,781,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fminmagnum08",       XRC(63,782,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fminmagnum08.",      XRC(63,782,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fmaxmagnum08",       XRC(63,783,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fmaxmagnum08.",      XRC(63,783,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fexpm1",     XRC(63,812,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fexpm1.",    XRC(63,812,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"flogp1",     XRC(63,813,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"flogp1.",    XRC(63,813,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fexp10m1",   XRC(63,844,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fexp10m1.",  XRC(63,844,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"flog10p1",   XRC(63,845,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"flog10p1.",  XRC(63,845,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fmod",       XRC(63,847,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fmod.",      XRC(63,847,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fpown",      XRC(63,876,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, RB}},
+{"fpown.",     XRC(63,876,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, RB}},
+{"frootn",     XRC(63,877,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, RB}},
+{"frootn.",    XRC(63,877,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, RB}},
+{"fminmag19",  XRC(63,878,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fminmag19.", XRC(63,878,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fmaxmag19",  XRC(63,879,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fmaxmag19.", XRC(63,879,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fexp2",      XRC(63,908,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fexp2.",     XRC(63,908,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"flog2",      XRC(63,909,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"flog2.",     XRC(63,909,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fminmagnum19",       XRC(63,910,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fminmagnum19.",      XRC(63,910,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fmaxmagnum19",       XRC(63,911,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fmaxmagnum19.",      XRC(63,911,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fexp",       XRC(63,940,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fexp.",      XRC(63,940,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"flog",       XRC(63,941,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"flog.",      XRC(63,941,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fexp10",     XRC(63,972,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fexp10.",    XRC(63,972,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"flog10",     XRC(63,973,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"flog10.",    XRC(63,973,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRB}},
+{"fremainder", XRC(63,975,0),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fremainder.",        XRC(63,975,1),  X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fpowr",      XRC(63,1004,0), X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fpowr.",     XRC(63,1004,1), X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fpow",       XRC(63,1005,0), X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fpow.",      XRC(63,1005,1), X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fminmagc",   XRC(63,1006,0), X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fminmagc.",  XRC(63,1006,1), X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fmaxmagc",   XRC(63,1007,0), X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
+{"fmaxmagc.",  XRC(63,1007,1), X_MASK, SFFS,   PPCVLE, {FRT, FRA, FRB}},
 };
 
 const unsigned int powerpc_num_opcodes = ARRAY_SIZE (powerpc_opcodes);