Index: src/x64/lithium-x64.cc |
diff --git a/src/x64/lithium-x64.cc b/src/x64/lithium-x64.cc |
index b9bc6e0f0327f03a8f8fba70bb79c449417b098e..c20a619a0148606bec7f8c1cc449ec039f7395bb 100644 |
--- a/src/x64/lithium-x64.cc |
+++ b/src/x64/lithium-x64.cc |
@@ -1007,8 +1007,9 @@ LInstruction* LChunkBuilder::DoTest(HTest* instr) { |
LInstruction* LChunkBuilder::DoCompareMap(HCompareMap* instr) { |
- Abort("Unimplemented: %s", "DoCompareMap"); |
- return NULL; |
+ ASSERT(instr->value()->representation().IsTagged()); |
+ LOperand* value = UseRegisterAtStart(instr->value()); |
+ return new LCmpMapAndBranch(value); |
} |
@@ -1074,8 +1075,8 @@ LInstruction* LChunkBuilder::DoGlobalReceiver(HGlobalReceiver* instr) { |
LInstruction* LChunkBuilder::DoCallConstantFunction( |
HCallConstantFunction* instr) { |
- Abort("Unimplemented: %s", "DoCallConstantFunction"); |
- return NULL; |
+ argument_count_ -= instr->argument_count(); |
+ return MarkAsCall(DefineFixed(new LCallConstantFunction, rax), instr); |
} |
@@ -1719,7 +1720,8 @@ LInstruction* LChunkBuilder::DoEnterInlined(HEnterInlined* instr) { |
LInstruction* LChunkBuilder::DoLeaveInlined(HLeaveInlined* instr) { |
- Abort("Unimplemented: %s", "DoLeaveInlined"); |
+ HEnvironment* outer = current_block_->last_environment()->outer(); |
+ current_block_->UpdateEnvironment(outer); |
return NULL; |
} |