Придумай инструкцию x86!

Тема в разделе "WASM.HEAP", создана пользователем alpet, 22 июн 2005.

  1. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    alpet

    Ну это другое дело, раз rsel заранее знает с каким регистром работать. Только я не понял какой моп должен проверять условие и устанавливать тег (и куда кстати) - сам rsel или еще один спец-моп после test ?

    И еще остается вопрос с ретайрментом регистров RF[23],RF[24] - вроде как это обычные инструкции и мы имеем право например поставить на них брикпойнт в отладчике, а нам проц вместо вектора покажет значение eax на предыдущей операции :dntknw:
     
  2. alpet

    alpet Александр

    Публикаций:
    0
    Регистрация:
    21 сен 2004
    Сообщения:
    1.221
    Адрес:
    Russia
    leo

    rsel - специальный моп, по идее генерится после инструкции с префиксом условного выполнения, но должен вымещатся до тех пор пока не потребуется результат. В данном случае он попадает в трассу команды "mov [edi], eax". Как инвариант - моп (или даже не совсем моп) всегда присутствует во всех не сдвоенных инструкциях, но имхо это замедлит процесс выполнения кода. Тег выставляется, в идеале сразу после сравнения - не зависимо от этого мопа.



    Насчет отладки я не подумал. Если сделать rsel как явную инструкцию - все будет просто, при отладке будет всегда видно явное значение, до ее выполнения. Альтернатива - оставить rsel скрытым мопом, но обрабатывать перед вызовом обработчиков прерываний int 1, int3 и исключения GP# || PF# принудительным выполнением rsel (или вообще любого аппаратного прерывания). Судя по всему - второе будет единственно оптимальным вариантом.
     
  3. semen

    semen New Member

    Публикаций:
    0
    Регистрация:
    8 июн 2004
    Сообщения:
    334
    Адрес:
    Russia
    [шепотом, тихо смываясь]пойду ка я отсюда...[/шепотом, тихо смываясь]
     
  4. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    [шепотом, шоб модераторы не услышали]semen, куда ты, неужели о смысле жизни рассуждать или о физических парадоксах и софизмах...[/шепотом, шоб модераторы не услышали]

    [andante, moderato]Ёшкин кот, куды мир катицца[/грозный взгляд в сторону миравога имперализма]
     
  5. alpet

    alpet Александр

    Публикаций:
    0
    Регистрация:
    21 сен 2004
    Сообщения:
    1.221
    Адрес:
    Russia
    [огляделся, почесал затылок, и пошел дальше отсыпаться]
     
  6. alpet

    alpet Александр

    Публикаций:
    0
    Регистрация:
    21 сен 2004
    Сообщения:
    1.221
    Адрес:
    Russia
    Понадобилась инструкция двухнаправленного сдвига. Вот описание ее:

    shft r8-r64/m8-m64, const r8/imm8

    В отличии от традиционных сдвигов - направление определяется по знаку счетчика - в случае отрицательных чисел сдвиг выполняется вправо, иначе влево.



    Расширение операции - маскировка и сдвиг, удобна для работы с битовыми полями, для извлечения нужных битов:

    mskshft r8-r64/m8-m64, const r8-r64, const r8/imm8

    Алгоритм:

    and param1, param2

    <font color="blue]#if param3 > 0</font><!--color-->

    shl param1, param3

    <font color="blue]#else</font><!--color-->

    shr param1, param3

    <font color="blue]#eif</font><!--color-->
     
  7. alpet

    alpet Александр

    Публикаций:
    0
    Регистрация:
    21 сен 2004
    Сообщения:
    1.221
    Адрес:
    Russia
    В "Компьютерре" от 11.10.2005 (#609) была опубликована неплохая статья об архитектуре современных камней. Как оказалось условные инструкции, и параллельное выполнение разных веток(инвариантов) кода, уже реализовано соответственно в ARM и Itanium. Видимо смысл прорабатывать это направление имеется.
     
  8. alpet

    alpet Александр

    Публикаций:
    0
    Регистрация:
    21 сен 2004
    Сообщения:
    1.221
    Адрес:
    Russia
    Оказывается большая часть идей уже давно реализованна в разном железе - например два стековых указателя используются в Motorola 6809. Что мешало пойти по этому пути Интел в создании x86 - непонятно...

    Вот только с длинными регистрами пока еще не связывался, во всяком случае упоминания о таких архитектурах я не нашел. Наверно когда количество ядер на процессор станет слишком большим, начнут искать возможности использования их избыточной производительности.
     
  9. Folk Acid

    Folk Acid New Member

    Публикаций:
    0
    Регистрация:
    23 авг 2005
    Сообщения:
    432
    Адрес:
    Ukraine
    Меня давно мучает вопрос: присутствует ли в современных процессорах секретная инструкция, сжикающая процессор?
     
  10. ProgramMan

    ProgramMan New Member

    Публикаций:
    0
    Регистрация:
    13 янв 2004
    Сообщения:
    263
    Folk Acid, естетсвенно да.

    Её код 90h
     
  11. alpet

    alpet Александр

    Публикаций:
    0
    Регистрация:
    21 сен 2004
    Сообщения:
    1.221
    Адрес:
    Russia
    Folk Acid

    В процессорах врядли, но иногда сжечь их позвляет чипсет - достаточно выставить частоту и напряжения ядра по максимуму, и загрузить процессор на 100%. Если кулер слабый и аппаратной защиты от перегрева нет, скорее всего проц выйдет из строя попутно расплавив сокет.
     
  12. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    alpet

    Чаго мудрить ACPI изучаешь и будет тебе Армагедец, безо всякой нагрузки!
     
  13. 3ahyga

    3ahyga New Member

    Публикаций:
    0
    Регистрация:
    28 фев 2006
    Сообщения:
    24
    Адрес:
    Стольный град Москов
    Было бы неплохо ввести условный префикс (как lock repz, repnz) ecc - Execute if cc!
     
  14. alpet

    alpet Александр

    Публикаций:
    0
    Регистрация:
    21 сен 2004
    Сообщения:
    1.221
    Адрес:
    Russia
    3ahyga

    Это активно обсуждалось на большей части топа. Специалисты в каменных делах решили что не очень-то это надо. Вобщем вооплощение такой функциональности может быть интересно только для программистов - на уровне железо оно ничего особо неоптимизирует. Хотя по идее - было бы неплохо иметь функцию условного вызова, поскольку в доработке это не особенно сложно, а код позволит писать несколько более компактный.
     
  15. NoResponse

    NoResponse New Member

    Публикаций:
    0
    Регистрация:
    28 дек 2005
    Сообщения:
    89
    Старая тема, но интересная... поднимем

    яб добавил в mmx нечто вроде psrl[w,d,q], psll[w,d,q], только что бы источник влиял не на все, а по отдельности...

    hzpsllw 0003000300030003h, 0004000300020001 ;= 00300018000C0006h
    hzpsrld 1010101010101010h, 0000000300000006 ;= 0001010100000001h
     
  16. Paguo_86PK

    Paguo_86PK Руслан

    Публикаций:
    0
    Регистрация:
    8 окт 2007
    Сообщения:
    911
    Адрес:
    Ташкент
    У... Два годика прошло...

    Когда в процессорах уже будет поддержка регулярки!?
    В x86-ых ввели допотопные XLAT REPcc SCAS STOS CMPS LODS и всё ещё при царе горохе.
    Ни ассициативных массивов не поддерживается, ничего. Чем всякие MMX/3DNow! регулярки куда важней на серверах и в переводчиках.
     
  17. SadKo

    SadKo Владимир Садовников

    Публикаций:
    8
    Регистрация:
    4 июн 2007
    Сообщения:
    1.610
    Адрес:
    г. Санкт-Петербург
    Более жирного троллинга я ещё не видел.
     
  18. Dian

    Dian Member

    Публикаций:
    0
    Регистрация:
    19 июн 2008
    Сообщения:
    222
    "Совершенство достигается, не тогда, когда нечего добавить, а когда нечего убрать"
     
  19. Paguo_86PK

    Paguo_86PK Руслан

    Публикаций:
    0
    Регистрация:
    8 окт 2007
    Сообщения:
    911
    Адрес:
    Ташкент
    А кто говорит о совершенстве?
    Эволюция !== Совершенство
     
  20. Dian

    Dian Member

    Публикаций:
    0
    Регистрация:
    19 июн 2008
    Сообщения:
    222
    Это смотря в каком направлении "эволюция"