From: mvstanton@chromium.org Date: Tue, 9 Apr 2013 10:32:00 +0000 (+0000) Subject: Remove SSE2 feature checks from x64 code (it is always on) X-Git-Tag: upstream/4.7.83~14659 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ea2d9e387debe33a6f1cf976fbde6d6c9e8bf1e4;p=platform%2Fupstream%2Fv8.git Remove SSE2 feature checks from x64 code (it is always on) BUG= Review URL: https://codereview.chromium.org/13928006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14184 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- diff --git a/src/x64/assembler-x64.cc b/src/x64/assembler-x64.cc index 57d40f7..eee1584 100644 --- a/src/x64/assembler-x64.cc +++ b/src/x64/assembler-x64.cc @@ -150,9 +150,8 @@ void CpuFeatures::Probe() { found_by_runtime_probing_only_ = probed_features & ~kDefaultCpuFeatures & ~platform_features; - // SSE2 and CMOV must be available on an X64 CPU. + // CMOV must be available on an X64 CPU. ASSERT(IsSupported(CPUID)); - ASSERT(IsSupported(SSE2)); ASSERT(IsSupported(CMOV)); delete memory; diff --git a/src/x64/assembler-x64.h b/src/x64/assembler-x64.h index 49a57e6..13f269f 100644 --- a/src/x64/assembler-x64.h +++ b/src/x64/assembler-x64.h @@ -448,7 +448,7 @@ class Operand BASE_EMBEDDED { // CpuFeatureScope fscope(assembler, SSE3); // // Generate SSE3 floating point code. // } else { -// // Generate standard x87 or SSE2 floating point code. +// // Generate standard SSE2 floating point code. // } class CpuFeatures : public AllStatic { public: @@ -459,7 +459,6 @@ class CpuFeatures : public AllStatic { // Check whether a feature is supported by the target CPU. static bool IsSupported(CpuFeature f) { ASSERT(initialized_); - 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; @@ -480,11 +479,11 @@ class CpuFeatures : public AllStatic { } private: - // Safe defaults include SSE2 and CMOV for X64. It is always available, if + // Safe defaults include CMOV for X64. It is always available, if // anyone checks, but they shouldn't need to check. // The required user mode extensions in X64 are (from AMD64 ABI Table A.1): // fpu, tsc, cx8, cmov, mmx, sse, sse2, fxsr, syscall - static const uint64_t kDefaultCpuFeatures = (1 << SSE2 | 1 << CMOV); + static const uint64_t kDefaultCpuFeatures = (1 << CMOV); #ifdef DEBUG static bool initialized_; diff --git a/src/x64/macro-assembler-x64.cc b/src/x64/macro-assembler-x64.cc index 6c1c19d..5865924 100644 --- a/src/x64/macro-assembler-x64.cc +++ b/src/x64/macro-assembler-x64.cc @@ -899,7 +899,6 @@ void MacroAssembler::PushCallerSaved(SaveFPRegsMode fp_mode, } // R12 to r15 are callee save on all platforms. if (fp_mode == kSaveFPRegs) { - CpuFeatureScope scope(this, SSE2); subq(rsp, Immediate(kDoubleSize * XMMRegister::kMaxNumRegisters)); for (int i = 0; i < XMMRegister::kMaxNumRegisters; i++) { XMMRegister reg = XMMRegister::from_code(i); @@ -914,7 +913,6 @@ void MacroAssembler::PopCallerSaved(SaveFPRegsMode fp_mode, Register exclusion2, Register exclusion3) { if (fp_mode == kSaveFPRegs) { - CpuFeatureScope scope(this, SSE2); for (int i = 0; i < XMMRegister::kMaxNumRegisters; i++) { XMMRegister reg = XMMRegister::from_code(i); movsd(reg, Operand(rsp, i * kDoubleSize));