In message <bnl8gi$14a$ XXXX@XXXXX.COM >
The Norcroft compiler (as used in ARM's ADS) can produce the multiply
instructions (but not the multiply-accumulate, AFAIK).
/* assuming <stdint.h> types defined*/
int32_t a, b;
c = (int64_t) a * b;
Even though that promotes a (and hence b) to int64_t and then does an
apparently 64 x 64 multiplication, the compiler notes that the operands have
just been converted from int32_t and uses a signed 32 x 32 -> 64 multiply
It'll do that for signed and unsigned cases, and it will also produce
32 x 64 and 64 x 64 multiply code inline using the MULL instructions if
required (maybe only if -Ospace, I'm not sure).
Kevin Bracey, Principal Software Engineer
Tematic Ltd Tel: +44 (0) 1223 503464
182-190 Newmarket Road Fax: +44 (0) 1223 503458
Cambridge, CB5 8HE, United Kingdom WWW: http://www.yqcomputer.com/