* m68k.h: Merged in patches (mostly m68040-specific) from
authorPer Bothner <per@bothner.com>
Fri, 14 Aug 1992 23:12:58 +0000 (23:12 +0000)
committerPer Bothner <per@bothner.com>
Fri, 14 Aug 1992 23:12:58 +0000 (23:12 +0000)
Colin Smith <colin@wrs.com>.

include/opcode/ChangeLog
include/opcode/m68k.h

index bfdb85ab9470abc573cfed65d2091165cf3a4f27..4d672fff3e93aa9d22440b6e74be7fcd0d295dbe 100644 (file)
@@ -1,5 +1,8 @@
 Fri Aug 14 14:20:38 1992  Per Bothner  (bothner@cygnus.com)
 
+       * m68k.h:  Merged in patches (mostly m68040-specific) from
+       Colin Smith <colin@wrs.com>.
+
        * m68k.h:  Merged m68kmri.h and m68k.h (using the former as a
        base).  Also cleaned up duplicates, re-ordered instructions for
        the sake of dis-assembling (so aliases come after standard names).
index a032dbe2cf191396e8e4e9ca4faa37b19b2363bc..e83fbf289e9b0fee2a7d064365a73e8282247792 100644 (file)
@@ -526,13 +526,13 @@ struct m68k_opcode m68k_opcodes[] =
 #define SCOPE_PAGE (0x2 << 3)
 #define SCOPE_ALL  (0x3 << 3)
 
-{"cinva",      one(0xf400|SCOPE_ALL),  one(0xff20), "ce",   m68040 },
-{"cinvl",      one(0xf400|SCOPE_LINE), one(0xff20), "ceas", m68040 },
-{"cinvp",      one(0xf400|SCOPE_PAGE), one(0xff20), "ceas", m68040 },
+{"cinva",      one(0xf400|SCOPE_ALL),  one(0xff38), "ce",   m68040 },
+{"cinvl",      one(0xf400|SCOPE_LINE), one(0xff38), "ceas", m68040 },
+{"cinvp",      one(0xf400|SCOPE_PAGE), one(0xff38), "ceas", m68040 },
 
-{"cpusha",     one(0xf420|SCOPE_ALL),  one(0xff20), "ce",   m68040 },
-{"cpushl",     one(0xf420|SCOPE_LINE), one(0xff20), "ceas", m68040 },
-{"cpushp",     one(0xf420|SCOPE_PAGE), one(0xff20), "ceas", m68040 },
+{"cpusha",     one(0xf420|SCOPE_ALL),  one(0xff38), "ce",   m68040 },
+{"cpushl",     one(0xf420|SCOPE_LINE), one(0xff38), "ceas", m68040 },
+{"cpushp",     one(0xf420|SCOPE_PAGE), one(0xff38), "ceas", m68040 },
 
 #undef SCOPE_LINE
 #undef SCOPE_PAGE
@@ -663,39 +663,25 @@ struct m68k_opcode m68k_opcodes[] =
 {OP2(fabs,x),  two(0xF000, 0x0018),    two(0xF1C0, 0xE07F),    "IiF8F7", mfloat },
 {OP2(fabs,x),  two(0xF000, 0x4818),    two(0xF1C0, 0xFC7F),    "Ii;xF7", mfloat },
 {OP2(fabs,x),  two(0xF000, 0x0018),    two(0xF1C0, 0xE07F),    "IiFt",   mfloat },
