Indicate rdtscp availability in MINIDUMP_SYSTEM_INFO of x86_64 minidumps

This exposes a bit for PF_RDTSCP_INSTRUCTION_AVAILABLE in
CPU_INFORMATION::OtherCpuInfo::ProcessorFeatures. This bit was
introduced in Windows 10.

Change-Id: I464c308f8325d14c0839f609ea4260737a58f7a5
Reviewed-on: https://chromium-review.googlesource.com/409138
Reviewed-by: Scott Graham <scottmg@chromium.org>
This commit is contained in:
Mark Mentovai 2016-11-09 13:15:17 -05:00
parent dd4859965f
commit 5c44f1d14f

View File

@ -64,10 +64,12 @@ uint64_t AMD64FeaturesFromSystemSnapshot(
MAP_FEATURE(cpuid_features, F_RDRAND, PF_RDRAND_INSTRUCTION_AVAILABLE);
#define FX_XD 20
#define FX_RDTSCP 27
#define FX_3DNOW 31
uint64_t extended_features = system_snapshot->CPUX86ExtendedFeatures();
MAP_FEATURE(extended_features, FX_RDTSCP, PF_RDTSCP_INSTRUCTION_AVAILABLE);
MAP_FEATURE(extended_features, FX_3DNOW, PF_3DNOW_INSTRUCTIONS_AVAILABLE);
#define F7_FSGSBASE 0
@ -76,8 +78,8 @@ uint64_t AMD64FeaturesFromSystemSnapshot(
MAP_FEATURE(leaf7_features, F7_FSGSBASE, PF_RDWRFSGSBASE_AVAILABLE);
// This feature bit should be set if NX (XD, DEP) is enabled, not just if
// its available on the CPU as indicated by the XF_XD bit.
// This feature bit should be set if NX (XD, DEP) is enabled, not just if its
// available on the CPU as indicated by the FX_XD bit.
if (system_snapshot->NXEnabled()) {
minidump_features |= ADD_FEATURE(PF_NX_ENABLED);
}
@ -86,10 +88,10 @@ uint64_t AMD64FeaturesFromSystemSnapshot(
minidump_features |= ADD_FEATURE(PF_SSE_DAZ_MODE_AVAILABLE);
}
// PF_SECOND_LEVEL_ADDRESS_TRANSLATION cant be determined without
// consulting model-specific registers, a privileged operation. The exact
// use of PF_VIRT_FIRMWARE_ENABLED is unknown. PF_FASTFAIL_AVAILABLE is
// irrelevant outside of Windows.
// PF_SECOND_LEVEL_ADDRESS_TRANSLATION cant be determined without consulting
// model-specific registers, a privileged operation. The exact use of
// PF_VIRT_FIRMWARE_ENABLED is unknown. PF_FASTFAIL_AVAILABLE is irrelevant
// outside of Windows.
#undef MAP_FEATURE
#undef ADD_FEATURE