| 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();
|
|
|
|
|