This is the mail archive of the binutils@sourceware.cygnus.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

ColdFire/m68k BFD architecture & disassembler


Hi,

Here is a small patch that adds the ColdFire architecture to BFD and enables
it in the m68k disassembler. This allows only ColdFire compatible code to be
disassembled and in the future should allow ColdFire only instructions(such
as those for the ColdFire Mulitply and ACcumulate unit) to be added.

I hope that this is OK...

I have a couple of ColdFire patches under development at the moment. One
adds support for the hardware divide unit present on newer ColdFire chips
and is pretty much complete including testsuite. I've been working with
Linus Nordberg [nordbelm@decus.se] to improve his support for the CF MAC
unit and I hope to implement the new instructions that will eventually be
available on the V4 ColdFire core. What do I need to do by way of copyright
assignment, etc before(?) submitting the patches. Also, is this the correct
place to post them?

Dave

bfd/ChangeLog:
Sun May 23 21:09:00 1999  David J. Fiddes  <D.J@fiddes.surfaid.org>

	* archures.c (enum bfd_architecture): Add ColdFire machine type
      as bfd_mach_mcf5200.
	* cpu-m68k.c (struct arch_info_struct): Add ColdFire machine type
      as m68k:5200.
	* bfd-in2.h: Regenerate.

opcodes/ChangeLog:
Sun May 23 21:09:00 1999  David J. Fiddes  <D.J@fiddes.surfaid.org>
	* m68k-dis.c (print_insn_m68k): Add ColdFire architecture mask.

patch:
Index: bfd/archures.c
===================================================================
RCS file: /cvs/binutils/binutils/bfd/archures.c,v
retrieving revision 1.1.1.1
diff -r1.1.1.1 archures.c
80a81
> .#define bfd_mach_mcf5200 9
Index: bfd/cpu-m68k.c
===================================================================
RCS file: /cvs/binutils/binutils/bfd/cpu-m68k.c,v
retrieving revision 1.1.1.1
diff -r1.1.1.1 cpu-m68k.c
31,38c31,39
<   N(bfd_mach_m68000, "m68k:68000", false, &arch_info_struct[1]),
<   N(bfd_mach_m68008, "m68k:68008", false, &arch_info_struct[2]),
<   N(bfd_mach_m68010, "m68k:68010", false, &arch_info_struct[3]),
<   N(bfd_mach_m68020, "m68k:68020", false, &arch_info_struct[4]),
<   N(bfd_mach_m68030, "m68k:68030", false, &arch_info_struct[5]),
<   N(bfd_mach_m68040, "m68k:68040", false, &arch_info_struct[6]),
<   N(bfd_mach_cpu32,  "m68k:cpu32", false, &arch_info_struct[7]),
<   N(bfd_mach_m68060, "m68k:68060", false, 0),
---
>   N(bfd_mach_m68000,  "m68k:68000", false, &arch_info_struct[1]),
>   N(bfd_mach_m68008,  "m68k:68008", false, &arch_info_struct[2]),
>   N(bfd_mach_m68010,  "m68k:68010", false, &arch_info_struct[3]),
>   N(bfd_mach_m68020,  "m68k:68020", false, &arch_info_struct[4]),
>   N(bfd_mach_m68030,  "m68k:68030", false, &arch_info_struct[5]),
>   N(bfd_mach_m68040,  "m68k:68040", false, &arch_info_struct[6]),
>   N(bfd_mach_cpu32,   "m68k:cpu32", false, &arch_info_struct[7]),
>   N(bfd_mach_mcf5200, "m68k:5200", false, &arch_info_struct[8]),
>   N(bfd_mach_m68060,  "m68k:68060", false, 0),
Index: opcodes/m68k-dis.c
===================================================================
RCS file: /cvs/binutils/binutils/opcodes/m68k-dis.c,v
retrieving revision 1.1.1.1
diff -r1.1.1.1 m68k-dis.c
255a256,258
>     case bfd_mach_mcf5200:
>       arch_mask = mcf5200;
>       break;


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]