Commit 48024e4a485fa82c103978c30c7d59d3a3a09262
1 parent
b389dbfb
m68k disassembler (Paul Brook)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1605 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
4 changed files
with
22 additions
and
3 deletions
Too many changes to show.
To preserve performance only 4 of 6 files are displayed.
Makefile.target
| ... | ... | @@ -240,6 +240,9 @@ endif |
| 240 | 240 | ifeq ($(findstring arm, $(TARGET_ARCH) $(ARCH)),arm) |
| 241 | 241 | LIBOBJS+=arm-dis.o |
| 242 | 242 | endif |
| 243 | +ifeq ($(findstring m68k, $(TARGET_ARCH) $(ARCH)),m68k) | |
| 244 | +LIBOBJS+=m68k-dis.o | |
| 245 | +endif | |
| 243 | 246 | |
| 244 | 247 | ifeq ($(ARCH),ia64) |
| 245 | 248 | OBJS += ia64-syscall.o | ... | ... |
alpha-dis.c
| ... | ... | @@ -23,9 +23,6 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA |
| 23 | 23 | #include <stdio.h> |
| 24 | 24 | #include "dis-asm.h" |
| 25 | 25 | |
| 26 | -#define ATTRIBUTE_UNUSED __attribute__((unused)) | |
| 27 | -#define _(x) x | |
| 28 | - | |
| 29 | 26 | /* The opcode table is an array of struct alpha_opcode. */ |
| 30 | 27 | |
| 31 | 28 | struct alpha_opcode | ... | ... |
dis-asm.h
| ... | ... | @@ -56,6 +56,17 @@ enum bfd_architecture |
| 56 | 56 | #define bfd_mach_m68030 5 |
| 57 | 57 | #define bfd_mach_m68040 6 |
| 58 | 58 | #define bfd_mach_m68060 7 |
| 59 | +#define bfd_mach_cpu32 8 | |
| 60 | +#define bfd_mach_mcf5200 9 | |
| 61 | +#define bfd_mach_mcf5206e 10 | |
| 62 | +#define bfd_mach_mcf5307 11 | |
| 63 | +#define bfd_mach_mcf5407 12 | |
| 64 | +#define bfd_mach_mcf528x 13 | |
| 65 | +#define bfd_mach_mcfv4e 14 | |
| 66 | +#define bfd_mach_mcf521x 15 | |
| 67 | +#define bfd_mach_mcf5249 16 | |
| 68 | +#define bfd_mach_mcf547x 17 | |
| 69 | +#define bfd_mach_mcf548x 18 | |
| 59 | 70 | bfd_arch_vax, /* DEC Vax */ |
| 60 | 71 | bfd_arch_i960, /* Intel 960 */ |
| 61 | 72 | /* The order of the following is important. |
| ... | ... | @@ -417,6 +428,7 @@ extern int generic_symbol_at_address |
| 417 | 428 | (INFO).insn_info_valid = 0 |
| 418 | 429 | |
| 419 | 430 | #define _(x) x |
| 431 | +#define ATTRIBUTE_UNUSED __attribute__((unused)) | |
| 420 | 432 | |
| 421 | 433 | /* from libbfd */ |
| 422 | 434 | |
| ... | ... | @@ -425,5 +437,6 @@ bfd_vma bfd_getb32 (const bfd_byte *addr); |
| 425 | 437 | bfd_vma bfd_getl16 (const bfd_byte *addr); |
| 426 | 438 | bfd_vma bfd_getb16 (const bfd_byte *addr); |
| 427 | 439 | typedef enum bfd_boolean {false, true} boolean; |
| 440 | +typedef boolean bfd_boolean; | |
| 428 | 441 | |
| 429 | 442 | #endif /* ! defined (DIS_ASM_H) */ | ... | ... |
disas.c
| ... | ... | @@ -187,6 +187,8 @@ void target_disas(FILE *out, target_ulong code, target_ulong size, int flags) |
| 187 | 187 | print_insn = print_insn_ppc; |
| 188 | 188 | #elif defined(TARGET_MIPS) |
| 189 | 189 | print_insn = print_insn_big_mips; |
| 190 | +#elif defined(TARGET_M68K) | |
| 191 | + print_insn = print_insn_m68k; | |
| 190 | 192 | #else |
| 191 | 193 | fprintf(out, "0x" TARGET_FMT_lx |
| 192 | 194 | ": Asm output not supported on this arch\n", code); |
| ... | ... | @@ -251,6 +253,8 @@ void disas(FILE *out, void *code, unsigned long size) |
| 251 | 253 | print_insn = print_insn_big_mips; |
| 252 | 254 | #elif defined(__MIPSEL__) |
| 253 | 255 | print_insn = print_insn_little_mips; |
| 256 | +#elif defined(__m68k__) | |
| 257 | + print_insn = print_insn_m68k; | |
| 254 | 258 | #else |
| 255 | 259 | fprintf(out, "0x%lx: Asm output not supported on this arch\n", |
| 256 | 260 | (long) code); |
| ... | ... | @@ -374,6 +378,8 @@ void monitor_disas(target_ulong pc, int nb_insn, int is_physical, int flags) |
| 374 | 378 | print_insn = print_insn_ppc; |
| 375 | 379 | #elif defined(TARGET_MIPS) |
| 376 | 380 | print_insn = print_insn_big_mips; |
| 381 | +#elif defined(TARGET_M68K) | |
| 382 | + print_insn = print_insn_m68k; | |
| 377 | 383 | #else |
| 378 | 384 | term_printf("0x" TARGET_FMT_lx |
| 379 | 385 | ": Asm output not supported on this arch\n", pc); | ... | ... |