реклама на сайте
подробности

 
 
> GCC-AVR Linux оптимизация, Вопрос по оптимизации кода
ZiB
сообщение Mar 4 2008, 15:12
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 122
Регистрация: 26-07-05
Из: Россия, Томск
Пользователь №: 7 109



Не могу добится нормальной оптимизации...
Код без оптимизации (для Atmega8)
Код
     282:    8d 85           ldd    r24, Y+13; 0x0d
     284:    99 27           eor    r25, r25
     286:    80 74           andi    r24, 0x40; 64
     288:    90 70           andi    r25, 0x00; 0
     28a:    00 97           sbiw    r24, 0x00; 0
     28c:    41 f0           breq    .+16     ; 0x29e
     28e:    a2 e3           ldi    r26, 0x32; 50
     290:    b0 e0           ldi    r27, 0x00; 0
     292:    e2 e3           ldi    r30, 0x32; 50
     294:    f0 e0           ldi    r31, 0x00; 0
     296:    80 81           ld    r24, Z
     298:    80 68           ori    r24, 0x80; 128
     29a:    8c 93           st    X, r24
     29c:    08 c0           rjmp    .+16     ; 0x2ae
     29e:    a2 e3           ldi    r26, 0x32; 50
     2a0:    b0 e0           ldi    r27, 0x00; 0
     2a2:    e2 e3           ldi    r30, 0x32; 50
     2a4:    f0 e0           ldi    r31, 0x00; 0
     2a6:    90 81           ld    r25, Z
     2a8:    8f e7           ldi    r24, 0x7F; 127
     2aa:    89 23           and    r24, r25
     2ac:    8c 93           st    X, r24

после оптимизации "висячая" команда (eor r25, r25) мне не нравится...
Код
  d0:    99 27           eor    r25, r25
  d2:    86 ff           sbrs    r24, 6
  d4:    02 c0           rjmp    .+4      ; 0xda
  d6:    5f 9a           sbi    0x0b, 7; 11
  d8:    01 c0           rjmp    .+2      ; 0xdc
  da:    5f 98           cbi    0x0b, 7; 11

Сишний код
Код
  if ((Data & 0x40) == 0x40) PORTD |= 0x80;
    else PORTD &= ~0x80;
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 21:31
Рейтинг@Mail.ru


Страница сгенерированна за 0.01519 секунд с 7
ELECTRONIX ©2004-2016