Ignore:
Timestamp:
Aug 16, 2003, 6:59:22 PM (22 years ago)
Author:
bird
Message:

binutils v2.14 - offical sources.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/GNU/src/binutils/opcodes/ia64-opc-f.c

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    11/* ia64-opc-f.c -- IA-64 `F' opcode table.
    2    Copyright 1998, 1999, 2000 Free Software Foundation, Inc.
     2   Copyright 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
    33   Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
    44
     
    3737#define bX2(x)  (((ia64_insn) ((x) & 0x3)) << 34)
    3838#define bX6(x)  (((ia64_insn) ((x) & 0x3f)) << 27)
     39#define bY(x)   (((ia64_insn) ((x) & 0x1)) << 26)
    3940
    4041#define mF2     bF2 (-1)
     
    4950#define mX2     bX2 (-1)
    5051#define mX6     bX6 (-1)
     52#define mY      bY (-1)
    5153
    5254#define OpXa(a,b)       (bOp (a) | bXa (b)), (mOp | mXa)
     
    7072#define OpXbX6(a,b,c) \
    7173        (bOp (a) | bXb (b) | bX6 (c)), (mOp | mXb | mX6)
     74#define OpXbX6Y(a,b,c,d) \
     75        (bOp (a) | bXb (b) | bX6 (c) | bY (d)), (mOp | mXb | mX6 | mY)
    7276#define OpXbX6F2(a,b,c,d) \
    7377        (bOp (a) | bXb (b) | bX6 (c) | bF2 (d)), (mOp | mXb | mX6 | mF2)
     
    7579        (bOp (a) | bXb (b) | bX6 (c) | bSf (d)), (mOp | mXb | mX6 | mSf)
    7680
     81/* Used to initialise unused fields in ia64_opcode struct,
     82   in order to stop gcc from complaining.  */
     83#define EMPTY 0,0,NULL
     84
    7785struct ia64_opcode ia64_opcodes_f[] =
    7886  {
    79     /* F-type instruction encodings (sorted according to major opcode) */
    80 
    81     {"frcpa.s0",        f2, OpXbQSf (0, 1, 0, 0), {F1, P2, F2, F3}},
    82     {"frcpa",           f2, OpXbQSf (0, 1, 0, 0), {F1, P2, F2, F3}, PSEUDO},
    83     {"frcpa.s1",        f2, OpXbQSf (0, 1, 0, 1), {F1, P2, F2, F3}},
    84     {"frcpa.s2",        f2, OpXbQSf (0, 1, 0, 2), {F1, P2, F2, F3}},
    85     {"frcpa.s3",        f2, OpXbQSf (0, 1, 0, 3), {F1, P2, F2, F3}},
    86 
    87     {"frsqrta.s0",      f2, OpXbQSf (0, 1, 1, 0), {F1, P2, F3}},
    88     {"frsqrta",         f2, OpXbQSf (0, 1, 1, 0), {F1, P2, F3}, PSEUDO},
    89     {"frsqrta.s1",      f2, OpXbQSf (0, 1, 1, 1), {F1, P2, F3}},
    90     {"frsqrta.s2",      f2, OpXbQSf (0, 1, 1, 2), {F1, P2, F3}},
    91     {"frsqrta.s3",      f2, OpXbQSf (0, 1, 1, 3), {F1, P2, F3}},
    92 
    93     {"fmin.s0",         f, OpXbX6Sf (0, 0, 0x14, 0), {F1, F2, F3}},
    94     {"fmin",            f, OpXbX6Sf (0, 0, 0x14, 0), {F1, F2, F3}, PSEUDO},
    95     {"fmin.s1",         f, OpXbX6Sf (0, 0, 0x14, 1), {F1, F2, F3}},
    96     {"fmin.s2",         f, OpXbX6Sf (0, 0, 0x14, 2), {F1, F2, F3}},
    97     {"fmin.s3",         f, OpXbX6Sf (0, 0, 0x14, 3), {F1, F2, F3}},
    98     {"fmax.s0",         f, OpXbX6Sf (0, 0, 0x15, 0), {F1, F2, F3}},
    99     {"fmax",            f, OpXbX6Sf (0, 0, 0x15, 0), {F1, F2, F3}, PSEUDO},
    100     {"fmax.s1",         f, OpXbX6Sf (0, 0, 0x15, 1), {F1, F2, F3}},
    101     {"fmax.s2",         f, OpXbX6Sf (0, 0, 0x15, 2), {F1, F2, F3}},
    102     {"fmax.s3",         f, OpXbX6Sf (0, 0, 0x15, 3), {F1, F2, F3}},
    103     {"famin.s0",        f, OpXbX6Sf (0, 0, 0x16, 0), {F1, F2, F3}},
    104     {"famin",           f, OpXbX6Sf (0, 0, 0x16, 0), {F1, F2, F3}, PSEUDO},
    105     {"famin.s1",        f, OpXbX6Sf (0, 0, 0x16, 1), {F1, F2, F3}},
    106     {"famin.s2",        f, OpXbX6Sf (0, 0, 0x16, 2), {F1, F2, F3}},
    107     {"famin.s3",        f, OpXbX6Sf (0, 0, 0x16, 3), {F1, F2, F3}},
    108     {"famax.s0",        f, OpXbX6Sf (0, 0, 0x17, 0), {F1, F2, F3}},
    109     {"famax",           f, OpXbX6Sf (0, 0, 0x17, 0), {F1, F2, F3}, PSEUDO},
    110     {"famax.s1",        f, OpXbX6Sf (0, 0, 0x17, 1), {F1, F2, F3}},
    111     {"famax.s2",        f, OpXbX6Sf (0, 0, 0x17, 2), {F1, F2, F3}},
    112     {"famax.s3",        f, OpXbX6Sf (0, 0, 0x17, 3), {F1, F2, F3}},
    113 
    114     {"mov",             f, OpXbX6 (0, 0, 0x10), {F1, F3}, PSEUDO | F2_EQ_F3},
    115     {"fabs",            f, OpXbX6F2 (0, 0, 0x10, 0), {F1, F3}, PSEUDO},
    116     {"fneg",            f, OpXbX6   (0, 0, 0x11), {F1, F3}, PSEUDO | F2_EQ_F3},
    117     {"fnegabs",         f, OpXbX6F2 (0, 0, 0x11, 0), {F1, F3}, PSEUDO},
    118     {"fmerge.s",        f, OpXbX6   (0, 0, 0x10), {F1, F2, F3}},
    119     {"fmerge.ns",       f, OpXbX6   (0, 0, 0x11), {F1, F2, F3}},
    120 
    121     {"fmerge.se",       f, OpXbX6 (0, 0, 0x12), {F1, F2, F3}},
    122     {"fmix.lr",         f, OpXbX6 (0, 0, 0x39), {F1, F2, F3}},
    123     {"fmix.r",          f, OpXbX6 (0, 0, 0x3a), {F1, F2, F3}},
    124     {"fmix.l",          f, OpXbX6 (0, 0, 0x3b), {F1, F2, F3}},
    125     {"fsxt.r",          f, OpXbX6 (0, 0, 0x3c), {F1, F2, F3}},
    126     {"fsxt.l",          f, OpXbX6 (0, 0, 0x3d), {F1, F2, F3}},
    127     {"fpack",           f, OpXbX6 (0, 0, 0x28), {F1, F2, F3}},
    128     {"fswap",           f, OpXbX6 (0, 0, 0x34), {F1, F2, F3}},
    129     {"fswap.nl",        f, OpXbX6 (0, 0, 0x35), {F1, F2, F3}},
    130     {"fswap.nr",        f, OpXbX6 (0, 0, 0x36), {F1, F2, F3}},
    131     {"fand",            f, OpXbX6 (0, 0, 0x2c), {F1, F2, F3}},
    132     {"fandcm",          f, OpXbX6 (0, 0, 0x2d), {F1, F2, F3}},
    133     {"for",             f, OpXbX6 (0, 0, 0x2e), {F1, F2, F3}},
    134     {"fxor",            f, OpXbX6 (0, 0, 0x2f), {F1, F2, F3}},
    135 
    136     {"fcvt.fx.s0",              f, OpXbX6Sf (0, 0, 0x18, 0), {F1, F2}},
    137     {"fcvt.fx",                 f, OpXbX6Sf (0, 0, 0x18, 0), {F1, F2}, PSEUDO},
    138     {"fcvt.fx.s1",              f, OpXbX6Sf (0, 0, 0x18, 1), {F1, F2}},
    139     {"fcvt.fx.s2",              f, OpXbX6Sf (0, 0, 0x18, 2), {F1, F2}},
    140     {"fcvt.fx.s3",              f, OpXbX6Sf (0, 0, 0x18, 3), {F1, F2}},
    141     {"fcvt.fxu.s0",             f, OpXbX6Sf (0, 0, 0x19, 0), {F1, F2}},
    142     {"fcvt.fxu",                f, OpXbX6Sf (0, 0, 0x19, 0), {F1, F2}, PSEUDO},
    143     {"fcvt.fxu.s1",             f, OpXbX6Sf (0, 0, 0x19, 1), {F1, F2}},
    144     {"fcvt.fxu.s2",             f, OpXbX6Sf (0, 0, 0x19, 2), {F1, F2}},
    145     {"fcvt.fxu.s3",             f, OpXbX6Sf (0, 0, 0x19, 3), {F1, F2}},
    146     {"fcvt.fx.trunc.s0",        f, OpXbX6Sf (0, 0, 0x1a, 0), {F1, F2}},
    147     {"fcvt.fx.trunc",           f, OpXbX6Sf (0, 0, 0x1a, 0), {F1, F2}, PSEUDO},
    148     {"fcvt.fx.trunc.s1",        f, OpXbX6Sf (0, 0, 0x1a, 1), {F1, F2}},
    149     {"fcvt.fx.trunc.s2",        f, OpXbX6Sf (0, 0, 0x1a, 2), {F1, F2}},
    150     {"fcvt.fx.trunc.s3",        f, OpXbX6Sf (0, 0, 0x1a, 3), {F1, F2}},
    151     {"fcvt.fxu.trunc.s0",       f, OpXbX6Sf (0, 0, 0x1b, 0), {F1, F2}},
    152     {"fcvt.fxu.trunc",          f, OpXbX6Sf (0, 0, 0x1b, 0), {F1, F2}, PSEUDO},
    153     {"fcvt.fxu.trunc.s1",       f, OpXbX6Sf (0, 0, 0x1b, 1), {F1, F2}},
    154     {"fcvt.fxu.trunc.s2",       f, OpXbX6Sf (0, 0, 0x1b, 2), {F1, F2}},
    155     {"fcvt.fxu.trunc.s3",       f, OpXbX6Sf (0, 0, 0x1b, 3), {F1, F2}},
    156 
    157     {"fcvt.xf",         f, OpXbX6 (0, 0, 0x1c), {F1, F2}},
    158 
    159     {"fsetc.s0",        f0, OpXbX6Sf (0, 0, 0x04, 0), {IMMU7a, IMMU7b}},
    160     {"fsetc",           f0, OpXbX6Sf (0, 0, 0x04, 0), {IMMU7a, IMMU7b}, PSEUDO},
    161     {"fsetc.s1",        f0, OpXbX6Sf (0, 0, 0x04, 1), {IMMU7a, IMMU7b}},
    162     {"fsetc.s2",        f0, OpXbX6Sf (0, 0, 0x04, 2), {IMMU7a, IMMU7b}},
    163     {"fsetc.s3",        f0, OpXbX6Sf (0, 0, 0x04, 3), {IMMU7a, IMMU7b}},
    164     {"fclrf.s0",        f0, OpXbX6Sf (0, 0, 0x05, 0)},
    165     {"fclrf",           f0, OpXbX6Sf (0, 0, 0x05, 0), {0}, PSEUDO},
    166     {"fclrf.s1",        f0, OpXbX6Sf (0, 0, 0x05, 1)},
    167     {"fclrf.s2",        f0, OpXbX6Sf (0, 0, 0x05, 2)},
    168     {"fclrf.s3",        f0, OpXbX6Sf (0, 0, 0x05, 3)},
    169     {"fchkf.s0",        f0, OpXbX6Sf (0, 0, 0x08, 0), {TGT25}},
    170     {"fchkf",           f0, OpXbX6Sf (0, 0, 0x08, 0), {TGT25}, PSEUDO},
    171     {"fchkf.s1",        f0, OpXbX6Sf (0, 0, 0x08, 1), {TGT25}},
    172     {"fchkf.s2",        f0, OpXbX6Sf (0, 0, 0x08, 2), {TGT25}},
    173     {"fchkf.s3",        f0, OpXbX6Sf (0, 0, 0x08, 3), {TGT25}},
    174 
    175     {"break.f",         f0, OpXbX6 (0, 0, 0x00), {IMMU21}},
    176     {"nop.f",           f0, OpXbX6 (0, 0, 0x01), {IMMU21}},
    177 
    178     {"fprcpa.s0",       f2, OpXbQSf (1, 1, 0, 0), {F1, P2, F2, F3}},
    179     {"fprcpa",          f2, OpXbQSf (1, 1, 0, 0), {F1, P2, F2, F3}, PSEUDO},
    180     {"fprcpa.s1",       f2, OpXbQSf (1, 1, 0, 1), {F1, P2, F2, F3}},
    181     {"fprcpa.s2",       f2, OpXbQSf (1, 1, 0, 2), {F1, P2, F2, F3}},
    182     {"fprcpa.s3",       f2, OpXbQSf (1, 1, 0, 3), {F1, P2, F2, F3}},
    183 
    184     {"fprsqrta.s0",     f2, OpXbQSf (1, 1, 1, 0), {F1, P2, F3}},
    185     {"fprsqrta",        f2, OpXbQSf (1, 1, 1, 0), {F1, P2, F3}, PSEUDO},
    186     {"fprsqrta.s1",     f2, OpXbQSf (1, 1, 1, 1), {F1, P2, F3}},
    187     {"fprsqrta.s2",     f2, OpXbQSf (1, 1, 1, 2), {F1, P2, F3}},
    188     {"fprsqrta.s3",     f2, OpXbQSf (1, 1, 1, 3), {F1, P2, F3}},
    189 
    190     {"fpmin.s0",        f, OpXbX6Sf (1, 0, 0x14, 0), {F1, F2, F3}},
    191     {"fpmin",           f, OpXbX6Sf (1, 0, 0x14, 0), {F1, F2, F3}, PSEUDO},
    192     {"fpmin.s1",        f, OpXbX6Sf (1, 0, 0x14, 1), {F1, F2, F3}},
    193     {"fpmin.s2",        f, OpXbX6Sf (1, 0, 0x14, 2), {F1, F2, F3}},
    194     {"fpmin.s3",        f, OpXbX6Sf (1, 0, 0x14, 3), {F1, F2, F3}},
    195     {"fpmax.s0",        f, OpXbX6Sf (1, 0, 0x15, 0), {F1, F2, F3}},
    196     {"fpmax",           f, OpXbX6Sf (1, 0, 0x15, 0), {F1, F2, F3}, PSEUDO},
    197     {"fpmax.s1",        f, OpXbX6Sf (1, 0, 0x15, 1), {F1, F2, F3}},
    198     {"fpmax.s2",        f, OpXbX6Sf (1, 0, 0x15, 2), {F1, F2, F3}},
    199     {"fpmax.s3",        f, OpXbX6Sf (1, 0, 0x15, 3), {F1, F2, F3}},
    200     {"fpamin.s0",       f, OpXbX6Sf (1, 0, 0x16, 0), {F1, F2, F3}},
    201     {"fpamin",          f, OpXbX6Sf (1, 0, 0x16, 0), {F1, F2, F3}, PSEUDO},
    202     {"fpamin.s1",       f, OpXbX6Sf (1, 0, 0x16, 1), {F1, F2, F3}},
    203     {"fpamin.s2",       f, OpXbX6Sf (1, 0, 0x16, 2), {F1, F2, F3}},
    204     {"fpamin.s3",       f, OpXbX6Sf (1, 0, 0x16, 3), {F1, F2, F3}},
    205     {"fpamax.s0",       f, OpXbX6Sf (1, 0, 0x17, 0), {F1, F2, F3}},
    206     {"fpamax",          f, OpXbX6Sf (1, 0, 0x17, 0), {F1, F2, F3}, PSEUDO},
    207     {"fpamax.s1",       f, OpXbX6Sf (1, 0, 0x17, 1), {F1, F2, F3}},
    208     {"fpamax.s2",       f, OpXbX6Sf (1, 0, 0x17, 2), {F1, F2, F3}},
    209     {"fpamax.s3",       f, OpXbX6Sf (1, 0, 0x17, 3), {F1, F2, F3}},
    210 
    211     {"fpcmp.eq.s0",     f, OpXbX6Sf (1, 0, 0x30, 0), {F1, F2, F3}},
    212     {"fpcmp.eq",        f, OpXbX6Sf (1, 0, 0x30, 0), {F1, F2, F3}, PSEUDO},
    213     {"fpcmp.eq.s1",     f, OpXbX6Sf (1, 0, 0x30, 1), {F1, F2, F3}},
    214     {"fpcmp.eq.s2",     f, OpXbX6Sf (1, 0, 0x30, 2), {F1, F2, F3}},
    215     {"fpcmp.eq.s3",     f, OpXbX6Sf (1, 0, 0x30, 3), {F1, F2, F3}},
    216     {"fpcmp.lt.s0",     f, OpXbX6Sf (1, 0, 0x31, 0), {F1, F2, F3}},
    217     {"fpcmp.lt",        f, OpXbX6Sf (1, 0, 0x31, 0), {F1, F2, F3}, PSEUDO},
    218     {"fpcmp.lt.s1",     f, OpXbX6Sf (1, 0, 0x31, 1), {F1, F2, F3}},
    219     {"fpcmp.lt.s2",     f, OpXbX6Sf (1, 0, 0x31, 2), {F1, F2, F3}},
    220     {"fpcmp.lt.s3",     f, OpXbX6Sf (1, 0, 0x31, 3), {F1, F2, F3}},
    221     {"fpcmp.le.s0",     f, OpXbX6Sf (1, 0, 0x32, 0), {F1, F2, F3}},
    222     {"fpcmp.le",        f, OpXbX6Sf (1, 0, 0x32, 0), {F1, F2, F3}, PSEUDO},
    223     {"fpcmp.le.s1",     f, OpXbX6Sf (1, 0, 0x32, 1), {F1, F2, F3}},
    224     {"fpcmp.le.s2",     f, OpXbX6Sf (1, 0, 0x32, 2), {F1, F2, F3}},
    225     {"fpcmp.le.s3",     f, OpXbX6Sf (1, 0, 0x32, 3), {F1, F2, F3}},
    226     {"fpcmp.gt.s0",     f, OpXbX6Sf (1, 0, 0x31, 0), {F1, F3, F2}, PSEUDO},
    227     {"fpcmp.gt",        f, OpXbX6Sf (1, 0, 0x31, 0), {F1, F3, F2}, PSEUDO},
    228     {"fpcmp.gt.s1",     f, OpXbX6Sf (1, 0, 0x31, 1), {F1, F3, F2}, PSEUDO},
    229     {"fpcmp.gt.s2",     f, OpXbX6Sf (1, 0, 0x31, 2), {F1, F3, F2}, PSEUDO},
    230     {"fpcmp.gt.s3",     f, OpXbX6Sf (1, 0, 0x31, 3), {F1, F3, F2}, PSEUDO},
    231     {"fpcmp.ge.s0",     f, OpXbX6Sf (1, 0, 0x32, 0), {F1, F3, F2}, PSEUDO},
    232     {"fpcmp.ge",        f, OpXbX6Sf (1, 0, 0x32, 0), {F1, F3, F2}, PSEUDO},
    233     {"fpcmp.ge.s1",     f, OpXbX6Sf (1, 0, 0x32, 1), {F1, F3, F2}, PSEUDO},
    234     {"fpcmp.ge.s2",     f, OpXbX6Sf (1, 0, 0x32, 2), {F1, F3, F2}, PSEUDO},
    235     {"fpcmp.ge.s3",     f, OpXbX6Sf (1, 0, 0x32, 3), {F1, F3, F2}, PSEUDO},
    236     {"fpcmp.unord.s0",  f, OpXbX6Sf (1, 0, 0x33, 0), {F1, F2, F3}},
    237     {"fpcmp.unord",     f, OpXbX6Sf (1, 0, 0x33, 0), {F1, F2, F3}, PSEUDO},
    238     {"fpcmp.unord.s1",  f, OpXbX6Sf (1, 0, 0x33, 1), {F1, F2, F3}},
    239     {"fpcmp.unord.s2",  f, OpXbX6Sf (1, 0, 0x33, 2), {F1, F2, F3}},
    240     {"fpcmp.unord.s3",  f, OpXbX6Sf (1, 0, 0x33, 3), {F1, F2, F3}},
    241     {"fpcmp.neq.s0",    f, OpXbX6Sf (1, 0, 0x34, 0), {F1, F2, F3}},
    242     {"fpcmp.neq",       f, OpXbX6Sf (1, 0, 0x34, 0), {F1, F2, F3}, PSEUDO},
    243     {"fpcmp.neq.s1",    f, OpXbX6Sf (1, 0, 0x34, 1), {F1, F2, F3}},
    244     {"fpcmp.neq.s2",    f, OpXbX6Sf (1, 0, 0x34, 2), {F1, F2, F3}},
    245     {"fpcmp.neq.s3",    f, OpXbX6Sf (1, 0, 0x34, 3), {F1, F2, F3}},
    246     {"fpcmp.nlt.s0",    f, OpXbX6Sf (1, 0, 0x35, 0), {F1, F2, F3}},
    247     {"fpcmp.nlt",       f, OpXbX6Sf (1, 0, 0x35, 0), {F1, F2, F3}, PSEUDO},
    248     {"fpcmp.nlt.s1",    f, OpXbX6Sf (1, 0, 0x35, 1), {F1, F2, F3}},
    249     {"fpcmp.nlt.s2",    f, OpXbX6Sf (1, 0, 0x35, 2), {F1, F2, F3}},
    250     {"fpcmp.nlt.s3",    f, OpXbX6Sf (1, 0, 0x35, 3), {F1, F2, F3}},
    251     {"fpcmp.nle.s0",    f, OpXbX6Sf (1, 0, 0x36, 0), {F1, F2, F3}},
    252     {"fpcmp.nle",       f, OpXbX6Sf (1, 0, 0x36, 0), {F1, F2, F3}, PSEUDO},
    253     {"fpcmp.nle.s1",    f, OpXbX6Sf (1, 0, 0x36, 1), {F1, F2, F3}},
    254     {"fpcmp.nle.s2",    f, OpXbX6Sf (1, 0, 0x36, 2), {F1, F2, F3}},
    255     {"fpcmp.nle.s3",    f, OpXbX6Sf (1, 0, 0x36, 3), {F1, F2, F3}},
    256     {"fpcmp.ngt.s0",    f, OpXbX6Sf (1, 0, 0x35, 0), {F1, F3, F2}, PSEUDO},
    257     {"fpcmp.ngt",       f, OpXbX6Sf (1, 0, 0x35, 0), {F1, F3, F2}, PSEUDO},
    258     {"fpcmp.ngt.s1",    f, OpXbX6Sf (1, 0, 0x35, 1), {F1, F3, F2}, PSEUDO},
    259     {"fpcmp.ngt.s2",    f, OpXbX6Sf (1, 0, 0x35, 2), {F1, F3, F2}, PSEUDO},
    260     {"fpcmp.ngt.s3",    f, OpXbX6Sf (1, 0, 0x35, 3), {F1, F3, F2}, PSEUDO},
    261     {"fpcmp.nge.s0",    f, OpXbX6Sf (1, 0, 0x36, 0), {F1, F3, F2}, PSEUDO},
    262     {"fpcmp.nge",       f, OpXbX6Sf (1, 0, 0x36, 0), {F1, F3, F2}, PSEUDO},
    263     {"fpcmp.nge.s1",    f, OpXbX6Sf (1, 0, 0x36, 1), {F1, F3, F2}, PSEUDO},
    264     {"fpcmp.nge.s2",    f, OpXbX6Sf (1, 0, 0x36, 2), {F1, F3, F2}, PSEUDO},
    265     {"fpcmp.nge.s3",    f, OpXbX6Sf (1, 0, 0x36, 3), {F1, F3, F2}, PSEUDO},
    266     {"fpcmp.ord.s0",    f, OpXbX6Sf (1, 0, 0x37, 0), {F1, F2, F3}},
    267     {"fpcmp.ord",       f, OpXbX6Sf (1, 0, 0x37, 0), {F1, F2, F3}, PSEUDO},
    268     {"fpcmp.ord.s1",    f, OpXbX6Sf (1, 0, 0x37, 1), {F1, F2, F3}},
    269     {"fpcmp.ord.s2",    f, OpXbX6Sf (1, 0, 0x37, 2), {F1, F2, F3}},
    270     {"fpcmp.ord.s3",    f, OpXbX6Sf (1, 0, 0x37, 3), {F1, F2, F3}},
    271 
    272     {"fpabs",           f, OpXbX6F2 (1, 0, 0x10, 0), {F1, F3}, PSEUDO},
    273     {"fpneg",           f, OpXbX6   (1, 0, 0x11), {F1, F3}, PSEUDO | F2_EQ_F3},
    274     {"fpnegabs",        f, OpXbX6F2 (1, 0, 0x11, 0), {F1, F3}, PSEUDO},
    275     {"fpmerge.s",       f, OpXbX6   (1, 0, 0x10), {F1, F2, F3}},
    276     {"fpmerge.ns",      f, OpXbX6   (1, 0, 0x11), {F1, F2, F3}},
    277     {"fpmerge.se",      f, OpXbX6 (1, 0, 0x12), {F1, F2, F3}},
    278 
    279     {"fpcvt.fx.s0",             f, OpXbX6Sf (1, 0, 0x18, 0), {F1, F2}},
    280     {"fpcvt.fx",                f, OpXbX6Sf (1, 0, 0x18, 0), {F1, F2}, PSEUDO},
    281     {"fpcvt.fx.s1",             f, OpXbX6Sf (1, 0, 0x18, 1), {F1, F2}},
    282     {"fpcvt.fx.s2",             f, OpXbX6Sf (1, 0, 0x18, 2), {F1, F2}},
    283     {"fpcvt.fx.s3",             f, OpXbX6Sf (1, 0, 0x18, 3), {F1, F2}},
    284     {"fpcvt.fxu.s0",            f, OpXbX6Sf (1, 0, 0x19, 0), {F1, F2}},
    285     {"fpcvt.fxu",               f, OpXbX6Sf (1, 0, 0x19, 0), {F1, F2}, PSEUDO},
    286     {"fpcvt.fxu.s1",            f, OpXbX6Sf (1, 0, 0x19, 1), {F1, F2}},
    287     {"fpcvt.fxu.s2",            f, OpXbX6Sf (1, 0, 0x19, 2), {F1, F2}},
    288     {"fpcvt.fxu.s3",            f, OpXbX6Sf (1, 0, 0x19, 3), {F1, F2}},
    289     {"fpcvt.fx.trunc.s0",       f, OpXbX6Sf (1, 0, 0x1a, 0), {F1, F2}},
    290     {"fpcvt.fx.trunc",          f, OpXbX6Sf (1, 0, 0x1a, 0), {F1, F2}, PSEUDO},
    291     {"fpcvt.fx.trunc.s1",       f, OpXbX6Sf (1, 0, 0x1a, 1), {F1, F2}},
    292     {"fpcvt.fx.trunc.s2",       f, OpXbX6Sf (1, 0, 0x1a, 2), {F1, F2}},
    293     {"fpcvt.fx.trunc.s3",       f, OpXbX6Sf (1, 0, 0x1a, 3), {F1, F2}},
    294     {"fpcvt.fxu.trunc.s0",      f, OpXbX6Sf (1, 0, 0x1b, 0), {F1, F2}},
    295     {"fpcvt.fxu.trunc",         f, OpXbX6Sf (1, 0, 0x1b, 0), {F1, F2}, PSEUDO},
    296     {"fpcvt.fxu.trunc.s1",      f, OpXbX6Sf (1, 0, 0x1b, 1), {F1, F2}},
    297     {"fpcvt.fxu.trunc.s2",      f, OpXbX6Sf (1, 0, 0x1b, 2), {F1, F2}},
    298     {"fpcvt.fxu.trunc.s3",      f, OpXbX6Sf (1, 0, 0x1b, 3), {F1, F2}},
    299 
    300     {"fcmp.eq.s0",        f2, OpRaRbTaSf (4, 0, 0, 0, 0), {P1, P2, F2, F3}},
    301     {"fcmp.eq",           f2, OpRaRbTaSf (4, 0, 0, 0, 0), {P1, P2, F2, F3}, PSEUDO},
    302     {"fcmp.eq.s1",        f2, OpRaRbTaSf (4, 0, 0, 0, 1), {P1, P2, F2, F3}},
    303     {"fcmp.eq.s2",        f2, OpRaRbTaSf (4, 0, 0, 0, 2), {P1, P2, F2, F3}},
    304     {"fcmp.eq.s3",        f2, OpRaRbTaSf (4, 0, 0, 0, 3), {P1, P2, F2, F3}},
    305     {"fcmp.lt.s0",        f2, OpRaRbTaSf (4, 0, 1, 0, 0), {P1, P2, F2, F3}},
    306     {"fcmp.lt",           f2, OpRaRbTaSf (4, 0, 1, 0, 0), {P1, P2, F2, F3}, PSEUDO},
    307     {"fcmp.lt.s1",        f2, OpRaRbTaSf (4, 0, 1, 0, 1), {P1, P2, F2, F3}},
    308     {"fcmp.lt.s2",        f2, OpRaRbTaSf (4, 0, 1, 0, 2), {P1, P2, F2, F3}},
    309     {"fcmp.lt.s3",        f2, OpRaRbTaSf (4, 0, 1, 0, 3), {P1, P2, F2, F3}},
    310     {"fcmp.le.s0",        f2, OpRaRbTaSf (4, 1, 0, 0, 0), {P1, P2, F2, F3}},
    311     {"fcmp.le",           f2, OpRaRbTaSf (4, 1, 0, 0, 0), {P1, P2, F2, F3}, PSEUDO},
    312     {"fcmp.le.s1",        f2, OpRaRbTaSf (4, 1, 0, 0, 1), {P1, P2, F2, F3}},
    313     {"fcmp.le.s2",        f2, OpRaRbTaSf (4, 1, 0, 0, 2), {P1, P2, F2, F3}},
    314     {"fcmp.le.s3",        f2, OpRaRbTaSf (4, 1, 0, 0, 3), {P1, P2, F2, F3}},
    315     {"fcmp.unord.s0",     f2, OpRaRbTaSf (4, 1, 1, 0, 0), {P1, P2, F2, F3}},
    316     {"fcmp.unord",        f2, OpRaRbTaSf (4, 1, 1, 0, 0), {P1, P2, F2, F3}, PSEUDO},
    317     {"fcmp.unord.s1",     f2, OpRaRbTaSf (4, 1, 1, 0, 1), {P1, P2, F2, F3}},
    318     {"fcmp.unord.s2",     f2, OpRaRbTaSf (4, 1, 1, 0, 2), {P1, P2, F2, F3}},
    319     {"fcmp.unord.s3",     f2, OpRaRbTaSf (4, 1, 1, 0, 3), {P1, P2, F2, F3}},
    320     {"fcmp.eq.unc.s0",    f2, OpRaRbTaSf (4, 0, 0, 1, 0), {P1, P2, F2, F3}},
    321     {"fcmp.eq.unc",       f2, OpRaRbTaSf (4, 0, 0, 1, 0), {P1, P2, F2, F3}, PSEUDO},
    322     {"fcmp.eq.unc.s1",    f2, OpRaRbTaSf (4, 0, 0, 1, 1), {P1, P2, F2, F3}},
    323     {"fcmp.eq.unc.s2",    f2, OpRaRbTaSf (4, 0, 0, 1, 2), {P1, P2, F2, F3}},
    324     {"fcmp.eq.unc.s3",    f2, OpRaRbTaSf (4, 0, 0, 1, 3), {P1, P2, F2, F3}},
    325     {"fcmp.lt.unc.s0",    f2, OpRaRbTaSf (4, 0, 1, 1, 0), {P1, P2, F2, F3}},
    326     {"fcmp.lt.unc",       f2, OpRaRbTaSf (4, 0, 1, 1, 0), {P1, P2, F2, F3}, PSEUDO},
    327     {"fcmp.lt.unc.s1",    f2, OpRaRbTaSf (4, 0, 1, 1, 1), {P1, P2, F2, F3}},
    328     {"fcmp.lt.unc.s2",    f2, OpRaRbTaSf (4, 0, 1, 1, 2), {P1, P2, F2, F3}},
    329     {"fcmp.lt.unc.s3",    f2, OpRaRbTaSf (4, 0, 1, 1, 3), {P1, P2, F2, F3}},
    330     {"fcmp.le.unc.s0",    f2, OpRaRbTaSf (4, 1, 0, 1, 0), {P1, P2, F2, F3}},
    331     {"fcmp.le.unc",       f2, OpRaRbTaSf (4, 1, 0, 1, 0), {P1, P2, F2, F3}, PSEUDO},
    332     {"fcmp.le.unc.s1",    f2, OpRaRbTaSf (4, 1, 0, 1, 1), {P1, P2, F2, F3}},
    333     {"fcmp.le.unc.s2",    f2, OpRaRbTaSf (4, 1, 0, 1, 2), {P1, P2, F2, F3}},
    334     {"fcmp.le.unc.s3",    f2, OpRaRbTaSf (4, 1, 0, 1, 3), {P1, P2, F2, F3}},
    335     {"fcmp.unord.unc.s0", f2, OpRaRbTaSf (4, 1, 1, 1, 0), {P1, P2, F2, F3}},
    336     {"fcmp.unord.unc",    f2, OpRaRbTaSf (4, 1, 1, 1, 0), {P1, P2, F2, F3}, PSEUDO},
    337     {"fcmp.unord.unc.s1", f2, OpRaRbTaSf (4, 1, 1, 1, 1), {P1, P2, F2, F3}},
    338     {"fcmp.unord.unc.s2", f2, OpRaRbTaSf (4, 1, 1, 1, 2), {P1, P2, F2, F3}},
    339     {"fcmp.unord.unc.s3", f2, OpRaRbTaSf (4, 1, 1, 1, 3), {P1, P2, F2, F3}},
     87    /* F-type instruction encodings (sorted according to major opcode).  */
     88
     89    {"frcpa.s0",        f2, OpXbQSf (0, 1, 0, 0), {F1, P2, F2, F3}, EMPTY},
     90    {"frcpa",           f2, OpXbQSf (0, 1, 0, 0), {F1, P2, F2, F3}, PSEUDO, 0, NULL},
     91    {"frcpa.s1",        f2, OpXbQSf (0, 1, 0, 1), {F1, P2, F2, F3}, EMPTY},
     92    {"frcpa.s2",        f2, OpXbQSf (0, 1, 0, 2), {F1, P2, F2, F3}, EMPTY},
     93    {"frcpa.s3",        f2, OpXbQSf (0, 1, 0, 3), {F1, P2, F2, F3}, EMPTY},
     94
     95    {"frsqrta.s0",      f2, OpXbQSf (0, 1, 1, 0), {F1, P2, F3}, EMPTY},
     96    {"frsqrta",         f2, OpXbQSf (0, 1, 1, 0), {F1, P2, F3}, PSEUDO, 0, NULL},
     97    {"frsqrta.s1",      f2, OpXbQSf (0, 1, 1, 1), {F1, P2, F3}, EMPTY},
     98    {"frsqrta.s2",      f2, OpXbQSf (0, 1, 1, 2), {F1, P2, F3}, EMPTY},
     99    {"frsqrta.s3",      f2, OpXbQSf (0, 1, 1, 3), {F1, P2, F3}, EMPTY},
     100
     101    {"fmin.s0",         f, OpXbX6Sf (0, 0, 0x14, 0), {F1, F2, F3}, EMPTY},
     102    {"fmin",            f, OpXbX6Sf (0, 0, 0x14, 0), {F1, F2, F3}, PSEUDO, 0, NULL},
     103    {"fmin.s1",         f, OpXbX6Sf (0, 0, 0x14, 1), {F1, F2, F3}, EMPTY},
     104    {"fmin.s2",         f, OpXbX6Sf (0, 0, 0x14, 2), {F1, F2, F3}, EMPTY},
     105    {"fmin.s3",         f, OpXbX6Sf (0, 0, 0x14, 3), {F1, F2, F3}, EMPTY},
     106    {"fmax.s0",         f, OpXbX6Sf (0, 0, 0x15, 0), {F1, F2, F3}, EMPTY},
     107    {"fmax",            f, OpXbX6Sf (0, 0, 0x15, 0), {F1, F2, F3}, PSEUDO, 0, NULL},
     108    {"fmax.s1",         f, OpXbX6Sf (0, 0, 0x15, 1), {F1, F2, F3}, EMPTY},
     109    {"fmax.s2",         f, OpXbX6Sf (0, 0, 0x15, 2), {F1, F2, F3}, EMPTY},
     110    {"fmax.s3",         f, OpXbX6Sf (0, 0, 0x15, 3), {F1, F2, F3}, EMPTY},
     111    {"famin.s0",        f, OpXbX6Sf (0, 0, 0x16, 0), {F1, F2, F3}, EMPTY},
     112    {"famin",           f, OpXbX6Sf (0, 0, 0x16, 0), {F1, F2, F3}, PSEUDO, 0, NULL},
     113    {"famin.s1",        f, OpXbX6Sf (0, 0, 0x16, 1), {F1, F2, F3}, EMPTY},
     114    {"famin.s2",        f, OpXbX6Sf (0, 0, 0x16, 2), {F1, F2, F3}, EMPTY},
     115    {"famin.s3",        f, OpXbX6Sf (0, 0, 0x16, 3), {F1, F2, F3}, EMPTY},
     116    {"famax.s0",        f, OpXbX6Sf (0, 0, 0x17, 0), {F1, F2, F3}, EMPTY},
     117    {"famax",           f, OpXbX6Sf (0, 0, 0x17, 0), {F1, F2, F3}, PSEUDO, 0, NULL},
     118    {"famax.s1",        f, OpXbX6Sf (0, 0, 0x17, 1), {F1, F2, F3}, EMPTY},
     119    {"famax.s2",        f, OpXbX6Sf (0, 0, 0x17, 2), {F1, F2, F3}, EMPTY},
     120    {"famax.s3",        f, OpXbX6Sf (0, 0, 0x17, 3), {F1, F2, F3}, EMPTY},
     121
     122    {"mov",             f, OpXbX6 (0, 0, 0x10), {F1, F3}, PSEUDO | F2_EQ_F3, 0, NULL},
     123    {"fabs",            f, OpXbX6F2 (0, 0, 0x10, 0), {F1, F3}, PSEUDO, 0, NULL},
     124    {"fneg",            f, OpXbX6   (0, 0, 0x11), {F1, F3}, PSEUDO | F2_EQ_F3, 0, NULL},
     125    {"fnegabs",         f, OpXbX6F2 (0, 0, 0x11, 0), {F1, F3}, PSEUDO, 0, NULL},
     126    {"fmerge.s",        f, OpXbX6   (0, 0, 0x10), {F1, F2, F3}, EMPTY},
     127    {"fmerge.ns",       f, OpXbX6   (0, 0, 0x11), {F1, F2, F3}, EMPTY},
     128
     129    {"fmerge.se",       f, OpXbX6 (0, 0, 0x12), {F1, F2, F3}, EMPTY},
     130    {"fmix.lr",         f, OpXbX6 (0, 0, 0x39), {F1, F2, F3}, EMPTY},
     131    {"fmix.r",          f, OpXbX6 (0, 0, 0x3a), {F1, F2, F3}, EMPTY},
     132    {"fmix.l",          f, OpXbX6 (0, 0, 0x3b), {F1, F2, F3}, EMPTY},
     133    {"fsxt.r",          f, OpXbX6 (0, 0, 0x3c), {F1, F2, F3}, EMPTY},
     134    {"fsxt.l",          f, OpXbX6 (0, 0, 0x3d), {F1, F2, F3}, EMPTY},
     135    {"fpack",           f, OpXbX6 (0, 0, 0x28), {F1, F2, F3}, EMPTY},
     136    {"fswap",           f, OpXbX6 (0, 0, 0x34), {F1, F2, F3}, EMPTY},
     137    {"fswap.nl",        f, OpXbX6 (0, 0, 0x35), {F1, F2, F3}, EMPTY},
     138    {"fswap.nr",        f, OpXbX6 (0, 0, 0x36), {F1, F2, F3}, EMPTY},
     139    {"fand",            f, OpXbX6 (0, 0, 0x2c), {F1, F2, F3}, EMPTY},
     140    {"fandcm",          f, OpXbX6 (0, 0, 0x2d), {F1, F2, F3}, EMPTY},
     141    {"for",             f, OpXbX6 (0, 0, 0x2e), {F1, F2, F3}, EMPTY},
     142    {"fxor",            f, OpXbX6 (0, 0, 0x2f), {F1, F2, F3}, EMPTY},
     143
     144    {"fcvt.fx.s0",              f, OpXbX6Sf (0, 0, 0x18, 0), {F1, F2}, EMPTY},
     145    {"fcvt.fx",                 f, OpXbX6Sf (0, 0, 0x18, 0), {F1, F2}, PSEUDO, 0, NULL},
     146    {"fcvt.fx.s1",              f, OpXbX6Sf (0, 0, 0x18, 1), {F1, F2}, EMPTY},
     147    {"fcvt.fx.s2",              f, OpXbX6Sf (0, 0, 0x18, 2), {F1, F2}, EMPTY},
     148    {"fcvt.fx.s3",              f, OpXbX6Sf (0, 0, 0x18, 3), {F1, F2}, EMPTY},
     149    {"fcvt.fxu.s0",             f, OpXbX6Sf (0, 0, 0x19, 0), {F1, F2}, EMPTY},
     150    {"fcvt.fxu",                f, OpXbX6Sf (0, 0, 0x19, 0), {F1, F2}, PSEUDO, 0, NULL},
     151    {"fcvt.fxu.s1",             f, OpXbX6Sf (0, 0, 0x19, 1), {F1, F2}, EMPTY},
     152    {"fcvt.fxu.s2",             f, OpXbX6Sf (0, 0, 0x19, 2), {F1, F2}, EMPTY},
     153    {"fcvt.fxu.s3",             f, OpXbX6Sf (0, 0, 0x19, 3), {F1, F2}, EMPTY},
     154    {"fcvt.fx.trunc.s0",        f, OpXbX6Sf (0, 0, 0x1a, 0), {F1, F2}, EMPTY},
     155    {"fcvt.fx.trunc",           f, OpXbX6Sf (0, 0, 0x1a, 0), {F1, F2}, PSEUDO, 0, NULL},
     156    {"fcvt.fx.trunc.s1",        f, OpXbX6Sf (0, 0, 0x1a, 1), {F1, F2}, EMPTY},
     157    {"fcvt.fx.trunc.s2",        f, OpXbX6Sf (0, 0, 0x1a, 2), {F1, F2}, EMPTY},
     158    {"fcvt.fx.trunc.s3",        f, OpXbX6Sf (0, 0, 0x1a, 3), {F1, F2}, EMPTY},
     159    {"fcvt.fxu.trunc.s0",       f, OpXbX6Sf (0, 0, 0x1b, 0), {F1, F2}, EMPTY},
     160    {"fcvt.fxu.trunc",          f, OpXbX6Sf (0, 0, 0x1b, 0), {F1, F2}, PSEUDO, 0, NULL},
     161    {"fcvt.fxu.trunc.s1",       f, OpXbX6Sf (0, 0, 0x1b, 1), {F1, F2}, EMPTY},
     162    {"fcvt.fxu.trunc.s2",       f, OpXbX6Sf (0, 0, 0x1b, 2), {F1, F2}, EMPTY},
     163    {"fcvt.fxu.trunc.s3",       f, OpXbX6Sf (0, 0, 0x1b, 3), {F1, F2}, EMPTY},
     164
     165    {"fcvt.xf",         f, OpXbX6 (0, 0, 0x1c), {F1, F2}, EMPTY},
     166
     167    {"fsetc.s0",        f0, OpXbX6Sf (0, 0, 0x04, 0), {IMMU7a, IMMU7b}, EMPTY},
     168    {"fsetc",           f0, OpXbX6Sf (0, 0, 0x04, 0), {IMMU7a, IMMU7b}, PSEUDO, 0, NULL},
     169    {"fsetc.s1",        f0, OpXbX6Sf (0, 0, 0x04, 1), {IMMU7a, IMMU7b}, EMPTY},
     170    {"fsetc.s2",        f0, OpXbX6Sf (0, 0, 0x04, 2), {IMMU7a, IMMU7b}, EMPTY},
     171    {"fsetc.s3",        f0, OpXbX6Sf (0, 0, 0x04, 3), {IMMU7a, IMMU7b}, EMPTY},
     172    {"fclrf.s0",        f0, OpXbX6Sf (0, 0, 0x05, 0), {}, EMPTY},
     173    {"fclrf",           f0, OpXbX6Sf (0, 0, 0x05, 0), {0}, PSEUDO, 0, NULL},
     174    {"fclrf.s1",        f0, OpXbX6Sf (0, 0, 0x05, 1), {}, EMPTY},
     175    {"fclrf.s2",        f0, OpXbX6Sf (0, 0, 0x05, 2), {}, EMPTY},
     176    {"fclrf.s3",        f0, OpXbX6Sf (0, 0, 0x05, 3), {}, EMPTY},
     177    {"fchkf.s0",        f0, OpXbX6Sf (0, 0, 0x08, 0), {TGT25}, EMPTY},
     178    {"fchkf",           f0, OpXbX6Sf (0, 0, 0x08, 0), {TGT25}, PSEUDO, 0, NULL},
     179    {"fchkf.s1",        f0, OpXbX6Sf (0, 0, 0x08, 1), {TGT25}, EMPTY},
     180    {"fchkf.s2",        f0, OpXbX6Sf (0, 0, 0x08, 2), {TGT25}, EMPTY},
     181    {"fchkf.s3",        f0, OpXbX6Sf (0, 0, 0x08, 3), {TGT25}, EMPTY},
     182
     183    {"break.f",         f0, OpXbX6 (0, 0, 0x00), {IMMU21}, EMPTY},
     184    {"nop.f",           f0, OpXbX6Y (0, 0, 0x01, 0), {IMMU21}, EMPTY},
     185    {"hint.f",          f0, OpXbX6Y (0, 0, 0x01, 1), {IMMU21}, EMPTY},
     186
     187    {"fprcpa.s0",       f2, OpXbQSf (1, 1, 0, 0), {F1, P2, F2, F3}, EMPTY},
     188    {"fprcpa",          f2, OpXbQSf (1, 1, 0, 0), {F1, P2, F2, F3}, PSEUDO, 0, NULL},
     189    {"fprcpa.s1",       f2, OpXbQSf (1, 1, 0, 1), {F1, P2, F2, F3}, EMPTY},
     190    {"fprcpa.s2",       f2, OpXbQSf (1, 1, 0, 2), {F1, P2, F2, F3}, EMPTY},
     191    {"fprcpa.s3",       f2, OpXbQSf (1, 1, 0, 3), {F1, P2, F2, F3}, EMPTY},
     192
     193    {"fprsqrta.s0",     f2, OpXbQSf (1, 1, 1, 0), {F1, P2, F3}, EMPTY},
     194    {"fprsqrta",        f2, OpXbQSf (1, 1, 1, 0), {F1, P2, F3}, PSEUDO, 0, NULL},
     195    {"fprsqrta.s1",     f2, OpXbQSf (1, 1, 1, 1), {F1, P2, F3}, EMPTY},
     196    {"fprsqrta.s2",     f2, OpXbQSf (1, 1, 1, 2), {F1, P2, F3}, EMPTY},
     197    {"fprsqrta.s3",     f2, OpXbQSf (1, 1, 1, 3), {F1, P2, F3}, EMPTY},
     198
     199    {"fpmin.s0",        f, OpXbX6Sf (1, 0, 0x14, 0), {F1, F2, F3}, EMPTY},
     200    {"fpmin",           f, OpXbX6Sf (1, 0, 0x14, 0), {F1, F2, F3}, PSEUDO, 0, NULL},
     201    {"fpmin.s1",        f, OpXbX6Sf (1, 0, 0x14, 1), {F1, F2, F3}, EMPTY},
     202    {"fpmin.s2",        f, OpXbX6Sf (1, 0, 0x14, 2), {F1, F2, F3}, EMPTY},
     203    {"fpmin.s3",        f, OpXbX6Sf (1, 0, 0x14, 3), {F1, F2, F3}, EMPTY},
     204    {"fpmax.s0",        f, OpXbX6Sf (1, 0, 0x15, 0), {F1, F2, F3}, EMPTY},
     205    {"fpmax",           f, OpXbX6Sf (1, 0, 0x15, 0), {F1, F2, F3}, PSEUDO, 0, NULL},
     206    {"fpmax.s1",        f, OpXbX6Sf (1, 0, 0x15, 1), {F1, F2, F3}, EMPTY},
     207    {"fpmax.s2",        f, OpXbX6Sf (1, 0, 0x15, 2), {F1, F2, F3}, EMPTY},
     208    {"fpmax.s3",        f, OpXbX6Sf (1, 0, 0x15, 3), {F1, F2, F3}, EMPTY},
     209    {"fpamin.s0",       f, OpXbX6Sf (1, 0, 0x16, 0), {F1, F2, F3}, EMPTY},
     210    {"fpamin",          f, OpXbX6Sf (1, 0, 0x16, 0), {F1, F2, F3}, PSEUDO, 0, NULL},
     211    {"fpamin.s1",       f, OpXbX6Sf (1, 0, 0x16, 1), {F1, F2, F3}, EMPTY},
     212    {"fpamin.s2",       f, OpXbX6Sf (1, 0, 0x16, 2), {F1, F2, F3}, EMPTY},
     213    {"fpamin.s3",       f, OpXbX6Sf (1, 0, 0x16, 3), {F1, F2, F3}, EMPTY},
     214    {"fpamax.s0",       f, OpXbX6Sf (1, 0, 0x17, 0), {F1, F2, F3}, EMPTY},
     215    {"fpamax",          f, OpXbX6Sf (1, 0, 0x17, 0), {F1, F2, F3}, PSEUDO, 0, NULL},
     216    {"fpamax.s1",       f, OpXbX6Sf (1, 0, 0x17, 1), {F1, F2, F3}, EMPTY},
     217    {"fpamax.s2",       f, OpXbX6Sf (1, 0, 0x17, 2), {F1, F2, F3}, EMPTY},
     218    {"fpamax.s3",       f, OpXbX6Sf (1, 0, 0x17, 3), {F1, F2, F3}, EMPTY},
     219
     220    {"fpcmp.eq.s0",     f, OpXbX6Sf (1, 0, 0x30, 0), {F1, F2, F3}, EMPTY},
     221    {"fpcmp.eq",        f, OpXbX6Sf (1, 0, 0x30, 0), {F1, F2, F3}, PSEUDO, 0, NULL},
     222    {"fpcmp.eq.s1",     f, OpXbX6Sf (1, 0, 0x30, 1), {F1, F2, F3}, EMPTY},
     223    {"fpcmp.eq.s2",     f, OpXbX6Sf (1, 0, 0x30, 2), {F1, F2, F3}, EMPTY},
     224    {"fpcmp.eq.s3",     f, OpXbX6Sf (1, 0, 0x30, 3), {F1, F2, F3}, EMPTY},
     225    {"fpcmp.lt.s0",     f, OpXbX6Sf (1, 0, 0x31, 0), {F1, F2, F3}, EMPTY},
     226    {"fpcmp.lt",        f, OpXbX6Sf (1, 0, 0x31, 0), {F1, F2, F3}, PSEUDO, 0, NULL},
     227    {"fpcmp.lt.s1",     f, OpXbX6Sf (1, 0, 0x31, 1), {F1, F2, F3}, EMPTY},
     228    {"fpcmp.lt.s2",     f, OpXbX6Sf (1, 0, 0x31, 2), {F1, F2, F3}, EMPTY},
     229    {"fpcmp.lt.s3",     f, OpXbX6Sf (1, 0, 0x31, 3), {F1, F2, F3}, EMPTY},
     230    {"fpcmp.le.s0",     f, OpXbX6Sf (1, 0, 0x32, 0), {F1, F2, F3}, EMPTY},
     231    {"fpcmp.le",        f, OpXbX6Sf (1, 0, 0x32, 0), {F1, F2, F3}, PSEUDO, 0, NULL},
     232    {"fpcmp.le.s1",     f, OpXbX6Sf (1, 0, 0x32, 1), {F1, F2, F3}, EMPTY},
     233    {"fpcmp.le.s2",     f, OpXbX6Sf (1, 0, 0x32, 2), {F1, F2, F3}, EMPTY},
     234    {"fpcmp.le.s3",     f, OpXbX6Sf (1, 0, 0x32, 3), {F1, F2, F3}, EMPTY},
     235    {"fpcmp.gt.s0",     f, OpXbX6Sf (1, 0, 0x31, 0), {F1, F3, F2}, PSEUDO, 0, NULL},
     236    {"fpcmp.gt",        f, OpXbX6Sf (1, 0, 0x31, 0), {F1, F3, F2}, PSEUDO, 0, NULL},
     237    {"fpcmp.gt.s1",     f, OpXbX6Sf (1, 0, 0x31, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
     238    {"fpcmp.gt.s2",     f, OpXbX6Sf (1, 0, 0x31, 2), {F1, F3, F2}, PSEUDO, 0, NULL},
     239    {"fpcmp.gt.s3",     f, OpXbX6Sf (1, 0, 0x31, 3), {F1, F3, F2}, PSEUDO, 0, NULL},
     240    {"fpcmp.ge.s0",     f, OpXbX6Sf (1, 0, 0x32, 0), {F1, F3, F2}, PSEUDO, 0, NULL},
     241    {"fpcmp.ge",        f, OpXbX6Sf (1, 0, 0x32, 0), {F1, F3, F2}, PSEUDO, 0, NULL},
     242    {"fpcmp.ge.s1",     f, OpXbX6Sf (1, 0, 0x32, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
     243    {"fpcmp.ge.s2",     f, OpXbX6Sf (1, 0, 0x32, 2), {F1, F3, F2}, PSEUDO, 0, NULL},
     244    {"fpcmp.ge.s3",     f, OpXbX6Sf (1, 0, 0x32, 3), {F1, F3, F2}, PSEUDO, 0, NULL},
     245    {"fpcmp.unord.s0",  f, OpXbX6Sf (1, 0, 0x33, 0), {F1, F2, F3}, EMPTY},
     246    {"fpcmp.unord",     f, OpXbX6Sf (1, 0, 0x33, 0), {F1, F2, F3}, PSEUDO, 0, NULL},
     247    {"fpcmp.unord.s1",  f, OpXbX6Sf (1, 0, 0x33, 1), {F1, F2, F3}, EMPTY},
     248    {"fpcmp.unord.s2",  f, OpXbX6Sf (1, 0, 0x33, 2), {F1, F2, F3}, EMPTY},
     249    {"fpcmp.unord.s3",  f, OpXbX6Sf (1, 0, 0x33, 3), {F1, F2, F3}, EMPTY},
     250    {"fpcmp.neq.s0",    f, OpXbX6Sf (1, 0, 0x34, 0), {F1, F2, F3}, EMPTY},
     251    {"fpcmp.neq",       f, OpXbX6Sf (1, 0, 0x34, 0), {F1, F2, F3}, PSEUDO, 0, NULL},
     252    {"fpcmp.neq.s1",    f, OpXbX6Sf (1, 0, 0x34, 1), {F1, F2, F3}, EMPTY},
     253    {"fpcmp.neq.s2",    f, OpXbX6Sf (1, 0, 0x34, 2), {F1, F2, F3}, EMPTY},
     254    {"fpcmp.neq.s3",    f, OpXbX6Sf (1, 0, 0x34, 3), {F1, F2, F3}, EMPTY},
     255    {"fpcmp.nlt.s0",    f, OpXbX6Sf (1, 0, 0x35, 0), {F1, F2, F3}, EMPTY},
     256    {"fpcmp.nlt",       f, OpXbX6Sf (1, 0, 0x35, 0), {F1, F2, F3}, PSEUDO, 0, NULL},
     257    {"fpcmp.nlt.s1",    f, OpXbX6Sf (1, 0, 0x35, 1), {F1, F2, F3}, EMPTY},
     258    {"fpcmp.nlt.s2",    f, OpXbX6Sf (1, 0, 0x35, 2), {F1, F2, F3}, EMPTY},
     259    {"fpcmp.nlt.s3",    f, OpXbX6Sf (1, 0, 0x35, 3), {F1, F2, F3}, EMPTY},
     260    {"fpcmp.nle.s0",    f, OpXbX6Sf (1, 0, 0x36, 0), {F1, F2, F3}, EMPTY},
     261    {"fpcmp.nle",       f, OpXbX6Sf (1, 0, 0x36, 0), {F1, F2, F3}, PSEUDO, 0, NULL},
     262    {"fpcmp.nle.s1",    f, OpXbX6Sf (1, 0, 0x36, 1), {F1, F2, F3}, EMPTY},
     263    {"fpcmp.nle.s2",    f, OpXbX6Sf (1, 0, 0x36, 2), {F1, F2, F3}, EMPTY},
     264    {"fpcmp.nle.s3",    f, OpXbX6Sf (1, 0, 0x36, 3), {F1, F2, F3}, EMPTY},
     265    {"fpcmp.ngt.s0",    f, OpXbX6Sf (1, 0, 0x35, 0), {F1, F3, F2}, PSEUDO, 0, NULL},
     266    {"fpcmp.ngt",       f, OpXbX6Sf (1, 0, 0x35, 0), {F1, F3, F2}, PSEUDO, 0, NULL},
     267    {"fpcmp.ngt.s1",    f, OpXbX6Sf (1, 0, 0x35, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
     268    {"fpcmp.ngt.s2",    f, OpXbX6Sf (1, 0, 0x35, 2), {F1, F3, F2}, PSEUDO, 0, NULL},
     269    {"fpcmp.ngt.s3",    f, OpXbX6Sf (1, 0, 0x35, 3), {F1, F3, F2}, PSEUDO, 0, NULL},
     270    {"fpcmp.nge.s0",    f, OpXbX6Sf (1, 0, 0x36, 0), {F1, F3, F2}, PSEUDO, 0, NULL},
     271    {"fpcmp.nge",       f, OpXbX6Sf (1, 0, 0x36, 0), {F1, F3, F2}, PSEUDO, 0, NULL},
     272    {"fpcmp.nge.s1",    f, OpXbX6Sf (1, 0, 0x36, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
     273    {"fpcmp.nge.s2",    f, OpXbX6Sf (1, 0, 0x36, 2), {F1, F3, F2}, PSEUDO, 0, NULL},
     274    {"fpcmp.nge.s3",    f, OpXbX6Sf (1, 0, 0x36, 3), {F1, F3, F2}, PSEUDO, 0, NULL},
     275    {"fpcmp.ord.s0",    f, OpXbX6Sf (1, 0, 0x37, 0), {F1, F2, F3}, EMPTY},
     276    {"fpcmp.ord",       f, OpXbX6Sf (1, 0, 0x37, 0), {F1, F2, F3}, PSEUDO, 0, NULL},
     277    {"fpcmp.ord.s1",    f, OpXbX6Sf (1, 0, 0x37, 1), {F1, F2, F3}, EMPTY},
     278    {"fpcmp.ord.s2",    f, OpXbX6Sf (1, 0, 0x37, 2), {F1, F2, F3}, EMPTY},
     279    {"fpcmp.ord.s3",    f, OpXbX6Sf (1, 0, 0x37, 3), {F1, F2, F3}, EMPTY},
     280
     281    {"fpabs",           f, OpXbX6F2 (1, 0, 0x10, 0), {F1, F3}, PSEUDO, 0, NULL},
     282    {"fpneg",           f, OpXbX6   (1, 0, 0x11), {F1, F3}, PSEUDO | F2_EQ_F3, 0, NULL},
     283    {"fpnegabs",        f, OpXbX6F2 (1, 0, 0x11, 0), {F1, F3}, PSEUDO, 0, NULL},
     284    {"fpmerge.s",       f, OpXbX6   (1, 0, 0x10), {F1, F2, F3}, EMPTY},
     285    {"fpmerge.ns",      f, OpXbX6   (1, 0, 0x11), {F1, F2, F3}, EMPTY},
     286    {"fpmerge.se",      f, OpXbX6 (1, 0, 0x12), {F1, F2, F3}, EMPTY},
     287
     288    {"fpcvt.fx.s0",             f, OpXbX6Sf (1, 0, 0x18, 0), {F1, F2}, EMPTY},
     289    {"fpcvt.fx",                f, OpXbX6Sf (1, 0, 0x18, 0), {F1, F2}, PSEUDO, 0, NULL},
     290    {"fpcvt.fx.s1",             f, OpXbX6Sf (1, 0, 0x18, 1), {F1, F2}, EMPTY},
     291    {"fpcvt.fx.s2",             f, OpXbX6Sf (1, 0, 0x18, 2), {F1, F2}, EMPTY},
     292    {"fpcvt.fx.s3",             f, OpXbX6Sf (1, 0, 0x18, 3), {F1, F2}, EMPTY},
     293    {"fpcvt.fxu.s0",            f, OpXbX6Sf (1, 0, 0x19, 0), {F1, F2}, EMPTY},
     294    {"fpcvt.fxu",               f, OpXbX6Sf (1, 0, 0x19, 0), {F1, F2}, PSEUDO, 0, NULL},
     295    {"fpcvt.fxu.s1",            f, OpXbX6Sf (1, 0, 0x19, 1), {F1, F2}, EMPTY},
     296    {"fpcvt.fxu.s2",            f, OpXbX6Sf (1, 0, 0x19, 2), {F1, F2}, EMPTY},
     297    {"fpcvt.fxu.s3",            f, OpXbX6Sf (1, 0, 0x19, 3), {F1, F2}, EMPTY},
     298    {"fpcvt.fx.trunc.s0",       f, OpXbX6Sf (1, 0, 0x1a, 0), {F1, F2}, EMPTY},
     299    {"fpcvt.fx.trunc",          f, OpXbX6Sf (1, 0, 0x1a, 0), {F1, F2}, PSEUDO, 0, NULL},
     300    {"fpcvt.fx.trunc.s1",       f, OpXbX6Sf (1, 0, 0x1a, 1), {F1, F2}, EMPTY},
     301    {"fpcvt.fx.trunc.s2",       f, OpXbX6Sf (1, 0, 0x1a, 2), {F1, F2}, EMPTY},
     302    {"fpcvt.fx.trunc.s3",       f, OpXbX6Sf (1, 0, 0x1a, 3), {F1, F2}, EMPTY},
     303    {"fpcvt.fxu.trunc.s0",      f, OpXbX6Sf (1, 0, 0x1b, 0), {F1, F2}, EMPTY},
     304    {"fpcvt.fxu.trunc",         f, OpXbX6Sf (1, 0, 0x1b, 0), {F1, F2}, PSEUDO, 0, NULL},
     305    {"fpcvt.fxu.trunc.s1",      f, OpXbX6Sf (1, 0, 0x1b, 1), {F1, F2}, EMPTY},
     306    {"fpcvt.fxu.trunc.s2",      f, OpXbX6Sf (1, 0, 0x1b, 2), {F1, F2}, EMPTY},
     307    {"fpcvt.fxu.trunc.s3",      f, OpXbX6Sf (1, 0, 0x1b, 3), {F1, F2}, EMPTY},
     308
     309    {"fcmp.eq.s0",        f2, OpRaRbTaSf (4, 0, 0, 0, 0), {P1, P2, F2, F3}, EMPTY},
     310    {"fcmp.eq",           f2, OpRaRbTaSf (4, 0, 0, 0, 0), {P1, P2, F2, F3}, PSEUDO, 0, NULL},
     311    {"fcmp.eq.s1",        f2, OpRaRbTaSf (4, 0, 0, 0, 1), {P1, P2, F2, F3}, EMPTY},
     312    {"fcmp.eq.s2",        f2, OpRaRbTaSf (4, 0, 0, 0, 2), {P1, P2, F2, F3}, EMPTY},
     313    {"fcmp.eq.s3",        f2, OpRaRbTaSf (4, 0, 0, 0, 3), {P1, P2, F2, F3}, EMPTY},
     314    {"fcmp.lt.s0",        f2, OpRaRbTaSf (4, 0, 1, 0, 0), {P1, P2, F2, F3}, EMPTY},
     315    {"fcmp.lt",           f2, OpRaRbTaSf (4, 0, 1, 0, 0), {P1, P2, F2, F3}, PSEUDO, 0, NULL},
     316    {"fcmp.lt.s1",        f2, OpRaRbTaSf (4, 0, 1, 0, 1), {P1, P2, F2, F3}, EMPTY},
     317    {"fcmp.lt.s2",        f2, OpRaRbTaSf (4, 0, 1, 0, 2), {P1, P2, F2, F3}, EMPTY},
     318    {"fcmp.lt.s3",        f2, OpRaRbTaSf (4, 0, 1, 0, 3), {P1, P2, F2, F3}, EMPTY},
     319    {"fcmp.le.s0",        f2, OpRaRbTaSf (4, 1, 0, 0, 0), {P1, P2, F2, F3}, EMPTY},
     320    {"fcmp.le",           f2, OpRaRbTaSf (4, 1, 0, 0, 0), {P1, P2, F2, F3}, PSEUDO, 0, NULL},
     321    {"fcmp.le.s1",        f2, OpRaRbTaSf (4, 1, 0, 0, 1), {P1, P2, F2, F3}, EMPTY},
     322    {"fcmp.le.s2",        f2, OpRaRbTaSf (4, 1, 0, 0, 2), {P1, P2, F2, F3}, EMPTY},
     323    {"fcmp.le.s3",        f2, OpRaRbTaSf (4, 1, 0, 0, 3), {P1, P2, F2, F3}, EMPTY},
     324    {"fcmp.unord.s0",     f2, OpRaRbTaSf (4, 1, 1, 0, 0), {P1, P2, F2, F3}, EMPTY},
     325    {"fcmp.unord",        f2, OpRaRbTaSf (4, 1, 1, 0, 0), {P1, P2, F2, F3}, PSEUDO, 0, NULL},
     326    {"fcmp.unord.s1",     f2, OpRaRbTaSf (4, 1, 1, 0, 1), {P1, P2, F2, F3}, EMPTY},
     327    {"fcmp.unord.s2",     f2, OpRaRbTaSf (4, 1, 1, 0, 2), {P1, P2, F2, F3}, EMPTY},
     328    {"fcmp.unord.s3",     f2, OpRaRbTaSf (4, 1, 1, 0, 3), {P1, P2, F2, F3}, EMPTY},
     329    {"fcmp.eq.unc.s0",    f2, OpRaRbTaSf (4, 0, 0, 1, 0), {P1, P2, F2, F3}, EMPTY},
     330    {"fcmp.eq.unc",       f2, OpRaRbTaSf (4, 0, 0, 1, 0), {P1, P2, F2, F3}, PSEUDO, 0, NULL},
     331    {"fcmp.eq.unc.s1",    f2, OpRaRbTaSf (4, 0, 0, 1, 1), {P1, P2, F2, F3}, EMPTY},
     332    {"fcmp.eq.unc.s2",    f2, OpRaRbTaSf (4, 0, 0, 1, 2), {P1, P2, F2, F3}, EMPTY},
     333    {"fcmp.eq.unc.s3",    f2, OpRaRbTaSf (4, 0, 0, 1, 3), {P1, P2, F2, F3}, EMPTY},
     334    {"fcmp.lt.unc.s0",    f2, OpRaRbTaSf (4, 0, 1, 1, 0), {P1, P2, F2, F3}, EMPTY},
     335    {"fcmp.lt.unc",       f2, OpRaRbTaSf (4, 0, 1, 1, 0), {P1, P2, F2, F3}, PSEUDO, 0, NULL},
     336    {"fcmp.lt.unc.s1",    f2, OpRaRbTaSf (4, 0, 1, 1, 1), {P1, P2, F2, F3}, EMPTY},
     337    {"fcmp.lt.unc.s2",    f2, OpRaRbTaSf (4, 0, 1, 1, 2), {P1, P2, F2, F3}, EMPTY},
     338    {"fcmp.lt.unc.s3",    f2, OpRaRbTaSf (4, 0, 1, 1, 3), {P1, P2, F2, F3}, EMPTY},
     339    {"fcmp.le.unc.s0",    f2, OpRaRbTaSf (4, 1, 0, 1, 0), {P1, P2, F2, F3}, EMPTY},
     340    {"fcmp.le.unc",       f2, OpRaRbTaSf (4, 1, 0, 1, 0), {P1, P2, F2, F3}, PSEUDO, 0, NULL},
     341    {"fcmp.le.unc.s1",    f2, OpRaRbTaSf (4, 1, 0, 1, 1), {P1, P2, F2, F3}, EMPTY},
     342    {"fcmp.le.unc.s2",    f2, OpRaRbTaSf (4, 1, 0, 1, 2), {P1, P2, F2, F3}, EMPTY},
     343    {"fcmp.le.unc.s3",    f2, OpRaRbTaSf (4, 1, 0, 1, 3), {P1, P2, F2, F3}, EMPTY},
     344    {"fcmp.unord.unc.s0", f2, OpRaRbTaSf (4, 1, 1, 1, 0), {P1, P2, F2, F3}, EMPTY},
     345    {"fcmp.unord.unc",    f2, OpRaRbTaSf (4, 1, 1, 1, 0), {P1, P2, F2, F3}, PSEUDO, 0, NULL},
     346    {"fcmp.unord.unc.s1", f2, OpRaRbTaSf (4, 1, 1, 1, 1), {P1, P2, F2, F3}, EMPTY},
     347    {"fcmp.unord.unc.s2", f2, OpRaRbTaSf (4, 1, 1, 1, 2), {P1, P2, F2, F3}, EMPTY},
     348    {"fcmp.unord.unc.s3", f2, OpRaRbTaSf (4, 1, 1, 1, 3), {P1, P2, F2, F3}, EMPTY},
    340349
    341350    /* pseudo-ops of the above */
    342     {"fcmp.gt.s0",        f2, OpRaRbTaSf (4, 0, 1, 0, 0), {P1, P2, F3, F2}},
    343     {"fcmp.gt",           f2, OpRaRbTaSf (4, 0, 1, 0, 0), {P1, P2, F3, F2}, PSEUDO},
    344     {"fcmp.gt.s1",        f2, OpRaRbTaSf (4, 0, 1, 0, 1), {P1, P2, F3, F2}},
    345     {"fcmp.gt.s2",        f2, OpRaRbTaSf (4, 0, 1, 0, 2), {P1, P2, F3, F2}},
    346     {"fcmp.gt.s3",        f2, OpRaRbTaSf (4, 0, 1, 0, 3), {P1, P2, F3, F2}},
    347     {"fcmp.ge.s0",        f2, OpRaRbTaSf (4, 1, 0, 0, 0), {P1, P2, F3, F2}},
    348     {"fcmp.ge",           f2, OpRaRbTaSf (4, 1, 0, 0, 0), {P1, P2, F3, F2}, PSEUDO},
    349     {"fcmp.ge.s1",        f2, OpRaRbTaSf (4, 1, 0, 0, 1), {P1, P2, F3, F2}},
    350     {"fcmp.ge.s2",        f2, OpRaRbTaSf (4, 1, 0, 0, 2), {P1, P2, F3, F2}},
    351     {"fcmp.ge.s3",        f2, OpRaRbTaSf (4, 1, 0, 0, 3), {P1, P2, F3, F2}},
    352     {"fcmp.neq.s0",       f2, OpRaRbTaSf (4, 0, 0, 0, 0), {P2, P1, F2, F3}},
    353     {"fcmp.neq",          f2, OpRaRbTaSf (4, 0, 0, 0, 0), {P2, P1, F2, F3}, PSEUDO},
    354     {"fcmp.neq.s1",       f2, OpRaRbTaSf (4, 0, 0, 0, 1), {P2, P1, F2, F3}},
    355     {"fcmp.neq.s2",       f2, OpRaRbTaSf (4, 0, 0, 0, 2), {P2, P1, F2, F3}},
    356     {"fcmp.neq.s3",       f2, OpRaRbTaSf (4, 0, 0, 0, 3), {P2, P1, F2, F3}},
    357     {"fcmp.nlt.s0",       f2, OpRaRbTaSf (4, 0, 1, 0, 0), {P2, P1, F2, F3}},
    358     {"fcmp.nlt",          f2, OpRaRbTaSf (4, 0, 1, 0, 0), {P2, P1, F2, F3}, PSEUDO},
    359     {"fcmp.nlt.s1",       f2, OpRaRbTaSf (4, 0, 1, 0, 1), {P2, P1, F2, F3}},
    360     {"fcmp.nlt.s2",       f2, OpRaRbTaSf (4, 0, 1, 0, 2), {P2, P1, F2, F3}},
    361     {"fcmp.nlt.s3",       f2, OpRaRbTaSf (4, 0, 1, 0, 3), {P2, P1, F2, F3}},
    362     {"fcmp.nle.s0",       f2, OpRaRbTaSf (4, 1, 0, 0, 0), {P2, P1, F2, F3}},
    363     {"fcmp.nle",          f2, OpRaRbTaSf (4, 1, 0, 0, 0), {P2, P1, F2, F3}, PSEUDO},
    364     {"fcmp.nle.s1",       f2, OpRaRbTaSf (4, 1, 0, 0, 1), {P2, P1, F2, F3}},
    365     {"fcmp.nle.s2",       f2, OpRaRbTaSf (4, 1, 0, 0, 2), {P2, P1, F2, F3}},
    366     {"fcmp.nle.s3",       f2, OpRaRbTaSf (4, 1, 0, 0, 3), {P2, P1, F2, F3}},
    367     {"fcmp.ngt.s0",       f2, OpRaRbTaSf (4, 0, 1, 0, 0), {P2, P1, F3, F2}},
    368     {"fcmp.ngt",          f2, OpRaRbTaSf (4, 0, 1, 0, 0), {P2, P1, F3, F2}, PSEUDO},
    369     {"fcmp.ngt.s1",       f2, OpRaRbTaSf (4, 0, 1, 0, 1), {P2, P1, F3, F2}},
    370     {"fcmp.ngt.s2",       f2, OpRaRbTaSf (4, 0, 1, 0, 2), {P2, P1, F3, F2}},
    371     {"fcmp.ngt.s3",       f2, OpRaRbTaSf (4, 0, 1, 0, 3), {P2, P1, F3, F2}},
    372     {"fcmp.nge.s0",       f2, OpRaRbTaSf (4, 1, 0, 0, 0), {P2, P1, F3, F2}},
    373     {"fcmp.nge",          f2, OpRaRbTaSf (4, 1, 0, 0, 0), {P2, P1, F3, F2}, PSEUDO},
    374     {"fcmp.nge.s1",       f2, OpRaRbTaSf (4, 1, 0, 0, 1), {P2, P1, F3, F2}},
    375     {"fcmp.nge.s2",       f2, OpRaRbTaSf (4, 1, 0, 0, 2), {P2, P1, F3, F2}},
    376     {"fcmp.nge.s3",       f2, OpRaRbTaSf (4, 1, 0, 0, 3), {P2, P1, F3, F2}},
    377     {"fcmp.ord.s0",       f2, OpRaRbTaSf (4, 1, 1, 0, 0), {P2, P1, F2, F3}},
    378     {"fcmp.ord",          f2, OpRaRbTaSf (4, 1, 1, 0, 0), {P2, P1, F2, F3}, PSEUDO},
    379     {"fcmp.ord.s1",       f2, OpRaRbTaSf (4, 1, 1, 0, 1), {P2, P1, F2, F3}},
    380     {"fcmp.ord.s2",       f2, OpRaRbTaSf (4, 1, 1, 0, 2), {P2, P1, F2, F3}},
    381     {"fcmp.ord.s3",       f2, OpRaRbTaSf (4, 1, 1, 0, 3), {P2, P1, F2, F3}},
    382     {"fcmp.gt.unc.s0",    f2, OpRaRbTaSf (4, 0, 1, 1, 0), {P1, P2, F3, F2}},
    383     {"fcmp.gt.unc",       f2, OpRaRbTaSf (4, 0, 1, 1, 0), {P1, P2, F3, F2}, PSEUDO},
    384     {"fcmp.gt.unc.s1",    f2, OpRaRbTaSf (4, 0, 1, 1, 1), {P1, P2, F3, F2}},
    385     {"fcmp.gt.unc.s2",    f2, OpRaRbTaSf (4, 0, 1, 1, 2), {P1, P2, F3, F2}},
    386     {"fcmp.gt.unc.s3",    f2, OpRaRbTaSf (4, 0, 1, 1, 3), {P1, P2, F3, F2}},
    387     {"fcmp.ge.unc.s0",    f2, OpRaRbTaSf (4, 1, 0, 1, 0), {P1, P2, F3, F2}},
    388     {"fcmp.ge.unc",       f2, OpRaRbTaSf (4, 1, 0, 1, 0), {P1, P2, F3, F2}, PSEUDO},
    389     {"fcmp.ge.unc.s1",    f2, OpRaRbTaSf (4, 1, 0, 1, 1), {P1, P2, F3, F2}},
    390     {"fcmp.ge.unc.s2",    f2, OpRaRbTaSf (4, 1, 0, 1, 2), {P1, P2, F3, F2}},
    391     {"fcmp.ge.unc.s3",    f2, OpRaRbTaSf (4, 1, 0, 1, 3), {P1, P2, F3, F2}},
    392     {"fcmp.neq.unc.s0",   f2, OpRaRbTaSf (4, 0, 0, 1, 0), {P2, P1, F2, F3}},
    393     {"fcmp.neq.unc",      f2, OpRaRbTaSf (4, 0, 0, 1, 0), {P2, P1, F2, F3}, PSEUDO},
    394     {"fcmp.neq.unc.s1",   f2, OpRaRbTaSf (4, 0, 0, 1, 1), {P2, P1, F2, F3}},
    395     {"fcmp.neq.unc.s2",   f2, OpRaRbTaSf (4, 0, 0, 1, 2), {P2, P1, F2, F3}},
    396     {"fcmp.neq.unc.s3",   f2, OpRaRbTaSf (4, 0, 0, 1, 3), {P2, P1, F2, F3}},
    397     {"fcmp.nlt.unc.s0",   f2, OpRaRbTaSf (4, 0, 1, 1, 0), {P2, P1, F2, F3}},
    398     {"fcmp.nlt.unc",      f2, OpRaRbTaSf (4, 0, 1, 1, 0), {P2, P1, F2, F3}, PSEUDO},
    399     {"fcmp.nlt.unc.s1",   f2, OpRaRbTaSf (4, 0, 1, 1, 1), {P2, P1, F2, F3}},
    400     {"fcmp.nlt.unc.s2",   f2, OpRaRbTaSf (4, 0, 1, 1, 2), {P2, P1, F2, F3}},
    401     {"fcmp.nlt.unc.s3",   f2, OpRaRbTaSf (4, 0, 1, 1, 3), {P2, P1, F2, F3}},
    402     {"fcmp.nle.unc.s0",   f2, OpRaRbTaSf (4, 1, 0, 1, 0), {P2, P1, F2, F3}},
    403     {"fcmp.nle.unc",      f2, OpRaRbTaSf (4, 1, 0, 1, 0), {P2, P1, F2, F3}, PSEUDO},
    404     {"fcmp.nle.unc.s1",   f2, OpRaRbTaSf (4, 1, 0, 1, 1), {P2, P1, F2, F3}},
    405     {"fcmp.nle.unc.s2",   f2, OpRaRbTaSf (4, 1, 0, 1, 2), {P2, P1, F2, F3}},
    406     {"fcmp.nle.unc.s3",   f2, OpRaRbTaSf (4, 1, 0, 1, 3), {P2, P1, F2, F3}},
    407     {"fcmp.ngt.unc.s0",   f2, OpRaRbTaSf (4, 0, 1, 1, 0), {P2, P1, F3, F2}},
    408     {"fcmp.ngt.unc",      f2, OpRaRbTaSf (4, 0, 1, 1, 0), {P2, P1, F3, F2}, PSEUDO},
    409     {"fcmp.ngt.unc.s1",   f2, OpRaRbTaSf (4, 0, 1, 1, 1), {P2, P1, F3, F2}},
    410     {"fcmp.ngt.unc.s2",   f2, OpRaRbTaSf (4, 0, 1, 1, 2), {P2, P1, F3, F2}},
    411     {"fcmp.ngt.unc.s3",   f2, OpRaRbTaSf (4, 0, 1, 1, 3), {P2, P1, F3, F2}},
    412     {"fcmp.nge.unc.s0",   f2, OpRaRbTaSf (4, 1, 0, 1, 0), {P2, P1, F3, F2}},
    413     {"fcmp.nge.unc",      f2, OpRaRbTaSf (4, 1, 0, 1, 0), {P2, P1, F3, F2}, PSEUDO},
    414     {"fcmp.nge.unc.s1",   f2, OpRaRbTaSf (4, 1, 0, 1, 1), {P2, P1, F3, F2}},
    415     {"fcmp.nge.unc.s2",   f2, OpRaRbTaSf (4, 1, 0, 1, 2), {P2, P1, F3, F2}},
    416     {"fcmp.nge.unc.s3",   f2, OpRaRbTaSf (4, 1, 0, 1, 3), {P2, P1, F3, F2}},
    417     {"fcmp.ord.unc.s0",   f2, OpRaRbTaSf (4, 1, 1, 1, 0), {P2, P1, F2, F3}},
    418     {"fcmp.ord.unc",      f2, OpRaRbTaSf (4, 1, 1, 1, 0), {P2, P1, F2, F3}, PSEUDO},
    419     {"fcmp.ord.unc.s1",   f2, OpRaRbTaSf (4, 1, 1, 1, 1), {P2, P1, F2, F3}},
    420     {"fcmp.ord.unc.s2",   f2, OpRaRbTaSf (4, 1, 1, 1, 2), {P2, P1, F2, F3}},
    421     {"fcmp.ord.unc.s3",   f2, OpRaRbTaSf (4, 1, 1, 1, 3), {P2, P1, F2, F3}},
    422 
    423     {"fclass.m",        f2, OpTa (5, 0), {P1, P2, F2, IMMU9}},
    424     {"fclass.nm",       f2, OpTa (5, 0), {P2, P1, F2, IMMU9}, PSEUDO},
    425     {"fclass.m.unc",    f2, OpTa (5, 1), {P1, P2, F2, IMMU9}},
    426     {"fclass.nm.unc",   f2, OpTa (5, 1), {P2, P1, F2, IMMU9}, PSEUDO},
     351    {"fcmp.gt.s0",        f2, OpRaRbTaSf (4, 0, 1, 0, 0), {P1, P2, F3, F2}, EMPTY},
     352    {"fcmp.gt",           f2, OpRaRbTaSf (4, 0, 1, 0, 0), {P1, P2, F3, F2}, PSEUDO, 0, NULL},
     353    {"fcmp.gt.s1",        f2, OpRaRbTaSf (4, 0, 1, 0, 1), {P1, P2, F3, F2}, EMPTY},
     354    {"fcmp.gt.s2",        f2, OpRaRbTaSf (4, 0, 1, 0, 2), {P1, P2, F3, F2}, EMPTY},
     355    {"fcmp.gt.s3",        f2, OpRaRbTaSf (4, 0, 1, 0, 3), {P1, P2, F3, F2}, EMPTY},
     356    {"fcmp.ge.s0",        f2, OpRaRbTaSf (4, 1, 0, 0, 0), {P1, P2, F3, F2}, EMPTY},
     357    {"fcmp.ge",           f2, OpRaRbTaSf (4, 1, 0, 0, 0), {P1, P2, F3, F2}, PSEUDO, 0, NULL},
     358    {"fcmp.ge.s1",        f2, OpRaRbTaSf (4, 1, 0, 0, 1), {P1, P2, F3, F2}, EMPTY},
     359    {"fcmp.ge.s2",        f2, OpRaRbTaSf (4, 1, 0, 0, 2), {P1, P2, F3, F2}, EMPTY},
     360    {"fcmp.ge.s3",        f2, OpRaRbTaSf (4, 1, 0, 0, 3), {P1, P2, F3, F2}, EMPTY},
     361    {"fcmp.neq.s0",       f2, OpRaRbTaSf (4, 0, 0, 0, 0), {P2, P1, F2, F3}, EMPTY},
     362    {"fcmp.neq",          f2, OpRaRbTaSf (4, 0, 0, 0, 0), {P2, P1, F2, F3}, PSEUDO, 0, NULL},
     363    {"fcmp.neq.s1",       f2, OpRaRbTaSf (4, 0, 0, 0, 1), {P2, P1, F2, F3}, EMPTY},
     364    {"fcmp.neq.s2",       f2, OpRaRbTaSf (4, 0, 0, 0, 2), {P2, P1, F2, F3}, EMPTY},
     365    {"fcmp.neq.s3",       f2, OpRaRbTaSf (4, 0, 0, 0, 3), {P2, P1, F2, F3}, EMPTY},
     366    {"fcmp.nlt.s0",       f2, OpRaRbTaSf (4, 0, 1, 0, 0), {P2, P1, F2, F3}, EMPTY},
     367    {"fcmp.nlt",          f2, OpRaRbTaSf (4, 0, 1, 0, 0), {P2, P1, F2, F3}, PSEUDO, 0, NULL},
     368    {"fcmp.nlt.s1",       f2, OpRaRbTaSf (4, 0, 1, 0, 1), {P2, P1, F2, F3}, EMPTY},
     369    {"fcmp.nlt.s2",       f2, OpRaRbTaSf (4, 0, 1, 0, 2), {P2, P1, F2, F3}, EMPTY},
     370    {"fcmp.nlt.s3",       f2, OpRaRbTaSf (4, 0, 1, 0, 3), {P2, P1, F2, F3}, EMPTY},
     371    {"fcmp.nle.s0",       f2, OpRaRbTaSf (4, 1, 0, 0, 0), {P2, P1, F2, F3}, EMPTY},
     372    {"fcmp.nle",          f2, OpRaRbTaSf (4, 1, 0, 0, 0), {P2, P1, F2, F3}, PSEUDO, 0, NULL},
     373    {"fcmp.nle.s1",       f2, OpRaRbTaSf (4, 1, 0, 0, 1), {P2, P1, F2, F3}, EMPTY},
     374    {"fcmp.nle.s2",       f2, OpRaRbTaSf (4, 1, 0, 0, 2), {P2, P1, F2, F3}, EMPTY},
     375    {"fcmp.nle.s3",       f2, OpRaRbTaSf (4, 1, 0, 0, 3), {P2, P1, F2, F3}, EMPTY},
     376    {"fcmp.ngt.s0",       f2, OpRaRbTaSf (4, 0, 1, 0, 0), {P2, P1, F3, F2}, EMPTY},
     377    {"fcmp.ngt",          f2, OpRaRbTaSf (4, 0, 1, 0, 0), {P2, P1, F3, F2}, PSEUDO, 0, NULL},
     378    {"fcmp.ngt.s1",       f2, OpRaRbTaSf (4, 0, 1, 0, 1), {P2, P1, F3, F2}, EMPTY},
     379    {"fcmp.ngt.s2",       f2, OpRaRbTaSf (4, 0, 1, 0, 2), {P2, P1, F3, F2}, EMPTY},
     380    {"fcmp.ngt.s3",       f2, OpRaRbTaSf (4, 0, 1, 0, 3), {P2, P1, F3, F2}, EMPTY},
     381    {"fcmp.nge.s0",       f2, OpRaRbTaSf (4, 1, 0, 0, 0), {P2, P1, F3, F2}, EMPTY},
     382    {"fcmp.nge",          f2, OpRaRbTaSf (4, 1, 0, 0, 0), {P2, P1, F3, F2}, PSEUDO, 0, NULL},
     383    {"fcmp.nge.s1",       f2, OpRaRbTaSf (4, 1, 0, 0, 1), {P2, P1, F3, F2}, EMPTY},
     384    {"fcmp.nge.s2",       f2, OpRaRbTaSf (4, 1, 0, 0, 2), {P2, P1, F3, F2}, EMPTY},
     385    {"fcmp.nge.s3",       f2, OpRaRbTaSf (4, 1, 0, 0, 3), {P2, P1, F3, F2}, EMPTY},
     386    {"fcmp.ord.s0",       f2, OpRaRbTaSf (4, 1, 1, 0, 0), {P2, P1, F2, F3}, EMPTY},
     387    {"fcmp.ord",          f2, OpRaRbTaSf (4, 1, 1, 0, 0), {P2, P1, F2, F3}, PSEUDO, 0, NULL},
     388    {"fcmp.ord.s1",       f2, OpRaRbTaSf (4, 1, 1, 0, 1), {P2, P1, F2, F3}, EMPTY},
     389    {"fcmp.ord.s2",       f2, OpRaRbTaSf (4, 1, 1, 0, 2), {P2, P1, F2, F3}, EMPTY},
     390    {"fcmp.ord.s3",       f2, OpRaRbTaSf (4, 1, 1, 0, 3), {P2, P1, F2, F3}, EMPTY},
     391    {"fcmp.gt.unc.s0",    f2, OpRaRbTaSf (4, 0, 1, 1, 0), {P1, P2, F3, F2}, EMPTY},
     392    {"fcmp.gt.unc",       f2, OpRaRbTaSf (4, 0, 1, 1, 0), {P1, P2, F3, F2}, PSEUDO, 0, NULL},
     393    {"fcmp.gt.unc.s1",    f2, OpRaRbTaSf (4, 0, 1, 1, 1), {P1, P2, F3, F2}, EMPTY},
     394    {"fcmp.gt.unc.s2",    f2, OpRaRbTaSf (4, 0, 1, 1, 2), {P1, P2, F3, F2}, EMPTY},
     395    {"fcmp.gt.unc.s3",    f2, OpRaRbTaSf (4, 0, 1, 1, 3), {P1, P2, F3, F2}, EMPTY},
     396    {"fcmp.ge.unc.s0",    f2, OpRaRbTaSf (4, 1, 0, 1, 0), {P1, P2, F3, F2}, EMPTY},
     397    {"fcmp.ge.unc",       f2, OpRaRbTaSf (4, 1, 0, 1, 0), {P1, P2, F3, F2}, PSEUDO, 0, NULL},
     398    {"fcmp.ge.unc.s1",    f2, OpRaRbTaSf (4, 1, 0, 1, 1), {P1, P2, F3, F2}, EMPTY},
     399    {"fcmp.ge.unc.s2",    f2, OpRaRbTaSf (4, 1, 0, 1, 2), {P1, P2, F3, F2}, EMPTY},
     400    {"fcmp.ge.unc.s3",    f2, OpRaRbTaSf (4, 1, 0, 1, 3), {P1, P2, F3, F2}, EMPTY},
     401    {"fcmp.neq.unc.s0",   f2, OpRaRbTaSf (4, 0, 0, 1, 0), {P2, P1, F2, F3}, EMPTY},
     402    {"fcmp.neq.unc",      f2, OpRaRbTaSf (4, 0, 0, 1, 0), {P2, P1, F2, F3}, PSEUDO, 0, NULL},
     403    {"fcmp.neq.unc.s1",   f2, OpRaRbTaSf (4, 0, 0, 1, 1), {P2, P1, F2, F3}, EMPTY},
     404    {"fcmp.neq.unc.s2",   f2, OpRaRbTaSf (4, 0, 0, 1, 2), {P2, P1, F2, F3}, EMPTY},
     405    {"fcmp.neq.unc.s3",   f2, OpRaRbTaSf (4, 0, 0, 1, 3), {P2, P1, F2, F3}, EMPTY},
     406    {"fcmp.nlt.unc.s0",   f2, OpRaRbTaSf (4, 0, 1, 1, 0), {P2, P1, F2, F3}, EMPTY},
     407    {"fcmp.nlt.unc",      f2, OpRaRbTaSf (4, 0, 1, 1, 0), {P2, P1, F2, F3}, PSEUDO, 0, NULL},
     408    {"fcmp.nlt.unc.s1",   f2, OpRaRbTaSf (4, 0, 1, 1, 1), {P2, P1, F2, F3}, EMPTY},
     409    {"fcmp.nlt.unc.s2",   f2, OpRaRbTaSf (4, 0, 1, 1, 2), {P2, P1, F2, F3}, EMPTY},
     410    {"fcmp.nlt.unc.s3",   f2, OpRaRbTaSf (4, 0, 1, 1, 3), {P2, P1, F2, F3}, EMPTY},
     411    {"fcmp.nle.unc.s0",   f2, OpRaRbTaSf (4, 1, 0, 1, 0), {P2, P1, F2, F3}, EMPTY},
     412    {"fcmp.nle.unc",      f2, OpRaRbTaSf (4, 1, 0, 1, 0), {P2, P1, F2, F3}, PSEUDO, 0, NULL},
     413    {"fcmp.nle.unc.s1",   f2, OpRaRbTaSf (4, 1, 0, 1, 1), {P2, P1, F2, F3}, EMPTY},
     414    {"fcmp.nle.unc.s2",   f2, OpRaRbTaSf (4, 1, 0, 1, 2), {P2, P1, F2, F3}, EMPTY},
     415    {"fcmp.nle.unc.s3",   f2, OpRaRbTaSf (4, 1, 0, 1, 3), {P2, P1, F2, F3}, EMPTY},
     416    {"fcmp.ngt.unc.s0",   f2, OpRaRbTaSf (4, 0, 1, 1, 0), {P2, P1, F3, F2}, EMPTY},
     417    {"fcmp.ngt.unc",      f2, OpRaRbTaSf (4, 0, 1, 1, 0), {P2, P1, F3, F2}, PSEUDO, 0, NULL},
     418    {"fcmp.ngt.unc.s1",   f2, OpRaRbTaSf (4, 0, 1, 1, 1), {P2, P1, F3, F2}, EMPTY},
     419    {"fcmp.ngt.unc.s2",   f2, OpRaRbTaSf (4, 0, 1, 1, 2), {P2, P1, F3, F2}, EMPTY},
     420    {"fcmp.ngt.unc.s3",   f2, OpRaRbTaSf (4, 0, 1, 1, 3), {P2, P1, F3, F2}, EMPTY},
     421    {"fcmp.nge.unc.s0",   f2, OpRaRbTaSf (4, 1, 0, 1, 0), {P2, P1, F3, F2}, EMPTY},
     422    {"fcmp.nge.unc",      f2, OpRaRbTaSf (4, 1, 0, 1, 0), {P2, P1, F3, F2}, PSEUDO, 0, NULL},
     423    {"fcmp.nge.unc.s1",   f2, OpRaRbTaSf (4, 1, 0, 1, 1), {P2, P1, F3, F2}, EMPTY},
     424    {"fcmp.nge.unc.s2",   f2, OpRaRbTaSf (4, 1, 0, 1, 2), {P2, P1, F3, F2}, EMPTY},
     425    {"fcmp.nge.unc.s3",   f2, OpRaRbTaSf (4, 1, 0, 1, 3), {P2, P1, F3, F2}, EMPTY},
     426    {"fcmp.ord.unc.s0",   f2, OpRaRbTaSf (4, 1, 1, 1, 0), {P2, P1, F2, F3}, EMPTY},
     427    {"fcmp.ord.unc",      f2, OpRaRbTaSf (4, 1, 1, 1, 0), {P2, P1, F2, F3}, PSEUDO, 0, NULL},
     428    {"fcmp.ord.unc.s1",   f2, OpRaRbTaSf (4, 1, 1, 1, 1), {P2, P1, F2, F3}, EMPTY},
     429    {"fcmp.ord.unc.s2",   f2, OpRaRbTaSf (4, 1, 1, 1, 2), {P2, P1, F2, F3}, EMPTY},
     430    {"fcmp.ord.unc.s3",   f2, OpRaRbTaSf (4, 1, 1, 1, 3), {P2, P1, F2, F3}, EMPTY},
     431
     432    {"fclass.m",        f2, OpTa (5, 0), {P1, P2, F2, IMMU9}, EMPTY},
     433    {"fclass.nm",       f2, OpTa (5, 0), {P2, P1, F2, IMMU9}, PSEUDO, 0, NULL},
     434    {"fclass.m.unc",    f2, OpTa (5, 1), {P1, P2, F2, IMMU9}, EMPTY},
     435    {"fclass.nm.unc",   f2, OpTa (5, 1), {P2, P1, F2, IMMU9}, PSEUDO, 0, NULL},
    427436
    428437    /* note: fnorm and fcvt.xuf have identical encodings! */
    429     {"fnorm.s0",        f, OpXaSfF2F4 (0x8, 0, 0, 0, 1), {F1, F3}, PSEUDO},
    430     {"fnorm",           f, OpXaSfF2F4 (0x8, 0, 0, 0, 1), {F1, F3}, PSEUDO},
    431     {"fnorm.s1",        f, OpXaSfF2F4 (0x8, 0, 1, 0, 1), {F1, F3}, PSEUDO},
    432     {"fnorm.s2",        f, OpXaSfF2F4 (0x8, 0, 2, 0, 1), {F1, F3}, PSEUDO},
    433     {"fnorm.s3",        f, OpXaSfF2F4 (0x8, 0, 3, 0, 1), {F1, F3}, PSEUDO},
    434     {"fnorm.s.s0",      f, OpXaSfF2F4 (0x8, 1, 0, 0, 1), {F1, F3}, PSEUDO},
    435     {"fnorm.s",         f, OpXaSfF2F4 (0x8, 1, 0, 0, 1), {F1, F3}, PSEUDO},
    436     {"fnorm.s.s1",      f, OpXaSfF2F4 (0x8, 1, 1, 0, 1), {F1, F3}, PSEUDO},
    437     {"fnorm.s.s2",      f, OpXaSfF2F4 (0x8, 1, 2, 0, 1), {F1, F3}, PSEUDO},
    438     {"fnorm.s.s3",      f, OpXaSfF2F4 (0x8, 1, 3, 0, 1), {F1, F3}, PSEUDO},
    439     {"fcvt.xuf.s0",     f, OpXaSfF2F4 (0x8, 0, 0, 0, 1), {F1, F3}, PSEUDO},
    440     {"fcvt.xuf",        f, OpXaSfF2F4 (0x8, 0, 0, 0, 1), {F1, F3}, PSEUDO},
    441     {"fcvt.xuf.s1",     f, OpXaSfF2F4 (0x8, 0, 1, 0, 1), {F1, F3}, PSEUDO},
    442     {"fcvt.xuf.s2",     f, OpXaSfF2F4 (0x8, 0, 2, 0, 1), {F1, F3}, PSEUDO},
    443     {"fcvt.xuf.s3",     f, OpXaSfF2F4 (0x8, 0, 3, 0, 1), {F1, F3}, PSEUDO},
    444     {"fcvt.xuf.s.s0",   f, OpXaSfF2F4 (0x8, 1, 0, 0, 1), {F1, F3}, PSEUDO},
    445     {"fcvt.xuf.s",      f, OpXaSfF2F4 (0x8, 1, 0, 0, 1), {F1, F3}, PSEUDO},
    446     {"fcvt.xuf.s.s1",   f, OpXaSfF2F4 (0x8, 1, 1, 0, 1), {F1, F3}, PSEUDO},
    447     {"fcvt.xuf.s.s2",   f, OpXaSfF2F4 (0x8, 1, 2, 0, 1), {F1, F3}, PSEUDO},
    448     {"fcvt.xuf.s.s3",   f, OpXaSfF2F4 (0x8, 1, 3, 0, 1), {F1, F3}, PSEUDO},
    449     {"fadd.s0",         f, OpXaSfF4 (0x8, 0, 0, 1), {F1, F3, F2}, PSEUDO},
    450     {"fadd",            f, OpXaSfF4 (0x8, 0, 0, 1), {F1, F3, F2}, PSEUDO},
    451     {"fadd.s1",         f, OpXaSfF4 (0x8, 0, 1, 1), {F1, F3, F2}, PSEUDO},
    452     {"fadd.s2",         f, OpXaSfF4 (0x8, 0, 2, 1), {F1, F3, F2}, PSEUDO},
    453     {"fadd.s3",         f, OpXaSfF4 (0x8, 0, 3, 1), {F1, F3, F2}, PSEUDO},
    454     {"fadd.s.s0",       f, OpXaSfF4 (0x8, 1, 0, 1), {F1, F3, F2}, PSEUDO},
    455     {"fadd.s",          f, OpXaSfF4 (0x8, 1, 0, 1), {F1, F3, F2}, PSEUDO},
    456     {"fadd.s.s1",       f, OpXaSfF4 (0x8, 1, 1, 1), {F1, F3, F2}, PSEUDO},
    457     {"fadd.s.s2",       f, OpXaSfF4 (0x8, 1, 2, 1), {F1, F3, F2}, PSEUDO},
    458     {"fadd.s.s3",       f, OpXaSfF4 (0x8, 1, 3, 1), {F1, F3, F2}, PSEUDO},
    459     {"fmpy.s0",         f, OpXaSfF2 (0x8, 0, 0, 0), {F1, F3, F4}, PSEUDO},
    460     {"fmpy",            f, OpXaSfF2 (0x8, 0, 0, 0), {F1, F3, F4}, PSEUDO},
    461     {"fmpy.s1",         f, OpXaSfF2 (0x8, 0, 1, 0), {F1, F3, F4}, PSEUDO},
    462     {"fmpy.s2",         f, OpXaSfF2 (0x8, 0, 2, 0), {F1, F3, F4}, PSEUDO},
    463     {"fmpy.s3",         f, OpXaSfF2 (0x8, 0, 3, 0), {F1, F3, F4}, PSEUDO},
    464     {"fmpy.s.s0",       f, OpXaSfF2 (0x8, 1, 0, 0), {F1, F3, F4}, PSEUDO},
    465     {"fmpy.s",          f, OpXaSfF2 (0x8, 1, 0, 0), {F1, F3, F4}, PSEUDO},
    466     {"fmpy.s.s1",       f, OpXaSfF2 (0x8, 1, 1, 0), {F1, F3, F4}, PSEUDO},
    467     {"fmpy.s.s2",       f, OpXaSfF2 (0x8, 1, 2, 0), {F1, F3, F4}, PSEUDO},
    468     {"fmpy.s.s3",       f, OpXaSfF2 (0x8, 1, 3, 0), {F1, F3, F4}, PSEUDO},
    469     {"fma.s0",          f, OpXaSf (0x8, 0, 0), {F1, F3, F4, F2}},
    470     {"fma",             f, OpXaSf (0x8, 0, 0), {F1, F3, F4, F2}, PSEUDO},
    471     {"fma.s1",          f, OpXaSf (0x8, 0, 1), {F1, F3, F4, F2}},
    472     {"fma.s2",          f, OpXaSf (0x8, 0, 2), {F1, F3, F4, F2}},
    473     {"fma.s3",          f, OpXaSf (0x8, 0, 3), {F1, F3, F4, F2}},
    474     {"fma.s.s0",        f, OpXaSf (0x8, 1, 0), {F1, F3, F4, F2}},
    475     {"fma.s",           f, OpXaSf (0x8, 1, 0), {F1, F3, F4, F2}, PSEUDO},
    476     {"fma.s.s1",        f, OpXaSf (0x8, 1, 1), {F1, F3, F4, F2}},
    477     {"fma.s.s2",        f, OpXaSf (0x8, 1, 2), {F1, F3, F4, F2}},
    478     {"fma.s.s3",        f, OpXaSf (0x8, 1, 3), {F1, F3, F4, F2}},
    479 
    480     {"fnorm.d.s0",      f, OpXaSfF2F4 (0x9, 0, 0, 0, 1), {F1, F3}, PSEUDO},
    481     {"fnorm.d",         f, OpXaSfF2F4 (0x9, 0, 0, 0, 1), {F1, F3}, PSEUDO},
    482     {"fnorm.d.s1",      f, OpXaSfF2F4 (0x9, 0, 1, 0, 1), {F1, F3}, PSEUDO},
    483     {"fnorm.d.s2",      f, OpXaSfF2F4 (0x9, 0, 2, 0, 1), {F1, F3}, PSEUDO},
    484     {"fnorm.d.s3",      f, OpXaSfF2F4 (0x9, 0, 3, 0, 1), {F1, F3}, PSEUDO},
    485     {"fcvt.xuf.d.s0",   f, OpXaSfF2F4 (0x9, 0, 0, 0, 1), {F1, F3}, PSEUDO},
    486     {"fcvt.xuf.d",      f, OpXaSfF2F4 (0x9, 0, 0, 0, 1), {F1, F3}, PSEUDO},
    487     {"fcvt.xuf.d.s1",   f, OpXaSfF2F4 (0x9, 0, 1, 0, 1), {F1, F3}, PSEUDO},
    488     {"fcvt.xuf.d.s2",   f, OpXaSfF2F4 (0x9, 0, 2, 0, 1), {F1, F3}, PSEUDO},
    489     {"fcvt.xuf.d.s3",   f, OpXaSfF2F4 (0x9, 0, 3, 0, 1), {F1, F3}, PSEUDO},
    490     {"fadd.d.s0",       f, OpXaSfF4 (0x9, 0, 0, 1), {F1, F3, F2}, PSEUDO},
    491     {"fadd.d",          f, OpXaSfF4 (0x9, 0, 0, 1), {F1, F3, F2}, PSEUDO},
    492     {"fadd.d.s1",       f, OpXaSfF4 (0x9, 0, 1, 1), {F1, F3, F2}, PSEUDO},
    493     {"fadd.d.s2",       f, OpXaSfF4 (0x9, 0, 2, 1), {F1, F3, F2}, PSEUDO},
    494     {"fadd.d.s3",       f, OpXaSfF4 (0x9, 0, 3, 1), {F1, F3, F2}, PSEUDO},
    495     {"fmpy.d.s0",       f, OpXaSfF2 (0x9, 0, 0, 0), {F1, F3, F4}, PSEUDO},
    496     {"fmpy.d",          f, OpXaSfF2 (0x9, 0, 0, 0), {F1, F3, F4}, PSEUDO},
    497     {"fmpy.d.s1",       f, OpXaSfF2 (0x9, 0, 1, 0), {F1, F3, F4}, PSEUDO},
    498     {"fmpy.d.s2",       f, OpXaSfF2 (0x9, 0, 2, 0), {F1, F3, F4}, PSEUDO},
    499     {"fmpy.d.s3",       f, OpXaSfF2 (0x9, 0, 3, 0), {F1, F3, F4}, PSEUDO},
    500     {"fma.d.s0",        f, OpXaSf (0x9, 0, 0), {F1, F3, F4, F2}},
    501     {"fma.d",           f, OpXaSf (0x9, 0, 0), {F1, F3, F4, F2}, PSEUDO},
    502     {"fma.d.s1",        f, OpXaSf (0x9, 0, 1), {F1, F3, F4, F2}},
    503     {"fma.d.s2",        f, OpXaSf (0x9, 0, 2), {F1, F3, F4, F2}},
    504     {"fma.d.s3",        f, OpXaSf (0x9, 0, 3), {F1, F3, F4, F2}},
    505 
    506     {"fpmpy.s0",        f, OpXaSfF2 (0x9, 1, 0, 0), {F1, F3, F4}, PSEUDO},
    507     {"fpmpy",           f, OpXaSfF2 (0x9, 1, 0, 0), {F1, F3, F4}, PSEUDO},
    508     {"fpmpy.s1",        f, OpXaSfF2 (0x9, 1, 1, 0), {F1, F3, F4}, PSEUDO},
    509     {"fpmpy.s2",        f, OpXaSfF2 (0x9, 1, 2, 0), {F1, F3, F4}, PSEUDO},
    510     {"fpmpy.s3",        f, OpXaSfF2 (0x9, 1, 3, 0), {F1, F3, F4}, PSEUDO},
    511     {"fpma.s0",         f, OpXaSf   (0x9, 1, 0), {F1, F3, F4, F2}},
    512     {"fpma",            f, OpXaSf   (0x9, 1, 0), {F1, F3, F4, F2}, PSEUDO},
    513     {"fpma.s1",         f, OpXaSf   (0x9, 1, 1), {F1, F3, F4, F2}},
    514     {"fpma.s2",         f, OpXaSf   (0x9, 1, 2), {F1, F3, F4, F2}},
    515     {"fpma.s3",         f, OpXaSf   (0x9, 1, 3), {F1, F3, F4, F2}},
    516 
    517     {"fsub.s0",         f, OpXaSfF4 (0xa, 0, 0, 1), {F1, F3, F2}, PSEUDO},
    518     {"fsub",            f, OpXaSfF4 (0xa, 0, 0, 1), {F1, F3, F2}, PSEUDO},
    519     {"fsub.s1",         f, OpXaSfF4 (0xa, 0, 1, 1), {F1, F3, F2}, PSEUDO},
    520     {"fsub.s2",         f, OpXaSfF4 (0xa, 0, 2, 1), {F1, F3, F2}, PSEUDO},
    521     {"fsub.s3",         f, OpXaSfF4 (0xa, 0, 3, 1), {F1, F3, F2}, PSEUDO},
    522     {"fsub.s.s0",       f, OpXaSfF4 (0xa, 1, 0, 1), {F1, F3, F2}, PSEUDO},
    523     {"fsub.s",          f, OpXaSfF4 (0xa, 1, 0, 1), {F1, F3, F2}, PSEUDO},
    524     {"fsub.s.s1",       f, OpXaSfF4 (0xa, 1, 1, 1), {F1, F3, F2}, PSEUDO},
    525     {"fsub.s.s2",       f, OpXaSfF4 (0xa, 1, 2, 1), {F1, F3, F2}, PSEUDO},
    526     {"fsub.s.s3",       f, OpXaSfF4 (0xa, 1, 3, 1), {F1, F3, F2}, PSEUDO},
    527     {"fms.s0",          f, OpXaSf   (0xa, 0, 0), {F1, F3, F4, F2}},
    528     {"fms",             f, OpXaSf   (0xa, 0, 0), {F1, F3, F4, F2}, PSEUDO},
    529     {"fms.s1",          f, OpXaSf   (0xa, 0, 1), {F1, F3, F4, F2}},
    530     {"fms.s2",          f, OpXaSf   (0xa, 0, 2), {F1, F3, F4, F2}},
    531     {"fms.s3",          f, OpXaSf   (0xa, 0, 3), {F1, F3, F4, F2}},
    532     {"fms.s.s0",        f, OpXaSf   (0xa, 1, 0), {F1, F3, F4, F2}},
    533     {"fms.s",           f, OpXaSf   (0xa, 1, 0), {F1, F3, F4, F2}, PSEUDO},
    534     {"fms.s.s1",        f, OpXaSf   (0xa, 1, 1), {F1, F3, F4, F2}},
    535     {"fms.s.s2",        f, OpXaSf   (0xa, 1, 2), {F1, F3, F4, F2}},
    536     {"fms.s.s3",        f, OpXaSf   (0xa, 1, 3), {F1, F3, F4, F2}},
    537     {"fsub.d.s0",       f, OpXaSfF4 (0xb, 0, 0, 1), {F1, F3, F2}, PSEUDO},
    538     {"fsub.d",          f, OpXaSfF4 (0xb, 0, 0, 1), {F1, F3, F2}, PSEUDO},
    539     {"fsub.d.s1",       f, OpXaSfF4 (0xb, 0, 1, 1), {F1, F3, F2}, PSEUDO},
    540     {"fsub.d.s2",       f, OpXaSfF4 (0xb, 0, 2, 1), {F1, F3, F2}, PSEUDO},
    541     {"fsub.d.s3",       f, OpXaSfF4 (0xb, 0, 3, 1), {F1, F3, F2}, PSEUDO},
    542     {"fms.d.s0",        f, OpXaSf   (0xb, 0, 0), {F1, F3, F4, F2}},
    543     {"fms.d",           f, OpXaSf   (0xb, 0, 0), {F1, F3, F4, F2}, PSEUDO},
    544     {"fms.d.s1",        f, OpXaSf   (0xb, 0, 1), {F1, F3, F4, F2}},
    545     {"fms.d.s2",        f, OpXaSf   (0xb, 0, 2), {F1, F3, F4, F2}},
    546     {"fms.d.s3",        f, OpXaSf   (0xb, 0, 3), {F1, F3, F4, F2}},
    547 
    548     {"fpms.s0",         f, OpXaSf (0xb, 1, 0), {F1, F3, F4, F2}},
    549     {"fpms",            f, OpXaSf (0xb, 1, 0), {F1, F3, F4, F2}, PSEUDO},
    550     {"fpms.s1",         f, OpXaSf (0xb, 1, 1), {F1, F3, F4, F2}},
    551     {"fpms.s2",         f, OpXaSf (0xb, 1, 2), {F1, F3, F4, F2}},
    552     {"fpms.s3",         f, OpXaSf (0xb, 1, 3), {F1, F3, F4, F2}},
    553 
    554     {"fnmpy.s0",        f, OpXaSfF2 (0xc, 0, 0, 0), {F1, F3, F4}, PSEUDO},
    555     {"fnmpy",           f, OpXaSfF2 (0xc, 0, 0, 0), {F1, F3, F4}, PSEUDO},
    556     {"fnmpy.s1",        f, OpXaSfF2 (0xc, 0, 1, 0), {F1, F3, F4}, PSEUDO},
    557     {"fnmpy.s2",        f, OpXaSfF2 (0xc, 0, 2, 0), {F1, F3, F4}, PSEUDO},
    558     {"fnmpy.s3",        f, OpXaSfF2 (0xc, 0, 3, 0), {F1, F3, F4}, PSEUDO},
    559     {"fnmpy.s.s0",      f, OpXaSfF2 (0xc, 1, 0, 0), {F1, F3, F4}, PSEUDO},
    560     {"fnmpy.s",         f, OpXaSfF2 (0xc, 1, 0, 0), {F1, F3, F4}, PSEUDO},
    561     {"fnmpy.s.s1",      f, OpXaSfF2 (0xc, 1, 1, 0), {F1, F3, F4}, PSEUDO},
    562     {"fnmpy.s.s2",      f, OpXaSfF2 (0xc, 1, 2, 0), {F1, F3, F4}, PSEUDO},
    563     {"fnmpy.s.s3",      f, OpXaSfF2 (0xc, 1, 3, 0), {F1, F3, F4}, PSEUDO},
    564     {"fnma.s0",         f, OpXaSf (0xc, 0, 0), {F1, F3, F4, F2}},
    565     {"fnma",            f, OpXaSf (0xc, 0, 0), {F1, F3, F4, F2}, PSEUDO},
    566     {"fnma.s1",         f, OpXaSf (0xc, 0, 1), {F1, F3, F4, F2}},
    567     {"fnma.s2",         f, OpXaSf (0xc, 0, 2), {F1, F3, F4, F2}},
    568     {"fnma.s3",         f, OpXaSf (0xc, 0, 3), {F1, F3, F4, F2}},
    569     {"fnma.s.s0",       f, OpXaSf (0xc, 1, 0), {F1, F3, F4, F2}},
    570     {"fnma.s",          f, OpXaSf (0xc, 1, 0), {F1, F3, F4, F2}, PSEUDO},
    571     {"fnma.s.s1",       f, OpXaSf (0xc, 1, 1), {F1, F3, F4, F2}},
    572     {"fnma.s.s2",       f, OpXaSf (0xc, 1, 2), {F1, F3, F4, F2}},
    573     {"fnma.s.s3",       f, OpXaSf (0xc, 1, 3), {F1, F3, F4, F2}},
    574     {"fnmpy.d.s0",      f, OpXaSfF2 (0xd, 0, 0, 0), {F1, F3, F4}, PSEUDO},
    575     {"fnmpy.d",         f, OpXaSfF2 (0xd, 0, 0, 0), {F1, F3, F4}, PSEUDO},
    576     {"fnmpy.d.s1",      f, OpXaSfF2 (0xd, 0, 1, 0), {F1, F3, F4}, PSEUDO},
    577     {"fnmpy.d.s2",      f, OpXaSfF2 (0xd, 0, 2, 0), {F1, F3, F4}, PSEUDO},
    578     {"fnmpy.d.s3",      f, OpXaSfF2 (0xd, 0, 3, 0), {F1, F3, F4}, PSEUDO},
    579     {"fnma.d.s0",       f, OpXaSf (0xd, 0, 0), {F1, F3, F4, F2}},
    580     {"fnma.d",          f, OpXaSf (0xd, 0, 0), {F1, F3, F4, F2}, PSEUDO},
    581     {"fnma.d.s1",       f, OpXaSf (0xd, 0, 1), {F1, F3, F4, F2}},
    582     {"fnma.d.s2",       f, OpXaSf (0xd, 0, 2), {F1, F3, F4, F2}},
    583     {"fnma.d.s3",       f, OpXaSf (0xd, 0, 3), {F1, F3, F4, F2}},
    584 
    585     {"fpnmpy.s0",       f, OpXaSfF2 (0xd, 1, 0, 0), {F1, F3, F4}, PSEUDO},
    586     {"fpnmpy",          f, OpXaSfF2 (0xd, 1, 0, 0), {F1, F3, F4}, PSEUDO},
    587     {"fpnmpy.s1",       f, OpXaSfF2 (0xd, 1, 1, 0), {F1, F3, F4}, PSEUDO},
    588     {"fpnmpy.s2",       f, OpXaSfF2 (0xd, 1, 2, 0), {F1, F3, F4}, PSEUDO},
    589     {"fpnmpy.s3",       f, OpXaSfF2 (0xd, 1, 3, 0), {F1, F3, F4}, PSEUDO},
    590     {"fpnma.s0",        f, OpXaSf   (0xd, 1, 0), {F1, F3, F4, F2}},
    591     {"fpnma",           f, OpXaSf   (0xd, 1, 0), {F1, F3, F4, F2}, PSEUDO},
    592     {"fpnma.s1",        f, OpXaSf   (0xd, 1, 1), {F1, F3, F4, F2}},
    593     {"fpnma.s2",        f, OpXaSf   (0xd, 1, 2), {F1, F3, F4, F2}},
    594     {"fpnma.s3",        f, OpXaSf   (0xd, 1, 3), {F1, F3, F4, F2}},
    595 
    596     {"xmpy.l",          f, OpXaX2F2 (0xe, 1, 0, 0), {F1, F3, F4}, PSEUDO},
    597     {"xmpy.lu",         f, OpXaX2F2 (0xe, 1, 0, 0), {F1, F3, F4}, PSEUDO},
    598     {"xmpy.h",          f, OpXaX2F2 (0xe, 1, 3, 0), {F1, F3, F4}, PSEUDO},
    599     {"xmpy.hu",         f, OpXaX2F2 (0xe, 1, 2, 0), {F1, F3, F4}, PSEUDO},
    600     {"xma.l",           f, OpXaX2 (0xe, 1, 0), {F1, F3, F4, F2}},
    601     {"xma.lu",          f, OpXaX2 (0xe, 1, 0), {F1, F3, F4, F2}, PSEUDO},
    602     {"xma.h",           f, OpXaX2 (0xe, 1, 3), {F1, F3, F4, F2}},
    603     {"xma.hu",          f, OpXaX2 (0xe, 1, 2), {F1, F3, F4, F2}},
    604 
    605     {"fselect",         f, OpXa (0xe, 0), {F1, F3, F4, F2}},
    606 
    607     {0}
     438    {"fnorm.s0",        f, OpXaSfF2F4 (0x8, 0, 0, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
     439    {"fnorm",           f, OpXaSfF2F4 (0x8, 0, 0, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
     440    {"fnorm.s1",        f, OpXaSfF2F4 (0x8, 0, 1, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
     441    {"fnorm.s2",        f, OpXaSfF2F4 (0x8, 0, 2, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
     442    {"fnorm.s3",        f, OpXaSfF2F4 (0x8, 0, 3, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
     443    {"fnorm.s.s0",      f, OpXaSfF2F4 (0x8, 1, 0, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
     444    {"fnorm.s",         f, OpXaSfF2F4 (0x8, 1, 0, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
     445    {"fnorm.s.s1",      f, OpXaSfF2F4 (0x8, 1, 1, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
     446    {"fnorm.s.s2",      f, OpXaSfF2F4 (0x8, 1, 2, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
     447    {"fnorm.s.s3",      f, OpXaSfF2F4 (0x8, 1, 3, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
     448    {"fcvt.xuf.s0",     f, OpXaSfF2F4 (0x8, 0, 0, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
     449    {"fcvt.xuf",        f, OpXaSfF2F4 (0x8, 0, 0, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
     450    {"fcvt.xuf.s1",     f, OpXaSfF2F4 (0x8, 0, 1, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
     451    {"fcvt.xuf.s2",     f, OpXaSfF2F4 (0x8, 0, 2, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
     452    {"fcvt.xuf.s3",     f, OpXaSfF2F4 (0x8, 0, 3, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
     453    {"fcvt.xuf.s.s0",   f, OpXaSfF2F4 (0x8, 1, 0, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
     454    {"fcvt.xuf.s",      f, OpXaSfF2F4 (0x8, 1, 0, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
     455    {"fcvt.xuf.s.s1",   f, OpXaSfF2F4 (0x8, 1, 1, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
     456    {"fcvt.xuf.s.s2",   f, OpXaSfF2F4 (0x8, 1, 2, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
     457    {"fcvt.xuf.s.s3",   f, OpXaSfF2F4 (0x8, 1, 3, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
     458    {"fadd.s0",         f, OpXaSfF4 (0x8, 0, 0, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
     459    {"fadd",            f, OpXaSfF4 (0x8, 0, 0, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
     460    {"fadd.s1",         f, OpXaSfF4 (0x8, 0, 1, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
     461    {"fadd.s2",         f, OpXaSfF4 (0x8, 0, 2, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
     462    {"fadd.s3",         f, OpXaSfF4 (0x8, 0, 3, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
     463    {"fadd.s.s0",       f, OpXaSfF4 (0x8, 1, 0, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
     464    {"fadd.s",          f, OpXaSfF4 (0x8, 1, 0, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
     465    {"fadd.s.s1",       f, OpXaSfF4 (0x8, 1, 1, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
     466    {"fadd.s.s2",       f, OpXaSfF4 (0x8, 1, 2, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
     467    {"fadd.s.s3",       f, OpXaSfF4 (0x8, 1, 3, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
     468    {"fmpy.s0",         f, OpXaSfF2 (0x8, 0, 0, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
     469    {"fmpy",            f, OpXaSfF2 (0x8, 0, 0, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
     470    {"fmpy.s1",         f, OpXaSfF2 (0x8, 0, 1, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
     471    {"fmpy.s2",         f, OpXaSfF2 (0x8, 0, 2, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
     472    {"fmpy.s3",         f, OpXaSfF2 (0x8, 0, 3, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
     473    {"fmpy.s.s0",       f, OpXaSfF2 (0x8, 1, 0, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
     474    {"fmpy.s",          f, OpXaSfF2 (0x8, 1, 0, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
     475    {"fmpy.s.s1",       f, OpXaSfF2 (0x8, 1, 1, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
     476    {"fmpy.s.s2",       f, OpXaSfF2 (0x8, 1, 2, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
     477    {"fmpy.s.s3",       f, OpXaSfF2 (0x8, 1, 3, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
     478    {"fma.s0",          f, OpXaSf (0x8, 0, 0), {F1, F3, F4, F2}, EMPTY},
     479    {"fma",             f, OpXaSf (0x8, 0, 0), {F1, F3, F4, F2}, PSEUDO, 0, NULL},
     480    {"fma.s1",          f, OpXaSf (0x8, 0, 1), {F1, F3, F4, F2}, EMPTY},
     481    {"fma.s2",          f, OpXaSf (0x8, 0, 2), {F1, F3, F4, F2}, EMPTY},
     482    {"fma.s3",          f, OpXaSf (0x8, 0, 3), {F1, F3, F4, F2}, EMPTY},
     483    {"fma.s.s0",        f, OpXaSf (0x8, 1, 0), {F1, F3, F4, F2}, EMPTY},
     484    {"fma.s",           f, OpXaSf (0x8, 1, 0), {F1, F3, F4, F2}, PSEUDO, 0, NULL},
     485    {"fma.s.s1",        f, OpXaSf (0x8, 1, 1), {F1, F3, F4, F2}, EMPTY},
     486    {"fma.s.s2",        f, OpXaSf (0x8, 1, 2), {F1, F3, F4, F2}, EMPTY},
     487    {"fma.s.s3",        f, OpXaSf (0x8, 1, 3), {F1, F3, F4, F2}, EMPTY},
     488
     489    {"fnorm.d.s0",      f, OpXaSfF2F4 (0x9, 0, 0, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
     490    {"fnorm.d",         f, OpXaSfF2F4 (0x9, 0, 0, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
     491    {"fnorm.d.s1",      f, OpXaSfF2F4 (0x9, 0, 1, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
     492    {"fnorm.d.s2",      f, OpXaSfF2F4 (0x9, 0, 2, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
     493    {"fnorm.d.s3",      f, OpXaSfF2F4 (0x9, 0, 3, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
     494    {"fcvt.xuf.d.s0",   f, OpXaSfF2F4 (0x9, 0, 0, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
     495    {"fcvt.xuf.d",      f, OpXaSfF2F4 (0x9, 0, 0, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
     496    {"fcvt.xuf.d.s1",   f, OpXaSfF2F4 (0x9, 0, 1, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
     497    {"fcvt.xuf.d.s2",   f, OpXaSfF2F4 (0x9, 0, 2, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
     498    {"fcvt.xuf.d.s3",   f, OpXaSfF2F4 (0x9, 0, 3, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
     499    {"fadd.d.s0",       f, OpXaSfF4 (0x9, 0, 0, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
     500    {"fadd.d",          f, OpXaSfF4 (0x9, 0, 0, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
     501    {"fadd.d.s1",       f, OpXaSfF4 (0x9, 0, 1, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
     502    {"fadd.d.s2",       f, OpXaSfF4 (0x9, 0, 2, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
     503    {"fadd.d.s3",       f, OpXaSfF4 (0x9, 0, 3, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
     504    {"fmpy.d.s0",       f, OpXaSfF2 (0x9, 0, 0, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
     505    {"fmpy.d",          f, OpXaSfF2 (0x9, 0, 0, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
     506    {"fmpy.d.s1",       f, OpXaSfF2 (0x9, 0, 1, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
     507    {"fmpy.d.s2",       f, OpXaSfF2 (0x9, 0, 2, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
     508    {"fmpy.d.s3",       f, OpXaSfF2 (0x9, 0, 3, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
     509    {"fma.d.s0",        f, OpXaSf (0x9, 0, 0), {F1, F3, F4, F2}, EMPTY},
     510    {"fma.d",           f, OpXaSf (0x9, 0, 0), {F1, F3, F4, F2}, PSEUDO, 0, NULL},
     511    {"fma.d.s1",        f, OpXaSf (0x9, 0, 1), {F1, F3, F4, F2}, EMPTY},
     512    {"fma.d.s2",        f, OpXaSf (0x9, 0, 2), {F1, F3, F4, F2}, EMPTY},
     513    {"fma.d.s3",        f, OpXaSf (0x9, 0, 3), {F1, F3, F4, F2}, EMPTY},
     514
     515    {"fpmpy.s0",        f, OpXaSfF2 (0x9, 1, 0, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
     516    {"fpmpy",           f, OpXaSfF2 (0x9, 1, 0, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
     517    {"fpmpy.s1",        f, OpXaSfF2 (0x9, 1, 1, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
     518    {"fpmpy.s2",        f, OpXaSfF2 (0x9, 1, 2, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
     519    {"fpmpy.s3",        f, OpXaSfF2 (0x9, 1, 3, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
     520    {"fpma.s0",         f, OpXaSf   (0x9, 1, 0), {F1, F3, F4, F2}, EMPTY},
     521    {"fpma",            f, OpXaSf   (0x9, 1, 0), {F1, F3, F4, F2}, PSEUDO, 0, NULL},
     522    {"fpma.s1",         f, OpXaSf   (0x9, 1, 1), {F1, F3, F4, F2}, EMPTY},
     523    {"fpma.s2",         f, OpXaSf   (0x9, 1, 2), {F1, F3, F4, F2}, EMPTY},
     524    {"fpma.s3",         f, OpXaSf   (0x9, 1, 3), {F1, F3, F4, F2}, EMPTY},
     525
     526    {"fsub.s0",         f, OpXaSfF4 (0xa, 0, 0, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
     527    {"fsub",            f, OpXaSfF4 (0xa, 0, 0, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
     528    {"fsub.s1",         f, OpXaSfF4 (0xa, 0, 1, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
     529    {"fsub.s2",         f, OpXaSfF4 (0xa, 0, 2, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
     530    {"fsub.s3",         f, OpXaSfF4 (0xa, 0, 3, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
     531    {"fsub.s.s0",       f, OpXaSfF4 (0xa, 1, 0, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
     532    {"fsub.s",          f, OpXaSfF4 (0xa, 1, 0, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
     533    {"fsub.s.s1",       f, OpXaSfF4 (0xa, 1, 1, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
     534    {"fsub.s.s2",       f, OpXaSfF4 (0xa, 1, 2, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
     535    {"fsub.s.s3",       f, OpXaSfF4 (0xa, 1, 3, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
     536    {"fms.s0",          f, OpXaSf   (0xa, 0, 0), {F1, F3, F4, F2}, EMPTY},
     537    {"fms",             f, OpXaSf   (0xa, 0, 0), {F1, F3, F4, F2}, PSEUDO, 0, NULL},
     538    {"fms.s1",          f, OpXaSf   (0xa, 0, 1), {F1, F3, F4, F2}, EMPTY},
     539    {"fms.s2",          f, OpXaSf   (0xa, 0, 2), {F1, F3, F4, F2}, EMPTY},
     540    {"fms.s3",          f, OpXaSf   (0xa, 0, 3), {F1, F3, F4, F2}, EMPTY},
     541    {"fms.s.s0",        f, OpXaSf   (0xa, 1, 0), {F1, F3, F4, F2}, EMPTY},
     542    {"fms.s",           f, OpXaSf   (0xa, 1, 0), {F1, F3, F4, F2}, PSEUDO, 0, NULL},
     543    {"fms.s.s1",        f, OpXaSf   (0xa, 1, 1), {F1, F3, F4, F2}, EMPTY},
     544    {"fms.s.s2",        f, OpXaSf   (0xa, 1, 2), {F1, F3, F4, F2}, EMPTY},
     545    {"fms.s.s3",        f, OpXaSf   (0xa, 1, 3), {F1, F3, F4, F2}, EMPTY},
     546    {"fsub.d.s0",       f, OpXaSfF4 (0xb, 0, 0, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
     547    {"fsub.d",          f, OpXaSfF4 (0xb, 0, 0, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
     548    {"fsub.d.s1",       f, OpXaSfF4 (0xb, 0, 1, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
     549    {"fsub.d.s2",       f, OpXaSfF4 (0xb, 0, 2, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
     550    {"fsub.d.s3",       f, OpXaSfF4 (0xb, 0, 3, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
     551    {"fms.d.s0",        f, OpXaSf   (0xb, 0, 0), {F1, F3, F4, F2}, EMPTY},
     552    {"fms.d",           f, OpXaSf   (0xb, 0, 0), {F1, F3, F4, F2}, PSEUDO, 0, NULL},
     553    {"fms.d.s1",        f, OpXaSf   (0xb, 0, 1), {F1, F3, F4, F2}, EMPTY},
     554    {"fms.d.s2",        f, OpXaSf   (0xb, 0, 2), {F1, F3, F4, F2}, EMPTY},
     555    {"fms.d.s3",        f, OpXaSf   (0xb, 0, 3), {F1, F3, F4, F2}, EMPTY},
     556
     557    {"fpms.s0",         f, OpXaSf (0xb, 1, 0), {F1, F3, F4, F2}, EMPTY},
     558    {"fpms",            f, OpXaSf (0xb, 1, 0), {F1, F3, F4, F2}, PSEUDO, 0, NULL},
     559    {"fpms.s1",         f, OpXaSf (0xb, 1, 1), {F1, F3, F4, F2}, EMPTY},
     560    {"fpms.s2",         f, OpXaSf (0xb, 1, 2), {F1, F3, F4, F2}, EMPTY},
     561    {"fpms.s3",         f, OpXaSf (0xb, 1, 3), {F1, F3, F4, F2}, EMPTY},
     562
     563    {"fnmpy.s0",        f, OpXaSfF2 (0xc, 0, 0, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
     564    {"fnmpy",           f, OpXaSfF2 (0xc, 0, 0, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
     565    {"fnmpy.s1",        f, OpXaSfF2 (0xc, 0, 1, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
     566    {"fnmpy.s2",        f, OpXaSfF2 (0xc, 0, 2, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
     567    {"fnmpy.s3",        f, OpXaSfF2 (0xc, 0, 3, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
     568    {"fnmpy.s.s0",      f, OpXaSfF2 (0xc, 1, 0, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
     569    {"fnmpy.s",         f, OpXaSfF2 (0xc, 1, 0, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
     570    {"fnmpy.s.s1",      f, OpXaSfF2 (0xc, 1, 1, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
     571    {"fnmpy.s.s2",      f, OpXaSfF2 (0xc, 1, 2, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
     572    {"fnmpy.s.s3",      f, OpXaSfF2 (0xc, 1, 3, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
     573    {"fnma.s0",         f, OpXaSf (0xc, 0, 0), {F1, F3, F4, F2}, EMPTY},
     574    {"fnma",            f, OpXaSf (0xc, 0, 0), {F1, F3, F4, F2}, PSEUDO, 0, NULL},
     575    {"fnma.s1",         f, OpXaSf (0xc, 0, 1), {F1, F3, F4, F2}, EMPTY},
     576    {"fnma.s2",         f, OpXaSf (0xc, 0, 2), {F1, F3, F4, F2}, EMPTY},
     577    {"fnma.s3",         f, OpXaSf (0xc, 0, 3), {F1, F3, F4, F2}, EMPTY},
     578    {"fnma.s.s0",       f, OpXaSf (0xc, 1, 0), {F1, F3, F4, F2}, EMPTY},
     579    {"fnma.s",          f, OpXaSf (0xc, 1, 0), {F1, F3, F4, F2}, PSEUDO, 0, NULL},
     580    {"fnma.s.s1",       f, OpXaSf (0xc, 1, 1), {F1, F3, F4, F2}, EMPTY},
     581    {"fnma.s.s2",       f, OpXaSf (0xc, 1, 2), {F1, F3, F4, F2}, EMPTY},
     582    {"fnma.s.s3",       f, OpXaSf (0xc, 1, 3), {F1, F3, F4, F2}, EMPTY},
     583    {"fnmpy.d.s0",      f, OpXaSfF2 (0xd, 0, 0, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
     584    {"fnmpy.d",         f, OpXaSfF2 (0xd, 0, 0, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
     585    {"fnmpy.d.s1",      f, OpXaSfF2 (0xd, 0, 1, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
     586    {"fnmpy.d.s2",      f, OpXaSfF2 (0xd, 0, 2, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
     587    {"fnmpy.d.s3",      f, OpXaSfF2 (0xd, 0, 3, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
     588    {"fnma.d.s0",       f, OpXaSf (0xd, 0, 0), {F1, F3, F4, F2}, EMPTY},
     589    {"fnma.d",          f, OpXaSf (0xd, 0, 0), {F1, F3, F4, F2}, PSEUDO, 0, NULL},
     590    {"fnma.d.s1",       f, OpXaSf (0xd, 0, 1), {F1, F3, F4, F2}, EMPTY},
     591    {"fnma.d.s2",       f, OpXaSf (0xd, 0, 2), {F1, F3, F4, F2}, EMPTY},
     592    {"fnma.d.s3",       f, OpXaSf (0xd, 0, 3), {F1, F3, F4, F2}, EMPTY},
     593
     594    {"fpnmpy.s0",       f, OpXaSfF2 (0xd, 1, 0, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
     595    {"fpnmpy",          f, OpXaSfF2 (0xd, 1, 0, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
     596    {"fpnmpy.s1",       f, OpXaSfF2 (0xd, 1, 1, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
     597    {"fpnmpy.s2",       f, OpXaSfF2 (0xd, 1, 2, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
     598    {"fpnmpy.s3",       f, OpXaSfF2 (0xd, 1, 3, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
     599    {"fpnma.s0",        f, OpXaSf   (0xd, 1, 0), {F1, F3, F4, F2}, EMPTY},
     600    {"fpnma",           f, OpXaSf   (0xd, 1, 0), {F1, F3, F4, F2}, PSEUDO, 0, NULL},
     601    {"fpnma.s1",        f, OpXaSf   (0xd, 1, 1), {F1, F3, F4, F2}, EMPTY},
     602    {"fpnma.s2",        f, OpXaSf   (0xd, 1, 2), {F1, F3, F4, F2}, EMPTY},
     603    {"fpnma.s3",        f, OpXaSf   (0xd, 1, 3), {F1, F3, F4, F2}, EMPTY},
     604
     605    {"xmpy.l",          f, OpXaX2F2 (0xe, 1, 0, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
     606    {"xmpy.lu",         f, OpXaX2F2 (0xe, 1, 0, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
     607    {"xmpy.h",          f, OpXaX2F2 (0xe, 1, 3, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
     608    {"xmpy.hu",         f, OpXaX2F2 (0xe, 1, 2, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
     609    {"xma.l",           f, OpXaX2 (0xe, 1, 0), {F1, F3, F4, F2}, EMPTY},
     610    {"xma.lu",          f, OpXaX2 (0xe, 1, 0), {F1, F3, F4, F2}, PSEUDO, 0, NULL},
     611    {"xma.h",           f, OpXaX2 (0xe, 1, 3), {F1, F3, F4, F2}, EMPTY},
     612    {"xma.hu",          f, OpXaX2 (0xe, 1, 2), {F1, F3, F4, F2}, EMPTY},
     613
     614    {"fselect",         f, OpXa (0xe, 0), {F1, F3, F4, F2}, EMPTY},
     615
     616    {NULL, 0, 0, 0, 0, {0}, 0, 0, NULL}
    608617  };
    609618
     
    645654#undef OpXbX6F2
    646655#undef OpXbX6Sf
     656#undef EMPTY
Note: See TracChangeset for help on using the changeset viewer.