16+
Воскресенье
24 февраля
Вход |Карта сайта | |Upload |codebook | PARTS

 О смысле всего сущего 0xFF

 Средства и методы разработки

 Мобильная и беспроводная связь

 Блошиный рынок Объявления

caxapa

Микроконтроллеры ARM 

AVR PIC MSP PLD,FPGA,DSP 

Кибернетика Технологии 

Схемы, платы, компоненты 

Средства и методы разработки

 
   Новая тема Правила Регистрация Поиск »» Архив
Вернуться в конференциюТопик полностью
йцукен  (11.02.2019 23:02) , в ответ на Вопрос - а насколько компиляторы умеют эффективно это использовать? Или все на intrinsic надо писать? автор: Evgeny_CD
Вот код из "уточнённого вопроса", скомпилированный ИАРом (medium optimization). Видно, что ИАР использует UBFX и BFI. 
     15          void foo()
     16          {
     17          	bbb.a0 = bbb.a1 + bbb.a2;
   \                     foo: (+1)
   \        0x0   0x....             LDR.N    R1,??DataTable4
   \        0x2   0x6808             LDR      R0,[R1, #+0]
   \        0x4   0xF3C0 0x0280      UBFX     R2,R0,#+2,#+1
   \        0x8   0xF3C0 0x00C0      UBFX     R0,R0,#+3,#+1
   \        0xC   0x1882             ADDS     R2,R0,R2
   \        0xE   0x6808             LDR      R0,[R1, #+0]
   \       0x10   0xF362 0x0001      BFI      R0,R2,#+0,#+2
   \       0x14   0x6008             STR      R0,[R1, #+0]
     18          	if ( bbb.a1 != bbb.a2 )
   \       0x16   0x4602             MOV      R2,R0
   \       0x18   0xF3C2 0x0080      UBFX     R0,R2,#+2,#+1
   \       0x1C   0xF3C2 0x03C0      UBFX     R3,R2,#+3,#+1
   \       0x20   0x4298             CMP      R0,R3
   \       0x22   0xD00D             BEQ.N    ??foo_0
     19          	{
     20          		bbb.a0 ++;
   \       0x24   0x0890             LSRS     R0,R2,#+2
   \       0x26   0x1C52             ADDS     R2,R2,#+1
   \       0x28   0xF002 0x0203      AND      R2,R2,#0x3
   \       0x2C   0xEA52 0x0280      ORRS     R2,R2,R0, LSL #+2
   \       0x30   0x600A             STR      R2,[R1, #+0]
     21          		bbb.a0 = ccc.a5 >> 1;
   \       0x32   0x0892             LSRS     R2,R2,#+2
   \       0x34   0x6848             LDR      R0,[R1, #+4]
   \       0x36   0xF3C0 0x10C0      UBFX     R0,R0,#+7,#+1
   \       0x3A   0xEA50 0x0282      ORRS     R2,R0,R2, LSL #+2
   \       0x3E   0x600A             STR      R2,[R1, #+0]
     22          	}
     23          }
 [x][x][x][x][x][x] [x][x][x][x][x][x][x][x]

Тема выделяется по переводу строки или автоматом

 

Имя


Регистрация позволит вам редактировать и перемещать ваши сообщения и прикреплять к ним файлы.
 
Символы: á é ó ú ý « »
Главная | Карта сайта | О проекте | Проекты | Файлообменник | Регистрация | Вебмастер | RSS
Лето 7527 от сотворения мира. При использовании материалов сайта ссылка на caxapу обязательна.
MMI © MMXIX