The attached patch series improves MSP430 hardware multiply support, by improving code generation when setting up the 16-bit and 32-bit hardware multiply functions, and adding a 64-bit hardware multiply library function for devices that have a 32-bit hardware multiplier.
Successfully regtested GCC and G++ testsuites for: msp430-sim msp430-sim/-mcpu=msp430 msp430-sim/-mhwmult=f5series msp430-sim/-mhwmult=f5series/-mlarge/-mdata-region=either/-mcode-region=either msp430-sim/-mlarge msp430-sim/-mlarge/-mdata-region=either/-mcode-region=either Additionally regtested GCC execute.exp for: msp430-sim/-mhwmult=16bit msp430-sim/-mhwmult=32bit msp430-sim/-mhwmult=f5series msp430-sim/-mhwmult=none msp430-sim/-mlarge/-mcode-region=either/-mdata-region=either/-mhwmult=16bit msp430-sim/-mlarge/-mcode-region=either/-mdata-region=either/-mhwmult=32bit msp430-sim/-mlarge/-mcode-region=either/-mdata-region=either/-mhwmult=f5series msp430-sim/-mlarge/-mcode-region=either/-mdata-region=either/-mhwmult=none Ok for trunk? Jozef Lawrynowicz (2): MSP430: Add mulhi, mulsi and {u,}mulsidi3 expanders MSP430: Add 64-bit hardware multiply support gcc/config/msp430/msp430.md | 61 ++++++++++++++++++++++-- libgcc/config/msp430/lib2hw_mul.S | 77 +++++++++++++++++++++++++++++-- libgcc/config/msp430/lib2mul.c | 52 +++++++++++++++++++++ libgcc/config/msp430/t-msp430 | 5 ++ 4 files changed, 186 insertions(+), 9 deletions(-) -- 2.29.2