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]

[PATCH]New options, docs and testcases for m68k/ColdFire


Hi,

The enclosed patch improves the ColdFire support for hardware divide and MAC
instructions by providing separate machine types for each unit. The new
options are -mmac and -mhwdiv. The previous options -m5206e and -m5307 are
also available as aliases. This makes life a lot easier for adding V4
ColdFire support as well as using custom CF cores which may or may not have
these optional instructions. The MAC and hwdiv options are now documented in
gas usage and in the gas docs.

I have included a couple of simple test cases for the hw-divide and mac
instructions. These have been hand disassembled to check that they are OK.

There was a bug in the support for div.w which restricted the CF addressing
modes too much. It has the same restrictions as the 68000+.

I don't have a copyright assignment on file for binutils...what all do I
need to do to make this patch "legal"? If this patch is OK I have a patch
for V4 CF stuff being worked on if that affects anything.

Dave

bfd/ChangeLog:
Sun July 17 12:41: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.


gas/ChangeLog:
Sun July 17 12:41:00 1999  David J. Fiddes  <D.J@fiddes.surfaid.org>

	* config/tc-m68k.c (struct archs): Remove 5206e and 5307 machine
      types. Add mac and hwdiv machine types. Add aliases for 5203,
      5206e and 5307.
      (global): New option vars no_mac and no_hwdiv.
      (select_control_regs): Remove redundant mcf5206e and mcf5307
      machine types.
      (m68k_init_after_args): Add option handling for mmac and mhwdiv
      options.
      (md_parse_option): Stop mmac being treated as a malformed mc68xxx
      style option. Add -mno-mac and -mno-hwdiv option handling.
      (md_show_usage): Add 5202,5203,5204,5206,5206e and 5307 to list of
      processors. Add mac and hwdiv option flags.
      * doc/c-m68k.texi (M68K-Opts): Added 5202,5203,5204,5206,5206e and
      5307 to list of ColdFire processors. Added mmac/mno-mac and
      mhwdiv/mno-hwdiv to list of documented options.
      * testsuite/gas/m68k/all.exp: Added mcf-mac and mcfhwdiv test cases.
      * testsuite/gas/m68k/mcf-hwdiv.s: Test assembler constaining all
      valid ColdFire hw divide instructions.
      * testsuite/gas/m68k/mcf-hwdiv.d: Test dump of above.
      * testsuite/gas/m68k/mcf-mac.s: Test assembler for basic operation
      of ColdFire MAC instructions.
      * testsuite/gas/m68k/mcf-mac.d: Test dump of above.


opcodes/ChangeLog:
Sun July 17 12:41:00 1999  David J. Fiddes  <D.J@fiddes.surfaid.org>

	* m68k-dis.c (print_insn_m68k): Add ColdFire architecture mask
      when explicitly asked for. Add mcfmac and mcfhwdiv to
      achitecture mask by default.
	* m68k-opc.c (struct m68k_opcodes): Changed divs.w and divu.w
      for ColdFire hwdiv option to have the same addressing modes
      as 68000up. Separated mcf5206e|mcf5307 specific options into
      hardware divide(mcfhwdiv) and MAC(mcfmac) instructions.


include/opcode/ChangeLog:
Sun July 17 12:41:00 1999  David J. Fiddes  <D.J@fiddes.surfaid.org>

	* m68k.h: Remove mcf5206e and mcf5307 machine types.
      Add mcfmac and mcfhwdiv machine types.
      Shorten mcf machine type alias to just include mcf5200.

binutils-coldfire-options-19990717.diff.gz


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