Commit
16743db06 assumed that the CPUID instruction was always
available when the usual x86 symbols were defined. That is not the
case, so zero out the info rather than error out.
Reported-by: Jakob Egger <jakob@eggerapps.at>
Reported-by: Tobias Bussmann <t.bussmann@gmx.net>
Suggested-by: Tom Lane <tgl@sss.pgh.pa.us>
Discussion: https://postgr.es/m/
223EA201-A0E8-4A13-B220-
EB903E8DF817@eggerapps.at
static inline void
pg_cpuid(int leaf, unsigned int *reg)
{
+ memset(reg, 0, 4 * sizeof(unsigned int));
#if defined(HAVE__GET_CPUID)
__get_cpuid(leaf, ®[EAX], ®[EBX], ®[ECX], ®[EDX]);
#elif defined(HAVE__CPUID)
__cpuid((int *) reg, leaf);
-#else
-#error cpuid instruction not available
#endif
}