-
-/* FIXME-NOW: The '040 book that I have claims that these should be
-   coded exactly like fadd.  In fact, the table of opmodes calls them
-   fadd, fsadd, fdadd.  That can't be right.  If someone can give me the
-   right encoding, I'll fix it.  By induction, I *think* the right
-   encoding is 38 & 3c, but I'm not sure.
-
-   in the mean time, if you know the encoding for the opmode field, you
-   can replace all of the "38),"'s and "3c),"'s below with the corrected
-   values and these guys should then just work.  xoxorich. 31Aug91 */
-
-#ifdef comment
-{"fsabsb",     two(0xF000, 0x5838),    two(0xF1C0, 0xFC7F),    "Ii;bF7", m68040 },
-{"fsabsd",     two(0xF000, 0x5438),    two(0xF1C0, 0xFC7F),    "Ii;FF7", m68040 },
-{"fsabsl",     two(0xF000, 0x4038),    two(0xF1C0, 0xFC7F),    "Ii;lF7", m68040 },
-{"fsabsp",     two(0xF000, 0x4C38),    two(0xF1C0, 0xFC7F),    "Ii;pF7", m68040 },
-{"fsabss",     two(0xF000, 0x4438),    two(0xF1C0, 0xFC7F),    "Ii;fF7", m68040 },
-{"fsabsw",     two(0xF000, 0x5038),    two(0xF1C0, 0xFC7F),    "Ii;wF7", m68040 },
-{"fsabsx",     two(0xF000, 0x0038),    two(0xF1C0, 0xE07F),    "IiF8F7", m68040 },
-{"fsabsx",     two(0xF000, 0x4838),    two(0xF1C0, 0xFC7F),    "Ii;xF7", m68040 },
-{"fsabsx",     two(0xF000, 0x0038),    two(0xF1C0, 0xE07F),    "IiFt",   m68040 },
-
-{"fdabsb",     two(0xF000, 0x583c),    two(0xF1C0, 0xFC7F),    "Ii;bF7", m68040},
-{"fdabsd",     two(0xF000, 0x543c),    two(0xF1C0, 0xFC7F),    "Ii;FF7", m68040},
-{"fdabsl",     two(0xF000, 0x403c),    two(0xF1C0, 0xFC7F),    "Ii;lF7", m68040},
-{"fdabsp",     two(0xF000, 0x4C3c),    two(0xF1C0, 0xFC7F),    "Ii;pF7", m68040},
-{"fdabss",     two(0xF000, 0x443c),    two(0xF1C0, 0xFC7F),    "Ii;fF7", m68040},
-{"fdabsw",     two(0xF000, 0x503c),    two(0xF1C0, 0xFC7F),    "Ii;wF7", m68040},
-{"fdabsx",     two(0xF000, 0x003c),    two(0xF1C0, 0xE07F),    "IiF8F7", m68040},
-{"fdabsx",     two(0xF000, 0x483c),    two(0xF1C0, 0xFC7F),    "Ii;xF7", m68040},
-{"fdabsx",     two(0xF000, 0x003c),    two(0xF1C0, 0xE07F),    "IiFt",   m68040},
-#endif /* comment */
-
+{OP2(fsabs,b), two(0xF000, 0x5858),    two(0xF1C0, 0xFC7F),    "Ii;bF7", m68040 },
+{OP2(fsabs,d), two(0xF000, 0x5458),    two(0xF1C0, 0xFC7F),    "Ii;FF7", m68040 },
+{OP2(fsabs,l), two(0xF000, 0x4058),    two(0xF1C0, 0xFC7F),    "Ii;lF7", m68040 },
+{OP2(fsabs,p), two(0xF000, 0x4C58),    two(0xF1C0, 0xFC7F),    "Ii;pF7", m68040 },
+{OP2(fsabs,s), two(0xF000, 0x4458),    two(0xF1C0, 0xFC7F),    "Ii;fF7", m68040 },
+{OP2(fsabs,w), two(0xF000, 0x5058),    two(0xF1C0, 0xFC7F),    "Ii;wF7", m68040 },
+{OP2(fsabs,x), two(0xF000, 0x0058),    two(0xF1C0, 0xE07F),    "IiF8F7", m68040 },
+{OP2(fsabs,x), two(0xF000, 0x4858),    two(0xF1C0, 0xFC7F),    "Ii;xF7", m68040 },
+{OP2(fsabs,x), two(0xF000, 0x0058),    two(0xF1C0, 0xE07F),    "IiFt",   m68040 },
+
+{OP2(fdabs,b), two(0xF000, 0x585c),    two(0xF1C0, 0xFC7F),    "Ii;bF7", m68040},
+{OP2(fdabs,d), two(0xF000, 0x545c),    two(0xF1C0, 0xFC7F),    "Ii;FF7", m68040},
+{OP2(fdabs,l), two(0xF000, 0x405c),    two(0xF1C0, 0xFC7F),    "Ii;lF7", m68040},
+{OP2(fdabs,p), two(0xF000, 0x4C5c),    two(0xF1C0, 0xFC7F),    "Ii;pF7", m68040},
+{OP2(fdabs,s), two(0xF000, 0x445c),    two(0xF1C0, 0xFC7F),    "Ii;fF7", m68040},
+{OP2(fdabs,w), two(0xF000, 0x505c),    two(0xF1C0, 0xFC7F),    "Ii;wF7", m68040},
+{OP2(fdabs,x), two(0xF000, 0x005c),    two(0xF1C0, 0xE07F),    "IiF8F7", m68040},
+{OP2(fdabs,x), two(0xF000, 0x485c),    two(0xF1C0, 0xFC7F),    "Ii;xF7", m68040},
+{OP2(fdabs,x), two(0xF000, 0x005c),    two(0xF1C0, 0xE07F),    "IiFt",   m68040},
 {OP2(facos,b), two(0xF000, 0x581C),    two(0xF1C0, 0xFC7F),    "Ii;bF7", mfloat },
 {OP2(facos,d), two(0xF000, 0x541C),    two(0xF1C0, 0xFC7F),    "Ii;FF7", mfloat },
 {OP2(facos,l), two(0xF000, 0x401C),    two(0xF1C0, 0xFC7F),    "Ii;lF7", mfloat },
@@ -714,27 +700,27 @@ struct m68k_opcode m68k_opcodes[] =
 {OP2(fadd,w),  two(0xF000, 0x5022),    two(0xF1C0, 0xFC7F),    "Ii;wF7", mfloat },
 {OP2(fadd,x),  two(0xF000, 0x0022),    two(0xF1C0, 0xE07F),    "IiF8F7", mfloat },
 {OP2(fadd,x),  two(0xF000, 0x4822),    two(0xF1C0, 0xFC7F),    "Ii;xF7", mfloat },
