[avr-gcc-list] dev and mod may not be optimized

2007-12-11 Thread Nathan Moore
I appologize if I'm misunderstanding something about the code that is being produced, but while auditing some code to try to make some code smaller I noticed that __udivmodqi4 is being called twice to generate code for: unsigned char a, b, c; c = some_input_function(); LABEL:

AW: [avr-gcc-list] dev and mod may not be optimized

2007-12-11 Thread Haase Bjoern (PT/EMM1)
The source of this problem is a deeply buried internal issue of the RTL handling within the compiler. Description of the internal problem: The expand pass generates strange RTL sequences refering to hard registers for the div and mod operations and uses specific insn RTL for calling the

Re: [avr-gcc-list] dev and mod may not be optimized

2007-12-11 Thread Eric Pasquier
Just a correction : div() take 2 parameters : div_t t; t=div(c, 10); a=t.quot; b=t.rem; Eric. - Original Message - From: Albert Andras To: avr-gcc-list@nongnu.org Sent: Tuesday, December 11, 2007 4:16 PM Subject: Re: [avr-gcc-list] dev and mod may

Re: [avr-gcc-list] dev and mod may not be optimized

2007-12-11 Thread Dmitry K.
On Wednesday 12 December 2007 01:16, Albert Andras wrote: - Original Message - From: Nathan Moore [EMAIL PROTECTED] unsigned char a, b, c; c = some_input_function(); LABEL: a = c/10; b = c%10; ... * LABEL: mov r24,r18 ldi

RE: [avr-gcc-list] dev and mod may not be optimized

2007-12-11 Thread Weddington, Eric
-Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] org] On Behalf Of Dmitry K. Sent: Tuesday, December 11, 2007 3:44 PM To: avr-gcc-list@nongnu.org Cc: Nathan Moore Subject: Re: [avr-gcc-list] dev and mod may not be optimized Alas, the usage of div()

Re: [avr-gcc-list] dev and mod may not be optimized

2007-12-11 Thread Gre7g Luterman
--- Dmitry K. [EMAIL PROTECTED] wrote: Alas, the usage of div() function is more space and more time expansive. The reason is that div() uses an another function: __divmodhi4(), i.e. 16-bits. Compare two programs: prog1: 150 bytes, 238 clocks prog2: 212 bytes, 316 clocks Well if

Re: [avr-gcc-list] dev and mod may not be optimized

2007-12-11 Thread Dmitry K.
On Wednesday 12 December 2007 09:29, Weddington, Eric wrote: Should we implement 2 (or 3) div functions then in avr-libc? 8, 16, and 32 bit? Possible, yes. Today the libgcc labrary contains 6 division functions (8, 16, 32 bits, signed and unsigned), but Avr-libc includes only 2 links (div,

RE: [avr-gcc-list] dev and mod may not be optimized

2007-12-11 Thread Weddington, Eric
-Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] org] On Behalf Of Dmitry K. Sent: Tuesday, December 11, 2007 5:37 PM To: avr-gcc-list@nongnu.org Subject: Re: [avr-gcc-list] dev and mod may not be optimized On Wednesday 12 December 2007 09:29,