fix in cmpxchg instruction; i486 book is wrong
authorceriel <none@none>
Thu, 25 Apr 1996 08:38:05 +0000 (08:38 +0000)
committerceriel <none@none>
Thu, 25 Apr 1996 08:38:05 +0000 (08:38 +0000)
mach/i386/as/mach3.c
mach/i386/as/mach4.c

index f2b1124..1a348b5 100644 (file)
 /* Intel 486 instructions */
 0,     EXTOPBW,        0xC0,           "xaddb",
 0,     EXTOPBW,        0xC1,           "xadd",
-0,     EXTOPBW,        0xA6,           "cmpxchgb",
-0,     EXTOPBW,        0xA7,           "cmpxchg",
+0,     EXTOPBW,        0xB0,           "cmpxchgb",
+0,     EXTOPBW,        0xB1,           "cmpxchg",
 0,     BSWAP,          0xC8,           "bswap",
 0,     NOOP_2,         017+(010<<8),   "invd",
 0,     EXTOP1,         071,            "invlpg",
index 711c3c7..1783002 100644 (file)
@@ -199,9 +199,9 @@ oper        :       NOOP_1
        /* 486 instructions */
        |       BSWAP R32
                        {       emit1(0xF); emit1($1|$2); }
-       |       EXTOPBW reg ',' ea_2
+       |       EXTOPBW ea_2 ',' reg
                        {       regsize($1);
-                               emit1(0xF); emit1($1); ea_2($2<<3);
+                               emit1(0xF); emit1($1); ea_2($4<<3);
                        }
        ;