Back to index

cell-binutils  2.17cvs20070401
ia64-opc-f.c
Go to the documentation of this file.
00001 /* ia64-opc-f.c -- IA-64 `F' opcode table.
00002    Copyright 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
00003    Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
00004 
00005    This file is part of GDB, GAS, and the GNU binutils.
00006 
00007    GDB, GAS, and the GNU binutils are free software; you can redistribute
00008    them and/or modify them under the terms of the GNU General Public
00009    License as published by the Free Software Foundation; either version
00010    2, or (at your option) any later version.
00011 
00012    GDB, GAS, and the GNU binutils are distributed in the hope that they
00013    will be useful, but WITHOUT ANY WARRANTY; without even the implied
00014    warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
00015    the GNU General Public License for more details.
00016 
00017    You should have received a copy of the GNU General Public License
00018    along with this file; see the file COPYING.  If not, write to the
00019    Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
00020    02110-1301, USA.  */
00021 
00022 #include "ia64-opc.h"
00023 
00024 #define f0    IA64_TYPE_F, 0
00025 #define f     IA64_TYPE_F, 1
00026 #define f2    IA64_TYPE_F, 2
00027 
00028 #define bF2(x)       (((ia64_insn) ((x) & 0x7f)) << 13)
00029 #define bF4(x)       (((ia64_insn) ((x) & 0x7f)) << 27)
00030 #define bQ(x) (((ia64_insn) ((x) & 0x1)) << 36)
00031 #define bRa(x)       (((ia64_insn) ((x) & 0x1)) << 33)
00032 #define bRb(x)       (((ia64_insn) ((x) & 0x1)) << 36)
00033 #define bSf(x)       (((ia64_insn) ((x) & 0x3)) << 34)
00034 #define bTa(x)       (((ia64_insn) ((x) & 0x1)) << 12)
00035 #define bXa(x)       (((ia64_insn) ((x) & 0x1)) << 36)
00036 #define bXb(x)       (((ia64_insn) ((x) & 0x1)) << 33)
00037 #define bX2(x)       (((ia64_insn) ((x) & 0x3)) << 34)
00038 #define bX6(x)       (((ia64_insn) ((x) & 0x3f)) << 27)
00039 #define bY(x) (((ia64_insn) ((x) & 0x1)) << 26)
00040 
00041 #define mF2   bF2 (-1)
00042 #define mF4   bF4 (-1)
00043 #define mQ    bQ (-1)
00044 #define mRa   bRa (-1)
00045 #define mRb   bRb (-1)
00046 #define mSf   bSf (-1)
00047 #define mTa   bTa (-1)
00048 #define mXa   bXa (-1)
00049 #define mXb   bXb (-1)
00050 #define mX2   bX2 (-1)
00051 #define mX6   bX6 (-1)
00052 #define mY    bY (-1)
00053 
00054 #define OpXa(a,b)    (bOp (a) | bXa (b)), (mOp | mXa)
00055 #define OpXaSf(a,b,c)       (bOp (a) | bXa (b) | bSf (c)), (mOp | mXa | mSf)
00056 #define OpXaSfF2(a,b,c,d) \
00057        (bOp (a) | bXa (b) | bSf (c) | bF2 (d)), (mOp | mXa | mSf | mF2)
00058 #define OpXaSfF4(a,b,c,d) \
00059        (bOp (a) | bXa (b) | bSf (c) | bF4 (d)), (mOp | mXa | mSf | mF4)
00060 #define OpXaSfF2F4(a,b,c,d,e) \
00061        (bOp (a) | bXa (b) | bSf (c) | bF2 (d) | bF4 (e)), \
00062        (mOp | mXa | mSf | mF2 | mF4)
00063 #define OpXaX2(a,b,c)       (bOp (a) | bXa (b) | bX2 (c)), (mOp | mXa | mX2)
00064 #define OpXaX2F2(a,b,c,d) \
00065        (bOp (a) | bXa (b) | bX2 (c) | bF2 (d)), (mOp | mXa | mX2 | mF2)
00066 #define OpRaRbTaSf(a,b,c,d,e) \
00067        (bOp (a) | bRa (b) | bRb (c) | bTa (d) | bSf (e)), \
00068        (mOp | mRa | mRb | mTa | mSf)
00069 #define OpTa(a,b)    (bOp (a) | bTa (b)), (mOp | mTa)
00070 #define OpXbQSf(a,b,c,d) \
00071        (bOp (a) | bXb (b) | bQ (c) | bSf (d)), (mOp | mXb | mQ | mSf)
00072 #define OpXbX6(a,b,c) \
00073        (bOp (a) | bXb (b) | bX6 (c)), (mOp | mXb | mX6)
00074 #define OpXbX6Y(a,b,c,d) \
00075        (bOp (a) | bXb (b) | bX6 (c) | bY (d)), (mOp | mXb | mX6 | mY)
00076 #define OpXbX6F2(a,b,c,d) \
00077        (bOp (a) | bXb (b) | bX6 (c) | bF2 (d)), (mOp | mXb | mX6 | mF2)
00078 #define OpXbX6Sf(a,b,c,d) \
00079        (bOp (a) | bXb (b) | bX6 (c) | bSf (d)), (mOp | mXb | mX6 | mSf)
00080 
00081 /* Used to initialise unused fields in ia64_opcode struct,
00082    in order to stop gcc from complaining.  */
00083 #define EMPTY 0,0,NULL
00084 
00085 struct ia64_opcode ia64_opcodes_f[] =
00086   {
00087     /* F-type instruction encodings (sorted according to major opcode).  */
00088 
00089     {"frcpa.s0",     f2, OpXbQSf (0, 1, 0, 0), {F1, P2, F2, F3}, EMPTY},
00090     {"frcpa",        f2, OpXbQSf (0, 1, 0, 0), {F1, P2, F2, F3}, PSEUDO, 0, NULL},
00091     {"frcpa.s1",     f2, OpXbQSf (0, 1, 0, 1), {F1, P2, F2, F3}, EMPTY},
00092     {"frcpa.s2",     f2, OpXbQSf (0, 1, 0, 2), {F1, P2, F2, F3}, EMPTY},
00093     {"frcpa.s3",     f2, OpXbQSf (0, 1, 0, 3), {F1, P2, F2, F3}, EMPTY},
00094 
00095     {"frsqrta.s0",   f2, OpXbQSf (0, 1, 1, 0), {F1, P2, F3}, EMPTY},
00096     {"frsqrta",             f2, OpXbQSf (0, 1, 1, 0), {F1, P2, F3}, PSEUDO, 0, NULL},
00097     {"frsqrta.s1",   f2, OpXbQSf (0, 1, 1, 1), {F1, P2, F3}, EMPTY},
00098     {"frsqrta.s2",   f2, OpXbQSf (0, 1, 1, 2), {F1, P2, F3}, EMPTY},
00099     {"frsqrta.s3",   f2, OpXbQSf (0, 1, 1, 3), {F1, P2, F3}, EMPTY},
00100 
00101     {"fmin.s0",             f, OpXbX6Sf (0, 0, 0x14, 0), {F1, F2, F3}, EMPTY},
00102     {"fmin",         f, OpXbX6Sf (0, 0, 0x14, 0), {F1, F2, F3}, PSEUDO, 0, NULL},
00103     {"fmin.s1",             f, OpXbX6Sf (0, 0, 0x14, 1), {F1, F2, F3}, EMPTY},
00104     {"fmin.s2",             f, OpXbX6Sf (0, 0, 0x14, 2), {F1, F2, F3}, EMPTY},
00105     {"fmin.s3",             f, OpXbX6Sf (0, 0, 0x14, 3), {F1, F2, F3}, EMPTY},
00106     {"fmax.s0",             f, OpXbX6Sf (0, 0, 0x15, 0), {F1, F2, F3}, EMPTY},
00107     {"fmax",         f, OpXbX6Sf (0, 0, 0x15, 0), {F1, F2, F3}, PSEUDO, 0, NULL},
00108     {"fmax.s1",             f, OpXbX6Sf (0, 0, 0x15, 1), {F1, F2, F3}, EMPTY},
00109     {"fmax.s2",             f, OpXbX6Sf (0, 0, 0x15, 2), {F1, F2, F3}, EMPTY},
00110     {"fmax.s3",             f, OpXbX6Sf (0, 0, 0x15, 3), {F1, F2, F3}, EMPTY},
00111     {"famin.s0",     f, OpXbX6Sf (0, 0, 0x16, 0), {F1, F2, F3}, EMPTY},
00112     {"famin",        f, OpXbX6Sf (0, 0, 0x16, 0), {F1, F2, F3}, PSEUDO, 0, NULL},
00113     {"famin.s1",     f, OpXbX6Sf (0, 0, 0x16, 1), {F1, F2, F3}, EMPTY},
00114     {"famin.s2",     f, OpXbX6Sf (0, 0, 0x16, 2), {F1, F2, F3}, EMPTY},
00115     {"famin.s3",     f, OpXbX6Sf (0, 0, 0x16, 3), {F1, F2, F3}, EMPTY},
00116     {"famax.s0",     f, OpXbX6Sf (0, 0, 0x17, 0), {F1, F2, F3}, EMPTY},
00117     {"famax",        f, OpXbX6Sf (0, 0, 0x17, 0), {F1, F2, F3}, PSEUDO, 0, NULL},
00118     {"famax.s1",     f, OpXbX6Sf (0, 0, 0x17, 1), {F1, F2, F3}, EMPTY},
00119     {"famax.s2",     f, OpXbX6Sf (0, 0, 0x17, 2), {F1, F2, F3}, EMPTY},
00120     {"famax.s3",     f, OpXbX6Sf (0, 0, 0x17, 3), {F1, F2, F3}, EMPTY},
00121 
00122     {"mov",          f, OpXbX6 (0, 0, 0x10), {F1, F3}, PSEUDO | F2_EQ_F3, 0, NULL},
00123     {"fabs",         f, OpXbX6F2 (0, 0, 0x10, 0), {F1, F3}, PSEUDO, 0, NULL},
00124     {"fneg",         f, OpXbX6   (0, 0, 0x11), {F1, F3}, PSEUDO | F2_EQ_F3, 0, NULL},
00125     {"fnegabs",             f, OpXbX6F2 (0, 0, 0x11, 0), {F1, F3}, PSEUDO, 0, NULL},
00126     {"fmerge.s",     f, OpXbX6   (0, 0, 0x10), {F1, F2, F3}, EMPTY},
00127     {"fmerge.ns",    f, OpXbX6   (0, 0, 0x11), {F1, F2, F3}, EMPTY},
00128 
00129     {"fmerge.se",    f, OpXbX6 (0, 0, 0x12), {F1, F2, F3}, EMPTY},
00130     {"fmix.lr",             f, OpXbX6 (0, 0, 0x39), {F1, F2, F3}, EMPTY},
00131     {"fmix.r",              f, OpXbX6 (0, 0, 0x3a), {F1, F2, F3}, EMPTY},
00132     {"fmix.l",              f, OpXbX6 (0, 0, 0x3b), {F1, F2, F3}, EMPTY},
00133     {"fsxt.r",              f, OpXbX6 (0, 0, 0x3c), {F1, F2, F3}, EMPTY},
00134     {"fsxt.l",              f, OpXbX6 (0, 0, 0x3d), {F1, F2, F3}, EMPTY},
00135     {"fpack",        f, OpXbX6 (0, 0, 0x28), {F1, F2, F3}, EMPTY},
00136     {"fswap",        f, OpXbX6 (0, 0, 0x34), {F1, F2, F3}, EMPTY},
00137     {"fswap.nl",     f, OpXbX6 (0, 0, 0x35), {F1, F2, F3}, EMPTY},
00138     {"fswap.nr",     f, OpXbX6 (0, 0, 0x36), {F1, F2, F3}, EMPTY},
00139     {"fand",         f, OpXbX6 (0, 0, 0x2c), {F1, F2, F3}, EMPTY},
00140     {"fandcm",              f, OpXbX6 (0, 0, 0x2d), {F1, F2, F3}, EMPTY},
00141     {"for",          f, OpXbX6 (0, 0, 0x2e), {F1, F2, F3}, EMPTY},
00142     {"fxor",         f, OpXbX6 (0, 0, 0x2f), {F1, F2, F3}, EMPTY},
00143 
00144     {"fcvt.fx.s0",          f, OpXbX6Sf (0, 0, 0x18, 0), {F1, F2}, EMPTY},
00145     {"fcvt.fx",                    f, OpXbX6Sf (0, 0, 0x18, 0), {F1, F2}, PSEUDO, 0, NULL},
00146     {"fcvt.fx.s1",          f, OpXbX6Sf (0, 0, 0x18, 1), {F1, F2}, EMPTY},
00147     {"fcvt.fx.s2",          f, OpXbX6Sf (0, 0, 0x18, 2), {F1, F2}, EMPTY},
00148     {"fcvt.fx.s3",          f, OpXbX6Sf (0, 0, 0x18, 3), {F1, F2}, EMPTY},
00149     {"fcvt.fxu.s0",         f, OpXbX6Sf (0, 0, 0x19, 0), {F1, F2}, EMPTY},
00150     {"fcvt.fxu",            f, OpXbX6Sf (0, 0, 0x19, 0), {F1, F2}, PSEUDO, 0, NULL},
00151     {"fcvt.fxu.s1",         f, OpXbX6Sf (0, 0, 0x19, 1), {F1, F2}, EMPTY},
00152     {"fcvt.fxu.s2",         f, OpXbX6Sf (0, 0, 0x19, 2), {F1, F2}, EMPTY},
00153     {"fcvt.fxu.s3",         f, OpXbX6Sf (0, 0, 0x19, 3), {F1, F2}, EMPTY},
00154     {"fcvt.fx.trunc.s0",    f, OpXbX6Sf (0, 0, 0x1a, 0), {F1, F2}, EMPTY},
00155     {"fcvt.fx.trunc",              f, OpXbX6Sf (0, 0, 0x1a, 0), {F1, F2}, PSEUDO, 0, NULL},
00156     {"fcvt.fx.trunc.s1",    f, OpXbX6Sf (0, 0, 0x1a, 1), {F1, F2}, EMPTY},
00157     {"fcvt.fx.trunc.s2",    f, OpXbX6Sf (0, 0, 0x1a, 2), {F1, F2}, EMPTY},
00158     {"fcvt.fx.trunc.s3",    f, OpXbX6Sf (0, 0, 0x1a, 3), {F1, F2}, EMPTY},
00159     {"fcvt.fxu.trunc.s0",   f, OpXbX6Sf (0, 0, 0x1b, 0), {F1, F2}, EMPTY},
00160     {"fcvt.fxu.trunc",             f, OpXbX6Sf (0, 0, 0x1b, 0), {F1, F2}, PSEUDO, 0, NULL},
00161     {"fcvt.fxu.trunc.s1",   f, OpXbX6Sf (0, 0, 0x1b, 1), {F1, F2}, EMPTY},
00162     {"fcvt.fxu.trunc.s2",   f, OpXbX6Sf (0, 0, 0x1b, 2), {F1, F2}, EMPTY},
00163     {"fcvt.fxu.trunc.s3",   f, OpXbX6Sf (0, 0, 0x1b, 3), {F1, F2}, EMPTY},
00164 
00165     {"fcvt.xf",             f, OpXbX6 (0, 0, 0x1c), {F1, F2}, EMPTY},
00166 
00167     {"fsetc.s0",     f0, OpXbX6Sf (0, 0, 0x04, 0), {IMMU7a, IMMU7b}, EMPTY},
00168     {"fsetc",        f0, OpXbX6Sf (0, 0, 0x04, 0), {IMMU7a, IMMU7b}, PSEUDO, 0, NULL},
00169     {"fsetc.s1",     f0, OpXbX6Sf (0, 0, 0x04, 1), {IMMU7a, IMMU7b}, EMPTY},
00170     {"fsetc.s2",     f0, OpXbX6Sf (0, 0, 0x04, 2), {IMMU7a, IMMU7b}, EMPTY},
00171     {"fsetc.s3",     f0, OpXbX6Sf (0, 0, 0x04, 3), {IMMU7a, IMMU7b}, EMPTY},
00172     {"fclrf.s0",     f0, OpXbX6Sf (0, 0, 0x05, 0), {}, EMPTY},
00173     {"fclrf",        f0, OpXbX6Sf (0, 0, 0x05, 0), {0}, PSEUDO, 0, NULL},
00174     {"fclrf.s1",     f0, OpXbX6Sf (0, 0, 0x05, 1), {}, EMPTY},
00175     {"fclrf.s2",     f0, OpXbX6Sf (0, 0, 0x05, 2), {}, EMPTY},
00176     {"fclrf.s3",     f0, OpXbX6Sf (0, 0, 0x05, 3), {}, EMPTY},
00177     {"fchkf.s0",     f0, OpXbX6Sf (0, 0, 0x08, 0), {TGT25}, EMPTY},
00178     {"fchkf",        f0, OpXbX6Sf (0, 0, 0x08, 0), {TGT25}, PSEUDO, 0, NULL},
00179     {"fchkf.s1",     f0, OpXbX6Sf (0, 0, 0x08, 1), {TGT25}, EMPTY},
00180     {"fchkf.s2",     f0, OpXbX6Sf (0, 0, 0x08, 2), {TGT25}, EMPTY},
00181     {"fchkf.s3",     f0, OpXbX6Sf (0, 0, 0x08, 3), {TGT25}, EMPTY},
00182 
00183     {"break.f",             f0, OpXbX6 (0, 0, 0x00), {IMMU21}, EMPTY},
00184     {"nop.f",        f0, OpXbX6Y (0, 0, 0x01, 0), {IMMU21}, EMPTY},
00185     {"hint.f",              f0, OpXbX6Y (0, 0, 0x01, 1), {IMMU21}, EMPTY},
00186 
00187     {"fprcpa.s0",    f2, OpXbQSf (1, 1, 0, 0), {F1, P2, F2, F3}, EMPTY},
00188     {"fprcpa",              f2, OpXbQSf (1, 1, 0, 0), {F1, P2, F2, F3}, PSEUDO, 0, NULL},
00189     {"fprcpa.s1",    f2, OpXbQSf (1, 1, 0, 1), {F1, P2, F2, F3}, EMPTY},
00190     {"fprcpa.s2",    f2, OpXbQSf (1, 1, 0, 2), {F1, P2, F2, F3}, EMPTY},
00191     {"fprcpa.s3",    f2, OpXbQSf (1, 1, 0, 3), {F1, P2, F2, F3}, EMPTY},
00192 
00193     {"fprsqrta.s0",  f2, OpXbQSf (1, 1, 1, 0), {F1, P2, F3}, EMPTY},
00194     {"fprsqrta",     f2, OpXbQSf (1, 1, 1, 0), {F1, P2, F3}, PSEUDO, 0, NULL},
00195     {"fprsqrta.s1",  f2, OpXbQSf (1, 1, 1, 1), {F1, P2, F3}, EMPTY},
00196     {"fprsqrta.s2",  f2, OpXbQSf (1, 1, 1, 2), {F1, P2, F3}, EMPTY},
00197     {"fprsqrta.s3",  f2, OpXbQSf (1, 1, 1, 3), {F1, P2, F3}, EMPTY},
00198 
00199     {"fpmin.s0",     f, OpXbX6Sf (1, 0, 0x14, 0), {F1, F2, F3}, EMPTY},
00200     {"fpmin",        f, OpXbX6Sf (1, 0, 0x14, 0), {F1, F2, F3}, PSEUDO, 0, NULL},
00201     {"fpmin.s1",     f, OpXbX6Sf (1, 0, 0x14, 1), {F1, F2, F3}, EMPTY},
00202     {"fpmin.s2",     f, OpXbX6Sf (1, 0, 0x14, 2), {F1, F2, F3}, EMPTY},
00203     {"fpmin.s3",     f, OpXbX6Sf (1, 0, 0x14, 3), {F1, F2, F3}, EMPTY},
00204     {"fpmax.s0",     f, OpXbX6Sf (1, 0, 0x15, 0), {F1, F2, F3}, EMPTY},
00205     {"fpmax",        f, OpXbX6Sf (1, 0, 0x15, 0), {F1, F2, F3}, PSEUDO, 0, NULL},
00206     {"fpmax.s1",     f, OpXbX6Sf (1, 0, 0x15, 1), {F1, F2, F3}, EMPTY},
00207     {"fpmax.s2",     f, OpXbX6Sf (1, 0, 0x15, 2), {F1, F2, F3}, EMPTY},
00208     {"fpmax.s3",     f, OpXbX6Sf (1, 0, 0x15, 3), {F1, F2, F3}, EMPTY},
00209     {"fpamin.s0",    f, OpXbX6Sf (1, 0, 0x16, 0), {F1, F2, F3}, EMPTY},
00210     {"fpamin",              f, OpXbX6Sf (1, 0, 0x16, 0), {F1, F2, F3}, PSEUDO, 0, NULL},
00211     {"fpamin.s1",    f, OpXbX6Sf (1, 0, 0x16, 1), {F1, F2, F3}, EMPTY},
00212     {"fpamin.s2",    f, OpXbX6Sf (1, 0, 0x16, 2), {F1, F2, F3}, EMPTY},
00213     {"fpamin.s3",    f, OpXbX6Sf (1, 0, 0x16, 3), {F1, F2, F3}, EMPTY},
00214     {"fpamax.s0",    f, OpXbX6Sf (1, 0, 0x17, 0), {F1, F2, F3}, EMPTY},
00215     {"fpamax",              f, OpXbX6Sf (1, 0, 0x17, 0), {F1, F2, F3}, PSEUDO, 0, NULL},
00216     {"fpamax.s1",    f, OpXbX6Sf (1, 0, 0x17, 1), {F1, F2, F3}, EMPTY},
00217     {"fpamax.s2",    f, OpXbX6Sf (1, 0, 0x17, 2), {F1, F2, F3}, EMPTY},
00218     {"fpamax.s3",    f, OpXbX6Sf (1, 0, 0x17, 3), {F1, F2, F3}, EMPTY},
00219 
00220     {"fpcmp.eq.s0",  f, OpXbX6Sf (1, 0, 0x30, 0), {F1, F2, F3}, EMPTY},
00221     {"fpcmp.eq",     f, OpXbX6Sf (1, 0, 0x30, 0), {F1, F2, F3}, PSEUDO, 0, NULL},
00222     {"fpcmp.eq.s1",  f, OpXbX6Sf (1, 0, 0x30, 1), {F1, F2, F3}, EMPTY},
00223     {"fpcmp.eq.s2",  f, OpXbX6Sf (1, 0, 0x30, 2), {F1, F2, F3}, EMPTY},
00224     {"fpcmp.eq.s3",  f, OpXbX6Sf (1, 0, 0x30, 3), {F1, F2, F3}, EMPTY},
00225     {"fpcmp.lt.s0",  f, OpXbX6Sf (1, 0, 0x31, 0), {F1, F2, F3}, EMPTY},
00226     {"fpcmp.lt",     f, OpXbX6Sf (1, 0, 0x31, 0), {F1, F2, F3}, PSEUDO, 0, NULL},
00227     {"fpcmp.lt.s1",  f, OpXbX6Sf (1, 0, 0x31, 1), {F1, F2, F3}, EMPTY},
00228     {"fpcmp.lt.s2",  f, OpXbX6Sf (1, 0, 0x31, 2), {F1, F2, F3}, EMPTY},
00229     {"fpcmp.lt.s3",  f, OpXbX6Sf (1, 0, 0x31, 3), {F1, F2, F3}, EMPTY},
00230     {"fpcmp.le.s0",  f, OpXbX6Sf (1, 0, 0x32, 0), {F1, F2, F3}, EMPTY},
00231     {"fpcmp.le",     f, OpXbX6Sf (1, 0, 0x32, 0), {F1, F2, F3}, PSEUDO, 0, NULL},
00232     {"fpcmp.le.s1",  f, OpXbX6Sf (1, 0, 0x32, 1), {F1, F2, F3}, EMPTY},
00233     {"fpcmp.le.s2",  f, OpXbX6Sf (1, 0, 0x32, 2), {F1, F2, F3}, EMPTY},
00234     {"fpcmp.le.s3",  f, OpXbX6Sf (1, 0, 0x32, 3), {F1, F2, F3}, EMPTY},
00235     {"fpcmp.gt.s0",  f, OpXbX6Sf (1, 0, 0x31, 0), {F1, F3, F2}, PSEUDO, 0, NULL},
00236     {"fpcmp.gt",     f, OpXbX6Sf (1, 0, 0x31, 0), {F1, F3, F2}, PSEUDO, 0, NULL},
00237     {"fpcmp.gt.s1",  f, OpXbX6Sf (1, 0, 0x31, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
00238     {"fpcmp.gt.s2",  f, OpXbX6Sf (1, 0, 0x31, 2), {F1, F3, F2}, PSEUDO, 0, NULL},
00239     {"fpcmp.gt.s3",  f, OpXbX6Sf (1, 0, 0x31, 3), {F1, F3, F2}, PSEUDO, 0, NULL},
00240     {"fpcmp.ge.s0",  f, OpXbX6Sf (1, 0, 0x32, 0), {F1, F3, F2}, PSEUDO, 0, NULL},
00241     {"fpcmp.ge",     f, OpXbX6Sf (1, 0, 0x32, 0), {F1, F3, F2}, PSEUDO, 0, NULL},
00242     {"fpcmp.ge.s1",  f, OpXbX6Sf (1, 0, 0x32, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
00243     {"fpcmp.ge.s2",  f, OpXbX6Sf (1, 0, 0x32, 2), {F1, F3, F2}, PSEUDO, 0, NULL},
00244     {"fpcmp.ge.s3",  f, OpXbX6Sf (1, 0, 0x32, 3), {F1, F3, F2}, PSEUDO, 0, NULL},
00245     {"fpcmp.unord.s0",      f, OpXbX6Sf (1, 0, 0x33, 0), {F1, F2, F3}, EMPTY},
00246     {"fpcmp.unord",  f, OpXbX6Sf (1, 0, 0x33, 0), {F1, F2, F3}, PSEUDO, 0, NULL},
00247     {"fpcmp.unord.s1",      f, OpXbX6Sf (1, 0, 0x33, 1), {F1, F2, F3}, EMPTY},
00248     {"fpcmp.unord.s2",      f, OpXbX6Sf (1, 0, 0x33, 2), {F1, F2, F3}, EMPTY},
00249     {"fpcmp.unord.s3",      f, OpXbX6Sf (1, 0, 0x33, 3), {F1, F2, F3}, EMPTY},
00250     {"fpcmp.neq.s0", f, OpXbX6Sf (1, 0, 0x34, 0), {F1, F2, F3}, EMPTY},
00251     {"fpcmp.neq",    f, OpXbX6Sf (1, 0, 0x34, 0), {F1, F2, F3}, PSEUDO, 0, NULL},
00252     {"fpcmp.neq.s1", f, OpXbX6Sf (1, 0, 0x34, 1), {F1, F2, F3}, EMPTY},
00253     {"fpcmp.neq.s2", f, OpXbX6Sf (1, 0, 0x34, 2), {F1, F2, F3}, EMPTY},
00254     {"fpcmp.neq.s3", f, OpXbX6Sf (1, 0, 0x34, 3), {F1, F2, F3}, EMPTY},
00255     {"fpcmp.nlt.s0", f, OpXbX6Sf (1, 0, 0x35, 0), {F1, F2, F3}, EMPTY},
00256     {"fpcmp.nlt",    f, OpXbX6Sf (1, 0, 0x35, 0), {F1, F2, F3}, PSEUDO, 0, NULL},
00257     {"fpcmp.nlt.s1", f, OpXbX6Sf (1, 0, 0x35, 1), {F1, F2, F3}, EMPTY},
00258     {"fpcmp.nlt.s2", f, OpXbX6Sf (1, 0, 0x35, 2), {F1, F2, F3}, EMPTY},
00259     {"fpcmp.nlt.s3", f, OpXbX6Sf (1, 0, 0x35, 3), {F1, F2, F3}, EMPTY},
00260     {"fpcmp.nle.s0", f, OpXbX6Sf (1, 0, 0x36, 0), {F1, F2, F3}, EMPTY},
00261     {"fpcmp.nle",    f, OpXbX6Sf (1, 0, 0x36, 0), {F1, F2, F3}, PSEUDO, 0, NULL},
00262     {"fpcmp.nle.s1", f, OpXbX6Sf (1, 0, 0x36, 1), {F1, F2, F3}, EMPTY},
00263     {"fpcmp.nle.s2", f, OpXbX6Sf (1, 0, 0x36, 2), {F1, F2, F3}, EMPTY},
00264     {"fpcmp.nle.s3", f, OpXbX6Sf (1, 0, 0x36, 3), {F1, F2, F3}, EMPTY},
00265     {"fpcmp.ngt.s0", f, OpXbX6Sf (1, 0, 0x35, 0), {F1, F3, F2}, PSEUDO, 0, NULL},
00266     {"fpcmp.ngt",    f, OpXbX6Sf (1, 0, 0x35, 0), {F1, F3, F2}, PSEUDO, 0, NULL},
00267     {"fpcmp.ngt.s1", f, OpXbX6Sf (1, 0, 0x35, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
00268     {"fpcmp.ngt.s2", f, OpXbX6Sf (1, 0, 0x35, 2), {F1, F3, F2}, PSEUDO, 0, NULL},
00269     {"fpcmp.ngt.s3", f, OpXbX6Sf (1, 0, 0x35, 3), {F1, F3, F2}, PSEUDO, 0, NULL},
00270     {"fpcmp.nge.s0", f, OpXbX6Sf (1, 0, 0x36, 0), {F1, F3, F2}, PSEUDO, 0, NULL},
00271     {"fpcmp.nge",    f, OpXbX6Sf (1, 0, 0x36, 0), {F1, F3, F2}, PSEUDO, 0, NULL},
00272     {"fpcmp.nge.s1", f, OpXbX6Sf (1, 0, 0x36, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
00273     {"fpcmp.nge.s2", f, OpXbX6Sf (1, 0, 0x36, 2), {F1, F3, F2}, PSEUDO, 0, NULL},
00274     {"fpcmp.nge.s3", f, OpXbX6Sf (1, 0, 0x36, 3), {F1, F3, F2}, PSEUDO, 0, NULL},
00275     {"fpcmp.ord.s0", f, OpXbX6Sf (1, 0, 0x37, 0), {F1, F2, F3}, EMPTY},
00276     {"fpcmp.ord",    f, OpXbX6Sf (1, 0, 0x37, 0), {F1, F2, F3}, PSEUDO, 0, NULL},
00277     {"fpcmp.ord.s1", f, OpXbX6Sf (1, 0, 0x37, 1), {F1, F2, F3}, EMPTY},
00278     {"fpcmp.ord.s2", f, OpXbX6Sf (1, 0, 0x37, 2), {F1, F2, F3}, EMPTY},
00279     {"fpcmp.ord.s3", f, OpXbX6Sf (1, 0, 0x37, 3), {F1, F2, F3}, EMPTY},
00280 
00281     {"fpabs",        f, OpXbX6F2 (1, 0, 0x10, 0), {F1, F3}, PSEUDO, 0, NULL},
00282     {"fpneg",        f, OpXbX6   (1, 0, 0x11), {F1, F3}, PSEUDO | F2_EQ_F3, 0, NULL},
00283     {"fpnegabs",     f, OpXbX6F2 (1, 0, 0x11, 0), {F1, F3}, PSEUDO, 0, NULL},
00284     {"fpmerge.s",    f, OpXbX6   (1, 0, 0x10), {F1, F2, F3}, EMPTY},
00285     {"fpmerge.ns",   f, OpXbX6   (1, 0, 0x11), {F1, F2, F3}, EMPTY},
00286     {"fpmerge.se",   f, OpXbX6 (1, 0, 0x12), {F1, F2, F3}, EMPTY},
00287 
00288     {"fpcvt.fx.s0",         f, OpXbX6Sf (1, 0, 0x18, 0), {F1, F2}, EMPTY},
00289     {"fpcvt.fx",            f, OpXbX6Sf (1, 0, 0x18, 0), {F1, F2}, PSEUDO, 0, NULL},
00290     {"fpcvt.fx.s1",         f, OpXbX6Sf (1, 0, 0x18, 1), {F1, F2}, EMPTY},
00291     {"fpcvt.fx.s2",         f, OpXbX6Sf (1, 0, 0x18, 2), {F1, F2}, EMPTY},
00292     {"fpcvt.fx.s3",         f, OpXbX6Sf (1, 0, 0x18, 3), {F1, F2}, EMPTY},
00293     {"fpcvt.fxu.s0",        f, OpXbX6Sf (1, 0, 0x19, 0), {F1, F2}, EMPTY},
00294     {"fpcvt.fxu",           f, OpXbX6Sf (1, 0, 0x19, 0), {F1, F2}, PSEUDO, 0, NULL},
00295     {"fpcvt.fxu.s1",        f, OpXbX6Sf (1, 0, 0x19, 1), {F1, F2}, EMPTY},
00296     {"fpcvt.fxu.s2",        f, OpXbX6Sf (1, 0, 0x19, 2), {F1, F2}, EMPTY},
00297     {"fpcvt.fxu.s3",        f, OpXbX6Sf (1, 0, 0x19, 3), {F1, F2}, EMPTY},
00298     {"fpcvt.fx.trunc.s0",   f, OpXbX6Sf (1, 0, 0x1a, 0), {F1, F2}, EMPTY},
00299     {"fpcvt.fx.trunc",             f, OpXbX6Sf (1, 0, 0x1a, 0), {F1, F2}, PSEUDO, 0, NULL},
00300     {"fpcvt.fx.trunc.s1",   f, OpXbX6Sf (1, 0, 0x1a, 1), {F1, F2}, EMPTY},
00301     {"fpcvt.fx.trunc.s2",   f, OpXbX6Sf (1, 0, 0x1a, 2), {F1, F2}, EMPTY},
00302     {"fpcvt.fx.trunc.s3",   f, OpXbX6Sf (1, 0, 0x1a, 3), {F1, F2}, EMPTY},
00303     {"fpcvt.fxu.trunc.s0",  f, OpXbX6Sf (1, 0, 0x1b, 0), {F1, F2}, EMPTY},
00304     {"fpcvt.fxu.trunc",            f, OpXbX6Sf (1, 0, 0x1b, 0), {F1, F2}, PSEUDO, 0, NULL},
00305     {"fpcvt.fxu.trunc.s1",  f, OpXbX6Sf (1, 0, 0x1b, 1), {F1, F2}, EMPTY},
00306     {"fpcvt.fxu.trunc.s2",  f, OpXbX6Sf (1, 0, 0x1b, 2), {F1, F2}, EMPTY},
00307     {"fpcvt.fxu.trunc.s3",  f, OpXbX6Sf (1, 0, 0x1b, 3), {F1, F2}, EMPTY},
00308 
00309     {"fcmp.eq.s0",     f2, OpRaRbTaSf (4, 0, 0, 0, 0), {P1, P2, F2, F3}, EMPTY},
00310     {"fcmp.eq",               f2, OpRaRbTaSf (4, 0, 0, 0, 0), {P1, P2, F2, F3}, PSEUDO, 0, NULL},
00311     {"fcmp.eq.s1",     f2, OpRaRbTaSf (4, 0, 0, 0, 1), {P1, P2, F2, F3}, EMPTY},
00312     {"fcmp.eq.s2",     f2, OpRaRbTaSf (4, 0, 0, 0, 2), {P1, P2, F2, F3}, EMPTY},
00313     {"fcmp.eq.s3",     f2, OpRaRbTaSf (4, 0, 0, 0, 3), {P1, P2, F2, F3}, EMPTY},
00314     {"fcmp.lt.s0",     f2, OpRaRbTaSf (4, 0, 1, 0, 0), {P1, P2, F2, F3}, EMPTY},
00315     {"fcmp.lt",               f2, OpRaRbTaSf (4, 0, 1, 0, 0), {P1, P2, F2, F3}, PSEUDO, 0, NULL},
00316     {"fcmp.lt.s1",     f2, OpRaRbTaSf (4, 0, 1, 0, 1), {P1, P2, F2, F3}, EMPTY},
00317     {"fcmp.lt.s2",     f2, OpRaRbTaSf (4, 0, 1, 0, 2), {P1, P2, F2, F3}, EMPTY},
00318     {"fcmp.lt.s3",     f2, OpRaRbTaSf (4, 0, 1, 0, 3), {P1, P2, F2, F3}, EMPTY},
00319     {"fcmp.le.s0",     f2, OpRaRbTaSf (4, 1, 0, 0, 0), {P1, P2, F2, F3}, EMPTY},
00320     {"fcmp.le",               f2, OpRaRbTaSf (4, 1, 0, 0, 0), {P1, P2, F2, F3}, PSEUDO, 0, NULL},
00321     {"fcmp.le.s1",     f2, OpRaRbTaSf (4, 1, 0, 0, 1), {P1, P2, F2, F3}, EMPTY},
00322     {"fcmp.le.s2",     f2, OpRaRbTaSf (4, 1, 0, 0, 2), {P1, P2, F2, F3}, EMPTY},
00323     {"fcmp.le.s3",     f2, OpRaRbTaSf (4, 1, 0, 0, 3), {P1, P2, F2, F3}, EMPTY},
00324     {"fcmp.unord.s0",         f2, OpRaRbTaSf (4, 1, 1, 0, 0), {P1, P2, F2, F3}, EMPTY},
00325     {"fcmp.unord",     f2, OpRaRbTaSf (4, 1, 1, 0, 0), {P1, P2, F2, F3}, PSEUDO, 0, NULL},
00326     {"fcmp.unord.s1",         f2, OpRaRbTaSf (4, 1, 1, 0, 1), {P1, P2, F2, F3}, EMPTY},
00327     {"fcmp.unord.s2",         f2, OpRaRbTaSf (4, 1, 1, 0, 2), {P1, P2, F2, F3}, EMPTY},
00328     {"fcmp.unord.s3",         f2, OpRaRbTaSf (4, 1, 1, 0, 3), {P1, P2, F2, F3}, EMPTY},
00329     {"fcmp.eq.unc.s0",        f2, OpRaRbTaSf (4, 0, 0, 1, 0), {P1, P2, F2, F3}, EMPTY},
00330     {"fcmp.eq.unc",    f2, OpRaRbTaSf (4, 0, 0, 1, 0), {P1, P2, F2, F3}, PSEUDO, 0, NULL},
00331     {"fcmp.eq.unc.s1",        f2, OpRaRbTaSf (4, 0, 0, 1, 1), {P1, P2, F2, F3}, EMPTY},
00332     {"fcmp.eq.unc.s2",        f2, OpRaRbTaSf (4, 0, 0, 1, 2), {P1, P2, F2, F3}, EMPTY},
00333     {"fcmp.eq.unc.s3",        f2, OpRaRbTaSf (4, 0, 0, 1, 3), {P1, P2, F2, F3}, EMPTY},
00334     {"fcmp.lt.unc.s0",        f2, OpRaRbTaSf (4, 0, 1, 1, 0), {P1, P2, F2, F3}, EMPTY},
00335     {"fcmp.lt.unc",    f2, OpRaRbTaSf (4, 0, 1, 1, 0), {P1, P2, F2, F3}, PSEUDO, 0, NULL},
00336     {"fcmp.lt.unc.s1",        f2, OpRaRbTaSf (4, 0, 1, 1, 1), {P1, P2, F2, F3}, EMPTY},
00337     {"fcmp.lt.unc.s2",        f2, OpRaRbTaSf (4, 0, 1, 1, 2), {P1, P2, F2, F3}, EMPTY},
00338     {"fcmp.lt.unc.s3",        f2, OpRaRbTaSf (4, 0, 1, 1, 3), {P1, P2, F2, F3}, EMPTY},
00339     {"fcmp.le.unc.s0",        f2, OpRaRbTaSf (4, 1, 0, 1, 0), {P1, P2, F2, F3}, EMPTY},
00340     {"fcmp.le.unc",    f2, OpRaRbTaSf (4, 1, 0, 1, 0), {P1, P2, F2, F3}, PSEUDO, 0, NULL},
00341     {"fcmp.le.unc.s1",        f2, OpRaRbTaSf (4, 1, 0, 1, 1), {P1, P2, F2, F3}, EMPTY},
00342     {"fcmp.le.unc.s2",        f2, OpRaRbTaSf (4, 1, 0, 1, 2), {P1, P2, F2, F3}, EMPTY},
00343     {"fcmp.le.unc.s3",        f2, OpRaRbTaSf (4, 1, 0, 1, 3), {P1, P2, F2, F3}, EMPTY},
00344     {"fcmp.unord.unc.s0", f2, OpRaRbTaSf (4, 1, 1, 1, 0), {P1, P2, F2, F3}, EMPTY},
00345     {"fcmp.unord.unc",    f2, OpRaRbTaSf (4, 1, 1, 1, 0), {P1, P2, F2, F3}, PSEUDO, 0, NULL},
00346     {"fcmp.unord.unc.s1", f2, OpRaRbTaSf (4, 1, 1, 1, 1), {P1, P2, F2, F3}, EMPTY},
00347     {"fcmp.unord.unc.s2", f2, OpRaRbTaSf (4, 1, 1, 1, 2), {P1, P2, F2, F3}, EMPTY},
00348     {"fcmp.unord.unc.s3", f2, OpRaRbTaSf (4, 1, 1, 1, 3), {P1, P2, F2, F3}, EMPTY},
00349 
00350     /* pseudo-ops of the above */
00351     {"fcmp.gt.s0",     f2, OpRaRbTaSf (4, 0, 1, 0, 0), {P1, P2, F3, F2}, EMPTY},
00352     {"fcmp.gt",               f2, OpRaRbTaSf (4, 0, 1, 0, 0), {P1, P2, F3, F2}, PSEUDO, 0, NULL},
00353     {"fcmp.gt.s1",     f2, OpRaRbTaSf (4, 0, 1, 0, 1), {P1, P2, F3, F2}, EMPTY},
00354     {"fcmp.gt.s2",     f2, OpRaRbTaSf (4, 0, 1, 0, 2), {P1, P2, F3, F2}, EMPTY},
00355     {"fcmp.gt.s3",     f2, OpRaRbTaSf (4, 0, 1, 0, 3), {P1, P2, F3, F2}, EMPTY},
00356     {"fcmp.ge.s0",     f2, OpRaRbTaSf (4, 1, 0, 0, 0), {P1, P2, F3, F2}, EMPTY},
00357     {"fcmp.ge",               f2, OpRaRbTaSf (4, 1, 0, 0, 0), {P1, P2, F3, F2}, PSEUDO, 0, NULL},
00358     {"fcmp.ge.s1",     f2, OpRaRbTaSf (4, 1, 0, 0, 1), {P1, P2, F3, F2}, EMPTY},
00359     {"fcmp.ge.s2",     f2, OpRaRbTaSf (4, 1, 0, 0, 2), {P1, P2, F3, F2}, EMPTY},
00360     {"fcmp.ge.s3",     f2, OpRaRbTaSf (4, 1, 0, 0, 3), {P1, P2, F3, F2}, EMPTY},
00361     {"fcmp.neq.s0",    f2, OpRaRbTaSf (4, 0, 0, 0, 0), {P2, P1, F2, F3}, EMPTY},
00362     {"fcmp.neq",       f2, OpRaRbTaSf (4, 0, 0, 0, 0), {P2, P1, F2, F3}, PSEUDO, 0, NULL},
00363     {"fcmp.neq.s1",    f2, OpRaRbTaSf (4, 0, 0, 0, 1), {P2, P1, F2, F3}, EMPTY},
00364     {"fcmp.neq.s2",    f2, OpRaRbTaSf (4, 0, 0, 0, 2), {P2, P1, F2, F3}, EMPTY},
00365     {"fcmp.neq.s3",    f2, OpRaRbTaSf (4, 0, 0, 0, 3), {P2, P1, F2, F3}, EMPTY},
00366     {"fcmp.nlt.s0",    f2, OpRaRbTaSf (4, 0, 1, 0, 0), {P2, P1, F2, F3}, EMPTY},
00367     {"fcmp.nlt",       f2, OpRaRbTaSf (4, 0, 1, 0, 0), {P2, P1, F2, F3}, PSEUDO, 0, NULL},
00368     {"fcmp.nlt.s1",    f2, OpRaRbTaSf (4, 0, 1, 0, 1), {P2, P1, F2, F3}, EMPTY},
00369     {"fcmp.nlt.s2",    f2, OpRaRbTaSf (4, 0, 1, 0, 2), {P2, P1, F2, F3}, EMPTY},
00370     {"fcmp.nlt.s3",    f2, OpRaRbTaSf (4, 0, 1, 0, 3), {P2, P1, F2, F3}, EMPTY},
00371     {"fcmp.nle.s0",    f2, OpRaRbTaSf (4, 1, 0, 0, 0), {P2, P1, F2, F3}, EMPTY},
00372     {"fcmp.nle",       f2, OpRaRbTaSf (4, 1, 0, 0, 0), {P2, P1, F2, F3}, PSEUDO, 0, NULL},
00373     {"fcmp.nle.s1",    f2, OpRaRbTaSf (4, 1, 0, 0, 1), {P2, P1, F2, F3}, EMPTY},
00374     {"fcmp.nle.s2",    f2, OpRaRbTaSf (4, 1, 0, 0, 2), {P2, P1, F2, F3}, EMPTY},
00375     {"fcmp.nle.s3",    f2, OpRaRbTaSf (4, 1, 0, 0, 3), {P2, P1, F2, F3}, EMPTY},
00376     {"fcmp.ngt.s0",    f2, OpRaRbTaSf (4, 0, 1, 0, 0), {P2, P1, F3, F2}, EMPTY},
00377     {"fcmp.ngt",       f2, OpRaRbTaSf (4, 0, 1, 0, 0), {P2, P1, F3, F2}, PSEUDO, 0, NULL},
00378     {"fcmp.ngt.s1",    f2, OpRaRbTaSf (4, 0, 1, 0, 1), {P2, P1, F3, F2}, EMPTY},
00379     {"fcmp.ngt.s2",    f2, OpRaRbTaSf (4, 0, 1, 0, 2), {P2, P1, F3, F2}, EMPTY},
00380     {"fcmp.ngt.s3",    f2, OpRaRbTaSf (4, 0, 1, 0, 3), {P2, P1, F3, F2}, EMPTY},
00381     {"fcmp.nge.s0",    f2, OpRaRbTaSf (4, 1, 0, 0, 0), {P2, P1, F3, F2}, EMPTY},
00382     {"fcmp.nge",       f2, OpRaRbTaSf (4, 1, 0, 0, 0), {P2, P1, F3, F2}, PSEUDO, 0, NULL},
00383     {"fcmp.nge.s1",    f2, OpRaRbTaSf (4, 1, 0, 0, 1), {P2, P1, F3, F2}, EMPTY},
00384     {"fcmp.nge.s2",    f2, OpRaRbTaSf (4, 1, 0, 0, 2), {P2, P1, F3, F2}, EMPTY},
00385     {"fcmp.nge.s3",    f2, OpRaRbTaSf (4, 1, 0, 0, 3), {P2, P1, F3, F2}, EMPTY},
00386     {"fcmp.ord.s0",    f2, OpRaRbTaSf (4, 1, 1, 0, 0), {P2, P1, F2, F3}, EMPTY},
00387     {"fcmp.ord",       f2, OpRaRbTaSf (4, 1, 1, 0, 0), {P2, P1, F2, F3}, PSEUDO, 0, NULL},
00388     {"fcmp.ord.s1",    f2, OpRaRbTaSf (4, 1, 1, 0, 1), {P2, P1, F2, F3}, EMPTY},
00389     {"fcmp.ord.s2",    f2, OpRaRbTaSf (4, 1, 1, 0, 2), {P2, P1, F2, F3}, EMPTY},
00390     {"fcmp.ord.s3",    f2, OpRaRbTaSf (4, 1, 1, 0, 3), {P2, P1, F2, F3}, EMPTY},
00391     {"fcmp.gt.unc.s0",        f2, OpRaRbTaSf (4, 0, 1, 1, 0), {P1, P2, F3, F2}, EMPTY},
00392     {"fcmp.gt.unc",    f2, OpRaRbTaSf (4, 0, 1, 1, 0), {P1, P2, F3, F2}, PSEUDO, 0, NULL},
00393     {"fcmp.gt.unc.s1",        f2, OpRaRbTaSf (4, 0, 1, 1, 1), {P1, P2, F3, F2}, EMPTY},
00394     {"fcmp.gt.unc.s2",        f2, OpRaRbTaSf (4, 0, 1, 1, 2), {P1, P2, F3, F2}, EMPTY},
00395     {"fcmp.gt.unc.s3",        f2, OpRaRbTaSf (4, 0, 1, 1, 3), {P1, P2, F3, F2}, EMPTY},
00396     {"fcmp.ge.unc.s0",        f2, OpRaRbTaSf (4, 1, 0, 1, 0), {P1, P2, F3, F2}, EMPTY},
00397     {"fcmp.ge.unc",    f2, OpRaRbTaSf (4, 1, 0, 1, 0), {P1, P2, F3, F2}, PSEUDO, 0, NULL},
00398     {"fcmp.ge.unc.s1",        f2, OpRaRbTaSf (4, 1, 0, 1, 1), {P1, P2, F3, F2}, EMPTY},
00399     {"fcmp.ge.unc.s2",        f2, OpRaRbTaSf (4, 1, 0, 1, 2), {P1, P2, F3, F2}, EMPTY},
00400     {"fcmp.ge.unc.s3",        f2, OpRaRbTaSf (4, 1, 0, 1, 3), {P1, P2, F3, F2}, EMPTY},
00401     {"fcmp.neq.unc.s0",       f2, OpRaRbTaSf (4, 0, 0, 1, 0), {P2, P1, F2, F3}, EMPTY},
00402     {"fcmp.neq.unc",   f2, OpRaRbTaSf (4, 0, 0, 1, 0), {P2, P1, F2, F3}, PSEUDO, 0, NULL},
00403     {"fcmp.neq.unc.s1",       f2, OpRaRbTaSf (4, 0, 0, 1, 1), {P2, P1, F2, F3}, EMPTY},
00404     {"fcmp.neq.unc.s2",       f2, OpRaRbTaSf (4, 0, 0, 1, 2), {P2, P1, F2, F3}, EMPTY},
00405     {"fcmp.neq.unc.s3",       f2, OpRaRbTaSf (4, 0, 0, 1, 3), {P2, P1, F2, F3}, EMPTY},
00406     {"fcmp.nlt.unc.s0",       f2, OpRaRbTaSf (4, 0, 1, 1, 0), {P2, P1, F2, F3}, EMPTY},
00407     {"fcmp.nlt.unc",   f2, OpRaRbTaSf (4, 0, 1, 1, 0), {P2, P1, F2, F3}, PSEUDO, 0, NULL},
00408     {"fcmp.nlt.unc.s1",       f2, OpRaRbTaSf (4, 0, 1, 1, 1), {P2, P1, F2, F3}, EMPTY},
00409     {"fcmp.nlt.unc.s2",       f2, OpRaRbTaSf (4, 0, 1, 1, 2), {P2, P1, F2, F3}, EMPTY},
00410     {"fcmp.nlt.unc.s3",       f2, OpRaRbTaSf (4, 0, 1, 1, 3), {P2, P1, F2, F3}, EMPTY},
00411     {"fcmp.nle.unc.s0",       f2, OpRaRbTaSf (4, 1, 0, 1, 0), {P2, P1, F2, F3}, EMPTY},
00412     {"fcmp.nle.unc",   f2, OpRaRbTaSf (4, 1, 0, 1, 0), {P2, P1, F2, F3}, PSEUDO, 0, NULL},
00413     {"fcmp.nle.unc.s1",       f2, OpRaRbTaSf (4, 1, 0, 1, 1), {P2, P1, F2, F3}, EMPTY},
00414     {"fcmp.nle.unc.s2",       f2, OpRaRbTaSf (4, 1, 0, 1, 2), {P2, P1, F2, F3}, EMPTY},
00415     {"fcmp.nle.unc.s3",       f2, OpRaRbTaSf (4, 1, 0, 1, 3), {P2, P1, F2, F3}, EMPTY},
00416     {"fcmp.ngt.unc.s0",       f2, OpRaRbTaSf (4, 0, 1, 1, 0), {P2, P1, F3, F2}, EMPTY},
00417     {"fcmp.ngt.unc",   f2, OpRaRbTaSf (4, 0, 1, 1, 0), {P2, P1, F3, F2}, PSEUDO, 0, NULL},
00418     {"fcmp.ngt.unc.s1",       f2, OpRaRbTaSf (4, 0, 1, 1, 1), {P2, P1, F3, F2}, EMPTY},
00419     {"fcmp.ngt.unc.s2",       f2, OpRaRbTaSf (4, 0, 1, 1, 2), {P2, P1, F3, F2}, EMPTY},
00420     {"fcmp.ngt.unc.s3",       f2, OpRaRbTaSf (4, 0, 1, 1, 3), {P2, P1, F3, F2}, EMPTY},
00421     {"fcmp.nge.unc.s0",       f2, OpRaRbTaSf (4, 1, 0, 1, 0), {P2, P1, F3, F2}, EMPTY},
00422     {"fcmp.nge.unc",   f2, OpRaRbTaSf (4, 1, 0, 1, 0), {P2, P1, F3, F2}, PSEUDO, 0, NULL},
00423     {"fcmp.nge.unc.s1",       f2, OpRaRbTaSf (4, 1, 0, 1, 1), {P2, P1, F3, F2}, EMPTY},
00424     {"fcmp.nge.unc.s2",       f2, OpRaRbTaSf (4, 1, 0, 1, 2), {P2, P1, F3, F2}, EMPTY},
00425     {"fcmp.nge.unc.s3",       f2, OpRaRbTaSf (4, 1, 0, 1, 3), {P2, P1, F3, F2}, EMPTY},
00426     {"fcmp.ord.unc.s0",       f2, OpRaRbTaSf (4, 1, 1, 1, 0), {P2, P1, F2, F3}, EMPTY},
00427     {"fcmp.ord.unc",   f2, OpRaRbTaSf (4, 1, 1, 1, 0), {P2, P1, F2, F3}, PSEUDO, 0, NULL},
00428     {"fcmp.ord.unc.s1",   f2, OpRaRbTaSf (4, 1, 1, 1, 1), {P2, P1, F2, F3}, EMPTY},
00429     {"fcmp.ord.unc.s2",   f2, OpRaRbTaSf (4, 1, 1, 1, 2), {P2, P1, F2, F3}, EMPTY},
00430     {"fcmp.ord.unc.s3",   f2, OpRaRbTaSf (4, 1, 1, 1, 3), {P2, P1, F2, F3}, EMPTY},
00431 
00432     {"fclass.m",     f2, OpTa (5, 0), {P1, P2, F2, IMMU9}, EMPTY},
00433     {"fclass.nm",    f2, OpTa (5, 0), {P2, P1, F2, IMMU9}, PSEUDO, 0, NULL},
00434     {"fclass.m.unc", f2, OpTa (5, 1), {P1, P2, F2, IMMU9}, EMPTY},
00435     {"fclass.nm.unc",       f2, OpTa (5, 1), {P2, P1, F2, IMMU9}, PSEUDO, 0, NULL},
00436 
00437     /* note: fnorm and fcvt.xuf have identical encodings! */
00438     {"fnorm.s0",     f, OpXaSfF2F4 (0x8, 0, 0, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
00439     {"fnorm",        f, OpXaSfF2F4 (0x8, 0, 0, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
00440     {"fnorm.s1",     f, OpXaSfF2F4 (0x8, 0, 1, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
00441     {"fnorm.s2",     f, OpXaSfF2F4 (0x8, 0, 2, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
00442     {"fnorm.s3",     f, OpXaSfF2F4 (0x8, 0, 3, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
00443     {"fnorm.s.s0",   f, OpXaSfF2F4 (0x8, 1, 0, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
00444     {"fnorm.s",             f, OpXaSfF2F4 (0x8, 1, 0, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
00445     {"fnorm.s.s1",   f, OpXaSfF2F4 (0x8, 1, 1, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
00446     {"fnorm.s.s2",   f, OpXaSfF2F4 (0x8, 1, 2, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
00447     {"fnorm.s.s3",   f, OpXaSfF2F4 (0x8, 1, 3, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
00448     {"fcvt.xuf.s0",  f, OpXaSfF2F4 (0x8, 0, 0, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
00449     {"fcvt.xuf",     f, OpXaSfF2F4 (0x8, 0, 0, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
00450     {"fcvt.xuf.s1",  f, OpXaSfF2F4 (0x8, 0, 1, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
00451     {"fcvt.xuf.s2",  f, OpXaSfF2F4 (0x8, 0, 2, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
00452     {"fcvt.xuf.s3",  f, OpXaSfF2F4 (0x8, 0, 3, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
00453     {"fcvt.xuf.s.s0",       f, OpXaSfF2F4 (0x8, 1, 0, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
00454     {"fcvt.xuf.s",   f, OpXaSfF2F4 (0x8, 1, 0, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
00455     {"fcvt.xuf.s.s1",       f, OpXaSfF2F4 (0x8, 1, 1, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
00456     {"fcvt.xuf.s.s2",       f, OpXaSfF2F4 (0x8, 1, 2, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
00457     {"fcvt.xuf.s.s3",       f, OpXaSfF2F4 (0x8, 1, 3, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
00458     {"fadd.s0",             f, OpXaSfF4 (0x8, 0, 0, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
00459     {"fadd",         f, OpXaSfF4 (0x8, 0, 0, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
00460     {"fadd.s1",             f, OpXaSfF4 (0x8, 0, 1, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
00461     {"fadd.s2",             f, OpXaSfF4 (0x8, 0, 2, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
00462     {"fadd.s3",             f, OpXaSfF4 (0x8, 0, 3, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
00463     {"fadd.s.s0",    f, OpXaSfF4 (0x8, 1, 0, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
00464     {"fadd.s",              f, OpXaSfF4 (0x8, 1, 0, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
00465     {"fadd.s.s1",    f, OpXaSfF4 (0x8, 1, 1, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
00466     {"fadd.s.s2",    f, OpXaSfF4 (0x8, 1, 2, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
00467     {"fadd.s.s3",    f, OpXaSfF4 (0x8, 1, 3, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
00468     {"fmpy.s0",             f, OpXaSfF2 (0x8, 0, 0, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
00469     {"fmpy",         f, OpXaSfF2 (0x8, 0, 0, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
00470     {"fmpy.s1",             f, OpXaSfF2 (0x8, 0, 1, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
00471     {"fmpy.s2",             f, OpXaSfF2 (0x8, 0, 2, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
00472     {"fmpy.s3",             f, OpXaSfF2 (0x8, 0, 3, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
00473     {"fmpy.s.s0",    f, OpXaSfF2 (0x8, 1, 0, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
00474     {"fmpy.s",              f, OpXaSfF2 (0x8, 1, 0, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
00475     {"fmpy.s.s1",    f, OpXaSfF2 (0x8, 1, 1, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
00476     {"fmpy.s.s2",    f, OpXaSfF2 (0x8, 1, 2, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
00477     {"fmpy.s.s3",    f, OpXaSfF2 (0x8, 1, 3, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
00478     {"fma.s0",              f, OpXaSf (0x8, 0, 0), {F1, F3, F4, F2}, EMPTY},
00479     {"fma",          f, OpXaSf (0x8, 0, 0), {F1, F3, F4, F2}, PSEUDO, 0, NULL},
00480     {"fma.s1",              f, OpXaSf (0x8, 0, 1), {F1, F3, F4, F2}, EMPTY},
00481     {"fma.s2",              f, OpXaSf (0x8, 0, 2), {F1, F3, F4, F2}, EMPTY},
00482     {"fma.s3",              f, OpXaSf (0x8, 0, 3), {F1, F3, F4, F2}, EMPTY},
00483     {"fma.s.s0",     f, OpXaSf (0x8, 1, 0), {F1, F3, F4, F2}, EMPTY},
00484     {"fma.s",        f, OpXaSf (0x8, 1, 0), {F1, F3, F4, F2}, PSEUDO, 0, NULL},
00485     {"fma.s.s1",     f, OpXaSf (0x8, 1, 1), {F1, F3, F4, F2}, EMPTY},
00486     {"fma.s.s2",     f, OpXaSf (0x8, 1, 2), {F1, F3, F4, F2}, EMPTY},
00487     {"fma.s.s3",     f, OpXaSf (0x8, 1, 3), {F1, F3, F4, F2}, EMPTY},
00488 
00489     {"fnorm.d.s0",   f, OpXaSfF2F4 (0x9, 0, 0, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
00490     {"fnorm.d",             f, OpXaSfF2F4 (0x9, 0, 0, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
00491     {"fnorm.d.s1",   f, OpXaSfF2F4 (0x9, 0, 1, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
00492     {"fnorm.d.s2",   f, OpXaSfF2F4 (0x9, 0, 2, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
00493     {"fnorm.d.s3",   f, OpXaSfF2F4 (0x9, 0, 3, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
00494     {"fcvt.xuf.d.s0",       f, OpXaSfF2F4 (0x9, 0, 0, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
00495     {"fcvt.xuf.d",   f, OpXaSfF2F4 (0x9, 0, 0, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
00496     {"fcvt.xuf.d.s1",       f, OpXaSfF2F4 (0x9, 0, 1, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
00497     {"fcvt.xuf.d.s2",       f, OpXaSfF2F4 (0x9, 0, 2, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
00498     {"fcvt.xuf.d.s3",       f, OpXaSfF2F4 (0x9, 0, 3, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
00499     {"fadd.d.s0",    f, OpXaSfF4 (0x9, 0, 0, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
00500     {"fadd.d",              f, OpXaSfF4 (0x9, 0, 0, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
00501     {"fadd.d.s1",    f, OpXaSfF4 (0x9, 0, 1, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
00502     {"fadd.d.s2",    f, OpXaSfF4 (0x9, 0, 2, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
00503     {"fadd.d.s3",    f, OpXaSfF4 (0x9, 0, 3, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
00504     {"fmpy.d.s0",    f, OpXaSfF2 (0x9, 0, 0, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
00505     {"fmpy.d",              f, OpXaSfF2 (0x9, 0, 0, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
00506     {"fmpy.d.s1",    f, OpXaSfF2 (0x9, 0, 1, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
00507     {"fmpy.d.s2",    f, OpXaSfF2 (0x9, 0, 2, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
00508     {"fmpy.d.s3",    f, OpXaSfF2 (0x9, 0, 3, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
00509     {"fma.d.s0",     f, OpXaSf (0x9, 0, 0), {F1, F3, F4, F2}, EMPTY},
00510     {"fma.d",        f, OpXaSf (0x9, 0, 0), {F1, F3, F4, F2}, PSEUDO, 0, NULL},
00511     {"fma.d.s1",     f, OpXaSf (0x9, 0, 1), {F1, F3, F4, F2}, EMPTY},
00512     {"fma.d.s2",     f, OpXaSf (0x9, 0, 2), {F1, F3, F4, F2}, EMPTY},
00513     {"fma.d.s3",     f, OpXaSf (0x9, 0, 3), {F1, F3, F4, F2}, EMPTY},
00514 
00515     {"fpmpy.s0",     f, OpXaSfF2 (0x9, 1, 0, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
00516     {"fpmpy",        f, OpXaSfF2 (0x9, 1, 0, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
00517     {"fpmpy.s1",     f, OpXaSfF2 (0x9, 1, 1, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
00518     {"fpmpy.s2",     f, OpXaSfF2 (0x9, 1, 2, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
00519     {"fpmpy.s3",     f, OpXaSfF2 (0x9, 1, 3, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
00520     {"fpma.s0",             f, OpXaSf   (0x9, 1, 0), {F1, F3, F4, F2}, EMPTY},
00521     {"fpma",         f, OpXaSf   (0x9, 1, 0), {F1, F3, F4, F2}, PSEUDO, 0, NULL},
00522     {"fpma.s1",             f, OpXaSf   (0x9, 1, 1), {F1, F3, F4, F2}, EMPTY},
00523     {"fpma.s2",             f, OpXaSf   (0x9, 1, 2), {F1, F3, F4, F2}, EMPTY},
00524     {"fpma.s3",             f, OpXaSf   (0x9, 1, 3), {F1, F3, F4, F2}, EMPTY},
00525 
00526     {"fsub.s0",             f, OpXaSfF4 (0xa, 0, 0, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
00527     {"fsub",         f, OpXaSfF4 (0xa, 0, 0, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
00528     {"fsub.s1",             f, OpXaSfF4 (0xa, 0, 1, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
00529     {"fsub.s2",             f, OpXaSfF4 (0xa, 0, 2, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
00530     {"fsub.s3",             f, OpXaSfF4 (0xa, 0, 3, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
00531     {"fsub.s.s0",    f, OpXaSfF4 (0xa, 1, 0, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
00532     {"fsub.s",              f, OpXaSfF4 (0xa, 1, 0, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
00533     {"fsub.s.s1",    f, OpXaSfF4 (0xa, 1, 1, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
00534     {"fsub.s.s2",    f, OpXaSfF4 (0xa, 1, 2, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
00535     {"fsub.s.s3",    f, OpXaSfF4 (0xa, 1, 3, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
00536     {"fms.s0",              f, OpXaSf   (0xa, 0, 0), {F1, F3, F4, F2}, EMPTY},
00537     {"fms",          f, OpXaSf   (0xa, 0, 0), {F1, F3, F4, F2}, PSEUDO, 0, NULL},
00538     {"fms.s1",              f, OpXaSf   (0xa, 0, 1), {F1, F3, F4, F2}, EMPTY},
00539     {"fms.s2",              f, OpXaSf   (0xa, 0, 2), {F1, F3, F4, F2}, EMPTY},
00540     {"fms.s3",              f, OpXaSf   (0xa, 0, 3), {F1, F3, F4, F2}, EMPTY},
00541     {"fms.s.s0",     f, OpXaSf   (0xa, 1, 0), {F1, F3, F4, F2}, EMPTY},
00542     {"fms.s",        f, OpXaSf   (0xa, 1, 0), {F1, F3, F4, F2}, PSEUDO, 0, NULL},
00543     {"fms.s.s1",     f, OpXaSf   (0xa, 1, 1), {F1, F3, F4, F2}, EMPTY},
00544     {"fms.s.s2",     f, OpXaSf   (0xa, 1, 2), {F1, F3, F4, F2}, EMPTY},
00545     {"fms.s.s3",     f, OpXaSf   (0xa, 1, 3), {F1, F3, F4, F2}, EMPTY},
00546     {"fsub.d.s0",    f, OpXaSfF4 (0xb, 0, 0, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
00547     {"fsub.d",              f, OpXaSfF4 (0xb, 0, 0, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
00548     {"fsub.d.s1",    f, OpXaSfF4 (0xb, 0, 1, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
00549     {"fsub.d.s2",    f, OpXaSfF4 (0xb, 0, 2, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
00550     {"fsub.d.s3",    f, OpXaSfF4 (0xb, 0, 3, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
00551     {"fms.d.s0",     f, OpXaSf   (0xb, 0, 0), {F1, F3, F4, F2}, EMPTY},
00552     {"fms.d",        f, OpXaSf   (0xb, 0, 0), {F1, F3, F4, F2}, PSEUDO, 0, NULL},
00553     {"fms.d.s1",     f, OpXaSf   (0xb, 0, 1), {F1, F3, F4, F2}, EMPTY},
00554     {"fms.d.s2",     f, OpXaSf   (0xb, 0, 2), {F1, F3, F4, F2}, EMPTY},
00555     {"fms.d.s3",     f, OpXaSf   (0xb, 0, 3), {F1, F3, F4, F2}, EMPTY},
00556 
00557     {"fpms.s0",             f, OpXaSf (0xb, 1, 0), {F1, F3, F4, F2}, EMPTY},
00558     {"fpms",         f, OpXaSf (0xb, 1, 0), {F1, F3, F4, F2}, PSEUDO, 0, NULL},
00559     {"fpms.s1",             f, OpXaSf (0xb, 1, 1), {F1, F3, F4, F2}, EMPTY},
00560     {"fpms.s2",             f, OpXaSf (0xb, 1, 2), {F1, F3, F4, F2}, EMPTY},
00561     {"fpms.s3",             f, OpXaSf (0xb, 1, 3), {F1, F3, F4, F2}, EMPTY},
00562 
00563     {"fnmpy.s0",     f, OpXaSfF2 (0xc, 0, 0, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
00564     {"fnmpy",        f, OpXaSfF2 (0xc, 0, 0, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
00565     {"fnmpy.s1",     f, OpXaSfF2 (0xc, 0, 1, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
00566     {"fnmpy.s2",     f, OpXaSfF2 (0xc, 0, 2, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
00567     {"fnmpy.s3",     f, OpXaSfF2 (0xc, 0, 3, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
00568     {"fnmpy.s.s0",   f, OpXaSfF2 (0xc, 1, 0, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
00569     {"fnmpy.s",             f, OpXaSfF2 (0xc, 1, 0, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
00570     {"fnmpy.s.s1",   f, OpXaSfF2 (0xc, 1, 1, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
00571     {"fnmpy.s.s2",   f, OpXaSfF2 (0xc, 1, 2, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
00572     {"fnmpy.s.s3",   f, OpXaSfF2 (0xc, 1, 3, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
00573     {"fnma.s0",             f, OpXaSf (0xc, 0, 0), {F1, F3, F4, F2}, EMPTY},
00574     {"fnma",         f, OpXaSf (0xc, 0, 0), {F1, F3, F4, F2}, PSEUDO, 0, NULL},
00575     {"fnma.s1",             f, OpXaSf (0xc, 0, 1), {F1, F3, F4, F2}, EMPTY},
00576     {"fnma.s2",             f, OpXaSf (0xc, 0, 2), {F1, F3, F4, F2}, EMPTY},
00577     {"fnma.s3",             f, OpXaSf (0xc, 0, 3), {F1, F3, F4, F2}, EMPTY},
00578     {"fnma.s.s0",    f, OpXaSf (0xc, 1, 0), {F1, F3, F4, F2}, EMPTY},
00579     {"fnma.s",              f, OpXaSf (0xc, 1, 0), {F1, F3, F4, F2}, PSEUDO, 0, NULL},
00580     {"fnma.s.s1",    f, OpXaSf (0xc, 1, 1), {F1, F3, F4, F2}, EMPTY},
00581     {"fnma.s.s2",    f, OpXaSf (0xc, 1, 2), {F1, F3, F4, F2}, EMPTY},
00582     {"fnma.s.s3",    f, OpXaSf (0xc, 1, 3), {F1, F3, F4, F2}, EMPTY},
00583     {"fnmpy.d.s0",   f, OpXaSfF2 (0xd, 0, 0, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
00584     {"fnmpy.d",             f, OpXaSfF2 (0xd, 0, 0, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
00585     {"fnmpy.d.s1",   f, OpXaSfF2 (0xd, 0, 1, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
00586     {"fnmpy.d.s2",   f, OpXaSfF2 (0xd, 0, 2, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
00587     {"fnmpy.d.s3",   f, OpXaSfF2 (0xd, 0, 3, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
00588     {"fnma.d.s0",    f, OpXaSf (0xd, 0, 0), {F1, F3, F4, F2}, EMPTY},
00589     {"fnma.d",              f, OpXaSf (0xd, 0, 0), {F1, F3, F4, F2}, PSEUDO, 0, NULL},
00590     {"fnma.d.s1",    f, OpXaSf (0xd, 0, 1), {F1, F3, F4, F2}, EMPTY},
00591     {"fnma.d.s2",    f, OpXaSf (0xd, 0, 2), {F1, F3, F4, F2}, EMPTY},
00592     {"fnma.d.s3",    f, OpXaSf (0xd, 0, 3), {F1, F3, F4, F2}, EMPTY},
00593 
00594     {"fpnmpy.s0",    f, OpXaSfF2 (0xd, 1, 0, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
00595     {"fpnmpy",              f, OpXaSfF2 (0xd, 1, 0, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
00596     {"fpnmpy.s1",    f, OpXaSfF2 (0xd, 1, 1, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
00597     {"fpnmpy.s2",    f, OpXaSfF2 (0xd, 1, 2, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
00598     {"fpnmpy.s3",    f, OpXaSfF2 (0xd, 1, 3, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
00599     {"fpnma.s0",     f, OpXaSf   (0xd, 1, 0), {F1, F3, F4, F2}, EMPTY},
00600     {"fpnma",        f, OpXaSf   (0xd, 1, 0), {F1, F3, F4, F2}, PSEUDO, 0, NULL},
00601     {"fpnma.s1",     f, OpXaSf   (0xd, 1, 1), {F1, F3, F4, F2}, EMPTY},
00602     {"fpnma.s2",     f, OpXaSf   (0xd, 1, 2), {F1, F3, F4, F2}, EMPTY},
00603     {"fpnma.s3",     f, OpXaSf   (0xd, 1, 3), {F1, F3, F4, F2}, EMPTY},
00604 
00605     {"xmpy.l",              f, OpXaX2F2 (0xe, 1, 0, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
00606     {"xmpy.lu",             f, OpXaX2F2 (0xe, 1, 0, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
00607     {"xmpy.h",              f, OpXaX2F2 (0xe, 1, 3, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
00608     {"xmpy.hu",             f, OpXaX2F2 (0xe, 1, 2, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
00609     {"xma.l",        f, OpXaX2 (0xe, 1, 0), {F1, F3, F4, F2}, EMPTY},
00610     {"xma.lu",              f, OpXaX2 (0xe, 1, 0), {F1, F3, F4, F2}, PSEUDO, 0, NULL},
00611     {"xma.h",        f, OpXaX2 (0xe, 1, 3), {F1, F3, F4, F2}, EMPTY},
00612     {"xma.hu",              f, OpXaX2 (0xe, 1, 2), {F1, F3, F4, F2}, EMPTY},
00613 
00614     {"fselect",             f, OpXa (0xe, 0), {F1, F3, F4, F2}, EMPTY},
00615 
00616     {NULL, 0, 0, 0, 0, {0}, 0, 0, NULL}
00617   };
00618 
00619 #undef f0
00620 #undef f
00621 #undef f2
00622 #undef bF2
00623 #undef bF4
00624 #undef bQ
00625 #undef bRa
00626 #undef bRb
00627 #undef bSf
00628 #undef bTa
00629 #undef bXa
00630 #undef bXb
00631 #undef bX2
00632 #undef bX6
00633 #undef mF2
00634 #undef mF4
00635 #undef mQ
00636 #undef mRa
00637 #undef mRb
00638 #undef mSf
00639 #undef mTa
00640 #undef mXa
00641 #undef mXb
00642 #undef mX2
00643 #undef mX6
00644 #undef OpXa
00645 #undef OpXaSf
00646 #undef OpXaSfF2
00647 #undef OpXaSfF4
00648 #undef OpXaSfF2F4
00649 #undef OpXaX2
00650 #undef OpRaRbTaSf
00651 #undef OpTa
00652 #undef OpXbQSf
00653 #undef OpXbX6
00654 #undef OpXbX6F2
00655 #undef OpXbX6Sf
00656 #undef EMPTY