Revert r20476.
authorjochen@chromium.org <jochen@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Thu, 3 Apr 2014 14:04:05 +0000 (14:04 +0000)
committerjochen@chromium.org <jochen@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Thu, 3 Apr 2014 14:04:05 +0000 (14:04 +0000)
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
src/arm64/lithium-arm64.cc
src/ia32/lithium-ia32.cc
src/x64/lithium-x64.cc

index 357c191..97722cc 100644 (file)
@@ -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));
 }
 
 
index 0a522a5..d58e3cc 100644 (file)
@@ -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));
 }
 
 
index cb15e0d..66c79d1 100644 (file)
@@ -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));
 }
 
 
index ea5ef9f..90f9a1a 100644 (file)
@@ -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));
 }