-/* {"faddx",   two(0xF000, 0x0022),    two(0xF1C0, 0xE07F),    "IiFt",   mfloat }, JF removed */
-
-{OP2(fsadd,b), two(0xF000, 0x5832),    two(0xF1C0, 0xFC7F),    "Ii;bF7", m68040 },
-{OP2(fsadd,d), two(0xF000, 0x5432),    two(0xF1C0, 0xFC7F),    "Ii;FF7", m68040 },
-{OP2(fsadd,l), two(0xF000, 0x4032),    two(0xF1C0, 0xFC7F),    "Ii;lF7", m68040 },
-{OP2(fsadd,p), two(0xF000, 0x4C32),    two(0xF1C0, 0xFC7F),    "Ii;pF7", m68040 },
-{OP2(fsadd,s), two(0xF000, 0x4432),    two(0xF1C0, 0xFC7F),    "Ii;fF7", m68040 },
-{OP2(fsadd,w), two(0xF000, 0x5032),    two(0xF1C0, 0xFC7F),    "Ii;wF7", m68040 },
-{OP2(fsadd,x), two(0xF000, 0x0032),    two(0xF1C0, 0xE07F),    "IiF8F7", m68040 },
-{OP2(fsadd,x), two(0xF000, 0x4832),    two(0xF1C0, 0xFC7F),    "Ii;xF7", m68040 },
-/* {"fsaddx",  two(0xF000, 0x0032),    two(0xF1C0, 0xE07F),    "IiFt", m68040 }, JF removed */
-
-{OP2(fdadd,b), two(0xF000, 0x5836),    two(0xF1C0, 0xFC7F),    "Ii;bF7", m68040 },
-{OP2(fdadd,d), two(0xF000, 0x5436),    two(0xF1C0, 0xFC7F),    "Ii;FF7", m68040 },
-{OP2(fdadd,l), two(0xF000, 0x4036),    two(0xF1C0, 0xFC7F),    "Ii;lF7", m68040 },
-{OP2(fdadd,p), two(0xF000, 0x4C36),    two(0xF1C0, 0xFC7F),    "Ii;pF7", m68040 },
-{OP2(fdadd,s), two(0xF000, 0x4436),    two(0xF1C0, 0xFC7F),    "Ii;fF7", m68040 },
-{OP2(fdadd,w), two(0xF000, 0x5036),    two(0xF1C0, 0xFC7F),    "Ii;wF7", m68040 },
-{OP2(fdadd,x), two(0xF000, 0x0036),    two(0xF1C0, 0xE07F),    "IiF8F7", m68040 },
-{OP2(fdadd,x), two(0xF000, 0x4836),    two(0xF1C0, 0xFC7F),    "Ii;xF7", m68040 },
-/* {"faddx",   two(0xF000, 0x0036),    two(0xF1C0, 0xE07F),    "IiFt", m68040 }, JF removed */
+/* {OP2(fadd,x),       two(0xF000, 0x0022),    two(0xF1C0, 0xE07F),    "IiFt",   mfloat }, JF removed */
+
+{OP2(fsadd,b), two(0xF000, 0x5862),    two(0xF1C0, 0xFC7F),    "Ii;bF7", m68040 },
+{OP2(fsadd,d), two(0xF000, 0x5462),    two(0xF1C0, 0xFC7F),    "Ii;FF7", m68040 },
+{OP2(fsadd,l), two(0xF000, 0x4062),    two(0xF1C0, 0xFC7F),    "Ii;lF7", m68040 },
+{OP2(fsadd,p), two(0xF000, 0x4C62),    two(0xF1C0, 0xFC7F),    "Ii;pF7", m68040 },
+{OP2(fsadd,s), two(0xF000, 0x4462),    two(0xF1C0, 0xFC7F),    "Ii;fF7", m68040 },
+{OP2(fsadd,w), two(0xF000, 0x5062),    two(0xF1C0, 0xFC7F),    "Ii;wF7", m68040 },
+{OP2(fsadd,x), two(0xF000, 0x0062),    two(0xF1C0, 0xE07F),    "IiF8F7", m68040 },
+{OP2(fsadd,x), two(0xF000, 0x4862),    two(0xF1C0, 0xFC7F),    "Ii;xF7", m68040 },
+/* {OP2(fsadd,x),      two(0xF000, 0x0062),    two(0xF1C0, 0xE07F),    "IiFt", m68040 }, JF removed */
+
+{OP2(fdadd,b), two(0xF000, 0x5866),    two(0xF1C0, 0xFC7F),    "Ii;bF7", m68040 },
+{OP2(fdadd,d), two(0xF000, 0x5466),    two(0xF1C0, 0xFC7F),    "Ii;FF7", m68040 },
+{OP2(fdadd,l), two(0xF000, 0x4066),    two(0xF1C0, 0xFC7F),    "Ii;lF7", m68040 },
+{OP2(fdadd,p), two(0xF000, 0x4C66),    two(0xF1C0, 0xFC7F),    "Ii;pF7", m68040 },
+{OP2(fdadd,s), two(0xF000, 0x4466),    two(0xF1C0, 0xFC7F),    "Ii;fF7", m68040 },
+{OP2(fdadd,w), two(0xF000, 0x5066),    two(0xF1C0, 0xFC7F),    "Ii;wF7", m68040 },
+{OP2(fdadd,x), two(0xF000, 0x0066),    two(0xF1C0, 0xE07F),    "IiF8F7", m68040 },
+{OP2(fdadd,x), two(0xF000, 0x4866),    two(0xF1C0, 0xFC7F),    "Ii;xF7", m68040 },
+/* {"faddx",   two(0xF000, 0x0066),    two(0xF1C0, 0xE07F),    "IiFt", m68040 }, JF removed */
 
 {OP2(fasin,b), two(0xF000, 0x580C),    two(0xF1C0, 0xFC7F),    "Ii;bF7", mfloat },
 {OP2(fasin,d), two(0xF000, 0x540C),    two(0xF1C0, 0xFC7F),    "Ii;FF7", mfloat },
@@ -919,27 +905,27 @@ struct m68k_opcode m68k_opcodes[] =
 {OP2(fdiv,w),  two(0xF000, 0x5020),    two(0xF1C0, 0xFC7F),    "Ii;wF7", mfloat },
 {OP2(fdiv,x),  two(0xF000, 0x0020),    two(0xF1C0, 0xE07F),    "IiF8F7", mfloat },
 {OP2(fdiv,x),  two(0xF000, 0x4820),    two(0xF1C0, 0xFC7F),    "Ii;xF7", mfloat },
