OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "src/hydrogen.h" | 5 #include "src/hydrogen.h" |
6 | 6 |
7 #include <sstream> | 7 #include <sstream> |
8 | 8 |
9 #include "src/v8.h" | 9 #include "src/v8.h" |
10 | 10 |
(...skipping 12659 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
12670 | 12670 |
12671 void HOptimizedGraphBuilder::GenerateGetCachedArrayIndex(CallRuntime* call) { | 12671 void HOptimizedGraphBuilder::GenerateGetCachedArrayIndex(CallRuntime* call) { |
12672 DCHECK(call->arguments()->length() == 1); | 12672 DCHECK(call->arguments()->length() == 1); |
12673 CHECK_ALIVE(VisitForValue(call->arguments()->at(0))); | 12673 CHECK_ALIVE(VisitForValue(call->arguments()->at(0))); |
12674 HValue* value = Pop(); | 12674 HValue* value = Pop(); |
12675 HGetCachedArrayIndex* result = New<HGetCachedArrayIndex>(value); | 12675 HGetCachedArrayIndex* result = New<HGetCachedArrayIndex>(value); |
12676 return ast_context()->ReturnInstruction(result, call->id()); | 12676 return ast_context()->ReturnInstruction(result, call->id()); |
12677 } | 12677 } |
12678 | 12678 |
12679 | 12679 |
| 12680 void HOptimizedGraphBuilder::GenerateFastOneByteArrayJoin(CallRuntime* call) { |
| 12681 // Simply returning undefined here would be semantically correct and even |
| 12682 // avoid the bailout. Nevertheless, some ancient benchmarks like SunSpider's |
| 12683 // string-fasta would tank, because fullcode contains an optimized version. |
| 12684 // Obviously the fullcode => Crankshaft => bailout => fullcode dance is |
| 12685 // faster... *sigh* |
| 12686 return Bailout(kInlinedRuntimeFunctionFastOneByteArrayJoin); |
| 12687 } |
| 12688 |
| 12689 |
12680 void HOptimizedGraphBuilder::GenerateDebugBreakInOptimizedCode( | 12690 void HOptimizedGraphBuilder::GenerateDebugBreakInOptimizedCode( |
12681 CallRuntime* call) { | 12691 CallRuntime* call) { |
12682 Add<HDebugBreak>(); | 12692 Add<HDebugBreak>(); |
12683 return ast_context()->ReturnValue(graph()->GetConstant0()); | 12693 return ast_context()->ReturnValue(graph()->GetConstant0()); |
12684 } | 12694 } |
12685 | 12695 |
12686 | 12696 |
12687 void HOptimizedGraphBuilder::GenerateDebugIsActive(CallRuntime* call) { | 12697 void HOptimizedGraphBuilder::GenerateDebugIsActive(CallRuntime* call) { |
12688 DCHECK(call->arguments()->length() == 0); | 12698 DCHECK(call->arguments()->length() == 0); |
12689 HValue* ref = | 12699 HValue* ref = |
(...skipping 681 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
13371 if (ShouldProduceTraceOutput()) { | 13381 if (ShouldProduceTraceOutput()) { |
13372 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); | 13382 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); |
13373 } | 13383 } |
13374 | 13384 |
13375 #ifdef DEBUG | 13385 #ifdef DEBUG |
13376 graph_->Verify(false); // No full verify. | 13386 graph_->Verify(false); // No full verify. |
13377 #endif | 13387 #endif |
13378 } | 13388 } |
13379 | 13389 |
13380 } } // namespace v8::internal | 13390 } } // namespace v8::internal |
OLD | NEW |