----- Ursprüngliche Nachricht -----
Von: JMGross
Gesendet am: 02 Okt 2009 14:15:40

some additional information:

>> The main branch in general is also broken for 54XX: the wrong registers
>> definitions in the headers (some guys here sent the patches, but they
>> are not in CVS so far). Hardcoded and wrong MPY-s registers and I could
>> not patch the libraries to produce correct code for multiplication.

I just tested the MPY and to my surprise it works at least partially 
out-of-the-box.

16x16 bit unsigned operations use correct inline code for the MPY16 part of the 
MPY32, with 16 and 32 bit result.

32x32 bit unsigned operations are seemingly broken, as they use the library 
__umulsi3hw function, which improperly uses the wrong MPY address and MPY16 
functionality.

64x64 bit unsigned operations work, as they don't use the hardware MPY at all 
(while they could on the MPY32).

I didn't test signed, signed/unsigned, 8 bit and mixed 8/16/32/64 bit 
operations yet.

Since the library functions are weak, you can easily define your own and 
include it. I just tested it with the one above and it works pretty fine.
Still a bit work until all cases are covered, but nothing that couldn't be 
fixed in a few days. Without work on the compiler itself (for now).

Things are looking really promising.

JMGross


Reply via email to