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.



Reply via email to