| Index: src/x64/lithium-codegen-x64.cc
|
| diff --git a/src/x64/lithium-codegen-x64.cc b/src/x64/lithium-codegen-x64.cc
|
| index ffe1a5291000382daced4ccefc326de2dbe9a8a8..8e1f65c771800d5e501d0e8989dc9af8b9741ca2 100644
|
| --- a/src/x64/lithium-codegen-x64.cc
|
| +++ b/src/x64/lithium-codegen-x64.cc
|
| @@ -2015,45 +2015,23 @@
|
| XMMRegister left = ToDoubleRegister(instr->left());
|
| XMMRegister right = ToDoubleRegister(instr->right());
|
| XMMRegister result = ToDoubleRegister(instr->result());
|
| + // All operations except MOD are computed in-place.
|
| + DCHECK(instr->op() == Token::MOD || left.is(result));
|
| switch (instr->op()) {
|
| case Token::ADD:
|
| - if (CpuFeatures::IsSupported(AVX)) {
|
| - CpuFeatureScope scope(masm(), AVX);
|
| - __ vaddsd(result, left, right);
|
| - } else {
|
| - DCHECK(result.is(left));
|
| - __ addsd(left, right);
|
| - }
|
| + __ addsd(left, right);
|
| break;
|
| case Token::SUB:
|
| - if (CpuFeatures::IsSupported(AVX)) {
|
| - CpuFeatureScope scope(masm(), AVX);
|
| - __ vsubsd(result, left, right);
|
| - } else {
|
| - DCHECK(result.is(left));
|
| - __ subsd(left, right);
|
| - }
|
| + __ subsd(left, right);
|
| break;
|
| case Token::MUL:
|
| - if (CpuFeatures::IsSupported(AVX)) {
|
| - CpuFeatureScope scope(masm(), AVX);
|
| - __ vmulsd(result, left, right);
|
| - } else {
|
| - DCHECK(result.is(left));
|
| - __ mulsd(left, right);
|
| - }
|
| + __ mulsd(left, right);
|
| break;
|
| case Token::DIV:
|
| - if (CpuFeatures::IsSupported(AVX)) {
|
| - CpuFeatureScope scope(masm(), AVX);
|
| - __ vdivsd(result, left, right);
|
| - } else {
|
| - DCHECK(result.is(left));
|
| - __ divsd(left, right);
|
| - // Don't delete this mov. It may improve performance on some CPUs,
|
| - // when there is a mulsd depending on the result
|
| - __ movaps(left, left);
|
| - }
|
| + __ divsd(left, right);
|
| + // Don't delete this mov. It may improve performance on some CPUs,
|
| + // when there is a mulsd depending on the result
|
| + __ movaps(left, left);
|
| break;
|
| case Token::MOD: {
|
| XMMRegister xmm_scratch = double_scratch0();
|
|
|