-/* {"fdivx",   two(0xF000, 0x0020),    two(0xF1C0, 0xE07F),    "IiFt",   mfloat }, JF */
-
-{OP2(fsdiv,b), two(0xF000, 0x5830),    two(0xF1C0, 0xFC7F),    "Ii;bF7", m68040 },
-{OP2(fsdiv,d), two(0xF000, 0x5430),    two(0xF1C0, 0xFC7F),    "Ii;FF7", m68040 },
-{OP2(fsdiv,l), two(0xF000, 0x4030),    two(0xF1C0, 0xFC7F),    "Ii;lF7", m68040 },
-{OP2(fsdiv,p), two(0xF000, 0x4C30),    two(0xF1C0, 0xFC7F),    "Ii;pF7", m68040 },
-{OP2(fsdiv,s), two(0xF000, 0x4430),    two(0xF1C0, 0xFC7F),    "Ii;fF7", m68040 },
-{OP2(fsdiv,w), two(0xF000, 0x5030),    two(0xF1C0, 0xFC7F),    "Ii;wF7", m68040 },
-{OP2(fsdiv,x), two(0xF000, 0x0030),    two(0xF1C0, 0xE07F),    "IiF8F7", m68040 },
-{OP2(fsdiv,x), two(0xF000, 0x4830),    two(0xF1C0, 0xFC7F),    "Ii;xF7", m68040 },
-/* {"fsdivx",  two(0xF000, 0x0030),    two(0xF1C0, 0xE07F),    "IiFt",   m68040 }, JF */
-
-{OP2(fddiv,b), two(0xF000, 0x5834),    two(0xF1C0, 0xFC7F),    "Ii;bF7", m68040 },
-{OP2(fddiv,d), two(0xF000, 0x5434),    two(0xF1C0, 0xFC7F),    "Ii;FF7", m68040 },
-{OP2(fddiv,l), two(0xF000, 0x4034),    two(0xF1C0, 0xFC7F),    "Ii;lF7", m68040 },
-{OP2(fddiv,p), two(0xF000, 0x4C34),    two(0xF1C0, 0xFC7F),    "Ii;pF7", m68040 },
-{OP2(fddiv,s), two(0xF000, 0x4434),    two(0xF1C0, 0xFC7F),    "Ii;fF7", m68040 },
-{OP2(fddiv,w), two(0xF000, 0x5034),    two(0xF1C0, 0xFC7F),    "Ii;wF7", m68040 },
-{OP2(fddiv,x), two(0xF000, 0x0034),    two(0xF1C0, 0xE07F),    "IiF8F7", m68040 },
-{OP2(fddiv,x), two(0xF000, 0x4834),    two(0xF1C0, 0xFC7F),    "Ii;xF7", m68040 },
-/* {"fddivx",  two(0xF000, 0x0034),    two(0xF1C0, 0xE07F),    "IiFt",   m68040 }, JF */
+/* {OP2(fdiv,x),       two(0xF000, 0x0020),    two(0xF1C0, 0xE07F),    "IiFt",   mfloat }, JF */
+
+{OP2(fsdiv,b), two(0xF000, 0x5860),    two(0xF1C0, 0xFC7F),    "Ii;bF7", m68040 },
+{OP2(fsdiv,d), two(0xF000, 0x5460),    two(0xF1C0, 0xFC7F),    "Ii;FF7", m68040 },
+{OP2(fsdiv,l), two(0xF000, 0x4060),    two(0xF1C0, 0xFC7F),    "Ii;lF7", m68040 },
+{OP2(fsdiv,p), two(0xF000, 0x4C60),    two(0xF1C0, 0xFC7F),    "Ii;pF7", m68040 },
+{OP2(fsdiv,s), two(0xF000, 0x4460),    two(0xF1C0, 0xFC7F),    "Ii;fF7", m68040 },
+{OP2(fsdiv,w), two(0xF000, 0x5060),    two(0xF1C0, 0xFC7F),    "Ii;wF7", m68040 },
+{OP2(fsdiv,x), two(0xF000, 0x0060),    two(0xF1C0, 0xE07F),    "IiF8F7", m68040 },
+{OP2(fsdiv,x), two(0xF000, 0x4860),    two(0xF1C0, 0xFC7F),    "Ii;xF7", m68040 },
+/* {OP2(fsdiv,x),      two(0xF000, 0x0060),    two(0xF1C0, 0xE07F),    "IiFt",   m68040 }, JF */
+
+{OP2(fddiv,b), two(0xF000, 0x5864),    two(0xF1C0, 0xFC7F),    "Ii;bF7", m68040 },
+{OP2(fddiv,d), two(0xF000, 0x5464),    two(0xF1C0, 0xFC7F),    "Ii;FF7", m68040 },
+{OP2(fddiv,l), two(0xF000, 0x4064),    two(0xF1C0, 0xFC7F),    "Ii;lF7", m68040 },
+{OP2(fddiv,p), two(0xF000, 0x4C64),    two(0xF1C0, 0xFC7F),    "Ii;pF7", m68040 },
+{OP2(fddiv,s), two(0xF000, 0x4464),    two(0xF1C0, 0xFC7F),    "Ii;fF7", m68040 },
+{OP2(fddiv,w), two(0xF000, 0x5064),    two(0xF1C0, 0xFC7F),    "Ii;wF7", m68040 },
+{OP2(fddiv,x), two(0xF000, 0x0064),    two(0xF1C0, 0xE07F),    "IiF8F7", m68040 },
+{OP2(fddiv,x), two(0xF000, 0x4864),    two(0xF1C0, 0xFC7F),    "Ii;xF7", m68040 },
+/* {OP2(fddiv,x),      two(0xF000, 0x0064),    two(0xF1C0, 0xE07F),    "IiFt",   m68040 }, JF */
 
 {OP2(fetox,b), two(0xF000, 0x5810),    two(0xF1C0, 0xFC7F),    "Ii;bF7", mfloat },
 {OP2(fetox,d), two(0xF000, 0x5410),    two(0xF1C0, 0xFC7F),    "Ii;FF7", mfloat },
@@ -1077,25 +1063,27 @@ struct m68k_opcode m68k_opcodes[] =
 {OP2(fmove,x), two(0xF000, 0x0000),    two(0xF1C0, 0xE07F),    "IiF8F7", mfloat },             /* fmove from <ea> to fp<n> */
 {OP2(fmove,x), two(0xF000, 0x4800),    two(0xF1C0, 0xFC7F),    "Ii;xF7", mfloat },             /* fmove from <ea> to fp<n> */
 {OP2(fmove,x), two(0xF000, 0x6800),    two(0xF1C0, 0xFC7F),    "IiF7@x", mfloat },             /* fmove from fp<n> to <ea> */
