[PATCH]: bfd support for 68HCS12

Stephane Carrez stcarrez@nerim.fr
Sun Dec 1 04:18:00 GMT 2002


Hi!

The new motorola microcontroller 68HCS12 is similar to the 68HC12.  It is 99.9% binary
compatible except on the two instructions movw/movb when we use PC-relative addressing
modes.  The 68HC12 needs a complex/strange offset correction (+1,-1 depending on
the src/dst modes; due to some buggy proc. internals).  The new 68HCS12 does not need that
(indeed they fixed/improve their silicium).

This patch adds the support for HCS12 to basically identify it and make sure we don't
merge HC12 code with HCS12. The bfd_mach_m6812_default corresponds to the prior-to-this-patch value
and it is accepted to merge with either HC12 or HCS12 (because it's supposed not to contain
any movb/movw; gas will ensure that if necessary).

Committed.

	Stephane

bfd/ChangeLog
2002-12-01  Stephane Carrez  <stcarrez@nerim.fr>

	* bfd-in2.h (bfd_mach_m6812): Rebuild.
	* archures.c (bfd_mach_m6812_default, bfd_mach_m6812,
	bfd_mach_m6812s): Declare.

	* elf32-m68hc12.c (m68hc12_elf_set_mach_from_flags): New function.
	(_bfd_m68hc12_elf_set_private_flags): Call it.
	(_bfd_m68hc12_elf_print_private_bfd_data): Report processor version.
	(_bfd_m68hc12_elf_merge_private_bfd_data): Merge the flags and
	report microcontroller incompatibilities (HC12 vs HCS12).
	(elf_backend_object_p): Update.

include/elf/ChangeLog
2002-12-01  Stephane Carrez  <stcarrez@nerim.fr>

	* m68hc11.h (EF_M68HC12_MACH, EF_M68HCS12_MACH): Define.
	(EF_M68HC11_MACH_MASK, EF_M68HC11_MACH): Define.
	(EF_M68HC11_MERGE_MACH, EF_M68HC11_CAN_MERGE_MACH): Define.
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: binutils.diffs
URL: <https://sourceware.org/pipermail/binutils/attachments/20021201/4c9741b8/attachment.ksh>


More information about the Binutils mailing list