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 8712 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8723 | 8723 |
8724 void HOptimizedGraphBuilder::GenerateTypedArrayMaxSizeInHeap( | 8724 void HOptimizedGraphBuilder::GenerateTypedArrayMaxSizeInHeap( |
8725 CallRuntime* expr) { | 8725 CallRuntime* expr) { |
8726 ASSERT(expr->arguments()->length() == 0); | 8726 ASSERT(expr->arguments()->length() == 0); |
8727 HConstant* result = New<HConstant>(static_cast<int32_t>( | 8727 HConstant* result = New<HConstant>(static_cast<int32_t>( |
8728 FLAG_typed_array_max_size_in_heap)); | 8728 FLAG_typed_array_max_size_in_heap)); |
8729 return ast_context()->ReturnInstruction(result, expr->id()); | 8729 return ast_context()->ReturnInstruction(result, expr->id()); |
8730 } | 8730 } |
8731 | 8731 |
8732 | 8732 |
8733 void HOptimizedGraphBuilder::GenerateArrayBufferGetByteLength( | |
8734 CallRuntime* expr) { | |
8735 ASSERT(expr->arguments()->length() == 1); | |
8736 CHECK_ALIVE(VisitForValue(expr->arguments()->at(0))); | |
8737 HValue* buffer = Pop(); | |
8738 HInstruction* result = New<HLoadNamedField>( | |
8739 buffer, | |
8740 static_cast<HValue*>(NULL), | |
8741 HObjectAccess::ForJSArrayBufferByteLength()); | |
8742 return ast_context()->ReturnInstruction(result, expr->id()); | |
8743 } | |
8744 | |
8745 | |
8746 void HOptimizedGraphBuilder::GenerateArrayBufferViewGetByteLength( | |
8747 CallRuntime* expr) { | |
8748 ASSERT(expr->arguments()->length() == 1); | |
8749 CHECK_ALIVE(VisitForValue(expr->arguments()->at(0))); | |
8750 HValue* buffer = Pop(); | |
8751 HInstruction* result = New<HLoadNamedField>( | |
8752 buffer, | |
8753 static_cast<HValue*>(NULL), | |
8754 HObjectAccess::ForJSArrayBufferViewByteLength()); | |
8755 return ast_context()->ReturnInstruction(result, expr->id()); | |
8756 } | |
8757 | |
8758 | |
8759 void HOptimizedGraphBuilder::GenerateArrayBufferViewGetByteOffset( | |
8760 CallRuntime* expr) { | |
8761 ASSERT(expr->arguments()->length() == 1); | |
8762 CHECK_ALIVE(VisitForValue(expr->arguments()->at(0))); | |
8763 HValue* buffer = Pop(); | |
8764 HInstruction* result = New<HLoadNamedField>( | |
8765 buffer, | |
8766 static_cast<HValue*>(NULL), | |
8767 HObjectAccess::ForJSArrayBufferViewByteOffset()); | |
8768 return ast_context()->ReturnInstruction(result, expr->id()); | |
8769 } | |
8770 | |
8771 | |
8772 void HOptimizedGraphBuilder::GenerateTypedArrayGetLength( | |
8773 CallRuntime* expr) { | |
8774 ASSERT(expr->arguments()->length() == 1); | |
8775 CHECK_ALIVE(VisitForValue(expr->arguments()->at(0))); | |
8776 HValue* buffer = Pop(); | |
8777 HInstruction* result = New<HLoadNamedField>( | |
8778 buffer, | |
8779 static_cast<HValue*>(NULL), | |
8780 HObjectAccess::ForJSTypedArrayLength()); | |
8781 return ast_context()->ReturnInstruction(result, expr->id()); | |
8782 } | |
8783 | |
8784 | |
8785 void HOptimizedGraphBuilder::VisitCallRuntime(CallRuntime* expr) { | 8733 void HOptimizedGraphBuilder::VisitCallRuntime(CallRuntime* expr) { |
8786 ASSERT(!HasStackOverflow()); | 8734 ASSERT(!HasStackOverflow()); |
8787 ASSERT(current_block() != NULL); | 8735 ASSERT(current_block() != NULL); |
8788 ASSERT(current_block()->HasPredecessor()); | 8736 ASSERT(current_block()->HasPredecessor()); |
8789 if (expr->is_jsruntime()) { | 8737 if (expr->is_jsruntime()) { |
8790 return Bailout(kCallToAJavaScriptRuntimeFunction); | 8738 return Bailout(kCallToAJavaScriptRuntimeFunction); |
8791 } | 8739 } |
8792 | 8740 |
8793 const Runtime::Function* function = expr->function(); | 8741 const Runtime::Function* function = expr->function(); |
8794 ASSERT(function != NULL); | 8742 ASSERT(function != NULL); |
(...skipping 2705 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11500 if (ShouldProduceTraceOutput()) { | 11448 if (ShouldProduceTraceOutput()) { |
11501 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); | 11449 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); |
11502 } | 11450 } |
11503 | 11451 |
11504 #ifdef DEBUG | 11452 #ifdef DEBUG |
11505 graph_->Verify(false); // No full verify. | 11453 graph_->Verify(false); // No full verify. |
11506 #endif | 11454 #endif |
11507 } | 11455 } |
11508 | 11456 |
11509 } } // namespace v8::internal | 11457 } } // namespace v8::internal |
OLD | NEW |