Index: src/assembler-ia32.h |
=================================================================== |
--- src/assembler-ia32.h (revision 1360) |
+++ src/assembler-ia32.h (working copy) |
@@ -347,14 +347,14 @@ |
// Feature flags bit positions. They are mostly based on the CPUID spec. |
// (We assign CPUID itself to one of the currently reserved bits -- |
// feel free to change this if needed.) |
- enum Feature { SSE2 = 26, CMOV = 15, RDTSC = 4, CPUID = 10 }; |
+ enum Feature { SSE3 = 32, SSE2 = 26, CMOV = 15, RDTSC = 4, CPUID = 10 }; |
// Detect features of the target CPU. Set safe defaults if the serializer |
// is enabled (snapshots must be portable). |
static void Probe(); |
// Check whether a feature is supported by the target CPU. |
- static bool IsSupported(Feature f) { return supported_ & (1 << f); } |
+ static bool IsSupported(Feature f) { return supported_ & (1UL << f); } |
// Check whether a feature is currently enabled. |
- static bool IsEnabled(Feature f) { return enabled_ & (1 << f); } |
+ static bool IsEnabled(Feature f) { return enabled_ & (1UL << f); } |
// Enable a specified feature within a scope. |
class Scope BASE_EMBEDDED { |
#ifdef DEBUG |
@@ -362,19 +362,19 @@ |
explicit Scope(Feature f) { |
ASSERT(CpuFeatures::IsSupported(f)); |
old_enabled_ = CpuFeatures::enabled_; |
- CpuFeatures::enabled_ |= (1 << f); |
+ CpuFeatures::enabled_ |= (1UL << f); |
} |
~Scope() { CpuFeatures::enabled_ = old_enabled_; } |
private: |
- uint32_t old_enabled_; |
+ uint64_t old_enabled_; |
#else |
public: |
explicit Scope(Feature f) {} |
#endif |
}; |
private: |
- static uint32_t supported_; |
- static uint32_t enabled_; |
+ static uint64_t supported_; |
+ static uint64_t enabled_; |
}; |
@@ -635,6 +635,8 @@ |
void fistp_s(const Operand& adr); |
void fistp_d(const Operand& adr); |
+ void fisttp_s(const Operand& adr); |
+ |
void fabs(); |
void fchs(); |
@@ -663,6 +665,7 @@ |
void fcompp(); |
void fnstsw_ax(); |
void fwait(); |
+ void fnclex(); |
void frndint(); |