x86emitter: initialize scalar field

CID:147038
This commit is contained in:
Gregory Hainaut 2016-03-28 14:33:21 +02:00
parent de24ce0a8f
commit 37de84d55f
2 changed files with 69 additions and 47 deletions

View File

@ -53,6 +53,8 @@ public:
// x86 CPU Capabilities Section (all boolean flags!) // x86 CPU Capabilities Section (all boolean flags!)
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
union {
struct {
u32 hasFloatingPointUnit :1; u32 hasFloatingPointUnit :1;
u32 hasVirtual8086ModeEnhancements :1; u32 hasVirtual8086ModeEnhancements :1;
u32 hasDebuggingExtensions :1; u32 hasDebuggingExtensions :1;
@ -96,17 +98,17 @@ public:
// AMD-specific CPU Features // AMD-specific CPU Features
u32 hasAMD64BitArchitecture :1; u32 hasAMD64BitArchitecture :1;
u32 hasStreamingSIMD4ExtensionsA :1; u32 hasStreamingSIMD4ExtensionsA :1;
};
u32 AllCapabilities;
};
// Core Counts! // Core Counts!
u32 PhysicalCores; u32 PhysicalCores;
u32 LogicalCores; u32 LogicalCores;
public: public:
x86capabilities() x86capabilities();
{
isIdentified = false;
VendorID = x86Vendor_Unknown;
}
void Identify(); void Identify();
void CountCores(); void CountCores();

View File

@ -24,6 +24,26 @@ __aligned16 x86capabilities x86caps;
// Recompiled code buffer for SSE and MXCSR feature testing. // Recompiled code buffer for SSE and MXCSR feature testing.
static __pagealigned u8 targetFXSAVE[512]; static __pagealigned u8 targetFXSAVE[512];
x86capabilities::x86capabilities() :
isIdentified(false),
VendorID(x86Vendor_Unknown),
FamilyID(0),
Model(0),
TypeID(0),
StepID(0),
Flags(0),
Flags2(0),
EFlags(0),
EFlags2(0),
SEFlag(0),
AllCapabilities(0),
PhysicalCores(0),
LogicalCores(0)
{
memzero(VendorName);
memzero(FamilyName);
}
// Warning! We've had problems with the MXCSR detection code causing stack corruption in // Warning! We've had problems with the MXCSR detection code causing stack corruption in
// MSVC PGO builds. The problem was fixed when I moved the MXCSR code to this function, and // MSVC PGO builds. The problem was fixed when I moved the MXCSR code to this function, and
// moved the recSSE[] array to a global static (it was local to cpudetectInit). Commented // moved the recSSE[] array to a global static (it was local to cpudetectInit). Commented