-/* JF removed {"fmovex",       two(0xF000, 0x0000),    two(0xF1C0, 0xE07F),    "IiFt", mfloat }, / * fmove from <ea> to fp<n> */
-
-{OP2(fsmove,b),        two(0xF000, 0x5800),    two(0xF1C0, 0xFC7F),    "Ii;bF7", m68040 }, /* fmove from <ea> to fp<n> */
-{OP2(fsmove,d),        two(0xF000, 0x5400),    two(0xF1C0, 0xFC7F),    "Ii;FF7", m68040 }, /* fmove from <ea> to fp<n> */
-{OP2(fsmove,l),        two(0xF000, 0x4000),    two(0xF1C0, 0xFC7F),    "Ii;lF7", m68040 }, /* fmove from <ea> to fp<n> */
-{OP2(fsmove,s),        two(0xF000, 0x4400),    two(0xF1C0, 0xFC7F),    "Ii;fF7", m68040 }, /* fmove from <ea> to fp<n> */
-{OP2(fsmove,w),        two(0xF000, 0x5000),    two(0xF1C0, 0xFC7F),    "Ii;wF7", m68040 }, /* fmove from <ea> to fp<n> */
-{OP2(fsmove,x),        two(0xF000, 0x0000),    two(0xF1C0, 0xE07F),    "IiF8F7", m68040 }, /* fmove from <ea> to fp<n> */
-{OP2(fsmove,x),        two(0xF000, 0x4800),    two(0xF1C0, 0xFC7F),    "Ii;xF7", m68040 }, /* fmove from <ea> to fp<n> */
-/* JF removed {"fsmovex",      two(0xF000, 0x0000),    two(0xF1C0, 0xE07F),    "IiFt", m68040 }, / * fmove from <ea> to fp<n> */
-
-{OP2(fdmove,b),        two(0xF000, 0x5800),    two(0xF1C0, 0xFC7F),    "Ii;bF7", m68040 }, /* fmove from <ea> to fp<n> */
-{OP2(fdmove,d),        two(0xF000, 0x5400),    two(0xF1C0, 0xFC7F),    "Ii;FF7", m68040 }, /* fmove from <ea> to fp<n> */
-{OP2(fdmove,l),        two(0xF000, 0x4000),    two(0xF1C0, 0xFC7F),    "Ii;lF7", m68040 }, /* fmove from <ea> to fp<n> */
-{OP2(fdmove,s),        two(0xF000, 0x4400),    two(0xF1C0, 0xFC7F),    "Ii;fF7", m68040 }, /* fmove from <ea> to fp<n> */
-{OP2(fdmove,w),        two(0xF000, 0x5000),    two(0xF1C0, 0xFC7F),    "Ii;wF7", m68040 }, /* fmove from <ea> to fp<n> */
-{OP2(fdmove,x),        two(0xF000, 0x0000),    two(0xF1C0, 0xE07F),    "IiF8F7", m68040 }, /* fmove from <ea> to fp<n> */
-{OP2(fdmove,x),        two(0xF000, 0x4800),    two(0xF1C0, 0xFC7F),    "Ii;xF7", m68040 }, /* fmove from <ea> to fp<n> */
-/* JF removed {"fdmovex",      two(0xF000, 0x0000),    two(0xF1C0, 0xE07F),    "IiFt", m68040 }, / * fmove from <ea> to fp<n> */
+/* JF removed {OP2(fmove,x),   two(0xF000, 0x0000),    two(0xF1C0, 0xE07F),    "IiFt", mfloat }, / * fmove from <ea> to fp<n> */
+
+{OP2(fsmove,b),        two(0xF000, 0x5840),    two(0xF1C0, 0xFC7F),    "Ii;bF7", m68040 }, /* fmove from <ea> to fp<n> */
+{OP2(fsmove,d),        two(0xF000, 0x5440),    two(0xF1C0, 0xFC7F),    "Ii;FF7", m68040 }, /* fmove from <ea> to fp<n> */
+{OP2(fsmove,l),        two(0xF000, 0x4040),    two(0xF1C0, 0xFC7F),    "Ii;lF7", m68040 }, /* fmove from <ea> to fp<n> */
+{OP2(fsmove,s),        two(0xF000, 0x4440),    two(0xF1C0, 0xFC7F),    "Ii;fF7", m68040 }, /* fmove from <ea> to fp<n> */
+{OP2(fsmove,w),        two(0xF000, 0x5040),    two(0xF1C0, 0xFC7F),    "Ii;wF7", m68040 }, /* fmove from <ea> to fp<n> */
+{OP2(fsmove,x),        two(0xF000, 0x0040),    two(0xF1C0, 0xE07F),    "IiF8F7", m68040 }, /* fmove from <ea> to fp<n> */
+{OP2(fsmove,x),        two(0xF000, 0x4840),    two(0xF1C0, 0xFC7F),    "Ii;xF7", m68040 }, /* fmove from <ea> to fp<n> */
+{OP2(fsmove,p),        two(0xF000, 0x4C40),    two(0xF1C0, 0xFC7F),    "Ii;pF7",   mfloat },           /* fmove from <ea> to fp<n> */
+/* JF removed {OP2(fsmove,x),  two(0xF000, 0x0000),    two(0xF1C0, 0xE07F),    "IiFt", m68040 }, / * fmove from <ea> to fp<n> */
+
+{OP2(fdmove,b),        two(0xF000, 0x5844),    two(0xF1C0, 0xFC7F),    "Ii;bF7", m68040 }, /* fmove from <ea> to fp<n> */
+{OP2(fdmove,d),        two(0xF000, 0x5444),    two(0xF1C0, 0xFC7F),    "Ii;FF7", m68040 }, /* fmove from <ea> to fp<n> */
+{OP2(fdmove,l),        two(0xF000, 0x4044),    two(0xF1C0, 0xFC7F),    "Ii;lF7", m68040 }, /* fmove from <ea> to fp<n> */
+{OP2(fdmove,s),        two(0xF000, 0x4444),    two(0xF1C0, 0xFC7F),    "Ii;fF7", m68040 }, /* fmove from <ea> to fp<n> */
+{OP2(fdmove,w),        two(0xF000, 0x5044),    two(0xF1C0, 0xFC7F),    "Ii;wF7", m68040 }, /* fmove from <ea> to fp<n> */
+{OP2(fdmove,x),        two(0xF000, 0x0044),    two(0xF1C0, 0xE07F),    "IiF8F7", m68040 }, /* fmove from <ea> to fp<n> */
+{OP2(fdmove,x),        two(0xF000, 0x4844),    two(0xF1C0, 0xFC7F),    "Ii;xF7", m68040 }, /* fmove from <ea> to fp<n> */
+{OP2(fdmove,p),        two(0xF000, 0x4C44),    two(0xF1C0, 0xFC7F),    "Ii;pF7",   mfloat },           /* fmove from <ea> to fp<n> */
+/* JF removed {OP2(fdmove,x),  two(0xF000, 0x0000),    two(0xF1C0, 0xE07F),    "IiFt", m68040 }, / * fmove from <ea> to fp<n> */
 
 {OP2(fmovecr,x),       two(0xF000, 0x5C00),    two(0xF1FF, 0xFC00),    "Ii#CF7", mfloat },             /* fmovecr.x #ccc, FPn */
 {"fmovecr",    two(0xF000, 0x5C00),    two(0xF1FF, 0xFC00),    "Ii#CF7", mfloat },
