sse2/xmm сдвиг на разряд.

Тема в разделе "WASM.X64", создана пользователем newb, 4 мар 2009.

  1. newb

    newb New Member

    Публикаций:
    0
    Регистрация:
    4 июн 2008
    Сообщения:
    39
    существует команда сдвига на 8 разрядов... Хотелось бы узнать можно ли сдвинуть на 1 разряд. Спс.
     
  2. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    Команды поразрядного сдвига всего 16-байтного числа - нет, также как нет и сложения\вычитания и т.п., поскольку нет такого типа данных Int128, а есть только 8,4,2,1-байтные числа, упакованные в 16 байт.

    PS: К тому же до Core2 16-байтные XMM в процессорах хранились и обрабатывались частями по 8 байт (за 2 микрооперации)
     
  3. newb

    newb New Member

    Публикаций:
    0
    Регистрация:
    4 июн 2008
    Сообщения:
    39
    Придётся ломать теперь голову...

    Спасибо за ответ.
     
  4. Ustus

    Ustus New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2005
    Сообщения:
    834
    Адрес:
    Харьков
    Придется извращаться... :dntknw:
    чего-то типа
    Код (Text):
    1.     movdqa  xmm1, xmm0
    2.     psrlq   xmm1, 63
    3.     psllq   xmm0, 1
    4.     pslldq  xmm1, 8
    5.     por     xmm0, xmm1
    корявенько :dntknw: