From aaada6e9505659bae67328dd161a88a9103f6cae Mon Sep 17 00:00:00 2001 From: "mstarzinger@chromium.org" Date: Tue, 26 Feb 2013 18:12:27 +0000 Subject: [PATCH] Fix SSE2 scope being too broad in DoCmpIDAndBranch. R=ulan@chromium.org Review URL: https://codereview.chromium.org/12321141 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13740 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/ia32/lithium-codegen-ia32.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ia32/lithium-codegen-ia32.cc b/src/ia32/lithium-codegen-ia32.cc index f681443..e20307b 100644 --- a/src/ia32/lithium-codegen-ia32.cc +++ b/src/ia32/lithium-codegen-ia32.cc @@ -2164,7 +2164,6 @@ void LCodeGen::DoCmpIDAndBranch(LCmpIDAndBranch* instr) { int false_block = chunk_->LookupDestination(instr->false_block_id()); int true_block = chunk_->LookupDestination(instr->true_block_id()); Condition cc = TokenToCondition(instr->op(), instr->is_double()); - CpuFeatures::Scope scope(SSE2); if (left->IsConstantOperand() && right->IsConstantOperand()) { // We can statically evaluate the comparison. @@ -2176,6 +2175,7 @@ void LCodeGen::DoCmpIDAndBranch(LCmpIDAndBranch* instr) { EmitGoto(next_block); } else { if (instr->is_double()) { + CpuFeatures::Scope scope(SSE2); // Don't base result on EFLAGS when a NaN is involved. Instead // jump to the false block. __ ucomisd(ToDoubleRegister(left), ToDoubleRegister(right)); -- 2.7.4