summaryrefslogtreecommitdiffstats
path: root/usr.bin/doscmd/i386-pinsn.c
diff options
context:
space:
mode:
authortg <tg@FreeBSD.org>2001-08-08 10:58:50 +0000
committertg <tg@FreeBSD.org>2001-08-08 10:58:50 +0000
commit6348c039baa1f511ba2ac6fdaa35a20dc70660a0 (patch)
tree4d66598b3d4764d3b099fb706b641b607fb600c2 /usr.bin/doscmd/i386-pinsn.c
parent2143008ac012ce21897ff583fc00d6fd7691f90d (diff)
downloadFreeBSD-src-6348c039baa1f511ba2ac6fdaa35a20dc70660a0.zip
FreeBSD-src-6348c039baa1f511ba2ac6fdaa35a20dc70660a0.tar.gz
Silence some more warnings, mostly from `-W -Wwrite-strings'.
Diffstat (limited to 'usr.bin/doscmd/i386-pinsn.c')
-rw-r--r--usr.bin/doscmd/i386-pinsn.c1309
1 files changed, 719 insertions, 590 deletions
diff --git a/usr.bin/doscmd/i386-pinsn.c b/usr.bin/doscmd/i386-pinsn.c
index afb29d7..5a7eff7 100644
--- a/usr.bin/doscmd/i386-pinsn.c
+++ b/usr.bin/doscmd/i386-pinsn.c
@@ -50,8 +50,8 @@ static void append_prefix(void);
static void dofloat(void);
static int get16(void);
static int get32(void);
-static void oappend(char *);
-static void putop(char *);
+static void oappend(const char *);
+static void putop(const char *);
#define Eb OP_E, b_mode
#define indirEb OP_indirE, b_mode
@@ -67,7 +67,7 @@ static void putop(char *);
#define Rw OP_rm, w_mode
#define Rd OP_rm, d_mode
#define Ib OP_I, b_mode
-#define sIb OP_sI, b_mode /* sign extened byte */
+#define sIb OP_sI, b_mode /* sign extended byte */
#define Iv OP_I, v_mode
#define Iw OP_I, w_mode
#define Jb OP_J, b_mode
@@ -155,28 +155,30 @@ static void putop(char *);
#define indir_dx_reg 150
-#define GRP1b NULL, NULL, 0
-#define GRP1S NULL, NULL, 1
-#define GRP1Ss NULL, NULL, 2
-#define GRP2b NULL, NULL, 3
-#define GRP2S NULL, NULL, 4
-#define GRP2b_one NULL, NULL, 5
-#define GRP2S_one NULL, NULL, 6
-#define GRP2b_cl NULL, NULL, 7
-#define GRP2S_cl NULL, NULL, 8
-#define GRP3b NULL, NULL, 9
-#define GRP3S NULL, NULL, 10
-#define GRP4 NULL, NULL, 11
-#define GRP5 NULL, NULL, 12
-#define GRP6 NULL, NULL, 13
-#define GRP7 NULL, NULL, 14
-#define GRP8 NULL, NULL, 15
+#define NOFUNC NULL, 0
+
+#define GRP1b NULL, NULL, 0, NOFUNC, NOFUNC
+#define GRP1S NULL, NULL, 1, NOFUNC, NOFUNC
+#define GRP1Ss NULL, NULL, 2, NOFUNC, NOFUNC
+#define GRP2b NULL, NULL, 3, NOFUNC, NOFUNC
+#define GRP2S NULL, NULL, 4, NOFUNC, NOFUNC
+#define GRP2b_one NULL, NULL, 5, NOFUNC, NOFUNC
+#define GRP2S_one NULL, NULL, 6, NOFUNC, NOFUNC
+#define GRP2b_cl NULL, NULL, 7, NOFUNC, NOFUNC
+#define GRP2S_cl NULL, NULL, 8, NOFUNC, NOFUNC
+#define GRP3b NULL, NULL, 9, NOFUNC, NOFUNC
+#define GRP3S NULL, NULL, 10, NOFUNC, NOFUNC
+#define GRP4 NULL, NULL, 11, NOFUNC, NOFUNC
+#define GRP5 NULL, NULL, 12, NOFUNC, NOFUNC
+#define GRP6 NULL, NULL, 13, NOFUNC, NOFUNC
+#define GRP7 NULL, NULL, 14, NOFUNC, NOFUNC
+#define GRP8 NULL, NULL, 15, NOFUNC, NOFUNC
#define FLOATCODE 50
-#define FLOAT NULL, NULL, FLOATCODE
+#define FLOAT NULL, NULL, FLOATCODE, NOFUNC, NOFUNC
struct dis386 {
- char *name;
+ const char *name;
void (*op1)(int);
int bytemode1;
void (*op2)(int);
@@ -187,248 +189,248 @@ struct dis386 {
struct dis386 dis386[] = {
/* 00 */
- { "addb", Eb, Gb },
- { "addS", Ev, Gv },
- { "addb", Gb, Eb },
- { "addS", Gv, Ev },
- { "addb", AL, Ib },
- { "addS", eAX, Iv },
- { "pushl", es },
- { "popl", es },
+ { "addb", Eb, Gb, NOFUNC },
+ { "addS", Ev, Gv, NOFUNC },
+ { "addb", Gb, Eb, NOFUNC },
+ { "addS", Gv, Ev, NOFUNC },
+ { "addb", AL, Ib, NOFUNC },
+ { "addS", eAX, Iv, NOFUNC },
+ { "pushl", es, NOFUNC, NOFUNC },
+ { "popl", es, NOFUNC, NOFUNC },
/* 08 */
- { "orb", Eb, Gb },
- { "orS", Ev, Gv },
- { "orb", Gb, Eb },
- { "orS", Gv, Ev },
- { "orb", AL, Ib },
- { "orS", eAX, Iv },
- { "pushl", cs },
- { "(bad)" }, /* 0x0f extended opcode escape */
+ { "orb", Eb, Gb, NOFUNC },
+ { "orS", Ev, Gv, NOFUNC },
+ { "orb", Gb, Eb, NOFUNC },
+ { "orS", Gv, Ev, NOFUNC },
+ { "orb", AL, Ib, NOFUNC },
+ { "orS", eAX, Iv, NOFUNC },
+ { "pushl", cs, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC }, /* extended opcode escape */
/* 10 */
- { "adcb", Eb, Gb },
- { "adcS", Ev, Gv },
- { "adcb", Gb, Eb },
- { "adcS", Gv, Ev },
- { "adcb", AL, Ib },
- { "adcS", eAX, Iv },
- { "pushl", ss },
- { "popl", ss },
+ { "adcb", Eb, Gb, NOFUNC },
+ { "adcS", Ev, Gv, NOFUNC },
+ { "adcb", Gb, Eb, NOFUNC },
+ { "adcS", Gv, Ev, NOFUNC },
+ { "adcb", AL, Ib, NOFUNC },
+ { "adcS", eAX, Iv, NOFUNC },
+ { "pushl", ss, NOFUNC, NOFUNC },
+ { "popl", ss, NOFUNC, NOFUNC },
/* 18 */
- { "sbbb", Eb, Gb },
- { "sbbS", Ev, Gv },
- { "sbbb", Gb, Eb },
- { "sbbS", Gv, Ev },
- { "sbbb", AL, Ib },
- { "sbbS", eAX, Iv },
- { "pushl", ds },
- { "popl", ds },
+ { "sbbb", Eb, Gb, NOFUNC },
+ { "sbbS", Ev, Gv, NOFUNC },
+ { "sbbb", Gb, Eb, NOFUNC },
+ { "sbbS", Gv, Ev, NOFUNC },
+ { "sbbb", AL, Ib, NOFUNC },
+ { "sbbS", eAX, Iv, NOFUNC },
+ { "pushl", ds, NOFUNC, NOFUNC },
+ { "popl", ds, NOFUNC, NOFUNC },
/* 20 */
- { "andb", Eb, Gb },
- { "andS", Ev, Gv },
- { "andb", Gb, Eb },
- { "andS", Gv, Ev },
- { "andb", AL, Ib },
- { "andS", eAX, Iv },
- { "(bad)" }, /* SEG ES prefix */
- { "daa" },
+ { "andb", Eb, Gb, NOFUNC },
+ { "andS", Ev, Gv, NOFUNC },
+ { "andb", Gb, Eb, NOFUNC },
+ { "andS", Gv, Ev, NOFUNC },
+ { "andb", AL, Ib, NOFUNC },
+ { "andS", eAX, Iv, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC}, /* SEG ES prefix */
+ { "daa", NOFUNC, NOFUNC, NOFUNC },
/* 28 */
- { "subb", Eb, Gb },
- { "subS", Ev, Gv },
- { "subb", Gb, Eb },
- { "subS", Gv, Ev },
- { "subb", AL, Ib },
- { "subS", eAX, Iv },
- { "(bad)" }, /* SEG CS prefix */
- { "das" },
+ { "subb", Eb, Gb, NOFUNC },
+ { "subS", Ev, Gv, NOFUNC },
+ { "subb", Gb, Eb, NOFUNC },
+ { "subS", Gv, Ev, NOFUNC },
+ { "subb", AL, Ib, NOFUNC },
+ { "subS", eAX, Iv, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC }, /* SEG CS prefix */
+ { "das", NOFUNC, NOFUNC, NOFUNC },
/* 30 */
- { "xorb", Eb, Gb },
- { "xorS", Ev, Gv },
- { "xorb", Gb, Eb },
- { "xorS", Gv, Ev },
- { "xorb", AL, Ib },
- { "xorS", eAX, Iv },
- { "(bad)" }, /* SEG SS prefix */
- { "aaa" },
+ { "xorb", Eb, Gb, NOFUNC },
+ { "xorS", Ev, Gv, NOFUNC },
+ { "xorb", Gb, Eb, NOFUNC },
+ { "xorS", Gv, Ev, NOFUNC },
+ { "xorb", AL, Ib, NOFUNC },
+ { "xorS", eAX, Iv, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC }, /* SEG SS prefix */
+ { "aaa", NOFUNC, NOFUNC, NOFUNC },
/* 38 */
- { "cmpb", Eb, Gb },
- { "cmpS", Ev, Gv },
- { "cmpb", Gb, Eb },
- { "cmpS", Gv, Ev },
- { "cmpb", AL, Ib },
- { "cmpS", eAX, Iv },
- { "(bad)" }, /* SEG DS prefix */
- { "aas" },
+ { "cmpb", Eb, Gb, NOFUNC },
+ { "cmpS", Ev, Gv, NOFUNC },
+ { "cmpb", Gb, Eb, NOFUNC },
+ { "cmpS", Gv, Ev, NOFUNC },
+ { "cmpb", AL, Ib, NOFUNC },
+ { "cmpS", eAX, Iv, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC }, /* SEG DS prefix */
+ { "aas", NOFUNC, NOFUNC, NOFUNC },
/* 40 */
- { "incS", eAX },
- { "incS", eCX },
- { "incS", eDX },
- { "incS", eBX },
- { "incS", eSP },
- { "incS", eBP },
- { "incS", eSI },
- { "incS", eDI },
+ { "incS", eAX, NOFUNC, NOFUNC },
+ { "incS", eCX, NOFUNC, NOFUNC },
+ { "incS", eDX, NOFUNC, NOFUNC },
+ { "incS", eBX, NOFUNC, NOFUNC },
+ { "incS", eSP, NOFUNC, NOFUNC },
+ { "incS", eBP, NOFUNC, NOFUNC },
+ { "incS", eSI, NOFUNC, NOFUNC },
+ { "incS", eDI, NOFUNC, NOFUNC },
/* 48 */
- { "decS", eAX },
- { "decS", eCX },
- { "decS", eDX },
- { "decS", eBX },
- { "decS", eSP },
- { "decS", eBP },
- { "decS", eSI },
- { "decS", eDI },
+ { "decS", eAX, NOFUNC, NOFUNC },
+ { "decS", eCX, NOFUNC, NOFUNC },
+ { "decS", eDX, NOFUNC, NOFUNC },
+ { "decS", eBX, NOFUNC, NOFUNC },
+ { "decS", eSP, NOFUNC, NOFUNC },
+ { "decS", eBP, NOFUNC, NOFUNC },
+ { "decS", eSI, NOFUNC, NOFUNC },
+ { "decS", eDI, NOFUNC, NOFUNC },
/* 50 */
- { "pushS", eAX },
- { "pushS", eCX },
- { "pushS", eDX },
- { "pushS", eBX },
- { "pushS", eSP },
- { "pushS", eBP },
- { "pushS", eSI },
- { "pushS", eDI },
+ { "pushS", eAX, NOFUNC, NOFUNC },
+ { "pushS", eCX, NOFUNC, NOFUNC },
+ { "pushS", eDX, NOFUNC, NOFUNC },
+ { "pushS", eBX, NOFUNC, NOFUNC },
+ { "pushS", eSP, NOFUNC, NOFUNC },
+ { "pushS", eBP, NOFUNC, NOFUNC },
+ { "pushS", eSI, NOFUNC, NOFUNC },
+ { "pushS", eDI, NOFUNC, NOFUNC },
/* 58 */
- { "popS", eAX },
- { "popS", eCX },
- { "popS", eDX },
- { "popS", eBX },
- { "popS", eSP },
- { "popS", eBP },
- { "popS", eSI },
- { "popS", eDI },
+ { "popS", eAX, NOFUNC, NOFUNC },
+ { "popS", eCX, NOFUNC, NOFUNC },
+ { "popS", eDX, NOFUNC, NOFUNC },
+ { "popS", eBX, NOFUNC, NOFUNC },
+ { "popS", eSP, NOFUNC, NOFUNC },
+ { "popS", eBP, NOFUNC, NOFUNC },
+ { "popS", eSI, NOFUNC, NOFUNC },
+ { "popS", eDI, NOFUNC, NOFUNC },
/* 60 */
- { "pusha" },
- { "popa" },
- { "boundS", Gv, Ma },
- { "arpl", Ew, Gw },
- { "(bad)" }, /* seg fs */
- { "(bad)" }, /* seg gs */
- { "(bad)" }, /* op size prefix */
- { "(bad)" }, /* adr size prefix */
+ { "pusha", NOFUNC, NOFUNC, NOFUNC },
+ { "popa", NOFUNC, NOFUNC, NOFUNC },
+ { "boundS", Gv, Ma, NOFUNC },
+ { "arpl", Ew, Gw, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC }, /* seg fs */
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC }, /* seg gs */
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC }, /* op size prefix */
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC }, /* adr size prefix */
/* 68 */
- { "pushS", Iv }, /* 386 book wrong */
+ { "pushS", Iv, NOFUNC, NOFUNC }, /* 386 book wrong */
{ "imulS", Gv, Ev, Iv },
- { "pushl", sIb }, /* push of byte really pushes 4 bytes */
+ { "pushl", sIb, NOFUNC, NOFUNC }, /* push of byte really pushes 4 bytes */
{ "imulS", Gv, Ev, Ib },
- { "insb", Yb, indirDX },
- { "insS", Yv, indirDX },
- { "outsb", indirDX, Xb },
- { "outsS", indirDX, Xv },
+ { "insb", Yb, indirDX, NOFUNC },
+ { "insS", Yv, indirDX, NOFUNC },
+ { "outsb", indirDX, Xb, NOFUNC },
+ { "outsS", indirDX, Xv, NOFUNC },
/* 70 */
- { "jo", Jb },
- { "jno", Jb },
- { "jb", Jb },
- { "jae", Jb },
- { "je", Jb },
- { "jne", Jb },
- { "jbe", Jb },
- { "ja", Jb },
+ { "jo", Jb, NOFUNC, NOFUNC },
+ { "jno", Jb, NOFUNC, NOFUNC },
+ { "jb", Jb, NOFUNC, NOFUNC },
+ { "jae", Jb, NOFUNC, NOFUNC },
+ { "je", Jb, NOFUNC, NOFUNC },
+ { "jne", Jb, NOFUNC, NOFUNC },
+ { "jbe", Jb, NOFUNC, NOFUNC },
+ { "ja", Jb, NOFUNC, NOFUNC },
/* 78 */
- { "js", Jb },
- { "jns", Jb },
- { "jp", Jb },
- { "jnp", Jb },
- { "jl", Jb },
- { "jnl", Jb },
- { "jle", Jb },
- { "jg", Jb },
+ { "js", Jb, NOFUNC, NOFUNC },
+ { "jns", Jb, NOFUNC, NOFUNC },
+ { "jp", Jb, NOFUNC, NOFUNC },
+ { "jnp", Jb, NOFUNC, NOFUNC },
+ { "jl", Jb, NOFUNC, NOFUNC },
+ { "jnl", Jb, NOFUNC, NOFUNC },
+ { "jle", Jb, NOFUNC, NOFUNC },
+ { "jg", Jb, NOFUNC, NOFUNC },
/* 80 */
{ GRP1b },
{ GRP1S },
- { "(bad)" },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
{ GRP1Ss },
- { "testb", Eb, Gb },
- { "testS", Ev, Gv },
- { "xchgb", Eb, Gb },
- { "xchgS", Ev, Gv },
+ { "testb", Eb, Gb, NOFUNC },
+ { "testS", Ev, Gv, NOFUNC },
+ { "xchgb", Eb, Gb, NOFUNC },
+ { "xchgS", Ev, Gv, NOFUNC },
/* 88 */
- { "movb", Eb, Gb },
- { "movS", Ev, Gv },
- { "movb", Gb, Eb },
- { "movS", Gv, Ev },
- { "movw", Ew, Sw },
- { "leaS", Gv, M },
- { "movw", Sw, Ew },
- { "popS", Ev },
+ { "movb", Eb, Gb, NOFUNC },
+ { "movS", Ev, Gv, NOFUNC },
+ { "movb", Gb, Eb, NOFUNC },
+ { "movS", Gv, Ev, NOFUNC },
+ { "movw", Ew, Sw, NOFUNC },
+ { "leaS", Gv, M, NOFUNC },
+ { "movw", Sw, Ew, NOFUNC },
+ { "popS", Ev, NOFUNC, NOFUNC },
/* 90 */
- { "nop" },
- { "xchgS", eCX, eAX },
- { "xchgS", eDX, eAX },
- { "xchgS", eBX, eAX },
- { "xchgS", eSP, eAX },
- { "xchgS", eBP, eAX },
- { "xchgS", eSI, eAX },
- { "xchgS", eDI, eAX },
+ { "nop", NOFUNC, NOFUNC, NOFUNC },
+ { "xchgS", eCX, eAX, NOFUNC },
+ { "xchgS", eDX, eAX, NOFUNC },
+ { "xchgS", eBX, eAX, NOFUNC },
+ { "xchgS", eSP, eAX, NOFUNC },
+ { "xchgS", eBP, eAX, NOFUNC },
+ { "xchgS", eSI, eAX, NOFUNC },
+ { "xchgS", eDI, eAX, NOFUNC },
/* 98 */
- { "cwtl" },
- { "cltd" },
- { "lcall", Ap },
- { "(bad)" }, /* fwait */
- { "pushf" },
- { "popf" },
- { "sahf" },
- { "lahf" },
+ { "cwtl", NOFUNC, NOFUNC, NOFUNC },
+ { "cltd", NOFUNC, NOFUNC, NOFUNC },
+ { "lcall", Ap, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC }, /* fwait */
+ { "pushf", NOFUNC, NOFUNC, NOFUNC },
+ { "popf", NOFUNC, NOFUNC, NOFUNC },
+ { "sahf", NOFUNC, NOFUNC, NOFUNC },
+ { "lahf", NOFUNC, NOFUNC, NOFUNC },
/* a0 */
- { "movb", AL, Ob },
- { "movS", eAX, Ov },
- { "movb", Ob, AL },
- { "movS", Ov, eAX },
- { "movsb", Yb, Xb },
- { "movsS", Yv, Xv },
- { "cmpsb", Xb, Yb },
- { "cmpsS", Xv, Yv },
+ { "movb", AL, Ob, NOFUNC },
+ { "movS", eAX, Ov, NOFUNC },
+ { "movb", Ob, AL, NOFUNC },
+ { "movS", Ov, eAX, NOFUNC },
+ { "movsb", Yb, Xb, NOFUNC },
+ { "movsS", Yv, Xv, NOFUNC },
+ { "cmpsb", Xb, Yb, NOFUNC },
+ { "cmpsS", Xv, Yv, NOFUNC },
/* a8 */
- { "testb", AL, Ib },
- { "testS", eAX, Iv },
- { "stosb", Yb, AL },
- { "stosS", Yv, eAX },
- { "lodsb", AL, Xb },
- { "lodsS", eAX, Xv },
- { "scasb", AL, Yb },
- { "scasS", eAX, Yv },
+ { "testb", AL, Ib, NOFUNC },
+ { "testS", eAX, Iv, NOFUNC },
+ { "stosb", Yb, AL, NOFUNC },
+ { "stosS", Yv, eAX, NOFUNC },
+ { "lodsb", AL, Xb, NOFUNC },
+ { "lodsS", eAX, Xv, NOFUNC },
+ { "scasb", AL, Yb, NOFUNC },
+ { "scasS", eAX, Yv, NOFUNC },
/* b0 */
- { "movb", AL, Ib },
- { "movb", CL, Ib },
- { "movb", DL, Ib },
- { "movb", BL, Ib },
- { "movb", AH, Ib },
- { "movb", CH, Ib },
- { "movb", DH, Ib },
- { "movb", BH, Ib },
+ { "movb", AL, Ib, NOFUNC },
+ { "movb", CL, Ib, NOFUNC },
+ { "movb", DL, Ib, NOFUNC },
+ { "movb", BL, Ib, NOFUNC },
+ { "movb", AH, Ib, NOFUNC },
+ { "movb", CH, Ib, NOFUNC },
+ { "movb", DH, Ib, NOFUNC },
+ { "movb", BH, Ib, NOFUNC },
/* b8 */
- { "movS", eAX, Iv },
- { "movS", eCX, Iv },
- { "movS", eDX, Iv },
- { "movS", eBX, Iv },
- { "movS", eSP, Iv },
- { "movS", eBP, Iv },
- { "movS", eSI, Iv },
- { "movS", eDI, Iv },
+ { "movS", eAX, Iv, NOFUNC },
+ { "movS", eCX, Iv, NOFUNC },
+ { "movS", eDX, Iv, NOFUNC },
+ { "movS", eBX, Iv, NOFUNC },
+ { "movS", eSP, Iv, NOFUNC },
+ { "movS", eBP, Iv, NOFUNC },
+ { "movS", eSI, Iv, NOFUNC },
+ { "movS", eDI, Iv, NOFUNC },
/* c0 */
{ GRP2b },
{ GRP2S },
- { "ret", Iw },
- { "ret" },
- { "lesS", Gv, Mp },
- { "ldsS", Gv, Mp },
- { "movb", Eb, Ib },
- { "movS", Ev, Iv },
+ { "ret", Iw, NOFUNC, NOFUNC },
+ { "ret", NOFUNC, NOFUNC, NOFUNC },
+ { "lesS", Gv, Mp, NOFUNC },
+ { "ldsS", Gv, Mp, NOFUNC },
+ { "movb", Eb, Ib, NOFUNC },
+ { "movS", Ev, Iv, NOFUNC },
/* c8 */
- { "enter", Iw, Ib },
- { "leave" },
- { "lret", Iw },
- { "lret" },
- { "int3" },
- { "int", Ib },
- { "into" },
- { "iret" },
+ { "enter", Iw, Ib, NOFUNC },
+ { "leave", NOFUNC, NOFUNC, NOFUNC },
+ { "lret", Iw, NOFUNC, NOFUNC },
+ { "lret", NOFUNC, NOFUNC, NOFUNC },
+ { "int3", NOFUNC, NOFUNC, NOFUNC },
+ { "int", Ib, NOFUNC, NOFUNC },
+ { "into", NOFUNC, NOFUNC, NOFUNC },
+ { "iret", NOFUNC, NOFUNC, NOFUNC },
/* d0 */
{ GRP2b_one },
{ GRP2S_one },
{ GRP2b_cl },
{ GRP2S_cl },
- { "aam", Ib },
- { "aad", Ib },
- { "(bad)" },
- { "xlat" },
+ { "aam", Ib, NOFUNC, NOFUNC },
+ { "aad", Ib, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "xlat", NOFUNC, NOFUNC, NOFUNC },
/* d8 */
{ FLOAT },
{ FLOAT },
@@ -439,39 +441,39 @@ struct dis386 dis386[] = {
{ FLOAT },
{ FLOAT },
/* e0 */
- { "loopne", Jb },
- { "loope", Jb },
- { "loop", Jb },
- { "jCcxz", Jb },
- { "inb", AL, Ib },
- { "inS", eAX, Ib },
- { "outb", Ib, AL },
- { "outS", Ib, eAX },
+ { "loopne", Jb, NOFUNC, NOFUNC },
+ { "loope", Jb, NOFUNC, NOFUNC },
+ { "loop", Jb, NOFUNC, NOFUNC },
+ { "jCcxz", Jb, NOFUNC, NOFUNC },
+ { "inb", AL, Ib, NOFUNC },
+ { "inS", eAX, Ib, NOFUNC },
+ { "outb", Ib, AL, NOFUNC },
+ { "outS", Ib, eAX, NOFUNC },
/* e8 */
- { "call", Av },
- { "jmp", Jv },
- { "ljmp", Ap },
- { "jmp", Jb },
- { "inb", AL, indirDX },
- { "inS", eAX, indirDX },
- { "outb", indirDX, AL },
- { "outS", indirDX, eAX },
+ { "call", Av, NOFUNC, NOFUNC },
+ { "jmp", Jv, NOFUNC, NOFUNC },
+ { "ljmp", Ap, NOFUNC, NOFUNC },
+ { "jmp", Jb, NOFUNC, NOFUNC },
+ { "inb", AL, indirDX, NOFUNC },
+ { "inS", eAX, indirDX, NOFUNC },
+ { "outb", indirDX, AL, NOFUNC },
+ { "outS", indirDX, eAX, NOFUNC },
/* f0 */
- { "(bad)" }, /* lock prefix */
- { "(bad)" },
- { "(bad)" }, /* repne */
- { "(bad)" }, /* repz */
- { "hlt" },
- { "cmc" },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC }, /* lock prefix */
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC }, /* repne */
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC }, /* repz */
+ { "hlt", NOFUNC, NOFUNC, NOFUNC },
+ { "cmc", NOFUNC, NOFUNC, NOFUNC },
{ GRP3b },
{ GRP3S },
/* f8 */
- { "clc" },
- { "stc" },
- { "cli" },
- { "sti" },
- { "cld" },
- { "std" },
+ { "clc", NOFUNC, NOFUNC, NOFUNC },
+ { "stc", NOFUNC, NOFUNC, NOFUNC },
+ { "cli", NOFUNC, NOFUNC, NOFUNC },
+ { "sti", NOFUNC, NOFUNC, NOFUNC },
+ { "cld", NOFUNC, NOFUNC, NOFUNC },
+ { "std", NOFUNC, NOFUNC, NOFUNC },
{ GRP4 },
{ GRP5 },
};
@@ -480,160 +482,292 @@ struct dis386 dis386_twobyte[] = {
/* 00 */
{ GRP6 },
{ GRP7 },
- { "larS", Gv, Ew },
- { "lslS", Gv, Ew },
- { "(bad)" },
- { "(bad)" },
- { "clts" },
- { "(bad)" },
+ { "larS", Gv, Ew, NOFUNC },
+ { "lslS", Gv, Ew, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "clts", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
/* 08 */
- { "invd" }, { "wbinvd" }, { "(bad)" }, { "(bad)" },
- { "(bad)" }, { "(bad)" }, { "(bad)" }, { "(bad)" },
+ { "invd", NOFUNC, NOFUNC, NOFUNC },
+ { "wbinvd", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
/* 10 */
- { "(bad)" }, { "(bad)" }, { "(bad)" }, { "(bad)" },
- { "(bad)" }, { "(bad)" }, { "(bad)" }, { "(bad)" },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
/* 18 */
- { "(bad)" }, { "(bad)" }, { "(bad)" }, { "(bad)" },
- { "(bad)" }, { "(bad)" }, { "(bad)" }, { "(bad)" },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
/* 20 */
/* these are all backward in appendix A of the intel book */
- { "movl", Rd, Cd },
- { "movl", Rd, Dd },
- { "movl", Cd, Rd },
- { "movl", Dd, Rd },
- { "movl", Rd, Td },
- { "(bad)" },
- { "movl", Td, Rd },
- { "(bad)" },
+ { "movl", Rd, Cd, NOFUNC },
+ { "movl", Rd, Dd, NOFUNC },
+ { "movl", Cd, Rd, NOFUNC },
+ { "movl", Dd, Rd, NOFUNC },
+ { "movl", Rd, Td, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "movl", Td, Rd, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
/* 28 */
- { "(bad)" }, { "(bad)" }, { "(bad)" }, { "(bad)" },
- { "(bad)" }, { "(bad)" }, { "(bad)" }, { "(bad)" },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
/* 30 */
- { "(bad)" }, { "(bad)" }, { "(bad)" }, { "(bad)" },
- { "(bad)" }, { "(bad)" }, { "(bad)" }, { "(bad)" },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
/* 38 */
- { "(bad)" }, { "(bad)" }, { "(bad)" }, { "(bad)" },
- { "(bad)" }, { "(bad)" }, { "(bad)" }, { "(bad)" },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
/* 40 */
- { "(bad)" }, { "(bad)" }, { "(bad)" }, { "(bad)" },
- { "(bad)" }, { "(bad)" }, { "(bad)" }, { "(bad)" },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
/* 48 */
- { "(bad)" }, { "(bad)" }, { "(bad)" }, { "(bad)" },
- { "(bad)" }, { "(bad)" }, { "(bad)" }, { "(bad)" },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
/* 50 */
- { "(bad)" }, { "(bad)" }, { "(bad)" }, { "(bad)" },
- { "(bad)" }, { "(bad)" }, { "(bad)" }, { "(bad)" },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
/* 58 */
- { "(bad)" }, { "(bad)" }, { "(bad)" }, { "(bad)" },
- { "(bad)" }, { "(bad)" }, { "(bad)" }, { "(bad)" },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
/* 60 */
- { "(bad)" }, { "(bad)" }, { "(bad)" }, { "(bad)" },
- { "(bad)" }, { "(bad)" }, { "(bad)" }, { "(bad)" },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
/* 68 */
- { "(bad)" }, { "(bad)" }, { "(bad)" }, { "(bad)" },
- { "(bad)" }, { "(bad)" }, { "(bad)" }, { "(bad)" },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
/* 70 */
- { "(bad)" }, { "(bad)" }, { "(bad)" }, { "(bad)" },
- { "(bad)" }, { "(bad)" }, { "(bad)" }, { "(bad)" },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
/* 78 */
- { "(bad)" }, { "(bad)" }, { "(bad)" }, { "(bad)" },
- { "(bad)" }, { "(bad)" }, { "(bad)" }, { "(bad)" },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
/* 80 */
- { "jo", Jv },
- { "jno", Jv },
- { "jb", Jv },
- { "jae", Jv },
- { "je", Jv },
- { "jne", Jv },
- { "jbe", Jv },
- { "ja", Jv },
+ { "jo", Jv, NOFUNC, NOFUNC },
+ { "jno", Jv, NOFUNC, NOFUNC },
+ { "jb", Jv, NOFUNC, NOFUNC },
+ { "jae", Jv, NOFUNC, NOFUNC },
+ { "je", Jv, NOFUNC, NOFUNC },
+ { "jne", Jv, NOFUNC, NOFUNC },
+ { "jbe", Jv, NOFUNC, NOFUNC },
+ { "ja", Jv, NOFUNC, NOFUNC },
/* 88 */
- { "js", Jv },
- { "jns", Jv },
- { "jp", Jv },
- { "jnp", Jv },
- { "jl", Jv },
- { "jge", Jv },
- { "jle", Jv },
- { "jg", Jv },
+ { "js", Jv, NOFUNC, NOFUNC },
+ { "jns", Jv, NOFUNC, NOFUNC },
+ { "jp", Jv, NOFUNC, NOFUNC },
+ { "jnp", Jv, NOFUNC, NOFUNC },
+ { "jl", Jv, NOFUNC, NOFUNC },
+ { "jge", Jv, NOFUNC, NOFUNC },
+ { "jle", Jv, NOFUNC, NOFUNC },
+ { "jg", Jv, NOFUNC, NOFUNC },
/* 90 */
- { "seto", Eb },
- { "setno", Eb },
- { "setb", Eb },
- { "setae", Eb },
- { "sete", Eb },
- { "setne", Eb },
- { "setbe", Eb },
- { "seta", Eb },
+ { "seto", Eb, NOFUNC, NOFUNC },
+ { "setno", Eb, NOFUNC, NOFUNC },
+ { "setb", Eb, NOFUNC, NOFUNC },
+ { "setae", Eb, NOFUNC, NOFUNC },
+ { "sete", Eb, NOFUNC, NOFUNC },
+ { "setne", Eb, NOFUNC, NOFUNC },
+ { "setbe", Eb, NOFUNC, NOFUNC },
+ { "seta", Eb, NOFUNC, NOFUNC },
/* 98 */
- { "sets", Eb },
- { "setns", Eb },
- { "setp", Eb },
- { "setnp", Eb },
- { "setl", Eb },
- { "setge", Eb },
- { "setle", Eb },
- { "setg", Eb },
+ { "sets", Eb, NOFUNC, NOFUNC },
+ { "setns", Eb, NOFUNC, NOFUNC },
+ { "setp", Eb, NOFUNC, NOFUNC },
+ { "setnp", Eb, NOFUNC, NOFUNC },
+ { "setl", Eb, NOFUNC, NOFUNC },
+ { "setge", Eb, NOFUNC, NOFUNC },
+ { "setle", Eb, NOFUNC, NOFUNC },
+ { "setg", Eb, NOFUNC, NOFUNC },
/* a0 */
- { "pushl", fs },
- { "popl", fs },
- { "(bad)" },
- { "btS", Ev, Gv },
- { "shldS", Ev, Gv, Ib },
- { "shldS", Ev, Gv, CL },
- { "(bad)" },
- { "(bad)" },
+ { "pushl", fs, NOFUNC, NOFUNC },
+ { "popl", fs, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "btS", Ev, Gv, NOFUNC },
+ { "shldS", Ev, Gv, Ib },
+ { "shldS", Ev, Gv, CL },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
/* a8 */
- { "pushl", gs },
- { "popl", gs },
- { "(bad)" },
- { "btsS", Ev, Gv },
- { "shrdS", Ev, Gv, Ib },
- { "shrdS", Ev, Gv, CL },
- { "(bad)" },
- { "imulS", Gv, Ev },
+ { "pushl", gs, NOFUNC, NOFUNC },
+ { "popl", gs, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "btsS", Ev, Gv, NOFUNC },
+ { "shrdS", Ev, Gv, Ib },
+ { "shrdS", Ev, Gv, CL },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "imulS", Gv, Ev, NOFUNC },
/* b0 */
- { "(bad)" },
- { "(bad)" },
- { "lssS", Gv, Mp }, /* 386 lists only Mp */
- { "btrS", Ev, Gv },
- { "lfsS", Gv, Mp }, /* 386 lists only Mp */
- { "lgsS", Gv, Mp }, /* 386 lists only Mp */
- { "movzbS", Gv, Eb },
- { "movzwS", Gv, Ew },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "lssS", Gv, Mp, NOFUNC }, /* 386 lists only Mp */
+ { "btrS", Ev, Gv, NOFUNC },
+ { "lfsS", Gv, Mp, NOFUNC }, /* 386 lists only Mp */
+ { "lgsS", Gv, Mp, NOFUNC }, /* 386 lists only Mp */
+ { "movzbS", Gv, Eb, NOFUNC },
+ { "movzwS", Gv, Ew, NOFUNC },
/* b8 */
- { "(bad)" },
- { "(bad)" },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
{ GRP8 },
- { "btcS", Ev, Gv },
- { "bsfS", Gv, Ev },
- { "bsrS", Gv, Ev },
- { "movsbS", Gv, Eb },
- { "movswS", Gv, Ew },
+ { "btcS", Ev, Gv, NOFUNC },
+ { "bsfS", Gv, Ev, NOFUNC },
+ { "bsrS", Gv, Ev, NOFUNC },
+ { "movsbS", Gv, Eb, NOFUNC },
+ { "movswS", Gv, Ew, NOFUNC },
/* c0 */
- { "(bad)" }, { "(bad)" }, { "(bad)" }, { "(bad)" },
- { "(bad)" }, { "(bad)" }, { "(bad)" }, { "(bad)" },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
/* c8 */
- { "(bad)" }, { "(bad)" }, { "(bad)" }, { "(bad)" },
- { "(bad)" }, { "(bad)" }, { "(bad)" }, { "(bad)" },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
/* d0 */
- { "(bad)" }, { "(bad)" }, { "(bad)" }, { "(bad)" },
- { "(bad)" }, { "(bad)" }, { "(bad)" }, { "(bad)" },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
/* d8 */
- { "(bad)" }, { "(bad)" }, { "(bad)" }, { "(bad)" },
- { "(bad)" }, { "(bad)" }, { "(bad)" }, { "(bad)" },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
/* e0 */
- { "(bad)" }, { "(bad)" }, { "(bad)" }, { "(bad)" },
- { "(bad)" }, { "(bad)" }, { "(bad)" }, { "(bad)" },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
/* e8 */
- { "(bad)" }, { "(bad)" }, { "(bad)" }, { "(bad)" },
- { "(bad)" }, { "(bad)" }, { "(bad)" }, { "(bad)" },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
/* f0 */
- { "(bad)" }, { "(bad)" }, { "(bad)" }, { "(bad)" },
- { "(bad)" }, { "(bad)" }, { "(bad)" }, { "(bad)" },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
/* f8 */
- { "(bad)" }, { "(bad)" }, { "(bad)" }, { "(bad)" },
- { "(bad)" }, { "(bad)" }, { "(bad)" }, { "(bad)" },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
};
static char obuf[100];
@@ -645,198 +779,198 @@ static int mod;
static int rm;
static int reg;
-static char *names32[]={
+static const char *names32[]={
"%eax","%ecx","%edx","%ebx", "%esp","%ebp","%esi","%edi",
};
-static char *names16[] = {
+static const char *names16[] = {
"%ax","%cx","%dx","%bx","%sp","%bp","%si","%di",
};
-static char *names8[] = {
+static const char *names8[] = {
"%al","%cl","%dl","%bl","%ah","%ch","%dh","%bh",
};
-static char *names_seg[] = {
+static const char *names_seg[] = {
"%es","%cs","%ss","%ds","%fs","%gs","%?","%?",
};
-static char *names16_pairs[] = {
+static const char *names16_pairs[] = {
"%bx+%si","%bx+%di","%bp+%si","%bp+%di","%si","%di","%bp","%bx",
};
struct dis386 grps[][8] = {
/* GRP1b */
{
- { "addb", Eb, Ib },
- { "orb", Eb, Ib },
- { "adcb", Eb, Ib },
- { "sbbb", Eb, Ib },
- { "andb", Eb, Ib },
- { "subb", Eb, Ib },
- { "xorb", Eb, Ib },
- { "cmpb", Eb, Ib }
+ { "addb", Eb, Ib, NOFUNC },
+ { "orb", Eb, Ib, NOFUNC },
+ { "adcb", Eb, Ib, NOFUNC },
+ { "sbbb", Eb, Ib, NOFUNC },
+ { "andb", Eb, Ib, NOFUNC },
+ { "subb", Eb, Ib, NOFUNC },
+ { "xorb", Eb, Ib, NOFUNC },
+ { "cmpb", Eb, Ib, NOFUNC }
},
/* GRP1S */
{
- { "addS", Ev, Iv },
- { "orS", Ev, Iv },
- { "adcS", Ev, Iv },
- { "sbbS", Ev, Iv },
- { "andS", Ev, Iv },
- { "subS", Ev, Iv },
- { "xorS", Ev, Iv },
- { "cmpS", Ev, Iv }
+ { "addS", Ev, Iv, NOFUNC },
+ { "orS", Ev, Iv, NOFUNC },
+ { "adcS", Ev, Iv, NOFUNC },
+ { "sbbS", Ev, Iv, NOFUNC },
+ { "andS", Ev, Iv, NOFUNC },
+ { "subS", Ev, Iv, NOFUNC },
+ { "xorS", Ev, Iv, NOFUNC },
+ { "cmpS", Ev, Iv, NOFUNC }
},
/* GRP1Ss */
{
- { "addS", Ev, sIb },
- { "orS", Ev, sIb },
- { "adcS", Ev, sIb },
- { "sbbS", Ev, sIb },
- { "andS", Ev, sIb },
- { "subS", Ev, sIb },
- { "xorS", Ev, sIb },
- { "cmpS", Ev, sIb }
+ { "addS", Ev, sIb, NOFUNC },
+ { "orS", Ev, sIb, NOFUNC },
+ { "adcS", Ev, sIb, NOFUNC },
+ { "sbbS", Ev, sIb, NOFUNC },
+ { "andS", Ev, sIb, NOFUNC },
+ { "subS", Ev, sIb, NOFUNC },
+ { "xorS", Ev, sIb, NOFUNC },
+ { "cmpS", Ev, sIb, NOFUNC }
},
/* GRP2b */
{
- { "rolb", Eb, Ib },
- { "rorb", Eb, Ib },
- { "rclb", Eb, Ib },
- { "rcrb", Eb, Ib },
- { "shlb", Eb, Ib },
- { "shrb", Eb, Ib },
- { "(bad)" },
- { "sarb", Eb, Ib },
+ { "rolb", Eb, Ib, NOFUNC },
+ { "rorb", Eb, Ib, NOFUNC },
+ { "rclb", Eb, Ib, NOFUNC },
+ { "rcrb", Eb, Ib, NOFUNC },
+ { "shlb", Eb, Ib, NOFUNC },
+ { "shrb", Eb, Ib, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "sarb", Eb, Ib, NOFUNC },
},
/* GRP2S */
{
- { "rolS", Ev, Ib },
- { "rorS", Ev, Ib },
- { "rclS", Ev, Ib },
- { "rcrS", Ev, Ib },
- { "shlS", Ev, Ib },
- { "shrS", Ev, Ib },
- { "(bad)" },
- { "sarS", Ev, Ib },
+ { "rolS", Ev, Ib, NOFUNC },
+ { "rorS", Ev, Ib, NOFUNC },
+ { "rclS", Ev, Ib, NOFUNC },
+ { "rcrS", Ev, Ib, NOFUNC },
+ { "shlS", Ev, Ib, NOFUNC },
+ { "shrS", Ev, Ib, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "sarS", Ev, Ib, NOFUNC },
},
/* GRP2b_one */
{
- { "rolb", Eb },
- { "rorb", Eb },
- { "rclb", Eb },
- { "rcrb", Eb },
- { "shlb", Eb },
- { "shrb", Eb },
- { "(bad)" },
- { "sarb", Eb },
+ { "rolb", Eb, NOFUNC, NOFUNC },
+ { "rorb", Eb, NOFUNC, NOFUNC },
+ { "rclb", Eb, NOFUNC, NOFUNC },
+ { "rcrb", Eb, NOFUNC, NOFUNC },
+ { "shlb", Eb, NOFUNC, NOFUNC },
+ { "shrb", Eb, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "sarb", Eb, NOFUNC, NOFUNC },
},
/* GRP2S_one */
{
- { "rolS", Ev },
- { "rorS", Ev },
- { "rclS", Ev },
- { "rcrS", Ev },
- { "shlS", Ev },
- { "shrS", Ev },
- { "(bad)" },
- { "sarS", Ev },
+ { "rolS", Ev, NOFUNC, NOFUNC },
+ { "rorS", Ev, NOFUNC, NOFUNC },
+ { "rclS", Ev, NOFUNC, NOFUNC },
+ { "rcrS", Ev, NOFUNC, NOFUNC },
+ { "shlS", Ev, NOFUNC, NOFUNC },
+ { "shrS", Ev, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "sarS", Ev, NOFUNC, NOFUNC },
},
/* GRP2b_cl */
{
- { "rolb", Eb, CL },
- { "rorb", Eb, CL },
- { "rclb", Eb, CL },
- { "rcrb", Eb, CL },
- { "shlb", Eb, CL },
- { "shrb", Eb, CL },
- { "(bad)" },
- { "sarb", Eb, CL },
+ { "rolb", Eb, CL, NOFUNC },
+ { "rorb", Eb, CL, NOFUNC },
+ { "rclb", Eb, CL, NOFUNC },
+ { "rcrb", Eb, CL, NOFUNC },
+ { "shlb", Eb, CL, NOFUNC },
+ { "shrb", Eb, CL, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "sarb", Eb, CL, NOFUNC },
},
/* GRP2S_cl */
{
- { "rolS", Ev, CL },
- { "rorS", Ev, CL },
- { "rclS", Ev, CL },
- { "rcrS", Ev, CL },
- { "shlS", Ev, CL },
- { "shrS", Ev, CL },
- { "(bad)" },
- { "sarS", Ev, CL }
+ { "rolS", Ev, CL, NOFUNC },
+ { "rorS", Ev, CL, NOFUNC },
+ { "rclS", Ev, CL, NOFUNC },
+ { "rcrS", Ev, CL, NOFUNC },
+ { "shlS", Ev, CL, NOFUNC },
+ { "shrS", Ev, CL, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "sarS", Ev, CL, NOFUNC }
},
/* GRP3b */
{
- { "testb", Eb, Ib },
- { "(bad)", Eb },
- { "notb", Eb },
- { "negb", Eb },
- { "mulb", AL, Eb },
- { "imulb", AL, Eb },
- { "divb", AL, Eb },
- { "idivb", AL, Eb }
+ { "testb", Eb, Ib, NOFUNC },
+ { "(bad)", Eb, NOFUNC, NOFUNC },
+ { "notb", Eb, NOFUNC, NOFUNC },
+ { "negb", Eb, NOFUNC, NOFUNC },
+ { "mulb", AL, Eb, NOFUNC },
+ { "imulb", AL, Eb, NOFUNC },
+ { "divb", AL, Eb, NOFUNC },
+ { "idivb", AL, Eb, NOFUNC }
},
/* GRP3S */
{
- { "testS", Ev, Iv },
- { "(bad)" },
- { "notS", Ev },
- { "negS", Ev },
- { "mulS", eAX, Ev },
- { "imulS", eAX, Ev },
- { "divS", eAX, Ev },
- { "idivS", eAX, Ev },
+ { "testS", Ev, Iv, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "notS", Ev, NOFUNC, NOFUNC },
+ { "negS", Ev, NOFUNC, NOFUNC },
+ { "mulS", eAX, Ev, NOFUNC },
+ { "imulS", eAX, Ev, NOFUNC },
+ { "divS", eAX, Ev, NOFUNC },
+ { "idivS", eAX, Ev, NOFUNC },
},
/* GRP4 */
{
- { "incb", Eb },
- { "decb", Eb },
- { "(bad)" },
- { "(bad)" },
- { "(bad)" },
- { "(bad)" },
- { "(bad)" },
- { "(bad)" },
+ { "incb", Eb, NOFUNC, NOFUNC },
+ { "decb", Eb, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
},
/* GRP5 */
{
- { "incS", Ev },
- { "decS", Ev },
- { "call", indirEv },
- { "lcall", indirEv },
- { "jmp", indirEv },
- { "ljmp", indirEv },
- { "pushS", Ev },
- { "(bad)" },
+ { "incS", Ev, NOFUNC, NOFUNC },
+ { "decS", Ev, NOFUNC, NOFUNC },
+ { "call", indirEv, NOFUNC, NOFUNC },
+ { "lcall", indirEv, NOFUNC, NOFUNC },
+ { "jmp", indirEv, NOFUNC, NOFUNC },
+ { "ljmp", indirEv, NOFUNC, NOFUNC },
+ { "pushS", Ev, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
},
/* GRP6 */
{
- { "sldt", Ew },
- { "str", Ew },
- { "lldt", Ew },
- { "ltr", Ew },
- { "verr", Ew },
- { "verw", Ew },
- { "(bad)" },
- { "(bad)" }
+ { "sldt", Ew, NOFUNC, NOFUNC },
+ { "str", Ew, NOFUNC, NOFUNC },
+ { "lldt", Ew, NOFUNC, NOFUNC },
+ { "ltr", Ew, NOFUNC, NOFUNC },
+ { "verr", Ew, NOFUNC, NOFUNC },
+ { "verw", Ew, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC }
},
/* GRP7 */
{
- { "sgdt", Ew },
- { "sidt", Ew },
- { "lgdt", Ew },
- { "lidt", Ew },
- { "smsw", Ew },
- { "(bad)" },
- { "lmsw", Ew },
- { "(bad)" },
+ { "sgdt", Ew, NOFUNC, NOFUNC },
+ { "sidt", Ew, NOFUNC, NOFUNC },
+ { "lgdt", Ew, NOFUNC, NOFUNC },
+ { "lidt", Ew, NOFUNC, NOFUNC },
+ { "smsw", Ew, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "lmsw", Ew, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
},
/* GRP8 */
{
- { "(bad)" },
- { "(bad)" },
- { "(bad)" },
- { "(bad)" },
- { "btS", Ev, Ib },
- { "btsS", Ev, Ib },
- { "btrS", Ev, Ib },
- { "btcS", Ev, Ib },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "btS", Ev, Ib, NOFUNC },
+ { "btsS", Ev, Ib, NOFUNC },
+ { "btrS", Ev, Ib, NOFUNC },
+ { "btcS", Ev, Ib, NOFUNC },
}
};
@@ -926,11 +1060,8 @@ static unsigned long start_pc;
* The function returns the length of this instruction in bytes.
*/
int
-i386dis (ucs, uip, inbuf, outbuf, mode)
- unsigned short ucs;
- unsigned short uip;
- unsigned char *inbuf;
- char *outbuf;
+i386dis (unsigned short ucs, unsigned short uip, unsigned char *inbuf,
+ char *outbuf, int mode)
{
struct dis386 *dp;
int i;
@@ -973,7 +1104,6 @@ i386dis (ucs, uip, inbuf, outbuf, mode)
}
/* these would be initialized to 0 if disassembling for 8086 or 286 */
- /* these would be initialized to 0 if disassembling for 8086 or 286 */
if (mode) {
dflag = 1;
aflag = 1;
@@ -1068,7 +1198,7 @@ i386dis (ucs, uip, inbuf, outbuf, mode)
return (codep - inbuf);
}
-char *float_mem[] = {
+const char *float_mem[] = {
/* d8 */
"fadds",
"fmuls",
@@ -1146,34 +1276,34 @@ char *float_mem[] = {
#define ST OP_ST, 0
#define STi OP_STi, 0
-#define FGRPd9_2 NULL, NULL, 0
-#define FGRPd9_4 NULL, NULL, 1
-#define FGRPd9_5 NULL, NULL, 2
-#define FGRPd9_6 NULL, NULL, 3
-#define FGRPd9_7 NULL, NULL, 4
-#define FGRPda_5 NULL, NULL, 5
-#define FGRPdb_4 NULL, NULL, 6
-#define FGRPde_3 NULL, NULL, 7
-#define FGRPdf_4 NULL, NULL, 8
+#define FGRPd9_2 NULL, NULL, 0, NOFUNC, NOFUNC
+#define FGRPd9_4 NULL, NULL, 1, NOFUNC, NOFUNC
+#define FGRPd9_5 NULL, NULL, 2, NOFUNC, NOFUNC
+#define FGRPd9_6 NULL, NULL, 3, NOFUNC, NOFUNC
+#define FGRPd9_7 NULL, NULL, 4, NOFUNC, NOFUNC
+#define FGRPda_5 NULL, NULL, 5, NOFUNC, NOFUNC
+#define FGRPdb_4 NULL, NULL, 6, NOFUNC, NOFUNC
+#define FGRPde_3 NULL, NULL, 7, NOFUNC, NOFUNC
+#define FGRPdf_4 NULL, NULL, 8, NOFUNC, NOFUNC
struct dis386 float_reg[][8] = {
/* d8 */
{
- { "fadd", ST, STi },
- { "fmul", ST, STi },
- { "fcom", STi },
- { "fcomp", STi },
- { "fsub", ST, STi },
- { "fsubr", ST, STi },
- { "fdiv", ST, STi },
- { "fdivr", ST, STi },
+ { "fadd", ST, STi, NOFUNC },
+ { "fmul", ST, STi, NOFUNC },
+ { "fcom", STi, NOFUNC, NOFUNC },
+ { "fcomp", STi, NOFUNC, NOFUNC },
+ { "fsub", ST, STi, NOFUNC },
+ { "fsubr", ST, STi, NOFUNC },
+ { "fdiv", ST, STi, NOFUNC },
+ { "fdivr", ST, STi, NOFUNC },
},
/* d9 */
{
- { "fld", STi },
- { "fxch", STi },
+ { "fld", STi, NOFUNC, NOFUNC },
+ { "fxch", STi, NOFUNC, NOFUNC },
{ FGRPd9_2 },
- { "(bad)" },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
{ FGRPd9_4 },
{ FGRPd9_5 },
{ FGRPd9_6 },
@@ -1181,74 +1311,74 @@ struct dis386 float_reg[][8] = {
},
/* da */
{
- { "(bad)" },
- { "(bad)" },
- { "(bad)" },
- { "(bad)" },
- { "(bad)" },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
{ FGRPda_5 },
- { "(bad)" },
- { "(bad)" },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
},
/* db */
{
- { "(bad)" },
- { "(bad)" },
- { "(bad)" },
- { "(bad)" },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
{ FGRPdb_4 },
- { "(bad)" },
- { "(bad)" },
- { "(bad)" },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
},
/* dc */
{
- { "fadd", STi, ST },
- { "fmul", STi, ST },
- { "(bad)" },
- { "(bad)" },
- { "fsub", STi, ST },
- { "fsubr", STi, ST },
- { "fdiv", STi, ST },
- { "fdivr", STi, ST },
+ { "fadd", STi, ST, NOFUNC },
+ { "fmul", STi, ST, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "fsub", STi, ST, NOFUNC },
+ { "fsubr", STi, ST, NOFUNC },
+ { "fdiv", STi, ST, NOFUNC },
+ { "fdivr", STi, ST, NOFUNC },
},
/* dd */
{
- { "ffree", STi },
- { "(bad)" },
- { "fst", STi },
- { "fstp", STi },
- { "fucom", STi },
- { "fucomp", STi },
- { "(bad)" },
- { "(bad)" },
+ { "ffree", STi, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "fst", STi, NOFUNC, NOFUNC },
+ { "fstp", STi, NOFUNC, NOFUNC },
+ { "fucom", STi, NOFUNC, NOFUNC },
+ { "fucomp", STi, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
},
/* de */
{
- { "faddp", STi, ST },
- { "fmulp", STi, ST },
- { "(bad)" },
+ { "faddp", STi, ST, NOFUNC },
+ { "fmulp", STi, ST, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
{ FGRPde_3 },
- { "fsubp", STi, ST },
- { "fsubrp", STi, ST },
- { "fdivp", STi, ST },
- { "fdivrp", STi, ST },
+ { "fsubp", STi, ST, NOFUNC },
+ { "fsubrp", STi, ST, NOFUNC },
+ { "fdivp", STi, ST, NOFUNC },
+ { "fdivrp", STi, ST, NOFUNC },
},
/* df */
{
- { "(bad)" },
- { "(bad)" },
- { "(bad)" },
- { "(bad)" },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
{ FGRPdf_4 },
- { "(bad)" },
- { "(bad)" },
- { "(bad)" },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
+ { "(bad)", NOFUNC, NOFUNC, NOFUNC },
},
};
-char *fgrps[][8] = {
+const char *fgrps[][8] = {
/* d9_2 0 */
{
"fnop","(bad)","(bad)","(bad)","(bad)","(bad)","(bad)","(bad)",
@@ -1335,13 +1465,13 @@ dofloat ()
}
static void
-OP_ST(int arg)
+OP_ST(int dummy)
{
oappend ("%st");
}
static void
-OP_STi(int arg)
+OP_STi(int dummy)
{
sprintf (scratchbuf, "%%st(%d)", rm);
oappend (scratchbuf);
@@ -1350,10 +1480,9 @@ OP_STi(int arg)
/* capital letters in template are macros */
static void
-putop (template)
- char *template;
+putop(const char *template)
{
- char *p;
+ const char *p;
for (p = template; *p; p++)
{
@@ -1383,7 +1512,7 @@ putop (template)
}
static void
-oappend(char *s)
+oappend(const char *s)
{
strcpy (obufp, s);
obufp += strlen (s);
@@ -1511,7 +1640,7 @@ OP_E(int bytemode)
break;
}
- if (mod != 0 || (aflag && rm == 5 || (havesib && base == 5))
+ if (mod != 0 || ((aflag && rm == 5) || (havesib && base == 5))
|| (!aflag && rm == 6)) {
sprintf (scratchbuf, "0x%x", disp);
oappend (scratchbuf);
@@ -1584,7 +1713,7 @@ get16()
static void
OP_REG(int code)
{
- char *s;
+ const char *s;
switch (code)
{
@@ -1707,7 +1836,7 @@ append_pc(unsigned long pc)
static void
OP_SEG(int dummy)
{
- static char *sreg[] = {
+ static const char *sreg[] = {
"%es","%cs","%ss","%ds","%fs","%gs","%?","%?",
};
@@ -1751,7 +1880,7 @@ OP_DIR(int size)
}
static void
-OP_OFF(int bytemode)
+OP_OFF(int dummy)
{
int off;
OpenPOWER on IntegriCloud