Index: src/ia32/assembler-ia32.h |
diff --git a/src/ia32/assembler-ia32.h b/src/ia32/assembler-ia32.h |
index 3033db936b32ed7540ad35cca7c40185c6ffa1c3..f4968968caa1569814b61f95c570fc6b3d7fb185 100644 |
--- a/src/ia32/assembler-ia32.h |
+++ b/src/ia32/assembler-ia32.h |
@@ -141,25 +141,25 @@ inline Register Register::FromAllocationIndex(int index) { |
} |
-struct IntelDoubleRegister { |
+struct DoubleRegister { |
static const int kMaxNumRegisters = 8; |
static const int kMaxNumAllocatableRegisters = 7; |
static int NumAllocatableRegisters(); |
static int NumRegisters(); |
static const char* AllocationIndexToString(int index); |
- static int ToAllocationIndex(IntelDoubleRegister reg) { |
+ static int ToAllocationIndex(DoubleRegister reg) { |
ASSERT(reg.code() != 0); |
return reg.code() - 1; |
} |
- static IntelDoubleRegister FromAllocationIndex(int index) { |
+ static DoubleRegister FromAllocationIndex(int index) { |
ASSERT(index >= 0 && index < NumAllocatableRegisters()); |
return from_code(index + 1); |
} |
- static IntelDoubleRegister from_code(int code) { |
- IntelDoubleRegister result = { code }; |
+ static DoubleRegister from_code(int code) { |
+ DoubleRegister result = { code }; |
return result; |
} |
@@ -175,23 +175,23 @@ struct IntelDoubleRegister { |
}; |
-const IntelDoubleRegister double_register_0 = { 0 }; |
-const IntelDoubleRegister double_register_1 = { 1 }; |
-const IntelDoubleRegister double_register_2 = { 2 }; |
-const IntelDoubleRegister double_register_3 = { 3 }; |
-const IntelDoubleRegister double_register_4 = { 4 }; |
-const IntelDoubleRegister double_register_5 = { 5 }; |
-const IntelDoubleRegister double_register_6 = { 6 }; |
-const IntelDoubleRegister double_register_7 = { 7 }; |
-const IntelDoubleRegister no_double_reg = { -1 }; |
+const DoubleRegister double_register_0 = { 0 }; |
+const DoubleRegister double_register_1 = { 1 }; |
+const DoubleRegister double_register_2 = { 2 }; |
+const DoubleRegister double_register_3 = { 3 }; |
+const DoubleRegister double_register_4 = { 4 }; |
+const DoubleRegister double_register_5 = { 5 }; |
+const DoubleRegister double_register_6 = { 6 }; |
+const DoubleRegister double_register_7 = { 7 }; |
+const DoubleRegister no_double_reg = { -1 }; |
-struct XMMRegister : IntelDoubleRegister { |
+struct XMMRegister : DoubleRegister { |
static const int kNumAllocatableRegisters = 7; |
static const int kNumRegisters = 8; |
static XMMRegister from_code(int code) { |
- STATIC_ASSERT(sizeof(XMMRegister) == sizeof(IntelDoubleRegister)); |
+ STATIC_ASSERT(sizeof(XMMRegister) == sizeof(DoubleRegister)); |
XMMRegister result; |
result.code_ = code; |
return result; |
@@ -231,45 +231,6 @@ struct XMMRegister : IntelDoubleRegister { |
#define no_xmm_reg (static_cast<const XMMRegister&>(no_double_reg)) |
-struct X87Register : IntelDoubleRegister { |
- static const int kNumAllocatableRegisters = 5; |
- static const int kNumRegisters = 5; |
- |
- bool is(X87Register reg) const { |
- return code_ == reg.code_; |
- } |
- |
- static const char* AllocationIndexToString(int index) { |
- ASSERT(index >= 0 && index < kNumAllocatableRegisters); |
- const char* const names[] = { |
- "stX_0", "stX_1", "stX_2", "stX_3", "stX_4" |
- }; |
- return names[index]; |
- } |
- |
- static X87Register FromAllocationIndex(int index) { |
- STATIC_ASSERT(sizeof(X87Register) == sizeof(IntelDoubleRegister)); |
- ASSERT(index >= 0 && index < NumAllocatableRegisters()); |
- X87Register result; |
- result.code_ = index; |
- return result; |
- } |
- |
- static int ToAllocationIndex(X87Register reg) { |
- return reg.code_; |
- } |
-}; |
- |
-#define stX_0 static_cast<const X87Register&>(double_register_0) |
-#define stX_1 static_cast<const X87Register&>(double_register_1) |
-#define stX_2 static_cast<const X87Register&>(double_register_2) |
-#define stX_3 static_cast<const X87Register&>(double_register_3) |
-#define stX_4 static_cast<const X87Register&>(double_register_4) |
- |
- |
-typedef IntelDoubleRegister DoubleRegister; |
- |
- |
enum Condition { |
// any value < 0 is considered no_condition |
no_condition = -1, |
@@ -520,11 +481,11 @@ class Displacement BASE_EMBEDDED { |
// CpuFeatures keeps track of which features are supported by the target CPU. |
// Supported features must be enabled by a CpuFeatureScope before use. |
// Example: |
-// if (assembler->IsSupported(SSE2)) { |
-// CpuFeatureScope fscope(assembler, SSE2); |
-// // Generate SSE2 floating point code. |
+// if (assembler->IsSupported(CMOV)) { |
+// CpuFeatureScope fscope(assembler, CMOV); |
+// // Generate code containing cmov. |
// } else { |
-// // Generate standard x87 floating point code. |
+// // Generate alternative code. |
// } |
class CpuFeatures : public AllStatic { |
public: |
@@ -536,7 +497,6 @@ class CpuFeatures : public AllStatic { |
static bool IsSupported(CpuFeature f) { |
ASSERT(initialized_); |
if (Check(f, cross_compile_)) return true; |
- if (f == SSE2 && !FLAG_enable_sse2) return false; |
if (f == SSE3 && !FLAG_enable_sse3) return false; |
if (f == SSE4_1 && !FLAG_enable_sse4_1) return false; |
if (f == CMOV && !FLAG_enable_cmov) return false; |
@@ -560,7 +520,7 @@ class CpuFeatures : public AllStatic { |
(cross_compile_ & mask) == mask; |
} |
- static bool SupportsCrankshaft() { return IsSupported(SSE2); } |
+ static bool SupportsCrankshaft() { return true; } |
private: |
static bool Check(CpuFeature f, uint64_t set) { |