diff options
author | tg <tg@FreeBSD.org> | 2001-08-08 10:58:50 +0000 |
---|---|---|
committer | tg <tg@FreeBSD.org> | 2001-08-08 10:58:50 +0000 |
commit | 6348c039baa1f511ba2ac6fdaa35a20dc70660a0 (patch) | |
tree | 4d66598b3d4764d3b099fb706b641b607fb600c2 /usr.bin | |
parent | 2143008ac012ce21897ff583fc00d6fd7691f90d (diff) | |
download | FreeBSD-src-6348c039baa1f511ba2ac6fdaa35a20dc70660a0.zip FreeBSD-src-6348c039baa1f511ba2ac6fdaa35a20dc70660a0.tar.gz |
Silence some more warnings, mostly from `-W -Wwrite-strings'.
Diffstat (limited to 'usr.bin')
-rw-r--r-- | usr.bin/doscmd/callback.c | 4 | ||||
-rw-r--r-- | usr.bin/doscmd/callback.h | 14 | ||||
-rw-r--r-- | usr.bin/doscmd/cwd.c | 2 | ||||
-rw-r--r-- | usr.bin/doscmd/debug.c | 8 | ||||
-rw-r--r-- | usr.bin/doscmd/dos.c | 8 | ||||
-rw-r--r-- | usr.bin/doscmd/dos.h | 2 | ||||
-rw-r--r-- | usr.bin/doscmd/doscmd.1 | 2 | ||||
-rw-r--r-- | usr.bin/doscmd/doscmd.c | 12 | ||||
-rw-r--r-- | usr.bin/doscmd/doscmd.h | 7 | ||||
-rw-r--r-- | usr.bin/doscmd/ems.c | 21 | ||||
-rw-r--r-- | usr.bin/doscmd/i386-pinsn.c | 1309 | ||||
-rw-r--r-- | usr.bin/doscmd/int14.c | 4 | ||||
-rw-r--r-- | usr.bin/doscmd/intff.c | 5 | ||||
-rw-r--r-- | usr.bin/doscmd/trace.c | 13 | ||||
-rw-r--r-- | usr.bin/doscmd/tty.c | 2 | ||||
-rw-r--r-- | usr.bin/doscmd/tty.h | 2 | ||||
-rw-r--r-- | usr.bin/doscmd/video.h | 2 | ||||
-rw-r--r-- | usr.bin/doscmd/xms.c | 10 |
18 files changed, 778 insertions, 649 deletions
diff --git a/usr.bin/doscmd/callback.c b/usr.bin/doscmd/callback.c index b495788..0e36d08 100644 --- a/usr.bin/doscmd/callback.c +++ b/usr.bin/doscmd/callback.c @@ -16,7 +16,7 @@ struct callback { LIST_ENTRY(callback) chain; u_long vec; callback_t func; - char *name; + const char *name; }; LIST_HEAD(cbhead , callback) cbhead[127]; @@ -27,7 +27,7 @@ LIST_HEAD(cbhead , callback) cbhead[127]; ** Register (func) as a handler for (vec) */ void -register_callback(u_long vec, callback_t func, char *name) +register_callback(u_long vec, callback_t func, const char *name) { struct cbhead *head; struct callback *elm; diff --git a/usr.bin/doscmd/callback.h b/usr.bin/doscmd/callback.h index d3c656f..b1ab3d7 100644 --- a/usr.bin/doscmd/callback.h +++ b/usr.bin/doscmd/callback.h @@ -3,11 +3,11 @@ ** ** $FreeBSD$ */ -typedef void (*callback_t)(regcontext_t *REGS); +typedef void (*callback_t)(regcontext_t *); -extern void register_callback(u_long vec, callback_t func, char *name); -extern callback_t find_callback(u_long vec); -extern u_long insert_generic_trampoline(size_t len, u_char *p); -extern u_long insert_softint_trampoline(void); -extern u_long insert_hardint_trampoline(void); -extern u_long insert_null_trampoline(void); +void register_callback(u_long, callback_t, const char *); +callback_t find_callback(u_long); +u_long insert_generic_trampoline(size_t, u_char *); +u_long insert_softint_trampoline(void); +u_long insert_hardint_trampoline(void); +u_long insert_null_trampoline(void); diff --git a/usr.bin/doscmd/cwd.c b/usr.bin/doscmd/cwd.c index 1a1f7a2..85269b9 100644 --- a/usr.bin/doscmd/cwd.c +++ b/usr.bin/doscmd/cwd.c @@ -835,7 +835,7 @@ to_dos_fcb(u_char *p, u_char *expr) ** We allocate a single search structure, and recycle it if find_first() ** is called before a search ends. */ -static search_t dir_search = {dp : NULL}; +static search_t dir_search; /* * Find the first file on drive which matches the path with the given diff --git a/usr.bin/doscmd/debug.c b/usr.bin/doscmd/debug.c index 16c5419..b68f690 100644 --- a/usr.bin/doscmd/debug.c +++ b/usr.bin/doscmd/debug.c @@ -81,13 +81,13 @@ debug_isset(int x) ** debugging mode. */ void -debug (int flags, char *fmt, ...) +debug(int flags, const char *fmt, ...) { va_list args; if (flags & (debug_flags & ~0xff)) { if ((debug_flags & 0xff) == 0 - && (flags & (D_ITRAPS|D_TRAPS)) + && (flags & (D_ITRAPS | D_TRAPS)) && !debug_isset(flags & 0xff)) return; va_start (args, fmt); @@ -100,7 +100,7 @@ debug (int flags, char *fmt, ...) ** Emit a terminal error message and exit */ void -fatal (char *fmt, ...) +fatal(const char *fmt, ...) { va_list args; @@ -108,7 +108,7 @@ fatal (char *fmt, ...) if (xmode) { char buf[1024]; - char *m; + const char *m; va_start (args, fmt); vfprintf (debugf, fmt, args); diff --git a/usr.bin/doscmd/dos.c b/usr.bin/doscmd/dos.c index 5c6904b..975c3b8 100644 --- a/usr.bin/doscmd/dos.c +++ b/usr.bin/doscmd/dos.c @@ -309,9 +309,9 @@ static u_char magic[0x7e] = { 0x0f, 0x0f, 0x0f, 0x0f, 0x04, 0x0f, }; -#define isvalid(x) ((magic[x] & 0x01) != 0) -#define issep(x) ((magic[x] & 0x02) == 0) -#define iswhite(x) ((magic[x] & 0x04) == 0) +#define isvalid(x) ((magic[(int)(x)] & 0x01) != 0) +#define issep(x) ((magic[(int)(x)] & 0x02) == 0) +#define iswhite(x) ((magic[(int)(x)] & 0x04) == 0) static char * skipwhite(char *p) @@ -2429,7 +2429,7 @@ static struct intfunc_table int21_table [] = { static int int21_fastlookup[256]; -char *dos_return[] = { +const char *dos_return[] = { "OK", "FUNC_NUM_IVALID", "FILE_NOT_FOUND", diff --git a/usr.bin/doscmd/dos.h b/usr.bin/doscmd/dos.h index 561457c..cc770f7 100644 --- a/usr.bin/doscmd/dos.h +++ b/usr.bin/doscmd/dos.h @@ -374,7 +374,7 @@ to_dos_attr(int mode) /* prototypes */ -extern char *dos_return[]; /* names of DOS return codes */ +extern const char *dos_return[]; /* names of DOS return codes */ extern const int dos_ret_size; /* length of above */ extern char *InDOS; extern int diskdrive; /* current drive */ diff --git a/usr.bin/doscmd/doscmd.1 b/usr.bin/doscmd/doscmd.1 index 34f0215..5ec1a01 100644 --- a/usr.bin/doscmd/doscmd.1 +++ b/usr.bin/doscmd/doscmd.1 @@ -443,7 +443,7 @@ only refers to part of a disk. Assign the tty or pty specified by .Ar path to be used as the specified com port. -It's base address will be emulated at +Its base address will be emulated at .Ar port at interrupt specified by .Ar irq . diff --git a/usr.bin/doscmd/doscmd.c b/usr.bin/doscmd/doscmd.c index 43a71b8..3bc58f6 100644 --- a/usr.bin/doscmd/doscmd.c +++ b/usr.bin/doscmd/doscmd.c @@ -96,7 +96,7 @@ static int open_name(char *name, char *ext); static int zflag = 0; /* DOS environment emulation */ -static int ecnt = 0; +static unsigned ecnt = 0; static char *envs[256]; /* Search path and command name */ @@ -377,10 +377,10 @@ setup_command(int argc, char *argv[], regcontext_t *REGS) { FILE *fp; u_short param[7] = {0, 0, 0, 0, 0, 0, 0}; - char *p; + const char *p; char prog[1024]; char buffer[PATH_MAX]; - int i; + unsigned i; int fd; fp = find_doscmdrc(); /* dig up a doscmdrc */ @@ -776,7 +776,7 @@ open_prog(char *name) ** append a value to the DOS environment */ void -put_dosenv(char *value) +put_dosenv(const char *value) { if (ecnt < sizeof(envs)/sizeof(envs[0])) { if ((envs[ecnt++] = strdup(value)) == NULL) { @@ -819,11 +819,11 @@ squirrel_fd(int fd) ** XXX belongs somewhere else perhaps */ void -done (regcontext_t *REGS, int val) +done(regcontext_t *REGS, int val) { if (curpsp < 2) { if (xmode) { - char *m; + const char *m; tty_move(24, 0); for (m = "END OF PROGRAM"; *m; ++m) diff --git a/usr.bin/doscmd/doscmd.h b/usr.bin/doscmd/doscmd.h index 46dafa7..2269708 100644 --- a/usr.bin/doscmd/doscmd.h +++ b/usr.bin/doscmd/doscmd.h @@ -160,8 +160,8 @@ extern int debug_flags; void unknown_int2(int, int, regcontext_t *); void unknown_int3(int, int, int, regcontext_t *); void unknown_int4(int, int, int, int, regcontext_t *); -void fatal(char *, ...) __printflike(1, 2); -void debug(int, char *, ...) __printflike(2, 3); +void fatal(const char *, ...) __printflike(1, 2); +void debug(int, const char *, ...) __printflike(2, 3); void dump_regs(regcontext_t *); void debug_set(int); void debug_unset(int); @@ -186,6 +186,7 @@ void call_on_quit(void (*)(void *), void *); void done(regcontext_t *, int); void iomap_port(int, int); int open_prog(char *); +void put_dosenv(const char *); void quit(int); int squirrel_fd(int); @@ -305,5 +306,3 @@ extern u_long pending[]; /* pending interrupts */ extern int n_pending; extern int nmice; - -void put_dosenv(char *value); diff --git a/usr.bin/doscmd/ems.c b/usr.bin/doscmd/ems.c index db16bc6..a27f23a 100644 --- a/usr.bin/doscmd/ems.c +++ b/usr.bin/doscmd/ems.c @@ -141,7 +141,7 @@ static u_long move_ems_to_ems(u_short, u_short, u_short, u_short, int ems_init() { - int i; + unsigned i; if (ems_max_size == 0) return 0; @@ -400,7 +400,7 @@ ems_entry(regcontext_t *REGS) case GET_PAGES_FOR_ALL: { EMShandlepage *ehp; - int safecount; + unsigned safecount; int i; debug(D_EMS, "EMS: Get pages for all\n"); @@ -417,7 +417,8 @@ ems_entry(regcontext_t *REGS) for (i = 0; i < 255; i++) { if (ems_handle[i] != NULL) { if (safecount > (ems_alloc_handles+1)) - fatal("EMS: ems_alloc_handles is wrong, cannot continue\n"); + fatal("EMS: ems_alloc_handles is wrong, " + "cannot continue\n"); ehp->handle = i; ehp->npages = ems_handle[i]->npages; ehp++; @@ -1121,7 +1122,7 @@ init_mapfile() if (mmap((caddr_t)ems_frame_addr, 64 * 1024, PROT_EXEC | PROT_READ | PROT_WRITE, MAP_ANON | MAP_FIXED | MAP_INHERIT | MAP_SHARED, - -1, 0) < 0) { + -1, 0) == MAP_FAILED) { debug(D_ALWAYS, "Could not map EMS page frame, "); goto fail; } @@ -1169,14 +1170,14 @@ map_page(u_long pagenum, u_char position, short handle, int unmaponly) if (mmap((caddr_t)ems_frame_addr, 64 * 1024, PROT_EXEC | PROT_READ | PROT_WRITE, MAP_ANON | MAP_FIXED | MAP_INHERIT | MAP_SHARED, - -1, 0) < 0) + -1, 0) == MAP_FAILED) fatal("Could not map EMS page frame during unmap only\n"); return; } if (mmap(map_addr, len, PROT_EXEC | PROT_READ | PROT_WRITE, MAP_FILE | MAP_FIXED | MAP_INHERIT | MAP_SHARED, - mapfile_fd, file_offs) < 0) { + mapfile_fd, file_offs) == MAP_FAILED) { fatal("EMS mapping error: %s\nCannot recover\n", strerror(errno)); } ems_mapping_context.pos_mapped[position] = 1; @@ -1297,7 +1298,7 @@ free_handle(short handle) static void allocate_pages_to_handle(u_short handle, long npages) { - int syspagenum; + unsigned syspagenum; int pages_to_alloc = npages; int allocpagenum = 0; @@ -1330,9 +1331,9 @@ allocate_pages_to_handle(u_short handle, long npages) static void reallocate_pages_to_handle(u_short handle, long npages) { - int syspagenum; + unsigned allocpagenum; + unsigned syspagenum; int pages_to_alloc; - int allocpagenum; long delta; size_t dynsize; EMS_handle *emp; @@ -1406,7 +1407,7 @@ static void free_pages_of_handle(short handle) { int allocpagenum; - int syspagenum; + unsigned syspagenum; int npages; /* sanity */ 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; diff --git a/usr.bin/doscmd/int14.c b/usr.bin/doscmd/int14.c index 409c88f..56c9576 100644 --- a/usr.bin/doscmd/int14.c +++ b/usr.bin/doscmd/int14.c @@ -373,8 +373,8 @@ com_port_in(int port) rs = LS_X_SHFT_E | LS_X_HOLD_E; /* if (queue_not_empty(cdsp->com_queue)) */ ioctl(cdsp->fd, FIONREAD, &nbytes); - if (nbytes > 0); - rs |= LS_RCV_DATA_RD; + if (nbytes > 0) + rs |= LS_RCV_DATA_RD; break; /* 0x03FE - modem status register */ diff --git a/usr.bin/doscmd/intff.c b/usr.bin/doscmd/intff.c index 6ec7e0a..7e608cf 100644 --- a/usr.bin/doscmd/intff.c +++ b/usr.bin/doscmd/intff.c @@ -476,7 +476,8 @@ int2f11_lseek(regcontext_t *REGS) static int int2f11_fnqual(regcontext_t *REGS) { - char *fname,*tname; + char *fname; + const char *tname; int savedrive; int error; @@ -578,7 +579,7 @@ static int int2f11_validate(regcontext_t *REGS) { int func = R_AL; - char *path = NULL; + const char *path = NULL; int doit = 0; /* defaults may help trap problems */ diff --git a/usr.bin/doscmd/trace.c b/usr.bin/doscmd/trace.c index 368b068..20517e8 100644 --- a/usr.bin/doscmd/trace.c +++ b/usr.bin/doscmd/trace.c @@ -196,12 +196,6 @@ printtrace(regcontext_t *REGS, char *buf) #if BIG_DEBUG u_char *addr = (u_char *)MAKEPTR(R_CS, R_IP); #endif - char *bigfmt = "%04x:%04x " -#if BIG_DEBUG - "%02x %02x %02x %02x %02x %02x " -#endif - "%-30s " - "%04x %04x %04x %04x %04x %04x %04x %04x %04x %04x %04x "; if (first) { fprintf(debugf, "%4s:%4s " @@ -217,7 +211,12 @@ printtrace(regcontext_t *REGS, char *buf) first = 0; } - fprintf(debugf, bigfmt, + fprintf(debugf, "%04x:%04x " +#if BIG_DEBUG + "%02x %02x %02x %02x %02x %02x " +#endif + "%-30s " + "%04x %04x %04x %04x %04x %04x %04x %04x %04x %04x %04x ", R_CS, R_IP, #if BIG_DEBUG addr[0], addr[1], addr[2], addr[3], addr[4], addr[5], diff --git a/usr.bin/doscmd/tty.c b/usr.bin/doscmd/tty.c index e3bd830..23486cc 100644 --- a/usr.bin/doscmd/tty.c +++ b/usr.bin/doscmd/tty.c @@ -86,7 +86,7 @@ static u_short scan_code = 0x00; int height; int width; int vattr; -char *xfont = 0; +const char *xfont = 0; #ifndef NO_X Display *dpy; diff --git a/usr.bin/doscmd/tty.h b/usr.bin/doscmd/tty.h index 660b44c..16ec477 100644 --- a/usr.bin/doscmd/tty.h +++ b/usr.bin/doscmd/tty.h @@ -31,7 +31,7 @@ int redirect0; int redirect1; int redirect2; extern int kbd_fd; -extern char *xfont; +extern const char *xfont; int KbdEmpty(void); u_short KbdPeek(void); diff --git a/usr.bin/doscmd/video.h b/usr.bin/doscmd/video.h index e765d2a..25cf753 100644 --- a/usr.bin/doscmd/video.h +++ b/usr.bin/doscmd/video.h @@ -347,7 +347,7 @@ typedef struct { int numpages; /* Number of display pages */ int vrescode; /* 0 = 200, 1 = 350, 2 = 400, 3 = 480 */ u_int32_t vmemaddr; /* Video memory address */ - char *fontname; /* Font name */ + const char *fontname; /* Font name */ } vmode_t; /* Types. 'NOMODE' is one of the 'forbidden' internal modes. */ diff --git a/usr.bin/doscmd/xms.c b/usr.bin/doscmd/xms.c index bd56fb5..912631b 100644 --- a/usr.bin/doscmd/xms.c +++ b/usr.bin/doscmd/xms.c @@ -361,7 +361,7 @@ void initHMA() if (mmap((caddr_t)0x000000, 0x100000, PROT_EXEC | PROT_READ | PROT_WRITE, MAP_ANON | MAP_FIXED | MAP_INHERIT | MAP_SHARED, - -1, 0) < 0) { + -1, 0) == MAP_FAILED) { perror("Error mapping HMA, HMA disabled: "); HMA_a20 = -1; close(HMA_fd_off); @@ -371,7 +371,7 @@ void initHMA() if (mmap((caddr_t)0x000000, 64 * 1024, PROT_EXEC | PROT_READ | PROT_WRITE, MAP_FILE | MAP_FIXED | MAP_INHERIT | MAP_SHARED, - HMA_fd_off, 0) < 0) { + HMA_fd_off, 0) == MAP_FAILED) { perror("Error mapping HMA, HMA disabled: "); HMA_a20 = -1; close(HMA_fd_off); @@ -381,7 +381,7 @@ void initHMA() if (mmap((caddr_t)0x100000, 64 * 1024, PROT_EXEC | PROT_READ | PROT_WRITE, MAP_FILE | MAP_FIXED | MAP_INHERIT | MAP_SHARED, - HMA_fd_off, 0) < 0) { + HMA_fd_off, 0) == MAP_FAILED) { perror("Error mapping HMA, HMA disabled: "); HMA_a20 = -1; close(HMA_fd_off); @@ -412,7 +412,7 @@ static void enable_a20() if (mmap((caddr_t)0x100000, 64 * 1024, PROT_EXEC | PROT_READ | PROT_WRITE, MAP_FILE | MAP_FIXED | MAP_INHERIT | MAP_SHARED, - HMA_fd_on, 0) < 0) { + HMA_fd_on, 0) == MAP_FAILED) { fatal("HMA mapping error: %s\nCannot recover\n", strerror(errno)); } } @@ -432,7 +432,7 @@ static void disable_a20() if (mmap((caddr_t)0x100000, 64 * 1024, PROT_EXEC | PROT_READ | PROT_WRITE, MAP_FILE | MAP_FIXED | MAP_INHERIT | MAP_SHARED, - HMA_fd_off, 0) < 0) { + HMA_fd_off, 0) == MAP_FAILED) { fatal("HMA mapping error: %s\nCannot recover\n", strerror(errno)); } } |