Home | History | Annotate | Line # | Download | only in opcodes
      1   1.1  christos /* ia64-opc-f.c -- IA-64 `F' opcode table.
      2  1.10  christos    Copyright (C) 1998-2025 Free Software Foundation, Inc.
      3   1.1  christos    Contributed by David Mosberger-Tang <davidm (at) hpl.hp.com>
      4   1.1  christos 
      5   1.1  christos    This file is part of the GNU opcodes library.
      6   1.1  christos 
      7   1.1  christos    This library is free software; you can redistribute it and/or modify
      8   1.1  christos    it under the terms of the GNU General Public License as published by
      9   1.1  christos    the Free Software Foundation; either version 3, or (at your option)
     10   1.1  christos    any later version.
     11   1.1  christos 
     12   1.1  christos    It is distributed in the hope that it will be useful, but WITHOUT
     13   1.1  christos    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
     14   1.1  christos    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
     15   1.1  christos    License for more details.
     16   1.1  christos 
     17   1.1  christos    You should have received a copy of the GNU General Public License
     18   1.1  christos    along with this file; see the file COPYING.  If not, write to the
     19   1.1  christos    Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston,
     20   1.1  christos    MA 02110-1301, USA.  */
     21   1.1  christos 
     22   1.1  christos #include "ia64-opc.h"
     23   1.1  christos 
     24   1.1  christos #define f0	IA64_TYPE_F, 0
     25   1.1  christos #define f	IA64_TYPE_F, 1
     26   1.1  christos #define f2	IA64_TYPE_F, 2
     27   1.1  christos 
     28   1.1  christos #define bF2(x)	(((ia64_insn) ((x) & 0x7f)) << 13)
     29   1.1  christos #define bF4(x)	(((ia64_insn) ((x) & 0x7f)) << 27)
     30   1.1  christos #define bQ(x)	(((ia64_insn) ((x) & 0x1)) << 36)
     31   1.1  christos #define bRa(x)	(((ia64_insn) ((x) & 0x1)) << 33)
     32   1.1  christos #define bRb(x)	(((ia64_insn) ((x) & 0x1)) << 36)
     33   1.1  christos #define bSf(x)	(((ia64_insn) ((x) & 0x3)) << 34)
     34   1.1  christos #define bTa(x)	(((ia64_insn) ((x) & 0x1)) << 12)
     35   1.1  christos #define bXa(x)	(((ia64_insn) ((x) & 0x1)) << 36)
     36   1.1  christos #define bXb(x)	(((ia64_insn) ((x) & 0x1)) << 33)
     37   1.1  christos #define bX2(x)	(((ia64_insn) ((x) & 0x3)) << 34)
     38   1.1  christos #define bX6(x)	(((ia64_insn) ((x) & 0x3f)) << 27)
     39   1.1  christos #define bY(x)	(((ia64_insn) ((x) & 0x1)) << 26)
     40   1.1  christos 
     41   1.1  christos #define mF2	bF2 (-1)
     42   1.1  christos #define mF4	bF4 (-1)
     43   1.1  christos #define mQ	bQ (-1)
     44   1.1  christos #define mRa	bRa (-1)
     45   1.1  christos #define mRb	bRb (-1)
     46   1.1  christos #define mSf	bSf (-1)
     47   1.1  christos #define mTa	bTa (-1)
     48   1.1  christos #define mXa	bXa (-1)
     49   1.1  christos #define mXb	bXb (-1)
     50   1.1  christos #define mX2	bX2 (-1)
     51   1.1  christos #define mX6	bX6 (-1)
     52   1.1  christos #define mY	bY (-1)
     53   1.1  christos 
     54   1.1  christos #define OpXa(a,b)	(bOp (a) | bXa (b)), (mOp | mXa)
     55   1.1  christos #define OpXaSf(a,b,c)	(bOp (a) | bXa (b) | bSf (c)), (mOp | mXa | mSf)
     56   1.1  christos #define OpXaSfF2(a,b,c,d) \
     57   1.1  christos 	(bOp (a) | bXa (b) | bSf (c) | bF2 (d)), (mOp | mXa | mSf | mF2)
     58   1.1  christos #define OpXaSfF4(a,b,c,d) \
     59   1.1  christos 	(bOp (a) | bXa (b) | bSf (c) | bF4 (d)), (mOp | mXa | mSf | mF4)
     60   1.1  christos #define OpXaSfF2F4(a,b,c,d,e) \
     61   1.1  christos 	(bOp (a) | bXa (b) | bSf (c) | bF2 (d) | bF4 (e)), \
     62   1.1  christos 	(mOp | mXa | mSf | mF2 | mF4)
     63   1.1  christos #define OpXaX2(a,b,c)	(bOp (a) | bXa (b) | bX2 (c)), (mOp | mXa | mX2)
     64   1.1  christos #define OpXaX2F2(a,b,c,d) \
     65   1.1  christos 	(bOp (a) | bXa (b) | bX2 (c) | bF2 (d)), (mOp | mXa | mX2 | mF2)
     66   1.1  christos #define OpRaRbTaSf(a,b,c,d,e) \
     67   1.1  christos 	(bOp (a) | bRa (b) | bRb (c) | bTa (d) | bSf (e)), \
     68   1.1  christos 	(mOp | mRa | mRb | mTa | mSf)
     69   1.1  christos #define OpTa(a,b)	(bOp (a) | bTa (b)), (mOp | mTa)
     70   1.1  christos #define OpXbQSf(a,b,c,d) \
     71   1.1  christos 	(bOp (a) | bXb (b) | bQ (c) | bSf (d)), (mOp | mXb | mQ | mSf)
     72   1.1  christos #define OpXbX6(a,b,c) \
     73   1.1  christos 	(bOp (a) | bXb (b) | bX6 (c)), (mOp | mXb | mX6)
     74   1.1  christos #define OpXbX6Y(a,b,c,d) \
     75   1.1  christos 	(bOp (a) | bXb (b) | bX6 (c) | bY (d)), (mOp | mXb | mX6 | mY)
     76   1.1  christos #define OpXbX6F2(a,b,c,d) \
     77   1.1  christos 	(bOp (a) | bXb (b) | bX6 (c) | bF2 (d)), (mOp | mXb | mX6 | mF2)
     78   1.1  christos #define OpXbX6Sf(a,b,c,d) \
     79   1.1  christos 	(bOp (a) | bXb (b) | bX6 (c) | bSf (d)), (mOp | mXb | mX6 | mSf)
     80   1.1  christos 
     81   1.1  christos /* Used to initialise unused fields in ia64_opcode struct,
     82   1.1  christos    in order to stop gcc from complaining.  */
     83   1.1  christos #define EMPTY 0,0,NULL
     84   1.1  christos 
     85   1.1  christos struct ia64_opcode ia64_opcodes_f[] =
     86   1.1  christos   {
     87   1.1  christos     /* F-type instruction encodings (sorted according to major opcode).  */
     88   1.1  christos 
     89   1.1  christos     {"frcpa.s0",	f2, OpXbQSf (0, 1, 0, 0), {F1, P2, F2, F3}, EMPTY},
     90   1.1  christos     {"frcpa",		f2, OpXbQSf (0, 1, 0, 0), {F1, P2, F2, F3}, PSEUDO, 0, NULL},
     91   1.1  christos     {"frcpa.s1",	f2, OpXbQSf (0, 1, 0, 1), {F1, P2, F2, F3}, EMPTY},
     92   1.1  christos     {"frcpa.s2",	f2, OpXbQSf (0, 1, 0, 2), {F1, P2, F2, F3}, EMPTY},
     93   1.1  christos     {"frcpa.s3",	f2, OpXbQSf (0, 1, 0, 3), {F1, P2, F2, F3}, EMPTY},
     94   1.1  christos 
     95   1.1  christos     {"frsqrta.s0",	f2, OpXbQSf (0, 1, 1, 0), {F1, P2, F3}, EMPTY},
     96   1.1  christos     {"frsqrta",		f2, OpXbQSf (0, 1, 1, 0), {F1, P2, F3}, PSEUDO, 0, NULL},
     97   1.1  christos     {"frsqrta.s1",	f2, OpXbQSf (0, 1, 1, 1), {F1, P2, F3}, EMPTY},
     98   1.1  christos     {"frsqrta.s2",	f2, OpXbQSf (0, 1, 1, 2), {F1, P2, F3}, EMPTY},
     99   1.1  christos     {"frsqrta.s3",	f2, OpXbQSf (0, 1, 1, 3), {F1, P2, F3}, EMPTY},
    100   1.1  christos 
    101   1.1  christos     {"fmin.s0",		f, OpXbX6Sf (0, 0, 0x14, 0), {F1, F2, F3}, EMPTY},
    102   1.1  christos     {"fmin",		f, OpXbX6Sf (0, 0, 0x14, 0), {F1, F2, F3}, PSEUDO, 0, NULL},
    103   1.1  christos     {"fmin.s1",		f, OpXbX6Sf (0, 0, 0x14, 1), {F1, F2, F3}, EMPTY},
    104   1.1  christos     {"fmin.s2",		f, OpXbX6Sf (0, 0, 0x14, 2), {F1, F2, F3}, EMPTY},
    105   1.1  christos     {"fmin.s3",		f, OpXbX6Sf (0, 0, 0x14, 3), {F1, F2, F3}, EMPTY},
    106   1.1  christos     {"fmax.s0",		f, OpXbX6Sf (0, 0, 0x15, 0), {F1, F2, F3}, EMPTY},
    107   1.1  christos     {"fmax",		f, OpXbX6Sf (0, 0, 0x15, 0), {F1, F2, F3}, PSEUDO, 0, NULL},
    108   1.1  christos     {"fmax.s1",		f, OpXbX6Sf (0, 0, 0x15, 1), {F1, F2, F3}, EMPTY},
    109   1.1  christos     {"fmax.s2",		f, OpXbX6Sf (0, 0, 0x15, 2), {F1, F2, F3}, EMPTY},
    110   1.1  christos     {"fmax.s3",		f, OpXbX6Sf (0, 0, 0x15, 3), {F1, F2, F3}, EMPTY},
    111   1.1  christos     {"famin.s0",	f, OpXbX6Sf (0, 0, 0x16, 0), {F1, F2, F3}, EMPTY},
    112   1.1  christos     {"famin",		f, OpXbX6Sf (0, 0, 0x16, 0), {F1, F2, F3}, PSEUDO, 0, NULL},
    113   1.1  christos     {"famin.s1",	f, OpXbX6Sf (0, 0, 0x16, 1), {F1, F2, F3}, EMPTY},
    114   1.1  christos     {"famin.s2",	f, OpXbX6Sf (0, 0, 0x16, 2), {F1, F2, F3}, EMPTY},
    115   1.1  christos     {"famin.s3",	f, OpXbX6Sf (0, 0, 0x16, 3), {F1, F2, F3}, EMPTY},
    116   1.1  christos     {"famax.s0",	f, OpXbX6Sf (0, 0, 0x17, 0), {F1, F2, F3}, EMPTY},
    117   1.1  christos     {"famax",		f, OpXbX6Sf (0, 0, 0x17, 0), {F1, F2, F3}, PSEUDO, 0, NULL},
    118   1.1  christos     {"famax.s1",	f, OpXbX6Sf (0, 0, 0x17, 1), {F1, F2, F3}, EMPTY},
    119   1.1  christos     {"famax.s2",	f, OpXbX6Sf (0, 0, 0x17, 2), {F1, F2, F3}, EMPTY},
    120   1.1  christos     {"famax.s3",	f, OpXbX6Sf (0, 0, 0x17, 3), {F1, F2, F3}, EMPTY},
    121   1.1  christos 
    122   1.1  christos     {"mov",		f, OpXbX6 (0, 0, 0x10), {F1, F3}, PSEUDO | F2_EQ_F3, 0, NULL},
    123   1.1  christos     {"fabs",		f, OpXbX6F2 (0, 0, 0x10, 0), {F1, F3}, PSEUDO, 0, NULL},
    124   1.1  christos     {"fneg",		f, OpXbX6   (0, 0, 0x11), {F1, F3}, PSEUDO | F2_EQ_F3, 0, NULL},
    125   1.1  christos     {"fnegabs",		f, OpXbX6F2 (0, 0, 0x11, 0), {F1, F3}, PSEUDO, 0, NULL},
    126   1.1  christos     {"fmerge.s",	f, OpXbX6   (0, 0, 0x10), {F1, F2, F3}, EMPTY},
    127   1.1  christos     {"fmerge.ns",	f, OpXbX6   (0, 0, 0x11), {F1, F2, F3}, EMPTY},
    128   1.1  christos 
    129   1.1  christos     {"fmerge.se",	f, OpXbX6 (0, 0, 0x12), {F1, F2, F3}, EMPTY},
    130   1.1  christos     {"fmix.lr",		f, OpXbX6 (0, 0, 0x39), {F1, F2, F3}, EMPTY},
    131   1.1  christos     {"fmix.r",		f, OpXbX6 (0, 0, 0x3a), {F1, F2, F3}, EMPTY},
    132   1.1  christos     {"fmix.l",		f, OpXbX6 (0, 0, 0x3b), {F1, F2, F3}, EMPTY},
    133   1.1  christos     {"fsxt.r",		f, OpXbX6 (0, 0, 0x3c), {F1, F2, F3}, EMPTY},
    134   1.1  christos     {"fsxt.l",		f, OpXbX6 (0, 0, 0x3d), {F1, F2, F3}, EMPTY},
    135   1.1  christos     {"fpack",		f, OpXbX6 (0, 0, 0x28), {F1, F2, F3}, EMPTY},
    136   1.1  christos     {"fswap",		f, OpXbX6 (0, 0, 0x34), {F1, F2, F3}, EMPTY},
    137   1.1  christos     {"fswap.nl",	f, OpXbX6 (0, 0, 0x35), {F1, F2, F3}, EMPTY},
    138   1.1  christos     {"fswap.nr",	f, OpXbX6 (0, 0, 0x36), {F1, F2, F3}, EMPTY},
    139   1.1  christos     {"fand",		f, OpXbX6 (0, 0, 0x2c), {F1, F2, F3}, EMPTY},
    140   1.1  christos     {"fandcm",		f, OpXbX6 (0, 0, 0x2d), {F1, F2, F3}, EMPTY},
    141   1.1  christos     {"for",		f, OpXbX6 (0, 0, 0x2e), {F1, F2, F3}, EMPTY},
    142   1.1  christos     {"fxor",		f, OpXbX6 (0, 0, 0x2f), {F1, F2, F3}, EMPTY},
    143   1.1  christos 
    144   1.1  christos     {"fcvt.fx.s0",		f, OpXbX6Sf (0, 0, 0x18, 0), {F1, F2}, EMPTY},
    145   1.1  christos     {"fcvt.fx",			f, OpXbX6Sf (0, 0, 0x18, 0), {F1, F2}, PSEUDO, 0, NULL},
    146   1.1  christos     {"fcvt.fx.s1",		f, OpXbX6Sf (0, 0, 0x18, 1), {F1, F2}, EMPTY},
    147   1.1  christos     {"fcvt.fx.s2",		f, OpXbX6Sf (0, 0, 0x18, 2), {F1, F2}, EMPTY},
    148   1.1  christos     {"fcvt.fx.s3",		f, OpXbX6Sf (0, 0, 0x18, 3), {F1, F2}, EMPTY},
    149   1.1  christos     {"fcvt.fxu.s0",		f, OpXbX6Sf (0, 0, 0x19, 0), {F1, F2}, EMPTY},
    150   1.1  christos     {"fcvt.fxu",		f, OpXbX6Sf (0, 0, 0x19, 0), {F1, F2}, PSEUDO, 0, NULL},
    151   1.1  christos     {"fcvt.fxu.s1",		f, OpXbX6Sf (0, 0, 0x19, 1), {F1, F2}, EMPTY},
    152   1.1  christos     {"fcvt.fxu.s2",		f, OpXbX6Sf (0, 0, 0x19, 2), {F1, F2}, EMPTY},
    153   1.1  christos     {"fcvt.fxu.s3",		f, OpXbX6Sf (0, 0, 0x19, 3), {F1, F2}, EMPTY},
    154   1.1  christos     {"fcvt.fx.trunc.s0",	f, OpXbX6Sf (0, 0, 0x1a, 0), {F1, F2}, EMPTY},
    155   1.1  christos     {"fcvt.fx.trunc",		f, OpXbX6Sf (0, 0, 0x1a, 0), {F1, F2}, PSEUDO, 0, NULL},
    156   1.1  christos     {"fcvt.fx.trunc.s1",	f, OpXbX6Sf (0, 0, 0x1a, 1), {F1, F2}, EMPTY},
    157   1.1  christos     {"fcvt.fx.trunc.s2",	f, OpXbX6Sf (0, 0, 0x1a, 2), {F1, F2}, EMPTY},
    158   1.1  christos     {"fcvt.fx.trunc.s3",	f, OpXbX6Sf (0, 0, 0x1a, 3), {F1, F2}, EMPTY},
    159   1.1  christos     {"fcvt.fxu.trunc.s0",	f, OpXbX6Sf (0, 0, 0x1b, 0), {F1, F2}, EMPTY},
    160   1.1  christos     {"fcvt.fxu.trunc",		f, OpXbX6Sf (0, 0, 0x1b, 0), {F1, F2}, PSEUDO, 0, NULL},
    161   1.1  christos     {"fcvt.fxu.trunc.s1",	f, OpXbX6Sf (0, 0, 0x1b, 1), {F1, F2}, EMPTY},
    162   1.1  christos     {"fcvt.fxu.trunc.s2",	f, OpXbX6Sf (0, 0, 0x1b, 2), {F1, F2}, EMPTY},
    163   1.1  christos     {"fcvt.fxu.trunc.s3",	f, OpXbX6Sf (0, 0, 0x1b, 3), {F1, F2}, EMPTY},
    164   1.1  christos 
    165   1.1  christos     {"fcvt.xf",		f, OpXbX6 (0, 0, 0x1c), {F1, F2}, EMPTY},
    166   1.1  christos 
    167   1.1  christos     {"fsetc.s0",	f0, OpXbX6Sf (0, 0, 0x04, 0), {IMMU7a, IMMU7b}, EMPTY},
    168   1.1  christos     {"fsetc",		f0, OpXbX6Sf (0, 0, 0x04, 0), {IMMU7a, IMMU7b}, PSEUDO, 0, NULL},
    169   1.1  christos     {"fsetc.s1",	f0, OpXbX6Sf (0, 0, 0x04, 1), {IMMU7a, IMMU7b}, EMPTY},
    170   1.1  christos     {"fsetc.s2",	f0, OpXbX6Sf (0, 0, 0x04, 2), {IMMU7a, IMMU7b}, EMPTY},
    171   1.1  christos     {"fsetc.s3",	f0, OpXbX6Sf (0, 0, 0x04, 3), {IMMU7a, IMMU7b}, EMPTY},
    172   1.1  christos     {"fclrf.s0",	f0, OpXbX6Sf (0, 0, 0x05, 0), {}, EMPTY},
    173   1.1  christos     {"fclrf",		f0, OpXbX6Sf (0, 0, 0x05, 0), {0}, PSEUDO, 0, NULL},
    174   1.1  christos     {"fclrf.s1",	f0, OpXbX6Sf (0, 0, 0x05, 1), {}, EMPTY},
    175   1.1  christos     {"fclrf.s2",	f0, OpXbX6Sf (0, 0, 0x05, 2), {}, EMPTY},
    176   1.1  christos     {"fclrf.s3",	f0, OpXbX6Sf (0, 0, 0x05, 3), {}, EMPTY},
    177   1.1  christos     {"fchkf.s0",	f0, OpXbX6Sf (0, 0, 0x08, 0), {TGT25}, EMPTY},
    178   1.1  christos     {"fchkf",		f0, OpXbX6Sf (0, 0, 0x08, 0), {TGT25}, PSEUDO, 0, NULL},
    179   1.1  christos     {"fchkf.s1",	f0, OpXbX6Sf (0, 0, 0x08, 1), {TGT25}, EMPTY},
    180   1.1  christos     {"fchkf.s2",	f0, OpXbX6Sf (0, 0, 0x08, 2), {TGT25}, EMPTY},
    181   1.1  christos     {"fchkf.s3",	f0, OpXbX6Sf (0, 0, 0x08, 3), {TGT25}, EMPTY},
    182   1.1  christos 
    183   1.1  christos     {"break.f",		f0, OpXbX6 (0, 0, 0x00), {IMMU21}, EMPTY},
    184   1.1  christos     {"nop.f",		f0, OpXbX6Y (0, 0, 0x01, 0), {IMMU21}, EMPTY},
    185   1.1  christos     {"hint.f",		f0, OpXbX6Y (0, 0, 0x01, 1), {IMMU21}, EMPTY},
    186   1.1  christos 
    187   1.1  christos     {"fprcpa.s0",	f2, OpXbQSf (1, 1, 0, 0), {F1, P2, F2, F3}, EMPTY},
    188   1.1  christos     {"fprcpa",		f2, OpXbQSf (1, 1, 0, 0), {F1, P2, F2, F3}, PSEUDO, 0, NULL},
    189   1.1  christos     {"fprcpa.s1",	f2, OpXbQSf (1, 1, 0, 1), {F1, P2, F2, F3}, EMPTY},
    190   1.1  christos     {"fprcpa.s2",	f2, OpXbQSf (1, 1, 0, 2), {F1, P2, F2, F3}, EMPTY},
    191   1.1  christos     {"fprcpa.s3",	f2, OpXbQSf (1, 1, 0, 3), {F1, P2, F2, F3}, EMPTY},
    192   1.1  christos 
    193   1.1  christos     {"fprsqrta.s0",	f2, OpXbQSf (1, 1, 1, 0), {F1, P2, F3}, EMPTY},
    194   1.1  christos     {"fprsqrta",	f2, OpXbQSf (1, 1, 1, 0), {F1, P2, F3}, PSEUDO, 0, NULL},
    195   1.1  christos     {"fprsqrta.s1",	f2, OpXbQSf (1, 1, 1, 1), {F1, P2, F3}, EMPTY},
    196   1.1  christos     {"fprsqrta.s2",	f2, OpXbQSf (1, 1, 1, 2), {F1, P2, F3}, EMPTY},
    197   1.1  christos     {"fprsqrta.s3",	f2, OpXbQSf (1, 1, 1, 3), {F1, P2, F3}, EMPTY},
    198   1.1  christos 
    199   1.1  christos     {"fpmin.s0",	f, OpXbX6Sf (1, 0, 0x14, 0), {F1, F2, F3}, EMPTY},
    200   1.1  christos     {"fpmin",		f, OpXbX6Sf (1, 0, 0x14, 0), {F1, F2, F3}, PSEUDO, 0, NULL},
    201   1.1  christos     {"fpmin.s1",	f, OpXbX6Sf (1, 0, 0x14, 1), {F1, F2, F3}, EMPTY},
    202   1.1  christos     {"fpmin.s2",	f, OpXbX6Sf (1, 0, 0x14, 2), {F1, F2, F3}, EMPTY},
    203   1.1  christos     {"fpmin.s3",	f, OpXbX6Sf (1, 0, 0x14, 3), {F1, F2, F3}, EMPTY},
    204   1.1  christos     {"fpmax.s0",	f, OpXbX6Sf (1, 0, 0x15, 0), {F1, F2, F3}, EMPTY},
    205   1.1  christos     {"fpmax",		f, OpXbX6Sf (1, 0, 0x15, 0), {F1, F2, F3}, PSEUDO, 0, NULL},
    206   1.1  christos     {"fpmax.s1",	f, OpXbX6Sf (1, 0, 0x15, 1), {F1, F2, F3}, EMPTY},
    207   1.1  christos     {"fpmax.s2",	f, OpXbX6Sf (1, 0, 0x15, 2), {F1, F2, F3}, EMPTY},
    208   1.1  christos     {"fpmax.s3",	f, OpXbX6Sf (1, 0, 0x15, 3), {F1, F2, F3}, EMPTY},
    209   1.1  christos     {"fpamin.s0",	f, OpXbX6Sf (1, 0, 0x16, 0), {F1, F2, F3}, EMPTY},
    210   1.1  christos     {"fpamin",		f, OpXbX6Sf (1, 0, 0x16, 0), {F1, F2, F3}, PSEUDO, 0, NULL},
    211   1.1  christos     {"fpamin.s1",	f, OpXbX6Sf (1, 0, 0x16, 1), {F1, F2, F3}, EMPTY},
    212   1.1  christos     {"fpamin.s2",	f, OpXbX6Sf (1, 0, 0x16, 2), {F1, F2, F3}, EMPTY},
    213   1.1  christos     {"fpamin.s3",	f, OpXbX6Sf (1, 0, 0x16, 3), {F1, F2, F3}, EMPTY},
    214   1.1  christos     {"fpamax.s0",	f, OpXbX6Sf (1, 0, 0x17, 0), {F1, F2, F3}, EMPTY},
    215   1.1  christos     {"fpamax",		f, OpXbX6Sf (1, 0, 0x17, 0), {F1, F2, F3}, PSEUDO, 0, NULL},
    216   1.1  christos     {"fpamax.s1",	f, OpXbX6Sf (1, 0, 0x17, 1), {F1, F2, F3}, EMPTY},
    217   1.1  christos     {"fpamax.s2",	f, OpXbX6Sf (1, 0, 0x17, 2), {F1, F2, F3}, EMPTY},
    218   1.1  christos     {"fpamax.s3",	f, OpXbX6Sf (1, 0, 0x17, 3), {F1, F2, F3}, EMPTY},
    219   1.1  christos 
    220   1.1  christos     {"fpcmp.eq.s0",	f, OpXbX6Sf (1, 0, 0x30, 0), {F1, F2, F3}, EMPTY},
    221   1.1  christos     {"fpcmp.eq",	f, OpXbX6Sf (1, 0, 0x30, 0), {F1, F2, F3}, PSEUDO, 0, NULL},
    222   1.1  christos     {"fpcmp.eq.s1",	f, OpXbX6Sf (1, 0, 0x30, 1), {F1, F2, F3}, EMPTY},
    223   1.1  christos     {"fpcmp.eq.s2",	f, OpXbX6Sf (1, 0, 0x30, 2), {F1, F2, F3}, EMPTY},
    224   1.1  christos     {"fpcmp.eq.s3",	f, OpXbX6Sf (1, 0, 0x30, 3), {F1, F2, F3}, EMPTY},
    225   1.1  christos     {"fpcmp.lt.s0",	f, OpXbX6Sf (1, 0, 0x31, 0), {F1, F2, F3}, EMPTY},
    226   1.1  christos     {"fpcmp.lt",	f, OpXbX6Sf (1, 0, 0x31, 0), {F1, F2, F3}, PSEUDO, 0, NULL},
    227   1.1  christos     {"fpcmp.lt.s1",	f, OpXbX6Sf (1, 0, 0x31, 1), {F1, F2, F3}, EMPTY},
    228   1.1  christos     {"fpcmp.lt.s2",	f, OpXbX6Sf (1, 0, 0x31, 2), {F1, F2, F3}, EMPTY},
    229   1.1  christos     {"fpcmp.lt.s3",	f, OpXbX6Sf (1, 0, 0x31, 3), {F1, F2, F3}, EMPTY},
    230   1.1  christos     {"fpcmp.le.s0",	f, OpXbX6Sf (1, 0, 0x32, 0), {F1, F2, F3}, EMPTY},
    231   1.1  christos     {"fpcmp.le",	f, OpXbX6Sf (1, 0, 0x32, 0), {F1, F2, F3}, PSEUDO, 0, NULL},
    232   1.1  christos     {"fpcmp.le.s1",	f, OpXbX6Sf (1, 0, 0x32, 1), {F1, F2, F3}, EMPTY},
    233   1.1  christos     {"fpcmp.le.s2",	f, OpXbX6Sf (1, 0, 0x32, 2), {F1, F2, F3}, EMPTY},
    234   1.1  christos     {"fpcmp.le.s3",	f, OpXbX6Sf (1, 0, 0x32, 3), {F1, F2, F3}, EMPTY},
    235   1.1  christos     {"fpcmp.gt.s0",	f, OpXbX6Sf (1, 0, 0x31, 0), {F1, F3, F2}, PSEUDO, 0, NULL},
    236   1.1  christos     {"fpcmp.gt",	f, OpXbX6Sf (1, 0, 0x31, 0), {F1, F3, F2}, PSEUDO, 0, NULL},
    237   1.1  christos     {"fpcmp.gt.s1",	f, OpXbX6Sf (1, 0, 0x31, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
    238   1.1  christos     {"fpcmp.gt.s2",	f, OpXbX6Sf (1, 0, 0x31, 2), {F1, F3, F2}, PSEUDO, 0, NULL},
    239   1.1  christos     {"fpcmp.gt.s3",	f, OpXbX6Sf (1, 0, 0x31, 3), {F1, F3, F2}, PSEUDO, 0, NULL},
    240   1.1  christos     {"fpcmp.ge.s0",	f, OpXbX6Sf (1, 0, 0x32, 0), {F1, F3, F2}, PSEUDO, 0, NULL},
    241   1.1  christos     {"fpcmp.ge",	f, OpXbX6Sf (1, 0, 0x32, 0), {F1, F3, F2}, PSEUDO, 0, NULL},
    242   1.1  christos     {"fpcmp.ge.s1",	f, OpXbX6Sf (1, 0, 0x32, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
    243   1.1  christos     {"fpcmp.ge.s2",	f, OpXbX6Sf (1, 0, 0x32, 2), {F1, F3, F2}, PSEUDO, 0, NULL},
    244   1.1  christos     {"fpcmp.ge.s3",	f, OpXbX6Sf (1, 0, 0x32, 3), {F1, F3, F2}, PSEUDO, 0, NULL},
    245   1.1  christos     {"fpcmp.unord.s0",	f, OpXbX6Sf (1, 0, 0x33, 0), {F1, F2, F3}, EMPTY},
    246   1.1  christos     {"fpcmp.unord",	f, OpXbX6Sf (1, 0, 0x33, 0), {F1, F2, F3}, PSEUDO, 0, NULL},
    247   1.1  christos     {"fpcmp.unord.s1",	f, OpXbX6Sf (1, 0, 0x33, 1), {F1, F2, F3}, EMPTY},
    248   1.1  christos     {"fpcmp.unord.s2",	f, OpXbX6Sf (1, 0, 0x33, 2), {F1, F2, F3}, EMPTY},
    249   1.1  christos     {"fpcmp.unord.s3",	f, OpXbX6Sf (1, 0, 0x33, 3), {F1, F2, F3}, EMPTY},
    250   1.1  christos     {"fpcmp.neq.s0",	f, OpXbX6Sf (1, 0, 0x34, 0), {F1, F2, F3}, EMPTY},
    251   1.1  christos     {"fpcmp.neq",	f, OpXbX6Sf (1, 0, 0x34, 0), {F1, F2, F3}, PSEUDO, 0, NULL},
    252   1.1  christos     {"fpcmp.neq.s1",	f, OpXbX6Sf (1, 0, 0x34, 1), {F1, F2, F3}, EMPTY},
    253   1.1  christos     {"fpcmp.neq.s2",	f, OpXbX6Sf (1, 0, 0x34, 2), {F1, F2, F3}, EMPTY},
    254   1.1  christos     {"fpcmp.neq.s3",	f, OpXbX6Sf (1, 0, 0x34, 3), {F1, F2, F3}, EMPTY},
    255   1.1  christos     {"fpcmp.nlt.s0",	f, OpXbX6Sf (1, 0, 0x35, 0), {F1, F2, F3}, EMPTY},
    256   1.1  christos     {"fpcmp.nlt",	f, OpXbX6Sf (1, 0, 0x35, 0), {F1, F2, F3}, PSEUDO, 0, NULL},
    257   1.1  christos     {"fpcmp.nlt.s1",	f, OpXbX6Sf (1, 0, 0x35, 1), {F1, F2, F3}, EMPTY},
    258   1.1  christos     {"fpcmp.nlt.s2",	f, OpXbX6Sf (1, 0, 0x35, 2), {F1, F2, F3}, EMPTY},
    259   1.1  christos     {"fpcmp.nlt.s3",	f, OpXbX6Sf (1, 0, 0x35, 3), {F1, F2, F3}, EMPTY},
    260   1.1  christos     {"fpcmp.nle.s0",	f, OpXbX6Sf (1, 0, 0x36, 0), {F1, F2, F3}, EMPTY},
    261   1.1  christos     {"fpcmp.nle",	f, OpXbX6Sf (1, 0, 0x36, 0), {F1, F2, F3}, PSEUDO, 0, NULL},
    262   1.1  christos     {"fpcmp.nle.s1",	f, OpXbX6Sf (1, 0, 0x36, 1), {F1, F2, F3}, EMPTY},
    263   1.1  christos     {"fpcmp.nle.s2",	f, OpXbX6Sf (1, 0, 0x36, 2), {F1, F2, F3}, EMPTY},
    264   1.1  christos     {"fpcmp.nle.s3",	f, OpXbX6Sf (1, 0, 0x36, 3), {F1, F2, F3}, EMPTY},
    265   1.1  christos     {"fpcmp.ngt.s0",	f, OpXbX6Sf (1, 0, 0x35, 0), {F1, F3, F2}, PSEUDO, 0, NULL},
    266   1.1  christos     {"fpcmp.ngt",	f, OpXbX6Sf (1, 0, 0x35, 0), {F1, F3, F2}, PSEUDO, 0, NULL},
    267   1.1  christos     {"fpcmp.ngt.s1",	f, OpXbX6Sf (1, 0, 0x35, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
    268   1.1  christos     {"fpcmp.ngt.s2",	f, OpXbX6Sf (1, 0, 0x35, 2), {F1, F3, F2}, PSEUDO, 0, NULL},
    269   1.1  christos     {"fpcmp.ngt.s3",	f, OpXbX6Sf (1, 0, 0x35, 3), {F1, F3, F2}, PSEUDO, 0, NULL},
    270   1.1  christos     {"fpcmp.nge.s0",	f, OpXbX6Sf (1, 0, 0x36, 0), {F1, F3, F2}, PSEUDO, 0, NULL},
    271   1.1  christos     {"fpcmp.nge",	f, OpXbX6Sf (1, 0, 0x36, 0), {F1, F3, F2}, PSEUDO, 0, NULL},
    272   1.1  christos     {"fpcmp.nge.s1",	f, OpXbX6Sf (1, 0, 0x36, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
    273   1.1  christos     {"fpcmp.nge.s2",	f, OpXbX6Sf (1, 0, 0x36, 2), {F1, F3, F2}, PSEUDO, 0, NULL},
    274   1.1  christos     {"fpcmp.nge.s3",	f, OpXbX6Sf (1, 0, 0x36, 3), {F1, F3, F2}, PSEUDO, 0, NULL},
    275   1.1  christos     {"fpcmp.ord.s0",	f, OpXbX6Sf (1, 0, 0x37, 0), {F1, F2, F3}, EMPTY},
    276   1.1  christos     {"fpcmp.ord",	f, OpXbX6Sf (1, 0, 0x37, 0), {F1, F2, F3}, PSEUDO, 0, NULL},
    277   1.1  christos     {"fpcmp.ord.s1",	f, OpXbX6Sf (1, 0, 0x37, 1), {F1, F2, F3}, EMPTY},
    278   1.1  christos     {"fpcmp.ord.s2",	f, OpXbX6Sf (1, 0, 0x37, 2), {F1, F2, F3}, EMPTY},
    279   1.1  christos     {"fpcmp.ord.s3",	f, OpXbX6Sf (1, 0, 0x37, 3), {F1, F2, F3}, EMPTY},
    280   1.1  christos 
    281   1.1  christos     {"fpabs",		f, OpXbX6F2 (1, 0, 0x10, 0), {F1, F3}, PSEUDO, 0, NULL},
    282   1.1  christos     {"fpneg",		f, OpXbX6   (1, 0, 0x11), {F1, F3}, PSEUDO | F2_EQ_F3, 0, NULL},
    283   1.1  christos     {"fpnegabs",	f, OpXbX6F2 (1, 0, 0x11, 0), {F1, F3}, PSEUDO, 0, NULL},
    284   1.1  christos     {"fpmerge.s",	f, OpXbX6   (1, 0, 0x10), {F1, F2, F3}, EMPTY},
    285   1.1  christos     {"fpmerge.ns",	f, OpXbX6   (1, 0, 0x11), {F1, F2, F3}, EMPTY},
    286   1.1  christos     {"fpmerge.se",	f, OpXbX6 (1, 0, 0x12), {F1, F2, F3}, EMPTY},
    287   1.1  christos 
    288   1.1  christos     {"fpcvt.fx.s0",		f, OpXbX6Sf (1, 0, 0x18, 0), {F1, F2}, EMPTY},
    289   1.1  christos     {"fpcvt.fx",		f, OpXbX6Sf (1, 0, 0x18, 0), {F1, F2}, PSEUDO, 0, NULL},
    290   1.1  christos     {"fpcvt.fx.s1",		f, OpXbX6Sf (1, 0, 0x18, 1), {F1, F2}, EMPTY},
    291   1.1  christos     {"fpcvt.fx.s2",		f, OpXbX6Sf (1, 0, 0x18, 2), {F1, F2}, EMPTY},
    292   1.1  christos     {"fpcvt.fx.s3",		f, OpXbX6Sf (1, 0, 0x18, 3), {F1, F2}, EMPTY},
    293   1.1  christos     {"fpcvt.fxu.s0",		f, OpXbX6Sf (1, 0, 0x19, 0), {F1, F2}, EMPTY},
    294   1.1  christos     {"fpcvt.fxu",		f, OpXbX6Sf (1, 0, 0x19, 0), {F1, F2}, PSEUDO, 0, NULL},
    295   1.1  christos     {"fpcvt.fxu.s1",		f, OpXbX6Sf (1, 0, 0x19, 1), {F1, F2}, EMPTY},
    296   1.1  christos     {"fpcvt.fxu.s2",		f, OpXbX6Sf (1, 0, 0x19, 2), {F1, F2}, EMPTY},
    297   1.1  christos     {"fpcvt.fxu.s3",		f, OpXbX6Sf (1, 0, 0x19, 3), {F1, F2}, EMPTY},
    298   1.1  christos     {"fpcvt.fx.trunc.s0",	f, OpXbX6Sf (1, 0, 0x1a, 0), {F1, F2}, EMPTY},
    299   1.1  christos     {"fpcvt.fx.trunc",		f, OpXbX6Sf (1, 0, 0x1a, 0), {F1, F2}, PSEUDO, 0, NULL},
    300   1.1  christos     {"fpcvt.fx.trunc.s1",	f, OpXbX6Sf (1, 0, 0x1a, 1), {F1, F2}, EMPTY},
    301   1.1  christos     {"fpcvt.fx.trunc.s2",	f, OpXbX6Sf (1, 0, 0x1a, 2), {F1, F2}, EMPTY},
    302   1.1  christos     {"fpcvt.fx.trunc.s3",	f, OpXbX6Sf (1, 0, 0x1a, 3), {F1, F2}, EMPTY},
    303   1.1  christos     {"fpcvt.fxu.trunc.s0",	f, OpXbX6Sf (1, 0, 0x1b, 0), {F1, F2}, EMPTY},
    304   1.1  christos     {"fpcvt.fxu.trunc",		f, OpXbX6Sf (1, 0, 0x1b, 0), {F1, F2}, PSEUDO, 0, NULL},
    305   1.1  christos     {"fpcvt.fxu.trunc.s1",	f, OpXbX6Sf (1, 0, 0x1b, 1), {F1, F2}, EMPTY},
    306   1.1  christos     {"fpcvt.fxu.trunc.s2",	f, OpXbX6Sf (1, 0, 0x1b, 2), {F1, F2}, EMPTY},
    307   1.1  christos     {"fpcvt.fxu.trunc.s3",	f, OpXbX6Sf (1, 0, 0x1b, 3), {F1, F2}, EMPTY},
    308   1.1  christos 
    309   1.1  christos     {"fcmp.eq.s0",	  f2, OpRaRbTaSf (4, 0, 0, 0, 0), {P1, P2, F2, F3}, EMPTY},
    310   1.1  christos     {"fcmp.eq",		  f2, OpRaRbTaSf (4, 0, 0, 0, 0), {P1, P2, F2, F3}, PSEUDO, 0, NULL},
    311   1.1  christos     {"fcmp.eq.s1",	  f2, OpRaRbTaSf (4, 0, 0, 0, 1), {P1, P2, F2, F3}, EMPTY},
    312   1.1  christos     {"fcmp.eq.s2",	  f2, OpRaRbTaSf (4, 0, 0, 0, 2), {P1, P2, F2, F3}, EMPTY},
    313   1.1  christos     {"fcmp.eq.s3",	  f2, OpRaRbTaSf (4, 0, 0, 0, 3), {P1, P2, F2, F3}, EMPTY},
    314   1.1  christos     {"fcmp.lt.s0",	  f2, OpRaRbTaSf (4, 0, 1, 0, 0), {P1, P2, F2, F3}, EMPTY},
    315   1.1  christos     {"fcmp.lt",		  f2, OpRaRbTaSf (4, 0, 1, 0, 0), {P1, P2, F2, F3}, PSEUDO, 0, NULL},
    316   1.1  christos     {"fcmp.lt.s1",	  f2, OpRaRbTaSf (4, 0, 1, 0, 1), {P1, P2, F2, F3}, EMPTY},
    317   1.1  christos     {"fcmp.lt.s2",	  f2, OpRaRbTaSf (4, 0, 1, 0, 2), {P1, P2, F2, F3}, EMPTY},
    318   1.1  christos     {"fcmp.lt.s3",	  f2, OpRaRbTaSf (4, 0, 1, 0, 3), {P1, P2, F2, F3}, EMPTY},
    319   1.1  christos     {"fcmp.le.s0",	  f2, OpRaRbTaSf (4, 1, 0, 0, 0), {P1, P2, F2, F3}, EMPTY},
    320   1.1  christos     {"fcmp.le",		  f2, OpRaRbTaSf (4, 1, 0, 0, 0), {P1, P2, F2, F3}, PSEUDO, 0, NULL},
    321   1.1  christos     {"fcmp.le.s1",	  f2, OpRaRbTaSf (4, 1, 0, 0, 1), {P1, P2, F2, F3}, EMPTY},
    322   1.1  christos     {"fcmp.le.s2",	  f2, OpRaRbTaSf (4, 1, 0, 0, 2), {P1, P2, F2, F3}, EMPTY},
    323   1.1  christos     {"fcmp.le.s3",	  f2, OpRaRbTaSf (4, 1, 0, 0, 3), {P1, P2, F2, F3}, EMPTY},
    324   1.1  christos     {"fcmp.unord.s0",	  f2, OpRaRbTaSf (4, 1, 1, 0, 0), {P1, P2, F2, F3}, EMPTY},
    325   1.1  christos     {"fcmp.unord",	  f2, OpRaRbTaSf (4, 1, 1, 0, 0), {P1, P2, F2, F3}, PSEUDO, 0, NULL},
    326   1.1  christos     {"fcmp.unord.s1",	  f2, OpRaRbTaSf (4, 1, 1, 0, 1), {P1, P2, F2, F3}, EMPTY},
    327   1.1  christos     {"fcmp.unord.s2",	  f2, OpRaRbTaSf (4, 1, 1, 0, 2), {P1, P2, F2, F3}, EMPTY},
    328   1.1  christos     {"fcmp.unord.s3",	  f2, OpRaRbTaSf (4, 1, 1, 0, 3), {P1, P2, F2, F3}, EMPTY},
    329   1.1  christos     {"fcmp.eq.unc.s0",	  f2, OpRaRbTaSf (4, 0, 0, 1, 0), {P1, P2, F2, F3}, EMPTY},
    330   1.1  christos     {"fcmp.eq.unc",	  f2, OpRaRbTaSf (4, 0, 0, 1, 0), {P1, P2, F2, F3}, PSEUDO, 0, NULL},
    331   1.1  christos     {"fcmp.eq.unc.s1",	  f2, OpRaRbTaSf (4, 0, 0, 1, 1), {P1, P2, F2, F3}, EMPTY},
    332   1.1  christos     {"fcmp.eq.unc.s2",	  f2, OpRaRbTaSf (4, 0, 0, 1, 2), {P1, P2, F2, F3}, EMPTY},
    333   1.1  christos     {"fcmp.eq.unc.s3",	  f2, OpRaRbTaSf (4, 0, 0, 1, 3), {P1, P2, F2, F3}, EMPTY},
    334   1.1  christos     {"fcmp.lt.unc.s0",	  f2, OpRaRbTaSf (4, 0, 1, 1, 0), {P1, P2, F2, F3}, EMPTY},
    335   1.1  christos     {"fcmp.lt.unc",	  f2, OpRaRbTaSf (4, 0, 1, 1, 0), {P1, P2, F2, F3}, PSEUDO, 0, NULL},
    336   1.1  christos     {"fcmp.lt.unc.s1",	  f2, OpRaRbTaSf (4, 0, 1, 1, 1), {P1, P2, F2, F3}, EMPTY},
    337   1.1  christos     {"fcmp.lt.unc.s2",	  f2, OpRaRbTaSf (4, 0, 1, 1, 2), {P1, P2, F2, F3}, EMPTY},
    338   1.1  christos     {"fcmp.lt.unc.s3",	  f2, OpRaRbTaSf (4, 0, 1, 1, 3), {P1, P2, F2, F3}, EMPTY},
    339   1.1  christos     {"fcmp.le.unc.s0",	  f2, OpRaRbTaSf (4, 1, 0, 1, 0), {P1, P2, F2, F3}, EMPTY},
    340   1.1  christos     {"fcmp.le.unc",	  f2, OpRaRbTaSf (4, 1, 0, 1, 0), {P1, P2, F2, F3}, PSEUDO, 0, NULL},
    341   1.1  christos     {"fcmp.le.unc.s1",	  f2, OpRaRbTaSf (4, 1, 0, 1, 1), {P1, P2, F2, F3}, EMPTY},
    342   1.1  christos     {"fcmp.le.unc.s2",	  f2, OpRaRbTaSf (4, 1, 0, 1, 2), {P1, P2, F2, F3}, EMPTY},
    343   1.1  christos     {"fcmp.le.unc.s3",	  f2, OpRaRbTaSf (4, 1, 0, 1, 3), {P1, P2, F2, F3}, EMPTY},
    344   1.1  christos     {"fcmp.unord.unc.s0", f2, OpRaRbTaSf (4, 1, 1, 1, 0), {P1, P2, F2, F3}, EMPTY},
    345   1.1  christos     {"fcmp.unord.unc",    f2, OpRaRbTaSf (4, 1, 1, 1, 0), {P1, P2, F2, F3}, PSEUDO, 0, NULL},
    346   1.1  christos     {"fcmp.unord.unc.s1", f2, OpRaRbTaSf (4, 1, 1, 1, 1), {P1, P2, F2, F3}, EMPTY},
    347   1.1  christos     {"fcmp.unord.unc.s2", f2, OpRaRbTaSf (4, 1, 1, 1, 2), {P1, P2, F2, F3}, EMPTY},
    348   1.1  christos     {"fcmp.unord.unc.s3", f2, OpRaRbTaSf (4, 1, 1, 1, 3), {P1, P2, F2, F3}, EMPTY},
    349   1.1  christos 
    350   1.1  christos     /* pseudo-ops of the above */
    351   1.1  christos     {"fcmp.gt.s0",	  f2, OpRaRbTaSf (4, 0, 1, 0, 0), {P1, P2, F3, F2}, EMPTY},
    352   1.1  christos     {"fcmp.gt",		  f2, OpRaRbTaSf (4, 0, 1, 0, 0), {P1, P2, F3, F2}, PSEUDO, 0, NULL},
    353   1.1  christos     {"fcmp.gt.s1",	  f2, OpRaRbTaSf (4, 0, 1, 0, 1), {P1, P2, F3, F2}, EMPTY},
    354   1.1  christos     {"fcmp.gt.s2",	  f2, OpRaRbTaSf (4, 0, 1, 0, 2), {P1, P2, F3, F2}, EMPTY},
    355   1.1  christos     {"fcmp.gt.s3",	  f2, OpRaRbTaSf (4, 0, 1, 0, 3), {P1, P2, F3, F2}, EMPTY},
    356   1.1  christos     {"fcmp.ge.s0",	  f2, OpRaRbTaSf (4, 1, 0, 0, 0), {P1, P2, F3, F2}, EMPTY},
    357   1.1  christos     {"fcmp.ge",		  f2, OpRaRbTaSf (4, 1, 0, 0, 0), {P1, P2, F3, F2}, PSEUDO, 0, NULL},
    358   1.1  christos     {"fcmp.ge.s1",	  f2, OpRaRbTaSf (4, 1, 0, 0, 1), {P1, P2, F3, F2}, EMPTY},
    359   1.1  christos     {"fcmp.ge.s2",	  f2, OpRaRbTaSf (4, 1, 0, 0, 2), {P1, P2, F3, F2}, EMPTY},
    360   1.1  christos     {"fcmp.ge.s3",	  f2, OpRaRbTaSf (4, 1, 0, 0, 3), {P1, P2, F3, F2}, EMPTY},
    361   1.1  christos     {"fcmp.neq.s0",	  f2, OpRaRbTaSf (4, 0, 0, 0, 0), {P2, P1, F2, F3}, EMPTY},
    362   1.1  christos     {"fcmp.neq",	  f2, OpRaRbTaSf (4, 0, 0, 0, 0), {P2, P1, F2, F3}, PSEUDO, 0, NULL},
    363   1.1  christos     {"fcmp.neq.s1",	  f2, OpRaRbTaSf (4, 0, 0, 0, 1), {P2, P1, F2, F3}, EMPTY},
    364   1.1  christos     {"fcmp.neq.s2",	  f2, OpRaRbTaSf (4, 0, 0, 0, 2), {P2, P1, F2, F3}, EMPTY},
    365   1.1  christos     {"fcmp.neq.s3",	  f2, OpRaRbTaSf (4, 0, 0, 0, 3), {P2, P1, F2, F3}, EMPTY},
    366   1.1  christos     {"fcmp.nlt.s0",	  f2, OpRaRbTaSf (4, 0, 1, 0, 0), {P2, P1, F2, F3}, EMPTY},
    367   1.1  christos     {"fcmp.nlt",	  f2, OpRaRbTaSf (4, 0, 1, 0, 0), {P2, P1, F2, F3}, PSEUDO, 0, NULL},
    368   1.1  christos     {"fcmp.nlt.s1",	  f2, OpRaRbTaSf (4, 0, 1, 0, 1), {P2, P1, F2, F3}, EMPTY},
    369   1.1  christos     {"fcmp.nlt.s2",	  f2, OpRaRbTaSf (4, 0, 1, 0, 2), {P2, P1, F2, F3}, EMPTY},
    370   1.1  christos     {"fcmp.nlt.s3",	  f2, OpRaRbTaSf (4, 0, 1, 0, 3), {P2, P1, F2, F3}, EMPTY},
    371   1.1  christos     {"fcmp.nle.s0",	  f2, OpRaRbTaSf (4, 1, 0, 0, 0), {P2, P1, F2, F3}, EMPTY},
    372   1.1  christos     {"fcmp.nle",	  f2, OpRaRbTaSf (4, 1, 0, 0, 0), {P2, P1, F2, F3}, PSEUDO, 0, NULL},
    373   1.1  christos     {"fcmp.nle.s1",	  f2, OpRaRbTaSf (4, 1, 0, 0, 1), {P2, P1, F2, F3}, EMPTY},
    374   1.1  christos     {"fcmp.nle.s2",	  f2, OpRaRbTaSf (4, 1, 0, 0, 2), {P2, P1, F2, F3}, EMPTY},
    375   1.1  christos     {"fcmp.nle.s3",	  f2, OpRaRbTaSf (4, 1, 0, 0, 3), {P2, P1, F2, F3}, EMPTY},
    376   1.1  christos     {"fcmp.ngt.s0",	  f2, OpRaRbTaSf (4, 0, 1, 0, 0), {P2, P1, F3, F2}, EMPTY},
    377   1.1  christos     {"fcmp.ngt",	  f2, OpRaRbTaSf (4, 0, 1, 0, 0), {P2, P1, F3, F2}, PSEUDO, 0, NULL},
    378   1.1  christos     {"fcmp.ngt.s1",	  f2, OpRaRbTaSf (4, 0, 1, 0, 1), {P2, P1, F3, F2}, EMPTY},
    379   1.1  christos     {"fcmp.ngt.s2",	  f2, OpRaRbTaSf (4, 0, 1, 0, 2), {P2, P1, F3, F2}, EMPTY},
    380   1.1  christos     {"fcmp.ngt.s3",	  f2, OpRaRbTaSf (4, 0, 1, 0, 3), {P2, P1, F3, F2}, EMPTY},
    381   1.1  christos     {"fcmp.nge.s0",	  f2, OpRaRbTaSf (4, 1, 0, 0, 0), {P2, P1, F3, F2}, EMPTY},
    382   1.1  christos     {"fcmp.nge",	  f2, OpRaRbTaSf (4, 1, 0, 0, 0), {P2, P1, F3, F2}, PSEUDO, 0, NULL},
    383   1.1  christos     {"fcmp.nge.s1",	  f2, OpRaRbTaSf (4, 1, 0, 0, 1), {P2, P1, F3, F2}, EMPTY},
    384   1.1  christos     {"fcmp.nge.s2",	  f2, OpRaRbTaSf (4, 1, 0, 0, 2), {P2, P1, F3, F2}, EMPTY},
    385   1.1  christos     {"fcmp.nge.s3",	  f2, OpRaRbTaSf (4, 1, 0, 0, 3), {P2, P1, F3, F2}, EMPTY},
    386   1.1  christos     {"fcmp.ord.s0",	  f2, OpRaRbTaSf (4, 1, 1, 0, 0), {P2, P1, F2, F3}, EMPTY},
    387   1.1  christos     {"fcmp.ord",	  f2, OpRaRbTaSf (4, 1, 1, 0, 0), {P2, P1, F2, F3}, PSEUDO, 0, NULL},
    388   1.1  christos     {"fcmp.ord.s1",	  f2, OpRaRbTaSf (4, 1, 1, 0, 1), {P2, P1, F2, F3}, EMPTY},
    389   1.1  christos     {"fcmp.ord.s2",	  f2, OpRaRbTaSf (4, 1, 1, 0, 2), {P2, P1, F2, F3}, EMPTY},
    390   1.1  christos     {"fcmp.ord.s3",	  f2, OpRaRbTaSf (4, 1, 1, 0, 3), {P2, P1, F2, F3}, EMPTY},
    391   1.1  christos     {"fcmp.gt.unc.s0",	  f2, OpRaRbTaSf (4, 0, 1, 1, 0), {P1, P2, F3, F2}, EMPTY},
    392   1.1  christos     {"fcmp.gt.unc",	  f2, OpRaRbTaSf (4, 0, 1, 1, 0), {P1, P2, F3, F2}, PSEUDO, 0, NULL},
    393   1.1  christos     {"fcmp.gt.unc.s1",	  f2, OpRaRbTaSf (4, 0, 1, 1, 1), {P1, P2, F3, F2}, EMPTY},
    394   1.1  christos     {"fcmp.gt.unc.s2",	  f2, OpRaRbTaSf (4, 0, 1, 1, 2), {P1, P2, F3, F2}, EMPTY},
    395   1.1  christos     {"fcmp.gt.unc.s3",	  f2, OpRaRbTaSf (4, 0, 1, 1, 3), {P1, P2, F3, F2}, EMPTY},
    396   1.1  christos     {"fcmp.ge.unc.s0",	  f2, OpRaRbTaSf (4, 1, 0, 1, 0), {P1, P2, F3, F2}, EMPTY},
    397   1.1  christos     {"fcmp.ge.unc",	  f2, OpRaRbTaSf (4, 1, 0, 1, 0), {P1, P2, F3, F2}, PSEUDO, 0, NULL},
    398   1.1  christos     {"fcmp.ge.unc.s1",	  f2, OpRaRbTaSf (4, 1, 0, 1, 1), {P1, P2, F3, F2}, EMPTY},
    399   1.1  christos     {"fcmp.ge.unc.s2",	  f2, OpRaRbTaSf (4, 1, 0, 1, 2), {P1, P2, F3, F2}, EMPTY},
    400   1.1  christos     {"fcmp.ge.unc.s3",	  f2, OpRaRbTaSf (4, 1, 0, 1, 3), {P1, P2, F3, F2}, EMPTY},
    401   1.1  christos     {"fcmp.neq.unc.s0",	  f2, OpRaRbTaSf (4, 0, 0, 1, 0), {P2, P1, F2, F3}, EMPTY},
    402   1.1  christos     {"fcmp.neq.unc",	  f2, OpRaRbTaSf (4, 0, 0, 1, 0), {P2, P1, F2, F3}, PSEUDO, 0, NULL},
    403   1.1  christos     {"fcmp.neq.unc.s1",	  f2, OpRaRbTaSf (4, 0, 0, 1, 1), {P2, P1, F2, F3}, EMPTY},
    404   1.1  christos     {"fcmp.neq.unc.s2",	  f2, OpRaRbTaSf (4, 0, 0, 1, 2), {P2, P1, F2, F3}, EMPTY},
    405   1.1  christos     {"fcmp.neq.unc.s3",	  f2, OpRaRbTaSf (4, 0, 0, 1, 3), {P2, P1, F2, F3}, EMPTY},
    406   1.1  christos     {"fcmp.nlt.unc.s0",	  f2, OpRaRbTaSf (4, 0, 1, 1, 0), {P2, P1, F2, F3}, EMPTY},
    407   1.1  christos     {"fcmp.nlt.unc",	  f2, OpRaRbTaSf (4, 0, 1, 1, 0), {P2, P1, F2, F3}, PSEUDO, 0, NULL},
    408   1.1  christos     {"fcmp.nlt.unc.s1",	  f2, OpRaRbTaSf (4, 0, 1, 1, 1), {P2, P1, F2, F3}, EMPTY},
    409   1.1  christos     {"fcmp.nlt.unc.s2",	  f2, OpRaRbTaSf (4, 0, 1, 1, 2), {P2, P1, F2, F3}, EMPTY},
    410   1.1  christos     {"fcmp.nlt.unc.s3",	  f2, OpRaRbTaSf (4, 0, 1, 1, 3), {P2, P1, F2, F3}, EMPTY},
    411   1.1  christos     {"fcmp.nle.unc.s0",	  f2, OpRaRbTaSf (4, 1, 0, 1, 0), {P2, P1, F2, F3}, EMPTY},
    412   1.1  christos     {"fcmp.nle.unc",	  f2, OpRaRbTaSf (4, 1, 0, 1, 0), {P2, P1, F2, F3}, PSEUDO, 0, NULL},
    413   1.1  christos     {"fcmp.nle.unc.s1",	  f2, OpRaRbTaSf (4, 1, 0, 1, 1), {P2, P1, F2, F3}, EMPTY},
    414   1.1  christos     {"fcmp.nle.unc.s2",	  f2, OpRaRbTaSf (4, 1, 0, 1, 2), {P2, P1, F2, F3}, EMPTY},
    415   1.1  christos     {"fcmp.nle.unc.s3",	  f2, OpRaRbTaSf (4, 1, 0, 1, 3), {P2, P1, F2, F3}, EMPTY},
    416   1.1  christos     {"fcmp.ngt.unc.s0",	  f2, OpRaRbTaSf (4, 0, 1, 1, 0), {P2, P1, F3, F2}, EMPTY},
    417   1.1  christos     {"fcmp.ngt.unc",	  f2, OpRaRbTaSf (4, 0, 1, 1, 0), {P2, P1, F3, F2}, PSEUDO, 0, NULL},
    418   1.1  christos     {"fcmp.ngt.unc.s1",	  f2, OpRaRbTaSf (4, 0, 1, 1, 1), {P2, P1, F3, F2}, EMPTY},
    419   1.1  christos     {"fcmp.ngt.unc.s2",	  f2, OpRaRbTaSf (4, 0, 1, 1, 2), {P2, P1, F3, F2}, EMPTY},
    420   1.1  christos     {"fcmp.ngt.unc.s3",	  f2, OpRaRbTaSf (4, 0, 1, 1, 3), {P2, P1, F3, F2}, EMPTY},
    421   1.1  christos     {"fcmp.nge.unc.s0",	  f2, OpRaRbTaSf (4, 1, 0, 1, 0), {P2, P1, F3, F2}, EMPTY},
    422   1.1  christos     {"fcmp.nge.unc",	  f2, OpRaRbTaSf (4, 1, 0, 1, 0), {P2, P1, F3, F2}, PSEUDO, 0, NULL},
    423   1.1  christos     {"fcmp.nge.unc.s1",	  f2, OpRaRbTaSf (4, 1, 0, 1, 1), {P2, P1, F3, F2}, EMPTY},
    424   1.1  christos     {"fcmp.nge.unc.s2",	  f2, OpRaRbTaSf (4, 1, 0, 1, 2), {P2, P1, F3, F2}, EMPTY},
    425   1.1  christos     {"fcmp.nge.unc.s3",	  f2, OpRaRbTaSf (4, 1, 0, 1, 3), {P2, P1, F3, F2}, EMPTY},
    426   1.1  christos     {"fcmp.ord.unc.s0",	  f2, OpRaRbTaSf (4, 1, 1, 1, 0), {P2, P1, F2, F3}, EMPTY},
    427   1.1  christos     {"fcmp.ord.unc",	  f2, OpRaRbTaSf (4, 1, 1, 1, 0), {P2, P1, F2, F3}, PSEUDO, 0, NULL},
    428   1.1  christos     {"fcmp.ord.unc.s1",   f2, OpRaRbTaSf (4, 1, 1, 1, 1), {P2, P1, F2, F3}, EMPTY},
    429   1.1  christos     {"fcmp.ord.unc.s2",   f2, OpRaRbTaSf (4, 1, 1, 1, 2), {P2, P1, F2, F3}, EMPTY},
    430   1.1  christos     {"fcmp.ord.unc.s3",   f2, OpRaRbTaSf (4, 1, 1, 1, 3), {P2, P1, F2, F3}, EMPTY},
    431   1.1  christos 
    432   1.1  christos     {"fclass.m",	f2, OpTa (5, 0), {P1, P2, F2, IMMU9}, EMPTY},
    433   1.1  christos     {"fclass.nm",	f2, OpTa (5, 0), {P2, P1, F2, IMMU9}, PSEUDO, 0, NULL},
    434   1.1  christos     {"fclass.m.unc",	f2, OpTa (5, 1), {P1, P2, F2, IMMU9}, EMPTY},
    435   1.1  christos     {"fclass.nm.unc",	f2, OpTa (5, 1), {P2, P1, F2, IMMU9}, PSEUDO, 0, NULL},
    436   1.1  christos 
    437   1.1  christos     /* note: fnorm and fcvt.xuf have identical encodings! */
    438   1.1  christos     {"fnorm.s0",	f, OpXaSfF2F4 (0x8, 0, 0, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
    439   1.1  christos     {"fnorm",		f, OpXaSfF2F4 (0x8, 0, 0, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
    440   1.1  christos     {"fnorm.s1",	f, OpXaSfF2F4 (0x8, 0, 1, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
    441   1.1  christos     {"fnorm.s2",	f, OpXaSfF2F4 (0x8, 0, 2, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
    442   1.1  christos     {"fnorm.s3",	f, OpXaSfF2F4 (0x8, 0, 3, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
    443   1.1  christos     {"fnorm.s.s0",	f, OpXaSfF2F4 (0x8, 1, 0, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
    444   1.1  christos     {"fnorm.s",		f, OpXaSfF2F4 (0x8, 1, 0, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
    445   1.1  christos     {"fnorm.s.s1",	f, OpXaSfF2F4 (0x8, 1, 1, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
    446   1.1  christos     {"fnorm.s.s2",	f, OpXaSfF2F4 (0x8, 1, 2, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
    447   1.1  christos     {"fnorm.s.s3",	f, OpXaSfF2F4 (0x8, 1, 3, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
    448   1.1  christos     {"fcvt.xuf.s0",	f, OpXaSfF2F4 (0x8, 0, 0, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
    449   1.1  christos     {"fcvt.xuf",	f, OpXaSfF2F4 (0x8, 0, 0, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
    450   1.1  christos     {"fcvt.xuf.s1",	f, OpXaSfF2F4 (0x8, 0, 1, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
    451   1.1  christos     {"fcvt.xuf.s2",	f, OpXaSfF2F4 (0x8, 0, 2, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
    452   1.1  christos     {"fcvt.xuf.s3",	f, OpXaSfF2F4 (0x8, 0, 3, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
    453   1.1  christos     {"fcvt.xuf.s.s0",	f, OpXaSfF2F4 (0x8, 1, 0, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
    454   1.1  christos     {"fcvt.xuf.s",	f, OpXaSfF2F4 (0x8, 1, 0, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
    455   1.1  christos     {"fcvt.xuf.s.s1",	f, OpXaSfF2F4 (0x8, 1, 1, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
    456   1.1  christos     {"fcvt.xuf.s.s2",	f, OpXaSfF2F4 (0x8, 1, 2, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
    457   1.1  christos     {"fcvt.xuf.s.s3",	f, OpXaSfF2F4 (0x8, 1, 3, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
    458   1.1  christos     {"fadd.s0",		f, OpXaSfF4 (0x8, 0, 0, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
    459   1.1  christos     {"fadd",		f, OpXaSfF4 (0x8, 0, 0, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
    460   1.1  christos     {"fadd.s1",		f, OpXaSfF4 (0x8, 0, 1, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
    461   1.1  christos     {"fadd.s2",		f, OpXaSfF4 (0x8, 0, 2, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
    462   1.1  christos     {"fadd.s3",		f, OpXaSfF4 (0x8, 0, 3, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
    463   1.1  christos     {"fadd.s.s0",	f, OpXaSfF4 (0x8, 1, 0, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
    464   1.1  christos     {"fadd.s",		f, OpXaSfF4 (0x8, 1, 0, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
    465   1.1  christos     {"fadd.s.s1",	f, OpXaSfF4 (0x8, 1, 1, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
    466   1.1  christos     {"fadd.s.s2",	f, OpXaSfF4 (0x8, 1, 2, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
    467   1.1  christos     {"fadd.s.s3",	f, OpXaSfF4 (0x8, 1, 3, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
    468   1.1  christos     {"fmpy.s0",		f, OpXaSfF2 (0x8, 0, 0, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
    469   1.1  christos     {"fmpy",		f, OpXaSfF2 (0x8, 0, 0, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
    470   1.1  christos     {"fmpy.s1",		f, OpXaSfF2 (0x8, 0, 1, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
    471   1.1  christos     {"fmpy.s2",		f, OpXaSfF2 (0x8, 0, 2, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
    472   1.1  christos     {"fmpy.s3",		f, OpXaSfF2 (0x8, 0, 3, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
    473   1.1  christos     {"fmpy.s.s0",	f, OpXaSfF2 (0x8, 1, 0, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
    474   1.1  christos     {"fmpy.s",		f, OpXaSfF2 (0x8, 1, 0, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
    475   1.1  christos     {"fmpy.s.s1",	f, OpXaSfF2 (0x8, 1, 1, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
    476   1.1  christos     {"fmpy.s.s2",	f, OpXaSfF2 (0x8, 1, 2, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
    477   1.1  christos     {"fmpy.s.s3",	f, OpXaSfF2 (0x8, 1, 3, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
    478   1.1  christos     {"fma.s0",		f, OpXaSf (0x8, 0, 0), {F1, F3, F4, F2}, EMPTY},
    479   1.1  christos     {"fma",		f, OpXaSf (0x8, 0, 0), {F1, F3, F4, F2}, PSEUDO, 0, NULL},
    480   1.1  christos     {"fma.s1",		f, OpXaSf (0x8, 0, 1), {F1, F3, F4, F2}, EMPTY},
    481   1.1  christos     {"fma.s2",		f, OpXaSf (0x8, 0, 2), {F1, F3, F4, F2}, EMPTY},
    482   1.1  christos     {"fma.s3",		f, OpXaSf (0x8, 0, 3), {F1, F3, F4, F2}, EMPTY},
    483   1.1  christos     {"fma.s.s0",	f, OpXaSf (0x8, 1, 0), {F1, F3, F4, F2}, EMPTY},
    484   1.1  christos     {"fma.s",		f, OpXaSf (0x8, 1, 0), {F1, F3, F4, F2}, PSEUDO, 0, NULL},
    485   1.1  christos     {"fma.s.s1",	f, OpXaSf (0x8, 1, 1), {F1, F3, F4, F2}, EMPTY},
    486   1.1  christos     {"fma.s.s2",	f, OpXaSf (0x8, 1, 2), {F1, F3, F4, F2}, EMPTY},
    487   1.1  christos     {"fma.s.s3",	f, OpXaSf (0x8, 1, 3), {F1, F3, F4, F2}, EMPTY},
    488   1.1  christos 
    489   1.1  christos     {"fnorm.d.s0",	f, OpXaSfF2F4 (0x9, 0, 0, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
    490   1.1  christos     {"fnorm.d",		f, OpXaSfF2F4 (0x9, 0, 0, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
    491   1.1  christos     {"fnorm.d.s1",	f, OpXaSfF2F4 (0x9, 0, 1, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
    492   1.1  christos     {"fnorm.d.s2",	f, OpXaSfF2F4 (0x9, 0, 2, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
    493   1.1  christos     {"fnorm.d.s3",	f, OpXaSfF2F4 (0x9, 0, 3, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
    494   1.1  christos     {"fcvt.xuf.d.s0",	f, OpXaSfF2F4 (0x9, 0, 0, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
    495   1.1  christos     {"fcvt.xuf.d",	f, OpXaSfF2F4 (0x9, 0, 0, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
    496   1.1  christos     {"fcvt.xuf.d.s1",	f, OpXaSfF2F4 (0x9, 0, 1, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
    497   1.1  christos     {"fcvt.xuf.d.s2",	f, OpXaSfF2F4 (0x9, 0, 2, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
    498   1.1  christos     {"fcvt.xuf.d.s3",	f, OpXaSfF2F4 (0x9, 0, 3, 0, 1), {F1, F3}, PSEUDO, 0, NULL},
    499   1.1  christos     {"fadd.d.s0",	f, OpXaSfF4 (0x9, 0, 0, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
    500   1.1  christos     {"fadd.d",		f, OpXaSfF4 (0x9, 0, 0, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
    501   1.1  christos     {"fadd.d.s1",	f, OpXaSfF4 (0x9, 0, 1, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
    502   1.1  christos     {"fadd.d.s2",	f, OpXaSfF4 (0x9, 0, 2, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
    503   1.1  christos     {"fadd.d.s3",	f, OpXaSfF4 (0x9, 0, 3, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
    504   1.1  christos     {"fmpy.d.s0",	f, OpXaSfF2 (0x9, 0, 0, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
    505   1.1  christos     {"fmpy.d",		f, OpXaSfF2 (0x9, 0, 0, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
    506   1.1  christos     {"fmpy.d.s1",	f, OpXaSfF2 (0x9, 0, 1, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
    507   1.1  christos     {"fmpy.d.s2",	f, OpXaSfF2 (0x9, 0, 2, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
    508   1.1  christos     {"fmpy.d.s3",	f, OpXaSfF2 (0x9, 0, 3, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
    509   1.1  christos     {"fma.d.s0",	f, OpXaSf (0x9, 0, 0), {F1, F3, F4, F2}, EMPTY},
    510   1.1  christos     {"fma.d",		f, OpXaSf (0x9, 0, 0), {F1, F3, F4, F2}, PSEUDO, 0, NULL},
    511   1.1  christos     {"fma.d.s1",	f, OpXaSf (0x9, 0, 1), {F1, F3, F4, F2}, EMPTY},
    512   1.1  christos     {"fma.d.s2",	f, OpXaSf (0x9, 0, 2), {F1, F3, F4, F2}, EMPTY},
    513   1.1  christos     {"fma.d.s3",	f, OpXaSf (0x9, 0, 3), {F1, F3, F4, F2}, EMPTY},
    514   1.1  christos 
    515   1.1  christos     {"fpmpy.s0",	f, OpXaSfF2 (0x9, 1, 0, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
    516   1.1  christos     {"fpmpy",		f, OpXaSfF2 (0x9, 1, 0, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
    517   1.1  christos     {"fpmpy.s1",	f, OpXaSfF2 (0x9, 1, 1, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
    518   1.1  christos     {"fpmpy.s2",	f, OpXaSfF2 (0x9, 1, 2, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
    519   1.1  christos     {"fpmpy.s3",	f, OpXaSfF2 (0x9, 1, 3, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
    520   1.1  christos     {"fpma.s0",		f, OpXaSf   (0x9, 1, 0), {F1, F3, F4, F2}, EMPTY},
    521   1.1  christos     {"fpma",		f, OpXaSf   (0x9, 1, 0), {F1, F3, F4, F2}, PSEUDO, 0, NULL},
    522   1.1  christos     {"fpma.s1",		f, OpXaSf   (0x9, 1, 1), {F1, F3, F4, F2}, EMPTY},
    523   1.1  christos     {"fpma.s2",		f, OpXaSf   (0x9, 1, 2), {F1, F3, F4, F2}, EMPTY},
    524   1.1  christos     {"fpma.s3",		f, OpXaSf   (0x9, 1, 3), {F1, F3, F4, F2}, EMPTY},
    525   1.1  christos 
    526   1.1  christos     {"fsub.s0",		f, OpXaSfF4 (0xa, 0, 0, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
    527   1.1  christos     {"fsub",		f, OpXaSfF4 (0xa, 0, 0, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
    528   1.1  christos     {"fsub.s1",		f, OpXaSfF4 (0xa, 0, 1, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
    529   1.1  christos     {"fsub.s2",		f, OpXaSfF4 (0xa, 0, 2, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
    530   1.1  christos     {"fsub.s3",		f, OpXaSfF4 (0xa, 0, 3, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
    531   1.1  christos     {"fsub.s.s0",	f, OpXaSfF4 (0xa, 1, 0, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
    532   1.1  christos     {"fsub.s",		f, OpXaSfF4 (0xa, 1, 0, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
    533   1.1  christos     {"fsub.s.s1",	f, OpXaSfF4 (0xa, 1, 1, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
    534   1.1  christos     {"fsub.s.s2",	f, OpXaSfF4 (0xa, 1, 2, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
    535   1.1  christos     {"fsub.s.s3",	f, OpXaSfF4 (0xa, 1, 3, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
    536   1.1  christos     {"fms.s0",		f, OpXaSf   (0xa, 0, 0), {F1, F3, F4, F2}, EMPTY},
    537   1.1  christos     {"fms",		f, OpXaSf   (0xa, 0, 0), {F1, F3, F4, F2}, PSEUDO, 0, NULL},
    538   1.1  christos     {"fms.s1",		f, OpXaSf   (0xa, 0, 1), {F1, F3, F4, F2}, EMPTY},
    539   1.1  christos     {"fms.s2",		f, OpXaSf   (0xa, 0, 2), {F1, F3, F4, F2}, EMPTY},
    540   1.1  christos     {"fms.s3",		f, OpXaSf   (0xa, 0, 3), {F1, F3, F4, F2}, EMPTY},
    541   1.1  christos     {"fms.s.s0",	f, OpXaSf   (0xa, 1, 0), {F1, F3, F4, F2}, EMPTY},
    542   1.1  christos     {"fms.s",		f, OpXaSf   (0xa, 1, 0), {F1, F3, F4, F2}, PSEUDO, 0, NULL},
    543   1.1  christos     {"fms.s.s1",	f, OpXaSf   (0xa, 1, 1), {F1, F3, F4, F2}, EMPTY},
    544   1.1  christos     {"fms.s.s2",	f, OpXaSf   (0xa, 1, 2), {F1, F3, F4, F2}, EMPTY},
    545   1.1  christos     {"fms.s.s3",	f, OpXaSf   (0xa, 1, 3), {F1, F3, F4, F2}, EMPTY},
    546   1.1  christos     {"fsub.d.s0",	f, OpXaSfF4 (0xb, 0, 0, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
    547   1.1  christos     {"fsub.d",		f, OpXaSfF4 (0xb, 0, 0, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
    548   1.1  christos     {"fsub.d.s1",	f, OpXaSfF4 (0xb, 0, 1, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
    549   1.1  christos     {"fsub.d.s2",	f, OpXaSfF4 (0xb, 0, 2, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
    550   1.1  christos     {"fsub.d.s3",	f, OpXaSfF4 (0xb, 0, 3, 1), {F1, F3, F2}, PSEUDO, 0, NULL},
    551   1.1  christos     {"fms.d.s0",	f, OpXaSf   (0xb, 0, 0), {F1, F3, F4, F2}, EMPTY},
    552   1.1  christos     {"fms.d",		f, OpXaSf   (0xb, 0, 0), {F1, F3, F4, F2}, PSEUDO, 0, NULL},
    553   1.1  christos     {"fms.d.s1",	f, OpXaSf   (0xb, 0, 1), {F1, F3, F4, F2}, EMPTY},
    554   1.1  christos     {"fms.d.s2",	f, OpXaSf   (0xb, 0, 2), {F1, F3, F4, F2}, EMPTY},
    555   1.1  christos     {"fms.d.s3",	f, OpXaSf   (0xb, 0, 3), {F1, F3, F4, F2}, EMPTY},
    556   1.1  christos 
    557   1.1  christos     {"fpms.s0",		f, OpXaSf (0xb, 1, 0), {F1, F3, F4, F2}, EMPTY},
    558   1.1  christos     {"fpms",		f, OpXaSf (0xb, 1, 0), {F1, F3, F4, F2}, PSEUDO, 0, NULL},
    559   1.1  christos     {"fpms.s1",		f, OpXaSf (0xb, 1, 1), {F1, F3, F4, F2}, EMPTY},
    560   1.1  christos     {"fpms.s2",		f, OpXaSf (0xb, 1, 2), {F1, F3, F4, F2}, EMPTY},
    561   1.1  christos     {"fpms.s3",		f, OpXaSf (0xb, 1, 3), {F1, F3, F4, F2}, EMPTY},
    562   1.1  christos 
    563   1.1  christos     {"fnmpy.s0",	f, OpXaSfF2 (0xc, 0, 0, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
    564   1.1  christos     {"fnmpy",		f, OpXaSfF2 (0xc, 0, 0, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
    565   1.1  christos     {"fnmpy.s1",	f, OpXaSfF2 (0xc, 0, 1, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
    566   1.1  christos     {"fnmpy.s2",	f, OpXaSfF2 (0xc, 0, 2, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
    567   1.1  christos     {"fnmpy.s3",	f, OpXaSfF2 (0xc, 0, 3, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
    568   1.1  christos     {"fnmpy.s.s0",	f, OpXaSfF2 (0xc, 1, 0, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
    569   1.1  christos     {"fnmpy.s",		f, OpXaSfF2 (0xc, 1, 0, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
    570   1.1  christos     {"fnmpy.s.s1",	f, OpXaSfF2 (0xc, 1, 1, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
    571   1.1  christos     {"fnmpy.s.s2",	f, OpXaSfF2 (0xc, 1, 2, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
    572   1.1  christos     {"fnmpy.s.s3",	f, OpXaSfF2 (0xc, 1, 3, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
    573   1.1  christos     {"fnma.s0",		f, OpXaSf (0xc, 0, 0), {F1, F3, F4, F2}, EMPTY},
    574   1.1  christos     {"fnma",		f, OpXaSf (0xc, 0, 0), {F1, F3, F4, F2}, PSEUDO, 0, NULL},
    575   1.1  christos     {"fnma.s1",		f, OpXaSf (0xc, 0, 1), {F1, F3, F4, F2}, EMPTY},
    576   1.1  christos     {"fnma.s2",		f, OpXaSf (0xc, 0, 2), {F1, F3, F4, F2}, EMPTY},
    577   1.1  christos     {"fnma.s3",		f, OpXaSf (0xc, 0, 3), {F1, F3, F4, F2}, EMPTY},
    578   1.1  christos     {"fnma.s.s0",	f, OpXaSf (0xc, 1, 0), {F1, F3, F4, F2}, EMPTY},
    579   1.1  christos     {"fnma.s",		f, OpXaSf (0xc, 1, 0), {F1, F3, F4, F2}, PSEUDO, 0, NULL},
    580   1.1  christos     {"fnma.s.s1",	f, OpXaSf (0xc, 1, 1), {F1, F3, F4, F2}, EMPTY},
    581   1.1  christos     {"fnma.s.s2",	f, OpXaSf (0xc, 1, 2), {F1, F3, F4, F2}, EMPTY},
    582   1.1  christos     {"fnma.s.s3",	f, OpXaSf (0xc, 1, 3), {F1, F3, F4, F2}, EMPTY},
    583   1.1  christos     {"fnmpy.d.s0",	f, OpXaSfF2 (0xd, 0, 0, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
    584   1.1  christos     {"fnmpy.d",		f, OpXaSfF2 (0xd, 0, 0, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
    585   1.1  christos     {"fnmpy.d.s1",	f, OpXaSfF2 (0xd, 0, 1, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
    586   1.1  christos     {"fnmpy.d.s2",	f, OpXaSfF2 (0xd, 0, 2, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
    587   1.1  christos     {"fnmpy.d.s3",	f, OpXaSfF2 (0xd, 0, 3, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
    588   1.1  christos     {"fnma.d.s0",	f, OpXaSf (0xd, 0, 0), {F1, F3, F4, F2}, EMPTY},
    589   1.1  christos     {"fnma.d",		f, OpXaSf (0xd, 0, 0), {F1, F3, F4, F2}, PSEUDO, 0, NULL},
    590   1.1  christos     {"fnma.d.s1",	f, OpXaSf (0xd, 0, 1), {F1, F3, F4, F2}, EMPTY},
    591   1.1  christos     {"fnma.d.s2",	f, OpXaSf (0xd, 0, 2), {F1, F3, F4, F2}, EMPTY},
    592   1.1  christos     {"fnma.d.s3",	f, OpXaSf (0xd, 0, 3), {F1, F3, F4, F2}, EMPTY},
    593   1.1  christos 
    594   1.1  christos     {"fpnmpy.s0",	f, OpXaSfF2 (0xd, 1, 0, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
    595   1.1  christos     {"fpnmpy",		f, OpXaSfF2 (0xd, 1, 0, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
    596   1.1  christos     {"fpnmpy.s1",	f, OpXaSfF2 (0xd, 1, 1, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
    597   1.1  christos     {"fpnmpy.s2",	f, OpXaSfF2 (0xd, 1, 2, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
    598   1.1  christos     {"fpnmpy.s3",	f, OpXaSfF2 (0xd, 1, 3, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
    599   1.1  christos     {"fpnma.s0",	f, OpXaSf   (0xd, 1, 0), {F1, F3, F4, F2}, EMPTY},
    600   1.1  christos     {"fpnma",		f, OpXaSf   (0xd, 1, 0), {F1, F3, F4, F2}, PSEUDO, 0, NULL},
    601   1.1  christos     {"fpnma.s1",	f, OpXaSf   (0xd, 1, 1), {F1, F3, F4, F2}, EMPTY},
    602   1.1  christos     {"fpnma.s2",	f, OpXaSf   (0xd, 1, 2), {F1, F3, F4, F2}, EMPTY},
    603   1.1  christos     {"fpnma.s3",	f, OpXaSf   (0xd, 1, 3), {F1, F3, F4, F2}, EMPTY},
    604   1.1  christos 
    605   1.1  christos     {"xmpy.l",		f, OpXaX2F2 (0xe, 1, 0, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
    606   1.1  christos     {"xmpy.lu",		f, OpXaX2F2 (0xe, 1, 0, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
    607   1.1  christos     {"xmpy.h",		f, OpXaX2F2 (0xe, 1, 3, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
    608   1.1  christos     {"xmpy.hu",		f, OpXaX2F2 (0xe, 1, 2, 0), {F1, F3, F4}, PSEUDO, 0, NULL},
    609   1.1  christos     {"xma.l",		f, OpXaX2 (0xe, 1, 0), {F1, F3, F4, F2}, EMPTY},
    610   1.1  christos     {"xma.lu",		f, OpXaX2 (0xe, 1, 0), {F1, F3, F4, F2}, PSEUDO, 0, NULL},
    611   1.1  christos     {"xma.h",		f, OpXaX2 (0xe, 1, 3), {F1, F3, F4, F2}, EMPTY},
    612   1.1  christos     {"xma.hu",		f, OpXaX2 (0xe, 1, 2), {F1, F3, F4, F2}, EMPTY},
    613   1.1  christos 
    614   1.1  christos     {"fselect",		f, OpXa (0xe, 0), {F1, F3, F4, F2}, EMPTY},
    615   1.1  christos 
    616   1.1  christos     {NULL, 0, 0, 0, 0, {0}, 0, 0, NULL}
    617   1.1  christos   };
    618   1.1  christos 
    619   1.1  christos #undef f0
    620   1.1  christos #undef f
    621   1.1  christos #undef f2
    622   1.1  christos #undef bF2
    623   1.1  christos #undef bF4
    624   1.1  christos #undef bQ
    625   1.1  christos #undef bRa
    626   1.1  christos #undef bRb
    627   1.1  christos #undef bSf
    628   1.1  christos #undef bTa
    629   1.1  christos #undef bXa
    630   1.1  christos #undef bXb
    631   1.1  christos #undef bX2
    632   1.1  christos #undef bX6
    633   1.1  christos #undef mF2
    634   1.1  christos #undef mF4
    635   1.1  christos #undef mQ
    636   1.1  christos #undef mRa
    637   1.1  christos #undef mRb
    638   1.1  christos #undef mSf
    639   1.1  christos #undef mTa
    640   1.1  christos #undef mXa
    641   1.1  christos #undef mXb
    642   1.1  christos #undef mX2
    643   1.1  christos #undef mX6
    644   1.1  christos #undef OpXa
    645   1.1  christos #undef OpXaSf
    646   1.1  christos #undef OpXaSfF2
    647   1.1  christos #undef OpXaSfF4
    648   1.1  christos #undef OpXaSfF2F4
    649   1.1  christos #undef OpXaX2
    650   1.1  christos #undef OpRaRbTaSf
    651   1.1  christos #undef OpTa
    652   1.1  christos #undef OpXbQSf
    653   1.1  christos #undef OpXbX6
    654   1.1  christos #undef OpXbX6F2
    655   1.1  christos #undef OpXbX6Sf
    656   1.1  christos #undef EMPTY
    657