summaryrefslogtreecommitdiff
path: root/gnu/usr.bin/binutils/opcodes/i386-dis.c
diff options
context:
space:
mode:
authorNiklas Hallqvist <niklas@cvs.openbsd.org>1996-11-23 04:12:06 +0000
committerNiklas Hallqvist <niklas@cvs.openbsd.org>1996-11-23 04:12:06 +0000
commit37d4621bd4a912b6a032bc21906f7032e602cbf2 (patch)
tree6e6f3dad18baebc5f90abdcbbf4a8ba242555627 /gnu/usr.bin/binutils/opcodes/i386-dis.c
parentfb7c7a778840ea235dd0bb550cfd2e2ac8ccb37c (diff)
Merge to Cygnus 961112 + add some support (not ready) for shared libs
Diffstat (limited to 'gnu/usr.bin/binutils/opcodes/i386-dis.c')
-rw-r--r--gnu/usr.bin/binutils/opcodes/i386-dis.c37
1 files changed, 28 insertions, 9 deletions
diff --git a/gnu/usr.bin/binutils/opcodes/i386-dis.c b/gnu/usr.bin/binutils/opcodes/i386-dis.c
index 4e1024d6270..1983261157b 100644
--- a/gnu/usr.bin/binutils/opcodes/i386-dis.c
+++ b/gnu/usr.bin/binutils/opcodes/i386-dis.c
@@ -141,13 +141,28 @@ fetch_data (info, addr)
#define fs OP_REG, fs_reg
#define gs OP_REG, gs_reg
-typedef int op_rtn PARAMS ((int bytemode, int aflag, int dflag));
-
-static op_rtn OP_E, OP_G, OP_I, OP_indirE, OP_sI, OP_REG, OP_J, OP_DIR, OP_OFF;
-static op_rtn OP_ESDI, OP_DSSI, OP_SEG, OP_C, OP_D, OP_T, OP_rm, OP_ST;
-static op_rtn OP_STi;
+typedef int (*op_rtn) PARAMS ((int bytemode, int aflag, int dflag));
+
+static int OP_E PARAMS ((int, int, int));
+static int OP_G PARAMS ((int, int, int));
+static int OP_I PARAMS ((int, int, int));
+static int OP_indirE PARAMS ((int, int, int));
+static int OP_sI PARAMS ((int, int, int));
+static int OP_REG PARAMS ((int, int, int));
+static int OP_J PARAMS ((int, int, int));
+static int OP_DIR PARAMS ((int, int, int));
+static int OP_OFF PARAMS ((int, int, int));
+static int OP_ESDI PARAMS ((int, int, int));
+static int OP_DSSI PARAMS ((int, int, int));
+static int OP_SEG PARAMS ((int, int, int));
+static int OP_C PARAMS ((int, int, int));
+static int OP_D PARAMS ((int, int, int));
+static int OP_T PARAMS ((int, int, int));
+static int OP_rm PARAMS ((int, int, int));
+static int OP_ST PARAMS ((int, int, int));
+static int OP_STi PARAMS ((int, int, int));
#if 0
-static op_rtn OP_ONE;
+static int OP_ONE PARAMS ((int, int, int));
#endif
static void append_prefix PARAMS ((void));
@@ -223,11 +238,11 @@ static void ckprefix PARAMS ((void));
struct dis386 {
char *name;
- op_rtn *op1;
+ op_rtn op1;
int bytemode1;
- op_rtn *op2;
+ op_rtn op2;
int bytemode2;
- op_rtn *op3;
+ op_rtn op3;
int bytemode3;
};
@@ -1062,6 +1077,10 @@ print_insn_x86 (pc, info, aflag, dflag)
struct dis_private priv;
bfd_byte *inbuf = priv.the_buffer;
+ /* The output looks better if we put 5 bytes on a line, since that
+ puts long word instructions on a single line. */
+ info->bytes_per_line = 5;
+
info->private_data = (PTR) &priv;
priv.max_fetched = priv.the_buffer;
priv.insn_start = pc;