From 5a57e644d7119eab4d4ce56c2b233998467be2fb Mon Sep 17 00:00:00 2001 From: "jochen@chromium.org" Date: Thu, 3 Apr 2014 14:04:05 +0000 Subject: [PATCH] Revert r20476. Reason for revert: crashes arm64.debug cctest Fatal error in ../src/hydrogen-instructions.h, line 2968 CHECK(value->IsCheckHeapObject()) failed Fixed environment assignment for LCheckNonSmi. TBR=svenpanne@chromium.org BUG= Review URL: https://codereview.chromium.org/223873003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20484 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/arm/lithium-arm.cc | 4 +--- src/arm64/lithium-arm64.cc | 4 +--- src/ia32/lithium-ia32.cc | 4 +--- src/x64/lithium-x64.cc | 4 +--- 4 files changed, 4 insertions(+), 12 deletions(-) diff --git a/src/arm/lithium-arm.cc b/src/arm/lithium-arm.cc index 357c191d81..97722ccfa2 100644 --- a/src/arm/lithium-arm.cc +++ b/src/arm/lithium-arm.cc @@ -1963,9 +1963,7 @@ LInstruction* LChunkBuilder::DoChange(HChange* instr) { LInstruction* LChunkBuilder::DoCheckHeapObject(HCheckHeapObject* instr) { LOperand* value = UseRegisterAtStart(instr->value()); - LInstruction* result = new(zone()) LCheckNonSmi(value); - if (!instr->value()->IsHeapObject()) result = AssignEnvironment(result); - return result; + return AssignEnvironment(new(zone()) LCheckNonSmi(value)); } diff --git a/src/arm64/lithium-arm64.cc b/src/arm64/lithium-arm64.cc index 0a522a5f55..d58e3cc991 100644 --- a/src/arm64/lithium-arm64.cc +++ b/src/arm64/lithium-arm64.cc @@ -1171,9 +1171,7 @@ LInstruction* LChunkBuilder::DoChange(HChange* instr) { LInstruction* LChunkBuilder::DoCheckValue(HCheckValue* instr) { LOperand* value = UseRegisterAtStart(instr->value()); - LInstruction* result = new(zone()) LCheckNonSmi(value); - if (!instr->value()->IsHeapObject()) result = AssignEnvironment(result); - return result; + return AssignEnvironment(new(zone()) LCheckValue(value)); } diff --git a/src/ia32/lithium-ia32.cc b/src/ia32/lithium-ia32.cc index cb15e0d82f..66c79d1d58 100644 --- a/src/ia32/lithium-ia32.cc +++ b/src/ia32/lithium-ia32.cc @@ -2007,9 +2007,7 @@ LInstruction* LChunkBuilder::DoChange(HChange* instr) { LInstruction* LChunkBuilder::DoCheckHeapObject(HCheckHeapObject* instr) { LOperand* value = UseAtStart(instr->value()); - LInstruction* result = new(zone()) LCheckNonSmi(value); - if (!instr->value()->IsHeapObject()) result = AssignEnvironment(result); - return result; + return AssignEnvironment(new(zone()) LCheckNonSmi(value)); } diff --git a/src/x64/lithium-x64.cc b/src/x64/lithium-x64.cc index ea5ef9f3af..90f9a1a236 100644 --- a/src/x64/lithium-x64.cc +++ b/src/x64/lithium-x64.cc @@ -1925,9 +1925,7 @@ LInstruction* LChunkBuilder::DoChange(HChange* instr) { LInstruction* LChunkBuilder::DoCheckHeapObject(HCheckHeapObject* instr) { LOperand* value = UseRegisterAtStart(instr->value()); - LInstruction* result = new(zone()) LCheckNonSmi(value); - if (!instr->value()->IsHeapObject()) result = AssignEnvironment(result); - return result; + return AssignEnvironment(new(zone()) LCheckNonSmi(value)); }