Оптимизация в Long Mode

Тема в разделе "WASM.ZEN", создана пользователем dinoweb, 23 ноя 2006.

  1. dinoweb

    dinoweb Дмитрий

    Публикаций:
    0
    Регистрация:
    12 окт 2005
    Сообщения:
    129
    Адрес:
    Россия. Красноярск
    Такой вопрос: стоит ли в длинном режиме использовать регистры fs и gs, или быстрее будет вычислять нужные адреса "вручную". И если так, то в каких случаях их использование может быть оправдано?
     
  2. gilg

    gilg New Member

    Публикаций:
    0
    Регистрация:
    19 май 2005
    Сообщения:
    527
    А для каких целей ты их собираешься использовать? Если для получения информации из TEB, то лучше использовать - меньше вопросов с совемстимостью с будущими системами и сервис-паками будет
     
  3. dinoweb

    dinoweb Дмитрий

    Публикаций:
    0
    Регистрация:
    12 окт 2005
    Сообщения:
    129
    Адрес:
    Россия. Красноярск
    Нет, windows тут непричем.
    Вот например:
    Код (Text):
    1. ; r14 или gs.base = 0x10000000000
    2. lea rax, [rax+r14]
    3. mov rax,[rax+r8]
    4.  
    5. ; Или так
    6. mov rax,[gs:rax+r8]
    На сколько я знаю, использование префиксов сегмента в pm замедляет расшифровку и выполнение команд, а в первом варианте цепочка зависимости, от которой в конкретном случае трудно избавиться. т.е. между lea и mov нечего добавить. Что лутьше?
     
  4. gilg

    gilg New Member

    Публикаций:
    0
    Регистрация:
    19 май 2005
    Сообщения:
    527
    В данном конкретном случае первый вариант медленнее и код длиннее