I have
# avr-gcc --version
avr-gcc (GCC) 4.3.2
Copyright (C) 2008 Free Software Foundation, Inc.
...

I want to use the ATmega128 and in/out instructions for registers below
0x40.  

# avr-gcc   -mmcu=atmega128  -c -o 4x40-lcd.o xxx.c
# avr-gcc    -mmcu=atmega128  4x40-lcd.o -o xxx.elf  -lc
# avr-objdump   -d xxx.elf
...
804:    a2 e3           ldi     r26, 0x32       ; 50
 806:   b0 e0           ldi     r27, 0x00       ; 0
 808:   e2 e3           ldi     r30, 0x32       ; 50
 80a:   f0 e0           ldi     r31, 0x00       ; 0
 80c:   80 81           ld      r24, Z
 80e:   8f 70           andi    r24, 0x0F       ; 15
 810:   80 62           ori     r24, 0x20       ; 32
 812:   8c 93           st      X, r24
...

This can be done with four instructions, in, andi, ori, and, out.  And,
6 fewer clocks.

How do I force avr-gcc to use in and out instructions on the ATmega128?

tomdean




_______________________________________________
AVR-GCC-list mailing list
AVR-GCC-list@nongnu.org
http://lists.nongnu.org/mailman/listinfo/avr-gcc-list

Reply via email to