[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[avr-gcc-list] Using in/out Instructions with ATmega128
From: |
Thomas D. Dean |
Subject: |
[avr-gcc-list] Using in/out Instructions with ATmega128 |
Date: |
Mon, 04 May 2009 15:36:55 -0700 |
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