Match LegoDeviceEnumerate::SupportsMMX (#1443)

* Match `LegoDeviceEnumerate::SupportsMMX`

* Fix indent
This commit is contained in:
Christian Semmler
2025-05-07 15:46:21 -07:00
committed by GitHub
parent 2cab039a5f
commit f851103d48

View File

@@ -201,12 +201,12 @@ int LegoDeviceEnumerate::FUN_1009d0d0()
// FUNCTION: BETA10 0x1011cf54 // FUNCTION: BETA10 0x1011cf54
int LegoDeviceEnumerate::SupportsMMX() int LegoDeviceEnumerate::SupportsMMX()
{ {
if (!SupportsCPUID()) { int supports_mmx = SupportsCPUID();
return 0;
} if (supports_mmx) {
int supports_mmx;
#ifdef _MSC_VER #ifdef _MSC_VER
__asm { __asm {
push ebx
mov eax, 0x0 ; EAX=0: Highest Function Parameter and Manufacturer ID mov eax, 0x0 ; EAX=0: Highest Function Parameter and Manufacturer ID
#if _MSC_VER > 1100 #if _MSC_VER > 1100
cpuid ; Run CPUID cpuid ; Run CPUID
@@ -224,6 +224,7 @@ int LegoDeviceEnumerate::SupportsMMX()
xor eax, eax ; Zero EAX register xor eax, eax ; Zero EAX register
bt edx, 0x17 ; Test bit 0x17 (23): MMX instructions (64-bit SIMD) (Store in CF) bt edx, 0x17 ; Test bit 0x17 (23): MMX instructions (64-bit SIMD) (Store in CF)
adc eax, eax ; Add with carry: EAX = EAX + EAX + CF = CF adc eax, eax ; Add with carry: EAX = EAX + EAX + CF = CF
pop ebx
mov supports_mmx, eax ; Save eax into C variable mov supports_mmx, eax ; Save eax into C variable
} }
#else #else
@@ -237,6 +238,8 @@ int LegoDeviceEnumerate::SupportsMMX()
: "=a"(supports_mmx) // supports_mmx == EAX : "=a"(supports_mmx) // supports_mmx == EAX
); );
#endif #endif
}
return supports_mmx; return supports_mmx;
} }