* config/tc-m68hc11.c: Add S12X and XGATE co-processor support.

Add option to offset S12 addresses into XGATE memory space.
	Tweak target flags to match other tools. (i.e. -m m68hc11).
	* doc/as.texinfo: Mention new options.
	* doc/c-m68hc11.texi: Document new options.
	* NEWS: Mention new support.

	* archures.c: Add bfd_arch_m9s12x and bfd_arch_m9s12xg.
	* config.bfd: Likewise.
	* cpu-m9s12x.c: New.
	* cpu-m9s12xg.c: New.
	* elf32-m68hc12.c: Add S12X and XGATE co-processor support.
	Add option to offset S12 addresses into XGATE memory space.
	Fix carry bug in IMM16 (IMM8 low/high) relocate.
	* Makefile.am (ALL_MACHINES): Add cpu-m9s12x and cpu-m9s12xg.
	(ALL_MACHINES_CFILES): Likewise.
	* reloc.c: Add S12X relocs.
	* Makefile.in: Regenerate.
	* bfd-in2.h: Regenerate.
	* libbfd.h: Regenerate.

	* gas/m68hc11/insns9s12x.s: New
	* gas/m68hc11/insns9s12x.d: New
	* gas/m68hc11/hexprefix.s: New
	* gas/m68hc11/hexprefix.d: New
	* gas/m68hc11/9s12x-exg-sex-tfr.s: New
	* gas/m68hc11/9s12x-exg-sex-tfr.d: New
	* gas/m68hc11/insns9s12xg.s: New
	* gas/m68hc11/insns9s12xg.d: New
	* gas/m68hc11/9s12x-mov.s: New
	* gas/m68hc11/9s12x-mov.d: New
	* gas/m68hc11/m68hc11.exp: Updated
	* gas/m68hc11/*.d: Brought in line with changed objdump output.
	* gas/all/gas.exp: XFAIL all hc11/12 targets for redef2,3.
	* gas/elf/elf.exp: XFAIL all hc11/12 targets for redef.
	* gas/elf/dwarf2-1.d: Skip for hc11/12 targets.
	* gas/elf/dwarf2-2.d: Likewise.

	* ld-m68hc11/xgate-link.s: New.
	* ld-m68hc11/xgate-link.d: New.
	* ld-m68hc11/xgate-offset.s: New.
	* ld-m68hc11/xgate-offset.d: New.
	* ld-m68hc11/xgate1.s: New.
	* ld-m68hc11/xgate1.d: New.
	* ld-m68hc11/xgate2.s: New.
	* ld-m68hc11/m68hc11.exp: Updated.
	* ld-m68hc11/*.d: Brought in line with changed objdump output.
	* ld-gc/gc.exp: Update CFLAGS for m68hc11.
	* ld-plugin/plugin.exp: Likewise.
	* ld-srec/srec.exp: XFAIL for m68hc11 and m68hc12.

	* configure.in: Add S12X and XGATE co-processor support to m68hc11
	target.
	* disassemble.c: Likewise.
	* configure: Regenerate.
	* m68hc11-dis.c: Make objdump output more consistent, use hex
	instead of decimal and use 0x prefix for hex.
	* m68hc11-opc.c: Add S12X and XGATE opcodes.
	* dis-asm.h (print_insn_m9s12x): Prototype.
	(print_insn_m9s12xg): Prototype.

	* m68hc11.h (R_M68HC12_16B, R_M68HC12_PCREL_9, R_M68HC12_PCREL_10)
	R_M68HC12_HI8XG, R_M68HC12_LO8XG): New relocations.
	(E_M68HC11_XGATE_RAMOFFSET): Define.

	* m68hc11.h: Add XGate definitions.
	(struct m68hc11_opcode): Add xg_mask field.
This commit is contained in:
Nick Clifton
2012-05-15 12:55:51 +00:00
parent 8f55341ea1
commit c846faf01a
6 changed files with 70 additions and 15 deletions

View File

@ -1,3 +1,9 @@
2012-05-15 James Murray <jsm@jsm-net.demon.co.uk>
* m68hc11.h (R_M68HC12_16B, R_M68HC12_PCREL_9, R_M68HC12_PCREL_10)
R_M68HC12_HI8XG, R_M68HC12_LO8XG): New relocations.
(E_M68HC11_XGATE_RAMOFFSET): Define.
2012-05-14 James Lemke <jwlemke@codesourcery.com>
* ppc.h (SEC_PPC_VLE): Remove.

View File

@ -1,5 +1,5 @@
/* m68hc11 & m68hc12 ELF support for BFD.
Copyright 1999, 2000, 2001, 2002, 2010 Free Software Foundation, Inc.
Copyright 1999, 2000, 2001, 2002, 2010, 2012 Free Software Foundation, Inc.
This file is part of BFD, the Binary File Descriptor library.
@ -42,6 +42,12 @@ START_RELOC_NUMBERS (elf_m68hc11_reloc_type)
RELOC_NUMBER (R_M68HC11_LO16, 12)
RELOC_NUMBER (R_M68HC11_PAGE, 13)
RELOC_NUMBER (R_M68HC12_16B, 15)
RELOC_NUMBER (R_M68HC12_PCREL_9, 16)
RELOC_NUMBER (R_M68HC12_PCREL_10, 17)
RELOC_NUMBER (R_M68HC12_HI8XG, 18)
RELOC_NUMBER (R_M68HC12_LO8XG, 19)
/* GNU extension for linker relaxation.
Mark beginning of a jump instruction (any form). */
RELOC_NUMBER (R_M68HC11_RL_JUMP, 20)
@ -64,6 +70,9 @@ END_RELOC_NUMBERS (R_M68HC11_max)
/* Uses 68HC12 memory banks. */
#define E_M68HC12_BANKS 0x000000004
/* XGATE ram offsetting. */
#define E_M68HC11_XGATE_RAMOFFSET 0x000000100
#define EF_M68HC11_MACH_MASK 0xF0
#define EF_M68HC11_GENERIC 0x00 /* Generic 68HC12/backward compatibility. */
#define EF_M68HC12_MACH 0x10 /* 68HC12 microcontroller. */
@ -86,10 +95,10 @@ END_RELOC_NUMBERS (R_M68HC11_max)
/* Special values for the st_other field in the symbol table. These
are used for 68HC12 to identify far functions (must be called with
'call' and returns with 'rtc'). */
#define STO_M68HC12_FAR 0x80
#define STO_M68HC12_FAR 0x80
/* Identify interrupt handlers. This is used by the debugger to
correctly compute the stack frame. */
#define STO_M68HC12_INTERRUPT 0x40
#define STO_M68HC12_INTERRUPT 0x40
#endif