Как использовать CPUID в качестве инструкции сериализации?

CPUID может использоваться как инструкция сериализации, как описано Вот а также Вот. Каков минимальный / самый простой синтаксис asm для его использования в C ++?

// Is that enough?
// What to do with registers and memory?
// Is volatile necessary?
asm volatile("CPUID":::);

2

Решение

Есть ли причина, по которой вы не используете операции забора? Если целью является сериализация части кода, вы можете сделать что-то вроде

    asm __volatile__ (
" mfence \n"" lfence \n");
Your code
asm __volatile__ (
" mfence \n"" lfence \n");
2

Другие решения

Других решений пока нет …