avr-gcc-list
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[avr-gcc-list] optimizing multiplies with mixed sizes


From: Galen Seitz
Subject: [avr-gcc-list] optimizing multiplies with mixed sizes
Date: Fri, 27 Aug 2004 08:55:40 -0700

Has any work been done on optimizing multiplies involving mixed sizes?
It seems that gcc could do a better job.  The extra clr, mul, and add
are kind of painful to see.

galen



int
mul(unsigned char x, int y)
{
  return x * y;
}


avr-gcc-3.3.2 -g -O3 -Wall -mmcu=atmega48 -Wa,-ahls=foo.lst -c -o foo.o foo.c


   1:foo.c         **** int
   2:foo.c         **** mul(unsigned char x, int y)
   3:foo.c         **** {
  46 0000 AB01                  movw r20,r22
   4:foo.c         ****   return x * y;
  49 0002 9927                  clr r25
  50 0004 849F                  mul r24,r20
  51 0006 B001                  movw r22,r0
  52 0008 859F                  mul r24,r21
  53 000a 700D                  add r23,r0
  54 000c 949F                  mul r25,r20
  55 000e 700D                  add r23,r0
  56 0010 1124                  clr r1
  57 0012 CB01                  movw r24,r22
   5:foo.c         **** }
  61 0014 0895                  ret


reply via email to

[Prev in Thread] Current Thread [Next in Thread]