Index: src/cpu.cc |
diff --git a/src/cpu.cc b/src/cpu.cc |
index 8d9afd84ae444c1288d7ad3205ea51293932638a..eb64271ca23b2a475b466a3b6b2066142535f32c 100644 |
--- a/src/cpu.cc |
+++ b/src/cpu.cc |
@@ -300,6 +300,10 @@ CPU::CPU() : stepping_(0), |
has_sse42_ = (cpu_info[2] & 0x00100000) != 0; |
} |
+#if V8_HOST_ARCH_IA32 |
+ // SAHF is always available in compat/legacy mode, |
+ has_sahf_ = true; |
+#else |
// Query extended IDs. |
__cpuid(cpu_info, 0x80000000); |
unsigned num_ext_ids = cpu_info[0]; |
@@ -307,14 +311,10 @@ CPU::CPU() : stepping_(0), |
// Interpret extended CPU feature information. |
if (num_ext_ids > 0x80000000) { |
__cpuid(cpu_info, 0x80000001); |
- // SAHF is always available in compat/legacy mode, |
- // but must be probed in long mode. |
-#if V8_HOST_ARCH_IA32 |
- has_sahf_ = true; |
-#else |
+ // SAHF must be probed in long mode. |
has_sahf_ = (cpu_info[2] & 0x00000001) != 0; |
-#endif |
} |
+#endif |
#elif V8_HOST_ARCH_ARM |