@@ -1161,27 +1149,27 @@ struct m68k_opcode m68k_opcodes[] =
 {OP2(fmul,w),  two(0xF000, 0x5023),    two(0xF1C0, 0xFC7F),    "Ii;wF7", mfloat },
 {OP2(fmul,x),  two(0xF000, 0x0023),    two(0xF1C0, 0xE07F),    "IiF8F7", mfloat },
 {OP2(fmul,x),  two(0xF000, 0x4823),    two(0xF1C0, 0xFC7F),    "Ii;xF7", mfloat },
-/* {"fmulx",   two(0xF000, 0x0023),    two(0xF1C0, 0xE07F),    "IiFt",   mfloat }, JF */
-
-{OP2(fsmul,b), two(0xF000, 0x5833),    two(0xF1C0, 0xFC7F),    "Ii;bF7", m68040 },
-{OP2(fsmul,d), two(0xF000, 0x5433),    two(0xF1C0, 0xFC7F),    "Ii;FF7", m68040 },
-{OP2(fsmul,l), two(0xF000, 0x4033),    two(0xF1C0, 0xFC7F),    "Ii;lF7", m68040 },
-{OP2(fsmul,p), two(0xF000, 0x4C33),    two(0xF1C0, 0xFC7F),    "Ii;pF7", m68040 },
-{OP2(fsmul,s), two(0xF000, 0x4433),    two(0xF1C0, 0xFC7F),    "Ii;fF7", m68040 },
-{OP2(fsmul,w), two(0xF000, 0x5033),    two(0xF1C0, 0xFC7F),    "Ii;wF7", m68040 },
-{OP2(fsmul,x), two(0xF000, 0x0033),    two(0xF1C0, 0xE07F),    "IiF8F7", m68040 },
-{OP2(fsmul,x), two(0xF000, 0x4833),    two(0xF1C0, 0xFC7F),    "Ii;xF7", m68040 },
-/* {"fsmulx",  two(0xF000, 0x0033),    two(0xF1C0, 0xE07F),    "IiFt",   m68040 }, JF */
-
-{OP2(fdmul,b), two(0xF000, 0x5837),    two(0xF1C0, 0xFC7F),    "Ii;bF7", m68040 },
-{OP2(fdmul,d), two(0xF000, 0x5437),    two(0xF1C0, 0xFC7F),    "Ii;FF7", m68040 },
-{OP2(fdmul,l), two(0xF000, 0x4037),    two(0xF1C0, 0xFC7F),    "Ii;lF7", m68040 },
-{OP2(fdmul,p), two(0xF000, 0x4C37),    two(0xF1C0, 0xFC7F),    "Ii;pF7", m68040 },
-{OP2(fdmul,s), two(0xF000, 0x4437),    two(0xF1C0, 0xFC7F),    "Ii;fF7", m68040 },
-{OP2(fdmul,w), two(0xF000, 0x5037),    two(0xF1C0, 0xFC7F),    "Ii;wF7", m68040 },
-{OP2(fdmul,x), two(0xF000, 0x0037),    two(0xF1C0, 0xE07F),    "IiF8F7", m68040 },
-{OP2(fdmul,x), two(0xF000, 0x4837),    two(0xF1C0, 0xFC7F),    "Ii;xF7", m68040 },
-/* {"dfmulx",  two(0xF000, 0x0037),    two(0xF1C0, 0xE07F),    "IiFt",   m68040 }, JF */
+/* {OP2(fmul,x),       two(0xF000, 0x0023),    two(0xF1C0, 0xE07F),    "IiFt",   mfloat }, JF */
+
+{OP2(fsmul,b), two(0xF000, 0x5863),    two(0xF1C0, 0xFC7F),    "Ii;bF7", m68040 },
+{OP2(fsmul,d), two(0xF000, 0x5463),    two(0xF1C0, 0xFC7F),    "Ii;FF7", m68040 },
+{OP2(fsmul,l), two(0xF000, 0x4063),    two(0xF1C0, 0xFC7F),    "Ii;lF7", m68040 },
+{OP2(fsmul,p), two(0xF000, 0x4C63),    two(0xF1C0, 0xFC7F),    "Ii;pF7", m68040 },
+{OP2(fsmul,s), two(0xF000, 0x4463),    two(0xF1C0, 0xFC7F),    "Ii;fF7", m68040 },
+{OP2(fsmul,w), two(0xF000, 0x5063),    two(0xF1C0, 0xFC7F),    "Ii;wF7", m68040 },
+{OP2(fsmul,x), two(0xF000, 0x0063),    two(0xF1C0, 0xE07F),    "IiF8F7", m68040 },
+{OP2(fsmul,x), two(0xF000, 0x4863),    two(0xF1C0, 0xFC7F),    "Ii;xF7", m68040 },
+/* {OP2(fsmul,x),      two(0xF000, 0x0033),    two(0xF1C0, 0xE07F),    "IiFt",   m68040 }, JF */
+
+{OP2(fdmul,b), two(0xF000, 0x5867),    two(0xF1C0, 0xFC7F),    "Ii;bF7", m68040 },
+{OP2(fdmul,d), two(0xF000, 0x5467),    two(0xF1C0, 0xFC7F),    "Ii;FF7", m68040 },
+{OP2(fdmul,l), two(0xF000, 0x4067),    two(0xF1C0, 0xFC7F),    "Ii;lF7", m68040 },
+{OP2(fdmul,p), two(0xF000, 0x4C67),    two(0xF1C0, 0xFC7F),    "Ii;pF7", m68040 },
+{OP2(fdmul,s), two(0xF000, 0x4467),    two(0xF1C0, 0xFC7F),    "Ii;fF7", m68040 },
+{OP2(fdmul,w), two(0xF000, 0x5067),    two(0xF1C0, 0xFC7F),    "Ii;wF7", m68040 },
+{OP2(fdmul,x), two(0xF000, 0x0067),    two(0xF1C0, 0xE07F),    "IiF8F7", m68040 },
+{OP2(fdmul,x), two(0xF000, 0x4867),    two(0xF1C0, 0xFC7F),    "Ii;xF7", m68040 },
+/* {OP2(dfmul,x),      two(0xF000, 0x0067),    two(0xF1C0, 0xE07F),    "IiFt",   m68040 }, JF */
 
 {OP2(fneg,b),  two(0xF000, 0x581A),    two(0xF1C0, 0xFC7F),    "Ii;bF7", mfloat },
 {OP2(fneg,d),  two(0xF000, 0x541A),    two(0xF1C0, 0xFC7F),    "Ii;FF7", mfloat },
