diff options
author | Jozef Lawrynowicz <jozef.l@mittosystems.com> | 2019-08-13 10:05:53 +0000 |
---|---|---|
committer | Jozef Lawrynowicz <jozefl@gcc.gnu.org> | 2019-08-13 10:05:53 +0000 |
commit | e37e2bb100135e4d4afa2f4ae6445ac1201f01fa (patch) | |
tree | c54af3eabb7667016b5ba28d390176b8454d7ae7 /gcc/config/msp430/t-msp430 | |
parent | 806f69cd68c18399e8e54b1a0913ae57beabbe69 (diff) | |
download | gcc-e37e2bb100135e4d4afa2f4ae6445ac1201f01fa.tar.gz |
MSP430: Consolidate handling of hard-coded MCU data
gcc/ChangeLog:
2019-08-13 Jozef Lawrynowicz <jozef.l@mittosystems.com>
* gcc/config.gcc (msp430*-*-*): Add msp430-devices.o to extra_objs and
extra_gcc_objs.
* gcc/config/msp430/driver-msp430.c: Remove msp430_mcu_data.
(msp430_select_cpu): New spec function.
(msp430_select_hwmult_lib): Use msp430_extract_mcu_data to extract
MCU data.
* gcc/config/msp430/msp430-devices.c: New file.
* gcc/config/msp430/msp430-devices.h: New file.
* gcc/config/msp430/msp430.c: Remove msp430_mcu_data.
(msp430_option_override): Use msp430_extract_mcu_data to extract
MCU data.
(msp430_use_f5_series_hwmult): Likewise.
(use_32bit_hwmult): Likewise.
(msp430_no_hwmult): Likewise.
* gcc/config/msp430/msp430.h (ASM_SPEC): Don't pass -mmcu to the
assembler.
(DRIVER_SELF_SPECS): Call msp430_select_cpu if -mmcu is used without
and -mcpu option.
(EXTRA_SPEC_FUNCTIONS): Add msp430_select_cpu.
* gcc/config/msp430/t-msp430: Add rule to build msp430-devices.o.
Remove hard-coded MCU multilib data.
gcc/testsuite/ChangeLog:
2019-08-13 Jozef Lawrynowicz <jozef.l@mittosystems.com>
* gcc.target/msp430/msp430.exp
(check_effective_target_msp430_430_selected): New.
(check_effective_target_msp430_430x_selected): New.
(check_effective_target_msp430_mlarge_selected): New.
(check_effective_target_msp430_hwmul_not_none): New.
(check_effective_target_msp430_hwmul_not_16bit): New.
(check_effective_target_msp430_hwmul_not_32bit): New.
(check_effective_target_msp430_hwmul_not_f5): New.
(msp430_get_opts): New.
(msp430_device_permutations_runtest): New.
* gcc.target/msp430/devices/README: New file.
* gcc.target/msp430/devices-main.c: New test.
* gcc.target/msp430/devices/hard-cc430f5123.c: Likewise.
* gcc.target/msp430/devices/hard-foo.c: Likewise.
* gcc.target/msp430/devices/hard-msp430afe253.c: Likewise.
* gcc.target/msp430/devices/hard-msp430cg4616.c: Likewise.
* gcc.target/msp430/devices/hard-msp430f4783.c: Likewise.
* gcc.target/msp430/devices/hard-rf430frl154h_rom.c: Likewise.
From-SVN: r274370
Diffstat (limited to 'gcc/config/msp430/t-msp430')
-rw-r--r-- | gcc/config/msp430/t-msp430 | 236 |
1 files changed, 7 insertions, 229 deletions
diff --git a/gcc/config/msp430/t-msp430 b/gcc/config/msp430/t-msp430 index edfdad7ed1a..b9565103e9a 100644 --- a/gcc/config/msp430/t-msp430 +++ b/gcc/config/msp430/t-msp430 @@ -22,6 +22,10 @@ driver-msp430.o: $(srcdir)/config/msp430/driver-msp430.c \ $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $< +msp430-devices.o: $(srcdir)/config/msp430/msp430-devices.c \ + $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) + $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $< + # Enable multilibs: MULTILIB_OPTIONS = mcpu=msp430 mlarge @@ -30,235 +34,9 @@ MULTILIB_DIRNAMES = 430 large # Match -mcpu=430 MULTILIB_MATCHES = mcpu?msp430=mcpu?430 -# Match the known 430 ISA mcu names. -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430c091 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430c092 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430c111 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430c1111 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430c112 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430c1121 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430c1331 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430c1351 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430c311s -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430c312 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430c313 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430c314 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430c315 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430c323 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430c325 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430c412 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430c413 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430e112 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430e313 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430e315 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430e325 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f110 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f1101 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f1101a -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f1111 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f1111a -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f112 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f1121 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f1121a -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f1122 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f1132 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f122 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f1222 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f123 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f1232 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f133 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f135 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f155 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f156 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f157 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f2001 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f2002 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f2003 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f2011 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f2012 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f2013 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f2101 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f2111 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f2112 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f2121 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f2122 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f2131 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f2132 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f2232 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f2234 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f2252 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f2254 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f2272 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f2274 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f412 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f413 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f4132 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f415 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f4152 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f417 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f4250 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f4260 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f4270 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f435 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f4351 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f436 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f4361 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f437 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f4371 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f438 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f439 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f477 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f478 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f479 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430fe423 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430fe4232 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430fe423a -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430fe4242 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430fe425 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430fe4252 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430fe425a -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430fe427 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430fe4272 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430fe427a -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430fg4250 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430fg4260 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430fg4270 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430fg437 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430fg438 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430fg439 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430fg477 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430fg478 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430fg479 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430fw423 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430fw425 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430fw427 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430fw428 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430fw429 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430g2001 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430g2101 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430g2102 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430g2111 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430g2112 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430g2113 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430g2121 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430g2131 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430g2132 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430g2152 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430g2153 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430g2201 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430g2202 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430g2203 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430g2210 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430g2211 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430g2212 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430g2213 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430g2221 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430g2230 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430g2231 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430g2232 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430g2233 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430g2252 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430g2253 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430g2302 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430g2303 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430g2312 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430g2313 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430g2332 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430g2333 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430g2352 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430g2353 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430g2402 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430g2403 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430g2412 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430g2413 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430g2432 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430g2433 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430g2444 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430g2452 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430g2453 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430g2513 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430g2533 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430g2544 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430g2553 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430g2744 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430g2755 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430g2855 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430g2955 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430l092 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430p112 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430p313 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430p315 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430p315s -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430p325 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430tch5e -MULTILIB_MATCHES += mcpu?msp430=mmcu?rf430frl152h -MULTILIB_MATCHES += mcpu?msp430=mmcu?rf430frl152h_rom -MULTILIB_MATCHES += mcpu?msp430=mmcu?rf430frl153h -MULTILIB_MATCHES += mcpu?msp430=mmcu?rf430frl153h_rom -MULTILIB_MATCHES += mcpu?msp430=mmcu?rf430frl154h -MULTILIB_MATCHES += mcpu?msp430=mmcu?rf430frl154h_rom -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430c336 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430c337 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430e337 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f147 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f1471 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f148 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f1481 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f149 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f1491 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f1610 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f1611 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f1612 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f167 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f168 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f169 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f423 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f423a -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f425 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f425a -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f427 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f427a -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f447 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f448 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f4481 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f449 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f4491 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430p337 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430afe221 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430afe222 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430afe223 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430afe231 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430afe232 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430afe233 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430afe251 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430afe252 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430afe253 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f233 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f2330 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f235 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f2350 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f2370 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f2410 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f247 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f2471 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f248 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f2481 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f249 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f2491 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430i2020 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430i2021 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430i2030 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430i2031 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430i2040 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430i2041 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430i2xxgeneric -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f4783 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f4784 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f4793 -MULTILIB_MATCHES += mcpu?msp430=mmcu?msp430f4794 - -# Add additional MCU matches like this: -# MULTILIB_MATCHES += mcpu?msp430x=mmcu?xxxxxxxxxx +# The correct multilib for a given mmcu is selected without the need for +# hard-coded data here, because DRIVER_SELF_SPECS will place the correct +# -mcpu option for a given mcu onto the command line. MULTILIB_EXCEPTIONS = mcpu=msp430/mlarge |