вторник, 21 июня 2011 г.

LFENCE vs XRSTOR

а вот например правя сегодня во все дыры udis86 наткнулся на чудесное:
lfence - 0F AE /5
xrstor - 0F AE /5
кажется от нас что-то скрывают (c)

Update: в доке от Intel сказано ровно то же самое. Опыты однако показали что правильно должно быть примерно так:
lfence - 0F AE /5 /mod=11 с любым /rm. Итого этой инструкции 8 различных opcodes
xrstor - 0F AE /5 /mod=!11
почему mod не должен быть равен 11 я так и не вкурил, но иначе оно не работает

6 комментариев:

  1. читайте правильные доки от интела (хотя даже в них уйма очепяток и недосказанностей)
    253667-038, p4-522
    0F AE /5 XRSTOR mem
    откуда и вытекает mod!=11

    ОтветитьУдалить
  2. означает ли это что /rm у lfence может быть любым ?

    ОтветитьУдалить
  3. ты скажи лучше - у тебя avx instruction set поддерживается ?

    ОтветитьУдалить
  4. в настоящий момент нет,
    думаешь - надо ?

    ОтветитьУдалить
  5. теоретически один камень уже доступен
    yasm 1.1.0 & vs2010 даже умеют генерить код для него например

    ОтветитьУдалить