Here a summary about shortcommings with HW multiplication. (1) and (2) for new release, (3) and (4) for prior release:
(1) With new installer the Linker does not find the floating point library specified by option -lfp. Workaround: copy the libfp.a file from mspgcc/msp430/lib/msp1 to the mspgcc/msp430/lib directory. (This however might cause troubles with new msp2 devices.) (2) In the new windows installer release, no code that uses the HW Multiplier is generated, even when -mforce-hwmul is used as linker flag. These features work with the prior windows installer release. Problems here: (3) The -mnoint-hwmul does not work as expected. The linker always generates code without dint/eint blocking commands wrapping the hw multiplier mov commands, even if this flag is NOT given. So there is no way to tell the compiler/linker to make HW Multiplier code reentrant. (4) The code that uses the HW Multiplier utilizes a 64 x 64 HW Multiplication for single precision floating point (24 bit mantissa). Needless to say, 32 x 32 would give a certain speedup to HW supported single precision floating point multiplication. It would be easy to write a assembly program for HW mult that is reentrant. The single precision HW Mult assembly program from TI can be used as a guide in order to write a 32x32 Mult programm that is reentrant. Best regards, Volker Schindler.