@@ -1371,25 +1359,25 @@ struct m68k_opcode m68k_opcodes[] =
 {OP2(fsub,x),  two(0xF000, 0x4828),    two(0xF1C0, 0xFC7F),    "Ii;xF7", mfloat },
 {OP2(fsub,x),  two(0xF000, 0x0028),    two(0xF1C0, 0xE07F),    "IiFt",   mfloat },
 
-{OP2(fssub,b), two(0xF000, 0x5838),    two(0xF1C0, 0xFC7F),    "Ii;bF7", m68040 },
-{OP2(fssub,d), two(0xF000, 0x5438),    two(0xF1C0, 0xFC7F),    "Ii;FF7", m68040 },
-{OP2(fssub,l), two(0xF000, 0x4038),    two(0xF1C0, 0xFC7F),    "Ii;lF7", m68040 },
-{OP2(fssub,p), two(0xF000, 0x4C38),    two(0xF1C0, 0xFC7F),    "Ii;pF7", m68040 },
-{OP2(fssub,s), two(0xF000, 0x4438),    two(0xF1C0, 0xFC7F),    "Ii;fF7", m68040 },
-{OP2(fssub,w), two(0xF000, 0x5038),    two(0xF1C0, 0xFC7F),    "Ii;wF7", m68040 },
-{OP2(fssub,x), two(0xF000, 0x0038),    two(0xF1C0, 0xE07F),    "IiF8F7", m68040 },
-{OP2(fssub,x), two(0xF000, 0x4838),    two(0xF1C0, 0xFC7F),    "Ii;xF7", m68040 },
-{OP2(fssub,x), two(0xF000, 0x0038),    two(0xF1C0, 0xE07F),    "IiFt",   m68040 },
-
-{OP2(fdsub,b), two(0xF000, 0x583c),    two(0xF1C0, 0xFC7F),    "Ii;bF7", m68040 },
-{OP2(fdsub,d), two(0xF000, 0x543c),    two(0xF1C0, 0xFC7F),    "Ii;FF7", m68040 },
-{OP2(fdsub,l), two(0xF000, 0x403c),    two(0xF1C0, 0xFC7F),    "Ii;lF7", m68040 },
-{OP2(fdsub,p), two(0xF000, 0x4C3c),    two(0xF1C0, 0xFC7F),    "Ii;pF7", m68040 },
-{OP2(fdsub,s), two(0xF000, 0x443c),    two(0xF1C0, 0xFC7F),    "Ii;fF7", m68040 },
-{OP2(fdsub,w), two(0xF000, 0x503c),    two(0xF1C0, 0xFC7F),    "Ii;wF7", m68040 },
-{OP2(fdsub,x), two(0xF000, 0x003c),    two(0xF1C0, 0xE07F),    "IiF8F7", m68040 },
-{OP2(fdsub,x), two(0xF000, 0x483c),    two(0xF1C0, 0xFC7F),    "Ii;xF7", m68040 },
-{OP2(fdsub,x), two(0xF000, 0x003c),    two(0xF1C0, 0xE07F),    "IiFt",   m68040 },
+{OP2(fssub,b), two(0xF000, 0x5868),    two(0xF1C0, 0xFC7F),    "Ii;bF7", m68040 },
+{OP2(fssub,d), two(0xF000, 0x5468),    two(0xF1C0, 0xFC7F),    "Ii;FF7", m68040 },
+{OP2(fssub,l), two(0xF000, 0x4068),    two(0xF1C0, 0xFC7F),    "Ii;lF7", m68040 },
+{OP2(fssub,p), two(0xF000, 0x4C68),    two(0xF1C0, 0xFC7F),    "Ii;pF7", m68040 },
+{OP2(fssub,s), two(0xF000, 0x4468),    two(0xF1C0, 0xFC7F),    "Ii;fF7", m68040 },
+{OP2(fssub,w), two(0xF000, 0x5068),    two(0xF1C0, 0xFC7F),    "Ii;wF7", m68040 },
+{OP2(fssub,x), two(0xF000, 0x0068),    two(0xF1C0, 0xE07F),    "IiF8F7", m68040 },
+{OP2(fssub,x), two(0xF000, 0x4868),    two(0xF1C0, 0xFC7F),    "Ii;xF7", m68040 },
+{OP2(fssub,x), two(0xF000, 0x0068),    two(0xF1C0, 0xE07F),    "IiFt",   m68040 },
+
+{OP2(fdsub,b), two(0xF000, 0x586c),    two(0xF1C0, 0xFC7F),    "Ii;bF7", m68040 },
+{OP2(fdsub,d), two(0xF000, 0x546c),    two(0xF1C0, 0xFC7F),    "Ii;FF7", m68040 },
+{OP2(fdsub,l), two(0xF000, 0x406c),    two(0xF1C0, 0xFC7F),    "Ii;lF7", m68040 },
+{OP2(fdsub,p), two(0xF000, 0x4C6c),    two(0xF1C0, 0xFC7F),    "Ii;pF7", m68040 },
+{OP2(fdsub,s), two(0xF000, 0x446c),    two(0xF1C0, 0xFC7F),    "Ii;fF7", m68040 },
+{OP2(fdsub,w), two(0xF000, 0x506c),    two(0xF1C0, 0xFC7F),    "Ii;wF7", m68040 },
+{OP2(fdsub,x), two(0xF000, 0x006c),    two(0xF1C0, 0xE07F),    "IiF8F7", m68040 },
+{OP2(fdsub,x), two(0xF000, 0x486c),    two(0xF1C0, 0xFC7F),    "Ii;xF7", m68040 },
+{OP2(fdsub,x), two(0xF000, 0x006c),    two(0xF1C0, 0xE07F),    "IiFt",   m68040 },
 
 {OP2(ftan,b),  two(0xF000, 0x580F),    two(0xF1C0, 0xFC7F),    "Ii;bF7", mfloat },
 {OP2(ftan,d),  two(0xF000, 0x540F),    two(0xF1C0, 0xFC7F),    "Ii;FF7", mfloat },
