From: Peter B. <pa...@pe...> - 2010-04-27 23:13:10
|
The patch is too big for this mailing list. I've uploaded a copy to: http://sourceforge.net/projects/mspgcc4/files/Patches/msp430-r4.20100210-chipcat.patch It's also available within the SRPM. Peter On Tue, Apr 27, 2010 at 6:06 PM, Peter Bigot <pa...@pe...> wrote: > Yes, it is probably due to hardware multiply. I can replicate the problem > on an older install, but it's fixed with one built from the SRPMs I posted > which include a patch for hardware multiply. I haven't had time to > integrate that with the mainline developers; a copy is attached. > > Peter > > > On Tue, Apr 27, 2010 at 5:46 PM, Anthony Asterisk < > ant...@gm...> wrote: > >> OH BTW, this is with mspgcc4 >> >> msp430-gcc -v >> Using built-in specs. >> Target: msp430 >> Configured with: >> /home/user/mspgcc4/build/gcc-4.4.3-build/../gcc-4.4.3/configure >> --prefix=/home/user/contiki-2.x/platform/castlerock/tools/msp430-gcc-4.4.3 >> --target=msp430 --enable-languages=c,c++ >> --with-pkgversion=MSPGCC4_r4-20100210 : (reconfigured) >> /home/user/mspgcc4/build/gcc-4.4.3-build/../gcc-4.4.3/configure >> --prefix=/home/user/contiki-2.x/platform/castlerock/tools/msp430-gcc-4.4.3 >> --target=msp430 --enable-languages=c,c++ >> --with-pkgversion=MSPGCC4_r4-20100210 : (reconfigured) >> /home/user/mspgcc4/build/gcc-4.4.3-build/../gcc-4.4.3/configure >> --prefix=/home/user/contiki-2.x/platform/castlerock/tools/msp430-gcc-4.4.3 >> --target=msp430 --enable-languages=c,c++ >> --with-pkgversion=MSPGCC4_r4-20100210 >> Thread model: single >> gcc version 4.4.3 (MSPGCC4_r4-20100210) >> >> >> AND >> >> msp430-libc-20100207 >> >> >> >> >> Anthony Asterisk wrote: >> >>> I just tried to use strotl() on the msp430f5437. It failed and I tracked >>> the problem down to a problem with multiply. Check this out: >>> >>> >>> register unsigned long int tmp1 = i; >>> unsigned long int tmp2 = i; >>> long int tmp3 = i; >>> int tmp4 = i; >>> printf("i %lx tmp1 %lx tmp2 %lx tmp3 %lx tmp4 >>> %x\n",i,tmp1,tmp2,tmp3,tmp4); >>> tmp1 = tmp1 * base; >>> tmp2 = tmp2 * base; >>> tmp3 = tmp3 * base; >>> tmp4 = tmp4 * base; >>> printf("i %lx tmp1 %lx tmp2 %lx tmp3 %lx tmp4 >>> %x\n",i,tmp1,tmp2,tmp3,tmp4); >>> >>> i 0 tmp1 0 tmp2 0 tmp3 0 tmp4 0 >>> i 0 tmp1 3fff3fff tmp2 3fff3fff tmp3 3fff3fff tmp4 0 >>> >>> >>> Any advice how to proceed with debugging this? Is this a problem with >>> usage of hardwarde multiplier? >>> >> >> > |