| OLD | NEW |
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 7578 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7589 HInstruction* result = HMul::NewImul(zone(), context(), left, right); | 7589 HInstruction* result = HMul::NewImul(zone(), context(), left, right); |
| 7590 ast_context()->ReturnInstruction(result, expr->id()); | 7590 ast_context()->ReturnInstruction(result, expr->id()); |
| 7591 return true; | 7591 return true; |
| 7592 } | 7592 } |
| 7593 break; | 7593 break; |
| 7594 case kArrayPop: { | 7594 case kArrayPop: { |
| 7595 if (receiver_map.is_null()) return false; | 7595 if (receiver_map.is_null()) return false; |
| 7596 if (receiver_map->instance_type() != JS_ARRAY_TYPE) return false; | 7596 if (receiver_map->instance_type() != JS_ARRAY_TYPE) return false; |
| 7597 ElementsKind elements_kind = receiver_map->elements_kind(); | 7597 ElementsKind elements_kind = receiver_map->elements_kind(); |
| 7598 if (!IsFastElementsKind(elements_kind)) return false; | 7598 if (!IsFastElementsKind(elements_kind)) return false; |
| 7599 if (receiver_map->is_observed()) return false; |
| 7600 ASSERT(receiver_map->is_extensible()); |
| 7599 | 7601 |
| 7600 Drop(expr->arguments()->length()); | 7602 Drop(expr->arguments()->length()); |
| 7601 HValue* result; | 7603 HValue* result; |
| 7602 HValue* reduced_length; | 7604 HValue* reduced_length; |
| 7603 HValue* receiver = Pop(); | 7605 HValue* receiver = Pop(); |
| 7604 | 7606 |
| 7605 HValue* checked_object = AddCheckMap(receiver, receiver_map); | 7607 HValue* checked_object = AddCheckMap(receiver, receiver_map); |
| 7606 HValue* length = Add<HLoadNamedField>( | 7608 HValue* length = Add<HLoadNamedField>( |
| 7607 checked_object, static_cast<HValue*>(NULL), | 7609 checked_object, static_cast<HValue*>(NULL), |
| 7608 HObjectAccess::ForArrayLength(elements_kind)); | 7610 HObjectAccess::ForArrayLength(elements_kind)); |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7651 if (!ast_context()->IsEffect()) Drop(1); | 7653 if (!ast_context()->IsEffect()) Drop(1); |
| 7652 | 7654 |
| 7653 ast_context()->ReturnValue(result); | 7655 ast_context()->ReturnValue(result); |
| 7654 return true; | 7656 return true; |
| 7655 } | 7657 } |
| 7656 case kArrayPush: { | 7658 case kArrayPush: { |
| 7657 if (receiver_map.is_null()) return false; | 7659 if (receiver_map.is_null()) return false; |
| 7658 if (receiver_map->instance_type() != JS_ARRAY_TYPE) return false; | 7660 if (receiver_map->instance_type() != JS_ARRAY_TYPE) return false; |
| 7659 ElementsKind elements_kind = receiver_map->elements_kind(); | 7661 ElementsKind elements_kind = receiver_map->elements_kind(); |
| 7660 if (!IsFastElementsKind(elements_kind)) return false; | 7662 if (!IsFastElementsKind(elements_kind)) return false; |
| 7663 if (receiver_map->is_observed()) return false; |
| 7664 ASSERT(receiver_map->is_extensible()); |
| 7661 | 7665 |
| 7662 HValue* op_vals[] = { | 7666 HValue* op_vals[] = { |
| 7663 context(), | 7667 context(), |
| 7664 // Receiver. | 7668 // Receiver. |
| 7665 environment()->ExpressionStackAt(expr->arguments()->length()) | 7669 environment()->ExpressionStackAt(expr->arguments()->length()) |
| 7666 }; | 7670 }; |
| 7667 | 7671 |
| 7668 const int argc = expr->arguments()->length(); | 7672 const int argc = expr->arguments()->length(); |
| 7669 // Includes receiver. | 7673 // Includes receiver. |
| 7670 PushArgumentsFromEnvironment(argc + 1); | 7674 PushArgumentsFromEnvironment(argc + 1); |
| (...skipping 3772 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 11443 if (ShouldProduceTraceOutput()) { | 11447 if (ShouldProduceTraceOutput()) { |
| 11444 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); | 11448 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); |
| 11445 } | 11449 } |
| 11446 | 11450 |
| 11447 #ifdef DEBUG | 11451 #ifdef DEBUG |
| 11448 graph_->Verify(false); // No full verify. | 11452 graph_->Verify(false); // No full verify. |
| 11449 #endif | 11453 #endif |
| 11450 } | 11454 } |
| 11451 | 11455 |
| 11452 } } // namespace v8::internal | 11456 } } // namespace v8::internal |
| OLD | NEW |