@@ -1824,10 +1812,10 @@ struct m68k_opcode m68k_opcodes[] =
 {"pflush",     two(0xf000, 0x3808),    two(0xffc0, 0xfe18),    "D3T9&s",       m68030 | m68851 },
 {"pflush",     two(0xf000, 0x3000),    two(0xffc0, 0xfe1e),    "f3T9",         m68030 | m68851 },
 {"pflush",     two(0xf000, 0x3800),    two(0xffc0, 0xfe1e),    "f3T9&s",       m68030 | m68851 },
-{"pflush",     one(0xf500),            one(0xfff8),            "As",           m68040 },
+{"pflush",     one(0xf500),            one(0xfff8),            "as",           m68040 },
 
 {"pflushan",   one(0xf518),            one(0xfff8),            "",             m68040 },
-{"pflushn",    one(0xf508),            one(0xfff8),            "As",           m68040 },
+{"pflushn",    one(0xf508),            one(0xfff8),            "as",           m68040 },
 
 {"pflushr",    two(0xf000, 0xa000),    two(0xffc0, 0xffff),    "|s",           m68851 },
 
@@ -1893,7 +1881,7 @@ struct m68k_opcode m68k_opcodes[] =
 {"ptestr",     two(0xf000, 0x8200),    two(0xffc0, 0xe3fe),    "f3&sQ8",       m68030 | m68851 },
 {"ptestr",     two(0xf000, 0x8300),    two(0xffc0, 0xe31e),    "f3&sQ8A9",     m68030 | m68851 },
 
-{"ptestr",     one(0xf568),            one(0xfff8),            "As",           m68040 },
+{"ptestr",     one(0xf568),            one(0xfff8),            "as",           m68040 },
 
 {"ptestw",     two(0xf000, 0x8010),    two(0xffc0, 0xe3f0),    "T3&sQ8",       m68030 | m68851 },
 {"ptestw",     two(0xf000, 0x8110),    two(0xffc0, 0xe310),    "T3&sQ8A9",     m68030 | m68851 },
@@ -1902,7 +1890,7 @@ struct m68k_opcode m68k_opcodes[] =
 {"ptestw",     two(0xf000, 0x8000),    two(0xffc0, 0xe3fe),    "f3&sQ8",       m68030 | m68851 },
 {"ptestw",     two(0xf000, 0x8100),    two(0xffc0, 0xe31e),    "f3&sQ8A9",     m68030 | m68851 },
 
-{"ptestw",     one(0xf548),            one(0xfff8),            "As",           m68040 },
+{"ptestw",     one(0xf548),            one(0xfff8),            "as",           m68040 },
 
 {OP2(ptrapac,w),       two(0xf07a, 0x0007),    two(0xffff, 0xffff),    "#w", m68851 },
 {OP2(ptrapac,l),       two(0xf07b, 0x0007),    two(0xffff, 0xffff),    "#l", m68851 },