binutils-gdb/ld/emulparams/msp430all.sh
Nick Clifton 13761a1136 * archures.c: Add some more MSP430 machine numbers.
* config.bfd (msp430): Define targ_selvecs.
	* configure.in: Add bfd_elf32_msp430_ti_vec.
	* cpu-msp430.c: Add some more MSP430 machine numbers.
	* elf32-msp430.c Add support for MSP430X relocations.
	Add support for TI compiler generated relocations.
	Add support for sym_diff relocations.
	Add support for relaxing out of range short branches into long
	branches.
	Add support for MSP430 attribute section.
	* reloc.c: Add MSP430X relocations.
	* targets.c: Add bfd_elf32_msp430_ti_vec.
	* bfd-in2.h: Regenerate.
	* configure: Regenerate.
	* libbfd.h: Regenerate.

	* readelf.c: Add support for MSP430X architecture.

	* readelf.exp: Expect -wi test to fail for the MSP430.

	* config/tc-msp430.c: Add support for the MSP430X architecture.
	Add code to insert a NOP instruction after any instruction that
	might change the interrupt state.
	Add support for the LARGE memory model.
	Add code to initialise the .MSP430.attributes section.
	* config/tc-msp430.h: Add support for the MSP430X architecture.
	* doc/c-msp430.texi: Document the new -mL and -mN command line
	options.
	* NEWS: Mention support for the MSP430X architecture.

	* gas/all/gas.exp: Skip the DIFF1 test for the MSP430.
	Expect the FORWARD test to pass for the MSP430.
	Skip the REDEF tests for the MSP430.
	Expect the 930509A test to fail for the MSP430.
	* gas/all/sleb128-4.d: Skip for the MSP430.
	* gas/elf/elf.exp: Set target_machine to msp430 for the MSP430.
	Skip the EHOPT0 test for the MSP430.
	Skip the REDEF and EQU-RELOC tests for the MSP430.
	* gas/elf/section2.e-msp430: New file.
	* gas/lns/lns-big-delta.d: Remove expectation of 20-bit
	addresses.
	* gas/lns/lns.exp: Use alternate LNS COMMON test for the MSP430.
	* gas/msp430/msp430x.s: New test.
	* gas/msp430/msp430x.d: Expected disassembly.
	* gas/msp430/msp430.exp: Run new test.
	* gas/msp430/opcode.d: Update expected disassembly.

	* msp430.h: Add MSP430X relocs.
	Add some more MSP430 machine numbers.
	Add values used by .MSP430.attributes section.

	* msp430.h: Add patterns for MSP430X instructions.

	* Makefile.am: Add emsp430X.c
	* Makefine.in: Regenerate.
	* configure.tgt (msp430): Add msp430X emulation.
	* ldmain.c (multiple_definition): Only disable relaxation if it
	was enabled by the user.
	* ldmain.h (RELAXATION_ENABLED_BY_USER): New macro.
	* emulparams/msp430all.sh: Add support for MSP430X.
	* emultempl/generic.em: (before_parse): Enable relaxation for the
	MSP430.
	* scripttempl/msp430.sc: Reorganize sections.  Add .rodata
	section.
	* scripttempl/msp430_3.sc: Likewise.
	* NEWS: Mention support for MSP430X.

	* ld-elf/flags1.d: Expect this test to pass on the MSP430.
	* ld-elf/init-fini-arrays.d: Expect this test to fail on the
	MSP430.
	* ld-elf/merge.d: Expect this test to pass on the MSP430.
	* ld-elf/sec64k.exp: Skip these tests for the MSP430.
	* ld-gc/pr13683.d: Expect this test to fail on the MSP430.
	* ld-srec/srec.exp: Expect these tests to fail on the MSP430.
	* ld-undefined/undefined.exp: Expect the UNDEFINED LINE test to
	fail on the MSP430.

	* msp430-dis.c: Add support for MSP430X instructions.
2013-05-02 21:06:15 +00:00

563 lines
8.5 KiB
Bash

