From 21082d0b2b9910727770674cef9b68b9e97a3155 Mon Sep 17 00:00:00 2001 From: notaz Date: Mon, 11 Dec 2017 02:51:29 +0200 Subject: [PATCH] x86_64 support for host_dasm --- linux/host_dasm.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/linux/host_dasm.c b/linux/host_dasm.c index 15597b4..66a83ea 100644 --- a/linux/host_dasm.c +++ b/linux/host_dasm.c @@ -27,11 +27,17 @@ static struct disassemble_info di; #define BFD_ARCH bfd_arch_arm #define BFD_MACH bfd_mach_arm_unknown #define DASM_OPTS "reg-names-std" -#else +#elif defined(__x86_64__) || defined(__i386__) #define print_insn_func print_insn_i386_intel #define BFD_ARCH bfd_arch_i386 +#ifdef __x86_64__ +#define BFD_MACH bfd_mach_x86_64_intel_syntax +#else #define BFD_MACH bfd_mach_i386_i386_intel_syntax +#endif #define DASM_OPTS NULL +#else +#error "missing arch support" #endif /* symbols */ @@ -134,7 +140,7 @@ static int dis_asm_read_memory(bfd_vma memaddr, bfd_byte *myaddr, unsigned int len, struct disassemble_info *info) { - memcpy(myaddr, (void *)(int)memaddr, len); + memcpy(myaddr, (void *)(long)memaddr, len); return 0; } @@ -142,7 +148,7 @@ static void dis_asm_memory_error(int status, bfd_vma memaddr, struct disassemble_info *info) { - fprintf(stderr, "memory_error %p\n", (void *)(int)memaddr); + fprintf(stderr, "memory_error %p\n", (void *)(long)memaddr); } static void -- 2.39.2