mirror of git://gcc.gnu.org/git/gcc.git
* common/config/msp430/msp430-common.c (msp430_handle_option):
Pass both -mmcu and -mcpu on to the back end if they are both
defined.
* config/msp430/msp430.c (hwmult_name): New function.
(msp430_option_override): If an unrecognised MCU name is
detected only warn if the user has not provided suitable
-mhwmult and -mcpu options. Use msp430_warn_mcu to control
warning messages. Generate warnings about conflicts between
-mmcu and -mcpu and -mhwmult options.
If neither -mcpu nor -mmcu have been specified but -mhwmult=
f5series has the select the 430X isa.
(msp430_no_hwmult): If -mmcu has not been specified and
msp430_hwmult_type is AUTO then return true.
* config/msp430/msp430.h (EXTRA_SPEC_FUNCTIONS): Define.
(LIB_SPEC): Add hardware multiply library selection.
* config/msp430/t-msp430: Delete hardware multiply multilibs.
Add rule to build driver-msp430.o
* config/msp430/driver-msp430.c: New file.
* config/msp430/msp430.opt (warn-mcu): New option.
* doc/invoke.texi: Update description of -mhwmult=auto.
Document -mwarn-mcu option.
tests * gcc.target/msp430/msp_abi_div_funcs.c: New test.
* gcc.target/msp430/mul_main.h: New test support file.
* gcc.target/msp430/mul_none.c: New test.
* gcc.target/msp430/mul_16bit.c: New test.
* gcc.target/msp430/mul_32bit.c: New test.
* gcc.target/msp430/mul_f5.c: New test.
libgcc * config/msp430/mpy.c (__mulhi3): Use a faster algorithm.
Allow for the second argument being negative.
* config.host (extra_parts): Define for MSP430. Create separate
libraries for each of the hardware multiply formats.
* config/msp430/lib2hw_mul.S: Build only the multiply routines
that are needed.
* config/msp430/lib2mul.c: Likewise.
* config/msp430/t-msp430 (LIB2ADD): Remove lib2hw_mul.S.
Add rules to build hardware multiply libraries.
* config/msp430/lib2divSI.c: (__mspabi_divlu): Alias for
__mspabi_divul function.
(__mspabi_divllu): New stub function.
From-SVN: r231286
|
||
|---|---|---|
| .. | ||
| config | ||
| soft-fp | ||
| ChangeLog | ||
| Makefile.in | ||
| config.host | ||
| config.in | ||
| configure | ||
| configure.ac | ||
| crtstuff.c | ||
| dfp-bit.c | ||
| dfp-bit.h | ||
| divmod.c | ||
| empty.mk | ||
| emutls.c | ||
| enable-execute-stack-empty.c | ||
| enable-execute-stack-mprotect.c | ||
| find-symver.awk | ||
| fixed-bit.c | ||
| fixed-bit.h | ||
| fixed-obj.mk | ||
| floatunsidf.c | ||
| floatunsisf.c | ||
| floatunsitf.c | ||
| floatunsixf.c | ||
| fp-bit.c | ||
| fp-bit.h | ||
| gbl-ctors.h | ||
| gen-fixed.sh | ||
| generic-morestack-thread.c | ||
| generic-morestack.c | ||
| generic-morestack.h | ||
| gstdint.h | ||
| gthr-posix.h | ||
| gthr-single.h | ||
| gthr.h | ||
| libgcc-std.ver.in | ||
| libgcc2.c | ||
| libgcc2.h | ||
| libgcov-driver-system.c | ||
| libgcov-driver.c | ||
| libgcov-interface.c | ||
| libgcov-merge.c | ||
| libgcov-profiler.c | ||
| libgcov-util.c | ||
| libgcov.h | ||
| memcmp.c | ||
| memcpy.c | ||
| memmove.c | ||
| memset.c | ||
| mkheader.sh | ||
| mkmap-flat.awk | ||
| mkmap-symver.awk | ||
| offloadstuff.c | ||
| shared-object.mk | ||
| siditi-object.mk | ||
| static-object.mk | ||
| sync.c | ||
| udivmod.c | ||
| udivmodsi4.c | ||
| unwind-arm-common.inc | ||
| unwind-c.c | ||
| unwind-compat.c | ||
| unwind-compat.h | ||
| unwind-dw2-fde-compat.c | ||
| unwind-dw2-fde-dip.c | ||
| unwind-dw2-fde.c | ||
| unwind-dw2-fde.h | ||
| unwind-dw2.c | ||
| unwind-dw2.h | ||
| unwind-generic.h | ||
| unwind-pe.h | ||
| unwind-seh.c | ||
| unwind-sjlj.c | ||
| unwind.inc | ||
| vtv_end.c | ||
| vtv_end_preinit.c | ||
| vtv_start.c | ||
| vtv_start_preinit.c | ||