Extra documentation.
Some other reserved bits are repurposed. Also explicitly mention that
bit 20 is zero (formerly RC4_CHAR), so it's not accidentally repurposed
later.
Change-Id: Idc4b32efe089ae7b7295472c4488f75258b7f962
Reviewed-on: https://boringssl-review.googlesource.com/5432
Reviewed-by: Adam Langley <agl@google.com>
diff --git a/include/openssl/cpu.h b/include/openssl/cpu.h
index 83ec473..08dbae0 100644
--- a/include/openssl/cpu.h
+++ b/include/openssl/cpu.h
@@ -77,14 +77,20 @@
*
* Index 0:
* EDX for CPUID where EAX = 1
+ * Bit 20 is always zero
+ * Bit 28 is adjusted to reflect whether the data cache is shared between
+ * multiple logical cores
* Bit 30 is used to indicate an Intel CPU
* Index 1:
* ECX for CPUID where EAX = 1
+ * Bit 11 is used to indicate AMD XOP support, not SDBG
* Index 2:
* EBX for CPUID where EAX = 7
+ * Index 3 is set to zero.
*
* Note: the CPUID bits are pre-adjusted for the OSXSAVE bit and the YMM and XMM
- * bits in XCR0, so it is not necessary to check those. */
+ * bits in XCR0, so it is not necessary to check those. However, instructions
+ * requiring XMM support are not preadjusted for the FXSR bit. */
extern uint32_t OPENSSL_ia32cap_P[4];
#endif