CPUID может использоваться как инструкция сериализации, как описано Вот а также Вот. Каков минимальный / самый простой синтаксис asm для его использования в C ++?
// Is that enough?
// What to do with registers and memory?
// Is volatile necessary?
asm volatile("CPUID":::);
Есть ли причина, по которой вы не используете операции забора? Если целью является сериализация части кода, вы можете сделать что-то вроде
asm __volatile__ (
" mfence \n"" lfence \n");
Your code
asm __volatile__ (
" mfence \n"" lfence \n");
Других решений пока нет …