home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD2.mdf / gnu / djgpp / src / binutils.2 / include / opcode / m88k.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-05-30  |  31.9 KB  |  588 lines

  1. /* This file has been modified by Data General Corporation, November 1989. */
  2.  
  3.  
  4. /*
  5. *            Disassembler Instruction Table
  6. *
  7. *    The first field of the table is the opcode field. If an opcode
  8. *    is specified which has any non-opcode bits on, a system error
  9. *    will occur when the system attempts the install it into the
  10. *    instruction table.  The second parameter is a pointer to the
  11. *    instruction mnemonic. Each operand is specified by offset, width,
  12. *    and type. The offset is the bit number of the least significant
  13. *    bit of the operand with bit 0 being the least significant bit of
  14. *    the instruction. The width is the number of bits used to specify
  15. *    the operand. The type specifies the output format to be used for
  16. *    the operand. The valid formats are: register, register indirect,
  17. *    hex constant, and bit field specification.  The last field is a
  18. *    pointer to the next instruction in the linked list.  These pointers
  19. *    are initialized by init_disasm().
  20. *
  21. *                Structure Format
  22. *
  23. *       struct INSTAB {
  24. *          UPINT opcode;
  25. *          char *mnemonic;
  26. *          struct OPSPEC op1,op2,op3;
  27. *          struct SIM_FLAGS flgs;
  28. *          struct INSTAB *next;
  29. *       }
  30. *
  31. *       struct OPSPEC {
  32. *          UPINT offset:5;
  33. *          UPINT width:6;
  34. *          UPINT type:5;
  35. *       }
  36. *
  37. *                Revision History
  38. *
  39. *    Revision 1.0    11/08/85    Creation date
  40. *         1.1    02/05/86    Updated instruction mnemonic table MD
  41. *         1.2    06/16/86    Updated SIM_FLAGS for floating point
  42. *         1.3    09/20/86    Updated for new encoding
  43. *             05/11/89    R. Trawick adapted from Motorola disassembler
  44. */
  45.  
  46. #include <stdio.h>
  47.  
  48.  
  49. /*
  50.  * This file contains the structures and constants needed to build the M88000
  51.  * simulator.  It is the main include file, containing all the
  52.  * structures, macros and definitions except for the floating point
  53.  * instruction set.
  54.  */
  55.  
  56. /*
  57.  * The following flag informs the Simulator as to what type of byte ordering
  58.  * will be used. For instance, a BOFLAG = 1 indicates a DEC VAX and IBM type
  59.  * of ordering shall be used.
  60. */
  61.  
  62. /* # define     BOFLAG   1                       /* BYTE ORDERING FLAG */
  63.  
  64. /* define the number of bits in the primary opcode field of the instruction,
  65.  * the destination field, the source 1 and source 2 fields.
  66.  */
  67. # define    OP       8                        /* size of opcode field */ 
  68. # define    DEST     6                        /* size of destination  */
  69. # define    SOURCE1  6                        /* size of source1      */
  70. # define    SOURCE2  6                        /* size of source2      */
  71.  
  72. # define    REGs    32                        /* number of registers  */
  73.  
  74. # define    WORD    long
  75. # define    FLAG    unsigned
  76. # define    STATE   short 
  77.  
  78. # define    TRUE     1
  79. # define    FALSE    0
  80.  
  81. # define    READ     0
  82. # define    WRITE    1
  83.  
  84. /* The next four equates define the priorities that the various classes
  85.  * of instructions have regarding writing results back into registers and
  86.  * signalling exceptions.
  87.  */
  88. /* PMEM is also defined in <sys/param.h> on Delta 88's.  Sigh!  */
  89. #undef PMEM
  90.  
  91. # define    PINT  0   /* Integer Priority */
  92. # define    PFLT  1   /* Floating Point Priority */
  93. # define    PMEM  2   /* Memory Priority */
  94. # define    NA    3   /* Not Applicable, instruction doesnt write to regs */
  95. # define    HIPRI 3   /* highest of these priorities */
  96.  
  97. /* The instruction registers are an artificial mechanism to speed up
  98.  * simulator execution.  In the real processor, an instruction register
  99.  * is 32 bits wide.  In the simulator, the 32 bit instruction is kept in
  100.  * a structure field called rawop, and the instruction is partially decoded,
  101.  * and split into various fields and flags which make up the other fields
  102.  * of the structure.
  103.  * The partial decode is done when the instructions are initially loaded
  104.  * into simulator memory.  The simulator code memory is not an array of
  105.  * 32 bit words, but is an array of instruction register structures.
  106.  * Yes this wastes memory, but it executes much quicker.
  107.  */
  108.  
  109. struct IR_FIELDS {
  110.             unsigned long   op:OP,
  111.                     dest: DEST,
  112.                     src1: SOURCE1,
  113.                     src2: SOURCE2;
  114.                   int   ltncy,
  115.                     extime,
  116.                     wb_pri;     /* writeback priority     */
  117.             unsigned short  imm_flags:2,/* immediate size         */
  118.                     rs1_used:1, /* register source 1 used */
  119.                     rs2_used:1, /* register source 2 used */
  120.                     rsd_used:1, /* register source/dest. used */
  121.                     c_flag:1,   /* complement      */
  122.                     u_flag:1,   /* upper half word */
  123.                     n_flag:1,   /* execute next    */
  124.                     wb_flag:1,  /* uses writeback slot */
  125.                     dest_64:1,  /* dest size       */
  126.                     s1_64:1,    /* source 1 size   */
  127.                     s2_64:1,    /* source 2 size   */
  128.                     scale_flag:1, /* scaled register */
  129.                     brk_flg:1;
  130.                  };
  131.  
  132. struct    mem_segs {
  133.     struct mem_wrd *seg;            /* pointer (returned by calloc) to segment */
  134.     unsigned long baseaddr;            /* base load address from file headers */
  135.     unsigned long endaddr;            /* Ending address of segment */
  136.     int          flags;            /* segment control flags (none defined 12/5/86) */
  137. };
  138.  
  139. #define    MAXSEGS        (10)            /* max number of segment allowed */
  140. #define    MEMSEGSIZE    (sizeof(struct mem_segs))/* size of mem_segs structure */
  141.  
  142.  
  143. #define BRK_RD        (0x01)            /* break on memory read */
  144. #define BRK_WR        (0x02)            /* break on memory write */
  145. #define BRK_EXEC    (0x04)            /* break on execution */
  146. #define    BRK_CNT        (0x08)            /* break on terminal count */
  147.  
  148.  
  149. struct    mem_wrd {
  150.     struct IR_FIELDS opcode;        /* simulator instruction break down */
  151.     union {
  152.         unsigned long  l;        /* memory element break down */
  153.         unsigned short s[2];
  154.         unsigned char  c[4];
  155.     } mem;
  156. };
  157.  
  158. #define    MEMWRDSIZE    (sizeof(struct mem_wrd))    /* size of each 32 bit memory model */
  159.  
  160. /* External declarations */
  161.  
  162. extern    struct mem_segs memory[];
  163. extern    struct PROCESSOR m78000;
  164.  
  165. struct  PROCESSOR   {
  166.          unsigned WORD
  167.                 ip,          /* execute instruction pointer */
  168.                 vbr,         /* vector base register */
  169.                 psr;         /* processor status register */
  170.  
  171.             WORD    S1bus, /* source 1 */
  172.                             S2bus, /* source 2 */
  173.                             Dbus,  /* destination */
  174.                 DAbus, /* data address bus */
  175.                             ALU,
  176.                 Regs[REGs],       /* data registers */
  177.                 time_left[REGs],  /* max clocks before reg is available */
  178.                 wb_pri[REGs],     /* writeback priority of reg */
  179.                 SFU0_regs[REGs],  /* integer unit control regs */
  180.                 SFU1_regs[REGs],  /* floating point control regs */
  181.                 Scoreboard[REGs],
  182.                 Vbr;
  183.         unsigned WORD   scoreboard,
  184.                 Psw,
  185.                 Tpsw;
  186.             FLAG   jump_pending:1;   /* waiting for a jump instr. */
  187.                     };
  188.  
  189. # define    i26bit      1    /* size of immediate field */
  190. # define    i16bit      2
  191. # define    i10bit      3
  192.  
  193. /* Definitions for fields in psr */
  194.  
  195. # define mode  31
  196. # define rbo   30
  197. # define ser   29
  198. # define carry 28
  199. # define sf7m  11
  200. # define sf6m  10
  201. # define sf5m   9
  202. # define sf4m   8
  203. # define sf3m   7
  204. # define sf2m   6
  205. # define sf1m   5
  206. # define mam    4
  207. # define inm    3
  208. # define exm    2
  209. # define trm    1
  210. # define ovfm   0
  211.  
  212. #define        MODEMASK   (1<<(mode-1))
  213. # define    SILENT     0   /* simulate without output to crt */
  214. # define    VERBOSE    1   /* simulate in verbose mode */
  215. # define    PR_INSTR   2   /* only print instructions */
  216.  
  217. # define    RESET      16 /* reset phase */
  218.  
  219. # define    PHASE1     0  /* data path phases */
  220. # define    PHASE2     1
  221.  
  222. /* the 1 clock operations */
  223.  
  224. # define    ADDU        1
  225. # define    ADDC        2
  226. # define    ADDUC       3
  227. # define    ADD         4
  228.  
  229. # define    SUBU    ADD+1
  230. # define    SUBB    ADD+2
  231. # define    SUBUB   ADD+3
  232. # define    SUB     ADD+4
  233.  
  234. # define    AND_    ADD+5
  235. # define    OR      ADD+6
  236. # define    XOR     ADD+7
  237. # define    CMP     ADD+8
  238.                         
  239. /* the LOADS */
  240.  
  241. # define    LDAB    CMP+1
  242. # define    LDAH    CMP+2
  243. # define    LDA     CMP+3
  244. # define    LDAD    CMP+4
  245.  
  246. # define    LDB   LDAD+1
  247. # define    LDH   LDAD+2
  248. # define    LD    LDAD+3
  249. # define    LDD   LDAD+4
  250. # define    LDBU  LDAD+5
  251. # define    LDHU  LDAD+6
  252.  
  253. /* the STORES */
  254.  
  255. # define    STB    LDHU+1
  256. # define    STH    LDHU+2
  257. # define    ST     LDHU+3
  258. # define    STD    LDHU+4
  259.  
  260. /* the exchange */
  261.  
  262. # define    XMEMBU LDHU+5
  263. # define    XMEM   LDHU+6
  264.  
  265. /* the branches */
  266. # define    JSR    STD+1
  267. # define    BSR    STD+2
  268. # define    BR     STD+3
  269. # define    JMP    STD+4
  270. # define    BB1    STD+5
  271. # define    BB0    STD+6
  272. # define    RTN    STD+7
  273. # define    BCND   STD+8
  274.  
  275. /* the TRAPS */
  276. # define    TB1    BCND+1
  277. # define    TB0    BCND+2
  278. # define    TCND   BCND+3
  279. # define    RTE    BCND+4
  280. # define    TBND   BCND+5
  281.  
  282. /* the MISC instructions */
  283. # define    MUL     TBND + 1
  284. # define    DIV     MUL  +2
  285. # define    DIVU    MUL  +3
  286. # define    MASK    MUL  +4
  287. # define    FF0     MUL  +5
  288. # define    FF1     MUL  +6
  289. # define    CLR     MUL  +7
  290. # define    SET     MUL  +8
  291. # define    EXT     MUL  +9
  292. # define    EXTU    MUL  +10
  293. # define    MAK     MUL  +11
  294. # define    ROT     MUL  +12
  295.  
  296. /* control register manipulations */
  297.  
  298. # define    LDCR    ROT  +1
  299. # define    STCR    ROT  +2
  300. # define    XCR     ROT  +3
  301.  
  302. # define    FLDCR    ROT  +4
  303. # define    FSTCR    ROT  +5
  304. # define    FXCR     ROT  +6
  305.  
  306.  
  307. # define    NOP     XCR +1
  308.  
  309. /* floating point instructions */
  310.  
  311. # define    FADD    NOP +1
  312. # define    FSUB    NOP +2
  313. # define    FMUL    NOP +3
  314. # define    FDIV    NOP +4
  315. # define    FSQRT   NOP +5
  316. # define    FCMP    NOP +6
  317. # define    FIP     NOP +7
  318. # define    FLT     NOP +8
  319. # define    INT     NOP +9
  320. # define    NINT    NOP +10
  321. # define    TRNC    NOP +11
  322. # define    FLDC   NOP +12
  323. # define    FSTC   NOP +13
  324. # define    FXC    NOP +14
  325.  
  326. # define UEXT(src,off,wid) ((((unsigned int)(src))>>(off)) & ((1<<(wid)) - 1))
  327. # define SEXT(src,off,wid) (((((int)(src))<<(32-((off)+(wid)))) >>(32-(wid))) )
  328. # define MAKE(src,off,wid) \
  329.   ((((unsigned int)(src)) & ((1<<(wid)) - 1)) << (off))
  330.  
  331. # define opword(n) (unsigned long) (memaddr->mem.l)
  332.  
  333. /*  Constants and Masks */
  334.  
  335. #define SFU0       0x80000000
  336. #define SFU1       0x84000000
  337. #define SFU7       0x9c000000
  338. #define RRI10      0xf0000000
  339. #define RRR        0xf4000000
  340. #define SFUMASK    0xfc00ffe0
  341. #define RRRMASK    0xfc00ffe0
  342. #define RRI10MASK  0xfc00fc00
  343. #define DEFMASK    0xfc000000
  344. #define CTRL       0x0000f000
  345. #define CTRLMASK   0xfc00f800
  346.  
  347. /* Operands types */
  348.  
  349. #define HEX          1
  350. #define REG          2
  351. #define IND          3
  352. #define CONT         3
  353. #define IND          3
  354. #define BF           4
  355. #define REGSC        5    /* scaled register */
  356. #define CRREG        6    /* control register */
  357. #define FCRREG       7    /* floating point control register */
  358. #define PCREL         8
  359. #define CONDMASK     9
  360.  
  361. /* Hashing Specification */
  362.  
  363. #define HASHVAL     79
  364.  
  365. /* Type definitions */
  366.  
  367. typedef unsigned int UINT;
  368.  
  369. /* Structure templates */
  370.  
  371. typedef struct {
  372.    unsigned int offset:5;
  373.    unsigned int width:6;
  374.    unsigned int type:5;
  375. } OPSPEC;
  376.  
  377.     struct SIM_FLAGS {
  378.           int  ltncy,   /* latency (max number of clocks needed to execute) */
  379.           extime,   /* execution time (min number of clocks needed to execute) */
  380.           wb_pri;   /* writeback slot priority */
  381.    unsigned long   op:OP,   /* simulator version of opcode */
  382.          imm_flags:2,   /* 10,16 or 26 bit immediate flags */
  383.           rs1_used:1,   /* register source 1 used */
  384.           rs2_used:1,   /* register source 2 used */
  385.           rsd_used:1,   /* register source/dest used */
  386.         c_flag:1,   /* complement */
  387.         u_flag:1,   /* upper half word */
  388.         n_flag:1,   /* execute next */
  389.            wb_flag:1,   /* uses writeback slot */
  390.            dest_64:1,   /* double precision dest */
  391.          s1_64:1,   /* double precision source 1 */
  392.          s2_64:1,   /* double precision source 2 */
  393.         scale_flag:1;   /* register is scaled */
  394. };
  395.  
  396. typedef struct INSTRUCTAB {
  397.    unsigned int  opcode;
  398.    char          *mnemonic;
  399.    OPSPEC        op1,op2,op3;
  400.    struct SIM_FLAGS flgs;
  401.    struct INSTRUCTAB    *next;
  402. } INSTAB;
  403.  
  404.  
  405. /* Opcode     Mnemonic       Op 1 Spec     Op 2 Spec    Op 3 Spec         Simflags             Next  */
  406.  
  407. static INSTAB  instructions[] =
  408. {0xf400c800,"jsr      ",{0,5,REG}   ,{0,0,0}      ,{0,0,0}   , {2,2,NA,JSR ,          0,0,1,0,0,0,0,1,0,0,0,0}, NULL,
  409.  0xf400cc00,"jsr.n    ",{0,5,REG}   ,{0,0,0}      ,{0,0,0}   , {1,1,NA,JSR ,          0,0,1,0,0,0,1,1,0,0,0,0}, NULL,
  410.  0xf400c000,"jmp      ",{0,5,REG}   ,{0,0,0}      ,{0,0,0}   , {2,2,NA,JMP ,          0,0,1,0,0,0,0,1,0,0,0,0}, NULL,
  411.  0xf400c400,"jmp.n    ",{0,5,REG}   ,{0,0,0}      ,{0,0,0}   , {1,1,NA,JMP ,          0,0,1,0,0,0,1,1,0,0,0,0}, NULL,
  412.  0xc8000000,"bsr      ",{0,26,PCREL},{0,0,0}      ,{0,0,0}   , {2,2,NA,BSR ,     i26bit,0,0,0,0,0,0,1,0,0,0,0}, NULL,
  413.  0xcc000000,"bsr.n    ",{0,26,PCREL},{0,0,0}      ,{0,0,0}   , {1,1,NA,BSR ,     i26bit,0,0,0,0,0,1,1,0,0,0,0}, NULL,
  414.  0xc0000000,"br       ",{0,26,PCREL},{0,0,0}      ,{0,0,0}   , {2,2,NA,BR  ,     i26bit,0,0,0,0,0,0,1,0,0,0,0}, NULL,
  415.  0xc4000000,"br.n     ",{0,26,PCREL},{0,0,0}      ,{0,0,0}   , {1,1,NA,BR  ,     i26bit,0,0,0,0,0,1,1,0,0,0,0}, NULL,
  416.  0xd0000000,"bb0      ",{21,5,HEX}  ,{16,5,REG}   ,{0,16,PCREL},{2,2,NA,BB0,     i16bit,0,1,0,0,0,0,1,0,0,0,0}, NULL,
  417.  0xd4000000,"bb0.n    ",{21,5,HEX}  ,{16,5,REG}   ,{0,16,PCREL},{1,1,NA,BB0,     i16bit,0,1,0,0,0,1,1,0,0,0,0}, NULL,
  418.  0xd8000000,"bb1      ",{21,5,HEX},{16,5,REG}     ,{0,16,PCREL},{2,2,NA,BB1,     i16bit,0,1,0,0,0,0,1,0,0,0,0}, NULL,
  419.  0xdc000000,"bb1.n    ",{21,5,HEX},{16,5,REG}     ,{0,16,PCREL},{1,1,NA,BB1,     i16bit,0,1,0,0,0,1,1,0,0,0,0}, NULL,
  420.  0xf000d000,"tb0      ",{21,5,HEX}  ,{16,5,REG}   ,{0,10,HEX}, {2,2,NA,TB0 ,     i10bit,0,1,0,0,0,0,1,0,0,0,0}, NULL,
  421.  0xf000d800,"tb1      ",{21,5,HEX}  ,{16,5,REG}   ,{0,10,HEX}, {2,2,NA,TB1 ,     i10bit,0,1,0,0,0,0,1,0,0,0,0}, NULL,
  422.  0xe8000000,"bcnd     ",{21,5,CONDMASK},{16,5,REG},{0,16,PCREL},{2,2,NA,BCND,    i16bit,0,1,0,0,0,0,1,0,0,0,0}, NULL,
  423.  0xec000000,"bcnd.n   ",{21,5,CONDMASK},{16,5,REG},{0,16,PCREL},{1,1,NA,BCND,    i16bit,0,1,0,0,0,1,1,0,0,0,0}, NULL,
  424.  0xf000e800,"tcnd     ",{21,5,CONDMASK},{16,5,REG},{0,10,HEX}, {2,2,NA,TCND,     i10bit,0,1,0,0,0,0,1,0,0,0,0}, NULL,
  425.  0xf8000000,"tbnd     ",{16,5,REG}  ,{0,16,HEX}   ,{0,0,0}   , {2,2,NA,TBND,     i10bit,1,0,0,0,0,0,1,0,0,0,0}, NULL,
  426.  0xf400f800,"tbnd     ",{16,5,REG}  ,{0,5,REG}    ,{0,0,0}   , {2,2,NA,TBND,          0,1,1,0,0,0,0,1,0,0,0,0}, NULL,
  427.  0xf400fc00,"rte      ",{0,0,0}     ,{0,0,0}      ,{0,0,0}   , {2,2,NA,RTE ,          0,0,0,0,0,0,0,1,0,0,0,0}, NULL,
  428.  0x1c000000,"ld.b     ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {3,1,PMEM,LDB    ,i16bit,1,0,1,0,0,0,1,0,0,0,0}, NULL,
  429.  0xf4001c00,"ld.b     ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {3,1,PMEM,LDB     ,    0,1,1,1,0,0,0,1,0,0,0,0}, NULL,
  430.  0x0c000000,"ld.bu    ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {3,1,PMEM,LDBU,   i16bit,1,0,1,0,0,0,1,0,0,0,0}, NULL,
  431.  0xf4000c00,"ld.bu    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {3,1,PMEM,LDBU        ,0,1,1,1,0,0,0,1,0,0,0,0}, NULL,
  432.  0x18000000,"ld.h     ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {3,1,PMEM,LDH    ,i16bit,1,0,1,0,0,0,1,0,0,0,0}, NULL,
  433.  0xf4001800,"ld.h     ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {3,1,PMEM,LDH         ,0,1,1,1,0,0,0,1,0,0,0,0}, NULL,
  434.  0xf4001a00,"ld.h     ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REGSC},{3,1,PMEM,LDH         ,0,1,1,1,0,0,0,1,0,0,0,1}, NULL,
  435.  0x08000000,"ld.hu    ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {3,1,PMEM,LDHU,   i16bit,1,0,1,0,0,0,1,0,0,0,0}, NULL,
  436.  0xf4000800,"ld.hu    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {3,1,PMEM,LDHU        ,0,1,1,1,0,0,0,1,0,0,0,0}, NULL,
  437.  0xf4000a00,"ld.hu    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REGSC},{3,1,PMEM,LDHU        ,0,1,1,1,0,0,0,1,0,0,0,1}, NULL,
  438.  0x14000000,"ld       ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {3,1,PMEM,LD     ,i16bit,1,0,1,0,0,0,1,0,0,0,0}, NULL,
  439.  0xf4001400,"ld       ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {3,1,PMEM,LD          ,0,1,1,1,0,0,0,1,0,0,0,0}, NULL,
  440.  0xf4001600,"ld       ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REGSC},{3,1,PMEM,LD          ,0,1,1,1,0,0,0,1,0,0,0,1}, NULL,
  441.  0x10000000,"ld.d     ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {3,1,PMEM,LDD    ,i16bit,1,0,1,0,0,0,1,0,0,0,0}, NULL,
  442.  0xf4001000,"ld.d     ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {3,1,PMEM,LDD         ,0,1,1,1,0,0,0,1,0,0,0,0}, NULL,
  443.  0xf4001200,"ld.d     ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REGSC},{3,1,PMEM,LDD         ,0,1,1,1,0,0,0,1,0,0,0,1}, NULL,
  444.  0xf4001500,"ld.usr   ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {3,1,PMEM,LD          ,0,1,1,1,0,0,0,1,0,0,0,0}, NULL,
  445.  0xf4001700,"ld.usr   ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REGSC},{3,1,PMEM,LD          ,0,1,1,1,0,0,0,1,0,0,0,1}, NULL,
  446.  0x2c000000,"st.b     ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {1,1,NA,STB      ,i16bit,1,0,1,0,0,0,1,0,0,0,0}, NULL,
  447.  0xf4002c00,"st.b     ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,NA,STB           ,0,1,1,1,0,0,0,1,0,0,0,0}, NULL,
  448.  0x28000000,"st.h     ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {1,1,NA,STH      ,i16bit,1,0,1,0,0,0,1,0,0,0,0}, NULL,
  449.  0xf4002800,"st.h     ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,NA,STH           ,0,1,1,1,0,0,0,1,0,0,0,0}, NULL,
  450.  0xf4002a00,"st.h     ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REGSC},{1,1,NA,STH           ,0,1,1,1,0,0,0,1,0,0,0,1}, NULL,
  451.  0x24000000,"st       ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {1,1,NA,ST       ,i16bit,1,0,1,0,0,0,1,0,0,0,0}, NULL,
  452.  0xf4002400,"st       ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,NA,ST            ,0,1,1,1,0,0,0,1,0,0,0,0}   ,NULL,
  453.  0xf4002600,"st       ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REGSC},{1,1,NA,ST            ,0,1,1,1,0,0,0,1,0,0,0,1}   ,NULL,
  454.  0x20000000,"st.d     ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {1,1,NA,STD      ,i16bit,0,1,0,0,0,0,1,0,0,0,0}   ,NULL,
  455.  0xf4002000,"st.d     ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,NA,STD           ,0,1,1,1,0,0,0,1,0,0,0,0}   ,NULL,
  456.  0xf4002200,"st.d     ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REGSC},{1,1,NA,STD           ,0,1,1,1,0,0,0,1,0,0,0,1}   ,NULL,
  457.  0xf4002500,"st.usr   ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,NA,ST            ,0,1,1,1,0,0,0,1,0,0,0,0}   ,NULL,
  458.  0xf4002700,"st.usr   ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REGSC},{1,1,NA,ST            ,0,1,1,1,0,0,0,1,0,0,0,1}   ,NULL,
  459.  0x00000000,"xmem.bu  ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {3,1,PMEM,XMEMBU ,i16bit,1,1,1,0,0,0,1,0,0,0,0}   ,NULL,
  460.  0xf4000000,"xmem.bu  ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {3,1,PMEM,XMEM        ,0,1,1,1,0,0,0,1,0,0,0,0}   ,NULL,
  461.  0x04000000,"xmem     ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {3,1,PMEM,XMEM   ,i16bit,1,1,1,0,0,0,1,0,0,0,0}   ,NULL,
  462.  0xf4000400,"xmem     ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {3,1,PMEM,XMEM        ,0,1,1,1,0,0,0,1,0,0,0,0}   ,NULL,
  463.  0xf4000600,"xmem     ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REGSC},{3,1,PMEM,XMEM        ,0,1,1,1,0,0,0,1,0,0,0,1}   ,NULL,
  464.  0xf4000500,"xmem.usr ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {3,1,PMEM,XMEM        ,0,1,1,1,0,0,0,1,0,0,0,0}   ,NULL,
  465.  0xf4000700,"xmem.usr ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REGSC},{3,1,PMEM,XMEM        ,0,1,1,1,0,0,0,1,0,0,0,1}   ,NULL,
  466.  0xf4003e00,"lda.b    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REGSC},{1,1,PINT,LDAH,        0,1,1,1,0,0,0,0,0,0,0,1}   ,NULL,
  467.  0xf4003a00,"lda.h    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REGSC},{1,1,PINT,LDAH,        0,1,1,1,0,0,0,0,0,0,0,1}   ,NULL,
  468.  0xf4003600,"lda      ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REGSC},{1,1,PINT,LDA ,        0,1,1,1,0,0,0,0,0,0,0,1}   ,NULL,
  469.  0xf4003200,"lda.d    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REGSC},{1,1,PINT,LDAD,        0,1,1,1,0,0,0,0,0,0,0,1}   ,NULL,
  470.  
  471.  0x80004000,"ldcr     ",{21,5,REG}  ,{5,6,CRREG}  ,{0,0,0}    ,{1,1,PINT,LDCR,        0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL,
  472.  0x80008000,"stcr     ",{16,5,REG}  ,{5,6,CRREG}  ,{0,0,0}    ,{1,1,PINT,STCR,        0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL,
  473.  0x8000c000,"xcr      ",{21,5,REG}  ,{16,5,REG}   ,{5,6,CRREG},{1,1,PINT,XCR,         0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL,
  474.  
  475.  0xf4006000,"addu     ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,ADDU,        0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL,
  476.  0xf4006200,"addu.ci  ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,ADDU,        0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL,
  477.  0xf4006100,"addu.co  ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,ADDU,        0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL,
  478.  0xf4006300,"addu.cio ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,ADDU,        0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL,
  479.  0xf4006400,"subu     ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,SUBU,        0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL,
  480.  0xf4006600,"subu.ci  ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,SUBU,        0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL,
  481.  0xf4006500,"subu.co  ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,SUBU,        0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL,
  482.  0xf4006700,"subu.cio ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,SUBU,        0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL,
  483.  0xf4006900,"divu     ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {32,32,PINT,DIVU,        0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL,
  484.  0xf4006d00,"mul      ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,4,PINT,MUL,      0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL,
  485.  0xf4007000,"add      ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,ADD ,        0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL,
  486.  0xf4007200,"add.ci   ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,ADD ,        0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL,
  487.  0xf4007100,"add.co   ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,ADD ,        0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL,
  488.  0xf4007300,"add.cio  ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,ADD ,        0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL,
  489.  0xf4007400,"sub      ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,SUB ,        0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL,
  490.  0xf4007600,"sub.ci   ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,SUB ,        0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL,
  491.  0xf4007500,"sub.co   ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,SUB ,        0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL,
  492.  0xf4007700,"sub.cio  ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,SUB ,        0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL,
  493.  0xf4007900,"div      ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {32,32,PINT,DIV ,      0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL,
  494.  0xf4007d00,"cmp      ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,CMP,         0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL,
  495.  
  496.  0x60000000,"addu     ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {1,1,PINT,ADDU,   i16bit,1,0,1,0,0,0,0,0,0,0,0}   ,NULL,
  497.  0x64000000,"subu     ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {1,1,PINT,SUBU,   i16bit,1,0,1,0,0,0,0,0,0,0,0}   ,NULL,
  498.  
  499.  0x68000000,"divu     ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {32,32,PINT,DIVU, i16bit,1,0,1,0,0,0,0,0,0,0,0}   ,NULL,
  500.  0x6c000000,"mul      ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {4,1,PINT,MUL,    i16bit,1,0,1,0,0,0,0,0,0,0,0}   ,NULL,
  501.  0x70000000,"add      ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {1,1,PINT,ADD,    i16bit,1,0,1,0,0,0,0,0,0,0,0}   ,NULL,
  502.  0x74000000,"sub      ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {1,1,PINT,SUB,    i16bit,1,0,1,0,0,0,0,0,0,0,0}   ,NULL,
  503.  0x78000000,"div      ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {32,32,PINT,DIV,  i16bit,1,0,1,0,0,0,0,0,0,0,0}   ,NULL,
  504.  0x7c000000,"cmp      ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {1,1,PINT,CMP,    i16bit,1,0,1,0,0,0,0,0,0,0,0}   ,NULL,
  505.  
  506.  0xf4004000,"and      ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,AND_        ,0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL,
  507.  0xf4004400,"and.c    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,AND_        ,0,1,1,1,1,0,0,0,0,0,0,0}   ,NULL,
  508.  0xf4005800,"or       ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,OR          ,0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL,
  509.  0xf4005c00,"or.c     ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,OR          ,0,1,1,1,1,0,0,0,0,0,0,0}   ,NULL,
  510.  0xf4005000,"xor      ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,XOR         ,0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL,
  511.  0xf4005400,"xor.c    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,XOR         ,0,1,1,1,1,0,0,0,0,0,0,0}   ,NULL,
  512.  0x40000000,"and      ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {1,1,PINT,AND_   ,i16bit,1,0,1,0,0,0,0,0,0,0,0}   ,NULL,
  513.  0x44000000,"and.u    ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {1,1,PINT,AND_   ,i16bit,1,0,1,0,1,0,0,0,0,0,0}   ,NULL,
  514.  0x58000000,"or       ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {1,1,PINT,OR     ,i16bit,1,0,1,0,0,0,0,0,0,0,0}   ,NULL,
  515.  0x5c000000,"or.u     ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {1,1,PINT,OR     ,i16bit,1,0,1,0,1,0,0,0,0,0,0}   ,NULL,
  516.  0x50000000,"xor      ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {1,1,PINT,XOR    ,i16bit,1,0,1,0,0,0,0,0,0,0,0}   ,NULL,
  517.  0x54000000,"xor.u    ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {1,1,PINT,XOR    ,i16bit,1,0,1,0,1,0,0,0,0,0,0}   ,NULL,
  518.  0x48000000,"mask     ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {1,1,PINT,MASK   ,i16bit,1,0,1,0,0,0,0,0,0,0,0}   ,NULL,
  519.  0x4c000000,"mask.u   ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {1,1,PINT,MASK   ,i16bit,1,0,1,0,1,0,0,0,0,0,0}   ,NULL,
  520.  0xf400ec00,"ff0      ",{21,5,REG}  ,{0,5,REG}    ,{0,0,0}   , {1,1,PINT,FF0         ,0,0,1,1,0,0,0,0,0,0,0,0}   ,NULL,
  521.  0xf400e800,"ff1      ",{21,5,REG}  ,{0,5,REG}    ,{0,0,0}   , {1,1,PINT,FF1         ,0,0,1,1,0,0,0,0,0,0,0,0}   ,NULL,
  522.  0xf0008000,"clr      ",{21,5,REG}  ,{16,5,REG}   ,{0,10,BF} , {1,1,PINT,CLR    ,i10bit,1,0,1,0,0,0,0,0,0,0,0}   ,NULL,
  523.  0xf0008800,"set      ",{21,5,REG}  ,{16,5,REG}   ,{0,10,BF} , {1,1,PINT,SET    ,i10bit,1,0,1,0,0,0,0,0,0,0,0}   ,NULL,
  524.  0xf0009000,"ext      ",{21,5,REG}  ,{16,5,REG}   ,{0,10,BF} , {1,1,PINT,EXT    ,i10bit,1,0,1,0,0,0,0,0,0,0,0}   ,NULL,
  525.  0xf0009800,"extu     ",{21,5,REG}  ,{16,5,REG}   ,{0,10,BF} , {1,1,PINT,EXTU   ,i10bit,1,0,1,0,0,0,0,0,0,0,0}   ,NULL,
  526.  0xf000a000,"mak      ",{21,5,REG}  ,{16,5,REG}   ,{0,10,BF} , {1,1,PINT,MAK    ,i10bit,1,0,1,0,0,0,0,0,0,0,0}   ,NULL,
  527.  0xf000a800,"rot      ",{21,5,REG}  ,{16,5,REG}   ,{0,10,BF} , {1,1,PINT,ROT    ,i10bit,1,0,1,0,0,0,0,0,0,0,0}   ,NULL,
  528.  0xf4008000,"clr      ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,CLR         ,0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL,
  529.  0xf4008800,"set      ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,SET         ,0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL,
  530.  0xf4009000,"ext      ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,EXT         ,0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL,
  531.  0xf4009800,"extu     ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,EXTU        ,0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL,
  532.  0xf400a000,"mak      ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,MAK         ,0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL,
  533.  0xf400a800,"rot      ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,ROT         ,0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL,
  534.  
  535.  0x84002800,"fadd.sss ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {5,1,PFLT,FADD        ,0,1,1,1,0,0,0,1,0,0,0,0}   ,NULL,
  536.  0x84002880,"fadd.ssd ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {6,2,PFLT,FADD        ,0,1,1,1,0,0,0,1,0,0,1,0}   ,NULL,
  537.  0x84002a00,"fadd.sds ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {6,2,PFLT,FADD        ,0,1,1,1,0,0,0,1,0,1,0,0}   ,NULL,
  538.  0x84002a80,"fadd.sdd ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {6,2,PFLT,FADD        ,0,1,1,1,0,0,0,1,0,1,1,0}   ,NULL,
  539.  0x84002820,"fadd.dss ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {6,2,PFLT,FADD        ,0,1,1,1,0,0,0,1,1,0,0,0}   ,NULL,
  540.  0x840028a0,"fadd.dsd ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {6,2,PFLT,FADD        ,0,1,1,1,0,0,0,1,1,0,1,0}   ,NULL,
  541.  0x84002a20,"fadd.dds ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {6,2,PFLT,FADD        ,0,1,1,1,0,0,0,1,1,1,0,0}   ,NULL,
  542.  0x84002aa0,"fadd.ddd ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {6,2,PFLT,FADD        ,0,1,1,1,0,0,0,1,1,1,1,0}   ,NULL,
  543.  0x84003000,"fsub.sss ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {5,1,PFLT,FSUB        ,0,1,1,1,0,0,0,1,0,0,0,0}   ,NULL,
  544.  0x84003080,"fsub.ssd ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {6,2,PFLT,FSUB        ,0,1,1,1,0,0,0,1,0,0,1,0}   ,NULL,
  545.  0x84003200,"fsub.sds ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {6,2,PFLT,FSUB        ,0,1,1,1,0,0,0,1,0,1,0,0}   ,NULL,
  546.  0x84003280,"fsub.sdd ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {6,2,PFLT,FSUB        ,0,1,1,1,0,0,0,1,0,1,1,0}   ,NULL,
  547.  0x84003020,"fsub.dss ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {6,2,PFLT,FSUB        ,0,1,1,1,0,0,0,1,1,0,0,0}   ,NULL,
  548.  0x840030a0,"fsub.dsd ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {6,2,PFLT,FSUB        ,0,1,1,1,0,0,0,1,1,0,1,0}   ,NULL,
  549.  0x84003220,"fsub.dds ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {6,2,PFLT,FSUB        ,0,1,1,1,0,0,0,1,1,1,0,0}   ,NULL,
  550.  0x840032a0,"fsub.ddd ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {6,2,PFLT,FSUB        ,0,1,1,1,0,0,0,1,1,1,1,0}   ,NULL,
  551.  0x84000000,"fmul.sss ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {6,1,PFLT,FMUL        ,0,1,1,1,0,0,0,1,0,0,0,0}   ,NULL,
  552.  0x84000080,"fmul.ssd ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {9,2,PFLT,FMUL        ,0,1,1,1,0,0,0,1,0,0,1,0}   ,NULL,
  553.  0x84000200,"fmul.sds ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {9,2,PFLT,FMUL        ,0,1,1,1,0,0,0,1,0,1,0,0}   ,NULL,
  554.  0x84000280,"fmul.sdd ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {9,2,PFLT,FMUL        ,0,1,1,1,0,0,0,1,0,1,1,0}   ,NULL,
  555.  0x84000020,"fmul.dss ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {9,2,PFLT,FMUL        ,0,1,1,1,0,0,0,1,1,0,0,0}   ,NULL,
  556.  0x840000a0,"fmul.dsd ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {9,2,PFLT,FMUL        ,0,1,1,1,0,0,0,1,1,0,1,0}   ,NULL,
  557.  0x84000220,"fmul.dds ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {9,2,PFLT,FMUL        ,0,1,1,1,0,0,0,1,1,1,0,0}   ,NULL,
  558.  0x840002a0,"fmul.ddd ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {9,2,PFLT,FMUL        ,0,1,1,1,0,0,0,1,1,1,1,0}   ,NULL,
  559.  0x84007000,"fdiv.sss ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {30,30,PFLT,FDIV      ,0,1,1,1,0,0,0,1,0,0,0,0}   ,NULL,
  560.  0x84007080,"fdiv.ssd ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {60,60,PFLT,FDIV      ,0,1,1,1,0,0,0,1,0,0,1,0}   ,NULL,
  561.  0x84007200,"fdiv.sds ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {60,60,PFLT,FDIV      ,0,1,1,1,0,0,0,1,0,1,0,0}   ,NULL,
  562.  0x84007280,"fdiv.sdd ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {60,60,PFLT,FDIV      ,0,1,1,1,0,0,0,1,0,1,1,0}   ,NULL,
  563.  0x84007020,"fdiv.dss ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {60,60,PFLT,FDIV      ,0,1,1,1,0,0,0,1,1,0,0,0}   ,NULL,
  564.  0x840070a0,"fdiv.dsd ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {60,60,PFLT,FDIV      ,0,1,1,1,0,0,0,1,1,0,1,0}   ,NULL,
  565.  0x84007220,"fdiv.dds ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {60,60,PFLT,FDIV      ,0,1,1,1,0,0,0,1,1,1,0,0}   ,NULL,
  566.  0x840072a0,"fdiv.ddd ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {60,60,PFLT,FDIV      ,0,1,1,1,0,0,0,1,1,1,1,0}   ,NULL,
  567.  0x84007800,"fsqrt.ss ",{21,5,REG}  ,{0,5,REG}    ,{0,0,0}   , {5,1,PFLT,FLT         ,0,0,1,1,0,0,0,1,0,0,0,0}   ,NULL,
  568.  0x84007880,"fsqrt.sd ",{21,5,REG}  ,{0,5,REG}    ,{0,0,0}   , {5,1,PFLT,FLT         ,0,0,1,1,0,0,0,1,0,0,0,0}   ,NULL,
  569.  0x84007820,"fsqrt.ds ",{21,5,REG}  ,{0,5,REG}    ,{0,0,0}   , {5,1,PFLT,FLT         ,0,0,1,1,0,0,0,1,0,0,0,0}   ,NULL,
  570.  0x840078a0,"fsqrt.dd ",{21,5,REG}  ,{0,5,REG}    ,{0,0,0}   , {6,1,PFLT,FLT         ,0,0,1,1,0,0,0,1,1,0,0,0}   ,NULL,
  571.  0x84003800,"fcmp.ss  ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {5,1,PFLT,FCMP        ,0,1,1,1,0,0,0,1,0,0,0,0}   ,NULL,
  572.  0x84003880,"fcmp.sd  ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {6,1,PFLT,FCMP        ,0,1,1,1,0,0,0,1,0,1,0,0}   ,NULL,
  573.  0x84003a00,"fcmp.ds  ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {6,1,PFLT,FCMP        ,0,1,1,1,0,0,0,1,1,0,0,0}   ,NULL,
  574.  0x84003a80,"fcmp.dd  ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {6,1,PFLT,FCMP        ,0,1,1,1,0,0,0,1,1,1,0,0}   ,NULL,
  575.  0x84002000,"flt.s    ",{21,5,REG}  ,{0,5,REG}    ,{0,0,0}   , {5,1,PFLT,FLT         ,0,0,1,1,0,0,0,1,0,0,0,0}   ,NULL,
  576.  0x84002020,"flt.d    ",{21,5,REG}  ,{0,5,REG}    ,{0,0,0}   , {6,1,PFLT,FLT         ,0,0,1,1,0,0,0,1,1,0,0,0}   ,NULL,
  577.  0x84004800,"int.s    ",{21,5,REG}  ,{0,5,REG}    ,{0,0,0}   , {5,1,PFLT,INT         ,0,0,1,1,0,0,0,1,0,0,0,0}   ,NULL,
  578.  0x84004880,"int.d    ",{21,5,REG}  ,{0,5,REG}    ,{0,0,0}   , {6,1,PFLT,INT         ,0,0,1,1,0,0,0,1,1,0,0,0}   ,NULL,
  579.  0x84005000,"nint.s   ",{21,5,REG}  ,{0,5,REG}    ,{0,0,0}   , {5,1,PFLT,INT         ,0,0,1,1,0,0,0,1,0,0,0,0}   ,NULL,
  580.  0x84005080,"nint.d   ",{21,5,REG}  ,{0,5,REG}    ,{0,0,0}   , {6,1,PFLT,INT         ,0,0,1,1,0,0,0,1,1,0,0,0}   ,NULL,
  581.  0x84005800,"trnc.s   ",{21,5,REG}  ,{0,5,REG}    ,{0,0,0}   , {5,1,PFLT,TRNC        ,0,0,1,1,0,0,0,1,0,0,0,0}   ,NULL,
  582.  0x84005880,"trnc.d   ",{21,5,REG}  ,{0,5,REG}    ,{0,0,0}   , {6,1,PFLT,TRNC        ,0,0,1,1,0,0,0,1,1,0,0,0}   ,NULL,
  583.  
  584.  0x80004800,"fldcr    ",{21,5,REG}  ,{5,6,FCRREG} ,{0,0,0}   , {1,1,PFLT,FLDC        ,0,0,1,1,0,0,0,1,0,0,0,0}   ,NULL,
  585.  0x80008800,"fstcr    ",{16,5,REG}  ,{5,6,FCRREG} ,{0,0,0}   , {1,1,PFLT,FSTC        ,0,0,1,1,0,0,0,1,0,0,0,0}   ,NULL,
  586.  0x8000c800,"fxcr     ",{21,5,REG}  ,{16,5,REG}   ,{5,6,FCRREG} , {1,1,PFLT,FXC         ,0,0,1,1,0,0,0,1,0,0,0,0}   ,NULL};
  587.  
  588.