home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 4 / FreshFish_May-June1994.bin / bbs / gnu / gas-1.38.1-src.lha / src / diffs / gas-1.38.1.diffs
Encoding:
Text File  |  1993-09-23  |  224.0 KB  |  5,132 lines

  1. diff -rcP gas-1.38.1-fsf/Makefile gas-1.38.1-amiga/Makefile
  2. *** gas-1.38.1-fsf/Makefile    Thu Oct 18 20:26:42 1990
  3. --- gas-1.38.1-amiga/Makefile    Thu Sep  9 22:50:11 1993
  4. ***************
  5. *** 21,31 ****
  6.   # SPARC, ns32k, or i860 assembler(s).
  7.   
  8.   BINDIR = /usr/local/bin
  9. ! #CC=gcc
  10.   
  11.   # If you are on a BSD system, un-comment the next two lines, and comment out
  12.   # the lines for SystemV and HPUX below
  13. ! G0 = -g  -I. #-O -Wall
  14.   LDFLAGS = $(CFLAGS)
  15.   #
  16.   # To compile gas on a System Five machine, comment out the two lines above
  17. --- 21,38 ----
  18.   # SPARC, ns32k, or i860 assembler(s).
  19.   
  20.   BINDIR = /usr/local/bin
  21. ! CC=gcc
  22. ! LOADLIBES = #-lc
  23.   
  24. + #G0 = -O2 -resident
  25. + G0 = -O2
  26. + .c.o:
  27. +     $(CC) -c $(CFLAGS) $*.c
  28.   # If you are on a BSD system, un-comment the next two lines, and comment out
  29.   # the lines for SystemV and HPUX below
  30. ! #G0 = -g  -I. #-O -Wall
  31.   LDFLAGS = $(CFLAGS)
  32.   #
  33.   # To compile gas on a System Five machine, comment out the two lines above
  34. ***************
  35. *** 108,128 ****
  36.   # (This option is automatically enabled when building the sparc assembler.
  37.   #
  38.   
  39. ! O1 =  -DNO_VARARGS
  40. ! O2 = # -DNON_BROKEN_WORDS
  41. ! O3 = # -Dm68851
  42. ! O4 = # -DEXEC_VERSION=1
  43. ! O5 = # -DSIGTY=void
  44. ! O6 = # -DNS32532
  45. ! O6 = # -DNS32381
  46. ! O7 = # -DDOT_LABEL_PREFIX
  47. ! O8 = # -DSEQUENT_COMPATABILITY
  48. ! O9 = # -DREGISTER_PREFIX=\'%\'
  49. ! O10= # -DOTHER_ALIGN
  50. ! G1 = # -DUSE_SYSTEM_HDR
  51. ! G2 = # -DUSE_HP_HDR
  52. ! G3 = # -DSUN_ASM_SYNTAX
  53.   
  54.   OPTIONS = $(O1) $(O2) $(O3) $(O4) $(O5) $(O6) $(O7) $(O8) $(O9) $(O10)
  55.   
  56. --- 115,147 ----
  57.   # (This option is automatically enabled when building the sparc assembler.
  58.   #
  59.   
  60. ! #O1 =  -DNO_VARARGS
  61. ! O1 =
  62. ! #O2 =  -DNON_BROKEN_WORDS
  63. ! O2 =
  64. ! O3 =  -Dm68851
  65. ! #O4 =  -DEXEC_VERSION=1
  66. ! O4 =
  67. ! O5 =  -DSIGTY=void
  68. ! #O6 =  -DNS32532
  69. ! O6 =
  70. ! #O6 =  -DNS32381
  71. ! #O7 =  -DDOT_LABEL_PREFIX
  72. ! O7 =
  73. ! #O8 =  -DSEQUENT_COMPATABILITY
  74. ! O8 =
  75. ! #O9 =  -DREGISTER_PREFIX=\'%\'
  76. ! O9 =
  77. ! #O10=  -DOTHER_ALIGN
  78. ! O10 =
  79. ! #G1 =  -DUSE_SYSTEM_HDR
  80. ! G1 =
  81. ! #G2 =  -DUSE_HP_HDR
  82. ! G2 =
  83. ! G3 =  -DSUN_ASM_SYNTAX
  84. ! #G3 =
  85. ! G4 =
  86.   
  87.   OPTIONS = $(O1) $(O2) $(O3) $(O4) $(O5) $(O6) $(O7) $(O8) $(O9) $(O10)
  88.   
  89. ***************
  90. *** 165,294 ****
  91.   #gdb.o        gdb-file.o    gdb-symbols.o    gdb-blocks.o    gdb-lines.o
  92.   
  93.   a:    $(DEFAULT_GAS)
  94. !     @rm -f a
  95. !     @ln $(DEFAULT_GAS) a
  96. ! # I860 GAS ------------------------------------------------------------------
  97. ! u = i860.o  atof-ieee.o  write-i860.o  read-i860.o
  98. ! U = i860.c  i860.h i860-opcode.h
  99. ! i860.o:    i860.c i860.h i860-opcode.h as.h frags.h struc-symbol.h
  100. ! i860.o:    flonum.h expr.h hash.h md.h write.h read.h symbols.h
  101. !     $(CC) -c $(CFLAGS) -DI860 i860.c
  102. ! atof-ieee.o:    flonum.h
  103. ! write-i860.o:    write.c i860.h
  104. !     $(CC) -c -DI860 $(CFLAGS) write.c
  105. !     mv write.o write-i860.o
  106. ! read-i860.o: read.c i860.h
  107. !     $(CC) -c -DI860 $(CFLAGS) read.c
  108. !     mv read.o read-i860.o
  109. ! a860: $a $u
  110. !     $(CC) -o a860 $(LDFLAGS) $a $u $(LOADLIBES)
  111. ! # SPARC GAS ------------------------------------------------------------------
  112. ! v = sparc.o  atof-ieee.o  write-sparc.o  read-sparc.o
  113. ! V = sparc.c  sparc.h  sparc-opcode.h
  114. ! atof-ieee.o:    flonum.h
  115. ! sparc.o:    sparc.c sparc.h sparc-opcode.h as.h frags.h struc-symbol.h
  116. ! sparc.o:    flonum.h expr.h hash.h md.h write.h read.h symbols.h
  117. !     $(CC) -c $(CFLAGS) -DSPARC sparc.c
  118. ! write-sparc.o:    write.c
  119. !     $(CC) -c -DSPARC $(CFLAGS) write.c
  120. !     mv write.o write-sparc.o
  121. ! read-sparc.o: read.c
  122. !     $(CC) -c -DSPARC $(CFLAGS) read.c
  123. !     mv read.o read-sparc.o
  124. ! asparc: $a $v
  125. !     $(CC) -o asparc $(LDFLAGS) $a $v $(LOADLIBES)
  126. ! # NS32K GAS ------------------------------------------------------------------
  127. ! w = ns32k.o  atof-ieee.o  write-ns32k.o  read-ns32k.o
  128.   
  129. - W = ns32k.c ns32k-opcode.h
  130. - atof-ieee.o:    flonum.h
  131. - ns32k.o:    as.h frags.h struc-symbol.h flonum.h expr.h md.h hash.h
  132. - ns32k.o:    write.h symbols.h ns32k-opcode.h ns32k.c
  133. -     $(CC) $(CFLAGS) $(OPTIONS) -c ns32k.c
  134. - write-ns32k.o:    write.c
  135. -     $(CC) -c -DNS32K $(CFLAGS) write.c
  136. -     mv write.o write-ns32k.o
  137. - read-ns32k.o:
  138. -     $(CC) -c -DNS32K $(CFLAGS) read.c
  139. -     mv read.o read-ns32k.o
  140. - a32k: $a $w
  141. -     $(CC) -o a32k $(LDFLAGS) $a $w $(LOADLIBES)
  142. - # 80386 GAS ------------------------------------------------------------------
  143. - x = i386.o  atof-ieee.o  write.o  read.o
  144. - X = i386.c  i386.h  i386-opcode.h
  145. - i386.o:        i386.c as.h read.h flonum.h frags.h struc-symbol.h expr.h
  146. - i386.o:        symbols.h hash.h md.h i386.h i386-opcode.h
  147. -     $(CC) $(CFLAGS) $(OPTIONS) -c i386.c
  148. - atof-ieee.o:    flonum.h
  149. - a386: $a $x
  150. -     $(CC) -o a386 $(LDFLAGS) $a $x $(LOADLIBES)
  151.   # 68020 GAS ------------------------------------------------------------------
  152. ! y = m68k.o  atof-ieee.o write.o read.o
  153.   
  154. ! Y = m68k.c atof-ieee.c m68k-opcode.h m-hpux.h m-sun3.h m-generic.h
  155.   
  156.   atof-ieee.o:    flonum.h
  157.   
  158.   m68k.o:        m68k.c a.out.gnu.h as.h expr.h flonum.h frags.h hash.h
  159.   m68k.o:        m68k-opcode.h m68k.h md.h obstack.h struc-symbol.h
  160. !     $(CC) $(CFLAGS) $(OPTIONS) -c m68k.c
  161.   
  162.   a68: $a $y
  163.       $(CC) -o a68 $(LDFLAGS) $a $y $(LOADLIBES)
  164.   
  165. - # VAX GAS --------------------------------------------------------------------
  166. - z = vax.o  atof-vax.o  write.o  read.o
  167. - Z = vax.c atof-vax.c vax-opcode.h vax-inst.h \
  168. -     make-gas.com objrecdef.h vms.c vms-dbg.c README-vms-dbg
  169. - vax.o:        vax.c a.out.gnu.h as.h expr.h flonum.h frags.h md.h obstack.h
  170. - vax.o:        read.h struc-symbol.h symbols.h vax-inst.h vax-opcode.h
  171. - atof-vax.o:    as.h flonum.h read.h
  172. - avax:    $a $z
  173. -     $(CC) -o avax $(LDFLAGS) $a $z $(LOADLIBES)
  174.   # global files ---------------------------------------------------------------
  175.   
  176.   as.o: as.c
  177. !     $(CC) $(CFLAGS) $(OPTIONS) -c as.c
  178.   
  179.   messages.o: messages.c
  180. !     $(CC) $(CFLAGS) $(OPTIONS) -c messages.c
  181.   
  182.   hash.o:    hash.c
  183. !     $(CC) $(CFLAGS) -Derror=as_fatal -c hash.c
  184.   
  185.   xmalloc.o:    xmalloc.c
  186. !     $(CC) $(CFLAGS) -Derror=as_fatal -c xmalloc.c
  187.   
  188.   xrealloc.o:    xrealloc.c
  189. !     $(CC) $(CFLAGS) -Derror=as_fatal -c xrealloc.c
  190.   
  191.   A =\
  192.   as.c        xrealloc.c    xmalloc.c    hash.c        hex-value.c \
  193. --- 184,226 ----
  194.   #gdb.o        gdb-file.o    gdb-symbols.o    gdb-blocks.o    gdb-lines.o
  195.   
  196.   a:    $(DEFAULT_GAS)
  197. ! #    @rm -f a
  198. ! #    @ln $(DEFAULT_GAS) a
  199.   
  200.   # 68020 GAS ------------------------------------------------------------------
  201. ! y = m68k.o m68k-opcode.o  atof-ieee.o write.o read.o
  202.   
  203. ! Y = m68k.c m68k-opcode.c atof-ieee.c m68k-opcode.h m-hpux.h m-sun3.h m-generic.h
  204.   
  205.   atof-ieee.o:    flonum.h
  206.   
  207.   m68k.o:        m68k.c a.out.gnu.h as.h expr.h flonum.h frags.h hash.h
  208.   m68k.o:        m68k-opcode.h m68k.h md.h obstack.h struc-symbol.h
  209. !     $(CC) -c $(CFLAGS) $(OPTIONS) m68k.c
  210.   
  211. + m68k-opcode.o:    m68k-opcode.c a.out.gnu.h as.h expr.h flonum.h frags.h hash.h
  212. + m68k-opcode.o:    m68k-opcode.h m68k.h md.h obstack.h struc-symbol.h
  213. +     $(CC) -c $(CFLAGS) $(OPTIONS) m68k-opcode.c
  214.   a68: $a $y
  215.       $(CC) -o a68 $(LDFLAGS) $a $y $(LOADLIBES)
  216.   
  217.   # global files ---------------------------------------------------------------
  218.   
  219.   as.o: as.c
  220. !     $(CC) -c $(CFLAGS) $(OPTIONS) as.c
  221.   
  222.   messages.o: messages.c
  223. !     $(CC) -c $(CFLAGS) $(OPTIONS) messages.c
  224.   
  225.   hash.o:    hash.c
  226. !     $(CC) -c $(CFLAGS) -Derror=as_fatal hash.c
  227.   
  228.   xmalloc.o:    xmalloc.c
  229. !     $(CC) -c $(CFLAGS) -Derror=as_fatal xmalloc.c
  230.   
  231.   xrealloc.o:    xrealloc.c
  232. !     $(CC) -c $(CFLAGS) -Derror=as_fatal xrealloc.c
  233.   
  234.   A =\
  235.   as.c        xrealloc.c    xmalloc.c    hash.c        hex-value.c \
  236. ***************
  237. *** 296,304 ****
  238.   frags.c        input-file.c    input-scrub.c    output-file.c    read.c \
  239.   subsegs.c    symbols.c    write.c                strstr.c \
  240.   flonum-const.c    flonum-copy.c    flonum-mult.c    app.c        version.c \
  241. ! obstack.c \
  242. ! #gdb.c        gdb-file.c    gdb-symbols.c    gdb-blocks.c \
  243. ! #gdb-lines.c
  244.   
  245.   H = \
  246.   a.out.gnu.h    as.h        bignum.h    expr.h        flonum.h \
  247. --- 228,234 ----
  248.   frags.c        input-file.c    input-scrub.c    output-file.c    read.c \
  249.   subsegs.c    symbols.c    write.c                strstr.c \
  250.   flonum-const.c    flonum-copy.c    flonum-mult.c    app.c        version.c \
  251. ! obstack.c 
  252.   
  253.   H = \
  254.   a.out.gnu.h    as.h        bignum.h    expr.h        flonum.h \
  255. ***************
  256. *** 306,320 ****
  257.   obstack.h    read.h        struc-symbol.h    subsegs.h    \
  258.   symbols.h    write.h
  259.   
  260. - dist: COPYING README ChangeLog $A $H $Z $Y $X $W $V $U Makefile
  261. -     echo gas-`sed -n -e '/ version /s/[^0-9.]*\([0-9.]*\).*/\1/p' < version.c` > .fname
  262. -     mkdir `cat .fname`
  263. -     ln COPYING README ChangeLog $A $H $Z $Y $X $W $V $U Makefile `cat .fname`
  264. -     tar cvhZf `cat .fname`.tar.Z `cat .fname`
  265. -     -rm -r `cat .fname`
  266. -     -rm .fname
  267.   clean:
  268.       rm -f a avax a68 a386 a32k asparc $a $v $w $x $y $z a core gmon.out bugs a.out
  269.   
  270. --- 236,241 ----
  271. ***************
  272. *** 333,339 ****
  273.   flonum-const.o:    flonum.h
  274.   flonum-copy.o:    flonum.h
  275.   flonum-mult.o:    flonum.h
  276. ! flonum-normal.o:flonum.h
  277.   flonum-print.o:    flonum.h
  278.   frags.o:    a.out.gnu.h as.h frags.h obstack.h struc-symbol.h subsegs.h
  279.   #gdb.o:        as.h
  280. --- 254,260 ----
  281.   flonum-const.o:    flonum.h
  282.   flonum-copy.o:    flonum.h
  283.   flonum-mult.o:    flonum.h
  284. ! flonum-normal.o: flonum.h
  285.   flonum-print.o:    flonum.h
  286.   frags.o:    a.out.gnu.h as.h frags.h obstack.h struc-symbol.h subsegs.h
  287.   #gdb.o:        as.h
  288. diff -rcP gas-1.38.1-fsf/a.out.gnu.h gas-1.38.1-amiga/a.out.gnu.h
  289. *** gas-1.38.1-fsf/a.out.gnu.h    Mon Jul 16 21:00:50 1990
  290. --- gas-1.38.1-amiga/a.out.gnu.h    Thu Sep  9 22:49:55 1993
  291. ***************
  292. *** 247,258 ****
  293.     unsigned int r_extern:1;
  294.     /* Four bits that aren't used, but when writing an object file
  295.        it is desirable to clear them.  */
  296. - #ifdef NS32K
  297.     unsigned r_bsr:1;
  298.     unsigned r_disp:1;
  299.     unsigned r_pad:2;
  300.   #else
  301. !   unsigned int r_pad:4;
  302.   #endif
  303.   };
  304.   #endif /* no N_RELOCATION_INFO_DECLARED.  */
  305. --- 247,258 ----
  306.     unsigned int r_extern:1;
  307.     /* Four bits that aren't used, but when writing an object file
  308.        it is desirable to clear them.  */
  309.     unsigned r_bsr:1;
  310. + #ifdef NS32K
  311.     unsigned r_disp:1;
  312.     unsigned r_pad:2;
  313.   #else
  314. !   unsigned int r_pad:3;
  315.   #endif
  316.   };
  317.   #endif /* no N_RELOCATION_INFO_DECLARED.  */
  318. diff -rcP gas-1.38.1-fsf/atof-ieee.c gas-1.38.1-amiga/atof-ieee.c
  319. *** gas-1.38.1-fsf/atof-ieee.c    Mon Jul 16 16:13:13 1990
  320. --- gas-1.38.1-amiga/atof-ieee.c    Thu Sep  9 22:49:27 1993
  321. ***************
  322. *** 26,32 ****
  323.   extern FLONUM_TYPE generic_floating_point_number; /* Flonums returned here. */
  324.   #define NULL (0)
  325.   
  326. ! extern char EXP_CHARS[];
  327.                   /* Precision in LittleNums. */
  328.   #define MAX_PRECISION (6)
  329.   #define F_PRECISION (2)
  330. --- 26,32 ----
  331.   extern FLONUM_TYPE generic_floating_point_number; /* Flonums returned here. */
  332.   #define NULL (0)
  333.   
  334. ! extern const char EXP_CHARS[];
  335.                   /* Precision in LittleNums. */
  336.   #define MAX_PRECISION (6)
  337.   #define F_PRECISION (2)
  338. diff -rcP gas-1.38.1-fsf/expr.c gas-1.38.1-amiga/expr.c
  339. *** gas-1.38.1-fsf/expr.c    Mon Jan 28 16:37:34 1991
  340. --- gas-1.38.1-amiga/expr.c    Thu Sep  9 22:49:37 1993
  341. ***************
  342. *** 86,92 ****
  343.     register char *name;    /* points to name of symbol */
  344.     register struct symbol *    symbolP; /* Points to symbol */
  345.   
  346. !   extern  char hex_value[];    /* In hex_value.c */
  347.     char    *local_label_name();
  348.   
  349.     SKIP_WHITESPACE();        /* Leading whitespace is part of operand. */
  350. --- 86,92 ----
  351.     register char *name;    /* points to name of symbol */
  352.     register struct symbol *    symbolP; /* Points to symbol */
  353.   
  354. !   extern  const char hex_value[];    /* In hex_value.c */
  355.     char    *local_label_name();
  356.   
  357.     SKIP_WHITESPACE();        /* Leading whitespace is part of operand. */
  358. diff -rcP gas-1.38.1-fsf/input-file.c gas-1.38.1-amiga/input-file.c
  359. *** gas-1.38.1-fsf/input-file.c    Fri Jan  4 18:12:57 1991
  360. --- gas-1.38.1-amiga/input-file.c    Thu Sep  9 22:49:41 1993
  361. ***************
  362. *** 222,228 ****
  363. --- 222,232 ----
  364.           char    *mktemp();
  365.           FILE    *f_out;
  366.   
  367. + #ifdef amigados
  368. +         (void)strcpy (temporary_file_name, "t:#appXXXXXX");
  369. + #else
  370.           (void)strcpy (temporary_file_name, "/tmp/#appXXXXXX");
  371. + #endif
  372.           (void)mktemp (temporary_file_name);
  373.           f_out=fopen(temporary_file_name,"w+");
  374.           if(f_out==(FILE *)0)
  375. diff -rcP gas-1.38.1-fsf/m-sun3.h gas-1.38.1-amiga/m-sun3.h
  376. *** gas-1.38.1-fsf/m-sun3.h    Wed Mar  1 22:49:04 1989
  377. --- gas-1.38.1-amiga/m-sun3.h    Thu Sep  9 22:50:08 1993
  378. ***************
  379. *** 28,31 ****
  380. --- 28,33 ----
  381.   
  382.   
  383.   #define M_SUN    1
  384. + #ifndef SUN_ASM_SYNTAX
  385.   #define SUN_ASM_SYNTAX
  386. + #endif
  387. diff -rcP gas-1.38.1-fsf/m68k-opcode.c gas-1.38.1-amiga/m68k-opcode.c
  388. *** gas-1.38.1-fsf/m68k-opcode.c
  389. --- gas-1.38.1-amiga/m68k-opcode.c    Thu Sep  9 22:49:45 1993
  390. ***************
  391. *** 0 ****
  392. --- 1,1506 ----
  393. + /* Opcode table for m68000/m68020 and m68881.
  394. +    Copyright (C) 1989, Free Software Foundation.
  395. + This file is part of GDB, the GNU Debugger and GAS, the GNU Assembler.
  396. + Both GDB and GAS are free software; you can redistribute and/or modify
  397. + it under the terms of the GNU General Public License as published by
  398. + the Free Software Foundation; either version 1, or (at your option)
  399. + any later version.
  400. + GDB and GAS are distributed in the hope that it will be useful,
  401. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  402. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  403. + GNU General Public License for more details.
  404. + You should have received a copy of the GNU General Public License
  405. + along with GDB or GAS; see the file COPYING.  If not, write to
  406. + the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
  407. +    
  408. + #include "m68k-opcode.h"
  409. + /*
  410. +     *** DANGER WILL ROBINSON ***
  411. +    The assembler requires that all instances of the same mnemonic must be
  412. +    consecutive.  If they aren't, the assembler will bomb at runtime
  413. +  */
  414. + struct m68k_opcode m68k_opcodes[] =
  415. + {
  416. + {"abcd",    one(0140400),        one(0170770),        "DsDd"},
  417. + {"abcd",    one(0140410),        one(0170770),        "-s-d"},
  418. +         /* Add instructions */
  419. + {"addal",    one(0150700),        one(0170700),        "*lAd"},
  420. + {"addaw",    one(0150300),        one(0170700),        "*wAd"},
  421. + {"addib",    one(0003000),        one(0177700),        "#b$b"},
  422. + {"addil",    one(0003200),        one(0177700),        "#l$l"},
  423. + {"addiw",    one(0003100),        one(0177700),        "#w$w"},
  424. + {"addqb",    one(0050000),        one(0170700),        "Qd$b"},
  425. + {"addql",    one(0050200),        one(0170700),        "Qd%l"},
  426. + {"addqw",    one(0050100),        one(0170700),        "Qd%w"},
  427. + {"addb",    one(0050000),        one(0170700),        "Qd$b"},    /* addq written as add */
  428. + {"addb",    one(0003000),        one(0177700),        "#b$b"},    /* addi written as add */
  429. + {"addb",    one(0150000),        one(0170700),        ";bDd"},    /* addb <ea>,    Dd */
  430. + {"addb",    one(0150400),        one(0170700),        "Dd~b"},    /* addb Dd,    <ea> */
  431. + {"addw",    one(0050100),        one(0170700),        "Qd%w"},    /* addq written as add */
  432. + {"addw",    one(0003100),        one(0177700),        "#w$w"},    /* addi written as add */
  433. + {"addw",    one(0150300),        one(0170700),        "*wAd"},    /* adda written as add */
  434. + {"addw",    one(0150100),        one(0170700),        "*wDd"},    /* addw <ea>,    Dd */
  435. + {"addw",    one(0150500),        one(0170700),        "Dd~w"},    /* addw Dd,    <ea> */
  436. + {"addl",    one(0050200),        one(0170700),        "Qd%l"},    /* addq written as add */
  437. + {"addl",    one(0003200),        one(0177700),        "#l$l"},    /* addi written as add */
  438. + {"addl",    one(0150700),        one(0170700),        "*lAd"},    /* adda written as add */
  439. + {"addl",    one(0150200),        one(0170700),        "*lDd"},    /* addl <ea>,    Dd */
  440. + {"addl",    one(0150600),        one(0170700),        "Dd~l"},    /* addl Dd,    <ea> */
  441. + {"addxb",    one(0150400),        one(0170770),        "DsDd"},
  442. + {"addxb",    one(0150410),        one(0170770),        "-s-d"},
  443. + {"addxl",    one(0150600),        one(0170770),        "DsDd"},
  444. + {"addxl",    one(0150610),        one(0170770),        "-s-d"},
  445. + {"addxw",    one(0150500),        one(0170770),        "DsDd"},
  446. + {"addxw",    one(0150510),        one(0170770),        "-s-d"},
  447. + {"andib",    one(0001000),        one(0177700),        "#b$b"},
  448. + {"andib",    one(0001074),        one(0177777),        "#bCb"},    /* andi to ccr */
  449. + {"andiw",    one(0001100),        one(0177700),        "#w$w"},
  450. + {"andiw",    one(0001174),        one(0177777),        "#wSw"},    /* andi to sr */
  451. + {"andil",    one(0001200),        one(0177700),        "#l$l"},
  452. + {"andb",    one(0001000),        one(0177700),        "#b$b"},    /* andi written as or */
  453. + {"andb",    one(0001074),        one(0177777),        "#bCb"},    /* andi to ccr */
  454. + {"andb",    one(0140000),        one(0170700),        ";bDd"},    /* memory to register */
  455. + {"andb",    one(0140400),        one(0170700),        "Dd~b"},    /* register to memory */
  456. + {"andw",    one(0001100),        one(0177700),        "#w$w"},    /* andi written as or */
  457. + {"andw",    one(0001174),        one(0177777),        "#wSw"},    /* andi to sr */
  458. + {"andw",    one(0140100),        one(0170700),        ";wDd"},    /* memory to register */
  459. + {"andw",    one(0140500),        one(0170700),        "Dd~w"},    /* register to memory */
  460. + {"andl",    one(0001200),        one(0177700),        "#l$l"},    /* andi written as or */
  461. + {"andl",    one(0140200),        one(0170700),        ";lDd"},    /* memory to register */
  462. + {"andl",    one(0140600),        one(0170700),        "Dd~l"},    /* register to memory */
  463. + {"aslb",    one(0160400),        one(0170770),        "QdDs"},
  464. + {"aslb",    one(0160440),        one(0170770),        "DdDs"},
  465. + {"asll",    one(0160600),        one(0170770),        "QdDs"},
  466. + {"asll",    one(0160640),        one(0170770),        "DdDs"},
  467. + {"aslw",    one(0160500),        one(0170770),        "QdDs"},
  468. + {"aslw",    one(0160540),        one(0170770),        "DdDs"},
  469. + {"aslw",    one(0160700),        one(0177700),        "~s"},    /* Shift memory */
  470. + {"asrb",    one(0160000),        one(0170770),        "QdDs"},
  471. + {"asrb",    one(0160040),        one(0170770),        "DdDs"},
  472. + {"asrl",    one(0160200),        one(0170770),        "QdDs"},
  473. + {"asrl",    one(0160240),        one(0170770),        "DdDs"},
  474. + {"asrw",    one(0160100),        one(0170770),        "QdDs"},
  475. + {"asrw",    one(0160140),        one(0170770),        "DdDs"},
  476. + {"asrw",    one(0160300),        one(0177700),        "~s"},    /* Shift memory */
  477. + {"bhi",        one(0061000),        one(0177400),        "Bg"},
  478. + {"bls",        one(0061400),        one(0177400),        "Bg"},
  479. + {"bcc",        one(0062000),        one(0177400),        "Bg"},
  480. + {"bcs",        one(0062400),        one(0177400),        "Bg"},
  481. + {"bne",        one(0063000),        one(0177400),        "Bg"},
  482. + {"beq",        one(0063400),        one(0177400),        "Bg"},
  483. + {"bvc",        one(0064000),        one(0177400),        "Bg"},
  484. + {"bvs",        one(0064400),        one(0177400),        "Bg"},
  485. + {"bpl",        one(0065000),        one(0177400),        "Bg"},
  486. + {"bmi",        one(0065400),        one(0177400),        "Bg"},
  487. + {"bge",        one(0066000),        one(0177400),        "Bg"},
  488. + {"blt",        one(0066400),        one(0177400),        "Bg"},
  489. + {"bgt",        one(0067000),        one(0177400),        "Bg"},
  490. + {"ble",        one(0067400),        one(0177400),        "Bg"},
  491. + {"bchg",    one(0000500),        one(0170700),        "Dd$s"},
  492. + {"bchg",    one(0004100),        one(0177700),        "#b$s"},
  493. + {"bclr",    one(0000600),        one(0170700),        "Dd$s"},
  494. + {"bclr",    one(0004200),        one(0177700),        "#b$s"},
  495. + {"bfchg",    two(0165300, 0),    two(0177700, 0170000),    "?sO2O3"},
  496. + {"bfclr",    two(0166300, 0),    two(0177700, 0170000),    "?sO2O3"},
  497. + {"bfexts",    two(0165700, 0),    two(0177700, 0100000),    "/sO2O3D1"},
  498. + {"bfextu",    two(0164700, 0),    two(0177700, 0100000),    "/sO2O3D1"},
  499. + {"bfffo",    two(0166700, 0),    two(0177700, 0100000),    "/sO2O3D1"},
  500. + {"bfins",    two(0167700, 0),    two(0177700, 0100000),    "D1?sO2O3"},
  501. + {"bfset",    two(0167300, 0),    two(0177700, 0170000),    "?sO2O3"},
  502. + {"bftst",    two(0164300, 0),    two(0177700, 0170000),    "/sO2O3"},
  503. + {"bset",    one(0000700),        one(0170700),        "Dd$s"},
  504. + {"bset",    one(0004300),        one(0177700),        "#b$s"},
  505. + {"btst",    one(0000400),        one(0170700),        "Dd@s"},
  506. + {"btst",    one(0004000),        one(0177700),        "#b@s"},
  507. + {"bkpt",    one(0044110),        one(0177770),        "Qs"},
  508. + {"bra",        one(0060000),        one(0177400),        "Bg"},
  509. + {"bras",    one(0060000),        one(0177400),        "Bw"},
  510. + {"bsr",        one(0060400),        one(0177400),        "Bg"},
  511. + {"bsrs",    one(0060400),        one(0177400),        "Bw"},
  512. + {"callm",    one(0003300),        one(0177700),        "#b!s"},
  513. + {"cas2l",    two(0007374, 0),    two(0177777, 0107070),    "D3D6D2D5R1R4"}, /* JF FOO this is really a 3 word ins */
  514. + {"cas2w",    two(0006374, 0),    two(0177777, 0107070),    "D3D6D2D5R1R4"}, /* JF ditto */
  515. + {"casb",    two(0005300, 0),    two(0177700, 0177070),    "D3D2~s"},
  516. + {"casl",    two(0007300, 0),    two(0177700, 0177070),    "D3D2~s"},
  517. + {"casw",    two(0006300, 0),    two(0177700, 0177070),    "D3D2~s"},
  518. + /*  {"chk",    one(0040600),        one(0170700),        ";wDd"}, JF FOO this looks wrong */
  519. + {"chk2b",    two(0000300, 0004000),    two(0177700, 07777),    "!sR1"},
  520. + {"chk2l",    two(0002300, 0004000),    two(0177700, 07777),    "!sR1"},
  521. + {"chk2w",    two(0001300, 0004000),    two(0177700, 07777),    "!sR1"},
  522. + {"chkl",    one(0040400),        one(0170700),        ";lDd"},
  523. + {"chkw",    one(0040600),        one(0170700),        ";wDd"},
  524. + {"clrb",    one(0041000),        one(0177700),        "$s"},
  525. + {"clrl",    one(0041200),        one(0177700),        "$s"},
  526. + {"clrw",    one(0041100),        one(0177700),        "$s"},
  527. + {"cmp2b",    two(0000300, 0),    two(0177700, 07777),    "!sR1"},
  528. + {"cmp2l",    two(0002300, 0),    two(0177700, 07777),    "!sR1"},
  529. + {"cmp2w",    two(0001300, 0),    two(0177700, 07777),    "!sR1"},
  530. + {"cmpal",    one(0130700),        one(0170700),        "*lAd"},
  531. + {"cmpaw",    one(0130300),        one(0170700),        "*wAd"},
  532. + {"cmpib",    one(0006000),        one(0177700),        "#b;b"},
  533. + {"cmpil",    one(0006200),        one(0177700),        "#l;l"},
  534. + {"cmpiw",    one(0006100),        one(0177700),        "#w;w"},
  535. + {"cmpb",    one(0006000),        one(0177700),        "#b;b"},    /* cmpi written as cmp */
  536. + {"cmpb",    one(0130000),        one(0170700),        ";bDd"},
  537. + {"cmpw",    one(0006100),        one(0177700),        "#w;w"},
  538. + {"cmpw",    one(0130100),        one(0170700),        "*wDd"},
  539. + {"cmpw",    one(0130300),        one(0170700),        "*wAd"},    /* cmpa written as cmp */
  540. + {"cmpl",    one(0006200),        one(0177700),        "#l;l"},
  541. + {"cmpl",    one(0130200),        one(0170700),        "*lDd"},
  542. + {"cmpl",    one(0130700),        one(0170700),        "*lAd"},
  543. + {"cmpmb",    one(0130410),        one(0170770),        "+s+d"},
  544. + {"cmpml",    one(0130610),        one(0170770),        "+s+d"},
  545. + {"cmpmw",    one(0130510),        one(0170770),        "+s+d"},
  546. + {"dbcc",    one(0052310),        one(0177770),        "DsBw"},
  547. + {"dbcs",    one(0052710),        one(0177770),        "DsBw"},
  548. + {"dbeq",    one(0053710),        one(0177770),        "DsBw"},
  549. + {"dbf",        one(0050710),        one(0177770),        "DsBw"},
  550. + {"dbge",    one(0056310),        one(0177770),        "DsBw"},
  551. + {"dbgt",    one(0057310),        one(0177770),        "DsBw"},
  552. + {"dbhi",    one(0051310),        one(0177770),        "DsBw"},
  553. + {"dble",    one(0057710),        one(0177770),        "DsBw"},
  554. + {"dbls",    one(0051710),        one(0177770),        "DsBw"},
  555. + {"dblt",    one(0056710),        one(0177770),        "DsBw"},
  556. + {"dbmi",    one(0055710),        one(0177770),        "DsBw"},
  557. + {"dbne",    one(0053310),        one(0177770),        "DsBw"},
  558. + {"dbpl",    one(0055310),        one(0177770),        "DsBw"},
  559. + {"dbra",    one(0050710),        one(0177770),        "DsBw"},
  560. + {"dbt",        one(0050310),        one(0177770),        "DsBw"},
  561. + {"dbvc",    one(0054310),        one(0177770),        "DsBw"},
  562. + {"dbvs",    one(0054710),        one(0177770),        "DsBw"},
  563. + {"divsl",    two(0046100, 0006000),    two(0177700, 0107770),    ";lD3D1"},
  564. + {"divsl",    two(0046100, 0004000),    two(0177700, 0107770),    ";lDD"},
  565. + {"divsll",    two(0046100, 0004000),    two(0177700, 0107770),    ";lD3D1"},
  566. + {"divsw",    one(0100700),        one(0170700),        ";wDd"},
  567. + {"divs",    one(0100700),        one(0170700),        ";wDd"},
  568. + {"divul",    two(0046100, 0002000),    two(0177700, 0107770),    ";lD3D1"},
  569. + {"divul",    two(0046100, 0000000),    two(0177700, 0107770),    ";lDD"},
  570. + {"divull",    two(0046100, 0000000),    two(0177700, 0107770),    ";lD3D1"},
  571. + {"divuw",    one(0100300),        one(0170700),        ";wDd"},
  572. + {"divu",    one(0100300),        one(0170700),        ";wDd"},
  573. + {"eorb",    one(0005000),        one(0177700),        "#b$s"},    /* eori written as or */
  574. + {"eorb",    one(0005074),        one(0177777),        "#bCs"},    /* eori to ccr */
  575. + {"eorb",    one(0130400),        one(0170700),        "Dd$s"},    /* register to memory */
  576. + {"eorib",    one(0005000),        one(0177700),        "#b$s"},
  577. + {"eorib",    one(0005074),        one(0177777),        "#bCs"},    /* eori to ccr */
  578. + {"eoril",    one(0005200),        one(0177700),        "#l$s"},
  579. + {"eoriw",    one(0005100),        one(0177700),        "#w$s"},
  580. + {"eoriw",    one(0005174),        one(0177777),        "#wSs"},    /* eori to sr */
  581. + {"eorl",    one(0005200),        one(0177700),        "#l$s"},
  582. + {"eorl",    one(0130600),        one(0170700),        "Dd$s"},
  583. + {"eorw",    one(0005100),        one(0177700),        "#w$s"},
  584. + {"eorw",    one(0005174),        one(0177777),        "#wSs"},    /* eori to sr */
  585. + {"eorw",    one(0130500),        one(0170700),        "Dd$s"},
  586. + {"exg",        one(0140500),        one(0170770),        "DdDs"},
  587. + {"exg",        one(0140510),        one(0170770),        "AdAs"},
  588. + {"exg",        one(0140610),        one(0170770),        "DdAs"},
  589. + {"exg",        one(0140610),        one(0170770),        "AsDd"},
  590. + {"extw",    one(0044200),        one(0177770),        "Ds"},
  591. + {"extl",    one(0044300),        one(0177770),        "Ds"},
  592. + {"extbl",    one(0044700),        one(0177770),        "Ds"},
  593. + {"extb.l",    one(0044700),        one(0177770),        "Ds"},    /* Not sure we should support this one*/
  594. + {"illegal",    one(0045374),        one(0177777),        ""},
  595. + {"jmp",        one(0047300),        one(0177700),        "!s"},
  596. + {"jsr",        one(0047200),        one(0177700),        "!s"},
  597. + {"lea",        one(0040700),        one(0170700),        "!sAd"},
  598. + {"linkw",    one(0047120),        one(0177770),        "As#w"},
  599. + {"linkl",    one(0044010),        one(0177770),        "As#l"},
  600. + {"link",    one(0047120),        one(0177770),        "As#w"},
  601. + {"link",    one(0044010),        one(0177770),        "As#l"},
  602. + {"lslb",    one(0160410),        one(0170770),        "QdDs"},    /* lsrb #Q,    Ds */
  603. + {"lslb",    one(0160450),        one(0170770),        "DdDs"},    /* lsrb Dd,    Ds */
  604. + {"lslw",    one(0160510),        one(0170770),        "QdDs"},    /* lsrb #Q,    Ds */
  605. + {"lslw",    one(0160550),        one(0170770),        "DdDs"},    /* lsrb Dd,    Ds */
  606. + {"lslw",    one(0161700),        one(0177700),        "~s"},    /* Shift memory */
  607. + {"lsll",    one(0160610),        one(0170770),        "QdDs"},    /* lsrb #Q,    Ds */
  608. + {"lsll",    one(0160650),        one(0170770),        "DdDs"},    /* lsrb Dd,    Ds */
  609. + {"lsrb",    one(0160010),        one(0170770),        "QdDs"} /* lsrb #Q,    Ds */,
  610. + {"lsrb",    one(0160050),        one(0170770),        "DdDs"},    /* lsrb Dd,    Ds */
  611. + {"lsrl",    one(0160210),        one(0170770),        "QdDs"},    /* lsrb #Q,    Ds */
  612. + {"lsrl",    one(0160250),        one(0170770),        "DdDs"},    /* lsrb #Q,    Ds */
  613. + {"lsrw",    one(0160110),        one(0170770),        "QdDs"},    /* lsrb #Q,    Ds */
  614. + {"lsrw",    one(0160150),        one(0170770),        "DdDs"},    /* lsrb #Q,    Ds */
  615. + {"lsrw",    one(0161300),        one(0177700),        "~s"},    /* Shift memory */
  616. + {"moveal",    one(0020100),        one(0170700),        "*lAd"},
  617. + {"moveaw",    one(0030100),        one(0170700),        "*wAd"},
  618. + {"moveb",    one(0010000),        one(0170000),        ";b$d"},    /* move */
  619. + {"movel",    one(0070000),        one(0170400),        "MsDd"},    /* moveq written as move */
  620. + {"movel",    one(0020000),        one(0170000),        "*l$d"},
  621. + {"movel",    one(0020100),        one(0170700),        "*lAd"},
  622. + {"movel",    one(0047140),        one(0177770),        "AsUd"},    /* move to USP */
  623. + {"movel",    one(0047150),        one(0177770),        "UdAs"},    /* move from USP */
  624. + {"movec",    one(0047173),        one(0177777),        "R1Jj"},
  625. + {"movec",    one(0047173),        one(0177777),        "R1#j"},
  626. + {"movec",    one(0047172),        one(0177777),        "JjR1"},
  627. + {"movec",    one(0047172),        one(0177777),        "#jR1"},
  628. + /* JF added these next four for the assembler */
  629. + {"moveml",    one(0044300),        one(0177700),        "Lw&s"},    /* movem reg to mem. */
  630. + {"moveml",    one(0044340),        one(0177770),        "lw-s"},    /* movem reg to autodecrement. */
  631. + {"moveml",    one(0046300),        one(0177700),        "!sLw"},    /* movem mem to reg. */
  632. + {"moveml",    one(0046330),        one(0177770),        "+sLw"},    /* movem autoinc to reg. */
  633. + {"moveml",    one(0044300),        one(0177700),        "#w&s"},    /* movem reg to mem. */
  634. + {"moveml",    one(0044340),        one(0177770),        "#w-s"},    /* movem reg to autodecrement. */
  635. + {"moveml",    one(0046300),        one(0177700),        "!s#w"},    /* movem mem to reg. */
  636. + {"moveml",    one(0046330),        one(0177770),        "+s#w"},    /* movem autoinc to reg. */
  637. + /* JF added these next four for the assembler */
  638. + {"movemw",    one(0044200),        one(0177700),        "Lw&s"},    /* movem reg to mem. */
  639. + {"movemw",    one(0044240),        one(0177770),        "lw-s"},    /* movem reg to autodecrement. */
  640. + {"movemw",    one(0046200),        one(0177700),        "!sLw"},    /* movem mem to reg. */
  641. + {"movemw",    one(0046230),        one(0177770),        "+sLw"},    /* movem autoinc to reg. */
  642. + {"movemw",    one(0044200),        one(0177700),        "#w&s"},    /* movem reg to mem. */
  643. + {"movemw",    one(0044240),        one(0177770),        "#w-s"},    /* movem reg to autodecrement. */
  644. + {"movemw",    one(0046200),        one(0177700),        "!s#w"},    /* movem mem to reg. */
  645. + {"movemw",    one(0046230),        one(0177770),        "+s#w"},    /* movem autoinc to reg. */
  646. + {"movepl",    one(0000510),        one(0170770),        "dsDd"},    /* memory to register */
  647. + {"movepl",    one(0000710),        one(0170770),        "Ddds"},    /* register to memory */
  648. + {"movepw",    one(0000410),        one(0170770),        "dsDd"},    /* memory to register */
  649. + {"movepw",    one(0000610),        one(0170770),        "Ddds"},    /* register to memory */
  650. + {"moveq",    one(0070000),        one(0170400),        "MsDd"},
  651. + {"movew",    one(0030000),        one(0170000),        "*w$d"},
  652. + {"movew",    one(0030100),        one(0170700),        "*wAd"},    /* movea,    written as move */
  653. + {"movew",    one(0040300),        one(0177700),        "Ss$s"},    /* Move from sr */
  654. + {"movew",    one(0041300),        one(0177700),        "Cs$s"},    /* Move from ccr */
  655. + {"movew",    one(0042300),        one(0177700),        ";wCd"},    /* move to ccr */
  656. + {"movew",    one(0043300),        one(0177700),        ";wSd"},    /* move to sr */
  657. + {"movesb",    two(0007000, 0),    two(0177700, 07777),    "~sR1"},     /* moves from memory */
  658. + {"movesb",    two(0007000, 04000),    two(0177700, 07777),    "R1~s"},     /* moves to memory */
  659. + {"movesl",    two(0007200, 0),    two(0177700, 07777),    "~sR1"},     /* moves from memory */
  660. + {"movesl",    two(0007200, 04000),    two(0177700, 07777),    "R1~s"},     /* moves to memory */
  661. + {"movesw",    two(0007100, 0),    two(0177700, 07777),    "~sR1"},     /* moves from memory */
  662. + {"movesw",    two(0007100, 04000),    two(0177700, 07777),    "R1~s"},     /* moves to memory */
  663. + {"mulsl",    two(0046000, 004000),    two(0177700, 0107770),    ";lD1"},
  664. + {"mulsl",    two(0046000, 006000),    two(0177700, 0107770),    ";lD3D1"},
  665. + {"mulsw",    one(0140700),        one(0170700),        ";wDd"},
  666. + {"muls",    one(0140700),        one(0170700),        ";wDd"},
  667. + {"mulul",    two(0046000, 000000),    two(0177700, 0107770),    ";lD1"},
  668. + {"mulul",    two(0046000, 002000),    two(0177700, 0107770),    ";lD3D1"},
  669. + {"muluw",    one(0140300),        one(0170700),        ";wDd"},
  670. + {"mulu",    one(0140300),        one(0170700),        ";wDd"},
  671. + {"nbcd",    one(0044000),        one(0177700),        "$s"},
  672. + {"negb",    one(0042000),        one(0177700),        "$s"},
  673. + {"negl",    one(0042200),        one(0177700),        "$s"},
  674. + {"negw",    one(0042100),        one(0177700),        "$s"},
  675. + {"negxb",    one(0040000),        one(0177700),        "$s"},
  676. + {"negxl",    one(0040200),        one(0177700),        "$s"},
  677. + {"negxw",    one(0040100),        one(0177700),        "$s"},
  678. + {"nop",        one(0047161),        one(0177777),        ""},
  679. + {"notb",    one(0043000),        one(0177700),        "$s"},
  680. + {"notl",    one(0043200),        one(0177700),        "$s"},
  681. + {"notw",    one(0043100),        one(0177700),        "$s"},
  682. + {"orb",        one(0000000),        one(0177700),        "#b$s"},    /* ori written as or */
  683. + {"orb",        one(0000074),        one(0177777),        "#bCs"},    /* ori to ccr */
  684. + {"orb",        one(0100000),        one(0170700),        ";bDd"},    /* memory to register */
  685. + {"orb",        one(0100400),        one(0170700),        "Dd~s"},    /* register to memory */
  686. + {"orib",    one(0000000),        one(0177700),        "#b$s"},
  687. + {"orib",    one(0000074),        one(0177777),        "#bCs"},    /* ori to ccr */
  688. + {"oril",    one(0000200),        one(0177700),        "#l$s"},
  689. + {"oriw",    one(0000100),        one(0177700),        "#w$s"},
  690. + {"oriw",    one(0000174),        one(0177777),        "#wSs"},    /* ori to sr */
  691. + {"orl",        one(0000200),        one(0177700),        "#l$s"},
  692. + {"orl",        one(0100200),        one(0170700),        ";lDd"},    /* memory to register */
  693. + {"orl",        one(0100600),        one(0170700),        "Dd~s"},    /* register to memory */
  694. + {"orw",        one(0000100),        one(0177700),        "#w$s"},
  695. + {"orw",        one(0000174),        one(0177777),        "#wSs"},    /* ori to sr */
  696. + {"orw",        one(0100100),        one(0170700),        ";wDd"},    /* memory to register */
  697. + {"orw",        one(0100500),        one(0170700),        "Dd~s"},    /* register to memory */
  698. + {"pack",    one(0100500),        one(0170770),        "DsDd#w"},    /* pack Ds,    Dd,    #w */
  699. + {"pack",    one(0100510),        one(0170770),        "-s-d#w"},    /* pack -(As),    -(Ad),    #w */
  700. + {"pea",        one(0044100),        one(0177700),        "!s"},
  701. + {"reset",    one(0047160),        one(0177777),        ""},
  702. + {"rolb",    one(0160430),        one(0170770),        "QdDs"},    /* rorb #Q,    Ds */
  703. + {"rolb",    one(0160470),        one(0170770),        "DdDs"},    /* rorb Dd,    Ds */
  704. + {"roll",    one(0160630),        one(0170770),        "QdDs"},    /* rorb #Q,    Ds */
  705. + {"roll",    one(0160670),        one(0170770),        "DdDs"},    /* rorb Dd,    Ds */
  706. + {"rolw",    one(0160530),        one(0170770),        "QdDs"},    /* rorb #Q,    Ds */
  707. + {"rolw",    one(0160570),        one(0170770),        "DdDs"},    /* rorb Dd,    Ds */
  708. + {"rolw",    one(0163700),        one(0177700),        "~s"},    /* Rotate memory */
  709. + {"rorb",    one(0160030),        one(0170770),        "QdDs"},    /* rorb #Q,    Ds */
  710. + {"rorb",    one(0160070),        one(0170770),        "DdDs"},    /* rorb Dd,    Ds */
  711. + {"rorl",    one(0160230),        one(0170770),        "QdDs"},    /* rorb #Q,    Ds */
  712. + {"rorl",    one(0160270),        one(0170770),        "DdDs"},    /* rorb Dd,    Ds */
  713. + {"rorw",    one(0160130),        one(0170770),        "QdDs"},    /* rorb #Q,    Ds */
  714. + {"rorw",    one(0160170),        one(0170770),        "DdDs"},    /* rorb Dd,    Ds */
  715. + {"rorw",    one(0163300),        one(0177700),        "~s"},    /* Rotate memory */
  716. + {"roxlb",    one(0160420),        one(0170770),        "QdDs"},    /* roxrb #Q,    Ds */
  717. + {"roxlb",    one(0160460),        one(0170770),        "DdDs"},    /* roxrb Dd,    Ds */
  718. + {"roxll",    one(0160620),        one(0170770),        "QdDs"},    /* roxrb #Q,    Ds */
  719. + {"roxll",    one(0160660),        one(0170770),        "DdDs"},    /* roxrb Dd,    Ds */
  720. + {"roxlw",    one(0160520),        one(0170770),        "QdDs"},    /* roxrb #Q,    Ds */
  721. + {"roxlw",    one(0160560),        one(0170770),        "DdDs"},    /* roxrb Dd,    Ds */
  722. + {"roxlw",    one(0162700),        one(0177700),        "~s"},    /* Rotate memory */
  723. + {"roxrb",    one(0160020),        one(0170770),        "QdDs"},    /* roxrb #Q,    Ds */
  724. + {"roxrb",    one(0160060),        one(0170770),        "DdDs"},    /* roxrb Dd,    Ds */
  725. + {"roxrl",    one(0160220),        one(0170770),        "QdDs"},    /* roxrb #Q,    Ds */
  726. + {"roxrl",    one(0160260),        one(0170770),        "DdDs"},    /* roxrb Dd,    Ds */
  727. + {"roxrw",    one(0160120),        one(0170770),        "QdDs"},    /* roxrb #Q,    Ds */
  728. + {"roxrw",    one(0160160),        one(0170770),        "DdDs"},    /* roxrb Dd,    Ds */
  729. + {"roxrw",    one(0162300),        one(0177700),        "~s"},    /* Rotate memory */
  730. + {"rtd",        one(0047164),        one(0177777),        "#w"},
  731. + {"rte",        one(0047163),        one(0177777),        ""},
  732. + {"rtm",        one(0003300),        one(0177760),        "Rs"},
  733. + {"rtr",        one(0047167),        one(0177777),        ""},
  734. + {"rts",        one(0047165),        one(0177777),        ""},
  735. + {"scc",        one(0052300),        one(0177700),        "$s"},
  736. + {"scs",        one(0052700),        one(0177700),        "$s"},
  737. + {"seq",        one(0053700),        one(0177700),        "$s"},
  738. + {"sf",        one(0050700),        one(0177700),        "$s"},
  739. + {"sge",        one(0056300),        one(0177700),        "$s"},
  740. + {"sgt",        one(0057300),        one(0177700),        "$s"},
  741. + {"shi",        one(0051300),        one(0177700),        "$s"},
  742. + {"sle",        one(0057700),        one(0177700),        "$s"},
  743. + {"sls",        one(0051700),        one(0177700),        "$s"},
  744. + {"slt",        one(0056700),        one(0177700),        "$s"},
  745. + {"smi",        one(0055700),        one(0177700),        "$s"},
  746. + {"sne",        one(0053300),        one(0177700),        "$s"},
  747. + {"spl",        one(0055300),        one(0177700),        "$s"},
  748. + {"st",        one(0050300),        one(0177700),        "$s"},
  749. + {"svc",        one(0054300),        one(0177700),        "$s"},
  750. + {"svs",        one(0054700),        one(0177700),        "$s"},
  751. + {"sbcd",    one(0100400),        one(0170770),        "DsDd"},
  752. + {"sbcd",    one(0100410),        one(0170770),        "-s-d"},
  753. + {"stop",    one(0047162),        one(0177777),        "#w"},
  754. + {"subal",    one(0110700),        one(0170700),        "*lAd"},
  755. + {"subaw",    one(0110300),        one(0170700),        "*wAd"},
  756. + {"subb",    one(0050400),        one(0170700),        "Qd%s"},    /* subq written as sub */
  757. + {"subb",    one(0002000),        one(0177700),        "#b$s"},    /* subi written as sub */
  758. + {"subb",    one(0110000),        one(0170700),        ";bDd"},    /* subb ? ?,    Dd */
  759. + {"subb",    one(0110400),        one(0170700),        "Dd~s"},    /* subb Dd,    ? ? */
  760. + {"subib",    one(0002000),        one(0177700),        "#b$s"},
  761. + {"subil",    one(0002200),        one(0177700),        "#l$s"},
  762. + {"subiw",    one(0002100),        one(0177700),        "#w$s"},
  763. + {"subl",    one(0050600),        one(0170700),        "Qd%s"},
  764. + {"subl",    one(0002200),        one(0177700),        "#l$s"},
  765. + {"subl",    one(0110700),        one(0170700),        "*lAd"},
  766. + {"subl",    one(0110200),        one(0170700),        "*lDd"},
  767. + {"subl",    one(0110600),        one(0170700),        "Dd~s"},
  768. + {"subqb",    one(0050400),        one(0170700),        "Qd%s"},
  769. + {"subql",    one(0050600),        one(0170700),        "Qd%s"},
  770. + {"subqw",    one(0050500),        one(0170700),        "Qd%s"},
  771. + {"subw",    one(0050500),        one(0170700),        "Qd%s"},
  772. + {"subw",    one(0002100),        one(0177700),        "#w$s"},
  773. + {"subw",    one(0110100),        one(0170700),        "*wDd"},
  774. + {"subw",    one(0110300),        one(0170700),        "*wAd"},    /* suba written as sub */
  775. + {"subw",    one(0110500),        one(0170700),        "Dd~s"},
  776. + {"subxb",    one(0110400),        one(0170770),        "DsDd"},    /* subxb Ds,    Dd */
  777. + {"subxb",    one(0110410),        one(0170770),        "-s-d"},    /* subxb -(As),    -(Ad) */
  778. + {"subxl",    one(0110600),        one(0170770),        "DsDd"},
  779. + {"subxl",    one(0110610),        one(0170770),        "-s-d"},
  780. + {"subxw",    one(0110500),        one(0170770),        "DsDd"},
  781. + {"subxw",    one(0110510),        one(0170770),        "-s-d"},
  782. + {"swap",    one(0044100),        one(0177770),        "Ds"},
  783. +     
  784. + {"tas",        one(0045300),        one(0177700),        "$s"},
  785. + {"trap",    one(0047100),        one(0177760),        "Ts"},
  786. + {"trapcc",    one(0052374),        one(0177777),        ""},
  787. + {"trapcs",    one(0052774),        one(0177777),        ""},
  788. + {"trapeq",    one(0053774),        one(0177777),        ""},
  789. + {"trapf",    one(0050774),        one(0177777),        ""},
  790. + {"trapge",    one(0056374),        one(0177777),        ""},
  791. + {"trapgt",    one(0057374),        one(0177777),        ""},
  792. + {"traphi",    one(0051374),        one(0177777),        ""},
  793. + {"traple",    one(0057774),        one(0177777),        ""},
  794. + {"trapls",    one(0051774),        one(0177777),        ""},
  795. + {"traplt",    one(0056774),        one(0177777),        ""},
  796. + {"trapmi",    one(0055774),        one(0177777),        ""},
  797. + {"trapne",    one(0053374),        one(0177777),        ""},
  798. + {"trappl",    one(0055374),        one(0177777),        ""},
  799. + {"trapt",    one(0050374),        one(0177777),        ""},
  800. + {"trapvc",    one(0054374),        one(0177777),        ""},
  801. + {"trapvs",    one(0054774),        one(0177777),        ""},
  802. + {"trapcc.w",    one(0052372),        one(0177777),        ""},
  803. + {"trapcs.w",    one(0052772),        one(0177777),        ""},
  804. + {"trapeq.w",    one(0053772),        one(0177777),        ""},
  805. + {"trapf.w",    one(0050772),        one(0177777),        ""},
  806. + {"trapge.w",    one(0056372),        one(0177777),        ""},
  807. + {"trapgt.w",    one(0057372),        one(0177777),        ""},
  808. + {"traphi.w",    one(0051372),        one(0177777),        ""},
  809. + {"traple.w",    one(0057772),        one(0177777),        ""},
  810. + {"trapls.w",    one(0051772),        one(0177777),        ""},
  811. + {"traplt.w",    one(0056772),        one(0177777),        ""},
  812. + {"trapmi.w",    one(0055772),        one(0177777),        ""},
  813. + {"trapne.w",    one(0053372),        one(0177777),        ""},
  814. + {"trappl.w",    one(0055372),        one(0177777),        ""},
  815. + {"trapt.w",    one(0050372),        one(0177777),        ""},
  816. + {"trapvc.w",    one(0054372),        one(0177777),        ""},
  817. + {"trapvs.w",    one(0054772),        one(0177777),        ""},
  818. + {"trapcc.l",    one(0052373),        one(0177777),        ""},
  819. + {"trapcs.l",    one(0052773),        one(0177777),        ""},
  820. + {"trapeq.l",    one(0053773),        one(0177777),        ""},
  821. + {"trapf.l",    one(0050773),        one(0177777),        ""},
  822. + {"trapge.l",    one(0056373),        one(0177777),        ""},
  823. + {"trapgt.l",    one(0057373),        one(0177777),        ""},
  824. + {"traphi.l",    one(0051373),        one(0177777),        ""},
  825. + {"traple.l",    one(0057773),        one(0177777),        ""},
  826. + {"trapls.l",    one(0051773),        one(0177777),        ""},
  827. + {"traplt.l",    one(0056773),        one(0177777),        ""},
  828. + {"trapmi.l",    one(0055773),        one(0177777),        ""},
  829. + {"trapne.l",    one(0053373),        one(0177777),        ""},
  830. + {"trappl.l",    one(0055373),        one(0177777),        ""},
  831. + {"trapt.l",    one(0050373),        one(0177777),        ""},
  832. + {"trapvc.l",    one(0054373),        one(0177777),        ""},
  833. + {"trapvs.l",    one(0054773),        one(0177777),        ""},
  834. + {"trapv",    one(0047166),        one(0177777),        ""},
  835. + {"tstb",    one(0045000),        one(0177700),        ";b"},
  836. + {"tstw",    one(0045100),        one(0177700),        "*w"},
  837. + {"tstl",    one(0045200),        one(0177700),        "*l"},
  838. + {"unlk",    one(0047130),        one(0177770),        "As"},
  839. + {"unpk",    one(0100600),        one(0170770),        "DsDd#w"},
  840. + {"unpk",    one(0100610),        one(0170770),        "-s-d#w"},
  841. +     /* JF floating pt stuff moved down here */
  842. + {"fabsb",    two(0xF000, 0x5818),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  843. + {"fabsd",    two(0xF000, 0x5418),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  844. + {"fabsl",    two(0xF000, 0x4018),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  845. + {"fabsp",    two(0xF000, 0x4C18),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  846. + {"fabss",    two(0xF000, 0x4418),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  847. + {"fabsw",    two(0xF000, 0x5018),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  848. + {"fabsx",    two(0xF000, 0x0018),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  849. + {"fabsx",    two(0xF000, 0x4818),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  850. + {"fabsx",    two(0xF000, 0x0018),    two(0xF1C0, 0xE07F),    "IiFt"},
  851. + {"facosb",    two(0xF000, 0x581C),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  852. + {"facosd",    two(0xF000, 0x541C),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  853. + {"facosl",    two(0xF000, 0x401C),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  854. + {"facosp",    two(0xF000, 0x4C1C),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  855. + {"facoss",    two(0xF000, 0x441C),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  856. + {"facosw",    two(0xF000, 0x501C),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  857. + {"facosx",    two(0xF000, 0x001C),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  858. + {"facosx",    two(0xF000, 0x481C),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  859. + {"facosx",    two(0xF000, 0x001C),    two(0xF1C0, 0xE07F),    "IiFt"},
  860. + {"faddb",    two(0xF000, 0x5822),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  861. + {"faddd",    two(0xF000, 0x5422),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  862. + {"faddl",    two(0xF000, 0x4022),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  863. + {"faddp",    two(0xF000, 0x4C22),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  864. + {"fadds",    two(0xF000, 0x4422),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  865. + {"faddw",    two(0xF000, 0x5022),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  866. + {"faddx",    two(0xF000, 0x0022),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  867. + {"faddx",    two(0xF000, 0x4822),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  868. + /* {"faddx",    two(0xF000, 0x0022),    two(0xF1C0, 0xE07F),    "IiFt"}, JF removed */
  869. + {"fasinb",    two(0xF000, 0x580C),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  870. + {"fasind",    two(0xF000, 0x540C),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  871. + {"fasinl",    two(0xF000, 0x400C),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  872. + {"fasinp",    two(0xF000, 0x4C0C),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  873. + {"fasins",    two(0xF000, 0x440C),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  874. + {"fasinw",    two(0xF000, 0x500C),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  875. + {"fasinx",    two(0xF000, 0x000C),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  876. + {"fasinx",    two(0xF000, 0x480C),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  877. + {"fasinx",    two(0xF000, 0x000C),    two(0xF1C0, 0xE07F),    "IiFt"},
  878. + {"fatanb",    two(0xF000, 0x580A),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  879. + {"fatand",    two(0xF000, 0x540A),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  880. + {"fatanl",    two(0xF000, 0x400A),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  881. + {"fatanp",    two(0xF000, 0x4C0A),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  882. + {"fatans",    two(0xF000, 0x440A),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  883. + {"fatanw",    two(0xF000, 0x500A),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  884. + {"fatanx",    two(0xF000, 0x000A),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  885. + {"fatanx",    two(0xF000, 0x480A),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  886. + {"fatanx",    two(0xF000, 0x000A),    two(0xF1C0, 0xE07F),    "IiFt"},
  887. + {"fatanhb",    two(0xF000, 0x580D),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  888. + {"fatanhd",    two(0xF000, 0x540D),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  889. + {"fatanhl",    two(0xF000, 0x400D),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  890. + {"fatanhp",    two(0xF000, 0x4C0D),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  891. + {"fatanhs",    two(0xF000, 0x440D),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  892. + {"fatanhw",    two(0xF000, 0x500D),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  893. + {"fatanhx",    two(0xF000, 0x000D),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  894. + {"fatanhx",    two(0xF000, 0x480D),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  895. + {"fatanhx",    two(0xF000, 0x000D),    two(0xF1C0, 0xE07F),    "IiFt"},
  896. + {"fbeq",    one(0xF081),        one(0xF1BF),        "IdBc"},
  897. + {"fbf",        one(0xF080),        one(0xF1BF),        "IdBc"},
  898. + {"fbge",    one(0xF093),        one(0xF1BF),        "IdBc"},
  899. + {"fbgl",    one(0xF096),        one(0xF1BF),        "IdBc"},
  900. + {"fbgle",    one(0xF097),        one(0xF1BF),        "IdBc"},
  901. + {"fbgt",    one(0xF092),        one(0xF1BF),        "IdBc"},
  902. + {"fble",    one(0xF095),        one(0xF1BF),        "IdBc"},
  903. + {"fblt",    one(0xF094),        one(0xF1BF),        "IdBc"},
  904. + {"fbne",    one(0xF08E),        one(0xF1BF),        "IdBc"},
  905. + {"fbnge",    one(0xF09C),        one(0xF1BF),        "IdBc"},
  906. + {"fbngl",    one(0xF099),        one(0xF1BF),        "IdBc"},
  907. + {"fbngle",    one(0xF098),        one(0xF1BF),        "IdBc"},
  908. + {"fbngt",    one(0xF09D),        one(0xF1BF),        "IdBc"},
  909. + {"fbnle",    one(0xF09A),        one(0xF1BF),        "IdBc"},
  910. + {"fbnlt",    one(0xF09B),        one(0xF1BF),        "IdBc"},
  911. + {"fboge",    one(0xF083),        one(0xF1BF),        "IdBc"},
  912. + {"fbogl",    one(0xF086),        one(0xF1BF),        "IdBc"},
  913. + {"fbogt",    one(0xF082),        one(0xF1BF),        "IdBc"},
  914. + {"fbole",    one(0xF085),        one(0xF1BF),        "IdBc"},
  915. + {"fbolt",    one(0xF084),        one(0xF1BF),        "IdBc"},
  916. + {"fbor",    one(0xF087),        one(0xF1BF),        "IdBc"},
  917. + {"fbseq",    one(0xF091),        one(0xF1BF),        "IdBc"},
  918. + {"fbsf",    one(0xF090),        one(0xF1BF),        "IdBc"},
  919. + {"fbsne",    one(0xF09E),        one(0xF1BF),        "IdBc"},
  920. + {"fbst",    one(0xF09F),        one(0xF1BF),        "IdBc"},
  921. + {"fbt",        one(0xF08F),        one(0xF1BF),        "IdBc"},
  922. + {"fbueq",    one(0xF089),        one(0xF1BF),        "IdBc"},
  923. + {"fbuge",    one(0xF08B),        one(0xF1BF),        "IdBc"},
  924. + {"fbugt",    one(0xF08A),        one(0xF1BF),        "IdBc"},
  925. + {"fbule",    one(0xF08D),        one(0xF1BF),        "IdBc"},
  926. + {"fbult",    one(0xF08C),        one(0xF1BF),        "IdBc"},
  927. + {"fbun",    one(0xF088),        one(0xF1BF),        "IdBc"},
  928. + {"fcmpb",    two(0xF000, 0x5838),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  929. + {"fcmpd",    two(0xF000, 0x5438),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  930. + {"fcmpl",    two(0xF000, 0x4038),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  931. + {"fcmpp",    two(0xF000, 0x4C38),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  932. + {"fcmps",    two(0xF000, 0x4438),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  933. + {"fcmpw",    two(0xF000, 0x5038),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  934. + {"fcmpx",    two(0xF000, 0x0038),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  935. + {"fcmpx",    two(0xF000, 0x4838),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  936. + /* {"fcmpx",    two(0xF000, 0x0038),    two(0xF1C0, 0xE07F),    "IiFt"}, JF removed */
  937. + {"fcosb",    two(0xF000, 0x581D),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  938. + {"fcosd",    two(0xF000, 0x541D),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  939. + {"fcosl",    two(0xF000, 0x401D),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  940. + {"fcosp",    two(0xF000, 0x4C1D),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  941. + {"fcoss",    two(0xF000, 0x441D),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  942. + {"fcosw",    two(0xF000, 0x501D),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  943. + {"fcosx",    two(0xF000, 0x001D),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  944. + {"fcosx",    two(0xF000, 0x481D),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  945. + {"fcosx",    two(0xF000, 0x001D),    two(0xF1C0, 0xE07F),    "IiFt"},
  946. + {"fcoshb",    two(0xF000, 0x5819),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  947. + {"fcoshd",    two(0xF000, 0x5419),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  948. + {"fcoshl",    two(0xF000, 0x4019),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  949. + {"fcoshp",    two(0xF000, 0x4C19),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  950. + {"fcoshs",    two(0xF000, 0x4419),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  951. + {"fcoshw",    two(0xF000, 0x5019),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  952. + {"fcoshx",    two(0xF000, 0x0019),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  953. + {"fcoshx",    two(0xF000, 0x4819),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  954. + {"fcoshx",    two(0xF000, 0x0019),    two(0xF1C0, 0xE07F),    "IiFt"},
  955. + {"fdbeq",    two(0xF048, 0x0001),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  956. + {"fdbf",    two(0xF048, 0x0000),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  957. + {"fdbge",    two(0xF048, 0x0013),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  958. + {"fdbgl",    two(0xF048, 0x0016),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  959. + {"fdbgle",    two(0xF048, 0x0017),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  960. + {"fdbgt",    two(0xF048, 0x0012),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  961. + {"fdble",    two(0xF048, 0x0015),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  962. + {"fdblt",    two(0xF048, 0x0014),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  963. + {"fdbne",    two(0xF048, 0x000E),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  964. + {"fdbnge",    two(0xF048, 0x001C),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  965. + {"fdbngl",    two(0xF048, 0x0019),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  966. + {"fdbngle",    two(0xF048, 0x0018),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  967. + {"fdbngt",    two(0xF048, 0x001D),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  968. + {"fdbnle",    two(0xF048, 0x001A),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  969. + {"fdbnlt",    two(0xF048, 0x001B),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  970. + {"fdboge",    two(0xF048, 0x0003),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  971. + {"fdbogl",    two(0xF048, 0x0006),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  972. + {"fdbogt",    two(0xF048, 0x0002),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  973. + {"fdbole",    two(0xF048, 0x0005),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  974. + {"fdbolt",    two(0xF048, 0x0004),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  975. + {"fdbor",    two(0xF048, 0x0007),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  976. + {"fdbseq",    two(0xF048, 0x0011),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  977. + {"fdbsf",    two(0xF048, 0x0010),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  978. + {"fdbsne",    two(0xF048, 0x001E),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  979. + {"fdbst",    two(0xF048, 0x001F),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  980. + {"fdbt",    two(0xF048, 0x000F),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  981. + {"fdbueq",    two(0xF048, 0x0009),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  982. + {"fdbuge",    two(0xF048, 0x000B),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  983. + {"fdbugt",    two(0xF048, 0x000A),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  984. + {"fdbule",    two(0xF048, 0x000D),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  985. + {"fdbult",    two(0xF048, 0x000C),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  986. + {"fdbun",    two(0xF048, 0x0008),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  987. + {"fdivb",    two(0xF000, 0x5820),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  988. + {"fdivd",    two(0xF000, 0x5420),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  989. + {"fdivl",    two(0xF000, 0x4020),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  990. + {"fdivp",    two(0xF000, 0x4C20),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  991. + {"fdivs",    two(0xF000, 0x4420),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  992. + {"fdivw",    two(0xF000, 0x5020),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  993. + {"fdivx",    two(0xF000, 0x0020),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  994. + {"fdivx",    two(0xF000, 0x4820),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  995. + /* {"fdivx",    two(0xF000, 0x0020),    two(0xF1C0, 0xE07F),    "IiFt"}, JF */
  996. + {"fetoxb",    two(0xF000, 0x5810),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  997. + {"fetoxd",    two(0xF000, 0x5410),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  998. + {"fetoxl",    two(0xF000, 0x4010),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  999. + {"fetoxp",    two(0xF000, 0x4C10),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  1000. + {"fetoxs",    two(0xF000, 0x4410),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  1001. + {"fetoxw",    two(0xF000, 0x5010),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  1002. + {"fetoxx",    two(0xF000, 0x0010),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  1003. + {"fetoxx",    two(0xF000, 0x4810),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  1004. + {"fetoxx",    two(0xF000, 0x0010),    two(0xF1C0, 0xE07F),    "IiFt"},
  1005. + {"fetoxm1b",    two(0xF000, 0x5808),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  1006. + {"fetoxm1d",    two(0xF000, 0x5408),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  1007. + {"fetoxm1l",    two(0xF000, 0x4008),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  1008. + {"fetoxm1p",    two(0xF000, 0x4C08),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  1009. + {"fetoxm1s",    two(0xF000, 0x4408),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  1010. + {"fetoxm1w",    two(0xF000, 0x5008),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  1011. + {"fetoxm1x",    two(0xF000, 0x0008),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  1012. + {"fetoxm1x",    two(0xF000, 0x4808),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  1013. + {"fetoxm1x",    two(0xF000, 0x0008),    two(0xF1C0, 0xE07F),    "IiFt"},
  1014. + {"fgetexpb",    two(0xF000, 0x581E),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  1015. + {"fgetexpd",    two(0xF000, 0x541E),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  1016. + {"fgetexpl",    two(0xF000, 0x401E),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  1017. + {"fgetexpp",    two(0xF000, 0x4C1E),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  1018. + {"fgetexps",    two(0xF000, 0x441E),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  1019. + {"fgetexpw",    two(0xF000, 0x501E),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  1020. + {"fgetexpx",    two(0xF000, 0x001E),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  1021. + {"fgetexpx",    two(0xF000, 0x481E),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  1022. + {"fgetexpx",    two(0xF000, 0x001E),    two(0xF1C0, 0xE07F),    "IiFt"},
  1023. + {"fgetmanb",    two(0xF000, 0x581F),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  1024. + {"fgetmand",    two(0xF000, 0x541F),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  1025. + {"fgetmanl",    two(0xF000, 0x401F),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  1026. + {"fgetmanp",    two(0xF000, 0x4C1F),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  1027. + {"fgetmans",    two(0xF000, 0x441F),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  1028. + {"fgetmanw",    two(0xF000, 0x501F),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  1029. + {"fgetmanx",    two(0xF000, 0x001F),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  1030. + {"fgetmanx",    two(0xF000, 0x481F),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  1031. + {"fgetmanx",    two(0xF000, 0x001F),    two(0xF1C0, 0xE07F),    "IiFt"},
  1032. + {"fintb",    two(0xF000, 0x5801),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  1033. + {"fintd",    two(0xF000, 0x5401),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  1034. + {"fintl",    two(0xF000, 0x4001),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  1035. + {"fintp",    two(0xF000, 0x4C01),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  1036. + {"fints",    two(0xF000, 0x4401),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  1037. + {"fintw",    two(0xF000, 0x5001),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  1038. + {"fintx",    two(0xF000, 0x0001),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  1039. + {"fintx",    two(0xF000, 0x4801),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  1040. + {"fintx",    two(0xF000, 0x0001),    two(0xF1C0, 0xE07F),    "IiFt"},
  1041. + {"fintrzb",    two(0xF000, 0x5803),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  1042. + {"fintrzd",    two(0xF000, 0x5403),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  1043. + {"fintrzl",    two(0xF000, 0x4003),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  1044. + {"fintrzp",    two(0xF000, 0x4C03),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  1045. + {"fintrzs",    two(0xF000, 0x4403),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  1046. + {"fintrzw",    two(0xF000, 0x5003),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  1047. + {"fintrzx",    two(0xF000, 0x0003),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  1048. + {"fintrzx",    two(0xF000, 0x4803),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  1049. + {"fintrzx",    two(0xF000, 0x0003),    two(0xF1C0, 0xE07F),    "IiFt"},
  1050. + {"flog10b",    two(0xF000, 0x5815),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  1051. + {"flog10d",    two(0xF000, 0x5415),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  1052. + {"flog10l",    two(0xF000, 0x4015),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  1053. + {"flog10p",    two(0xF000, 0x4C15),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  1054. + {"flog10s",    two(0xF000, 0x4415),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  1055. + {"flog10w",    two(0xF000, 0x5015),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  1056. + {"flog10x",    two(0xF000, 0x0015),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  1057. + {"flog10x",    two(0xF000, 0x4815),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  1058. + {"flog10x",    two(0xF000, 0x0015),    two(0xF1C0, 0xE07F),    "IiFt"},
  1059. + {"flog2b",    two(0xF000, 0x5816),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  1060. + {"flog2d",    two(0xF000, 0x5416),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  1061. + {"flog2l",    two(0xF000, 0x4016),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  1062. + {"flog2p",    two(0xF000, 0x4C16),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  1063. + {"flog2s",    two(0xF000, 0x4416),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  1064. + {"flog2w",    two(0xF000, 0x5016),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  1065. + {"flog2x",    two(0xF000, 0x0016),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  1066. + {"flog2x",    two(0xF000, 0x4816),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  1067. + {"flog2x",    two(0xF000, 0x0016),    two(0xF1C0, 0xE07F),    "IiFt"},
  1068. + {"flognb",    two(0xF000, 0x5814),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  1069. + {"flognd",    two(0xF000, 0x5414),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  1070. + {"flognl",    two(0xF000, 0x4014),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  1071. + {"flognp",    two(0xF000, 0x4C14),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  1072. + {"flogns",    two(0xF000, 0x4414),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  1073. + {"flognw",    two(0xF000, 0x5014),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  1074. + {"flognx",    two(0xF000, 0x0014),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  1075. + {"flognx",    two(0xF000, 0x4814),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  1076. + {"flognx",    two(0xF000, 0x0014),    two(0xF1C0, 0xE07F),    "IiFt"},
  1077. + {"flognp1b",    two(0xF000, 0x5806),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  1078. + {"flognp1d",    two(0xF000, 0x5406),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  1079. + {"flognp1l",    two(0xF000, 0x4006),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  1080. + {"flognp1p",    two(0xF000, 0x4C06),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  1081. + {"flognp1s",    two(0xF000, 0x4406),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  1082. + {"flognp1w",    two(0xF000, 0x5006),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  1083. + {"flognp1x",    two(0xF000, 0x0006),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  1084. + {"flognp1x",    two(0xF000, 0x4806),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  1085. + {"flognp1x",    two(0xF000, 0x0006),    two(0xF1C0, 0xE07F),    "IiFt"},
  1086. + {"fmodb",    two(0xF000, 0x5821),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  1087. + {"fmodd",    two(0xF000, 0x5421),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  1088. + {"fmodl",    two(0xF000, 0x4021),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  1089. + {"fmodp",    two(0xF000, 0x4C21),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  1090. + {"fmods",    two(0xF000, 0x4421),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  1091. + {"fmodw",    two(0xF000, 0x5021),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  1092. + {"fmodx",    two(0xF000, 0x0021),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  1093. + {"fmodx",    two(0xF000, 0x4821),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  1094. + /* {"fmodx",    two(0xF000, 0x0021),    two(0xF1C0, 0xE07F),    "IiFt"}, JF */
  1095. + {"fmoveb",    two(0xF000, 0x5800),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},        /* fmove from <ea> to fp<n> */
  1096. + {"fmoveb",    two(0xF000, 0x7800),    two(0xF1C0, 0xFC7F),    "IiF7@b"},        /* fmove from fp<n> to <ea> */
  1097. + {"fmoved",    two(0xF000, 0x5400),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},        /* fmove from <ea> to fp<n> */
  1098. + {"fmoved",    two(0xF000, 0x7400),    two(0xF1C0, 0xFC7F),    "IiF7@F"},        /* fmove from fp<n> to <ea> */
  1099. + {"fmovel",    two(0xF000, 0x4000),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},        /* fmove from <ea> to fp<n> */
  1100. + {"fmovel",    two(0xF000, 0x6000),    two(0xF1C0, 0xFC7F),    "IiF7@l"},        /* fmove from fp<n> to <ea> */
  1101. + /* Warning:  The addressing modes on these are probably not right:
  1102. +    esp, Areg direct is only allowed for FPI */
  1103. +         /* fmove.l from/to system control registers: */
  1104. + {"fmovel",    two(0xF000, 0xA000),    two(0xF1C0, 0xE3FF),    "Iis8@s"},
  1105. + {"fmovel",    two(0xF000, 0x8000),    two(0xF1C0, 0xE3FF),    "Ii*ls8"},
  1106. + /* {"fmovel",    two(0xF000, 0xA000),    two(0xF1C0, 0xE3FF),    "Iis8@s"},
  1107. + {"fmovel",    two(0xF000, 0x8000),    two(0xF2C0, 0xE3FF),    "Ii*ss8"}, */
  1108. + {"fmovep",    two(0xF000, 0x4C00),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},        /* fmove from <ea> to fp<n> */
  1109. + {"fmovep",    two(0xF000, 0x6C00),    two(0xF1C0, 0xFC00),    "IiF7@pkC"},        /* fmove.p with k-factors: */
  1110. + {"fmovep",    two(0xF000, 0x7C00),    two(0xF1C0, 0xFC0F),    "IiF7@pDk"},        /* fmove.p with k-factors: */
  1111. + {"fmoves",    two(0xF000, 0x4400),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},        /* fmove from <ea> to fp<n> */
  1112. + {"fmoves",    two(0xF000, 0x6400),    two(0xF1C0, 0xFC7F),    "IiF7@f"},        /* fmove from fp<n> to <ea> */
  1113. + {"fmovew",    two(0xF000, 0x5000),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},        /* fmove from <ea> to fp<n> */
  1114. + {"fmovew",    two(0xF000, 0x7000),    two(0xF1C0, 0xFC7F),    "IiF7@w"},        /* fmove from fp<n> to <ea> */
  1115. + {"fmovex",    two(0xF000, 0x0000),    two(0xF1C0, 0xE07F),    "IiF8F7"},        /* fmove from <ea> to fp<n> */
  1116. + {"fmovex",    two(0xF000, 0x4800),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},        /* fmove from <ea> to fp<n> */
  1117. + {"fmovex",    two(0xF000, 0x6800),    two(0xF1C0, 0xFC7F),    "IiF7@x"},        /* fmove from fp<n> to <ea> */
  1118. + /* JF removed {"fmovex",    two(0xF000, 0x0000),    two(0xF1C0, 0xE07F),    "IiFt"},        / * fmove from <ea> to fp<n> */
  1119. + {"fmovecrx",    two(0xF000, 0x5C00),    two(0xF1FF, 0xFC00),    "Ii#CF7"},        /* fmovecr.x #ccc,    FPn */
  1120. + {"fmovecr",    two(0xF000, 0x5C00),    two(0xF1FF, 0xFC00),    "Ii#CF7"},
  1121. + /* Other fmovemx.  */
  1122. + {"fmovemx",    two(0xF020, 0xE000),    two(0xF1F8, 0xFF00),    "IdL3-s"},        /* fmovem.x to autodecrement,    static and dynamic */
  1123. + {"fmovemx",    two(0xF020, 0xE000),    two(0xF1F8, 0xFF00),    "Id#3-s"},        /* fmovem.x to autodecrement,    static and dynamic */
  1124. + {"fmovemx",    two(0xF020, 0xE800),    two(0xF1F8, 0xFF8F),    "IiDk-s"},        /* fmovem.x to autodecrement,    static and dynamic */
  1125. + {"fmovemx",    two(0xF000, 0xF000),    two(0xF1C0, 0xFF00),    "Id#3&s"},        /* fmovem.x to control,    static and dynamic: */
  1126. + {"fmovemx",    two(0xF000, 0xF800),    two(0xF1C0, 0xFF8F),    "IiDk&s"},        /* fmovem.x to control,    static and dynamic: */
  1127. + {"fmovemx",    two(0xF000, 0xD000),    two(0xF1C0, 0xFF00),    "Id&s#3"},        /* fmovem.x from control,    static and dynamic: */
  1128. + {"fmovemx",    two(0xF000, 0xD800),    two(0xF1C0, 0xFF8F),    "Ii&sDk"},        /* fmovem.x from control,    static and dynamic: */
  1129. + {"fmovemx",    two(0xF000, 0xF000),    two(0xF1C0, 0xFF00),    "Idl3&s"},        /* fmovem.x to control,    static and dynamic: */
  1130. + {"fmovemx",    two(0xF000, 0xD000),    two(0xF1C0, 0xFF00),    "Id&sl3"},        /* fmovem.x from control,    static and dynamic: */
  1131. + {"fmovemx",    two(0xF018, 0xD000),    two(0xF1F8, 0xFF00),    "Id+sl3"},        /* fmovem.x from autoincrement,    static and dynamic: */
  1132. + {"fmovemx",    two(0xF018, 0xD000),    two(0xF1F8, 0xFF00),    "Id+s#3"},        /* fmovem.x from autoincrement,    static and dynamic: */
  1133. + {"fmovemx",    two(0xF018, 0xD800),    two(0xF1F8, 0xFF8F),    "Ii+sDk"},        /* fmovem.x from autoincrement,    static and dynamic: */
  1134. + {"fmoveml",    two(0xF000, 0xA000),    two(0xF1C0, 0xE3FF),    "IiL8@s"},
  1135. + {"fmoveml",    two(0xF000, 0xA000),    two(0xF1C0, 0xE3FF),    "Ii#8@s"},
  1136. + {"fmoveml",    two(0xF000, 0xA000),    two(0xF1C0, 0xE3FF),    "Iis8@s"},
  1137. + {"fmoveml",    two(0xF000, 0x8000),    two(0xF2C0, 0xE3FF),    "Ii*sL8"},
  1138. + {"fmoveml",    two(0xF000, 0x8000),    two(0xF1C0, 0xE3FF),    "Ii*s#8"},
  1139. + {"fmoveml",    two(0xF000, 0x8000),    two(0xF1C0, 0xE3FF),    "Ii*ss8"},
  1140. + /* fmovemx with register lists */
  1141. + {"fmovem",    two(0xF020, 0xE000),    two(0xF1F8, 0xFF00),    "IdL3-s"},        /* fmovem.x to autodecrement,    static and dynamic */
  1142. + {"fmovem",    two(0xF000, 0xF000),    two(0xF1C0, 0xFF00),    "Idl3&s"},        /* fmovem.x to control,    static and dynamic: */
  1143. + {"fmovem",    two(0xF018, 0xD000),    two(0xF1F8, 0xFF00),    "Id+sl3"},        /* fmovem.x from autoincrement,    static and dynamic: */
  1144. + {"fmovem",    two(0xF000, 0xD000),    two(0xF1C0, 0xFF00),    "Id&sl3"},        /* fmovem.x from control,    static and dynamic: */
  1145. +     /* Alternate mnemonics for GNU as and GNU CC */
  1146. + {"fmovem",    two(0xF020, 0xE000),    two(0xF1F8, 0xFF00),    "Id#3-s"},        /* fmovem.x to autodecrement,    static and dynamic */
  1147. + {"fmovem",    two(0xF020, 0xE800),    two(0xF1F8, 0xFF8F),    "IiDk-s"},        /* fmovem.x to autodecrement,    static and dynamic */
  1148. + {"fmovem",    two(0xF000, 0xF000),    two(0xF1C0, 0xFF00),    "Id#3&s"},        /* fmovem.x to control,    static and dynamic: */
  1149. + {"fmovem",    two(0xF000, 0xF800),    two(0xF1C0, 0xFF8F),    "IiDk&s"},        /* fmovem.x to control,    static and dynamic: */
  1150. + {"fmovem",    two(0xF018, 0xD000),    two(0xF1F8, 0xFF00),    "Id+s#3"},        /* fmovem.x from autoincrement,    static and dynamic: */
  1151. + {"fmovem",    two(0xF018, 0xD800),    two(0xF1F8, 0xFF8F),    "Ii+sDk"},        /* fmovem.x from autoincrement,    static and dynamic: */
  1152. +   
  1153. + {"fmovem",    two(0xF000, 0xD000),    two(0xF1C0, 0xFF00),    "Id&s#3"},        /* fmovem.x from control,    static and dynamic: */
  1154. + {"fmovem",    two(0xF000, 0xD800),    two(0xF1C0, 0xFF8F),    "Ii&sDk"},        /* fmovem.x from control,    static and dynamic: */
  1155. + /* fmoveml a FP-control register */
  1156. + {"fmovem",    two(0xF000, 0xA000),    two(0xF1C0, 0xE3FF),    "Iis8@s"},
  1157. + {"fmovem",    two(0xF000, 0x8000),    two(0xF1C0, 0xE3FF),    "Ii*ss8"},
  1158. + /* fmoveml a FP-control reglist */
  1159. + {"fmovem",    two(0xF000, 0xA000),    two(0xF1C0, 0xE3FF),    "IiL8@s"},
  1160. + {"fmovem",    two(0xF000, 0x8000),    two(0xF2C0, 0xE3FF),    "Ii*sL8"},
  1161. + {"fmulb",    two(0xF000, 0x5823),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  1162. + {"fmuld",    two(0xF000, 0x5423),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  1163. + {"fmull",    two(0xF000, 0x4023),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  1164. + {"fmulp",    two(0xF000, 0x4C23),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  1165. + {"fmuls",    two(0xF000, 0x4423),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  1166. + {"fmulw",    two(0xF000, 0x5023),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  1167. + {"fmulx",    two(0xF000, 0x0023),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  1168. + {"fmulx",    two(0xF000, 0x4823),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  1169. + /* {"fmulx",    two(0xF000, 0x0023),    two(0xF1C0, 0xE07F),    "IiFt"}, JF */
  1170. + {"fnegb",    two(0xF000, 0x581A),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  1171. + {"fnegd",    two(0xF000, 0x541A),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  1172. + {"fnegl",    two(0xF000, 0x401A),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  1173. + {"fnegp",    two(0xF000, 0x4C1A),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  1174. + {"fnegs",    two(0xF000, 0x441A),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  1175. + {"fnegw",    two(0xF000, 0x501A),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  1176. + {"fnegx",    two(0xF000, 0x001A),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  1177. + {"fnegx",    two(0xF000, 0x481A),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  1178. + {"fnegx",    two(0xF000, 0x001A),    two(0xF1C0, 0xE07F),    "IiFt"},
  1179. + {"fnop",    two(0xF280, 0x0000),    two(0xFFFF, 0xFFFF),    "Ii"},
  1180. + {"fremb",    two(0xF000, 0x5825),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  1181. + {"fremd",    two(0xF000, 0x5425),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  1182. + {"freml",    two(0xF000, 0x4025),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  1183. + {"fremp",    two(0xF000, 0x4C25),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  1184. + {"frems",    two(0xF000, 0x4425),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  1185. + {"fremw",    two(0xF000, 0x5025),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  1186. + {"fremx",    two(0xF000, 0x0025),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  1187. + {"fremx",    two(0xF000, 0x4825),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  1188. + /* {"fremx",    two(0xF000, 0x0025),    two(0xF1C0, 0xE07F),    "IiFt"}, JF */
  1189. + {"frestore",    one(0xF140),        one(0xF1C0),        "Id&s"},
  1190. + {"frestore",    one(0xF158),        one(0xF1F8),        "Id+s"},
  1191. + {"fsave",    one(0xF100),        one(0xF1C0),        "Id&s"},
  1192. + {"fsave",    one(0xF120),        one(0xF1F8),        "Id-s"},
  1193. + {"fsincosb",    two(0xF000, 0x5830),    two(0xF1C0, 0xFC78),    "Ii;bF3F7"},
  1194. + {"fsincosd",    two(0xF000, 0x5430),    two(0xF1C0, 0xFC78),    "Ii;FF3F7"},
  1195. + {"fsincosl",    two(0xF000, 0x4030),    two(0xF1C0, 0xFC78),    "Ii;lF3F7"},
  1196. + {"fsincosp",    two(0xF000, 0x4C30),    two(0xF1C0, 0xFC78),    "Ii;pF3F7"},
  1197. + {"fsincoss",    two(0xF000, 0x4430),    two(0xF1C0, 0xFC78),    "Ii;fF3F7"},
  1198. + {"fsincosw",    two(0xF000, 0x5030),    two(0xF1C0, 0xFC78),    "Ii;wF3F7"},
  1199. + {"fsincosx",    two(0xF000, 0x0030),    two(0xF1C0, 0xE078),    "IiF8F3F7"},
  1200. + {"fsincosx",    two(0xF000, 0x4830),    two(0xF1C0, 0xFC78),    "Ii;xF3F7"},
  1201. + {"fscaleb",    two(0xF000, 0x5826),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  1202. + {"fscaled",    two(0xF000, 0x5426),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  1203. + {"fscalel",    two(0xF000, 0x4026),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  1204. + {"fscalep",    two(0xF000, 0x4C26),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  1205. + {"fscales",    two(0xF000, 0x4426),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  1206. + {"fscalew",    two(0xF000, 0x5026),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  1207. + {"fscalex",    two(0xF000, 0x0026),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  1208. + {"fscalex",    two(0xF000, 0x4826),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  1209. + /* {"fscalex",    two(0xF000, 0x0026),    two(0xF1C0, 0xE07F),    "IiFt"}, JF */
  1210. + /* $ is necessary to prevent the assembler from using PC-relative.
  1211. +    If @ were used, "label: fseq label" could produce "ftrapeq",
  1212. +    because "label" became "pc@label".  */
  1213. + {"fseq",    two(0xF040, 0x0001),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1214. + {"fsf",        two(0xF040, 0x0000),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1215. + {"fsge",    two(0xF040, 0x0013),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1216. + {"fsgl",    two(0xF040, 0x0016),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1217. + {"fsgle",    two(0xF040, 0x0017),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1218. + {"fsgt",    two(0xF040, 0x0012),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1219. + {"fsle",    two(0xF040, 0x0015),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1220. + {"fslt",    two(0xF040, 0x0014),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1221. + {"fsne",    two(0xF040, 0x000E),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1222. + {"fsnge",    two(0xF040, 0x001C),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1223. + {"fsngl",    two(0xF040, 0x0019),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1224. + {"fsngle",    two(0xF040, 0x0018),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1225. + {"fsngt",    two(0xF040, 0x001D),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1226. + {"fsnle",    two(0xF040, 0x001A),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1227. + {"fsnlt",    two(0xF040, 0x001B),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1228. + {"fsoge",    two(0xF040, 0x0003),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1229. + {"fsogl",    two(0xF040, 0x0006),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1230. + {"fsogt",    two(0xF040, 0x0002),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1231. + {"fsole",    two(0xF040, 0x0005),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1232. + {"fsolt",    two(0xF040, 0x0004),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1233. + {"fsor",    two(0xF040, 0x0007),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1234. + {"fsseq",    two(0xF040, 0x0011),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1235. + {"fssf",    two(0xF040, 0x0010),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1236. + {"fssne",    two(0xF040, 0x001E),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1237. + {"fsst",    two(0xF040, 0x001F),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1238. + {"fst",        two(0xF040, 0x000F),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1239. + {"fsueq",    two(0xF040, 0x0009),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1240. + {"fsuge",    two(0xF040, 0x000B),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1241. + {"fsugt",    two(0xF040, 0x000A),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1242. + {"fsule",    two(0xF040, 0x000D),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1243. + {"fsult",    two(0xF040, 0x000C),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1244. + {"fsun",    two(0xF040, 0x0008),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1245. + {"fsgldivb",    two(0xF000, 0x5824),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  1246. + {"fsgldivd",    two(0xF000, 0x5424),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  1247. + {"fsgldivl",    two(0xF000, 0x4024),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  1248. + {"fsgldivp",    two(0xF000, 0x4C24),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  1249. + {"fsgldivs",    two(0xF000, 0x4424),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  1250. + {"fsgldivw",    two(0xF000, 0x5024),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  1251. + {"fsgldivx",    two(0xF000, 0x0024),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  1252. + {"fsgldivx",    two(0xF000, 0x4824),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  1253. + {"fsgldivx",    two(0xF000, 0x0024),    two(0xF1C0, 0xE07F),    "IiFt"},
  1254. + {"fsglmulb",    two(0xF000, 0x5827),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  1255. + {"fsglmuld",    two(0xF000, 0x5427),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  1256. + {"fsglmull",    two(0xF000, 0x4027),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  1257. + {"fsglmulp",    two(0xF000, 0x4C27),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  1258. + {"fsglmuls",    two(0xF000, 0x4427),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  1259. + {"fsglmulw",    two(0xF000, 0x5027),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  1260. + {"fsglmulx",    two(0xF000, 0x0027),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  1261. + {"fsglmulx",    two(0xF000, 0x4827),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  1262. + {"fsglmulx",    two(0xF000, 0x0027),    two(0xF1C0, 0xE07F),    "IiFt"},
  1263. + {"fsinb",    two(0xF000, 0x580E),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  1264. + {"fsind",    two(0xF000, 0x540E),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  1265. + {"fsinl",    two(0xF000, 0x400E),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  1266. + {"fsinp",    two(0xF000, 0x4C0E),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  1267. + {"fsins",    two(0xF000, 0x440E),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  1268. + {"fsinw",    two(0xF000, 0x500E),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  1269. + {"fsinx",    two(0xF000, 0x000E),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  1270. + {"fsinx",    two(0xF000, 0x480E),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  1271. + {"fsinx",    two(0xF000, 0x000E),    two(0xF1C0, 0xE07F),    "IiFt"},
  1272. + {"fsinhb",    two(0xF000, 0x5802),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  1273. + {"fsinhd",    two(0xF000, 0x5402),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  1274. + {"fsinhl",    two(0xF000, 0x4002),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  1275. + {"fsinhp",    two(0xF000, 0x4C02),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  1276. + {"fsinhs",    two(0xF000, 0x4402),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  1277. + {"fsinhw",    two(0xF000, 0x5002),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  1278. + {"fsinhx",    two(0xF000, 0x0002),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  1279. + {"fsinhx",    two(0xF000, 0x4802),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  1280. + {"fsinhx",    two(0xF000, 0x0002),    two(0xF1C0, 0xE07F),    "IiFt"},
  1281. + {"fsqrtb",    two(0xF000, 0x5804),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  1282. + {"fsqrtd",    two(0xF000, 0x5404),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  1283. + {"fsqrtl",    two(0xF000, 0x4004),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  1284. + {"fsqrtp",    two(0xF000, 0x4C04),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  1285. + {"fsqrts",    two(0xF000, 0x4404),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  1286. + {"fsqrtw",    two(0xF000, 0x5004),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  1287. + {"fsqrtx",    two(0xF000, 0x0004),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  1288. + {"fsqrtx",    two(0xF000, 0x4804),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  1289. + {"fsqrtx",    two(0xF000, 0x0004),    two(0xF1C0, 0xE07F),    "IiFt"},
  1290. + {"fsubb",    two(0xF000, 0x5828),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  1291. + {"fsubd",    two(0xF000, 0x5428),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  1292. + {"fsubl",    two(0xF000, 0x4028),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  1293. + {"fsubp",    two(0xF000, 0x4C28),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  1294. + {"fsubs",    two(0xF000, 0x4428),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  1295. + {"fsubw",    two(0xF000, 0x5028),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  1296. + {"fsubx",    two(0xF000, 0x0028),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  1297. + {"fsubx",    two(0xF000, 0x4828),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  1298. + {"fsubx",    two(0xF000, 0x0028),    two(0xF1C0, 0xE07F),    "IiFt"},
  1299. + {"ftanb",    two(0xF000, 0x580F),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  1300. + {"ftand",    two(0xF000, 0x540F),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  1301. + {"ftanl",    two(0xF000, 0x400F),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  1302. + {"ftanp",    two(0xF000, 0x4C0F),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  1303. + {"ftans",    two(0xF000, 0x440F),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  1304. + {"ftanw",    two(0xF000, 0x500F),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  1305. + {"ftanx",    two(0xF000, 0x000F),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  1306. + {"ftanx",    two(0xF000, 0x480F),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  1307. + {"ftanx",    two(0xF000, 0x000F),    two(0xF1C0, 0xE07F),    "IiFt"},
  1308. + {"ftanhb",    two(0xF000, 0x5809),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  1309. + {"ftanhd",    two(0xF000, 0x5409),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  1310. + {"ftanhl",    two(0xF000, 0x4009),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  1311. + {"ftanhp",    two(0xF000, 0x4C09),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  1312. + {"ftanhs",    two(0xF000, 0x4409),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  1313. + {"ftanhw",    two(0xF000, 0x5009),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  1314. + {"ftanhx",    two(0xF000, 0x0009),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  1315. + {"ftanhx",    two(0xF000, 0x4809),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  1316. + {"ftanhx",    two(0xF000, 0x0009),    two(0xF1C0, 0xE07F),    "IiFt"},
  1317. + {"ftentoxb",    two(0xF000, 0x5812),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  1318. + {"ftentoxd",    two(0xF000, 0x5412),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  1319. + {"ftentoxl",    two(0xF000, 0x4012),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  1320. + {"ftentoxp",    two(0xF000, 0x4C12),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  1321. + {"ftentoxs",    two(0xF000, 0x4412),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  1322. + {"ftentoxw",    two(0xF000, 0x5012),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  1323. + {"ftentoxx",    two(0xF000, 0x0012),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  1324. + {"ftentoxx",    two(0xF000, 0x4812),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  1325. + {"ftentoxx",    two(0xF000, 0x0012),    two(0xF1C0, 0xE07F),    "IiFt"},
  1326. + {"ftrapeq",    two(0xF07C, 0x0001),    two(0xF1FF, 0xFFFF),    "Ii"},
  1327. + {"ftrapf",    two(0xF07C, 0x0000),    two(0xF1FF, 0xFFFF),    "Ii"},
  1328. + {"ftrapge",    two(0xF07C, 0x0013),    two(0xF1FF, 0xFFFF),    "Ii"},
  1329. + {"ftrapgl",    two(0xF07C, 0x0016),    two(0xF1FF, 0xFFFF),    "Ii"},
  1330. + {"ftrapgle",    two(0xF07C, 0x0017),    two(0xF1FF, 0xFFFF),    "Ii"},
  1331. + {"ftrapgt",    two(0xF07C, 0x0012),    two(0xF1FF, 0xFFFF),    "Ii"},
  1332. + {"ftraple",    two(0xF07C, 0x0015),    two(0xF1FF, 0xFFFF),    "Ii"},
  1333. + {"ftraplt",    two(0xF07C, 0x0014),    two(0xF1FF, 0xFFFF),    "Ii"},
  1334. + {"ftrapne",    two(0xF07C, 0x000E),    two(0xF1FF, 0xFFFF),    "Ii"},
  1335. + {"ftrapnge",    two(0xF07C, 0x001C),    two(0xF1FF, 0xFFFF),    "Ii"},
  1336. + {"ftrapngl",    two(0xF07C, 0x0019),    two(0xF1FF, 0xFFFF),    "Ii"},
  1337. + {"ftrapngle",    two(0xF07C, 0x0018),    two(0xF1FF, 0xFFFF),    "Ii"},
  1338. + {"ftrapngt",    two(0xF07C, 0x001D),    two(0xF1FF, 0xFFFF),    "Ii"},
  1339. + {"ftrapnle",    two(0xF07C, 0x001A),    two(0xF1FF, 0xFFFF),    "Ii"},
  1340. + {"ftrapnlt",    two(0xF07C, 0x001B),    two(0xF1FF, 0xFFFF),    "Ii"},
  1341. + {"ftrapoge",    two(0xF07C, 0x0003),    two(0xF1FF, 0xFFFF),    "Ii"},
  1342. + {"ftrapogl",    two(0xF07C, 0x0006),    two(0xF1FF, 0xFFFF),    "Ii"},
  1343. + {"ftrapogt",    two(0xF07C, 0x0002),    two(0xF1FF, 0xFFFF),    "Ii"},
  1344. + {"ftrapole",    two(0xF07C, 0x0005),    two(0xF1FF, 0xFFFF),    "Ii"},
  1345. + {"ftrapolt",    two(0xF07C, 0x0004),    two(0xF1FF, 0xFFFF),    "Ii"},
  1346. + {"ftrapor",    two(0xF07C, 0x0007),    two(0xF1FF, 0xFFFF),    "Ii"},
  1347. + {"ftrapseq",    two(0xF07C, 0x0011),    two(0xF1FF, 0xFFFF),    "Ii"},
  1348. + {"ftrapsf",    two(0xF07C, 0x0010),    two(0xF1FF, 0xFFFF),    "Ii"},
  1349. + {"ftrapsne",    two(0xF07C, 0x001E),    two(0xF1FF, 0xFFFF),    "Ii"},
  1350. + {"ftrapst",    two(0xF07C, 0x001F),    two(0xF1FF, 0xFFFF),    "Ii"},
  1351. + {"ftrapt",    two(0xF07C, 0x000F),    two(0xF1FF, 0xFFFF),    "Ii"},
  1352. + {"ftrapueq",    two(0xF07C, 0x0009),    two(0xF1FF, 0xFFFF),    "Ii"},
  1353. + {"ftrapuge",    two(0xF07C, 0x000B),    two(0xF1FF, 0xFFFF),    "Ii"},
  1354. + {"ftrapugt",    two(0xF07C, 0x000A),    two(0xF1FF, 0xFFFF),    "Ii"},
  1355. + {"ftrapule",    two(0xF07C, 0x000D),    two(0xF1FF, 0xFFFF),    "Ii"},
  1356. + {"ftrapult",    two(0xF07C, 0x000C),    two(0xF1FF, 0xFFFF),    "Ii"},
  1357. + {"ftrapun",    two(0xF07C, 0x0008),    two(0xF1FF, 0xFFFF),    "Ii"},
  1358. +         
  1359. + {"ftrapeqw",    two(0xF07A, 0x0001),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1360. + {"ftrapfw",    two(0xF07A, 0x0000),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1361. + {"ftrapgew",    two(0xF07A, 0x0013),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1362. + {"ftrapglw",    two(0xF07A, 0x0016),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1363. + {"ftrapglew",    two(0xF07A, 0x0017),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1364. + {"ftrapgtw",    two(0xF07A, 0x0012),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1365. + {"ftraplew",    two(0xF07A, 0x0015),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1366. + {"ftrapltw",    two(0xF07A, 0x0014),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1367. + {"ftrapnew",    two(0xF07A, 0x000E),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1368. + {"ftrapngew",    two(0xF07A, 0x001C),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1369. + {"ftrapnglw",    two(0xF07A, 0x0019),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1370. + {"ftrapnglew",    two(0xF07A, 0x0018),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1371. + {"ftrapngtw",    two(0xF07A, 0x001D),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1372. + {"ftrapnlew",    two(0xF07A, 0x001A),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1373. + {"ftrapnltw",    two(0xF07A, 0x001B),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1374. + {"ftrapogew",    two(0xF07A, 0x0003),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1375. + {"ftrapoglw",    two(0xF07A, 0x0006),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1376. + {"ftrapogtw",    two(0xF07A, 0x0002),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1377. + {"ftrapolew",    two(0xF07A, 0x0005),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1378. + {"ftrapoltw",    two(0xF07A, 0x0004),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1379. + {"ftraporw",    two(0xF07A, 0x0007),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1380. + {"ftrapseqw",    two(0xF07A, 0x0011),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1381. + {"ftrapsfw",    two(0xF07A, 0x0010),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1382. + {"ftrapsnew",    two(0xF07A, 0x001E),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1383. + {"ftrapstw",    two(0xF07A, 0x001F),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1384. + {"ftraptw",    two(0xF07A, 0x000F),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1385. + {"ftrapueqw",    two(0xF07A, 0x0009),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1386. + {"ftrapugew",    two(0xF07A, 0x000B),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1387. + {"ftrapugtw",    two(0xF07A, 0x000A),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1388. + {"ftrapulew",    two(0xF07A, 0x000D),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1389. + {"ftrapultw",    two(0xF07A, 0x000C),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1390. + {"ftrapunw",    two(0xF07A, 0x0008),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1391. + {"ftrapeql",    two(0xF07B, 0x0001),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1392. + {"ftrapfl",    two(0xF07B, 0x0000),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1393. + {"ftrapgel",    two(0xF07B, 0x0013),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1394. + {"ftrapgll",    two(0xF07B, 0x0016),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1395. + {"ftrapglel",    two(0xF07B, 0x0017),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1396. + {"ftrapgtl",    two(0xF07B, 0x0012),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1397. + {"ftraplel",    two(0xF07B, 0x0015),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1398. + {"ftrapltl",    two(0xF07B, 0x0014),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1399. + {"ftrapnel",    two(0xF07B, 0x000E),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1400. + {"ftrapngel",    two(0xF07B, 0x001C),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1401. + {"ftrapngll",    two(0xF07B, 0x0019),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1402. + {"ftrapnglel",    two(0xF07B, 0x0018),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1403. + {"ftrapngtl",    two(0xF07B, 0x001D),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1404. + {"ftrapnlel",    two(0xF07B, 0x001A),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1405. + {"ftrapnltl",    two(0xF07B, 0x001B),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1406. + {"ftrapogel",    two(0xF07B, 0x0003),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1407. + {"ftrapogll",    two(0xF07B, 0x0006),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1408. + {"ftrapogtl",    two(0xF07B, 0x0002),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1409. + {"ftrapolel",    two(0xF07B, 0x0005),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1410. + {"ftrapoltl",    two(0xF07B, 0x0004),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1411. + {"ftraporl",    two(0xF07B, 0x0007),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1412. + {"ftrapseql",    two(0xF07B, 0x0011),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1413. + {"ftrapsfl",    two(0xF07B, 0x0010),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1414. + {"ftrapsnel",    two(0xF07B, 0x001E),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1415. + {"ftrapstl",    two(0xF07B, 0x001F),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1416. + {"ftraptl",    two(0xF07B, 0x000F),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1417. + {"ftrapueql",    two(0xF07B, 0x0009),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1418. + {"ftrapugel",    two(0xF07B, 0x000B),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1419. + {"ftrapugtl",    two(0xF07B, 0x000A),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1420. + {"ftrapulel",    two(0xF07B, 0x000D),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1421. + {"ftrapultl",    two(0xF07B, 0x000C),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1422. + {"ftrapunl",    two(0xF07B, 0x0008),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1423. + {"ftstb",    two(0xF000, 0x583A),    two(0xF1C0, 0xFC7F),    "Ii;b"},
  1424. + {"ftstd",    two(0xF000, 0x543A),    two(0xF1C0, 0xFC7F),    "Ii;F"},
  1425. + {"ftstl",    two(0xF000, 0x403A),    two(0xF1C0, 0xFC7F),    "Ii;l"},
  1426. + {"ftstp",    two(0xF000, 0x4C3A),    two(0xF1C0, 0xFC7F),    "Ii;p"},
  1427. + {"ftsts",    two(0xF000, 0x443A),    two(0xF1C0, 0xFC7F),    "Ii;f"},
  1428. + {"ftstw",    two(0xF000, 0x503A),    two(0xF1C0, 0xFC7F),    "Ii;w"},
  1429. + {"ftstx",    two(0xF000, 0x003A),    two(0xF1C0, 0xE07F),    "IiF8"},
  1430. + {"ftstx",    two(0xF000, 0x483A),    two(0xF1C0, 0xFC7F),    "Ii;x"},
  1431. + {"ftwotoxb",    two(0xF000, 0x5811),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  1432. + {"ftwotoxd",    two(0xF000, 0x5411),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  1433. + {"ftwotoxl",    two(0xF000, 0x4011),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  1434. + {"ftwotoxp",    two(0xF000, 0x4C11),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  1435. + {"ftwotoxs",    two(0xF000, 0x4411),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  1436. + {"ftwotoxw",    two(0xF000, 0x5011),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  1437. + {"ftwotoxx",    two(0xF000, 0x0011),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  1438. + {"ftwotoxx",    two(0xF000, 0x4811),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  1439. + {"ftwotoxx",    two(0xF000, 0x0011),    two(0xF1C0, 0xE07F),    "IiFt"},
  1440. + {"fjeq",    one(0xF081),        one(0xF1FF),        "IdBc"},
  1441. + {"fjf",        one(0xF080),        one(0xF1FF),        "IdBc"},
  1442. + {"fjge",    one(0xF093),        one(0xF1FF),        "IdBc"},
  1443. + {"fjgl",    one(0xF096),        one(0xF1FF),        "IdBc"},
  1444. + {"fjgle",    one(0xF097),        one(0xF1FF),        "IdBc"},
  1445. + {"fjgt",    one(0xF092),        one(0xF1FF),        "IdBc"},
  1446. + {"fjle",    one(0xF095),        one(0xF1FF),        "IdBc"},
  1447. + {"fjlt",    one(0xF094),        one(0xF1FF),        "IdBc"},
  1448. + {"fjne",    one(0xF08E),        one(0xF1FF),        "IdBc"},
  1449. + {"fjnge",    one(0xF09C),        one(0xF1FF),        "IdBc"},
  1450. + {"fjngl",    one(0xF099),        one(0xF1FF),        "IdBc"},
  1451. + {"fjngle",    one(0xF098),        one(0xF1FF),        "IdBc"},
  1452. + {"fjngt",    one(0xF09D),        one(0xF1FF),        "IdBc"},
  1453. + {"fjnle",    one(0xF09A),        one(0xF1FF),        "IdBc"},
  1454. + {"fjnlt",    one(0xF09B),        one(0xF1FF),        "IdBc"},
  1455. + {"fjoge",    one(0xF083),        one(0xF1FF),        "IdBc"},
  1456. + {"fjogl",    one(0xF086),        one(0xF1FF),        "IdBc"},
  1457. + {"fjogt",    one(0xF082),        one(0xF1FF),        "IdBc"},
  1458. + {"fjole",    one(0xF085),        one(0xF1FF),        "IdBc"},
  1459. + {"fjolt",    one(0xF084),        one(0xF1FF),        "IdBc"},
  1460. + {"fjor",    one(0xF087),        one(0xF1FF),        "IdBc"},
  1461. + {"fjseq",    one(0xF091),        one(0xF1FF),        "IdBc"},
  1462. + {"fjsf",    one(0xF090),        one(0xF1FF),        "IdBc"},
  1463. + {"fjsne",    one(0xF09E),        one(0xF1FF),        "IdBc"},
  1464. + {"fjst",    one(0xF09F),        one(0xF1FF),        "IdBc"},
  1465. + {"fjt",        one(0xF08F),        one(0xF1FF),        "IdBc"},
  1466. + {"fjueq",    one(0xF089),        one(0xF1FF),        "IdBc"},
  1467. + {"fjuge",    one(0xF08B),        one(0xF1FF),        "IdBc"},
  1468. + {"fjugt",    one(0xF08A),        one(0xF1FF),        "IdBc"},
  1469. + {"fjule",    one(0xF08D),        one(0xF1FF),        "IdBc"},
  1470. + {"fjult",    one(0xF08C),        one(0xF1FF),        "IdBc"},
  1471. + {"fjun",    one(0xF088),        one(0xF1FF),        "IdBc"},
  1472. + /* The assembler will ignore attempts to force a short offset */
  1473. + {"bhis",    one(0061000),        one(0177400),        "Bg"},
  1474. + {"blss",    one(0061400),        one(0177400),        "Bg"},
  1475. + {"bccs",    one(0062000),        one(0177400),        "Bg"},
  1476. + {"bcss",    one(0062400),        one(0177400),        "Bg"},
  1477. + {"bnes",    one(0063000),        one(0177400),        "Bg"},
  1478. + {"beqs",    one(0063400),        one(0177400),        "Bg"},
  1479. + {"bvcs",    one(0064000),        one(0177400),        "Bg"},
  1480. + {"bvss",    one(0064400),        one(0177400),        "Bg"},
  1481. + {"bpls",    one(0065000),        one(0177400),        "Bg"},
  1482. + {"bmis",    one(0065400),        one(0177400),        "Bg"},
  1483. + {"bges",    one(0066000),        one(0177400),        "Bg"},
  1484. + {"blts",    one(0066400),        one(0177400),        "Bg"},
  1485. + {"bgts",    one(0067000),        one(0177400),        "Bg"},
  1486. + {"bles",    one(0067400),        one(0177400),        "Bg"},
  1487. + /* Alternate mnemonics for SUN */
  1488. + {"jbsr",    one(0060400),        one(0177400),        "Bg"},
  1489. + {"jbsr",    one(0047200),        one(0177700),        "!s"},
  1490. + {"jra",        one(0060000),        one(0177400),        "Bg"},
  1491. + {"jra",        one(0047300),        one(0177700),        "!s"},
  1492. +   
  1493. + {"jhi",        one(0061000),        one(0177400),        "Bg"},
  1494. + {"jls",        one(0061400),        one(0177400),        "Bg"},
  1495. + {"jcc",        one(0062000),        one(0177400),        "Bg"},
  1496. + {"jcs",        one(0062400),        one(0177400),        "Bg"},
  1497. + {"jne",        one(0063000),        one(0177400),        "Bg"},
  1498. + {"jeq",        one(0063400),        one(0177400),        "Bg"},
  1499. + {"jvc",        one(0064000),        one(0177400),        "Bg"},
  1500. + {"jvs",        one(0064400),        one(0177400),        "Bg"},
  1501. + {"jpl",        one(0065000),        one(0177400),        "Bg"},
  1502. + {"jmi",        one(0065400),        one(0177400),        "Bg"},
  1503. + {"jge",        one(0066000),        one(0177400),        "Bg"},
  1504. + {"jlt",        one(0066400),        one(0177400),        "Bg"},
  1505. + {"jgt",        one(0067000),        one(0177400),        "Bg"},
  1506. + {"jle",        one(0067400),        one(0177400),        "Bg"},
  1507. + /* Short offsets are ignored */
  1508. + {"jbsrs",    one(0060400),        one(0177400),        "Bg"},
  1509. + {"jras",    one(0060000),        one(0177400),        "Bg"},
  1510. + {"jhis",    one(0061000),        one(0177400),        "Bg"},
  1511. + {"jlss",    one(0061400),        one(0177400),        "Bg"},
  1512. + {"jccs",    one(0062000),        one(0177400),        "Bg"},
  1513. + {"jcss",    one(0062400),        one(0177400),        "Bg"},
  1514. + {"jnes",    one(0063000),        one(0177400),        "Bg"},
  1515. + {"jeqs",    one(0063400),        one(0177400),        "Bg"},
  1516. + {"jvcs",    one(0064000),        one(0177400),        "Bg"},
  1517. + {"jvss",    one(0064400),        one(0177400),        "Bg"},
  1518. + {"jpls",    one(0065000),        one(0177400),        "Bg"},
  1519. + {"jmis",    one(0065400),        one(0177400),        "Bg"},
  1520. + {"jges",    one(0066000),        one(0177400),        "Bg"},
  1521. + {"jlts",    one(0066400),        one(0177400),        "Bg"},
  1522. + {"jgts",    one(0067000),        one(0177400),        "Bg"},
  1523. + {"jles",    one(0067400),        one(0177400),        "Bg"},
  1524. + {"movql",    one(0070000),        one(0170400),        "MsDd"},
  1525. + {"moveql",    one(0070000),        one(0170400),        "MsDd"},
  1526. + {"moval",    one(0020100),        one(0170700),        "*lAd"},
  1527. + {"movaw",    one(0030100),        one(0170700),        "*wAd"},
  1528. + {"movb",    one(0010000),        one(0170000),        ";b$d"},    /* mov */
  1529. + {"movl",    one(0070000),        one(0170400),        "MsDd"},    /* movq written as mov */
  1530. + {"movl",    one(0020000),        one(0170000),        "*l$d"},
  1531. + {"movl",    one(0020100),        one(0170700),        "*lAd"},
  1532. + {"movl",    one(0047140),        one(0177770),        "AsUd"},    /* mov to USP */
  1533. + {"movl",    one(0047150),        one(0177770),        "UdAs"},    /* mov from USP */
  1534. + {"movc",    one(0047173),        one(0177777),        "R1Jj"},
  1535. + {"movc",    one(0047173),        one(0177777),        "R1#j"},
  1536. + {"movc",    one(0047172),        one(0177777),        "JjR1"},
  1537. + {"movc",    one(0047172),        one(0177777),        "#jR1"},
  1538. + {"movml",    one(0044300),        one(0177700),        "#w&s"},    /* movm reg to mem. */
  1539. + {"movml",    one(0044340),        one(0177770),        "#w-s"},    /* movm reg to autodecrement. */
  1540. + {"movml",    one(0046300),        one(0177700),        "!s#w"},    /* movm mem to reg. */
  1541. + {"movml",    one(0046330),        one(0177770),        "+s#w"},    /* movm autoinc to reg. */
  1542. + {"movml",    one(0044300),        one(0177700),        "Lw&s"},    /* movm reg to mem. */
  1543. + {"movml",    one(0044340),        one(0177770),        "lw-s"},    /* movm reg to autodecrement. */
  1544. + {"movml",    one(0046300),        one(0177700),        "!sLw"},    /* movm mem to reg. */
  1545. + {"movml",    one(0046330),        one(0177770),        "+sLw"},    /* movm autoinc to reg. */
  1546. + {"movmw",    one(0044200),        one(0177700),        "#w&s"},    /* movm reg to mem. */
  1547. + {"movmw",    one(0044240),        one(0177770),        "#w-s"},    /* movm reg to autodecrement. */
  1548. + {"movmw",    one(0046200),        one(0177700),        "!s#w"},    /* movm mem to reg. */
  1549. + {"movmw",    one(0046230),        one(0177770),        "+s#w"},    /* movm autoinc to reg. */
  1550. + {"movmw",    one(0044200),        one(0177700),        "Lw&s"},    /* movm reg to mem. */
  1551. + {"movmw",    one(0044240),        one(0177770),        "lw-s"},    /* movm reg to autodecrement. */
  1552. + {"movmw",    one(0046200),        one(0177700),        "!sLw"},    /* movm mem to reg. */
  1553. + {"movmw",    one(0046230),        one(0177770),        "+sLw"},    /* movm autoinc to reg. */
  1554. + {"movpl",    one(0000510),        one(0170770),        "dsDd"},    /* memory to register */
  1555. + {"movpl",    one(0000710),        one(0170770),        "Ddds"},    /* register to memory */
  1556. + {"movpw",    one(0000410),        one(0170770),        "dsDd"},    /* memory to register */
  1557. + {"movpw",    one(0000610),        one(0170770),        "Ddds"},    /* register to memory */
  1558. + {"movq",    one(0070000),        one(0170400),        "MsDd"},
  1559. + {"movw",    one(0030000),        one(0170000),        "*w$d"},
  1560. + {"movw",    one(0030100),        one(0170700),        "*wAd"},    /* mova,    written as mov */
  1561. + {"movw",    one(0040300),        one(0177700),        "Ss$s"},    /* Move from sr */
  1562. + {"movw",    one(0041300),        one(0177700),        "Cs$s"},    /* Move from ccr */
  1563. + {"movw",    one(0042300),        one(0177700),        ";wCd"},    /* mov to ccr */
  1564. + {"movw",    one(0043300),        one(0177700),        ";wSd"},    /* mov to sr */
  1565. + {"movsb",    two(0007000, 0),    two(0177700, 07777),    "~sR1"},
  1566. + {"movsb",    two(0007000, 04000),    two(0177700, 07777),    "R1~s"},
  1567. + {"movsl",    two(0007200, 0),    two(0177700, 07777),    "~sR1"},
  1568. + {"movsl",    two(0007200, 04000),    two(0177700, 07777),    "R1~s"},
  1569. + {"movsw",    two(0007100, 0),    two(0177700, 07777),    "~sR1"},
  1570. + {"movsw",    two(0007100, 04000),    two(0177700, 07777),    "R1~s"},
  1571. + #ifdef m68851
  1572. +  /* name */    /* opcode */        /* match */        /* args */
  1573. + {"pbac",    one(0xf0c7),        one(0xffbf),        "Bc"},
  1574. + {"pbacw",    one(0xf087),        one(0xffbf),        "Bc"},
  1575. + {"pbas",    one(0xf0c6),        one(0xffbf),        "Bc"},
  1576. + {"pbasw",    one(0xf086),        one(0xffbf),        "Bc"},
  1577. + {"pbbc",    one(0xf0c1),        one(0xffbf),        "Bc"},
  1578. + {"pbbcw",    one(0xf081),        one(0xffbf),        "Bc"},
  1579. + {"pbbs",    one(0xf0c0),        one(0xffbf),        "Bc"},
  1580. + {"pbbsw",    one(0xf080),        one(0xffbf),        "Bc"},
  1581. + {"pbcc",    one(0xf0cf),        one(0xffbf),        "Bc"},
  1582. + {"pbccw",    one(0xf08f),        one(0xffbf),        "Bc"},
  1583. + {"pbcs",    one(0xf0ce),        one(0xffbf),        "Bc"},
  1584. + {"pbcsw",    one(0xf08e),        one(0xffbf),        "Bc"},
  1585. + {"pbgc",    one(0xf0cd),        one(0xffbf),        "Bc"},
  1586. + {"pbgcw",    one(0xf08d),        one(0xffbf),        "Bc"},
  1587. + {"pbgs",    one(0xf0cc),        one(0xffbf),        "Bc"},
  1588. + {"pbgsw",    one(0xf08c),        one(0xffbf),        "Bc"},
  1589. + {"pbic",    one(0xf0cb),        one(0xffbf),        "Bc"},
  1590. + {"pbicw",    one(0xf08b),        one(0xffbf),        "Bc"},
  1591. + {"pbis",    one(0xf0ca),        one(0xffbf),        "Bc"},
  1592. + {"pbisw",    one(0xf08a),        one(0xffbf),        "Bc"},
  1593. + {"pblc",    one(0xf0c3),        one(0xffbf),        "Bc"},
  1594. + {"pblcw",    one(0xf083),        one(0xffbf),        "Bc"},
  1595. + {"pbls",    one(0xf0c2),        one(0xffbf),        "Bc"},
  1596. + {"pblsw",    one(0xf082),        one(0xffbf),        "Bc"},
  1597. + {"pbsc",    one(0xf0c5),        one(0xffbf),        "Bc"},
  1598. + {"pbscw",    one(0xf085),        one(0xffbf),        "Bc"},
  1599. + {"pbss",    one(0xf0c4),        one(0xffbf),        "Bc"},
  1600. + {"pbssw",    one(0xf084),        one(0xffbf),        "Bc"},
  1601. + {"pbwc",    one(0xf0c9),        one(0xffbf),        "Bc"},
  1602. + {"pbwcw",    one(0xf089),        one(0xffbf),        "Bc"},
  1603. + {"pbws",    one(0xf0c8),        one(0xffbf),        "Bc"},
  1604. + {"pbwsw",    one(0xf088),        one(0xffbf),        "Bc"},
  1605. + {"pdbac",    two(0xf048, 0x0007),    two(0xfff8, 0xffff),    "DsBw"},
  1606. + {"pdbas",    two(0xf048, 0x0006),    two(0xfff8, 0xffff),    "DsBw"},
  1607. + {"pdbbc",    two(0xf048, 0x0001),    two(0xfff8, 0xffff),    "DsBw"},
  1608. + {"pdbbs",    two(0xf048, 0x0000),    two(0xfff8, 0xffff),    "DsBw"},
  1609. + {"pdbcc",    two(0xf048, 0x000f),    two(0xfff8, 0xffff),    "DsBw"},
  1610. + {"pdbcs",    two(0xf048, 0x000e),    two(0xfff8, 0xffff),    "DsBw"},
  1611. + {"pdbgc",    two(0xf048, 0x000d),    two(0xfff8, 0xffff),    "DsBw"},
  1612. + {"pdbgs",    two(0xf048, 0x000c),    two(0xfff8, 0xffff),    "DsBw"},
  1613. + {"pdbic",    two(0xf048, 0x000b),    two(0xfff8, 0xffff),    "DsBw"},
  1614. + {"pdbis",    two(0xf048, 0x000a),    two(0xfff8, 0xffff),    "DsBw"},
  1615. + {"pdblc",    two(0xf048, 0x0003),    two(0xfff8, 0xffff),    "DsBw"},
  1616. + {"pdbls",    two(0xf048, 0x0002),    two(0xfff8, 0xffff),    "DsBw"},
  1617. + {"pdbsc",    two(0xf048, 0x0005),    two(0xfff8, 0xffff),    "DsBw"},
  1618. + {"pdbss",    two(0xf048, 0x0004),    two(0xfff8, 0xffff),    "DsBw"},
  1619. + {"pdbwc",    two(0xf048, 0x0009),    two(0xfff8, 0xffff),    "DsBw"},
  1620. + {"pdbws",    two(0xf048, 0x0008),    two(0xfff8, 0xffff),    "DsBw"},
  1621. + {"pflusha",    two(0xf000, 0x2400),    two(0xffff, 0xffff),    "" },
  1622. + {"pflush",    two(0xf000, 0x3010),    two(0xffc0, 0xfe10),    "T3T9" },
  1623. + {"pflush",    two(0xf000, 0x3810),    two(0xffc0, 0xfe10),    "T3T9&s" },
  1624. + {"pflush",    two(0xf000, 0x3008),    two(0xffc0, 0xfe18),    "D3T9" },
  1625. + {"pflush",    two(0xf000, 0x3808),    two(0xffc0, 0xfe18),    "D3T9&s" },
  1626. + {"pflush",    two(0xf000, 0x3000),    two(0xffc0, 0xfe1e),    "f3T9" },
  1627. + {"pflush",    two(0xf000, 0x3800),    two(0xffc0, 0xfe1e),    "f3T9&s" },
  1628. + {"pflushs",    two(0xf000, 0x3410),    two(0xfff8, 0xfe10),    "T3T9" },
  1629. + {"pflushs",    two(0xf000, 0x3c10),    two(0xfff8, 0xfe00),    "T3T9&s" },
  1630. + {"pflushs",    two(0xf000, 0x3408),    two(0xfff8, 0xfe18),    "D3T9" },
  1631. + {"pflushs",    two(0xf000, 0x3c08),    two(0xfff8, 0xfe18),    "D3T9&s" },
  1632. + {"pflushs",    two(0xf000, 0x3400),    two(0xfff8, 0xfe1e),    "f3T9" },
  1633. + {"pflushs",    two(0xf000, 0x3c00),    two(0xfff8, 0xfe1e),    "f3T9&s"},
  1634. + {"pflushr",    two(0xf000, 0xa000),    two(0xffc0, 0xffff),    "|s" },
  1635. + {"ploadr",    two(0xf000, 0x2210),    two(0xffc0, 0xfff0),    "T3&s" },
  1636. + {"ploadr",    two(0xf000, 0x2208),    two(0xffc0, 0xfff8),    "D3&s" },
  1637. + {"ploadr",    two(0xf000, 0x2200),    two(0xffc0, 0xfffe),    "f3&s" },
  1638. + {"ploadw",    two(0xf000, 0x2010),    two(0xffc0, 0xfff0),    "T3&s" },
  1639. + {"ploadw",    two(0xf000, 0x2008),    two(0xffc0, 0xfff8),    "D3&s" },
  1640. + {"ploadw",    two(0xf000, 0x2000),    two(0xffc0, 0xfffe),    "f3&s" },
  1641. + /* TC, CRP, DRP, SRP, CAL, VAL, SCC, AC */
  1642. + {"pmove",    two(0xf000, 0x4000),    two(0xffc0, 0xe3ff),    "*sP8" },
  1643. + {"pmove",    two(0xf000, 0x4200),    two(0xffc0, 0xe3ff),    "P8%s" },
  1644. + {"pmove",    two(0xf000, 0x4000),    two(0xffc0, 0xe3ff),    "|sW8" },
  1645. + {"pmove",    two(0xf000, 0x4200),    two(0xffc0, 0xe3ff),    "W8~s" },
  1646. + /* BADx, BACx */
  1647. + {"pmove",    two(0xf000, 0x6200),    two(0xffc0, 0xe3e3),    "*sX3" },
  1648. + {"pmove",    two(0xf000, 0x6000),    two(0xffc0, 0xe3e3),    "X3%s" },
  1649. + /* PSR, PCSR */
  1650. + /* {"pmove",    two(0xf000, 0x6100),    two(oxffc0, oxffff),    "*sZ8" }, */
  1651. + {"pmove",    two(0xf000, 0x6000),    two(0xffc0, 0xffff),    "*sY8" },
  1652. + {"pmove",    two(0xf000, 0x6200),    two(0xffc0, 0xffff),    "Y8%s" },
  1653. + {"pmove",    two(0xf000, 0x6600),    two(0xffc0, 0xffff),    "Z8%s" },
  1654. + {"prestore",    one(0xf140),        one(0xffc0),        "&s"},
  1655. + {"prestore",    one(0xf158),        one(0xfff8),        "+s"},
  1656. + {"psave",    one(0xf100),        one(0xffc0),        "&s"},
  1657. + {"psave",    one(0xf100),        one(0xffc0),        "+s"},
  1658. + {"psac",    two(0xf040, 0x0007),    two(0xffc0, 0xffff),    "@s"},
  1659. + {"psas",    two(0xf040, 0x0006),    two(0xffc0, 0xffff),    "@s"},
  1660. + {"psbc",    two(0xf040, 0x0001),    two(0xffc0, 0xffff),    "@s"},
  1661. + {"psbs",    two(0xf040, 0x0000),    two(0xffc0, 0xffff),    "@s"},
  1662. + {"pscc",    two(0xf040, 0x000f),    two(0xffc0, 0xffff),    "@s"},
  1663. + {"pscs",    two(0xf040, 0x000e),    two(0xffc0, 0xffff),    "@s"},
  1664. + {"psgc",    two(0xf040, 0x000d),    two(0xffc0, 0xffff),    "@s"},
  1665. + {"psgs",    two(0xf040, 0x000c),    two(0xffc0, 0xffff),    "@s"},
  1666. + {"psic",    two(0xf040, 0x000b),    two(0xffc0, 0xffff),    "@s"},
  1667. + {"psis",    two(0xf040, 0x000a),    two(0xffc0, 0xffff),    "@s"},
  1668. + {"pslc",    two(0xf040, 0x0003),    two(0xffc0, 0xffff),    "@s"},
  1669. + {"psls",    two(0xf040, 0x0002),    two(0xffc0, 0xffff),    "@s"},
  1670. + {"pssc",    two(0xf040, 0x0005),    two(0xffc0, 0xffff),    "@s"},
  1671. + {"psss",    two(0xf040, 0x0004),    two(0xffc0, 0xffff),    "@s"},
  1672. + {"pswc",    two(0xf040, 0x0009),    two(0xffc0, 0xffff),    "@s"},
  1673. + {"psws",    two(0xf040, 0x0008),    two(0xffc0, 0xffff),    "@s"},
  1674. + {"ptestr",    two(0xf000, 0x8210),    two(0xffc0, 0xe3f0),    "T3&sQ8" },
  1675. + {"ptestr",    two(0xf000, 0x8310),    two(0xffc0, 0xe310),    "T3&sQ8A9" },
  1676. + {"ptestr",    two(0xf000, 0x8208),    two(0xffc0, 0xe3f8),    "D3&sQ8" },
  1677. + {"ptestr",    two(0xf000, 0x8308),    two(0xffc0, 0xe318),    "D3&sQ8A9" },
  1678. + {"ptestr",    two(0xf000, 0x8200),    two(0xffc0, 0xe3fe),    "f3&sQ8" },
  1679. + {"ptestr",    two(0xf000, 0x8300),    two(0xffc0, 0xe31e),    "f3&sQ8A9" },
  1680. + {"ptestw",    two(0xf000, 0x8010),    two(0xffc0, 0xe3f0),    "T3&sQ8" },
  1681. + {"ptestw",    two(0xf000, 0x8110),    two(0xffc0, 0xe310),    "T3&sQ8A9" },
  1682. + {"ptestw",    two(0xf000, 0x8008),    two(0xffc0, 0xe3f8),    "D3&sQ8" },
  1683. + {"ptestw",    two(0xf000, 0x8108),    two(0xffc0, 0xe318),    "D3&sQ8A9" },
  1684. + {"ptestw",    two(0xf000, 0x8000),    two(0xffc0, 0xe3fe),    "f3&sQ8" },
  1685. + {"ptestw",    two(0xf000, 0x8100),    two(0xffc0, 0xe31e),    "f3&sQ8A9" },
  1686. + {"ptrapacw",    two(0xf07a, 0x0007),    two(0xffff, 0xffff),    "#w"},
  1687. + {"ptrapacl",    two(0xf07b, 0x0007),    two(0xffff, 0xffff),    "#l"},
  1688. + {"ptrapac",    two(0xf07c, 0x0007),    two(0xffff, 0xffff),    ""},
  1689. + {"ptrapasw",    two(0xf07a, 0x0006),    two(0xffff, 0xffff),    "#w"},
  1690. + {"ptrapasl",    two(0xf07b, 0x0006),    two(0xffff, 0xffff),    "#l"},
  1691. + {"ptrapas",    two(0xf07c, 0x0006),    two(0xffff, 0xffff),    ""},
  1692. + {"ptrapbcw",    two(0xf07a, 0x0001),    two(0xffff, 0xffff),    "#w"},
  1693. + {"ptrapbcl",    two(0xf07b, 0x0001),    two(0xffff, 0xffff),    "#l"},
  1694. + {"ptrapbc",    two(0xf07c, 0x0001),    two(0xffff, 0xffff),    ""},
  1695. + {"ptrapbsw",    two(0xf07a, 0x0000),    two(0xffff, 0xffff),    "#w"},
  1696. + {"ptrapbsl",    two(0xf07b, 0x0000),    two(0xffff, 0xffff),    "#l"},
  1697. + {"ptrapbs",    two(0xf07c, 0x0000),    two(0xffff, 0xffff),    ""},
  1698. + {"ptrapccw",    two(0xf07a, 0x000f),    two(0xffff, 0xffff),    "#w"},
  1699. + {"ptrapccl",    two(0xf07b, 0x000f),    two(0xffff, 0xffff),    "#l"},
  1700. + {"ptrapcc",    two(0xf07c, 0x000f),    two(0xffff, 0xffff),    ""},
  1701. + {"ptrapcsw",    two(0xf07a, 0x000e),    two(0xffff, 0xffff),    "#w"},
  1702. + {"ptrapcsl",    two(0xf07b, 0x000e),    two(0xffff, 0xffff),    "#l"},
  1703. + {"ptrapcs",    two(0xf07c, 0x000e),    two(0xffff, 0xffff),    ""},
  1704. + {"ptrapgcw",    two(0xf07a, 0x000d),    two(0xffff, 0xffff),    "#w"},
  1705. + {"ptrapgcl",    two(0xf07b, 0x000d),    two(0xffff, 0xffff),    "#l"},
  1706. + {"ptrapgc",    two(0xf07c, 0x000d),    two(0xffff, 0xffff),    ""},
  1707. + {"ptrapgsw",    two(0xf07a, 0x000c),    two(0xffff, 0xffff),    "#w"},
  1708. + {"ptrapgsl",    two(0xf07b, 0x000c),    two(0xffff, 0xffff),    "#l"},
  1709. + {"ptrapgs",    two(0xf07c, 0x000c),    two(0xffff, 0xffff),    ""},
  1710. + {"ptrapicw",    two(0xf07a, 0x000b),    two(0xffff, 0xffff),    "#w"},
  1711. + {"ptrapicl",    two(0xf07b, 0x000b),    two(0xffff, 0xffff),    "#l"},
  1712. + {"ptrapic",    two(0xf07c, 0x000b),    two(0xffff, 0xffff),    ""},
  1713. + {"ptrapisw",    two(0xf07a, 0x000a),    two(0xffff, 0xffff),    "#w"},
  1714. + {"ptrapisl",    two(0xf07b, 0x000a),    two(0xffff, 0xffff),    "#l"},
  1715. + {"ptrapis",    two(0xf07c, 0x000a),    two(0xffff, 0xffff),    ""},
  1716. + {"ptraplcw",    two(0xf07a, 0x0003),    two(0xffff, 0xffff),    "#w"},
  1717. + {"ptraplcl",    two(0xf07b, 0x0003),    two(0xffff, 0xffff),    "#l"},
  1718. + {"ptraplc",    two(0xf07c, 0x0003),    two(0xffff, 0xffff),    ""},
  1719. + {"ptraplsw",    two(0xf07a, 0x0002),    two(0xffff, 0xffff),    "#w"},
  1720. + {"ptraplsl",    two(0xf07b, 0x0002),    two(0xffff, 0xffff),    "#l"},
  1721. + {"ptrapls",    two(0xf07c, 0x0002),    two(0xffff, 0xffff),    ""},
  1722. + {"ptrapscw",    two(0xf07a, 0x0005),    two(0xffff, 0xffff),    "#w"},
  1723. + {"ptrapscl",    two(0xf07b, 0x0005),    two(0xffff, 0xffff),    "#l"},
  1724. + {"ptrapsc",    two(0xf07c, 0x0005),    two(0xffff, 0xffff),    ""},
  1725. + {"ptrapssw",    two(0xf07a, 0x0004),    two(0xffff, 0xffff),    "#w"},
  1726. + {"ptrapssl",    two(0xf07b, 0x0004),    two(0xffff, 0xffff),    "#l"},
  1727. + {"ptrapss",    two(0xf07c, 0x0004),    two(0xffff, 0xffff),    ""},
  1728. + {"ptrapwcw",    two(0xf07a, 0x0009),    two(0xffff, 0xffff),    "#w"},
  1729. + {"ptrapwcl",    two(0xf07b, 0x0009),    two(0xffff, 0xffff),    "#l"},
  1730. + {"ptrapwc",    two(0xf07c, 0x0009),    two(0xffff, 0xffff),    ""},
  1731. + {"ptrapwsw",    two(0xf07a, 0x0008),    two(0xffff, 0xffff),    "#w"},
  1732. + {"ptrapwsl",    two(0xf07b, 0x0008),    two(0xffff, 0xffff),    "#l"},
  1733. + {"ptrapws",    two(0xf07c, 0x0008),    two(0xffff, 0xffff),    ""},
  1734. + {"pvalid",    two(0xf000, 0x2800),    two(0xffc0, 0xffff),    "Vs&s"},
  1735. + {"pvalid",    two(0xf000, 0x2c00),    two(0xffc0, 0xfff8),    "A3&s" },
  1736. + #endif /* m68851 */
  1737. + };
  1738. + int numopcodes=sizeof(m68k_opcodes)/sizeof(m68k_opcodes[0]);
  1739. + struct m68k_opcode *endop = m68k_opcodes+sizeof(m68k_opcodes)/sizeof(m68k_opcodes[0]);
  1740. diff -rcP gas-1.38.1-fsf/m68k-opcode.h gas-1.38.1-amiga/m68k-opcode.h
  1741. *** gas-1.38.1-fsf/m68k-opcode.h    Wed Aug  1 18:49:19 1990
  1742. --- gas-1.38.1-amiga/m68k-opcode.h    Thu Sep  9 22:49:45 1993
  1743. ***************
  1744. *** 193,1680 ****
  1745.   #define one(x) ((x) << 16)
  1746.   #define two(x, y) (((x) << 16) + y)
  1747.   
  1748. ! /*
  1749. !     *** DANGER WILL ROBINSON ***
  1750.   
  1751. !    The assembler requires that all instances of the same mnemonic must be
  1752. !    consecutive.  If they aren't, the assembler will bomb at runtime
  1753. !  */
  1754. ! struct m68k_opcode m68k_opcodes[] =
  1755. ! {
  1756. ! {"abcd",    one(0140400),        one(0170770),        "DsDd"},
  1757. ! {"abcd",    one(0140410),        one(0170770),        "-s-d"},
  1758.   
  1759. !         /* Add instructions */
  1760. ! {"addal",    one(0150700),        one(0170700),        "*lAd"},
  1761. ! {"addaw",    one(0150300),        one(0170700),        "*wAd"},
  1762. ! {"addib",    one(0003000),        one(0177700),        "#b$b"},
  1763. ! {"addil",    one(0003200),        one(0177700),        "#l$l"},
  1764. ! {"addiw",    one(0003100),        one(0177700),        "#w$w"},
  1765. ! {"addqb",    one(0050000),        one(0170700),        "Qd$b"},
  1766. ! {"addql",    one(0050200),        one(0170700),        "Qd%l"},
  1767. ! {"addqw",    one(0050100),        one(0170700),        "Qd%w"},
  1768. ! {"addb",    one(0050000),        one(0170700),        "Qd$b"},    /* addq written as add */
  1769. ! {"addb",    one(0003000),        one(0177700),        "#b$b"},    /* addi written as add */
  1770. ! {"addb",    one(0150000),        one(0170700),        ";bDd"},    /* addb <ea>,    Dd */
  1771. ! {"addb",    one(0150400),        one(0170700),        "Dd~b"},    /* addb Dd,    <ea> */
  1772. ! {"addw",    one(0050100),        one(0170700),        "Qd%w"},    /* addq written as add */
  1773. ! {"addw",    one(0003100),        one(0177700),        "#w$w"},    /* addi written as add */
  1774. ! {"addw",    one(0150300),        one(0170700),        "*wAd"},    /* adda written as add */
  1775. ! {"addw",    one(0150100),        one(0170700),        "*wDd"},    /* addw <ea>,    Dd */
  1776. ! {"addw",    one(0150500),        one(0170700),        "Dd~w"},    /* addw Dd,    <ea> */
  1777. ! {"addl",    one(0050200),        one(0170700),        "Qd%l"},    /* addq written as add */
  1778. ! {"addl",    one(0003200),        one(0177700),        "#l$l"},    /* addi written as add */
  1779. ! {"addl",    one(0150700),        one(0170700),        "*lAd"},    /* adda written as add */
  1780. ! {"addl",    one(0150200),        one(0170700),        "*lDd"},    /* addl <ea>,    Dd */
  1781. ! {"addl",    one(0150600),        one(0170700),        "Dd~l"},    /* addl Dd,    <ea> */
  1782. ! {"addxb",    one(0150400),        one(0170770),        "DsDd"},
  1783. ! {"addxb",    one(0150410),        one(0170770),        "-s-d"},
  1784. ! {"addxl",    one(0150600),        one(0170770),        "DsDd"},
  1785. ! {"addxl",    one(0150610),        one(0170770),        "-s-d"},
  1786. ! {"addxw",    one(0150500),        one(0170770),        "DsDd"},
  1787. ! {"addxw",    one(0150510),        one(0170770),        "-s-d"},
  1788. ! {"andib",    one(0001000),        one(0177700),        "#b$b"},
  1789. ! {"andib",    one(0001074),        one(0177777),        "#bCb"},    /* andi to ccr */
  1790. ! {"andiw",    one(0001100),        one(0177700),        "#w$w"},
  1791. ! {"andiw",    one(0001174),        one(0177777),        "#wSw"},    /* andi to sr */
  1792. ! {"andil",    one(0001200),        one(0177700),        "#l$l"},
  1793. ! {"andb",    one(0001000),        one(0177700),        "#b$b"},    /* andi written as or */
  1794. ! {"andb",    one(0001074),        one(0177777),        "#bCb"},    /* andi to ccr */
  1795. ! {"andb",    one(0140000),        one(0170700),        ";bDd"},    /* memory to register */
  1796. ! {"andb",    one(0140400),        one(0170700),        "Dd~b"},    /* register to memory */
  1797. ! {"andw",    one(0001100),        one(0177700),        "#w$w"},    /* andi written as or */
  1798. ! {"andw",    one(0001174),        one(0177777),        "#wSw"},    /* andi to sr */
  1799. ! {"andw",    one(0140100),        one(0170700),        ";wDd"},    /* memory to register */
  1800. ! {"andw",    one(0140500),        one(0170700),        "Dd~w"},    /* register to memory */
  1801. ! {"andl",    one(0001200),        one(0177700),        "#l$l"},    /* andi written as or */
  1802. ! {"andl",    one(0140200),        one(0170700),        ";lDd"},    /* memory to register */
  1803. ! {"andl",    one(0140600),        one(0170700),        "Dd~l"},    /* register to memory */
  1804. ! {"aslb",    one(0160400),        one(0170770),        "QdDs"},
  1805. ! {"aslb",    one(0160440),        one(0170770),        "DdDs"},
  1806. ! {"asll",    one(0160600),        one(0170770),        "QdDs"},
  1807. ! {"asll",    one(0160640),        one(0170770),        "DdDs"},
  1808. ! {"aslw",    one(0160500),        one(0170770),        "QdDs"},
  1809. ! {"aslw",    one(0160540),        one(0170770),        "DdDs"},
  1810. ! {"aslw",    one(0160700),        one(0177700),        "~s"},    /* Shift memory */
  1811. ! {"asrb",    one(0160000),        one(0170770),        "QdDs"},
  1812. ! {"asrb",    one(0160040),        one(0170770),        "DdDs"},
  1813. ! {"asrl",    one(0160200),        one(0170770),        "QdDs"},
  1814. ! {"asrl",    one(0160240),        one(0170770),        "DdDs"},
  1815. ! {"asrw",    one(0160100),        one(0170770),        "QdDs"},
  1816. ! {"asrw",    one(0160140),        one(0170770),        "DdDs"},
  1817. ! {"asrw",    one(0160300),        one(0177700),        "~s"},    /* Shift memory */
  1818. ! {"bhi",        one(0061000),        one(0177400),        "Bg"},
  1819. ! {"bls",        one(0061400),        one(0177400),        "Bg"},
  1820. ! {"bcc",        one(0062000),        one(0177400),        "Bg"},
  1821. ! {"bcs",        one(0062400),        one(0177400),        "Bg"},
  1822. ! {"bne",        one(0063000),        one(0177400),        "Bg"},
  1823. ! {"beq",        one(0063400),        one(0177400),        "Bg"},
  1824. ! {"bvc",        one(0064000),        one(0177400),        "Bg"},
  1825. ! {"bvs",        one(0064400),        one(0177400),        "Bg"},
  1826. ! {"bpl",        one(0065000),        one(0177400),        "Bg"},
  1827. ! {"bmi",        one(0065400),        one(0177400),        "Bg"},
  1828. ! {"bge",        one(0066000),        one(0177400),        "Bg"},
  1829. ! {"blt",        one(0066400),        one(0177400),        "Bg"},
  1830. ! {"bgt",        one(0067000),        one(0177400),        "Bg"},
  1831. ! {"ble",        one(0067400),        one(0177400),        "Bg"},
  1832. ! {"bchg",    one(0000500),        one(0170700),        "Dd$s"},
  1833. ! {"bchg",    one(0004100),        one(0177700),        "#b$s"},
  1834. ! {"bclr",    one(0000600),        one(0170700),        "Dd$s"},
  1835. ! {"bclr",    one(0004200),        one(0177700),        "#b$s"},
  1836. ! {"bfchg",    two(0165300, 0),    two(0177700, 0170000),    "?sO2O3"},
  1837. ! {"bfclr",    two(0166300, 0),    two(0177700, 0170000),    "?sO2O3"},
  1838. ! {"bfexts",    two(0165700, 0),    two(0177700, 0100000),    "/sO2O3D1"},
  1839. ! {"bfextu",    two(0164700, 0),    two(0177700, 0100000),    "/sO2O3D1"},
  1840. ! {"bfffo",    two(0166700, 0),    two(0177700, 0100000),    "/sO2O3D1"},
  1841. ! {"bfins",    two(0167700, 0),    two(0177700, 0100000),    "D1?sO2O3"},
  1842. ! {"bfset",    two(0167300, 0),    two(0177700, 0170000),    "?sO2O3"},
  1843. ! {"bftst",    two(0164300, 0),    two(0177700, 0170000),    "/sO2O3"},
  1844. ! {"bset",    one(0000700),        one(0170700),        "Dd$s"},
  1845. ! {"bset",    one(0004300),        one(0177700),        "#b$s"},
  1846. ! {"btst",    one(0000400),        one(0170700),        "Dd@s"},
  1847. ! {"btst",    one(0004000),        one(0177700),        "#b@s"},
  1848. ! {"bkpt",    one(0044110),        one(0177770),        "Qs"},
  1849. ! {"bra",        one(0060000),        one(0177400),        "Bg"},
  1850. ! {"bras",    one(0060000),        one(0177400),        "Bw"},
  1851. ! {"bsr",        one(0060400),        one(0177400),        "Bg"},
  1852. ! {"bsrs",    one(0060400),        one(0177400),        "Bw"},
  1853. ! {"callm",    one(0003300),        one(0177700),        "#b!s"},
  1854. ! {"cas2l",    two(0007374, 0),    two(0177777, 0107070),    "D3D6D2D5R1R4"}, /* JF FOO this is really a 3 word ins */
  1855. ! {"cas2w",    two(0006374, 0),    two(0177777, 0107070),    "D3D6D2D5R1R4"}, /* JF ditto */
  1856. ! {"casb",    two(0005300, 0),    two(0177700, 0177070),    "D3D2~s"},
  1857. ! {"casl",    two(0007300, 0),    two(0177700, 0177070),    "D3D2~s"},
  1858. ! {"casw",    two(0006300, 0),    two(0177700, 0177070),    "D3D2~s"},
  1859. ! /*  {"chk",    one(0040600),        one(0170700),        ";wDd"}, JF FOO this looks wrong */
  1860. ! {"chk2b",    two(0000300, 0004000),    two(0177700, 07777),    "!sR1"},
  1861. ! {"chk2l",    two(0002300, 0004000),    two(0177700, 07777),    "!sR1"},
  1862. ! {"chk2w",    two(0001300, 0004000),    two(0177700, 07777),    "!sR1"},
  1863. ! {"chkl",    one(0040400),        one(0170700),        ";lDd"},
  1864. ! {"chkw",    one(0040600),        one(0170700),        ";wDd"},
  1865. ! {"clrb",    one(0041000),        one(0177700),        "$s"},
  1866. ! {"clrl",    one(0041200),        one(0177700),        "$s"},
  1867. ! {"clrw",    one(0041100),        one(0177700),        "$s"},
  1868. ! {"cmp2b",    two(0000300, 0),    two(0177700, 07777),    "!sR1"},
  1869. ! {"cmp2l",    two(0002300, 0),    two(0177700, 07777),    "!sR1"},
  1870. ! {"cmp2w",    two(0001300, 0),    two(0177700, 07777),    "!sR1"},
  1871. ! {"cmpal",    one(0130700),        one(0170700),        "*lAd"},
  1872. ! {"cmpaw",    one(0130300),        one(0170700),        "*wAd"},
  1873. ! {"cmpib",    one(0006000),        one(0177700),        "#b;b"},
  1874. ! {"cmpil",    one(0006200),        one(0177700),        "#l;l"},
  1875. ! {"cmpiw",    one(0006100),        one(0177700),        "#w;w"},
  1876. ! {"cmpb",    one(0006000),        one(0177700),        "#b;b"},    /* cmpi written as cmp */
  1877. ! {"cmpb",    one(0130000),        one(0170700),        ";bDd"},
  1878. ! {"cmpw",    one(0006100),        one(0177700),        "#w;w"},
  1879. ! {"cmpw",    one(0130100),        one(0170700),        "*wDd"},
  1880. ! {"cmpw",    one(0130300),        one(0170700),        "*wAd"},    /* cmpa written as cmp */
  1881. ! {"cmpl",    one(0006200),        one(0177700),        "#l;l"},
  1882. ! {"cmpl",    one(0130200),        one(0170700),        "*lDd"},
  1883. ! {"cmpl",    one(0130700),        one(0170700),        "*lAd"},
  1884. ! {"cmpmb",    one(0130410),        one(0170770),        "+s+d"},
  1885. ! {"cmpml",    one(0130610),        one(0170770),        "+s+d"},
  1886. ! {"cmpmw",    one(0130510),        one(0170770),        "+s+d"},
  1887. ! {"dbcc",    one(0052310),        one(0177770),        "DsBw"},
  1888. ! {"dbcs",    one(0052710),        one(0177770),        "DsBw"},
  1889. ! {"dbeq",    one(0053710),        one(0177770),        "DsBw"},
  1890. ! {"dbf",        one(0050710),        one(0177770),        "DsBw"},
  1891. ! {"dbge",    one(0056310),        one(0177770),        "DsBw"},
  1892. ! {"dbgt",    one(0057310),        one(0177770),        "DsBw"},
  1893. ! {"dbhi",    one(0051310),        one(0177770),        "DsBw"},
  1894. ! {"dble",    one(0057710),        one(0177770),        "DsBw"},
  1895. ! {"dbls",    one(0051710),        one(0177770),        "DsBw"},
  1896. ! {"dblt",    one(0056710),        one(0177770),        "DsBw"},
  1897. ! {"dbmi",    one(0055710),        one(0177770),        "DsBw"},
  1898. ! {"dbne",    one(0053310),        one(0177770),        "DsBw"},
  1899. ! {"dbpl",    one(0055310),        one(0177770),        "DsBw"},
  1900. ! {"dbra",    one(0050710),        one(0177770),        "DsBw"},
  1901. ! {"dbt",        one(0050310),        one(0177770),        "DsBw"},
  1902. ! {"dbvc",    one(0054310),        one(0177770),        "DsBw"},
  1903. ! {"dbvs",    one(0054710),        one(0177770),        "DsBw"},
  1904. ! {"divsl",    two(0046100, 0006000),    two(0177700, 0107770),    ";lD3D1"},
  1905. ! {"divsl",    two(0046100, 0004000),    two(0177700, 0107770),    ";lDD"},
  1906. ! {"divsll",    two(0046100, 0004000),    two(0177700, 0107770),    ";lD3D1"},
  1907. ! {"divsw",    one(0100700),        one(0170700),        ";wDd"},
  1908. ! {"divs",    one(0100700),        one(0170700),        ";wDd"},
  1909. ! {"divul",    two(0046100, 0002000),    two(0177700, 0107770),    ";lD3D1"},
  1910. ! {"divul",    two(0046100, 0000000),    two(0177700, 0107770),    ";lDD"},
  1911. ! {"divull",    two(0046100, 0000000),    two(0177700, 0107770),    ";lD3D1"},
  1912. ! {"divuw",    one(0100300),        one(0170700),        ";wDd"},
  1913. ! {"divu",    one(0100300),        one(0170700),        ";wDd"},
  1914. ! {"eorb",    one(0005000),        one(0177700),        "#b$s"},    /* eori written as or */
  1915. ! {"eorb",    one(0005074),        one(0177777),        "#bCs"},    /* eori to ccr */
  1916. ! {"eorb",    one(0130400),        one(0170700),        "Dd$s"},    /* register to memory */
  1917. ! {"eorib",    one(0005000),        one(0177700),        "#b$s"},
  1918. ! {"eorib",    one(0005074),        one(0177777),        "#bCs"},    /* eori to ccr */
  1919. ! {"eoril",    one(0005200),        one(0177700),        "#l$s"},
  1920. ! {"eoriw",    one(0005100),        one(0177700),        "#w$s"},
  1921. ! {"eoriw",    one(0005174),        one(0177777),        "#wSs"},    /* eori to sr */
  1922. ! {"eorl",    one(0005200),        one(0177700),        "#l$s"},
  1923. ! {"eorl",    one(0130600),        one(0170700),        "Dd$s"},
  1924. ! {"eorw",    one(0005100),        one(0177700),        "#w$s"},
  1925. ! {"eorw",    one(0005174),        one(0177777),        "#wSs"},    /* eori to sr */
  1926. ! {"eorw",    one(0130500),        one(0170700),        "Dd$s"},
  1927. ! {"exg",        one(0140500),        one(0170770),        "DdDs"},
  1928. ! {"exg",        one(0140510),        one(0170770),        "AdAs"},
  1929. ! {"exg",        one(0140610),        one(0170770),        "DdAs"},
  1930. ! {"exg",        one(0140610),        one(0170770),        "AsDd"},
  1931. ! {"extw",    one(0044200),        one(0177770),        "Ds"},
  1932. ! {"extl",    one(0044300),        one(0177770),        "Ds"},
  1933. ! {"extbl",    one(0044700),        one(0177770),        "Ds"},
  1934. ! {"extb.l",    one(0044700),        one(0177770),        "Ds"},    /* Not sure we should support this one*/
  1935. ! {"illegal",    one(0045374),        one(0177777),        ""},
  1936. ! {"jmp",        one(0047300),        one(0177700),        "!s"},
  1937. ! {"jsr",        one(0047200),        one(0177700),        "!s"},
  1938. ! {"lea",        one(0040700),        one(0170700),        "!sAd"},
  1939. ! {"linkw",    one(0047120),        one(0177770),        "As#w"},
  1940. ! {"linkl",    one(0044010),        one(0177770),        "As#l"},
  1941. ! {"link",    one(0047120),        one(0177770),        "As#w"},
  1942. ! {"link",    one(0044010),        one(0177770),        "As#l"},
  1943. ! {"lslb",    one(0160410),        one(0170770),        "QdDs"},    /* lsrb #Q,    Ds */
  1944. ! {"lslb",    one(0160450),        one(0170770),        "DdDs"},    /* lsrb Dd,    Ds */
  1945. ! {"lslw",    one(0160510),        one(0170770),        "QdDs"},    /* lsrb #Q,    Ds */
  1946. ! {"lslw",    one(0160550),        one(0170770),        "DdDs"},    /* lsrb Dd,    Ds */
  1947. ! {"lslw",    one(0161700),        one(0177700),        "~s"},    /* Shift memory */
  1948. ! {"lsll",    one(0160610),        one(0170770),        "QdDs"},    /* lsrb #Q,    Ds */
  1949. ! {"lsll",    one(0160650),        one(0170770),        "DdDs"},    /* lsrb Dd,    Ds */
  1950. ! {"lsrb",    one(0160010),        one(0170770),        "QdDs"} /* lsrb #Q,    Ds */,
  1951. ! {"lsrb",    one(0160050),        one(0170770),        "DdDs"},    /* lsrb Dd,    Ds */
  1952. ! {"lsrl",    one(0160210),        one(0170770),        "QdDs"},    /* lsrb #Q,    Ds */
  1953. ! {"lsrl",    one(0160250),        one(0170770),        "DdDs"},    /* lsrb #Q,    Ds */
  1954. ! {"lsrw",    one(0160110),        one(0170770),        "QdDs"},    /* lsrb #Q,    Ds */
  1955. ! {"lsrw",    one(0160150),        one(0170770),        "DdDs"},    /* lsrb #Q,    Ds */
  1956. ! {"lsrw",    one(0161300),        one(0177700),        "~s"},    /* Shift memory */
  1957. ! {"moveal",    one(0020100),        one(0170700),        "*lAd"},
  1958. ! {"moveaw",    one(0030100),        one(0170700),        "*wAd"},
  1959. ! {"moveb",    one(0010000),        one(0170000),        ";b$d"},    /* move */
  1960. ! {"movel",    one(0070000),        one(0170400),        "MsDd"},    /* moveq written as move */
  1961. ! {"movel",    one(0020000),        one(0170000),        "*l$d"},
  1962. ! {"movel",    one(0020100),        one(0170700),        "*lAd"},
  1963. ! {"movel",    one(0047140),        one(0177770),        "AsUd"},    /* move to USP */
  1964. ! {"movel",    one(0047150),        one(0177770),        "UdAs"},    /* move from USP */
  1965. ! {"movec",    one(0047173),        one(0177777),        "R1Jj"},
  1966. ! {"movec",    one(0047173),        one(0177777),        "R1#j"},
  1967. ! {"movec",    one(0047172),        one(0177777),        "JjR1"},
  1968. ! {"movec",    one(0047172),        one(0177777),        "#jR1"},
  1969. ! /* JF added these next four for the assembler */
  1970. ! {"moveml",    one(0044300),        one(0177700),        "Lw&s"},    /* movem reg to mem. */
  1971. ! {"moveml",    one(0044340),        one(0177770),        "lw-s"},    /* movem reg to autodecrement. */
  1972. ! {"moveml",    one(0046300),        one(0177700),        "!sLw"},    /* movem mem to reg. */
  1973. ! {"moveml",    one(0046330),        one(0177770),        "+sLw"},    /* movem autoinc to reg. */
  1974. ! {"moveml",    one(0044300),        one(0177700),        "#w&s"},    /* movem reg to mem. */
  1975. ! {"moveml",    one(0044340),        one(0177770),        "#w-s"},    /* movem reg to autodecrement. */
  1976. ! {"moveml",    one(0046300),        one(0177700),        "!s#w"},    /* movem mem to reg. */
  1977. ! {"moveml",    one(0046330),        one(0177770),        "+s#w"},    /* movem autoinc to reg. */
  1978. ! /* JF added these next four for the assembler */
  1979. ! {"movemw",    one(0044200),        one(0177700),        "Lw&s"},    /* movem reg to mem. */
  1980. ! {"movemw",    one(0044240),        one(0177770),        "lw-s"},    /* movem reg to autodecrement. */
  1981. ! {"movemw",    one(0046200),        one(0177700),        "!sLw"},    /* movem mem to reg. */
  1982. ! {"movemw",    one(0046230),        one(0177770),        "+sLw"},    /* movem autoinc to reg. */
  1983. ! {"movemw",    one(0044200),        one(0177700),        "#w&s"},    /* movem reg to mem. */
  1984. ! {"movemw",    one(0044240),        one(0177770),        "#w-s"},    /* movem reg to autodecrement. */
  1985. ! {"movemw",    one(0046200),        one(0177700),        "!s#w"},    /* movem mem to reg. */
  1986. ! {"movemw",    one(0046230),        one(0177770),        "+s#w"},    /* movem autoinc to reg. */
  1987. ! {"movepl",    one(0000510),        one(0170770),        "dsDd"},    /* memory to register */
  1988. ! {"movepl",    one(0000710),        one(0170770),        "Ddds"},    /* register to memory */
  1989. ! {"movepw",    one(0000410),        one(0170770),        "dsDd"},    /* memory to register */
  1990. ! {"movepw",    one(0000610),        one(0170770),        "Ddds"},    /* register to memory */
  1991. ! {"moveq",    one(0070000),        one(0170400),        "MsDd"},
  1992. ! {"movew",    one(0030000),        one(0170000),        "*w$d"},
  1993. ! {"movew",    one(0030100),        one(0170700),        "*wAd"},    /* movea,    written as move */
  1994. ! {"movew",    one(0040300),        one(0177700),        "Ss$s"},    /* Move from sr */
  1995. ! {"movew",    one(0041300),        one(0177700),        "Cs$s"},    /* Move from ccr */
  1996. ! {"movew",    one(0042300),        one(0177700),        ";wCd"},    /* move to ccr */
  1997. ! {"movew",    one(0043300),        one(0177700),        ";wSd"},    /* move to sr */
  1998. ! {"movesb",    two(0007000, 0),    two(0177700, 07777),    "~sR1"},     /* moves from memory */
  1999. ! {"movesb",    two(0007000, 04000),    two(0177700, 07777),    "R1~s"},     /* moves to memory */
  2000. ! {"movesl",    two(0007200, 0),    two(0177700, 07777),    "~sR1"},     /* moves from memory */
  2001. ! {"movesl",    two(0007200, 04000),    two(0177700, 07777),    "R1~s"},     /* moves to memory */
  2002. ! {"movesw",    two(0007100, 0),    two(0177700, 07777),    "~sR1"},     /* moves from memory */
  2003. ! {"movesw",    two(0007100, 04000),    two(0177700, 07777),    "R1~s"},     /* moves to memory */
  2004. ! {"mulsl",    two(0046000, 004000),    two(0177700, 0107770),    ";lD1"},
  2005. ! {"mulsl",    two(0046000, 006000),    two(0177700, 0107770),    ";lD3D1"},
  2006. ! {"mulsw",    one(0140700),        one(0170700),        ";wDd"},
  2007. ! {"muls",    one(0140700),        one(0170700),        ";wDd"},
  2008. ! {"mulul",    two(0046000, 000000),    two(0177700, 0107770),    ";lD1"},
  2009. ! {"mulul",    two(0046000, 002000),    two(0177700, 0107770),    ";lD3D1"},
  2010. ! {"muluw",    one(0140300),        one(0170700),        ";wDd"},
  2011. ! {"mulu",    one(0140300),        one(0170700),        ";wDd"},
  2012. ! {"nbcd",    one(0044000),        one(0177700),        "$s"},
  2013. ! {"negb",    one(0042000),        one(0177700),        "$s"},
  2014. ! {"negl",    one(0042200),        one(0177700),        "$s"},
  2015. ! {"negw",    one(0042100),        one(0177700),        "$s"},
  2016. ! {"negxb",    one(0040000),        one(0177700),        "$s"},
  2017. ! {"negxl",    one(0040200),        one(0177700),        "$s"},
  2018. ! {"negxw",    one(0040100),        one(0177700),        "$s"},
  2019. ! {"nop",        one(0047161),        one(0177777),        ""},
  2020. ! {"notb",    one(0043000),        one(0177700),        "$s"},
  2021. ! {"notl",    one(0043200),        one(0177700),        "$s"},
  2022. ! {"notw",    one(0043100),        one(0177700),        "$s"},
  2023. ! {"orb",        one(0000000),        one(0177700),        "#b$s"},    /* ori written as or */
  2024. ! {"orb",        one(0000074),        one(0177777),        "#bCs"},    /* ori to ccr */
  2025. ! {"orb",        one(0100000),        one(0170700),        ";bDd"},    /* memory to register */
  2026. ! {"orb",        one(0100400),        one(0170700),        "Dd~s"},    /* register to memory */
  2027. ! {"orib",    one(0000000),        one(0177700),        "#b$s"},
  2028. ! {"orib",    one(0000074),        one(0177777),        "#bCs"},    /* ori to ccr */
  2029. ! {"oril",    one(0000200),        one(0177700),        "#l$s"},
  2030. ! {"oriw",    one(0000100),        one(0177700),        "#w$s"},
  2031. ! {"oriw",    one(0000174),        one(0177777),        "#wSs"},    /* ori to sr */
  2032. ! {"orl",        one(0000200),        one(0177700),        "#l$s"},
  2033. ! {"orl",        one(0100200),        one(0170700),        ";lDd"},    /* memory to register */
  2034. ! {"orl",        one(0100600),        one(0170700),        "Dd~s"},    /* register to memory */
  2035. ! {"orw",        one(0000100),        one(0177700),        "#w$s"},
  2036. ! {"orw",        one(0000174),        one(0177777),        "#wSs"},    /* ori to sr */
  2037. ! {"orw",        one(0100100),        one(0170700),        ";wDd"},    /* memory to register */
  2038. ! {"orw",        one(0100500),        one(0170700),        "Dd~s"},    /* register to memory */
  2039. ! {"pack",    one(0100500),        one(0170770),        "DsDd#w"},    /* pack Ds,    Dd,    #w */
  2040. ! {"pack",    one(0100510),        one(0170770),        "-s-d#w"},    /* pack -(As),    -(Ad),    #w */
  2041. ! {"pea",        one(0044100),        one(0177700),        "!s"},
  2042. ! {"reset",    one(0047160),        one(0177777),        ""},
  2043. ! {"rolb",    one(0160430),        one(0170770),        "QdDs"},    /* rorb #Q,    Ds */
  2044. ! {"rolb",    one(0160470),        one(0170770),        "DdDs"},    /* rorb Dd,    Ds */
  2045. ! {"roll",    one(0160630),        one(0170770),        "QdDs"},    /* rorb #Q,    Ds */
  2046. ! {"roll",    one(0160670),        one(0170770),        "DdDs"},    /* rorb Dd,    Ds */
  2047. ! {"rolw",    one(0160530),        one(0170770),        "QdDs"},    /* rorb #Q,    Ds */
  2048. ! {"rolw",    one(0160570),        one(0170770),        "DdDs"},    /* rorb Dd,    Ds */
  2049. ! {"rolw",    one(0163700),        one(0177700),        "~s"},    /* Rotate memory */
  2050. ! {"rorb",    one(0160030),        one(0170770),        "QdDs"},    /* rorb #Q,    Ds */
  2051. ! {"rorb",    one(0160070),        one(0170770),        "DdDs"},    /* rorb Dd,    Ds */
  2052. ! {"rorl",    one(0160230),        one(0170770),        "QdDs"},    /* rorb #Q,    Ds */
  2053. ! {"rorl",    one(0160270),        one(0170770),        "DdDs"},    /* rorb Dd,    Ds */
  2054. ! {"rorw",    one(0160130),        one(0170770),        "QdDs"},    /* rorb #Q,    Ds */
  2055. ! {"rorw",    one(0160170),        one(0170770),        "DdDs"},    /* rorb Dd,    Ds */
  2056. ! {"rorw",    one(0163300),        one(0177700),        "~s"},    /* Rotate memory */
  2057. ! {"roxlb",    one(0160420),        one(0170770),        "QdDs"},    /* roxrb #Q,    Ds */
  2058. ! {"roxlb",    one(0160460),        one(0170770),        "DdDs"},    /* roxrb Dd,    Ds */
  2059. ! {"roxll",    one(0160620),        one(0170770),        "QdDs"},    /* roxrb #Q,    Ds */
  2060. ! {"roxll",    one(0160660),        one(0170770),        "DdDs"},    /* roxrb Dd,    Ds */
  2061. ! {"roxlw",    one(0160520),        one(0170770),        "QdDs"},    /* roxrb #Q,    Ds */
  2062. ! {"roxlw",    one(0160560),        one(0170770),        "DdDs"},    /* roxrb Dd,    Ds */
  2063. ! {"roxlw",    one(0162700),        one(0177700),        "~s"},    /* Rotate memory */
  2064. ! {"roxrb",    one(0160020),        one(0170770),        "QdDs"},    /* roxrb #Q,    Ds */
  2065. ! {"roxrb",    one(0160060),        one(0170770),        "DdDs"},    /* roxrb Dd,    Ds */
  2066. ! {"roxrl",    one(0160220),        one(0170770),        "QdDs"},    /* roxrb #Q,    Ds */
  2067. ! {"roxrl",    one(0160260),        one(0170770),        "DdDs"},    /* roxrb Dd,    Ds */
  2068. ! {"roxrw",    one(0160120),        one(0170770),        "QdDs"},    /* roxrb #Q,    Ds */
  2069. ! {"roxrw",    one(0160160),        one(0170770),        "DdDs"},    /* roxrb Dd,    Ds */
  2070. ! {"roxrw",    one(0162300),        one(0177700),        "~s"},    /* Rotate memory */
  2071. ! {"rtd",        one(0047164),        one(0177777),        "#w"},
  2072. ! {"rte",        one(0047163),        one(0177777),        ""},
  2073. ! {"rtm",        one(0003300),        one(0177760),        "Rs"},
  2074. ! {"rtr",        one(0047167),        one(0177777),        ""},
  2075. ! {"rts",        one(0047165),        one(0177777),        ""},
  2076. ! {"scc",        one(0052300),        one(0177700),        "$s"},
  2077. ! {"scs",        one(0052700),        one(0177700),        "$s"},
  2078. ! {"seq",        one(0053700),        one(0177700),        "$s"},
  2079. ! {"sf",        one(0050700),        one(0177700),        "$s"},
  2080. ! {"sge",        one(0056300),        one(0177700),        "$s"},
  2081. ! {"sgt",        one(0057300),        one(0177700),        "$s"},
  2082. ! {"shi",        one(0051300),        one(0177700),        "$s"},
  2083. ! {"sle",        one(0057700),        one(0177700),        "$s"},
  2084. ! {"sls",        one(0051700),        one(0177700),        "$s"},
  2085. ! {"slt",        one(0056700),        one(0177700),        "$s"},
  2086. ! {"smi",        one(0055700),        one(0177700),        "$s"},
  2087. ! {"sne",        one(0053300),        one(0177700),        "$s"},
  2088. ! {"spl",        one(0055300),        one(0177700),        "$s"},
  2089. ! {"st",        one(0050300),        one(0177700),        "$s"},
  2090. ! {"svc",        one(0054300),        one(0177700),        "$s"},
  2091. ! {"svs",        one(0054700),        one(0177700),        "$s"},
  2092. ! {"sbcd",    one(0100400),        one(0170770),        "DsDd"},
  2093. ! {"sbcd",    one(0100410),        one(0170770),        "-s-d"},
  2094. ! {"stop",    one(0047162),        one(0177777),        "#w"},
  2095. ! {"subal",    one(0110700),        one(0170700),        "*lAd"},
  2096. ! {"subaw",    one(0110300),        one(0170700),        "*wAd"},
  2097. ! {"subb",    one(0050400),        one(0170700),        "Qd%s"},    /* subq written as sub */
  2098. ! {"subb",    one(0002000),        one(0177700),        "#b$s"},    /* subi written as sub */
  2099. ! {"subb",    one(0110000),        one(0170700),        ";bDd"},    /* subb ? ?,    Dd */
  2100. ! {"subb",    one(0110400),        one(0170700),        "Dd~s"},    /* subb Dd,    ? ? */
  2101. ! {"subib",    one(0002000),        one(0177700),        "#b$s"},
  2102. ! {"subil",    one(0002200),        one(0177700),        "#l$s"},
  2103. ! {"subiw",    one(0002100),        one(0177700),        "#w$s"},
  2104. ! {"subl",    one(0050600),        one(0170700),        "Qd%s"},
  2105. ! {"subl",    one(0002200),        one(0177700),        "#l$s"},
  2106. ! {"subl",    one(0110700),        one(0170700),        "*lAd"},
  2107. ! {"subl",    one(0110200),        one(0170700),        "*lDd"},
  2108. ! {"subl",    one(0110600),        one(0170700),        "Dd~s"},
  2109. ! {"subqb",    one(0050400),        one(0170700),        "Qd%s"},
  2110. ! {"subql",    one(0050600),        one(0170700),        "Qd%s"},
  2111. ! {"subqw",    one(0050500),        one(0170700),        "Qd%s"},
  2112. ! {"subw",    one(0050500),        one(0170700),        "Qd%s"},
  2113. ! {"subw",    one(0002100),        one(0177700),        "#w$s"},
  2114. ! {"subw",    one(0110100),        one(0170700),        "*wDd"},
  2115. ! {"subw",    one(0110300),        one(0170700),        "*wAd"},    /* suba written as sub */
  2116. ! {"subw",    one(0110500),        one(0170700),        "Dd~s"},
  2117. ! {"subxb",    one(0110400),        one(0170770),        "DsDd"},    /* subxb Ds,    Dd */
  2118. ! {"subxb",    one(0110410),        one(0170770),        "-s-d"},    /* subxb -(As),    -(Ad) */
  2119. ! {"subxl",    one(0110600),        one(0170770),        "DsDd"},
  2120. ! {"subxl",    one(0110610),        one(0170770),        "-s-d"},
  2121. ! {"subxw",    one(0110500),        one(0170770),        "DsDd"},
  2122. ! {"subxw",    one(0110510),        one(0170770),        "-s-d"},
  2123. ! {"swap",    one(0044100),        one(0177770),        "Ds"},
  2124. !     
  2125. ! {"tas",        one(0045300),        one(0177700),        "$s"},
  2126. ! {"trap",    one(0047100),        one(0177760),        "Ts"},
  2127. ! {"trapcc",    one(0052374),        one(0177777),        ""},
  2128. ! {"trapcs",    one(0052774),        one(0177777),        ""},
  2129. ! {"trapeq",    one(0053774),        one(0177777),        ""},
  2130. ! {"trapf",    one(0050774),        one(0177777),        ""},
  2131. ! {"trapge",    one(0056374),        one(0177777),        ""},
  2132. ! {"trapgt",    one(0057374),        one(0177777),        ""},
  2133. ! {"traphi",    one(0051374),        one(0177777),        ""},
  2134. ! {"traple",    one(0057774),        one(0177777),        ""},
  2135. ! {"trapls",    one(0051774),        one(0177777),        ""},
  2136. ! {"traplt",    one(0056774),        one(0177777),        ""},
  2137. ! {"trapmi",    one(0055774),        one(0177777),        ""},
  2138. ! {"trapne",    one(0053374),        one(0177777),        ""},
  2139. ! {"trappl",    one(0055374),        one(0177777),        ""},
  2140. ! {"trapt",    one(0050374),        one(0177777),        ""},
  2141. ! {"trapvc",    one(0054374),        one(0177777),        ""},
  2142. ! {"trapvs",    one(0054774),        one(0177777),        ""},
  2143. ! {"trapcc.w",    one(0052372),        one(0177777),        ""},
  2144. ! {"trapcs.w",    one(0052772),        one(0177777),        ""},
  2145. ! {"trapeq.w",    one(0053772),        one(0177777),        ""},
  2146. ! {"trapf.w",    one(0050772),        one(0177777),        ""},
  2147. ! {"trapge.w",    one(0056372),        one(0177777),        ""},
  2148. ! {"trapgt.w",    one(0057372),        one(0177777),        ""},
  2149. ! {"traphi.w",    one(0051372),        one(0177777),        ""},
  2150. ! {"traple.w",    one(0057772),        one(0177777),        ""},
  2151. ! {"trapls.w",    one(0051772),        one(0177777),        ""},
  2152. ! {"traplt.w",    one(0056772),        one(0177777),        ""},
  2153. ! {"trapmi.w",    one(0055772),        one(0177777),        ""},
  2154. ! {"trapne.w",    one(0053372),        one(0177777),        ""},
  2155. ! {"trappl.w",    one(0055372),        one(0177777),        ""},
  2156. ! {"trapt.w",    one(0050372),        one(0177777),        ""},
  2157. ! {"trapvc.w",    one(0054372),        one(0177777),        ""},
  2158. ! {"trapvs.w",    one(0054772),        one(0177777),        ""},
  2159. ! {"trapcc.l",    one(0052373),        one(0177777),        ""},
  2160. ! {"trapcs.l",    one(0052773),        one(0177777),        ""},
  2161. ! {"trapeq.l",    one(0053773),        one(0177777),        ""},
  2162. ! {"trapf.l",    one(0050773),        one(0177777),        ""},
  2163. ! {"trapge.l",    one(0056373),        one(0177777),        ""},
  2164. ! {"trapgt.l",    one(0057373),        one(0177777),        ""},
  2165. ! {"traphi.l",    one(0051373),        one(0177777),        ""},
  2166. ! {"traple.l",    one(0057773),        one(0177777),        ""},
  2167. ! {"trapls.l",    one(0051773),        one(0177777),        ""},
  2168. ! {"traplt.l",    one(0056773),        one(0177777),        ""},
  2169. ! {"trapmi.l",    one(0055773),        one(0177777),        ""},
  2170. ! {"trapne.l",    one(0053373),        one(0177777),        ""},
  2171. ! {"trappl.l",    one(0055373),        one(0177777),        ""},
  2172. ! {"trapt.l",    one(0050373),        one(0177777),        ""},
  2173. ! {"trapvc.l",    one(0054373),        one(0177777),        ""},
  2174. ! {"trapvs.l",    one(0054773),        one(0177777),        ""},
  2175. ! {"trapv",    one(0047166),        one(0177777),        ""},
  2176. ! {"tstb",    one(0045000),        one(0177700),        ";b"},
  2177. ! {"tstw",    one(0045100),        one(0177700),        "*w"},
  2178. ! {"tstl",    one(0045200),        one(0177700),        "*l"},
  2179. ! {"unlk",    one(0047130),        one(0177770),        "As"},
  2180. ! {"unpk",    one(0100600),        one(0170770),        "DsDd#w"},
  2181. ! {"unpk",    one(0100610),        one(0170770),        "-s-d#w"},
  2182. !     /* JF floating pt stuff moved down here */
  2183. ! {"fabsb",    two(0xF000, 0x5818),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  2184. ! {"fabsd",    two(0xF000, 0x5418),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  2185. ! {"fabsl",    two(0xF000, 0x4018),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  2186. ! {"fabsp",    two(0xF000, 0x4C18),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  2187. ! {"fabss",    two(0xF000, 0x4418),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  2188. ! {"fabsw",    two(0xF000, 0x5018),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  2189. ! {"fabsx",    two(0xF000, 0x0018),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  2190. ! {"fabsx",    two(0xF000, 0x4818),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  2191. ! {"fabsx",    two(0xF000, 0x0018),    two(0xF1C0, 0xE07F),    "IiFt"},
  2192. ! {"facosb",    two(0xF000, 0x581C),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  2193. ! {"facosd",    two(0xF000, 0x541C),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  2194. ! {"facosl",    two(0xF000, 0x401C),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  2195. ! {"facosp",    two(0xF000, 0x4C1C),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  2196. ! {"facoss",    two(0xF000, 0x441C),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  2197. ! {"facosw",    two(0xF000, 0x501C),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  2198. ! {"facosx",    two(0xF000, 0x001C),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  2199. ! {"facosx",    two(0xF000, 0x481C),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  2200. ! {"facosx",    two(0xF000, 0x001C),    two(0xF1C0, 0xE07F),    "IiFt"},
  2201. ! {"faddb",    two(0xF000, 0x5822),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  2202. ! {"faddd",    two(0xF000, 0x5422),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  2203. ! {"faddl",    two(0xF000, 0x4022),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  2204. ! {"faddp",    two(0xF000, 0x4C22),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  2205. ! {"fadds",    two(0xF000, 0x4422),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  2206. ! {"faddw",    two(0xF000, 0x5022),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  2207. ! {"faddx",    two(0xF000, 0x0022),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  2208. ! {"faddx",    two(0xF000, 0x4822),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  2209. ! /* {"faddx",    two(0xF000, 0x0022),    two(0xF1C0, 0xE07F),    "IiFt"}, JF removed */
  2210. ! {"fasinb",    two(0xF000, 0x580C),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  2211. ! {"fasind",    two(0xF000, 0x540C),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  2212. ! {"fasinl",    two(0xF000, 0x400C),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  2213. ! {"fasinp",    two(0xF000, 0x4C0C),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  2214. ! {"fasins",    two(0xF000, 0x440C),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  2215. ! {"fasinw",    two(0xF000, 0x500C),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  2216. ! {"fasinx",    two(0xF000, 0x000C),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  2217. ! {"fasinx",    two(0xF000, 0x480C),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  2218. ! {"fasinx",    two(0xF000, 0x000C),    two(0xF1C0, 0xE07F),    "IiFt"},
  2219. ! {"fatanb",    two(0xF000, 0x580A),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  2220. ! {"fatand",    two(0xF000, 0x540A),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  2221. ! {"fatanl",    two(0xF000, 0x400A),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  2222. ! {"fatanp",    two(0xF000, 0x4C0A),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  2223. ! {"fatans",    two(0xF000, 0x440A),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  2224. ! {"fatanw",    two(0xF000, 0x500A),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  2225. ! {"fatanx",    two(0xF000, 0x000A),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  2226. ! {"fatanx",    two(0xF000, 0x480A),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  2227. ! {"fatanx",    two(0xF000, 0x000A),    two(0xF1C0, 0xE07F),    "IiFt"},
  2228. ! {"fatanhb",    two(0xF000, 0x580D),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  2229. ! {"fatanhd",    two(0xF000, 0x540D),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  2230. ! {"fatanhl",    two(0xF000, 0x400D),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  2231. ! {"fatanhp",    two(0xF000, 0x4C0D),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  2232. ! {"fatanhs",    two(0xF000, 0x440D),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  2233. ! {"fatanhw",    two(0xF000, 0x500D),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  2234. ! {"fatanhx",    two(0xF000, 0x000D),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  2235. ! {"fatanhx",    two(0xF000, 0x480D),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  2236. ! {"fatanhx",    two(0xF000, 0x000D),    two(0xF1C0, 0xE07F),    "IiFt"},
  2237. ! {"fbeq",    one(0xF081),        one(0xF1BF),        "IdBc"},
  2238. ! {"fbf",        one(0xF080),        one(0xF1BF),        "IdBc"},
  2239. ! {"fbge",    one(0xF093),        one(0xF1BF),        "IdBc"},
  2240. ! {"fbgl",    one(0xF096),        one(0xF1BF),        "IdBc"},
  2241. ! {"fbgle",    one(0xF097),        one(0xF1BF),        "IdBc"},
  2242. ! {"fbgt",    one(0xF092),        one(0xF1BF),        "IdBc"},
  2243. ! {"fble",    one(0xF095),        one(0xF1BF),        "IdBc"},
  2244. ! {"fblt",    one(0xF094),        one(0xF1BF),        "IdBc"},
  2245. ! {"fbne",    one(0xF08E),        one(0xF1BF),        "IdBc"},
  2246. ! {"fbnge",    one(0xF09C),        one(0xF1BF),        "IdBc"},
  2247. ! {"fbngl",    one(0xF099),        one(0xF1BF),        "IdBc"},
  2248. ! {"fbngle",    one(0xF098),        one(0xF1BF),        "IdBc"},
  2249. ! {"fbngt",    one(0xF09D),        one(0xF1BF),        "IdBc"},
  2250. ! {"fbnle",    one(0xF09A),        one(0xF1BF),        "IdBc"},
  2251. ! {"fbnlt",    one(0xF09B),        one(0xF1BF),        "IdBc"},
  2252. ! {"fboge",    one(0xF083),        one(0xF1BF),        "IdBc"},
  2253. ! {"fbogl",    one(0xF086),        one(0xF1BF),        "IdBc"},
  2254. ! {"fbogt",    one(0xF082),        one(0xF1BF),        "IdBc"},
  2255. ! {"fbole",    one(0xF085),        one(0xF1BF),        "IdBc"},
  2256. ! {"fbolt",    one(0xF084),        one(0xF1BF),        "IdBc"},
  2257. ! {"fbor",    one(0xF087),        one(0xF1BF),        "IdBc"},
  2258. ! {"fbseq",    one(0xF091),        one(0xF1BF),        "IdBc"},
  2259. ! {"fbsf",    one(0xF090),        one(0xF1BF),        "IdBc"},
  2260. ! {"fbsne",    one(0xF09E),        one(0xF1BF),        "IdBc"},
  2261. ! {"fbst",    one(0xF09F),        one(0xF1BF),        "IdBc"},
  2262. ! {"fbt",        one(0xF08F),        one(0xF1BF),        "IdBc"},
  2263. ! {"fbueq",    one(0xF089),        one(0xF1BF),        "IdBc"},
  2264. ! {"fbuge",    one(0xF08B),        one(0xF1BF),        "IdBc"},
  2265. ! {"fbugt",    one(0xF08A),        one(0xF1BF),        "IdBc"},
  2266. ! {"fbule",    one(0xF08D),        one(0xF1BF),        "IdBc"},
  2267. ! {"fbult",    one(0xF08C),        one(0xF1BF),        "IdBc"},
  2268. ! {"fbun",    one(0xF088),        one(0xF1BF),        "IdBc"},
  2269. ! {"fcmpb",    two(0xF000, 0x5838),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  2270. ! {"fcmpd",    two(0xF000, 0x5438),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  2271. ! {"fcmpl",    two(0xF000, 0x4038),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  2272. ! {"fcmpp",    two(0xF000, 0x4C38),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  2273. ! {"fcmps",    two(0xF000, 0x4438),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  2274. ! {"fcmpw",    two(0xF000, 0x5038),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  2275. ! {"fcmpx",    two(0xF000, 0x0038),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  2276. ! {"fcmpx",    two(0xF000, 0x4838),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  2277. ! /* {"fcmpx",    two(0xF000, 0x0038),    two(0xF1C0, 0xE07F),    "IiFt"}, JF removed */
  2278. ! {"fcosb",    two(0xF000, 0x581D),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  2279. ! {"fcosd",    two(0xF000, 0x541D),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  2280. ! {"fcosl",    two(0xF000, 0x401D),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  2281. ! {"fcosp",    two(0xF000, 0x4C1D),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  2282. ! {"fcoss",    two(0xF000, 0x441D),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  2283. ! {"fcosw",    two(0xF000, 0x501D),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  2284. ! {"fcosx",    two(0xF000, 0x001D),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  2285. ! {"fcosx",    two(0xF000, 0x481D),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  2286. ! {"fcosx",    two(0xF000, 0x001D),    two(0xF1C0, 0xE07F),    "IiFt"},
  2287. ! {"fcoshb",    two(0xF000, 0x5819),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  2288. ! {"fcoshd",    two(0xF000, 0x5419),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  2289. ! {"fcoshl",    two(0xF000, 0x4019),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  2290. ! {"fcoshp",    two(0xF000, 0x4C19),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  2291. ! {"fcoshs",    two(0xF000, 0x4419),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  2292. ! {"fcoshw",    two(0xF000, 0x5019),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  2293. ! {"fcoshx",    two(0xF000, 0x0019),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  2294. ! {"fcoshx",    two(0xF000, 0x4819),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  2295. ! {"fcoshx",    two(0xF000, 0x0019),    two(0xF1C0, 0xE07F),    "IiFt"},
  2296. ! {"fdbeq",    two(0xF048, 0x0001),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  2297. ! {"fdbf",    two(0xF048, 0x0000),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  2298. ! {"fdbge",    two(0xF048, 0x0013),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  2299. ! {"fdbgl",    two(0xF048, 0x0016),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  2300. ! {"fdbgle",    two(0xF048, 0x0017),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  2301. ! {"fdbgt",    two(0xF048, 0x0012),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  2302. ! {"fdble",    two(0xF048, 0x0015),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  2303. ! {"fdblt",    two(0xF048, 0x0014),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  2304. ! {"fdbne",    two(0xF048, 0x000E),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  2305. ! {"fdbnge",    two(0xF048, 0x001C),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  2306. ! {"fdbngl",    two(0xF048, 0x0019),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  2307. ! {"fdbngle",    two(0xF048, 0x0018),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  2308. ! {"fdbngt",    two(0xF048, 0x001D),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  2309. ! {"fdbnle",    two(0xF048, 0x001A),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  2310. ! {"fdbnlt",    two(0xF048, 0x001B),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  2311. ! {"fdboge",    two(0xF048, 0x0003),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  2312. ! {"fdbogl",    two(0xF048, 0x0006),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  2313. ! {"fdbogt",    two(0xF048, 0x0002),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  2314. ! {"fdbole",    two(0xF048, 0x0005),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  2315. ! {"fdbolt",    two(0xF048, 0x0004),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  2316. ! {"fdbor",    two(0xF048, 0x0007),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  2317. ! {"fdbseq",    two(0xF048, 0x0011),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  2318. ! {"fdbsf",    two(0xF048, 0x0010),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  2319. ! {"fdbsne",    two(0xF048, 0x001E),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  2320. ! {"fdbst",    two(0xF048, 0x001F),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  2321. ! {"fdbt",    two(0xF048, 0x000F),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  2322. ! {"fdbueq",    two(0xF048, 0x0009),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  2323. ! {"fdbuge",    two(0xF048, 0x000B),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  2324. ! {"fdbugt",    two(0xF048, 0x000A),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  2325. ! {"fdbule",    two(0xF048, 0x000D),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  2326. ! {"fdbult",    two(0xF048, 0x000C),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  2327. ! {"fdbun",    two(0xF048, 0x0008),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  2328. ! {"fdivb",    two(0xF000, 0x5820),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  2329. ! {"fdivd",    two(0xF000, 0x5420),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  2330. ! {"fdivl",    two(0xF000, 0x4020),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  2331. ! {"fdivp",    two(0xF000, 0x4C20),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  2332. ! {"fdivs",    two(0xF000, 0x4420),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  2333. ! {"fdivw",    two(0xF000, 0x5020),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  2334. ! {"fdivx",    two(0xF000, 0x0020),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  2335. ! {"fdivx",    two(0xF000, 0x4820),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  2336. ! /* {"fdivx",    two(0xF000, 0x0020),    two(0xF1C0, 0xE07F),    "IiFt"}, JF */
  2337. ! {"fetoxb",    two(0xF000, 0x5810),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  2338. ! {"fetoxd",    two(0xF000, 0x5410),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  2339. ! {"fetoxl",    two(0xF000, 0x4010),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  2340. ! {"fetoxp",    two(0xF000, 0x4C10),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  2341. ! {"fetoxs",    two(0xF000, 0x4410),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  2342. ! {"fetoxw",    two(0xF000, 0x5010),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  2343. ! {"fetoxx",    two(0xF000, 0x0010),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  2344. ! {"fetoxx",    two(0xF000, 0x4810),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  2345. ! {"fetoxx",    two(0xF000, 0x0010),    two(0xF1C0, 0xE07F),    "IiFt"},
  2346. ! {"fetoxm1b",    two(0xF000, 0x5808),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  2347. ! {"fetoxm1d",    two(0xF000, 0x5408),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  2348. ! {"fetoxm1l",    two(0xF000, 0x4008),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  2349. ! {"fetoxm1p",    two(0xF000, 0x4C08),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  2350. ! {"fetoxm1s",    two(0xF000, 0x4408),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  2351. ! {"fetoxm1w",    two(0xF000, 0x5008),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  2352. ! {"fetoxm1x",    two(0xF000, 0x0008),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  2353. ! {"fetoxm1x",    two(0xF000, 0x4808),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  2354. ! {"fetoxm1x",    two(0xF000, 0x0008),    two(0xF1C0, 0xE07F),    "IiFt"},
  2355. ! {"fgetexpb",    two(0xF000, 0x581E),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  2356. ! {"fgetexpd",    two(0xF000, 0x541E),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  2357. ! {"fgetexpl",    two(0xF000, 0x401E),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  2358. ! {"fgetexpp",    two(0xF000, 0x4C1E),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  2359. ! {"fgetexps",    two(0xF000, 0x441E),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  2360. ! {"fgetexpw",    two(0xF000, 0x501E),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  2361. ! {"fgetexpx",    two(0xF000, 0x001E),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  2362. ! {"fgetexpx",    two(0xF000, 0x481E),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  2363. ! {"fgetexpx",    two(0xF000, 0x001E),    two(0xF1C0, 0xE07F),    "IiFt"},
  2364. ! {"fgetmanb",    two(0xF000, 0x581F),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  2365. ! {"fgetmand",    two(0xF000, 0x541F),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  2366. ! {"fgetmanl",    two(0xF000, 0x401F),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  2367. ! {"fgetmanp",    two(0xF000, 0x4C1F),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  2368. ! {"fgetmans",    two(0xF000, 0x441F),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  2369. ! {"fgetmanw",    two(0xF000, 0x501F),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  2370. ! {"fgetmanx",    two(0xF000, 0x001F),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  2371. ! {"fgetmanx",    two(0xF000, 0x481F),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  2372. ! {"fgetmanx",    two(0xF000, 0x001F),    two(0xF1C0, 0xE07F),    "IiFt"},
  2373. ! {"fintb",    two(0xF000, 0x5801),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  2374. ! {"fintd",    two(0xF000, 0x5401),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  2375. ! {"fintl",    two(0xF000, 0x4001),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  2376. ! {"fintp",    two(0xF000, 0x4C01),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  2377. ! {"fints",    two(0xF000, 0x4401),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  2378. ! {"fintw",    two(0xF000, 0x5001),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  2379. ! {"fintx",    two(0xF000, 0x0001),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  2380. ! {"fintx",    two(0xF000, 0x4801),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  2381. ! {"fintx",    two(0xF000, 0x0001),    two(0xF1C0, 0xE07F),    "IiFt"},
  2382. ! {"fintrzb",    two(0xF000, 0x5803),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  2383. ! {"fintrzd",    two(0xF000, 0x5403),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  2384. ! {"fintrzl",    two(0xF000, 0x4003),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  2385. ! {"fintrzp",    two(0xF000, 0x4C03),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  2386. ! {"fintrzs",    two(0xF000, 0x4403),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  2387. ! {"fintrzw",    two(0xF000, 0x5003),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  2388. ! {"fintrzx",    two(0xF000, 0x0003),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  2389. ! {"fintrzx",    two(0xF000, 0x4803),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  2390. ! {"fintrzx",    two(0xF000, 0x0003),    two(0xF1C0, 0xE07F),    "IiFt"},
  2391. ! {"flog10b",    two(0xF000, 0x5815),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  2392. ! {"flog10d",    two(0xF000, 0x5415),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  2393. ! {"flog10l",    two(0xF000, 0x4015),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  2394. ! {"flog10p",    two(0xF000, 0x4C15),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  2395. ! {"flog10s",    two(0xF000, 0x4415),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  2396. ! {"flog10w",    two(0xF000, 0x5015),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  2397. ! {"flog10x",    two(0xF000, 0x0015),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  2398. ! {"flog10x",    two(0xF000, 0x4815),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  2399. ! {"flog10x",    two(0xF000, 0x0015),    two(0xF1C0, 0xE07F),    "IiFt"},
  2400. ! {"flog2b",    two(0xF000, 0x5816),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  2401. ! {"flog2d",    two(0xF000, 0x5416),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  2402. ! {"flog2l",    two(0xF000, 0x4016),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  2403. ! {"flog2p",    two(0xF000, 0x4C16),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  2404. ! {"flog2s",    two(0xF000, 0x4416),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  2405. ! {"flog2w",    two(0xF000, 0x5016),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  2406. ! {"flog2x",    two(0xF000, 0x0016),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  2407. ! {"flog2x",    two(0xF000, 0x4816),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  2408. ! {"flog2x",    two(0xF000, 0x0016),    two(0xF1C0, 0xE07F),    "IiFt"},
  2409. ! {"flognb",    two(0xF000, 0x5814),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  2410. ! {"flognd",    two(0xF000, 0x5414),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  2411. ! {"flognl",    two(0xF000, 0x4014),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  2412. ! {"flognp",    two(0xF000, 0x4C14),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  2413. ! {"flogns",    two(0xF000, 0x4414),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  2414. ! {"flognw",    two(0xF000, 0x5014),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  2415. ! {"flognx",    two(0xF000, 0x0014),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  2416. ! {"flognx",    two(0xF000, 0x4814),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  2417. ! {"flognx",    two(0xF000, 0x0014),    two(0xF1C0, 0xE07F),    "IiFt"},
  2418. ! {"flognp1b",    two(0xF000, 0x5806),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  2419. ! {"flognp1d",    two(0xF000, 0x5406),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  2420. ! {"flognp1l",    two(0xF000, 0x4006),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  2421. ! {"flognp1p",    two(0xF000, 0x4C06),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  2422. ! {"flognp1s",    two(0xF000, 0x4406),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  2423. ! {"flognp1w",    two(0xF000, 0x5006),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  2424. ! {"flognp1x",    two(0xF000, 0x0006),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  2425. ! {"flognp1x",    two(0xF000, 0x4806),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  2426. ! {"flognp1x",    two(0xF000, 0x0006),    two(0xF1C0, 0xE07F),    "IiFt"},
  2427. ! {"fmodb",    two(0xF000, 0x5821),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  2428. ! {"fmodd",    two(0xF000, 0x5421),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  2429. ! {"fmodl",    two(0xF000, 0x4021),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  2430. ! {"fmodp",    two(0xF000, 0x4C21),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  2431. ! {"fmods",    two(0xF000, 0x4421),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  2432. ! {"fmodw",    two(0xF000, 0x5021),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  2433. ! {"fmodx",    two(0xF000, 0x0021),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  2434. ! {"fmodx",    two(0xF000, 0x4821),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  2435. ! /* {"fmodx",    two(0xF000, 0x0021),    two(0xF1C0, 0xE07F),    "IiFt"}, JF */
  2436. ! {"fmoveb",    two(0xF000, 0x5800),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},        /* fmove from <ea> to fp<n> */
  2437. ! {"fmoveb",    two(0xF000, 0x7800),    two(0xF1C0, 0xFC7F),    "IiF7@b"},        /* fmove from fp<n> to <ea> */
  2438. ! {"fmoved",    two(0xF000, 0x5400),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},        /* fmove from <ea> to fp<n> */
  2439. ! {"fmoved",    two(0xF000, 0x7400),    two(0xF1C0, 0xFC7F),    "IiF7@F"},        /* fmove from fp<n> to <ea> */
  2440. ! {"fmovel",    two(0xF000, 0x4000),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},        /* fmove from <ea> to fp<n> */
  2441. ! {"fmovel",    two(0xF000, 0x6000),    two(0xF1C0, 0xFC7F),    "IiF7@l"},        /* fmove from fp<n> to <ea> */
  2442. ! /* Warning:  The addressing modes on these are probably not right:
  2443. !    esp, Areg direct is only allowed for FPI */
  2444. !         /* fmove.l from/to system control registers: */
  2445. ! {"fmovel",    two(0xF000, 0xA000),    two(0xF1C0, 0xE3FF),    "Iis8@s"},
  2446. ! {"fmovel",    two(0xF000, 0x8000),    two(0xF1C0, 0xE3FF),    "Ii*ls8"},
  2447. ! /* {"fmovel",    two(0xF000, 0xA000),    two(0xF1C0, 0xE3FF),    "Iis8@s"},
  2448. ! {"fmovel",    two(0xF000, 0x8000),    two(0xF2C0, 0xE3FF),    "Ii*ss8"}, */
  2449. ! {"fmovep",    two(0xF000, 0x4C00),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},        /* fmove from <ea> to fp<n> */
  2450. ! {"fmovep",    two(0xF000, 0x6C00),    two(0xF1C0, 0xFC00),    "IiF7@pkC"},        /* fmove.p with k-factors: */
  2451. ! {"fmovep",    two(0xF000, 0x7C00),    two(0xF1C0, 0xFC0F),    "IiF7@pDk"},        /* fmove.p with k-factors: */
  2452. ! {"fmoves",    two(0xF000, 0x4400),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},        /* fmove from <ea> to fp<n> */
  2453. ! {"fmoves",    two(0xF000, 0x6400),    two(0xF1C0, 0xFC7F),    "IiF7@f"},        /* fmove from fp<n> to <ea> */
  2454. ! {"fmovew",    two(0xF000, 0x5000),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},        /* fmove from <ea> to fp<n> */
  2455. ! {"fmovew",    two(0xF000, 0x7000),    two(0xF1C0, 0xFC7F),    "IiF7@w"},        /* fmove from fp<n> to <ea> */
  2456. ! {"fmovex",    two(0xF000, 0x0000),    two(0xF1C0, 0xE07F),    "IiF8F7"},        /* fmove from <ea> to fp<n> */
  2457. ! {"fmovex",    two(0xF000, 0x4800),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},        /* fmove from <ea> to fp<n> */
  2458. ! {"fmovex",    two(0xF000, 0x6800),    two(0xF1C0, 0xFC7F),    "IiF7@x"},        /* fmove from fp<n> to <ea> */
  2459. ! /* JF removed {"fmovex",    two(0xF000, 0x0000),    two(0xF1C0, 0xE07F),    "IiFt"},        / * fmove from <ea> to fp<n> */
  2460. ! {"fmovecrx",    two(0xF000, 0x5C00),    two(0xF1FF, 0xFC00),    "Ii#CF7"},        /* fmovecr.x #ccc,    FPn */
  2461. ! {"fmovecr",    two(0xF000, 0x5C00),    two(0xF1FF, 0xFC00),    "Ii#CF7"},
  2462. ! /* Other fmovemx.  */
  2463. ! {"fmovemx",    two(0xF020, 0xE000),    two(0xF1F8, 0xFF00),    "IdL3-s"},        /* fmovem.x to autodecrement,    static and dynamic */
  2464. ! {"fmovemx",    two(0xF020, 0xE000),    two(0xF1F8, 0xFF00),    "Id#3-s"},        /* fmovem.x to autodecrement,    static and dynamic */
  2465. ! {"fmovemx",    two(0xF020, 0xE800),    two(0xF1F8, 0xFF8F),    "IiDk-s"},        /* fmovem.x to autodecrement,    static and dynamic */
  2466. ! {"fmovemx",    two(0xF000, 0xF000),    two(0xF1C0, 0xFF00),    "Id#3&s"},        /* fmovem.x to control,    static and dynamic: */
  2467. ! {"fmovemx",    two(0xF000, 0xF800),    two(0xF1C0, 0xFF8F),    "IiDk&s"},        /* fmovem.x to control,    static and dynamic: */
  2468. ! {"fmovemx",    two(0xF000, 0xD000),    two(0xF1C0, 0xFF00),    "Id&s#3"},        /* fmovem.x from control,    static and dynamic: */
  2469. ! {"fmovemx",    two(0xF000, 0xD800),    two(0xF1C0, 0xFF8F),    "Ii&sDk"},        /* fmovem.x from control,    static and dynamic: */
  2470. ! {"fmovemx",    two(0xF000, 0xF000),    two(0xF1C0, 0xFF00),    "Idl3&s"},        /* fmovem.x to control,    static and dynamic: */
  2471. ! {"fmovemx",    two(0xF000, 0xD000),    two(0xF1C0, 0xFF00),    "Id&sl3"},        /* fmovem.x from control,    static and dynamic: */
  2472. ! {"fmovemx",    two(0xF018, 0xD000),    two(0xF1F8, 0xFF00),    "Id+sl3"},        /* fmovem.x from autoincrement,    static and dynamic: */
  2473. ! {"fmovemx",    two(0xF018, 0xD000),    two(0xF1F8, 0xFF00),    "Id+s#3"},        /* fmovem.x from autoincrement,    static and dynamic: */
  2474. ! {"fmovemx",    two(0xF018, 0xD800),    two(0xF1F8, 0xFF8F),    "Ii+sDk"},        /* fmovem.x from autoincrement,    static and dynamic: */
  2475. ! {"fmoveml",    two(0xF000, 0xA000),    two(0xF1C0, 0xE3FF),    "IiL8@s"},
  2476. ! {"fmoveml",    two(0xF000, 0xA000),    two(0xF1C0, 0xE3FF),    "Ii#8@s"},
  2477. ! {"fmoveml",    two(0xF000, 0xA000),    two(0xF1C0, 0xE3FF),    "Iis8@s"},
  2478. ! {"fmoveml",    two(0xF000, 0x8000),    two(0xF2C0, 0xE3FF),    "Ii*sL8"},
  2479. ! {"fmoveml",    two(0xF000, 0x8000),    two(0xF1C0, 0xE3FF),    "Ii*s#8"},
  2480. ! {"fmoveml",    two(0xF000, 0x8000),    two(0xF1C0, 0xE3FF),    "Ii*ss8"},
  2481. ! /* fmovemx with register lists */
  2482. ! {"fmovem",    two(0xF020, 0xE000),    two(0xF1F8, 0xFF00),    "IdL3-s"},        /* fmovem.x to autodecrement,    static and dynamic */
  2483. ! {"fmovem",    two(0xF000, 0xF000),    two(0xF1C0, 0xFF00),    "Idl3&s"},        /* fmovem.x to control,    static and dynamic: */
  2484. ! {"fmovem",    two(0xF018, 0xD000),    two(0xF1F8, 0xFF00),    "Id+sl3"},        /* fmovem.x from autoincrement,    static and dynamic: */
  2485. ! {"fmovem",    two(0xF000, 0xD000),    two(0xF1C0, 0xFF00),    "Id&sl3"},        /* fmovem.x from control,    static and dynamic: */
  2486. !     /* Alternate mnemonics for GNU as and GNU CC */
  2487. ! {"fmovem",    two(0xF020, 0xE000),    two(0xF1F8, 0xFF00),    "Id#3-s"},        /* fmovem.x to autodecrement,    static and dynamic */
  2488. ! {"fmovem",    two(0xF020, 0xE800),    two(0xF1F8, 0xFF8F),    "IiDk-s"},        /* fmovem.x to autodecrement,    static and dynamic */
  2489. ! {"fmovem",    two(0xF000, 0xF000),    two(0xF1C0, 0xFF00),    "Id#3&s"},        /* fmovem.x to control,    static and dynamic: */
  2490. ! {"fmovem",    two(0xF000, 0xF800),    two(0xF1C0, 0xFF8F),    "IiDk&s"},        /* fmovem.x to control,    static and dynamic: */
  2491. ! {"fmovem",    two(0xF018, 0xD000),    two(0xF1F8, 0xFF00),    "Id+s#3"},        /* fmovem.x from autoincrement,    static and dynamic: */
  2492. ! {"fmovem",    two(0xF018, 0xD800),    two(0xF1F8, 0xFF8F),    "Ii+sDk"},        /* fmovem.x from autoincrement,    static and dynamic: */
  2493. !   
  2494. ! {"fmovem",    two(0xF000, 0xD000),    two(0xF1C0, 0xFF00),    "Id&s#3"},        /* fmovem.x from control,    static and dynamic: */
  2495. ! {"fmovem",    two(0xF000, 0xD800),    two(0xF1C0, 0xFF8F),    "Ii&sDk"},        /* fmovem.x from control,    static and dynamic: */
  2496. ! /* fmoveml a FP-control register */
  2497. ! {"fmovem",    two(0xF000, 0xA000),    two(0xF1C0, 0xE3FF),    "Iis8@s"},
  2498. ! {"fmovem",    two(0xF000, 0x8000),    two(0xF1C0, 0xE3FF),    "Ii*ss8"},
  2499. ! /* fmoveml a FP-control reglist */
  2500. ! {"fmovem",    two(0xF000, 0xA000),    two(0xF1C0, 0xE3FF),    "IiL8@s"},
  2501. ! {"fmovem",    two(0xF000, 0x8000),    two(0xF2C0, 0xE3FF),    "Ii*sL8"},
  2502. ! {"fmulb",    two(0xF000, 0x5823),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  2503. ! {"fmuld",    two(0xF000, 0x5423),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  2504. ! {"fmull",    two(0xF000, 0x4023),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  2505. ! {"fmulp",    two(0xF000, 0x4C23),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  2506. ! {"fmuls",    two(0xF000, 0x4423),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  2507. ! {"fmulw",    two(0xF000, 0x5023),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  2508. ! {"fmulx",    two(0xF000, 0x0023),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  2509. ! {"fmulx",    two(0xF000, 0x4823),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  2510. ! /* {"fmulx",    two(0xF000, 0x0023),    two(0xF1C0, 0xE07F),    "IiFt"}, JF */
  2511. ! {"fnegb",    two(0xF000, 0x581A),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  2512. ! {"fnegd",    two(0xF000, 0x541A),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  2513. ! {"fnegl",    two(0xF000, 0x401A),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  2514. ! {"fnegp",    two(0xF000, 0x4C1A),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  2515. ! {"fnegs",    two(0xF000, 0x441A),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  2516. ! {"fnegw",    two(0xF000, 0x501A),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  2517. ! {"fnegx",    two(0xF000, 0x001A),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  2518. ! {"fnegx",    two(0xF000, 0x481A),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  2519. ! {"fnegx",    two(0xF000, 0x001A),    two(0xF1C0, 0xE07F),    "IiFt"},
  2520. ! {"fnop",    two(0xF280, 0x0000),    two(0xFFFF, 0xFFFF),    "Ii"},
  2521. ! {"fremb",    two(0xF000, 0x5825),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  2522. ! {"fremd",    two(0xF000, 0x5425),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  2523. ! {"freml",    two(0xF000, 0x4025),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  2524. ! {"fremp",    two(0xF000, 0x4C25),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  2525. ! {"frems",    two(0xF000, 0x4425),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  2526. ! {"fremw",    two(0xF000, 0x5025),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  2527. ! {"fremx",    two(0xF000, 0x0025),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  2528. ! {"fremx",    two(0xF000, 0x4825),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  2529. ! /* {"fremx",    two(0xF000, 0x0025),    two(0xF1C0, 0xE07F),    "IiFt"}, JF */
  2530. ! {"frestore",    one(0xF140),        one(0xF1C0),        "Id&s"},
  2531. ! {"frestore",    one(0xF158),        one(0xF1F8),        "Id+s"},
  2532. ! {"fsave",    one(0xF100),        one(0xF1C0),        "Id&s"},
  2533. ! {"fsave",    one(0xF120),        one(0xF1F8),        "Id-s"},
  2534. ! {"fsincosb",    two(0xF000, 0x5830),    two(0xF1C0, 0xFC78),    "Ii;bF3F7"},
  2535. ! {"fsincosd",    two(0xF000, 0x5430),    two(0xF1C0, 0xFC78),    "Ii;FF3F7"},
  2536. ! {"fsincosl",    two(0xF000, 0x4030),    two(0xF1C0, 0xFC78),    "Ii;lF3F7"},
  2537. ! {"fsincosp",    two(0xF000, 0x4C30),    two(0xF1C0, 0xFC78),    "Ii;pF3F7"},
  2538. ! {"fsincoss",    two(0xF000, 0x4430),    two(0xF1C0, 0xFC78),    "Ii;fF3F7"},
  2539. ! {"fsincosw",    two(0xF000, 0x5030),    two(0xF1C0, 0xFC78),    "Ii;wF3F7"},
  2540. ! {"fsincosx",    two(0xF000, 0x0030),    two(0xF1C0, 0xE078),    "IiF8F3F7"},
  2541. ! {"fsincosx",    two(0xF000, 0x4830),    two(0xF1C0, 0xFC78),    "Ii;xF3F7"},
  2542. ! {"fscaleb",    two(0xF000, 0x5826),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  2543. ! {"fscaled",    two(0xF000, 0x5426),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  2544. ! {"fscalel",    two(0xF000, 0x4026),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  2545. ! {"fscalep",    two(0xF000, 0x4C26),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  2546. ! {"fscales",    two(0xF000, 0x4426),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  2547. ! {"fscalew",    two(0xF000, 0x5026),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  2548. ! {"fscalex",    two(0xF000, 0x0026),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  2549. ! {"fscalex",    two(0xF000, 0x4826),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  2550. ! /* {"fscalex",    two(0xF000, 0x0026),    two(0xF1C0, 0xE07F),    "IiFt"}, JF */
  2551. ! /* $ is necessary to prevent the assembler from using PC-relative.
  2552. !    If @ were used, "label: fseq label" could produce "ftrapeq",
  2553. !    because "label" became "pc@label".  */
  2554. ! {"fseq",    two(0xF040, 0x0001),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  2555. ! {"fsf",        two(0xF040, 0x0000),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  2556. ! {"fsge",    two(0xF040, 0x0013),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  2557. ! {"fsgl",    two(0xF040, 0x0016),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  2558. ! {"fsgle",    two(0xF040, 0x0017),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  2559. ! {"fsgt",    two(0xF040, 0x0012),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  2560. ! {"fsle",    two(0xF040, 0x0015),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  2561. ! {"fslt",    two(0xF040, 0x0014),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  2562. ! {"fsne",    two(0xF040, 0x000E),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  2563. ! {"fsnge",    two(0xF040, 0x001C),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  2564. ! {"fsngl",    two(0xF040, 0x0019),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  2565. ! {"fsngle",    two(0xF040, 0x0018),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  2566. ! {"fsngt",    two(0xF040, 0x001D),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  2567. ! {"fsnle",    two(0xF040, 0x001A),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  2568. ! {"fsnlt",    two(0xF040, 0x001B),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  2569. ! {"fsoge",    two(0xF040, 0x0003),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  2570. ! {"fsogl",    two(0xF040, 0x0006),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  2571. ! {"fsogt",    two(0xF040, 0x0002),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  2572. ! {"fsole",    two(0xF040, 0x0005),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  2573. ! {"fsolt",    two(0xF040, 0x0004),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  2574. ! {"fsor",    two(0xF040, 0x0007),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  2575. ! {"fsseq",    two(0xF040, 0x0011),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  2576. ! {"fssf",    two(0xF040, 0x0010),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  2577. ! {"fssne",    two(0xF040, 0x001E),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  2578. ! {"fsst",    two(0xF040, 0x001F),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  2579. ! {"fst",        two(0xF040, 0x000F),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  2580. ! {"fsueq",    two(0xF040, 0x0009),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  2581. ! {"fsuge",    two(0xF040, 0x000B),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  2582. ! {"fsugt",    two(0xF040, 0x000A),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  2583. ! {"fsule",    two(0xF040, 0x000D),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  2584. ! {"fsult",    two(0xF040, 0x000C),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  2585. ! {"fsun",    two(0xF040, 0x0008),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  2586. ! {"fsgldivb",    two(0xF000, 0x5824),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  2587. ! {"fsgldivd",    two(0xF000, 0x5424),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  2588. ! {"fsgldivl",    two(0xF000, 0x4024),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  2589. ! {"fsgldivp",    two(0xF000, 0x4C24),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  2590. ! {"fsgldivs",    two(0xF000, 0x4424),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  2591. ! {"fsgldivw",    two(0xF000, 0x5024),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  2592. ! {"fsgldivx",    two(0xF000, 0x0024),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  2593. ! {"fsgldivx",    two(0xF000, 0x4824),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  2594. ! {"fsgldivx",    two(0xF000, 0x0024),    two(0xF1C0, 0xE07F),    "IiFt"},
  2595. ! {"fsglmulb",    two(0xF000, 0x5827),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  2596. ! {"fsglmuld",    two(0xF000, 0x5427),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  2597. ! {"fsglmull",    two(0xF000, 0x4027),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  2598. ! {"fsglmulp",    two(0xF000, 0x4C27),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  2599. ! {"fsglmuls",    two(0xF000, 0x4427),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  2600. ! {"fsglmulw",    two(0xF000, 0x5027),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  2601. ! {"fsglmulx",    two(0xF000, 0x0027),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  2602. ! {"fsglmulx",    two(0xF000, 0x4827),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  2603. ! {"fsglmulx",    two(0xF000, 0x0027),    two(0xF1C0, 0xE07F),    "IiFt"},
  2604. ! {"fsinb",    two(0xF000, 0x580E),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  2605. ! {"fsind",    two(0xF000, 0x540E),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  2606. ! {"fsinl",    two(0xF000, 0x400E),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  2607. ! {"fsinp",    two(0xF000, 0x4C0E),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  2608. ! {"fsins",    two(0xF000, 0x440E),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  2609. ! {"fsinw",    two(0xF000, 0x500E),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  2610. ! {"fsinx",    two(0xF000, 0x000E),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  2611. ! {"fsinx",    two(0xF000, 0x480E),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  2612. ! {"fsinx",    two(0xF000, 0x000E),    two(0xF1C0, 0xE07F),    "IiFt"},
  2613. ! {"fsinhb",    two(0xF000, 0x5802),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  2614. ! {"fsinhd",    two(0xF000, 0x5402),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  2615. ! {"fsinhl",    two(0xF000, 0x4002),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  2616. ! {"fsinhp",    two(0xF000, 0x4C02),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  2617. ! {"fsinhs",    two(0xF000, 0x4402),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  2618. ! {"fsinhw",    two(0xF000, 0x5002),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  2619. ! {"fsinhx",    two(0xF000, 0x0002),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  2620. ! {"fsinhx",    two(0xF000, 0x4802),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  2621. ! {"fsinhx",    two(0xF000, 0x0002),    two(0xF1C0, 0xE07F),    "IiFt"},
  2622. ! {"fsqrtb",    two(0xF000, 0x5804),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  2623. ! {"fsqrtd",    two(0xF000, 0x5404),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  2624. ! {"fsqrtl",    two(0xF000, 0x4004),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  2625. ! {"fsqrtp",    two(0xF000, 0x4C04),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  2626. ! {"fsqrts",    two(0xF000, 0x4404),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  2627. ! {"fsqrtw",    two(0xF000, 0x5004),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  2628. ! {"fsqrtx",    two(0xF000, 0x0004),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  2629. ! {"fsqrtx",    two(0xF000, 0x4804),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  2630. ! {"fsqrtx",    two(0xF000, 0x0004),    two(0xF1C0, 0xE07F),    "IiFt"},
  2631. ! {"fsubb",    two(0xF000, 0x5828),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  2632. ! {"fsubd",    two(0xF000, 0x5428),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  2633. ! {"fsubl",    two(0xF000, 0x4028),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  2634. ! {"fsubp",    two(0xF000, 0x4C28),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  2635. ! {"fsubs",    two(0xF000, 0x4428),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  2636. ! {"fsubw",    two(0xF000, 0x5028),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  2637. ! {"fsubx",    two(0xF000, 0x0028),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  2638. ! {"fsubx",    two(0xF000, 0x4828),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  2639. ! {"fsubx",    two(0xF000, 0x0028),    two(0xF1C0, 0xE07F),    "IiFt"},
  2640. ! {"ftanb",    two(0xF000, 0x580F),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  2641. ! {"ftand",    two(0xF000, 0x540F),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  2642. ! {"ftanl",    two(0xF000, 0x400F),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  2643. ! {"ftanp",    two(0xF000, 0x4C0F),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  2644. ! {"ftans",    two(0xF000, 0x440F),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  2645. ! {"ftanw",    two(0xF000, 0x500F),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  2646. ! {"ftanx",    two(0xF000, 0x000F),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  2647. ! {"ftanx",    two(0xF000, 0x480F),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  2648. ! {"ftanx",    two(0xF000, 0x000F),    two(0xF1C0, 0xE07F),    "IiFt"},
  2649. ! {"ftanhb",    two(0xF000, 0x5809),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  2650. ! {"ftanhd",    two(0xF000, 0x5409),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  2651. ! {"ftanhl",    two(0xF000, 0x4009),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  2652. ! {"ftanhp",    two(0xF000, 0x4C09),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  2653. ! {"ftanhs",    two(0xF000, 0x4409),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  2654. ! {"ftanhw",    two(0xF000, 0x5009),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  2655. ! {"ftanhx",    two(0xF000, 0x0009),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  2656. ! {"ftanhx",    two(0xF000, 0x4809),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  2657. ! {"ftanhx",    two(0xF000, 0x0009),    two(0xF1C0, 0xE07F),    "IiFt"},
  2658. ! {"ftentoxb",    two(0xF000, 0x5812),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  2659. ! {"ftentoxd",    two(0xF000, 0x5412),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  2660. ! {"ftentoxl",    two(0xF000, 0x4012),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  2661. ! {"ftentoxp",    two(0xF000, 0x4C12),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  2662. ! {"ftentoxs",    two(0xF000, 0x4412),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  2663. ! {"ftentoxw",    two(0xF000, 0x5012),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  2664. ! {"ftentoxx",    two(0xF000, 0x0012),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  2665. ! {"ftentoxx",    two(0xF000, 0x4812),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  2666. ! {"ftentoxx",    two(0xF000, 0x0012),    two(0xF1C0, 0xE07F),    "IiFt"},
  2667. ! {"ftrapeq",    two(0xF07C, 0x0001),    two(0xF1FF, 0xFFFF),    "Ii"},
  2668. ! {"ftrapf",    two(0xF07C, 0x0000),    two(0xF1FF, 0xFFFF),    "Ii"},
  2669. ! {"ftrapge",    two(0xF07C, 0x0013),    two(0xF1FF, 0xFFFF),    "Ii"},
  2670. ! {"ftrapgl",    two(0xF07C, 0x0016),    two(0xF1FF, 0xFFFF),    "Ii"},
  2671. ! {"ftrapgle",    two(0xF07C, 0x0017),    two(0xF1FF, 0xFFFF),    "Ii"},
  2672. ! {"ftrapgt",    two(0xF07C, 0x0012),    two(0xF1FF, 0xFFFF),    "Ii"},
  2673. ! {"ftraple",    two(0xF07C, 0x0015),    two(0xF1FF, 0xFFFF),    "Ii"},
  2674. ! {"ftraplt",    two(0xF07C, 0x0014),    two(0xF1FF, 0xFFFF),    "Ii"},
  2675. ! {"ftrapne",    two(0xF07C, 0x000E),    two(0xF1FF, 0xFFFF),    "Ii"},
  2676. ! {"ftrapnge",    two(0xF07C, 0x001C),    two(0xF1FF, 0xFFFF),    "Ii"},
  2677. ! {"ftrapngl",    two(0xF07C, 0x0019),    two(0xF1FF, 0xFFFF),    "Ii"},
  2678. ! {"ftrapngle",    two(0xF07C, 0x0018),    two(0xF1FF, 0xFFFF),    "Ii"},
  2679. ! {"ftrapngt",    two(0xF07C, 0x001D),    two(0xF1FF, 0xFFFF),    "Ii"},
  2680. ! {"ftrapnle",    two(0xF07C, 0x001A),    two(0xF1FF, 0xFFFF),    "Ii"},
  2681. ! {"ftrapnlt",    two(0xF07C, 0x001B),    two(0xF1FF, 0xFFFF),    "Ii"},
  2682. ! {"ftrapoge",    two(0xF07C, 0x0003),    two(0xF1FF, 0xFFFF),    "Ii"},
  2683. ! {"ftrapogl",    two(0xF07C, 0x0006),    two(0xF1FF, 0xFFFF),    "Ii"},
  2684. ! {"ftrapogt",    two(0xF07C, 0x0002),    two(0xF1FF, 0xFFFF),    "Ii"},
  2685. ! {"ftrapole",    two(0xF07C, 0x0005),    two(0xF1FF, 0xFFFF),    "Ii"},
  2686. ! {"ftrapolt",    two(0xF07C, 0x0004),    two(0xF1FF, 0xFFFF),    "Ii"},
  2687. ! {"ftrapor",    two(0xF07C, 0x0007),    two(0xF1FF, 0xFFFF),    "Ii"},
  2688. ! {"ftrapseq",    two(0xF07C, 0x0011),    two(0xF1FF, 0xFFFF),    "Ii"},
  2689. ! {"ftrapsf",    two(0xF07C, 0x0010),    two(0xF1FF, 0xFFFF),    "Ii"},
  2690. ! {"ftrapsne",    two(0xF07C, 0x001E),    two(0xF1FF, 0xFFFF),    "Ii"},
  2691. ! {"ftrapst",    two(0xF07C, 0x001F),    two(0xF1FF, 0xFFFF),    "Ii"},
  2692. ! {"ftrapt",    two(0xF07C, 0x000F),    two(0xF1FF, 0xFFFF),    "Ii"},
  2693. ! {"ftrapueq",    two(0xF07C, 0x0009),    two(0xF1FF, 0xFFFF),    "Ii"},
  2694. ! {"ftrapuge",    two(0xF07C, 0x000B),    two(0xF1FF, 0xFFFF),    "Ii"},
  2695. ! {"ftrapugt",    two(0xF07C, 0x000A),    two(0xF1FF, 0xFFFF),    "Ii"},
  2696. ! {"ftrapule",    two(0xF07C, 0x000D),    two(0xF1FF, 0xFFFF),    "Ii"},
  2697. ! {"ftrapult",    two(0xF07C, 0x000C),    two(0xF1FF, 0xFFFF),    "Ii"},
  2698. ! {"ftrapun",    two(0xF07C, 0x0008),    two(0xF1FF, 0xFFFF),    "Ii"},
  2699. !         
  2700. ! {"ftrapeqw",    two(0xF07A, 0x0001),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  2701. ! {"ftrapfw",    two(0xF07A, 0x0000),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  2702. ! {"ftrapgew",    two(0xF07A, 0x0013),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  2703. ! {"ftrapglw",    two(0xF07A, 0x0016),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  2704. ! {"ftrapglew",    two(0xF07A, 0x0017),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  2705. ! {"ftrapgtw",    two(0xF07A, 0x0012),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  2706. ! {"ftraplew",    two(0xF07A, 0x0015),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  2707. ! {"ftrapltw",    two(0xF07A, 0x0014),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  2708. ! {"ftrapnew",    two(0xF07A, 0x000E),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  2709. ! {"ftrapngew",    two(0xF07A, 0x001C),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  2710. ! {"ftrapnglw",    two(0xF07A, 0x0019),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  2711. ! {"ftrapnglew",    two(0xF07A, 0x0018),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  2712. ! {"ftrapngtw",    two(0xF07A, 0x001D),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  2713. ! {"ftrapnlew",    two(0xF07A, 0x001A),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  2714. ! {"ftrapnltw",    two(0xF07A, 0x001B),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  2715. ! {"ftrapogew",    two(0xF07A, 0x0003),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  2716. ! {"ftrapoglw",    two(0xF07A, 0x0006),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  2717. ! {"ftrapogtw",    two(0xF07A, 0x0002),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  2718. ! {"ftrapolew",    two(0xF07A, 0x0005),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  2719. ! {"ftrapoltw",    two(0xF07A, 0x0004),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  2720. ! {"ftraporw",    two(0xF07A, 0x0007),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  2721. ! {"ftrapseqw",    two(0xF07A, 0x0011),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  2722. ! {"ftrapsfw",    two(0xF07A, 0x0010),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  2723. ! {"ftrapsnew",    two(0xF07A, 0x001E),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  2724. ! {"ftrapstw",    two(0xF07A, 0x001F),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  2725. ! {"ftraptw",    two(0xF07A, 0x000F),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  2726. ! {"ftrapueqw",    two(0xF07A, 0x0009),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  2727. ! {"ftrapugew",    two(0xF07A, 0x000B),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  2728. ! {"ftrapugtw",    two(0xF07A, 0x000A),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  2729. ! {"ftrapulew",    two(0xF07A, 0x000D),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  2730. ! {"ftrapultw",    two(0xF07A, 0x000C),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  2731. ! {"ftrapunw",    two(0xF07A, 0x0008),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  2732. ! {"ftrapeql",    two(0xF07B, 0x0001),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  2733. ! {"ftrapfl",    two(0xF07B, 0x0000),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  2734. ! {"ftrapgel",    two(0xF07B, 0x0013),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  2735. ! {"ftrapgll",    two(0xF07B, 0x0016),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  2736. ! {"ftrapglel",    two(0xF07B, 0x0017),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  2737. ! {"ftrapgtl",    two(0xF07B, 0x0012),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  2738. ! {"ftraplel",    two(0xF07B, 0x0015),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  2739. ! {"ftrapltl",    two(0xF07B, 0x0014),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  2740. ! {"ftrapnel",    two(0xF07B, 0x000E),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  2741. ! {"ftrapngel",    two(0xF07B, 0x001C),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  2742. ! {"ftrapngll",    two(0xF07B, 0x0019),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  2743. ! {"ftrapnglel",    two(0xF07B, 0x0018),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  2744. ! {"ftrapngtl",    two(0xF07B, 0x001D),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  2745. ! {"ftrapnlel",    two(0xF07B, 0x001A),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  2746. ! {"ftrapnltl",    two(0xF07B, 0x001B),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  2747. ! {"ftrapogel",    two(0xF07B, 0x0003),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  2748. ! {"ftrapogll",    two(0xF07B, 0x0006),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  2749. ! {"ftrapogtl",    two(0xF07B, 0x0002),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  2750. ! {"ftrapolel",    two(0xF07B, 0x0005),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  2751. ! {"ftrapoltl",    two(0xF07B, 0x0004),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  2752. ! {"ftraporl",    two(0xF07B, 0x0007),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  2753. ! {"ftrapseql",    two(0xF07B, 0x0011),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  2754. ! {"ftrapsfl",    two(0xF07B, 0x0010),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  2755. ! {"ftrapsnel",    two(0xF07B, 0x001E),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  2756. ! {"ftrapstl",    two(0xF07B, 0x001F),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  2757. ! {"ftraptl",    two(0xF07B, 0x000F),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  2758. ! {"ftrapueql",    two(0xF07B, 0x0009),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  2759. ! {"ftrapugel",    two(0xF07B, 0x000B),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  2760. ! {"ftrapugtl",    two(0xF07B, 0x000A),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  2761. ! {"ftrapulel",    two(0xF07B, 0x000D),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  2762. ! {"ftrapultl",    two(0xF07B, 0x000C),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  2763. ! {"ftrapunl",    two(0xF07B, 0x0008),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  2764. ! {"ftstb",    two(0xF000, 0x583A),    two(0xF1C0, 0xFC7F),    "Ii;b"},
  2765. ! {"ftstd",    two(0xF000, 0x543A),    two(0xF1C0, 0xFC7F),    "Ii;F"},
  2766. ! {"ftstl",    two(0xF000, 0x403A),    two(0xF1C0, 0xFC7F),    "Ii;l"},
  2767. ! {"ftstp",    two(0xF000, 0x4C3A),    two(0xF1C0, 0xFC7F),    "Ii;p"},
  2768. ! {"ftsts",    two(0xF000, 0x443A),    two(0xF1C0, 0xFC7F),    "Ii;f"},
  2769. ! {"ftstw",    two(0xF000, 0x503A),    two(0xF1C0, 0xFC7F),    "Ii;w"},
  2770. ! {"ftstx",    two(0xF000, 0x003A),    two(0xF1C0, 0xE07F),    "IiF8"},
  2771. ! {"ftstx",    two(0xF000, 0x483A),    two(0xF1C0, 0xFC7F),    "Ii;x"},
  2772. ! {"ftwotoxb",    two(0xF000, 0x5811),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  2773. ! {"ftwotoxd",    two(0xF000, 0x5411),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  2774. ! {"ftwotoxl",    two(0xF000, 0x4011),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  2775. ! {"ftwotoxp",    two(0xF000, 0x4C11),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  2776. ! {"ftwotoxs",    two(0xF000, 0x4411),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  2777. ! {"ftwotoxw",    two(0xF000, 0x5011),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  2778. ! {"ftwotoxx",    two(0xF000, 0x0011),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  2779. ! {"ftwotoxx",    two(0xF000, 0x4811),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  2780. ! {"ftwotoxx",    two(0xF000, 0x0011),    two(0xF1C0, 0xE07F),    "IiFt"},
  2781. ! {"fjeq",    one(0xF081),        one(0xF1FF),        "IdBc"},
  2782. ! {"fjf",        one(0xF080),        one(0xF1FF),        "IdBc"},
  2783. ! {"fjge",    one(0xF093),        one(0xF1FF),        "IdBc"},
  2784. ! {"fjgl",    one(0xF096),        one(0xF1FF),        "IdBc"},
  2785. ! {"fjgle",    one(0xF097),        one(0xF1FF),        "IdBc"},
  2786. ! {"fjgt",    one(0xF092),        one(0xF1FF),        "IdBc"},
  2787. ! {"fjle",    one(0xF095),        one(0xF1FF),        "IdBc"},
  2788. ! {"fjlt",    one(0xF094),        one(0xF1FF),        "IdBc"},
  2789. ! {"fjne",    one(0xF08E),        one(0xF1FF),        "IdBc"},
  2790. ! {"fjnge",    one(0xF09C),        one(0xF1FF),        "IdBc"},
  2791. ! {"fjngl",    one(0xF099),        one(0xF1FF),        "IdBc"},
  2792. ! {"fjngle",    one(0xF098),        one(0xF1FF),        "IdBc"},
  2793. ! {"fjngt",    one(0xF09D),        one(0xF1FF),        "IdBc"},
  2794. ! {"fjnle",    one(0xF09A),        one(0xF1FF),        "IdBc"},
  2795. ! {"fjnlt",    one(0xF09B),        one(0xF1FF),        "IdBc"},
  2796. ! {"fjoge",    one(0xF083),        one(0xF1FF),        "IdBc"},
  2797. ! {"fjogl",    one(0xF086),        one(0xF1FF),        "IdBc"},
  2798. ! {"fjogt",    one(0xF082),        one(0xF1FF),        "IdBc"},
  2799. ! {"fjole",    one(0xF085),        one(0xF1FF),        "IdBc"},
  2800. ! {"fjolt",    one(0xF084),        one(0xF1FF),        "IdBc"},
  2801. ! {"fjor",    one(0xF087),        one(0xF1FF),        "IdBc"},
  2802. ! {"fjseq",    one(0xF091),        one(0xF1FF),        "IdBc"},
  2803. ! {"fjsf",    one(0xF090),        one(0xF1FF),        "IdBc"},
  2804. ! {"fjsne",    one(0xF09E),        one(0xF1FF),        "IdBc"},
  2805. ! {"fjst",    one(0xF09F),        one(0xF1FF),        "IdBc"},
  2806. ! {"fjt",        one(0xF08F),        one(0xF1FF),        "IdBc"},
  2807. ! {"fjueq",    one(0xF089),        one(0xF1FF),        "IdBc"},
  2808. ! {"fjuge",    one(0xF08B),        one(0xF1FF),        "IdBc"},
  2809. ! {"fjugt",    one(0xF08A),        one(0xF1FF),        "IdBc"},
  2810. ! {"fjule",    one(0xF08D),        one(0xF1FF),        "IdBc"},
  2811. ! {"fjult",    one(0xF08C),        one(0xF1FF),        "IdBc"},
  2812. ! {"fjun",    one(0xF088),        one(0xF1FF),        "IdBc"},
  2813. ! /* The assembler will ignore attempts to force a short offset */
  2814. ! {"bhis",    one(0061000),        one(0177400),        "Bg"},
  2815. ! {"blss",    one(0061400),        one(0177400),        "Bg"},
  2816. ! {"bccs",    one(0062000),        one(0177400),        "Bg"},
  2817. ! {"bcss",    one(0062400),        one(0177400),        "Bg"},
  2818. ! {"bnes",    one(0063000),        one(0177400),        "Bg"},
  2819. ! {"beqs",    one(0063400),        one(0177400),        "Bg"},
  2820. ! {"bvcs",    one(0064000),        one(0177400),        "Bg"},
  2821. ! {"bvss",    one(0064400),        one(0177400),        "Bg"},
  2822. ! {"bpls",    one(0065000),        one(0177400),        "Bg"},
  2823. ! {"bmis",    one(0065400),        one(0177400),        "Bg"},
  2824. ! {"bges",    one(0066000),        one(0177400),        "Bg"},
  2825. ! {"blts",    one(0066400),        one(0177400),        "Bg"},
  2826. ! {"bgts",    one(0067000),        one(0177400),        "Bg"},
  2827. ! {"bles",    one(0067400),        one(0177400),        "Bg"},
  2828. ! /* Alternate mnemonics for SUN */
  2829. ! {"jbsr",    one(0060400),        one(0177400),        "Bg"},
  2830. ! {"jbsr",    one(0047200),        one(0177700),        "!s"},
  2831. ! {"jra",        one(0060000),        one(0177400),        "Bg"},
  2832. ! {"jra",        one(0047300),        one(0177700),        "!s"},
  2833. !   
  2834. ! {"jhi",        one(0061000),        one(0177400),        "Bg"},
  2835. ! {"jls",        one(0061400),        one(0177400),        "Bg"},
  2836. ! {"jcc",        one(0062000),        one(0177400),        "Bg"},
  2837. ! {"jcs",        one(0062400),        one(0177400),        "Bg"},
  2838. ! {"jne",        one(0063000),        one(0177400),        "Bg"},
  2839. ! {"jeq",        one(0063400),        one(0177400),        "Bg"},
  2840. ! {"jvc",        one(0064000),        one(0177400),        "Bg"},
  2841. ! {"jvs",        one(0064400),        one(0177400),        "Bg"},
  2842. ! {"jpl",        one(0065000),        one(0177400),        "Bg"},
  2843. ! {"jmi",        one(0065400),        one(0177400),        "Bg"},
  2844. ! {"jge",        one(0066000),        one(0177400),        "Bg"},
  2845. ! {"jlt",        one(0066400),        one(0177400),        "Bg"},
  2846. ! {"jgt",        one(0067000),        one(0177400),        "Bg"},
  2847. ! {"jle",        one(0067400),        one(0177400),        "Bg"},
  2848. ! /* Short offsets are ignored */
  2849. ! {"jbsrs",    one(0060400),        one(0177400),        "Bg"},
  2850. ! {"jras",    one(0060000),        one(0177400),        "Bg"},
  2851. ! {"jhis",    one(0061000),        one(0177400),        "Bg"},
  2852. ! {"jlss",    one(0061400),        one(0177400),        "Bg"},
  2853. ! {"jccs",    one(0062000),        one(0177400),        "Bg"},
  2854. ! {"jcss",    one(0062400),        one(0177400),        "Bg"},
  2855. ! {"jnes",    one(0063000),        one(0177400),        "Bg"},
  2856. ! {"jeqs",    one(0063400),        one(0177400),        "Bg"},
  2857. ! {"jvcs",    one(0064000),        one(0177400),        "Bg"},
  2858. ! {"jvss",    one(0064400),        one(0177400),        "Bg"},
  2859. ! {"jpls",    one(0065000),        one(0177400),        "Bg"},
  2860. ! {"jmis",    one(0065400),        one(0177400),        "Bg"},
  2861. ! {"jges",    one(0066000),        one(0177400),        "Bg"},
  2862. ! {"jlts",    one(0066400),        one(0177400),        "Bg"},
  2863. ! {"jgts",    one(0067000),        one(0177400),        "Bg"},
  2864. ! {"jles",    one(0067400),        one(0177400),        "Bg"},
  2865. ! {"movql",    one(0070000),        one(0170400),        "MsDd"},
  2866. ! {"moveql",    one(0070000),        one(0170400),        "MsDd"},
  2867. ! {"moval",    one(0020100),        one(0170700),        "*lAd"},
  2868. ! {"movaw",    one(0030100),        one(0170700),        "*wAd"},
  2869. ! {"movb",    one(0010000),        one(0170000),        ";b$d"},    /* mov */
  2870. ! {"movl",    one(0070000),        one(0170400),        "MsDd"},    /* movq written as mov */
  2871. ! {"movl",    one(0020000),        one(0170000),        "*l$d"},
  2872. ! {"movl",    one(0020100),        one(0170700),        "*lAd"},
  2873. ! {"movl",    one(0047140),        one(0177770),        "AsUd"},    /* mov to USP */
  2874. ! {"movl",    one(0047150),        one(0177770),        "UdAs"},    /* mov from USP */
  2875. ! {"movc",    one(0047173),        one(0177777),        "R1Jj"},
  2876. ! {"movc",    one(0047173),        one(0177777),        "R1#j"},
  2877. ! {"movc",    one(0047172),        one(0177777),        "JjR1"},
  2878. ! {"movc",    one(0047172),        one(0177777),        "#jR1"},
  2879. ! {"movml",    one(0044300),        one(0177700),        "#w&s"},    /* movm reg to mem. */
  2880. ! {"movml",    one(0044340),        one(0177770),        "#w-s"},    /* movm reg to autodecrement. */
  2881. ! {"movml",    one(0046300),        one(0177700),        "!s#w"},    /* movm mem to reg. */
  2882. ! {"movml",    one(0046330),        one(0177770),        "+s#w"},    /* movm autoinc to reg. */
  2883. ! {"movml",    one(0044300),        one(0177700),        "Lw&s"},    /* movm reg to mem. */
  2884. ! {"movml",    one(0044340),        one(0177770),        "lw-s"},    /* movm reg to autodecrement. */
  2885. ! {"movml",    one(0046300),        one(0177700),        "!sLw"},    /* movm mem to reg. */
  2886. ! {"movml",    one(0046330),        one(0177770),        "+sLw"},    /* movm autoinc to reg. */
  2887. ! {"movmw",    one(0044200),        one(0177700),        "#w&s"},    /* movm reg to mem. */
  2888. ! {"movmw",    one(0044240),        one(0177770),        "#w-s"},    /* movm reg to autodecrement. */
  2889. ! {"movmw",    one(0046200),        one(0177700),        "!s#w"},    /* movm mem to reg. */
  2890. ! {"movmw",    one(0046230),        one(0177770),        "+s#w"},    /* movm autoinc to reg. */
  2891. ! {"movmw",    one(0044200),        one(0177700),        "Lw&s"},    /* movm reg to mem. */
  2892. ! {"movmw",    one(0044240),        one(0177770),        "lw-s"},    /* movm reg to autodecrement. */
  2893. ! {"movmw",    one(0046200),        one(0177700),        "!sLw"},    /* movm mem to reg. */
  2894. ! {"movmw",    one(0046230),        one(0177770),        "+sLw"},    /* movm autoinc to reg. */
  2895. ! {"movpl",    one(0000510),        one(0170770),        "dsDd"},    /* memory to register */
  2896. ! {"movpl",    one(0000710),        one(0170770),        "Ddds"},    /* register to memory */
  2897. ! {"movpw",    one(0000410),        one(0170770),        "dsDd"},    /* memory to register */
  2898. ! {"movpw",    one(0000610),        one(0170770),        "Ddds"},    /* register to memory */
  2899. ! {"movq",    one(0070000),        one(0170400),        "MsDd"},
  2900. ! {"movw",    one(0030000),        one(0170000),        "*w$d"},
  2901. ! {"movw",    one(0030100),        one(0170700),        "*wAd"},    /* mova,    written as mov */
  2902. ! {"movw",    one(0040300),        one(0177700),        "Ss$s"},    /* Move from sr */
  2903. ! {"movw",    one(0041300),        one(0177700),        "Cs$s"},    /* Move from ccr */
  2904. ! {"movw",    one(0042300),        one(0177700),        ";wCd"},    /* mov to ccr */
  2905. ! {"movw",    one(0043300),        one(0177700),        ";wSd"},    /* mov to sr */
  2906. ! {"movsb",    two(0007000, 0),    two(0177700, 07777),    "~sR1"},
  2907. ! {"movsb",    two(0007000, 04000),    two(0177700, 07777),    "R1~s"},
  2908. ! {"movsl",    two(0007200, 0),    two(0177700, 07777),    "~sR1"},
  2909. ! {"movsl",    two(0007200, 04000),    two(0177700, 07777),    "R1~s"},
  2910. ! {"movsw",    two(0007100, 0),    two(0177700, 07777),    "~sR1"},
  2911. ! {"movsw",    two(0007100, 04000),    two(0177700, 07777),    "R1~s"},
  2912. ! #ifdef m68851
  2913. !  /* name */    /* opcode */        /* match */        /* args */
  2914. ! {"pbac",    one(0xf0c7),        one(0xffbf),        "Bc"},
  2915. ! {"pbacw",    one(0xf087),        one(0xffbf),        "Bc"},
  2916. ! {"pbas",    one(0xf0c6),        one(0xffbf),        "Bc"},
  2917. ! {"pbasw",    one(0xf086),        one(0xffbf),        "Bc"},
  2918. ! {"pbbc",    one(0xf0c1),        one(0xffbf),        "Bc"},
  2919. ! {"pbbcw",    one(0xf081),        one(0xffbf),        "Bc"},
  2920. ! {"pbbs",    one(0xf0c0),        one(0xffbf),        "Bc"},
  2921. ! {"pbbsw",    one(0xf080),        one(0xffbf),        "Bc"},
  2922. ! {"pbcc",    one(0xf0cf),        one(0xffbf),        "Bc"},
  2923. ! {"pbccw",    one(0xf08f),        one(0xffbf),        "Bc"},
  2924. ! {"pbcs",    one(0xf0ce),        one(0xffbf),        "Bc"},
  2925. ! {"pbcsw",    one(0xf08e),        one(0xffbf),        "Bc"},
  2926. ! {"pbgc",    one(0xf0cd),        one(0xffbf),        "Bc"},
  2927. ! {"pbgcw",    one(0xf08d),        one(0xffbf),        "Bc"},
  2928. ! {"pbgs",    one(0xf0cc),        one(0xffbf),        "Bc"},
  2929. ! {"pbgsw",    one(0xf08c),        one(0xffbf),        "Bc"},
  2930. ! {"pbic",    one(0xf0cb),        one(0xffbf),        "Bc"},
  2931. ! {"pbicw",    one(0xf08b),        one(0xffbf),        "Bc"},
  2932. ! {"pbis",    one(0xf0ca),        one(0xffbf),        "Bc"},
  2933. ! {"pbisw",    one(0xf08a),        one(0xffbf),        "Bc"},
  2934. ! {"pblc",    one(0xf0c3),        one(0xffbf),        "Bc"},
  2935. ! {"pblcw",    one(0xf083),        one(0xffbf),        "Bc"},
  2936. ! {"pbls",    one(0xf0c2),        one(0xffbf),        "Bc"},
  2937. ! {"pblsw",    one(0xf082),        one(0xffbf),        "Bc"},
  2938. ! {"pbsc",    one(0xf0c5),        one(0xffbf),        "Bc"},
  2939. ! {"pbscw",    one(0xf085),        one(0xffbf),        "Bc"},
  2940. ! {"pbss",    one(0xf0c4),        one(0xffbf),        "Bc"},
  2941. ! {"pbssw",    one(0xf084),        one(0xffbf),        "Bc"},
  2942. ! {"pbwc",    one(0xf0c9),        one(0xffbf),        "Bc"},
  2943. ! {"pbwcw",    one(0xf089),        one(0xffbf),        "Bc"},
  2944. ! {"pbws",    one(0xf0c8),        one(0xffbf),        "Bc"},
  2945. ! {"pbwsw",    one(0xf088),        one(0xffbf),        "Bc"},
  2946. ! {"pdbac",    two(0xf048, 0x0007),    two(0xfff8, 0xffff),    "DsBw"},
  2947. ! {"pdbas",    two(0xf048, 0x0006),    two(0xfff8, 0xffff),    "DsBw"},
  2948. ! {"pdbbc",    two(0xf048, 0x0001),    two(0xfff8, 0xffff),    "DsBw"},
  2949. ! {"pdbbs",    two(0xf048, 0x0000),    two(0xfff8, 0xffff),    "DsBw"},
  2950. ! {"pdbcc",    two(0xf048, 0x000f),    two(0xfff8, 0xffff),    "DsBw"},
  2951. ! {"pdbcs",    two(0xf048, 0x000e),    two(0xfff8, 0xffff),    "DsBw"},
  2952. ! {"pdbgc",    two(0xf048, 0x000d),    two(0xfff8, 0xffff),    "DsBw"},
  2953. ! {"pdbgs",    two(0xf048, 0x000c),    two(0xfff8, 0xffff),    "DsBw"},
  2954. ! {"pdbic",    two(0xf048, 0x000b),    two(0xfff8, 0xffff),    "DsBw"},
  2955. ! {"pdbis",    two(0xf048, 0x000a),    two(0xfff8, 0xffff),    "DsBw"},
  2956. ! {"pdblc",    two(0xf048, 0x0003),    two(0xfff8, 0xffff),    "DsBw"},
  2957. ! {"pdbls",    two(0xf048, 0x0002),    two(0xfff8, 0xffff),    "DsBw"},
  2958. ! {"pdbsc",    two(0xf048, 0x0005),    two(0xfff8, 0xffff),    "DsBw"},
  2959. ! {"pdbss",    two(0xf048, 0x0004),    two(0xfff8, 0xffff),    "DsBw"},
  2960. ! {"pdbwc",    two(0xf048, 0x0009),    two(0xfff8, 0xffff),    "DsBw"},
  2961. ! {"pdbws",    two(0xf048, 0x0008),    two(0xfff8, 0xffff),    "DsBw"},
  2962. ! {"pflusha",    two(0xf000, 0x2400),    two(0xffff, 0xffff),    "" },
  2963. ! {"pflush",    two(0xf000, 0x3010),    two(0xffc0, 0xfe10),    "T3T9" },
  2964. ! {"pflush",    two(0xf000, 0x3810),    two(0xffc0, 0xfe10),    "T3T9&s" },
  2965. ! {"pflush",    two(0xf000, 0x3008),    two(0xffc0, 0xfe18),    "D3T9" },
  2966. ! {"pflush",    two(0xf000, 0x3808),    two(0xffc0, 0xfe18),    "D3T9&s" },
  2967. ! {"pflush",    two(0xf000, 0x3000),    two(0xffc0, 0xfe1e),    "f3T9" },
  2968. ! {"pflush",    two(0xf000, 0x3800),    two(0xffc0, 0xfe1e),    "f3T9&s" },
  2969. ! {"pflushs",    two(0xf000, 0x3410),    two(0xfff8, 0xfe10),    "T3T9" },
  2970. ! {"pflushs",    two(0xf000, 0x3c10),    two(0xfff8, 0xfe00),    "T3T9&s" },
  2971. ! {"pflushs",    two(0xf000, 0x3408),    two(0xfff8, 0xfe18),    "D3T9" },
  2972. ! {"pflushs",    two(0xf000, 0x3c08),    two(0xfff8, 0xfe18),    "D3T9&s" },
  2973. ! {"pflushs",    two(0xf000, 0x3400),    two(0xfff8, 0xfe1e),    "f3T9" },
  2974. ! {"pflushs",    two(0xf000, 0x3c00),    two(0xfff8, 0xfe1e),    "f3T9&s"},
  2975. ! {"pflushr",    two(0xf000, 0xa000),    two(0xffc0, 0xffff),    "|s" },
  2976. ! {"ploadr",    two(0xf000, 0x2210),    two(0xffc0, 0xfff0),    "T3&s" },
  2977. ! {"ploadr",    two(0xf000, 0x2208),    two(0xffc0, 0xfff8),    "D3&s" },
  2978. ! {"ploadr",    two(0xf000, 0x2200),    two(0xffc0, 0xfffe),    "f3&s" },
  2979. ! {"ploadw",    two(0xf000, 0x2010),    two(0xffc0, 0xfff0),    "T3&s" },
  2980. ! {"ploadw",    two(0xf000, 0x2008),    two(0xffc0, 0xfff8),    "D3&s" },
  2981. ! {"ploadw",    two(0xf000, 0x2000),    two(0xffc0, 0xfffe),    "f3&s" },
  2982. ! /* TC, CRP, DRP, SRP, CAL, VAL, SCC, AC */
  2983. ! {"pmove",    two(0xf000, 0x4000),    two(0xffc0, 0xe3ff),    "*sP8" },
  2984. ! {"pmove",    two(0xf000, 0x4200),    two(0xffc0, 0xe3ff),    "P8%s" },
  2985. ! {"pmove",    two(0xf000, 0x4000),    two(0xffc0, 0xe3ff),    "|sW8" },
  2986. ! {"pmove",    two(0xf000, 0x4200),    two(0xffc0, 0xe3ff),    "W8~s" },
  2987. ! /* BADx, BACx */
  2988. ! {"pmove",    two(0xf000, 0x6200),    two(0xffc0, 0xe3e3),    "*sX3" },
  2989. ! {"pmove",    two(0xf000, 0x6000),    two(0xffc0, 0xe3e3),    "X3%s" },
  2990. ! /* PSR, PCSR */
  2991. ! /* {"pmove",    two(0xf000, 0x6100),    two(oxffc0, oxffff),    "*sZ8" }, */
  2992. ! {"pmove",    two(0xf000, 0x6000),    two(0xffc0, 0xffff),    "*sY8" },
  2993. ! {"pmove",    two(0xf000, 0x6200),    two(0xffc0, 0xffff),    "Y8%s" },
  2994. ! {"pmove",    two(0xf000, 0x6600),    two(0xffc0, 0xffff),    "Z8%s" },
  2995. ! {"prestore",    one(0xf140),        one(0xffc0),        "&s"},
  2996. ! {"prestore",    one(0xf158),        one(0xfff8),        "+s"},
  2997. ! {"psave",    one(0xf100),        one(0xffc0),        "&s"},
  2998. ! {"psave",    one(0xf100),        one(0xffc0),        "+s"},
  2999. ! {"psac",    two(0xf040, 0x0007),    two(0xffc0, 0xffff),    "@s"},
  3000. ! {"psas",    two(0xf040, 0x0006),    two(0xffc0, 0xffff),    "@s"},
  3001. ! {"psbc",    two(0xf040, 0x0001),    two(0xffc0, 0xffff),    "@s"},
  3002. ! {"psbs",    two(0xf040, 0x0000),    two(0xffc0, 0xffff),    "@s"},
  3003. ! {"pscc",    two(0xf040, 0x000f),    two(0xffc0, 0xffff),    "@s"},
  3004. ! {"pscs",    two(0xf040, 0x000e),    two(0xffc0, 0xffff),    "@s"},
  3005. ! {"psgc",    two(0xf040, 0x000d),    two(0xffc0, 0xffff),    "@s"},
  3006. ! {"psgs",    two(0xf040, 0x000c),    two(0xffc0, 0xffff),    "@s"},
  3007. ! {"psic",    two(0xf040, 0x000b),    two(0xffc0, 0xffff),    "@s"},
  3008. ! {"psis",    two(0xf040, 0x000a),    two(0xffc0, 0xffff),    "@s"},
  3009. ! {"pslc",    two(0xf040, 0x0003),    two(0xffc0, 0xffff),    "@s"},
  3010. ! {"psls",    two(0xf040, 0x0002),    two(0xffc0, 0xffff),    "@s"},
  3011. ! {"pssc",    two(0xf040, 0x0005),    two(0xffc0, 0xffff),    "@s"},
  3012. ! {"psss",    two(0xf040, 0x0004),    two(0xffc0, 0xffff),    "@s"},
  3013. ! {"pswc",    two(0xf040, 0x0009),    two(0xffc0, 0xffff),    "@s"},
  3014. ! {"psws",    two(0xf040, 0x0008),    two(0xffc0, 0xffff),    "@s"},
  3015. ! {"ptestr",    two(0xf000, 0x8210),    two(0xffc0, 0xe3f0),    "T3&sQ8" },
  3016. ! {"ptestr",    two(0xf000, 0x8310),    two(0xffc0, 0xe310),    "T3&sQ8A9" },
  3017. ! {"ptestr",    two(0xf000, 0x8208),    two(0xffc0, 0xe3f8),    "D3&sQ8" },
  3018. ! {"ptestr",    two(0xf000, 0x8308),    two(0xffc0, 0xe318),    "D3&sQ8A9" },
  3019. ! {"ptestr",    two(0xf000, 0x8200),    two(0xffc0, 0xe3fe),    "f3&sQ8" },
  3020. ! {"ptestr",    two(0xf000, 0x8300),    two(0xffc0, 0xe31e),    "f3&sQ8A9" },
  3021. ! {"ptestw",    two(0xf000, 0x8010),    two(0xffc0, 0xe3f0),    "T3&sQ8" },
  3022. ! {"ptestw",    two(0xf000, 0x8110),    two(0xffc0, 0xe310),    "T3&sQ8A9" },
  3023. ! {"ptestw",    two(0xf000, 0x8008),    two(0xffc0, 0xe3f8),    "D3&sQ8" },
  3024. ! {"ptestw",    two(0xf000, 0x8108),    two(0xffc0, 0xe318),    "D3&sQ8A9" },
  3025. ! {"ptestw",    two(0xf000, 0x8000),    two(0xffc0, 0xe3fe),    "f3&sQ8" },
  3026. ! {"ptestw",    two(0xf000, 0x8100),    two(0xffc0, 0xe31e),    "f3&sQ8A9" },
  3027. ! {"ptrapacw",    two(0xf07a, 0x0007),    two(0xffff, 0xffff),    "#w"},
  3028. ! {"ptrapacl",    two(0xf07b, 0x0007),    two(0xffff, 0xffff),    "#l"},
  3029. ! {"ptrapac",    two(0xf07c, 0x0007),    two(0xffff, 0xffff),    ""},
  3030. ! {"ptrapasw",    two(0xf07a, 0x0006),    two(0xffff, 0xffff),    "#w"},
  3031. ! {"ptrapasl",    two(0xf07b, 0x0006),    two(0xffff, 0xffff),    "#l"},
  3032. ! {"ptrapas",    two(0xf07c, 0x0006),    two(0xffff, 0xffff),    ""},
  3033. ! {"ptrapbcw",    two(0xf07a, 0x0001),    two(0xffff, 0xffff),    "#w"},
  3034. ! {"ptrapbcl",    two(0xf07b, 0x0001),    two(0xffff, 0xffff),    "#l"},
  3035. ! {"ptrapbc",    two(0xf07c, 0x0001),    two(0xffff, 0xffff),    ""},
  3036. ! {"ptrapbsw",    two(0xf07a, 0x0000),    two(0xffff, 0xffff),    "#w"},
  3037. ! {"ptrapbsl",    two(0xf07b, 0x0000),    two(0xffff, 0xffff),    "#l"},
  3038. ! {"ptrapbs",    two(0xf07c, 0x0000),    two(0xffff, 0xffff),    ""},
  3039. ! {"ptrapccw",    two(0xf07a, 0x000f),    two(0xffff, 0xffff),    "#w"},
  3040. ! {"ptrapccl",    two(0xf07b, 0x000f),    two(0xffff, 0xffff),    "#l"},
  3041. ! {"ptrapcc",    two(0xf07c, 0x000f),    two(0xffff, 0xffff),    ""},
  3042. ! {"ptrapcsw",    two(0xf07a, 0x000e),    two(0xffff, 0xffff),    "#w"},
  3043. ! {"ptrapcsl",    two(0xf07b, 0x000e),    two(0xffff, 0xffff),    "#l"},
  3044. ! {"ptrapcs",    two(0xf07c, 0x000e),    two(0xffff, 0xffff),    ""},
  3045. ! {"ptrapgcw",    two(0xf07a, 0x000d),    two(0xffff, 0xffff),    "#w"},
  3046. ! {"ptrapgcl",    two(0xf07b, 0x000d),    two(0xffff, 0xffff),    "#l"},
  3047. ! {"ptrapgc",    two(0xf07c, 0x000d),    two(0xffff, 0xffff),    ""},
  3048. ! {"ptrapgsw",    two(0xf07a, 0x000c),    two(0xffff, 0xffff),    "#w"},
  3049. ! {"ptrapgsl",    two(0xf07b, 0x000c),    two(0xffff, 0xffff),    "#l"},
  3050. ! {"ptrapgs",    two(0xf07c, 0x000c),    two(0xffff, 0xffff),    ""},
  3051. ! {"ptrapicw",    two(0xf07a, 0x000b),    two(0xffff, 0xffff),    "#w"},
  3052. ! {"ptrapicl",    two(0xf07b, 0x000b),    two(0xffff, 0xffff),    "#l"},
  3053. ! {"ptrapic",    two(0xf07c, 0x000b),    two(0xffff, 0xffff),    ""},
  3054. ! {"ptrapisw",    two(0xf07a, 0x000a),    two(0xffff, 0xffff),    "#w"},
  3055. ! {"ptrapisl",    two(0xf07b, 0x000a),    two(0xffff, 0xffff),    "#l"},
  3056. ! {"ptrapis",    two(0xf07c, 0x000a),    two(0xffff, 0xffff),    ""},
  3057. ! {"ptraplcw",    two(0xf07a, 0x0003),    two(0xffff, 0xffff),    "#w"},
  3058. ! {"ptraplcl",    two(0xf07b, 0x0003),    two(0xffff, 0xffff),    "#l"},
  3059. ! {"ptraplc",    two(0xf07c, 0x0003),    two(0xffff, 0xffff),    ""},
  3060. ! {"ptraplsw",    two(0xf07a, 0x0002),    two(0xffff, 0xffff),    "#w"},
  3061. ! {"ptraplsl",    two(0xf07b, 0x0002),    two(0xffff, 0xffff),    "#l"},
  3062. ! {"ptrapls",    two(0xf07c, 0x0002),    two(0xffff, 0xffff),    ""},
  3063. ! {"ptrapscw",    two(0xf07a, 0x0005),    two(0xffff, 0xffff),    "#w"},
  3064. ! {"ptrapscl",    two(0xf07b, 0x0005),    two(0xffff, 0xffff),    "#l"},
  3065. ! {"ptrapsc",    two(0xf07c, 0x0005),    two(0xffff, 0xffff),    ""},
  3066. ! {"ptrapssw",    two(0xf07a, 0x0004),    two(0xffff, 0xffff),    "#w"},
  3067. ! {"ptrapssl",    two(0xf07b, 0x0004),    two(0xffff, 0xffff),    "#l"},
  3068. ! {"ptrapss",    two(0xf07c, 0x0004),    two(0xffff, 0xffff),    ""},
  3069. ! {"ptrapwcw",    two(0xf07a, 0x0009),    two(0xffff, 0xffff),    "#w"},
  3070. ! {"ptrapwcl",    two(0xf07b, 0x0009),    two(0xffff, 0xffff),    "#l"},
  3071. ! {"ptrapwc",    two(0xf07c, 0x0009),    two(0xffff, 0xffff),    ""},
  3072. ! {"ptrapwsw",    two(0xf07a, 0x0008),    two(0xffff, 0xffff),    "#w"},
  3073. ! {"ptrapwsl",    two(0xf07b, 0x0008),    two(0xffff, 0xffff),    "#l"},
  3074. ! {"ptrapws",    two(0xf07c, 0x0008),    two(0xffff, 0xffff),    ""},
  3075. ! {"pvalid",    two(0xf000, 0x2800),    two(0xffc0, 0xffff),    "Vs&s"},
  3076. ! {"pvalid",    two(0xf000, 0x2c00),    two(0xffc0, 0xfff8),    "A3&s" },
  3077. ! #endif /* m68851 */
  3078. ! };
  3079. ! int numopcodes=sizeof(m68k_opcodes)/sizeof(m68k_opcodes[0]);
  3080. ! struct m68k_opcode *endop = m68k_opcodes+sizeof(m68k_opcodes)/sizeof(m68k_opcodes[0]);
  3081. --- 193,200 ----
  3082.   #define one(x) ((x) << 16)
  3083.   #define two(x, y) (((x) << 16) + y)
  3084.   
  3085. ! extern int numopcodes;
  3086.   
  3087. ! extern struct m68k_opcode *endop;
  3088.   
  3089. ! extern struct m68k_opcode m68k_opcodes[];
  3090. diff -rcP gas-1.38.1-fsf/m68k.c gas-1.38.1-amiga/m68k.c
  3091. *** gas-1.38.1-fsf/m68k.c    Tue Dec  4 20:50:00 1990
  3092. --- gas-1.38.1-amiga/m68k.c    Thu Sep  9 22:50:10 1993
  3093. ***************
  3094. *** 18,23 ****
  3095. --- 18,34 ----
  3096.   along with GAS; see the file COPYING.  If not, write to
  3097.   the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
  3098.   
  3099. + #if 0
  3100. + #define DP(a) printf a
  3101. + #else
  3102. + #define DP(a)
  3103. + #endif
  3104.   #include <ctype.h>
  3105.   
  3106.   #include "m68k-opcode.h"
  3107. ***************
  3108. *** 31,46 ****
  3109.   #include "md.h"
  3110.   #include "m68k.h"
  3111.   
  3112. ! #ifdef M_SUN
  3113.   /* This variable contains the value to write out at the beginning of
  3114. !    the a.out file.  The 2<<16 means that this is a 68020 file instead
  3115.      of an old-style 68000 file */
  3116.   
  3117. ! long omagic = 2<<16|OMAGIC;    /* Magic byte for header file */
  3118. ! #else
  3119. ! long omagic = OMAGIC;
  3120. ! #endif
  3121.   
  3122.   /* This array holds the chars that always start a comment.  If the
  3123.      pre-processor is disabled, these aren't very useful */
  3124. --- 42,55 ----
  3125.   #include "md.h"
  3126.   #include "m68k.h"
  3127.   
  3128. ! extern char *index();
  3129.   /* This variable contains the value to write out at the beginning of
  3130. !    the a.out file.  The MID_SUN020 means that this is a 68020 file instead
  3131.      of an old-style 68000 file */
  3132.   
  3133. ! short mid    = MID_SUN020;
  3134. ! short omagic = OMAGIC;    /* Magic byte for header file */
  3135.   
  3136.   /* This array holds the chars that always start a comment.  If the
  3137.      pre-processor is disabled, these aren't very useful */
  3138. ***************
  3139. *** 90,99 ****
  3140. --- 99,120 ----
  3141.   #define BCC68000        4
  3142.   #define DBCC            5
  3143.   #define PCLEA        6
  3144. + #define ABSREL        7
  3145. + #define IMMREL        8
  3146.   
  3147.   /* BCC68000 is for patching in an extra jmp instruction for long offsets
  3148.      on the 68000.  The 68000 doesn't support long branches with branchs */
  3149.   
  3150. + /* ABSREL (nice name;-)) is used in small-code/-data mode, it might be 
  3151. +  * implemented base-relative (a4), pc-relative, or base-rel with an extra
  3152. +  * add instruction to add the base-register
  3153. +  *
  3154. +  * IMMREL is the analogous mode for immediate addressing of variables. This
  3155. +  * one can lead into situations, where a replacement is not possible:
  3156. +  * addl #foo,a0
  3157. +  * can't be made pc-relative, if foo is in the text segment */
  3158. +  
  3159.   /* This table desribes how you change sizes for the various types of variable
  3160.      size expressions.  This version only supports two kinds. */
  3161.   
  3162. ***************
  3163. *** 143,148 ****
  3164. --- 164,179 ----
  3165.   { 0,        0,        6,    0 },
  3166.   { 1,        1,        0,    0 },
  3167.   
  3168. + { 127,        -128,        0,    0 },
  3169. + { 32767,    -32768,        2,    TAB(ABSREL,LONG) },
  3170. + { 0,        0,        6,    0 },
  3171. + { 1,        1,        0,    0 },
  3172. + { 127,        -128,        0,    0 },
  3173. + { 32767,    -32768,        2,    TAB(IMMREL,LONG) },
  3174. + { 0,        0,        6,    0 },
  3175. + { 1,        1,        0,    0 },
  3176.   };
  3177.   
  3178.   void    s_data1(),    s_data2(),    s_even(),    s_space();
  3179. ***************
  3180. *** 325,330 ****
  3181. --- 356,362 ----
  3182.       char    *e_end;
  3183.       expressionS e_exp;
  3184.       short    e_siz;        /* 0== default 1==short/byte 2==word 3==long */
  3185. +     short    e_baserel;    /* if the expression is base relative */
  3186.   };
  3187.   
  3188.   /* Internal form of an operand.  */
  3189. ***************
  3190. *** 369,374 ****
  3191. --- 401,407 ----
  3192.           long int off;
  3193.           char    wid;
  3194.           char    pcrel;
  3195. +         char    baserel;
  3196.       } reloc[5];        /* Five is enough??? */
  3197.   };
  3198.   
  3199. ***************
  3200. *** 398,411 ****
  3201.   
  3202.   
  3203.   /* The numo+1 kludge is so we can hit the low order byte of the prev word. Blecch*/
  3204. ! #define add_fix(width,exp,pc_rel) {\
  3205.       the_ins.reloc[the_ins.nrel].n= ((width)=='B') ? (the_ins.numo*2-1) : \
  3206.           (((width)=='b') ? ((the_ins.numo-1)*2) : (the_ins.numo*2));\
  3207.       the_ins.reloc[the_ins.nrel].add=adds((exp));\
  3208.       the_ins.reloc[the_ins.nrel].sub=subs((exp));\
  3209.       the_ins.reloc[the_ins.nrel].off=offs((exp));\
  3210.       the_ins.reloc[the_ins.nrel].wid=width;\
  3211. !     the_ins.reloc[the_ins.nrel++].pcrel=pc_rel;\
  3212.   }
  3213.   
  3214.   #define add_frag(add,off,type)  {\
  3215. --- 431,446 ----
  3216.   
  3217.   
  3218.   /* The numo+1 kludge is so we can hit the low order byte of the prev word. Blecch*/
  3219. ! #define add_fix(width,exp,pc_rel,base_rel) {\
  3220.       the_ins.reloc[the_ins.nrel].n= ((width)=='B') ? (the_ins.numo*2-1) : \
  3221.           (((width)=='b') ? ((the_ins.numo-1)*2) : (the_ins.numo*2));\
  3222.       the_ins.reloc[the_ins.nrel].add=adds((exp));\
  3223.       the_ins.reloc[the_ins.nrel].sub=subs((exp));\
  3224.       the_ins.reloc[the_ins.nrel].off=offs((exp));\
  3225.       the_ins.reloc[the_ins.nrel].wid=width;\
  3226. !     the_ins.reloc[the_ins.nrel].pcrel=pc_rel;\
  3227. !     the_ins.reloc[the_ins.nrel++].baserel=base_rel;\
  3228. !     DP(("add_fix, bsr = %d\n",base_rel));\
  3229.   }
  3230.   
  3231.   #define add_frag(add,off,type)  {\
  3232. ***************
  3233. *** 686,692 ****
  3234.       i=m68k_reg_parse(&str);
  3235.       if((i==FAIL || *str!='\0') && *str!='@') {
  3236.           char *stmp;
  3237. -         char *index();
  3238.   
  3239.           if(i!=FAIL && (*str=='/' || *str=='-')) {
  3240.               opP->mode=REGLST;
  3241. --- 721,726 ----
  3242. ***************
  3243. *** 885,891 ****
  3244.           *s=ss;
  3245.           return OK;
  3246.       }
  3247. !     if(*ss!=':') {
  3248.           opP->error="Missing : in index register";
  3249.           *s=ss;
  3250.           return FAIL;
  3251. --- 919,927 ----
  3252.           *s=ss;
  3253.           return OK;
  3254.       }
  3255. !     /* to make life a bit easier for Motorola freaks, allow . as well as
  3256. !      * : as size introducer */
  3257. !     if(*ss!=':' && *ss != '.') {
  3258.           opP->error="Missing : in index register";
  3259.           *s=ss;
  3260.           return FAIL;
  3261. ***************
  3262. *** 984,990 ****
  3263.    * No argument string should generate such an error string:
  3264.    * it means a bug in our code, not in the user's text.
  3265.    *
  3266. !  * You MUST have called m86_ip_begin() once and m86_ip_end() never before using
  3267.    * this function.
  3268.    */
  3269.   
  3270. --- 1020,1026 ----
  3271.    * No argument string should generate such an error string:
  3272.    * it means a bug in our code, not in the user's text.
  3273.    *
  3274. !  * You MUST have called m68_ip_begin() once and m68_ip_end() never before using
  3275.    * this function.
  3276.    */
  3277.   
  3278. ***************
  3279. *** 1376,1382 ****
  3280.                   if(index("bwl",s[1])) nextword=get_num(opP->con1,80);
  3281.                   else nextword=nextword=get_num(opP->con1,0);
  3282.                   if(isvar(opP->con1))
  3283. !                     add_fix(s[1],opP->con1,0);
  3284.                   switch(s[1]) {
  3285.                   case 'b':
  3286.                       if(!isbyte(nextword))
  3287. --- 1412,1429 ----
  3288.                   if(index("bwl",s[1])) nextword=get_num(opP->con1,80);
  3289.                   else nextword=nextword=get_num(opP->con1,0);
  3290.                   if(isvar(opP->con1))
  3291. !                   {
  3292. !                     if (flagseen['p'] || flagseen['b'])
  3293. !                       {
  3294. ! DP(("adding IMMREL frag\n"));
  3295. !                         add_frag (adds(opP->con1),
  3296. !                                 offs(opP->con1),
  3297. !                                 TAB(IMMREL, SZ_UNDEF));
  3298. !                           break;
  3299. !                       }
  3300. !                      else
  3301. !                     add_fix(s[1],opP->con1,0,0);
  3302. !                   }
  3303.                   switch(s[1]) {
  3304.                   case 'b':
  3305.                       if(!isbyte(nextword))
  3306. ***************
  3307. *** 1489,1495 ****
  3308.                               break;
  3309.                           } else {
  3310.                               addword(0x0170);
  3311. !                             add_fix('l',opP->con1,1);
  3312.                           }
  3313.                       } else
  3314.                           addword(0x0170);
  3315. --- 1536,1542 ----
  3316.                               break;
  3317.                           } else {
  3318.                               addword(0x0170);
  3319. !                             add_fix('l',opP->con1,1,opP->con1->e_baserel);
  3320.                           }
  3321.                       } else
  3322.                           addword(0x0170);
  3323. ***************
  3324. *** 1502,1510 ****
  3325.   
  3326.                       if(isvar(opP->con1)) {
  3327.                           if(opP->reg==PC) {
  3328. !                             add_fix('w',opP->con1,1);
  3329.                           } else
  3330. !                             add_fix('w',opP->con1,0);
  3331.                           }
  3332.                   }
  3333.                   addword(nextword);
  3334. --- 1549,1557 ----
  3335.   
  3336.                       if(isvar(opP->con1)) {
  3337.                           if(opP->reg==PC) {
  3338. !                             add_fix('w',opP->con1,1,opP->con1->e_baserel);
  3339.                           } else
  3340. !                             add_fix('w',opP->con1,0,opP->con1->e_baserel);
  3341.                           }
  3342.                   }
  3343.                   addword(nextword);
  3344. ***************
  3345. *** 1560,1566 ****
  3346.                           nextword +=baseo&0xff;
  3347.                           addword(nextword);
  3348.                           if(isvar(opP->con1))
  3349. !                             add_fix('B',opP->con1,0);
  3350.                           break;
  3351.                       }
  3352.                   } else
  3353. --- 1607,1613 ----
  3354.                           nextword +=baseo&0xff;
  3355.                           addword(nextword);
  3356.                           if(isvar(opP->con1))
  3357. !                             add_fix('B',opP->con1,0,0);
  3358.                           break;
  3359.                       }
  3360.                   } else
  3361. ***************
  3362. *** 1623,1632 ****
  3363.   
  3364.                   if(isvar(opP->con1)) {
  3365.                       if(opP->reg==PC || opP->reg==ZPC) {
  3366. !                         add_fix(siz1==3 ? 'l' : 'w',opP->con1,1);
  3367.                           opP->con1->e_exp.X_add_number+=6;
  3368.                       } else
  3369. !                         add_fix(siz1==3 ? 'l' : 'w',opP->con1,0);
  3370.                   }
  3371.                   if(siz1==3)
  3372.                       addword(baseo>>16);
  3373. --- 1670,1679 ----
  3374.   
  3375.                   if(isvar(opP->con1)) {
  3376.                       if(opP->reg==PC || opP->reg==ZPC) {
  3377. !                         add_fix(siz1==3 ? 'l' : 'w',opP->con1,1,opP->con1->e_baserel);
  3378.                           opP->con1->e_exp.X_add_number+=6;
  3379.                       } else
  3380. !                         add_fix(siz1==3 ? 'l' : 'w',opP->con1,0,opP->con1->e_baserel);
  3381.                   }
  3382.                   if(siz1==3)
  3383.                       addword(baseo>>16);
  3384. ***************
  3385. *** 1635,1644 ****
  3386.   
  3387.                   if(isvar(opP->con2)) {
  3388.                       if(opP->reg==PC || opP->reg==ZPC) {
  3389. !                         add_fix(siz2==3 ? 'l' : 'w',opP->con2,1);
  3390.                           opP->con1->e_exp.X_add_number+=6;
  3391.                       } else
  3392. !                         add_fix(siz2==3 ? 'l' : 'w',opP->con2,0);
  3393.                   }
  3394.                   if(siz2==3)
  3395.                       addword(outro>>16);
  3396. --- 1682,1691 ----
  3397.   
  3398.                   if(isvar(opP->con2)) {
  3399.                       if(opP->reg==PC || opP->reg==ZPC) {
  3400. !                         add_fix(siz2==3 ? 'l' : 'w',opP->con2,1,opP->con2->e_baserel);
  3401.                           opP->con1->e_exp.X_add_number+=6;
  3402.                       } else
  3403. !                         add_fix(siz2==3 ? 'l' : 'w',opP->con2,0,opP->con2->e_baserel);
  3404.                   }
  3405.                   if(siz2==3)
  3406.                       addword(outro>>16);
  3407. ***************
  3408. *** 1649,1659 ****
  3409. --- 1696,1708 ----
  3410.   
  3411.               case ABSL:
  3412.                   nextword=get_num(opP->con1,80);
  3413. + DP(("case ABSL: opP->con1->e_siz = %d\n",opP->con1->e_siz));
  3414.                   switch(opP->con1->e_siz) {
  3415.                   default:
  3416.                       as_warn("Unknown size for absolute reference");
  3417.                   case 0:
  3418.                       if(!isvar(opP->con1) && issword(offs(opP->con1))) {
  3419. + DP(("tmpreg=7.0\n"));
  3420.                           tmpreg=0x38; /* 7.0 */
  3421.                           addword(nextword);
  3422.                           break;
  3423. ***************
  3424. *** 1664,1671 ****
  3425.                          !subs(opP->con1) &&
  3426.                          seg(opP->con1)==SEG_TEXT &&
  3427.                          now_seg==SEG_TEXT &&
  3428. !                        flagseen['m']==0 &&
  3429.                           !index("~%&$?", s[0])) {
  3430.                           tmpreg=0x3A; /* 7.2 */
  3431.                           add_frag(adds(opP->con1),
  3432.                                offs(opP->con1),
  3433. --- 1713,1722 ----
  3434.                          !subs(opP->con1) &&
  3435.                          seg(opP->con1)==SEG_TEXT &&
  3436.                          now_seg==SEG_TEXT &&
  3437. !                        (flagseen['m']==0 ||
  3438. !                         flagseen['p']==1) &&
  3439.                           !index("~%&$?", s[0])) {
  3440. + DP(("tmpreg=7.2\n"));
  3441.                           tmpreg=0x3A; /* 7.2 */
  3442.                           add_frag(adds(opP->con1),
  3443.                                offs(opP->con1),
  3444. ***************
  3445. *** 1673,1689 ****
  3446.                           break;
  3447.                       }
  3448.                   case 3:        /* Fall through into long */
  3449.                       if(isvar(opP->con1))
  3450. !                         add_fix('l',opP->con1,0);
  3451.   
  3452.                       tmpreg=0x39;    /* 7.1 mode */
  3453.                       addword(nextword>>16);
  3454.                       addword(nextword);
  3455.                       break;
  3456.   
  3457.                   case 2:        /* Word */
  3458.                       if(isvar(opP->con1))
  3459. !                         add_fix('w',opP->con1,0);
  3460.   
  3461.                       tmpreg=0x38;    /* 7.0 mode */
  3462.                       addword(nextword);
  3463. --- 1724,1765 ----
  3464.                           break;
  3465.                       }
  3466.                   case 3:        /* Fall through into long */
  3467. +                     if (flagseen['p'] || flagseen['b'])
  3468. +                       {
  3469. + DP(("adding ABSREL frag\n"));
  3470. +                         tmpreg=0x3A; /* 7.2 */
  3471. +                         /* opP->con1->e_exp.X_add_number+=2; */
  3472. +                         add_frag (adds(opP->con1),
  3473. +                                   offs(opP->con1),
  3474. +                                   TAB(ABSREL, SZ_UNDEF));
  3475. +                         break;
  3476. +                       }
  3477. + #if 0
  3478. +                     if (flagseen['b'] && now_seg==SEG_TEXT)
  3479. +                       {
  3480. + DP(("tmpreg=5.4\n"));
  3481. +                         add_fix('w', opP->con1, 0, 1);
  3482. +                         tmpreg = 0x2c; /* 5.4 mode */
  3483. +                         addword (nextword);
  3484. +                         break;
  3485. +                       }
  3486. + #endif
  3487.                       if(isvar(opP->con1))
  3488. !                         add_fix('l',opP->con1,0,opP->con1->e_baserel);
  3489.   
  3490.                       tmpreg=0x39;    /* 7.1 mode */
  3491. + DP(("tmpreg=7.1\n"));
  3492.                       addword(nextword>>16);
  3493.                       addword(nextword);
  3494.                       break;
  3495.   
  3496.                   case 2:        /* Word */
  3497.                       if(isvar(opP->con1))
  3498. !                         add_fix('w',opP->con1,0,opP->con1->e_baserel);
  3499. ! DP(("tmpreg=7.0#2\n"));
  3500.   
  3501.                       tmpreg=0x38;    /* 7.0 mode */
  3502.                       addword(nextword);
  3503. ***************
  3504. *** 1717,1723 ****
  3505.               }
  3506.               tmpreg=get_num(opP->con1,tmpreg);
  3507.               if(isvar(opP->con1))
  3508. !                 add_fix(s[1],opP->con1,0);
  3509.               switch(s[1]) {
  3510.               case 'b':    /* Danger:  These do no check for
  3511.                          certain types of overflow.
  3512. --- 1793,1799 ----
  3513.               }
  3514.               tmpreg=get_num(opP->con1,tmpreg);
  3515.               if(isvar(opP->con1))
  3516. !                 add_fix(s[1],opP->con1,0,opP->con1->e_baserel);
  3517.               switch(s[1]) {
  3518.               case 'b':    /* Danger:  These do no check for
  3519.                          certain types of overflow.
  3520. ***************
  3521. *** 1765,1778 ****
  3522.                   if(opP->con1->e_siz) {    /* Deal with fixed size stuff by hand */
  3523.                       switch(opP->con1->e_siz) {
  3524.                       case 1:
  3525. !                         add_fix('b',opP->con1,1);
  3526.                           break;
  3527.                       case 2:
  3528. !                         add_fix('w',opP->con1,1);
  3529.                           addword(0);
  3530.                           break;
  3531.                       case 3:
  3532. !                         add_fix('l',opP->con1,1);
  3533.                           addword(0);
  3534.                           addword(0);
  3535.                           break;
  3536. --- 1841,1854 ----
  3537.                   if(opP->con1->e_siz) {    /* Deal with fixed size stuff by hand */
  3538.                       switch(opP->con1->e_siz) {
  3539.                       case 1:
  3540. !                         add_fix('b',opP->con1,1,opP->con1->e_baserel);
  3541.                           break;
  3542.                       case 2:
  3543. !                         add_fix('w',opP->con1,1,opP->con1->e_baserel);
  3544.                           addword(0);
  3545.                           break;
  3546.                       case 3:
  3547. !                         add_fix('l',opP->con1,1,opP->con1->e_baserel);
  3548.                           addword(0);
  3549.                           addword(0);
  3550.                           break;
  3551. ***************
  3552. *** 1782,1788 ****
  3553.                   } else if(subs(opP->con1)) {
  3554.                           /* We can't relax it */
  3555.                       the_ins.opcode[the_ins.numo-1]|=0xff;
  3556. !                     add_fix('l',opP->con1,1);
  3557.                       addword(0);
  3558.                       addword(0);
  3559.                   } else if(adds(opP->con1)) {
  3560. --- 1858,1864 ----
  3561.                   } else if(subs(opP->con1)) {
  3562.                           /* We can't relax it */
  3563.                       the_ins.opcode[the_ins.numo-1]|=0xff;
  3564. !                     add_fix('l',opP->con1,1,opP->con1->e_baserel);
  3565.                       addword(0);
  3566.                       addword(0);
  3567.                   } else if(adds(opP->con1)) {
  3568. ***************
  3569. *** 1798,1804 ****
  3570.                       add_frag((symbolS *)0,offs(opP->con1),TAB(BRANCH,BYTE)); */
  3571.                       the_ins.opcode[the_ins.numo-1]|=0xff;
  3572.                       offs(opP->con1)+=4;
  3573. !                     add_fix('l',opP->con1,1);
  3574.                       addword(0);
  3575.                       addword(0);
  3576.                   }
  3577. --- 1874,1880 ----
  3578.                       add_frag((symbolS *)0,offs(opP->con1),TAB(BRANCH,BYTE)); */
  3579.                       the_ins.opcode[the_ins.numo-1]|=0xff;
  3580.                       offs(opP->con1)+=4;
  3581. !                     add_fix('l',opP->con1,1,opP->con1->e_baserel);
  3582.                       addword(0);
  3583.                       addword(0);
  3584.                   }
  3585. ***************
  3586. *** 1815,1821 ****
  3587.   
  3588.                           /* Don't ask! */
  3589.                       opP->con1->e_exp.X_add_number+=2;
  3590. !                     add_fix('w',opP->con1,1);
  3591.                   }
  3592.                   addword(0);
  3593.                   break;
  3594. --- 1891,1897 ----
  3595.   
  3596.                           /* Don't ask! */
  3597.                       opP->con1->e_exp.X_add_number+=2;
  3598. !                     add_fix('w',opP->con1,1,opP->con1->e_baserel);
  3599.                   }
  3600.                   addword(0);
  3601.                   break;
  3602. ***************
  3603. *** 1823,1834 ****
  3604.                   if(opP->con1->e_siz) {
  3605.                       switch(opP->con1->e_siz) {
  3606.                       case 2:
  3607. !                         add_fix('w',opP->con1,1)
  3608.                           addword(0);
  3609.                           break;
  3610.                       case 3:
  3611.                           the_ins.opcode[the_ins.numo-1]|=0x40;
  3612. !                         add_fix('l',opP->con1,1);
  3613.                           addword(0);
  3614.                           addword(0);
  3615.                           break;
  3616. --- 1899,1910 ----
  3617.                   if(opP->con1->e_siz) {
  3618.                       switch(opP->con1->e_siz) {
  3619.                       case 2:
  3620. !                         add_fix('w',opP->con1,1,opP->con1->e_baserel)
  3621.                           addword(0);
  3622.                           break;
  3623.                       case 3:
  3624.                           the_ins.opcode[the_ins.numo-1]|=0x40;
  3625. !                         add_fix('l',opP->con1,1,opP->con1->e_baserel);
  3626.                           addword(0);
  3627.                           addword(0);
  3628.                           break;
  3629. ***************
  3630. *** 1837,1850 ****
  3631.                           break;
  3632.                       }
  3633.                   } else if(subs(opP->con1)) {
  3634. !                     add_fix('l',opP->con1,1);
  3635.                       add_frag((symbolS *)0,(long)0,TAB(FBRANCH,LONG));
  3636.                   } else if(adds(opP->con1)) {
  3637.                       add_frag(adds(opP->con1),offs(opP->con1),TAB(FBRANCH,SZ_UNDEF));
  3638.                   } else {
  3639.                       /* add_frag((symbolS *)0,offs(opP->con1),TAB(FBRANCH,SHORT)); */
  3640.                       the_ins.opcode[the_ins.numo-1]|=0x40;
  3641. !                     add_fix('l',opP->con1,1);
  3642.                       addword(0);
  3643.                       addword(4);
  3644.                   }
  3645. --- 1913,1926 ----
  3646.                           break;
  3647.                       }
  3648.                   } else if(subs(opP->con1)) {
  3649. !                     add_fix('l',opP->con1,1,opP->con1->e_baserel);
  3650.                       add_frag((symbolS *)0,(long)0,TAB(FBRANCH,LONG));
  3651.                   } else if(adds(opP->con1)) {
  3652.                       add_frag(adds(opP->con1),offs(opP->con1),TAB(FBRANCH,SZ_UNDEF));
  3653.                   } else {
  3654.                       /* add_frag((symbolS *)0,offs(opP->con1),TAB(FBRANCH,SHORT)); */
  3655.                       the_ins.opcode[the_ins.numo-1]|=0x40;
  3656. !                     add_fix('l',opP->con1,1,opP->con1->e_baserel);
  3657.                       addword(0);
  3658.                       addword(4);
  3659.                   }
  3660. ***************
  3661. *** 2424,2430 ****
  3662.                   the_ins.reloc[m].add,
  3663.                   the_ins.reloc[m].sub,
  3664.                   the_ins.reloc[m].off,
  3665. !                 the_ins.reloc[m].pcrel);
  3666.           }
  3667.           return;
  3668.       }
  3669. --- 2500,2507 ----
  3670.                   the_ins.reloc[m].add,
  3671.                   the_ins.reloc[m].sub,
  3672.                   the_ins.reloc[m].off,
  3673. !                 the_ins.reloc[m].pcrel,
  3674. !                 the_ins.reloc[m].baserel);
  3675.           }
  3676.           return;
  3677.       }
  3678. ***************
  3679. *** 2461,2467 ****
  3680.                   the_ins.reloc[m].add,
  3681.                   the_ins.reloc[m].sub,
  3682.                   the_ins.reloc[m].off,
  3683. !                 the_ins.reloc[m].pcrel);
  3684.           }
  3685.           know(the_ins.fragb[n].fadd);
  3686.           (void)frag_var(rs_machine_dependent,10,0,(relax_substateT)(the_ins.fragb[n].fragty),
  3687. --- 2538,2545 ----
  3688.                   the_ins.reloc[m].add,
  3689.                   the_ins.reloc[m].sub,
  3690.                   the_ins.reloc[m].off,
  3691. !                 the_ins.reloc[m].pcrel,
  3692. !                 the_ins.reloc[m].baserel);
  3693.           }
  3694.           know(the_ins.fragb[n].fadd);
  3695.           (void)frag_var(rs_machine_dependent,10,0,(relax_substateT)(the_ins.fragb[n].fragty),
  3696. ***************
  3697. *** 2493,2499 ****
  3698.               the_ins.reloc[m].add,
  3699.               the_ins.reloc[m].sub,
  3700.               the_ins.reloc[m].off,
  3701. !             the_ins.reloc[m].pcrel);
  3702.       }
  3703.   }
  3704.   
  3705. --- 2571,2578 ----
  3706.               the_ins.reloc[m].add,
  3707.               the_ins.reloc[m].sub,
  3708.               the_ins.reloc[m].off,
  3709. !             the_ins.reloc[m].pcrel,
  3710. !             the_ins.reloc[m].baserel);
  3711.       }
  3712.   }
  3713.   
  3714. ***************
  3715. *** 2741,2746 ****
  3716. --- 2820,2827 ----
  3717.     /* The displacement of the address, from current location.  */
  3718.     disp = (fragP->fr_symbol->sy_value + fragP->fr_offset) - object_address;
  3719.   
  3720. + DP(("md_convert_frag: fragP->fr_subtype = $%x\n", fragP->fr_subtype));
  3721.     switch(fragP->fr_subtype) {
  3722.     case TAB(BCC68000,BYTE):
  3723.     case TAB(BRANCH,BYTE):
  3724. ***************
  3725. *** 2762,2783 ****
  3726.       break;
  3727.     case TAB(BRANCH,LONG):
  3728.       if(flagseen['m']) {
  3729. !       if(fragP->fr_opcode[0]==0x61) {
  3730. !     fragP->fr_opcode[0]= 0x4E;
  3731. !     fragP->fr_opcode[1]= 0xB9;    /* JBSR with ABSL LONG offset */
  3732. !     subseg_change(SEG_TEXT, 0);
  3733. !     fix_new(fragP, fragP->fr_fix, 4, fragP->fr_symbol, 0, fragP->fr_offset, 0);
  3734. !     fragP->fr_fix+=4;
  3735. !     ext=0;
  3736. !       } else if(fragP->fr_opcode[0]==0x60) {
  3737. !         fragP->fr_opcode[0]= 0x4E;
  3738. !         fragP->fr_opcode[1]= 0xF9;      /* JMP  with ABSL LONG offset */
  3739. !         subseg_change(SEG_TEXT, 0);
  3740. !         fix_new(fragP, fragP->fr_fix, 4, fragP->fr_symbol, 0, fragP->fr_offset,0);
  3741. !         fragP->fr_fix+=4;
  3742. !         ext=0;
  3743. !       }else {
  3744. !         as_bad("Long branch offset not supported.");
  3745.         }
  3746.       } else {
  3747.         fragP->fr_opcode[1]=0xff;
  3748. --- 2843,2868 ----
  3749.       break;
  3750.     case TAB(BRANCH,LONG):
  3751.       if(flagseen['m']) {
  3752. !       if (flagseen['p']) {
  3753. !         as_bad("Long branch in small code model, not supported.");
  3754. !       } else {
  3755. !         if(fragP->fr_opcode[0]==0x61) { /* BSR */
  3756. !         fragP->fr_opcode[0]= 0x4E;
  3757. !         fragP->fr_opcode[1]= 0xB9;    /* JBSR with ABSL LONG offset */
  3758. !         subseg_change(SEG_TEXT, 0);
  3759. !         fix_new(fragP, fragP->fr_fix, 4, fragP->fr_symbol, 0, fragP->fr_offset, 0, 0);
  3760. !         fragP->fr_fix+=4;
  3761. !         ext=0;
  3762. !         } else if(fragP->fr_opcode[0]==0x60) {
  3763. !           fragP->fr_opcode[0]= 0x4E;
  3764. !           fragP->fr_opcode[1]= 0xF9;      /* JMP  with ABSL LONG offset */
  3765. !           subseg_change(SEG_TEXT, 0);
  3766. !           fix_new(fragP, fragP->fr_fix, 4, fragP->fr_symbol, 0, fragP->fr_offset,0,0);
  3767. !           fragP->fr_fix+=4;
  3768. !           ext=0;
  3769. !         }else {
  3770. !           as_bad("Long branch offset not supported.");
  3771. !         }
  3772.         }
  3773.       } else {
  3774.         fragP->fr_opcode[1]=0xff;
  3775. ***************
  3776. *** 2798,2804 ****
  3777.           fragP->fr_fix += 2;         /* account for jmp instruction */
  3778.           subseg_change(SEG_TEXT,0);
  3779.           fix_new(fragP, fragP->fr_fix, 4, fragP->fr_symbol, 0, 
  3780. !                      fragP->fr_offset,0);
  3781.           fragP->fr_fix += 4;
  3782.           ext=0;
  3783.       break;
  3784. --- 2883,2889 ----
  3785.           fragP->fr_fix += 2;         /* account for jmp instruction */
  3786.           subseg_change(SEG_TEXT,0);
  3787.           fix_new(fragP, fragP->fr_fix, 4, fragP->fr_symbol, 0, 
  3788. !                      fragP->fr_offset,0,0);
  3789.           fragP->fr_fix += 4;
  3790.           ext=0;
  3791.       break;
  3792. ***************
  3793. *** 2816,2822 ****
  3794.           fragP->fr_fix += 6;         /* account for bra/jmp instructions */
  3795.           subseg_change(SEG_TEXT,0);
  3796.           fix_new(fragP, fragP->fr_fix, 4, fragP->fr_symbol, 0, 
  3797. !                      fragP->fr_offset,0);
  3798.           fragP->fr_fix += 4;
  3799.           ext=0;
  3800.       break;
  3801. --- 2901,2907 ----
  3802.           fragP->fr_fix += 6;         /* account for bra/jmp instructions */
  3803.           subseg_change(SEG_TEXT,0);
  3804.           fix_new(fragP, fragP->fr_fix, 4, fragP->fr_symbol, 0, 
  3805. !                      fragP->fr_offset,0,0);
  3806.           fragP->fr_fix += 4;
  3807.           ext=0;
  3808.       break;
  3809. ***************
  3810. *** 2829,2842 ****
  3811.       ext=4;
  3812.       break;
  3813.     case TAB(PCREL,SHORT):
  3814.       ext=2;
  3815.       break;
  3816.     case TAB(PCREL,LONG):
  3817.       /* The thing to do here is force it to ABSOLUTE LONG, since
  3818.          PCREL is really trying to shorten an ABSOLUTE address anyway */
  3819.       /* JF FOO This code has not been tested */
  3820.       subseg_change(SEG_TEXT,0);
  3821. !     fix_new(fragP, fragP->fr_fix, 4, fragP->fr_symbol, 0, fragP->fr_offset, 0);
  3822.       if((fragP->fr_opcode[1] & 0x3F) != 0x3A)
  3823.         as_bad("Internal error (long PC-relative operand) for insn 0x%04lx at 0x%lx",
  3824.               fragP->fr_opcode[0],fragP->fr_address);
  3825. --- 2914,2933 ----
  3826.       ext=4;
  3827.       break;
  3828.     case TAB(PCREL,SHORT):
  3829. + DP(("TAB(PCREL,SHORT)\n"));
  3830.       ext=2;
  3831.       break;
  3832.     case TAB(PCREL,LONG):
  3833. + DP(("TAB(PCREL,LONG)\n"));
  3834.       /* The thing to do here is force it to ABSOLUTE LONG, since
  3835.          PCREL is really trying to shorten an ABSOLUTE address anyway */
  3836.       /* JF FOO This code has not been tested */
  3837. +     
  3838. +     if (flagseen['p'])
  3839. +       as_bad ("Trying to force a pcrel thing into absolute mode while in small code mode");
  3840. +     
  3841.       subseg_change(SEG_TEXT,0);
  3842. !     fix_new(fragP, fragP->fr_fix, 4, fragP->fr_symbol, 0, fragP->fr_offset, 0,0);
  3843.       if((fragP->fr_opcode[1] & 0x3F) != 0x3A)
  3844.         as_bad("Internal error (long PC-relative operand) for insn 0x%04lx at 0x%lx",
  3845.               fragP->fr_opcode[0],fragP->fr_address);
  3846. ***************
  3847. *** 2849,2863 ****
  3848.       ext=0;
  3849.       break;
  3850.     case TAB(PCLEA,SHORT):
  3851.       subseg_change(SEG_TEXT,0);
  3852. !     fix_new(fragP,(int)(fragP->fr_fix),2,fragP->fr_symbol,(symbolS *)0,fragP->fr_offset,1);
  3853.       fragP->fr_opcode[1] &= ~0x3F;
  3854.       fragP->fr_opcode[1] |= 0x3A;
  3855.       ext=2;
  3856.       break;
  3857.     case TAB(PCLEA,LONG):
  3858.       subseg_change(SEG_TEXT,0);
  3859. !     fix_new(fragP,(int)(fragP->fr_fix)+2,4,fragP->fr_symbol,(symbolS *)0,fragP->fr_offset+2,1);
  3860.       *buffer_address++ = 0x01;
  3861.       *buffer_address++ = 0x70;
  3862.       fragP->fr_fix+=2;
  3863. --- 2940,2956 ----
  3864.       ext=0;
  3865.       break;
  3866.     case TAB(PCLEA,SHORT):
  3867. + DP(("TAB(PCLEA,SHORT)\n"));
  3868.       subseg_change(SEG_TEXT,0);
  3869. !     fix_new(fragP,(int)(fragP->fr_fix),2,fragP->fr_symbol,(symbolS *)0,fragP->fr_offset, 1, 0);
  3870.       fragP->fr_opcode[1] &= ~0x3F;
  3871.       fragP->fr_opcode[1] |= 0x3A;
  3872.       ext=2;
  3873.       break;
  3874.     case TAB(PCLEA,LONG):
  3875. + DP(("TAB(PCLEA,LONG)\n"));
  3876.       subseg_change(SEG_TEXT,0);
  3877. !     fix_new(fragP,(int)(fragP->fr_fix)+2,4,fragP->fr_symbol,(symbolS *)0,fragP->fr_offset+2,1,0);
  3878.       *buffer_address++ = 0x01;
  3879.       *buffer_address++ = 0x70;
  3880.       fragP->fr_fix+=2;
  3881. ***************
  3882. *** 2865,2870 ****
  3883. --- 2958,3046 ----
  3884.       ext=4;
  3885.       break;
  3886.   
  3887. +   case TAB(ABSREL,BYTE):
  3888. + DP(("TAB(ABSREL,BYTE)\n"));
  3889. +     as_bad ("ABSREL_BYTE: how the ** does this look ?? \n");
  3890. +     break;
  3891. +   case TAB(ABSREL,SHORT):
  3892. + DP(("TAB(ABSREL,SHORT)\n"));
  3893. +     subseg_change (SEG_TEXT, 0);
  3894. +     ext = 2;
  3895. +     fragP->fr_opcode[1] &= ~0x3f;
  3896. +     if ((fragP->fr_symbol->sy_type & N_TYPE) == N_TEXT)
  3897. +       {
  3898. +         /* so this is really a pc-relative address */
  3899. +         fragP->fr_opcode[1] |=  0x3a;
  3900. +         fix_new(fragP,(int)(fragP->fr_fix),2,fragP->fr_symbol,(symbolS *)0, fragP->fr_offset+2, 1, 0);
  3901. +     break;
  3902. +       }
  3903. +     /* in that case we have to generate base-relative code
  3904. +      * (note: if we're in N_UNDF, this could as well be pc-relative, but the linker
  3905. +      *        will have to do the final patch in that case) */
  3906. +     fragP->fr_opcode[1] |=  0x2c;  /* (a4) */
  3907. +     fix_new(fragP,(int)(fragP->fr_fix),2,fragP->fr_symbol,(symbolS *)0,fragP->fr_offset, 0, 1);
  3908. +     break;
  3909. +   case TAB(ABSREL,LONG):
  3910. + DP(("TAB(ABSREL,LONG)\n"));
  3911. +     as_bad ("ABSREL_LONG: sorry, not supported.\n");
  3912. +     break;
  3913. +   case TAB(IMMREL,BYTE):
  3914. + DP(("TAB(IMMREL,BYTE)\n"));
  3915. +     as_bad ("IMMREL_BYTE: how the ** does this look ?? \n");
  3916. +     break;
  3917. +   case TAB(IMMREL,SHORT):
  3918. + DP(("TAB(IMMREL,SHORT)\n"));
  3919. +     subseg_change (SEG_TEXT, 0);
  3920. +     ext = 0; 
  3921. +     if ((fragP->fr_symbol->sy_type & N_TYPE) == N_TEXT)
  3922. +       {
  3923. +     /* we can only fix operations on data registers, not on <ea> */
  3924. +     if ((fragP->fr_opcode[1] & 0x38) != 0)
  3925. +       {
  3926. +         /* use the normal reloc32, sigh... */
  3927. +         fix_new (fragP,(int)(fragP->fr_fix),4,fragP->fr_symbol,(symbolS *)0, fragP->fr_offset, 0, 0);
  3928. +         fragP->fr_fix += 4;
  3929. +         break;
  3930. +       }
  3931. +         /* so this is really a pc-relative address
  3932. +          * What we have to do now is a VERY UGLY AND BIG KLUDGE. Basically do the
  3933. +          * following thing:
  3934. +          *   turn
  3935. +          *     addl #foo,d0      (foo is N_TEXT)
  3936. +          *   into
  3937. +          *     pea  foo(pc)
  3938. +          *     addl (sp)+,d0
  3939. +          */
  3940. +         *buffer_address++ = fragP->fr_opcode[0]; /* save the original command */
  3941. +     *buffer_address++ = fragP->fr_opcode[1];
  3942. +         fragP->fr_opcode[0] = 0x48;     /* PEA */
  3943. +         fragP->fr_opcode[1] = 0x7a;
  3944. +         fix_new(fragP,(int)(fragP->fr_fix),2,fragP->fr_symbol,(symbolS *)0, fragP->fr_offset+2, 1, 0);
  3945. +     
  3946. +         *buffer_address++ = 0x9f;    /* sp@+ */
  3947. +     fragP->fr_fix += 4;    /* two byte fix, two byte code extension */
  3948. +     break;
  3949. +       }
  3950. +     /* in that case we have to generate base-relative code
  3951. +      * (note: if we're in N_UNDF, this could as well be pc-relative, but the linker
  3952. +      *        will have to do the final patch in that case) */
  3953. +     /* analogous (more or less;-)) to above, the following conversion is done
  3954. +      *   turn
  3955. +      *     addl #bar,d0        (bar is N_DATA)
  3956. +      *   into
  3957. +      *       addl #<bar>,d0    where <bar> is a baserel-reloc
  3958. +      *     addl a4,d0
  3959. +      */
  3960. +  
  3961. +     fix_new(fragP,(int)(fragP->fr_fix), 4,fragP->fr_symbol,(symbolS *)0,fragP->fr_offset, 0, 1);
  3962. +     *buffer_address++ = 0xd0;
  3963. +     *buffer_address++ = 0x8c;
  3964. +     break;
  3965. +   
  3966.     }
  3967.     if(ext) {
  3968.       md_number_to_chars(buffer_address,(long)disp,(int)ext);
  3969. ***************
  3970. *** 2885,2890 ****
  3971. --- 3061,3067 ----
  3972.   
  3973.       old_fix=fragP->fr_fix;
  3974.   
  3975. + DP(("md_estimate_size_before_relax, fragP->fr_subtype = $%x\n",fragP->fr_subtype));
  3976.       /* handle SZ_UNDEF first, it can be changed to BYTE or SHORT */
  3977.       switch(fragP->fr_subtype) {
  3978.       case TAB(BRANCH,SZ_UNDEF):
  3979. ***************
  3980. *** 2892,2928 ****
  3981.               fragP->fr_subtype=TAB(TABTYPE(fragP->fr_subtype),BYTE);
  3982.               break;
  3983.           } else if(flagseen['m']) {
  3984. !             if(fragP->fr_opcode[0]==0x61) {
  3985. !                 if(flagseen['l']) {
  3986.                       fragP->fr_opcode[0]= 0x4E;
  3987.                       fragP->fr_opcode[1]= 0xB8;    /* JBSR with ABSL WORD offset */
  3988.                       subseg_change(SEG_TEXT, 0);
  3989.                       fix_new(fragP, fragP->fr_fix, 2, 
  3990. !                         fragP->fr_symbol, 0, fragP->fr_offset, 0);
  3991.                       fragP->fr_fix+=2;
  3992.                   } else {
  3993.                       fragP->fr_opcode[0]= 0x4E;
  3994.                       fragP->fr_opcode[1]= 0xB9;    /* JBSR with ABSL LONG offset */
  3995.                       subseg_change(SEG_TEXT, 0);
  3996.                       fix_new(fragP, fragP->fr_fix, 4, 
  3997. !                         fragP->fr_symbol, 0, fragP->fr_offset, 0);
  3998.                       fragP->fr_fix+=4;
  3999.                   }
  4000.                   frag_wane(fragP);
  4001. !             } else if(fragP->fr_opcode[0]==0x60) {
  4002. !                 if(flagseen['l']) {
  4003.                       fragP->fr_opcode[0]= 0x4E;
  4004.                       fragP->fr_opcode[1]= 0xF8;    /* JMP    with ABSL WORD offset */
  4005.                       subseg_change(SEG_TEXT, 0);
  4006.                       fix_new(fragP, fragP->fr_fix, 2, 
  4007. !                         fragP->fr_symbol, 0, fragP->fr_offset, 0);
  4008.                       fragP->fr_fix+=2;
  4009.                   } else {
  4010.                       fragP->fr_opcode[0]= 0x4E;
  4011.                       fragP->fr_opcode[1]= 0xF9;    /* JMP    with ABSL LONG offset */
  4012.                       subseg_change(SEG_TEXT, 0);
  4013.                       fix_new(fragP, fragP->fr_fix, 4, 
  4014. !                         fragP->fr_symbol, 0, fragP->fr_offset, 0);
  4015.                       fragP->fr_fix+=4;
  4016.                   }
  4017.                   frag_wane(fragP);
  4018. --- 3069,3125 ----
  4019.               fragP->fr_subtype=TAB(TABTYPE(fragP->fr_subtype),BYTE);
  4020.               break;
  4021.           } else if(flagseen['m']) {
  4022. !             if(fragP->fr_opcode[0]==0x61) { /* BSR */
  4023. !                 if (flagseen['p']) {
  4024. !                     /* leave the BSR, no need to change
  4025. !                      * it into a JSR (PC,..) */
  4026. !                     subseg_change(SEG_TEXT, 0);
  4027. !                     fix_new(fragP, fragP->fr_fix, 2, 
  4028. !                         fragP->fr_symbol, 0, fragP->fr_offset, 1, 0);
  4029. !                     fragP->fr_fix+=2;
  4030. !                 } else if(flagseen['l']) {
  4031. ! #if 0
  4032.                       fragP->fr_opcode[0]= 0x4E;
  4033.                       fragP->fr_opcode[1]= 0xB8;    /* JBSR with ABSL WORD offset */
  4034.                       subseg_change(SEG_TEXT, 0);
  4035.                       fix_new(fragP, fragP->fr_fix, 2, 
  4036. !                         fragP->fr_symbol, 0, fragP->fr_offset, 0, 0);
  4037.                       fragP->fr_fix+=2;
  4038. + #else
  4039. +                     subseg_change(SEG_TEXT, 0);
  4040. +             fix_new(fragP,(int)(fragP->fr_fix),2,fragP->fr_symbol,
  4041. +  (symbolS *)0,fragP->fr_offset + 2,1, 0);
  4042. +             fragP->fr_fix+=2;
  4043. +             fragP->fr_opcode[1]=0x00;
  4044. + #endif
  4045.                   } else {
  4046.                       fragP->fr_opcode[0]= 0x4E;
  4047.                       fragP->fr_opcode[1]= 0xB9;    /* JBSR with ABSL LONG offset */
  4048.                       subseg_change(SEG_TEXT, 0);
  4049.                       fix_new(fragP, fragP->fr_fix, 4, 
  4050. !                         fragP->fr_symbol, 0, fragP->fr_offset, 0, 0);
  4051.                       fragP->fr_fix+=4;
  4052.                   }
  4053.                   frag_wane(fragP);
  4054. !             } else if(fragP->fr_opcode[0]==0x60) {    /* BRA */
  4055. !                 if(flagseen['p']) {
  4056. !                     subseg_change(SEG_TEXT, 0);
  4057. !                     fix_new(fragP, fragP->fr_fix, 2, 
  4058. !                         fragP->fr_symbol, 0, fragP->fr_offset, 1, 0);
  4059. !                     fragP->fr_fix+=2;
  4060. !                 } else if(flagseen['l']) {
  4061.                       fragP->fr_opcode[0]= 0x4E;
  4062.                       fragP->fr_opcode[1]= 0xF8;    /* JMP    with ABSL WORD offset */
  4063.                       subseg_change(SEG_TEXT, 0);
  4064.                       fix_new(fragP, fragP->fr_fix, 2, 
  4065. !                         fragP->fr_symbol, 0, fragP->fr_offset, 0, 0);
  4066.                       fragP->fr_fix+=2;
  4067.                   } else {
  4068.                       fragP->fr_opcode[0]= 0x4E;
  4069.                       fragP->fr_opcode[1]= 0xF9;    /* JMP    with ABSL LONG offset */
  4070.                       subseg_change(SEG_TEXT, 0);
  4071.                       fix_new(fragP, fragP->fr_fix, 4, 
  4072. !                         fragP->fr_symbol, 0, fragP->fr_offset, 0, 0);
  4073.                       fragP->fr_fix+=4;
  4074.                   }
  4075.                   frag_wane(fragP);
  4076. ***************
  4077. *** 2931,2943 ****
  4078.               }
  4079.           } else if(flagseen['l']) {    /* Symbol is still undefined.  Make it simple */
  4080.               fix_new(fragP,(int)(fragP->fr_fix),2,fragP->fr_symbol,
  4081. !  (symbolS *)0,fragP->fr_offset + 2,1);
  4082.               fragP->fr_fix+=2;
  4083.               fragP->fr_opcode[1]=0x00;
  4084.               frag_wane(fragP);
  4085.           } else {
  4086.               fix_new(fragP,(int)(fragP->fr_fix),4,fragP->fr_symbol,
  4087. !  (symbolS *)0,fragP->fr_offset + 4,1);
  4088.               fragP->fr_fix+=4;
  4089.               fragP->fr_opcode[1]=0xff;
  4090.               frag_wane(fragP);
  4091. --- 3128,3141 ----
  4092.               }
  4093.           } else if(flagseen['l']) {    /* Symbol is still undefined.  Make it simple */
  4094.               fix_new(fragP,(int)(fragP->fr_fix),2,fragP->fr_symbol,
  4095. !  (symbolS *)0,fragP->fr_offset + 2,1, 0);
  4096.               fragP->fr_fix+=2;
  4097.               fragP->fr_opcode[1]=0x00;
  4098.               frag_wane(fragP);
  4099.           } else {
  4100. + DP(("TAB(BRANCH,SZ_UNDEF)\n"));
  4101.               fix_new(fragP,(int)(fragP->fr_fix),4,fragP->fr_symbol,
  4102. !  (symbolS *)0,fragP->fr_offset + 4,1,0);
  4103.               fragP->fr_fix+=4;
  4104.               fragP->fr_opcode[1]=0xff;
  4105.               frag_wane(fragP);
  4106. ***************
  4107. *** 2956,2962 ****
  4108.           break;
  4109.   
  4110.       case TAB(PCREL,SZ_UNDEF):
  4111. !         if((fragP->fr_symbol->sy_type&N_TYPE)==segtype || flagseen['l']) {
  4112.               fragP->fr_subtype=TAB(PCREL,SHORT);
  4113.               fragP->fr_var+=2;
  4114.           } else {
  4115. --- 3154,3161 ----
  4116.           break;
  4117.   
  4118.       case TAB(PCREL,SZ_UNDEF):
  4119. ! DP(("TAB(PCREL,SZ_UNDEF)\n"));
  4120. !         if((fragP->fr_symbol->sy_type&N_TYPE)==segtype || flagseen['l'] || flagseen['p']) {
  4121.               fragP->fr_subtype=TAB(PCREL,SHORT);
  4122.               fragP->fr_var+=2;
  4123.           } else {
  4124. ***************
  4125. *** 2981,2987 ****
  4126.               fragP->fr_fix += 2;         /* account for jmp instruction */
  4127.               subseg_change(SEG_TEXT,0);
  4128.               fix_new(fragP, fragP->fr_fix, 2, fragP->fr_symbol, 0, 
  4129. !                              fragP->fr_offset,0);
  4130.               fragP->fr_fix += 2;
  4131.           } else {
  4132.               fragP->fr_opcode[1] = 0x06;   /* branch offset = 6 */
  4133. --- 3180,3186 ----
  4134.               fragP->fr_fix += 2;         /* account for jmp instruction */
  4135.               subseg_change(SEG_TEXT,0);
  4136.               fix_new(fragP, fragP->fr_fix, 2, fragP->fr_symbol, 0, 
  4137. !                              fragP->fr_offset,0,0);
  4138.               fragP->fr_fix += 2;
  4139.           } else {
  4140.               fragP->fr_opcode[1] = 0x06;   /* branch offset = 6 */
  4141. ***************
  4142. *** 2991,2997 ****
  4143.               fragP->fr_fix += 2;         /* account for jmp instruction */
  4144.               subseg_change(SEG_TEXT,0);
  4145.               fix_new(fragP, fragP->fr_fix, 4, fragP->fr_symbol, 0, 
  4146. !                              fragP->fr_offset,0);
  4147.               fragP->fr_fix += 4;
  4148.           }
  4149.           frag_wane(fragP);
  4150. --- 3190,3196 ----
  4151.               fragP->fr_fix += 2;         /* account for jmp instruction */
  4152.               subseg_change(SEG_TEXT,0);
  4153.               fix_new(fragP, fragP->fr_fix, 4, fragP->fr_symbol, 0, 
  4154. !                              fragP->fr_offset,0,0);
  4155.               fragP->fr_fix += 4;
  4156.           }
  4157.           frag_wane(fragP);
  4158. ***************
  4159. *** 3017,3023 ****
  4160.               fragP->fr_fix += 6;      /* account for bra/jmp instruction */
  4161.               subseg_change(SEG_TEXT,0);
  4162.               fix_new(fragP, fragP->fr_fix, 2, fragP->fr_symbol, 0, 
  4163. !                              fragP->fr_offset,0);
  4164.               fragP->fr_fix+=2;
  4165.           } else {
  4166.               /* JF: these were fr_opcode[5-7] */
  4167. --- 3216,3222 ----
  4168.               fragP->fr_fix += 6;      /* account for bra/jmp instruction */
  4169.               subseg_change(SEG_TEXT,0);
  4170.               fix_new(fragP, fragP->fr_fix, 2, fragP->fr_symbol, 0, 
  4171. !                              fragP->fr_offset,0,0);
  4172.               fragP->fr_fix+=2;
  4173.           } else {
  4174.               /* JF: these were fr_opcode[5-7] */
  4175. ***************
  4176. *** 3027,3040 ****
  4177.               fragP->fr_fix += 6;      /* account for bra/jmp instruction */
  4178.               subseg_change(SEG_TEXT,0);
  4179.               fix_new(fragP, fragP->fr_fix, 4, fragP->fr_symbol, 0, 
  4180. !                              fragP->fr_offset,0);
  4181.               fragP->fr_fix += 4;
  4182.           }
  4183.           frag_wane(fragP);
  4184.           break;
  4185.   
  4186.       case TAB(PCLEA,SZ_UNDEF):
  4187. !         if((fragP->fr_symbol->sy_type&N_TYPE)==segtype || flagseen['l']) {
  4188.               fragP->fr_subtype=TAB(PCLEA,SHORT);
  4189.               fragP->fr_var+=2;
  4190.           } else {
  4191. --- 3226,3240 ----
  4192.               fragP->fr_fix += 6;      /* account for bra/jmp instruction */
  4193.               subseg_change(SEG_TEXT,0);
  4194.               fix_new(fragP, fragP->fr_fix, 4, fragP->fr_symbol, 0, 
  4195. !                              fragP->fr_offset,0,0);
  4196.               fragP->fr_fix += 4;
  4197.           }
  4198.           frag_wane(fragP);
  4199.           break;
  4200.   
  4201.       case TAB(PCLEA,SZ_UNDEF):
  4202. ! DP(("TAB(PCLEA,SZ_UNDEF)\n"));
  4203. !         if((fragP->fr_symbol->sy_type&N_TYPE)==segtype || flagseen['l'] || flagseen['p']) {
  4204.               fragP->fr_subtype=TAB(PCLEA,SHORT);
  4205.               fragP->fr_var+=2;
  4206.           } else {
  4207. ***************
  4208. *** 3043,3048 ****
  4209. --- 3243,3259 ----
  4210.           }
  4211.           break;
  4212.   
  4213. +     case TAB(ABSREL,SZ_UNDEF):
  4214. + DP(("TAB(ABSREL,SZ_UNDEF)\n"));
  4215. +         if((fragP->fr_symbol->sy_type&N_TYPE)==segtype || flagseen['l'] || flagseen['p']) {
  4216. +             fragP->fr_subtype=TAB(ABSREL,SHORT);
  4217. +             fragP->fr_var+=2;
  4218. +         } else {
  4219. +             fragP->fr_subtype=TAB(ABSREL,LONG);
  4220. +             fragP->fr_var+=6;
  4221. +         }
  4222. +         break;
  4223.       default:
  4224.           break;
  4225.       }
  4226. ***************
  4227. *** 3079,3084 ****
  4228. --- 3290,3297 ----
  4229.   {
  4230.     unsigned char the_bytes[8];
  4231.   
  4232. + DP(("md_ri_to_chars: baserel = %d\n", ri.r_baserel));
  4233.     /* this is easy */
  4234.     md_number_to_chars(the_bytes, ri.r_address, sizeof(ri.r_address));
  4235.     /* now the fun stuff */
  4236. ***************
  4237. *** 3086,3099 ****
  4238.     the_bytes[5] = (ri.r_symbolnum >> 8) & 0x0ff;
  4239.     the_bytes[6] = ri.r_symbolnum & 0x0ff;
  4240.     the_bytes[7] = (((ri.r_pcrel << 7)  & 0x80) | ((ri.r_length << 5) & 0x60) | 
  4241. !     ((ri.r_extern << 4)  & 0x10)); 
  4242.     /* now put it back where you found it */
  4243.     bcopy (the_bytes, (char *)ri_p, sizeof(struct relocation_info));
  4244.   }
  4245.   
  4246.   #ifndef WORKING_DOT_WORD
  4247. ! const int md_short_jump_size = 4;
  4248. ! const int md_long_jump_size = 6;
  4249.   
  4250.   void
  4251.   md_create_short_jump(ptr,from_addr,to_addr,frag,to_symbol)
  4252. --- 3299,3312 ----
  4253.     the_bytes[5] = (ri.r_symbolnum >> 8) & 0x0ff;
  4254.     the_bytes[6] = ri.r_symbolnum & 0x0ff;
  4255.     the_bytes[7] = (((ri.r_pcrel << 7)  & 0x80) | ((ri.r_length << 5) & 0x60) | 
  4256. !     ((ri.r_extern << 4)  & 0x10) | ((ri.r_baserel << 3) & 0x08)); 
  4257.     /* now put it back where you found it */
  4258.     bcopy (the_bytes, (char *)ri_p, sizeof(struct relocation_info));
  4259.   }
  4260.   
  4261.   #ifndef WORKING_DOT_WORD
  4262. ! int md_short_jump_size = 4;
  4263. ! int md_long_jump_size = 6;
  4264.   
  4265.   void
  4266.   md_create_short_jump(ptr,from_addr,to_addr,frag,to_symbol)
  4267. ***************
  4268. *** 3125,3131 ****
  4269.           offset=to_addr-to_symbol->sy_value;
  4270.           md_number_to_chars(ptr  ,(long)0x4EF9,2);
  4271.           md_number_to_chars(ptr+2,(long)offset,4);
  4272. !         fix_new(frag,(ptr+2)-frag->fr_literal,4,to_symbol,(symbolS *)0,(long int)0,0);
  4273.       } else {
  4274.           offset=to_addr - (from_addr+2);
  4275.           md_number_to_chars(ptr  ,(long)0x60ff,2);
  4276. --- 3338,3344 ----
  4277.           offset=to_addr-to_symbol->sy_value;
  4278.           md_number_to_chars(ptr  ,(long)0x4EF9,2);
  4279.           md_number_to_chars(ptr+2,(long)offset,4);
  4280. !         fix_new(frag,(ptr+2)-frag->fr_literal,4,to_symbol,(symbolS *)0,(long int)0,0,0);
  4281.       } else {
  4282.           offset=to_addr - (from_addr+2);
  4283.           md_number_to_chars(ptr  ,(long)0x60ff,2);
  4284. ***************
  4285. *** 3184,3203 ****
  4286.       }
  4287.   
  4288.       exp->e_siz=0;
  4289.       if(/* ok!=80 && */exp->e_end[-1]==':' && (exp->e_end-exp->e_beg)>=2) {
  4290.           switch(exp->e_end[0]) {
  4291.           case 's':
  4292.           case 'S':
  4293.           case 'b':
  4294. -         case 'B':
  4295.               exp->e_siz=1;
  4296.               break;
  4297. -         case 'w':
  4298.           case 'W':
  4299.               exp->e_siz=2;
  4300.               break;
  4301. -         case 'l':
  4302.           case 'L':
  4303.               exp->e_siz=3;
  4304.               break;
  4305.           default:
  4306. --- 3397,3420 ----
  4307.       }
  4308.   
  4309.       exp->e_siz=0;
  4310. +     exp->e_baserel = 0;
  4311.       if(/* ok!=80 && */exp->e_end[-1]==':' && (exp->e_end-exp->e_beg)>=2) {
  4312.           switch(exp->e_end[0]) {
  4313. +         case 'B':
  4314. +             exp->e_baserel = 1;
  4315.           case 's':
  4316.           case 'S':
  4317.           case 'b':
  4318.               exp->e_siz=1;
  4319.               break;
  4320.           case 'W':
  4321. +             exp->e_baserel = 1;
  4322. +         case 'w':
  4323.               exp->e_siz=2;
  4324.               break;
  4325.           case 'L':
  4326. +             exp->e_baserel = 1;
  4327. +         case 'l':
  4328.               exp->e_siz=3;
  4329.               break;
  4330.           default:
  4331. ***************
  4332. *** 3370,3375 ****
  4333. --- 3587,3608 ----
  4334.   char ***vecP;
  4335.   {
  4336.       switch(**argP) {
  4337. +     /* additions for pc- and base-relative conversions, MW */
  4338. +     case 's':
  4339. +         (*argP)++;
  4340. +         while (**argP)
  4341. +           {
  4342. +             if (**argP == 'c')
  4343. +               /* small-code, generate pc-relative code */
  4344. +               flagseen['p'] = 1;
  4345. +             else if (**argP == 'd')
  4346. +               flagseen['b'] = 1;
  4347. +             else
  4348. +               as_warn ("Unknown -s option ignored.");
  4349. +             (*argP)++;
  4350. +           }
  4351. +         break;
  4352.       case 'l':    /* -l means keep external to 2 bit offset
  4353.                  rather than 16 bit one */
  4354.           break;
  4355. ***************
  4356. *** 3379,3390 ****
  4357.           (*argP)++;
  4358.           if(**argP=='c')
  4359.               (*argP)++;
  4360. !         if(!strcmp(*argP,"68000"))
  4361.               flagseen['m']=2;
  4362. !         else if(!strcmp(*argP,"68010")) {
  4363. ! #ifdef M_SUN
  4364. !             omagic= 1<<16|OMAGIC;
  4365. ! #endif
  4366.               flagseen['m']=1;
  4367.           } else if(!strcmp(*argP,"68020"))
  4368.               flagseen['m']=0;
  4369. --- 3612,3622 ----
  4370.           (*argP)++;
  4371.           if(**argP=='c')
  4372.               (*argP)++;
  4373. !         if(!strcmp(*argP,"68000")) {
  4374.               flagseen['m']=2;
  4375. !             mid = MID_SUN010;    /* rather than SUN020 */
  4376. !         } else if(!strcmp(*argP,"68010")) {
  4377. !             mid = MID_SUN010;
  4378.               flagseen['m']=1;
  4379.           } else if(!strcmp(*argP,"68020"))
  4380.               flagseen['m']=0;
  4381. diff -rcP gas-1.38.1-fsf/m68k.h gas-1.38.1-amiga/m68k.h
  4382. *** gas-1.38.1-fsf/m68k.h
  4383. --- gas-1.38.1-amiga/m68k.h    Thu Sep  9 22:49:45 1993
  4384. ***************
  4385. *** 0 ****
  4386. --- 1 ----
  4387. + #include "m-sun3.h"
  4388. diff -rcP gas-1.38.1-fsf/messages.c gas-1.38.1-amiga/messages.c
  4389. *** gas-1.38.1-fsf/messages.c    Fri Jan  4 18:12:57 1991
  4390. --- gas-1.38.1-amiga/messages.c    Thu Sep  9 22:49:48 1993
  4391. ***************
  4392. *** 73,86 ****
  4393.   {
  4394.     extern int errno;        /* See perror(3) for details. */
  4395.     extern int sys_nerr;
  4396. !   extern char * sys_errlist[];
  4397.   
  4398.     as_where();
  4399.     fprintf (stderr,gripe,filename);
  4400. !   if (errno > sys_nerr)
  4401. !     fprintf (stderr, "Unknown error #%d.\n", errno);
  4402.     else
  4403. !     fprintf (stderr, "%s.\n", sys_errlist [errno]);
  4404.     errno = 0;            /* After reporting, clear it. */
  4405.   }
  4406.   
  4407. --- 73,86 ----
  4408.   {
  4409.     extern int errno;        /* See perror(3) for details. */
  4410.     extern int sys_nerr;
  4411. !   int error = errno;
  4412.   
  4413.     as_where();
  4414.     fprintf (stderr,gripe,filename);
  4415. !   if (error > sys_nerr)
  4416. !     fprintf (stderr, "Unknown error #%d.\n", error);
  4417.     else
  4418. !     fprintf (stderr, "%s.\n", strerror (error));
  4419.     errno = 0;            /* After reporting, clear it. */
  4420.   }
  4421.   
  4422. diff -rcP gas-1.38.1-fsf/read.c gas-1.38.1-amiga/read.c
  4423. *** gas-1.38.1-fsf/read.c    Tue Oct 30 18:42:03 1990
  4424. --- gas-1.38.1-amiga/read.c    Thu Sep  9 22:49:29 1993
  4425. ***************
  4426. *** 122,128 ****
  4427.   static void        stab();
  4428.   static void        stringer();
  4429.   
  4430. ! extern char line_comment_chars[];
  4431.   
  4432.   static char *    buffer_limit;    /* -> 1 + last char in buffer. */
  4433.   
  4434. --- 122,128 ----
  4435.   static void        stab();
  4436.   static void        stringer();
  4437.   
  4438. ! extern const char line_comment_chars[];
  4439.   
  4440.   static char *    buffer_limit;    /* -> 1 + last char in buffer. */
  4441.   
  4442. ***************
  4443. *** 1513,1519 ****
  4444.   #if !defined(SPARC) && !defined(NS32K) && !defined(I860)
  4445.             fix_new (frag_now, p - frag_now -> fr_literal, nbytes,
  4446.                  exp . X_add_symbol, exp . X_subtract_symbol,
  4447. !                exp . X_add_number, 0);
  4448.   #endif
  4449.             break;
  4450.   
  4451. --- 1513,1519 ----
  4452.   #if !defined(SPARC) && !defined(NS32K) && !defined(I860)
  4453.             fix_new (frag_now, p - frag_now -> fr_literal, nbytes,
  4454.                  exp . X_add_symbol, exp . X_subtract_symbol,
  4455. !                exp . X_add_number, 0, 0);
  4456.   #endif
  4457.             break;
  4458.   
  4459. ***************
  4460. *** 1562,1568 ****
  4461.     register int        work;    /* For multi-precision arithmetic. */
  4462.     register char *    p;    /* For multi-precision arithmetic. */
  4463.   
  4464. !   extern char hex_value[];    /* In hex_value.c. */
  4465.   
  4466.     /*
  4467.      * The following awkward logic is to parse ZERO or more strings,
  4468. --- 1562,1568 ----
  4469.     register int        work;    /* For multi-precision arithmetic. */
  4470.     register char *    p;    /* For multi-precision arithmetic. */
  4471.   
  4472. !   extern const char hex_value[];    /* In hex_value.c. */
  4473.   
  4474.     /*
  4475.      * The following awkward logic is to parse ZERO or more strings,
  4476. diff -rcP gas-1.38.1-fsf/strstr.c gas-1.38.1-amiga/strstr.c
  4477. *** gas-1.38.1-fsf/strstr.c    Wed Mar  1 22:48:48 1989
  4478. --- gas-1.38.1-amiga/strstr.c    Thu Sep  9 22:49:59 1993
  4479. ***************
  4480. *** 20,26 ****
  4481.   
  4482.   
  4483.   #define CONST
  4484. ! #define SIZET int
  4485.   
  4486.   #define    NULL    0
  4487.   
  4488. --- 20,26 ----
  4489.   
  4490.   
  4491.   #define CONST
  4492. ! typedef unsigned long size_t;
  4493.   
  4494.   #define    NULL    0
  4495.   
  4496. ***************
  4497. *** 30,39 ****
  4498.   CONST char *wanted;
  4499.   {
  4500.       register CONST char *scan;
  4501. !     register SIZET len;
  4502.       register char firstc;
  4503.       extern int strcmp();
  4504. !     extern SIZET strlen();
  4505.   
  4506.       /*
  4507.        * The odd placement of the two tests is so "" is findable.
  4508. --- 30,39 ----
  4509.   CONST char *wanted;
  4510.   {
  4511.       register CONST char *scan;
  4512. !     register size_t len;
  4513.       register char firstc;
  4514.       extern int strcmp();
  4515. !     extern size_t strlen();
  4516.   
  4517.       /*
  4518.        * The odd placement of the two tests is so "" is findable.
  4519. diff -rcP gas-1.38.1-fsf/struc-symbol.h gas-1.38.1-amiga/struc-symbol.h
  4520. *** gas-1.38.1-fsf/struc-symbol.h    Fri Jul  6 18:43:12 1990
  4521. --- gas-1.38.1-amiga/struc-symbol.h    Thu Sep  9 22:49:56 1993
  4522. ***************
  4523. *** 17,26 ****
  4524. --- 17,30 ----
  4525.   along with GAS; see the file COPYING.  If not, write to
  4526.   the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
  4527.   
  4528. + #ifdef amigados
  4529. + #include <a.out.h>
  4530. + #else
  4531.   #ifndef        VMS
  4532.   #include "a.out.gnu.h"        /* Needed to define struct nlist. Sigh. */
  4533.   #else
  4534.   #include "a_out.h"
  4535. + #endif
  4536.   #endif
  4537.   
  4538.   struct symbol            /* our version of an nlist node */
  4539. diff -rcP gas-1.38.1-fsf/symbols.c gas-1.38.1-amiga/symbols.c
  4540. *** gas-1.38.1-fsf/symbols.c    Thu Oct 18 20:01:13 1990
  4541. --- gas-1.38.1-amiga/symbols.c    Thu Sep  9 22:49:46 1993
  4542. ***************
  4543. *** 241,248 ****
  4544.       int possible_bytes;
  4545.       fragS *frag_tmp;
  4546.       char *frag_opcode;
  4547. !     extern md_short_jump_size;
  4548. !     extern md_long_jump_size;
  4549.   
  4550.       possible_bytes=md_short_jump_size+new_broken_words*md_long_jump_size;
  4551.       frag_tmp=frag_now;
  4552. --- 241,248 ----
  4553.       int possible_bytes;
  4554.       fragS *frag_tmp;
  4555.       char *frag_opcode;
  4556. !     extern int md_short_jump_size;
  4557. !     extern int md_long_jump_size;
  4558.   
  4559.       possible_bytes=md_short_jump_size+new_broken_words*md_long_jump_size;
  4560.       frag_tmp=frag_now;
  4561. diff -rcP gas-1.38.1-fsf/version.c gas-1.38.1-amiga/version.c
  4562. *** gas-1.38.1-fsf/version.c    Thu Jan 17 19:49:06 1991
  4563. --- gas-1.38.1-amiga/version.c    Thu Sep  9 22:49:55 1993
  4564. ***************
  4565. *** 1,23 ****
  4566. ! #if defined(__STDC__) || defined(const)
  4567. ! const
  4568. ! #endif
  4569. ! char version_string[] = "GNU assembler version 1.38\n";
  4570. ! /* DO NOT PUT COMMENTS ABOUT CHANGES IN THIS FILE.
  4571. !    This file exists only to define `version_string'.
  4572. !    Log changes in ChangeLog.  The easiest way to do this is with
  4573. !    the Emacs command `add-change-log-entry'.  If you don't use Emacs,
  4574. !    add entries of the form:
  4575. ! Thu Jan  1 00:00:00 1970  Dennis Ritchie  (dmr at alice)
  4576. !     * universe.c (temporal_reality): Began Time.
  4577. ! */
  4578. ! #ifdef VMS
  4579. ! dummy3()
  4580. ! {
  4581. ! }
  4582. ! #endif
  4583. --- 1 ----
  4584. ! char *version_string = "GNU assembler version 1.38.1";   
  4585. diff -rcP gas-1.38.1-fsf/write.c gas-1.38.1-amiga/write.c
  4586. *** gas-1.38.1-fsf/write.c    Thu Oct 11 16:26:15 1990
  4587. --- gas-1.38.1-amiga/write.c    Thu Sep  9 22:49:47 1993
  4588. ***************
  4589. *** 107,113 ****
  4590.   #if defined(SPARC) || defined(I860)
  4591.   fix_new (frag, where, size, add_symbol, sub_symbol, offset, pcrel, r_type)
  4592.   #else
  4593. ! fix_new (frag, where, size, add_symbol, sub_symbol, offset, pcrel)
  4594.   #endif
  4595.        fragS *    frag;        /* Which frag? */
  4596.        int    where;        /* Where in that frag? */
  4597. --- 107,113 ----
  4598.   #if defined(SPARC) || defined(I860)
  4599.   fix_new (frag, where, size, add_symbol, sub_symbol, offset, pcrel, r_type)
  4600.   #else
  4601. ! fix_new (frag, where, size, add_symbol, sub_symbol, offset, pcrel, baserel)
  4602.   #endif
  4603.        fragS *    frag;        /* Which frag? */
  4604.        int    where;        /* Where in that frag? */
  4605. ***************
  4606. *** 116,121 ****
  4607. --- 116,122 ----
  4608.        symbolS *    sub_symbol;    /* X_subtract_symbol. */
  4609.        long int    offset;        /* X_add_number. */
  4610.        int    pcrel;        /* TRUE if PC-relative relocation. */
  4611. +      int    baserel;        /* true if base-relative data */
  4612.   #if defined(SPARC) || defined(I860)
  4613.       int        r_type;
  4614.   #endif
  4615. ***************
  4616. *** 136,142 ****
  4617.     /* JF these 'cuz of the NS32K stuff */
  4618.     fixP -> fx_im_disp    = 0;
  4619.     fixP -> fx_pcrel_adjust = 0;
  4620. !   fixP -> fx_bsr    = 0;
  4621.     fixP ->fx_bit_fixP    = 0;
  4622.   
  4623.   #if defined(SPARC) || defined(I860)
  4624. --- 137,143 ----
  4625.     /* JF these 'cuz of the NS32K stuff */
  4626.     fixP -> fx_im_disp    = 0;
  4627.     fixP -> fx_pcrel_adjust = 0;
  4628. !   fixP -> fx_bsr    = baserel;
  4629.     fixP ->fx_bit_fixP    = 0;
  4630.   
  4631.   #if defined(SPARC) || defined(I860)
  4632. ***************
  4633. *** 170,177 ****
  4634.     void gdb_emit();
  4635.     void gdb_end();
  4636.   #endif
  4637. !   extern long omagic;        /* JF magic # to write out.  Is different for
  4638.                      Suns and Vaxen and other boxes */
  4639.   
  4640.   #ifdef    VMS
  4641.     /*
  4642. --- 171,179 ----
  4643.     void gdb_emit();
  4644.     void gdb_end();
  4645.   #endif
  4646. !   extern short omagic;        /* JF magic # to write out.  Is different for
  4647.                      Suns and Vaxen and other boxes */
  4648. +   extern short mid;
  4649.   
  4650.   #ifdef    VMS
  4651.     /*
  4652. ***************
  4653. *** 489,495 ****
  4654.         fix_new(    lie->frag,  lie->word_goes_here - lie->frag->fr_literal,
  4655.                 2,  lie->add,
  4656.               lie->sub,  lie->addnum,
  4657. !             0);
  4658.   #endif
  4659.         /* md_number_to_chars(lie->word_goes_here,
  4660.                      lie->add->sy_value
  4661. --- 491,497 ----
  4662.         fix_new(    lie->frag,  lie->word_goes_here - lie->frag->fr_literal,
  4663.                 2,  lie->add,
  4664.               lie->sub,  lie->addnum,
  4665. !             0, 0);
  4666.   #endif
  4667.         /* md_number_to_chars(lie->word_goes_here,
  4668.                      lie->add->sy_value
  4669. ***************
  4670. *** 572,578 ****
  4671.     md_number_to_chars((char *)&the_exec.a_trsize, tr_siz ,sizeof(the_exec.a_trsize));
  4672.     dr_siz=sizeof(struct relocation_info) * fixup_segment (data_fix_root, N_DATA);
  4673.     md_number_to_chars((char *)&the_exec.a_drsize, dr_siz, sizeof(the_exec.a_drsize));
  4674. !   md_number_to_chars((char *)&the_exec.a_info,omagic,sizeof(the_exec.a_info));
  4675.     md_number_to_chars((char *)&the_exec.a_entry,0,sizeof(the_exec.a_entry));
  4676.   
  4677.   #ifdef EXEC_MACHINE_TYPE
  4678. --- 574,581 ----
  4679.     md_number_to_chars((char *)&the_exec.a_trsize, tr_siz ,sizeof(the_exec.a_trsize));
  4680.     dr_siz=sizeof(struct relocation_info) * fixup_segment (data_fix_root, N_DATA);
  4681.     md_number_to_chars((char *)&the_exec.a_drsize, dr_siz, sizeof(the_exec.a_drsize));
  4682. !   md_number_to_chars((char *)&the_exec.a_mid,mid,sizeof(the_exec.a_mid));
  4683. !   md_number_to_chars((char *)&the_exec.a_magic,omagic,sizeof(the_exec.a_magic));
  4684.     md_number_to_chars((char *)&the_exec.a_entry,0,sizeof(the_exec.a_entry));
  4685.   
  4686.   #ifdef EXEC_MACHINE_TYPE
  4687. ***************
  4688. *** 1024,1029 ****
  4689. --- 1027,1033 ----
  4690.         register char *        place;
  4691.         register long int        where;
  4692.         register char        pcrel;
  4693. +       register char        baserel;
  4694.         register fragS *        fragP;
  4695.         register int        add_symbol_N_TYPE;
  4696.   
  4697. ***************
  4698. *** 1040,1045 ****
  4699. --- 1044,1050 ----
  4700.         sub_symbolP = fixP  -> fx_subsy;
  4701.         add_number  = fixP  -> fx_offset;
  4702.         pcrel      = fixP  -> fx_pcrel;
  4703. +       baserel      = fixP  -> fx_bsr;
  4704.         if(add_symbolP)
  4705.       add_symbol_N_TYPE = add_symbolP -> sy_type & N_TYPE;
  4706.         if (sub_symbolP)
  4707. ***************
  4708. *** 1093,1099 ****
  4709.   #endif
  4710.                 where + fragP -> fr_address;
  4711.   #if defined(NS32K) && defined(SEQUENT_COMPATABILITY)
  4712. !           if (fragP->fr_bsr)
  4713.               add_number -= 0x12;    /* FOO Kludge alert! */
  4714.   #endif
  4715.           /* Kenny thinks this needs *
  4716. --- 1098,1104 ----
  4717.   #endif
  4718.                 where + fragP -> fr_address;
  4719.   #if defined(NS32K) && defined(SEQUENT_COMPATABILITY)
  4720. !           if (fragP->fr_baserel)
  4721.               add_number -= 0x12;    /* FOO Kludge alert! */
  4722.   #endif
  4723.           /* Kenny thinks this needs *
  4724. ***************
  4725. *** 1148,1153 ****
  4726. --- 1153,1162 ----
  4727.             seg_reloc_count ++;
  4728.           }
  4729.       }
  4730. +       if (baserel && add_number)    /* ###mw is that it....??? */
  4731. +         add_number -= text_last_frag->fr_address;
  4732.         /* OVE added fx_im_disp for ns32k and others */
  4733.         if (!fixP->fx_bit_fixP) {
  4734.       /* JF I hope this works . . . */
  4735. ***************
  4736. *** 1206,1214 ****
  4737.         if (symbolP = fixP -> fx_addsy)
  4738.       {
  4739.   
  4740. - #ifdef NS32K
  4741.           /* These two 'cuz of NS32K */
  4742. !       ri . r_bsr        = fixP -> fx_bsr;
  4743.         ri . r_disp        = fixP -> fx_im_disp;
  4744.   #endif
  4745.   
  4746. --- 1215,1223 ----
  4747.         if (symbolP = fixP -> fx_addsy)
  4748.       {
  4749.   
  4750.           /* These two 'cuz of NS32K */
  4751. !       ri . r_baserel        = fixP -> fx_bsr;
  4752. ! #ifdef NS32K
  4753.         ri . r_disp        = fixP -> fx_im_disp;
  4754.   #endif
  4755.   
  4756.