我应该同时查找 Intel 和 AMD x86 指令集参考以了解 CPUID 位的含义吗?

Should I look up both Intel and AMD x86 Instruction Set reference for CPUID bits meaning?

我是否应该同时查找 Intel 和 AMD x86 指令集参考以了解 CPUID 位的含义?

这让我很怀疑(来自Wikipedia):

ABM is only implemented as a single instruction set by AMD; all AMD processors support both instructions or neither. Intel considers POPCNT as part of SSE4.2, and LZCNT as part of BMI1. POPCNT has a separate CPUID flag; however, Intel uses AMD's ABM flag to indicate LZCNT support (since LZCNT completes the ABM)

问题只是CPUID的意思。

我认为指令本身要么实现要么不实现,但操作码没有明确的含义,所以对于指令本身,我想一个参考就足够了。关于性能预期,确保确切的 CPU 系列很重要,而不仅仅是供应商。

ABM 只是 2 条指令,popcntlzcnt。所有设置该位的 Intel CPU 都支持。这就是为什么他们写“(因为 LZCNT 完成 ABM)”。

你可以只检查那个位而不用关心供应商。

我认为理论上供应商不想承诺所有其他供应商都将以相同的方式使用功能位,但实际上,ISA 扩展的所有功能位都是通用的,并且无论供应商如何,都具有相同的含义。 (我觉得。)