CPUID可用作here和here所述的序列化指令。在C ++中以这种方式使用它的最小/最简单的asm语法是什么?
// Is that enough?
// What to do with registers and memory?
// Is volatile necessary?
asm volatile("CPUID":::);
答案 0 :(得分:2)
您是否有理由不使用围栏操作?如果目标是序列化一段代码,您可以执行类似
的操作 asm __volatile__ (
" mfence \n"
" lfence \n"
);
Your code
asm __volatile__ (
" mfence \n"
" lfence \n"
);