xor на mmx

Тема в разделе "WASM.ASSEMBLER", создана пользователем Magnum, 12 июл 2008.

  1. Magnum

    Magnum New Member

    Публикаций:
    0
    Регистрация:
    29 дек 2007
    Сообщения:
    925
    Переписал простую процедуру ХОР-а на ммх

    Теоретически должен быть выиграш в скорости

    А на практике на виртуалке изредка падает программа как раз на юзании ммх-а

    Дело не в коде

    Лишнее перетереть никак не мог

    Программа выдает ошибки либо о переполнении фпу либо о недопустимости операций

    Подскажите, в чем дело и как решить проблему?
     
  2. n0hack

    n0hack New Member

    Публикаций:
    0
    Регистрация:
    3 июн 2008
    Сообщения:
    71
    Код, пожалуйста.
     
  3. DEEP

    DEEP Андрей

    Публикаций:
    0
    Регистрация:
    27 апр 2008
    Сообщения:
    491
    Адрес:
    г. Владимир
    ох сомневаюсь. Вся петрушка в том, что ММХ пользует сопроцессор. Если ты параллельно с ММХ командами пользуешь FPU - неминуемо вылезут глюки. Так что
    +1.
     
  4. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    MMX используют регистры фпу, поэтому в конце MMX-процедуры нужно обязательно вызывать emms для очистки стека фпу
     
  5. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    я вот как раз сейчас читал про emms и вот чо подумал, а нафиг она нужна? ведь перед вычеслениеми FPU вызывается finit которая обнуляет регистры и сбрасывает флаги состояния.
     
  6. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    В нормальных (профессиональных) прогах finit вызывается один раз при старте потока и затем размаскируются исключения (плюс можно понизить точность вычислений до double или float если не нужна "суперточность"). А тыканием finit в каждую процедуру занимаются только ньюбы и доморощенные писаки типа автора fpulib для масма ;)
     
  7. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    ok понятно =)