This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Re: Problems with port to Hitex HiCO.SH-4 board.
On Mon, 2003-07-21 at 11:27, Francois Retief wrote:
> /* construct digits into buffer in reverse order */
> if( n == 0 ) buf[bpos++] = '0';
> 8002797a: 00 ea mov #0,r10
> 8002797c: b8 2b tst r11,r11
> 8002797e: 2f 8f bf.s 800279e0 <_diag_write_long_num+0xa0>
> 80027980: 30 e1 mov #48,r1
> 80027982: 01 ea mov #1,r10
> 80027984: 10 2e mov.b r1,@r14
> else while( n != 0 )
> {
> cyg_ucount8 d = n % base;
> buf[bpos++] = digits[d];
> n /= base; <<<--- Expecting a DIV opcode here
> }
>
Odd. It looks like this whole 'while' loop has vanished! This could
certainly cause you problems later on. Try commenting out the 'else'
to make it look like this:
if( n == 0 ) buf[bpos++] = '0';
/*else*/ while( n != 0 )
{
cyg_ucount8 d = n % base;
buf[bpos++] = digits[d];
n /= base;
}
You might also try changing the optimization level from -O2 to be -O1.
--
Gary D. Thomas <gary.thomas@mind.be>
--
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss