aboutsummaryrefslogtreecommitdiff
path: root/opcodes/disassemble.c
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2001-01-05 11:11:54 +0000
committerJan Hubicka <jh@suse.cz>2001-01-05 11:11:54 +0000
commit52b15da39a3b3394be9c57d365a7c375533e5198 (patch)
tree66262c11782e3b849bde40bb83744359029bc498 /opcodes/disassemble.c
parent63fe103861d920a94a6c78c51ce3b0bcf0722af6 (diff)
downloadgdb-52b15da39a3b3394be9c57d365a7c375533e5198.zip
gdb-52b15da39a3b3394be9c57d365a7c375533e5198.tar.gz
gdb-52b15da39a3b3394be9c57d365a7c375533e5198.tar.bz2
* i386-dis.c: Add x86_64 support.
(rex): New static variable. (REX_MODE64, REX_EXTX, REX_EXTY, REX_EXTZ): New constants. (USED_REX): New macro. (Ev, Ed, Rm, Iq, Iv64, Cm, Dm, Rm*, Ob64, Ov64): New macros. (OP_I64, OP_OFF64, OP_IMREG): New functions. (OP_REG, OP_OFF): Declare. (get64, get32, get32s): New functions. (r??_reg): New constants. (dis386_att): Change templates of instruction implicitly promoted to 64bit; change e?? to RMe?? for unwind RM byte instructions. (grps): Likewise. (dis386_intel): Likewise. (dixx86_64_att): New table based on dis386_att. (dixx86_64_intel): New table based on dis386_intel. (names64, names8rex): New global variable. (names32, names16): Add extended registers. (prefix_user_t): Recognize rex prefixes. (prefix_name): Print REX prefixes nicely. (op_riprel): New global variable. (start_pc): Set type to bfd_vma. (print_insn_i386): Detect the 64bit mode and use proper table; move ckprefix after initializing the buffer; output unused rex prefixes; output information about target of RIP relative addresses. (putop): Support 'O' and 'I'. Update handling of "P', 'Q', 'R' and 'S'; (print_operand_value): New function. (OP_E, OP_G, OP_REG, OP_I, OP_J, OP_DIR, OP_OFF, OP_D): Add support for REX prefix and new modes. (get64, get32s): New. (get32): Return bfd_signed_vma type. (set_op): Initialize the op_riprel. * disassemble.c (disassembler): Recognize the x86-64 disassembly.
Diffstat (limited to 'opcodes/disassemble.c')
-rw-r--r--opcodes/disassemble.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/opcodes/disassemble.c b/opcodes/disassemble.c
index 58713bd..f4c61f3 100644
--- a/opcodes/disassemble.c
+++ b/opcodes/disassemble.c
@@ -147,7 +147,8 @@ disassembler (abfd)
#endif
#ifdef ARCH_i386
case bfd_arch_i386:
- if (bfd_get_mach (abfd) == bfd_mach_i386_i386_intel_syntax)
+ if (bfd_get_mach (abfd) == bfd_mach_i386_i386_intel_syntax
+ || bfd_get_mach (abfd) == bfd_mach_x86_64_intel_syntax)
disassemble = print_insn_i386_intel;
else
disassemble = print_insn_i386_att;