#!/bin/sh
# This called by genscripts_extra.sh
MSP430_NAME=${EMULATION_NAME}
SCRIPT_NAME=elf32msp430
TEMPLATE_NAME=generic
EXTRA_EM_FILE=genelf
OUTPUT_FORMAT="elf32-msp430"
MACHINE=
MAXPAGESIZE=1
EMBEDDED=yes
if [ "${MSP430_NAME}" = "msp430x110" ] ; then
ARCH=msp:11
ROM_START=0xfc00
ROM_SIZE=0x3e0
RAM_START=0x0200
RAM_SIZE=128
STACK=0x280
fi
if [ "${MSP430_NAME}" = "msp430x1101" ] ; then
ARCH=msp:110
ROM_START=0xfc00
ROM_SIZE=0x3e0
RAM_START=0x0200
RAM_SIZE=128
STACK=0x280
fi
if [ "${MSP430_NAME}" = "msp430x1111" ] ; then
ARCH=msp:110
ROM_START=0xf800
ROM_SIZE=0x07e0
RAM_START=0x0200
RAM_SIZE=128
STACK=0x280
fi
if [ "${MSP430_NAME}" = "msp430x112" ] ; then
ARCH=msp:11
ROM_START=0xf000
ROM_SIZE=0xfe0
RAM_START=0x0200
RAM_SIZE=256
STACK=0x300
fi
if [ "${MSP430_NAME}" = "msp430x1121" ] ; then
ARCH=msp:110
ROM_START=0xf000
ROM_SIZE=0x0fe0
RAM_START=0x0200
RAM_SIZE=256
STACK=0x300
fi
if [ "${MSP430_NAME}" = "msp430x1122" ] ; then
ARCH=msp:110
ROM_START=0xf000
ROM_SIZE=0x0fe0
RAM_START=0x0200
RAM_SIZE=256
STACK=0x300
fi
if [ "${MSP430_NAME}" = "msp430x1132" ] ; then
ARCH=msp:110
ROM_START=0xe000
ROM_SIZE=0x1fe0
RAM_START=0x0200
RAM_SIZE=256
STACK=0x300
fi
if [ "${MSP430_NAME}" = "msp430x122" ] ; then
ARCH=msp:12
ROM_START=0xf000
ROM_SIZE=0xfe0
RAM_START=0x0200
RAM_SIZE=256
STACK=0x300
fi
if [ "${MSP430_NAME}" = "msp430x1222" ] ; then
ARCH=msp:12
ROM_START=0xf000
ROM_SIZE=0xfe0
RAM_START=0x0200
RAM_SIZE=256
STACK=0x300
fi
if [ "${MSP430_NAME}" = "msp430x123" ] ; then
ARCH=msp:12
ROM_START=0xe000
ROM_SIZE=0x1fe0
RAM_START=0x0200
RAM_SIZE=256
STACK=0x300
fi
if [ "${MSP430_NAME}" = "msp430x1232" ] ; then
ARCH=msp:12
ROM_START=0xe000
ROM_SIZE=0x1fe0
RAM_START=0x0200
RAM_SIZE=256
STACK=0x300
fi
if [ "${MSP430_NAME}" = "msp430x133" ] ; then
ARCH=msp:13
ROM_START=0xe000
ROM_SIZE=0x1fe0
RAM_START=0x0200
RAM_SIZE=256
STACK=0x300
fi
if [ "${MSP430_NAME}" = "msp430x1331" ] ; then
ARCH=msp:13
ROM_START=0xe000
ROM_SIZE=0x1fe0
RAM_START=0x0200
RAM_SIZE=256
STACK=0x300
fi
if [ "${MSP430_NAME}" = "msp430x135" ] ; then
ARCH=msp:13
ROM_START=0xc000
ROM_SIZE=0x3fe0
RAM_START=0x0200
RAM_SIZE=512
STACK=0x400
fi
if [ "${MSP430_NAME}" = "msp430x1351" ] ; then
ARCH=msp:13
ROM_START=0xc000
ROM_SIZE=0x3fe0
RAM_START=0x0200
RAM_SIZE=512
STACK=0x400
fi
if [ "${MSP430_NAME}" = "msp430x147" ] ; then
ARCH=msp:14
ROM_START=0x8000
ROM_SIZE=0x7fe0
RAM_START=0x0200
RAM_SIZE=1K
STACK=0x600
fi
if [ "${MSP430_NAME}" = "msp430x148" ] ; then
ARCH=msp:14
ROM_START=0x4000
ROM_SIZE=0xbfe0
RAM_START=0x0200
RAM_SIZE=0x0800
STACK=0xa00
fi
if [ "${MSP430_NAME}" = "msp430x149" ] ; then
ARCH=msp:14
ROM_START=0x1100
ROM_SIZE=0xeee0
RAM_START=0x0200
RAM_SIZE=0x0800
STACK=0xa00
fi
if [ "${MSP430_NAME}" = "msp430x155" ] ; then
ARCH=msp:15
ROM_START=0xc000
ROM_SIZE=0x3fe0
RAM_START=0x0200
RAM_SIZE=512
STACK=0x400
fi
if [ "${MSP430_NAME}" = "msp430x156" ] ; then
ARCH=msp:15
ROM_START=0xa000
ROM_SIZE=0x5fe0
RAM_START=0x0200
RAM_SIZE=512
STACK=0x400
fi
if [ "${MSP430_NAME}" = "msp430x157" ] ; then
ARCH=msp:15
ROM_START=0x8000
ROM_SIZE=0x7fe0
RAM_START=0x0200
RAM_SIZE=1K
STACK=0x600
fi
if [ "${MSP430_NAME}" = "msp430x167" ] ; then
ARCH=msp:16
ROM_START=0x8000
ROM_SIZE=0x7fe0
RAM_START=0x0200
RAM_SIZE=1K
STACK=0x600
fi
if [ "${MSP430_NAME}" = "msp430x168" ] ; then
ARCH=msp:16
ROM_START=0x4000
ROM_SIZE=0xbfe0
RAM_START=0x0200
RAM_SIZE=0x0800
STACK=0xa00
fi
if [ "${MSP430_NAME}" = "msp430x169" ] ; then
ARCH=msp:16
ROM_START=0x1100
ROM_SIZE=0xeee0
RAM_START=0x0200
RAM_SIZE=0x0800
STACK=0xa00
fi
if [ "${MSP430_NAME}" = "msp430x1610" ] ; then
ARCH=msp:16
ROM_START=0x8000
ROM_SIZE=0x7fe0
RAM_START=0x1100
RAM_SIZE=0x1400
STACK=0x2500
fi
if [ "${MSP430_NAME}" = "msp430x1611" ] ; then
ARCH=msp:16
ROM_START=0x4000
ROM_SIZE=0xbfe0
RAM_START=0x1100
RAM_SIZE=0x2800
STACK=0x3900
fi
if [ "${MSP430_NAME}" = "msp430x1612" ] ; then
ARCH=msp:16
ROM_START=0x2500
ROM_SIZE=0xdae0
RAM_START=0x1100
RAM_SIZE=0x1400
STACK=0x2500
fi
if [ "${MSP430_NAME}" = "msp430x2101" ] ; then
ARCH=msp:21
ROM_START=0xFC00
ROM_SIZE=0x03e0
RAM_START=0x0200
RAM_SIZE=128
STACK=0x280
fi
if [ "${MSP430_NAME}" = "msp430x2111" ] ; then
ARCH=msp:21
ROM_START=0xF800
ROM_SIZE=0x07e0
RAM_START=0x0200
RAM_SIZE=128
STACK=0x280
fi
if [ "${MSP430_NAME}" = "msp430x2121" ] ; then
ARCH=msp:21
ROM_START=0xf000
ROM_SIZE=0x0fe0
RAM_START=0x0200
RAM_SIZE=256
STACK=0x300
fi
if [ "${MSP430_NAME}" = "msp430x2131" ] ; then
ARCH=msp:21
ROM_START=0xe000
ROM_SIZE=0x1fe0
RAM_START=0x0200
RAM_SIZE=256
STACK=0x300
fi
if [ "${MSP430_NAME}" = "msp430x311" ] ; then
ARCH=msp:31
SCRIPT_NAME=elf32msp430_3
ROM_START=0xf800
ROM_SIZE=0x07e0
RAM_START=0x0200
RAM_SIZE=128
STACK=0x280
fi
if [ "${MSP430_NAME}" = "msp430x312" ] ; then
ARCH=msp:31
SCRIPT_NAME=elf32msp430_3
ROM_START=0xf000
ROM_SIZE=0x0fe0
RAM_START=0x0200
RAM_SIZE=256
STACK=0x300
fi
if [ "${MSP430_NAME}" = "msp430x313" ] ; then
ARCH=msp:31
SCRIPT_NAME=elf32msp430_3
ROM_START=0xe000
ROM_SIZE=0x1fe0
RAM_START=0x0200
RAM_SIZE=256
STACK=0x300
fi
if [ "${MSP430_NAME}" = "msp430x314" ] ; then
ARCH=msp:31
SCRIPT_NAME=elf32msp430_3
ROM_START=0xd000
ROM_SIZE=0x2fe0
RAM_START=0x0200
RAM_SIZE=512
STACK=0x400
fi
if [ "${MSP430_NAME}" = "msp430x315" ] ; then
ARCH=msp:31
SCRIPT_NAME=elf32msp430_3
ROM_START=0xc000
ROM_SIZE=0x3fe0
RAM_START=0x0200
RAM_SIZE=512
STACK=0x400
fi
if [ "${MSP430_NAME}" = "msp430x323" ] ; then
ARCH=msp:32
SCRIPT_NAME=elf32msp430_3
ROM_START=0xe000
ROM_SIZE=0x1fe0
RAM_START=0x0200
RAM_SIZE=256
STACK=0x300
fi
if [ "${MSP430_NAME}" = "msp430x325" ] ; then
ARCH=msp:32
SCRIPT_NAME=elf32msp430_3
ROM_START=0xc000
ROM_SIZE=0x3fe0
RAM_START=0x0200
RAM_SIZE=512
STACK=0x400
fi
if [ "${MSP430_NAME}" = "msp430x336" ] ; then
ARCH=msp:33
SCRIPT_NAME=elf32msp430_3
ROM_START=0xa000
ROM_SIZE=0x5fe0
RAM_START=0x0200
RAM_SIZE=1024
STACK=0x600
fi
if [ "${MSP430_NAME}" = "msp430x337" ] ; then
ARCH=msp:33
SCRIPT_NAME=elf32msp430_3
ROM_START=0x8000
ROM_SIZE=0x7fe0
RAM_START=0x0200
RAM_SIZE=1024
STACK=0x600
fi
if [ "${MSP430_NAME}" = "msp430x412" ] ; then
ARCH=msp:41
ROM_START=0xf000
ROM_SIZE=0x0fe0
RAM_START=0x0200
RAM_SIZE=256
STACK=0x300
fi
if [ "${MSP430_NAME}" = "msp430x413" ] ; then
ARCH=msp:41
ROM_START=0xe000
ROM_SIZE=0x1fe0
RAM_START=0x0200
RAM_SIZE=256
STACK=0x300
fi
if [ "${MSP430_NAME}" = "msp430x415" ] ; then
ARCH=msp:41
ROM_START=0xc000
ROM_SIZE=0x3fe0
RAM_START=0x0200
RAM_SIZE=512
STACK=0x400
fi
if [ "${MSP430_NAME}" = "msp430x417" ] ; then
ARCH=msp:41
ROM_START=0x8000
ROM_SIZE=0x7fe0
RAM_START=0x0200
RAM_SIZE=1024
STACK=0x600
fi
if [ "${MSP430_NAME}" = "msp430x435" ] ; then
ARCH=msp:43
ROM_START=0xc000
ROM_SIZE=0x3fe0
RAM_START=0x0200
RAM_SIZE=512
STACK=0x400
fi
if [ "${MSP430_NAME}" = "msp430x436" ] ; then
ARCH=msp:43
ROM_START=0xa000
ROM_SIZE=0x5fe0
RAM_START=0x0200
RAM_SIZE=1024
STACK=0x600
fi
if [ "${MSP430_NAME}" = "msp430x437" ] ; then
ARCH=msp:43
ROM_START=0x8000
ROM_SIZE=0x7fe0
RAM_START=0x0200
RAM_SIZE=1024
STACK=0x600
fi
if [ "${MSP430_NAME}" = "msp430x447" ] ; then
ARCH=msp:44
ROM_START=0x8000
ROM_SIZE=0x7fe0
RAM_START=0x0200
RAM_SIZE=1024
STACK=0x600
fi
if [ "${MSP430_NAME}" = "msp430x448" ] ; then
ARCH=msp:44
ROM_START=0x4000
ROM_SIZE=0xbfe0
RAM_START=0x0200
RAM_SIZE=0x0800
STACK=0xa00
fi
if [ "${MSP430_NAME}" = "msp430x449" ] ; then
ARCH=msp:44
ROM_START=0x1100
ROM_SIZE=0xeee0
RAM_START=0x0200
RAM_SIZE=0x0800
STACK=0xa00
fi
if [ "${MSP430_NAME}" = "msp430xE423" ] ; then
ARCH=msp:42
ROM_START=0xe000
ROM_SIZE=0x1fe0
RAM_START=0x0200
RAM_SIZE=256
STACK=0x300
fi
if [ "${MSP430_NAME}" = "msp430xE425" ] ; then
ARCH=msp:42
ROM_START=0xc000
ROM_SIZE=0x3fe0
RAM_START=0x0200
RAM_SIZE=512
STACK=0x400
fi
if [ "${MSP430_NAME}" = "msp430xE427" ] ; then
ARCH=msp:42
ROM_START=0x8000
ROM_SIZE=0x7fe0
RAM_START=0x0200
RAM_SIZE=1024
STACK=0x600
fi
if [ "${MSP430_NAME}" = "msp430xG437" ] ; then
ARCH=msp:43
ROM_START=0x8000
ROM_SIZE=0x7fe0
RAM_START=0x0200
RAM_SIZE=1024
STACK=0x600
fi
if [ "${MSP430_NAME}" = "msp430xG438" ] ; then
ARCH=msp:43
ROM_START=0x4000
ROM_SIZE=0xbef0
RAM_START=0x0200
RAM_SIZE=0x0800
STACK=0xa00
fi
if [ "${MSP430_NAME}" = "msp430xG439" ] ; then
ARCH=msp:43
ROM_START=0x1100
ROM_SIZE=0xeee0
RAM_START=0x0200
RAM_SIZE=0x0800
STACK=0xa00
fi
if [ "${MSP430_NAME}" = "msp430xW423" ] ; then
ARCH=msp:42
ROM_START=0xe000
ROM_SIZE=0x1fe0
RAM_START=0x0200
RAM_SIZE=256
STACK=0x300
fi
if [ "${MSP430_NAME}" = "msp430xW425" ] ; then
ARCH=msp:42
ROM_START=0xc000
ROM_SIZE=0x3fe0
RAM_START=0x0200
RAM_SIZE=512
STACK=0x400
fi
if [ "${MSP430_NAME}" = "msp430xW427" ] ; then
ARCH=msp:42
ROM_START=0x8000
ROM_SIZE=0x7fe0
RAM_START=0x0200
RAM_SIZE=0x400
STACK=0x600
fi
if [ "${MSP430_NAME}" = "msp430X" ] ; then
ARCH=msp:43
ROM_START=0x02000
ROM_SIZE=0x0dfe0
RAM_START=0x10000
RAM_SIZE=0x30000
STACK=0x600
fi