Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(400)

Side by Side Diff: src/ia32/lithium-ia32.cc

Issue 522873002: Removal of the deoptimization block from Turbofan (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Change constant capitalization Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/hydrogen-instructions.h ('k') | src/lithium.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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/v8.h" 5 #include "src/v8.h"
6 6
7 #if V8_TARGET_ARCH_IA32 7 #if V8_TARGET_ARCH_IA32
8 8
9 #include "src/hydrogen-osr.h" 9 #include "src/hydrogen-osr.h"
10 #include "src/ia32/lithium-codegen-ia32.h" 10 #include "src/ia32/lithium-codegen-ia32.h"
(...skipping 609 matching lines...) Expand 10 before | Expand all | Expand 10 after
620 LTemplateResultInstruction<1>* instr, 620 LTemplateResultInstruction<1>* instr,
621 XMMRegister reg) { 621 XMMRegister reg) {
622 return Define(instr, ToUnallocated(reg)); 622 return Define(instr, ToUnallocated(reg));
623 } 623 }
624 624
625 625
626 LInstruction* LChunkBuilder::AssignEnvironment(LInstruction* instr) { 626 LInstruction* LChunkBuilder::AssignEnvironment(LInstruction* instr) {
627 HEnvironment* hydrogen_env = current_block_->last_environment(); 627 HEnvironment* hydrogen_env = current_block_->last_environment();
628 int argument_index_accumulator = 0; 628 int argument_index_accumulator = 0;
629 ZoneList<HValue*> objects_to_materialize(0, zone()); 629 ZoneList<HValue*> objects_to_materialize(0, zone());
630 instr->set_environment(CreateEnvironment(hydrogen_env, 630 instr->set_environment(CreateEnvironment(
631 &argument_index_accumulator, 631 hydrogen_env, &argument_index_accumulator, &objects_to_materialize));
632 &objects_to_materialize));
633 return instr; 632 return instr;
634 } 633 }
635 634
636 635
637 LInstruction* LChunkBuilder::MarkAsCall(LInstruction* instr, 636 LInstruction* LChunkBuilder::MarkAsCall(LInstruction* instr,
638 HInstruction* hinstr, 637 HInstruction* hinstr,
639 CanDeoptimize can_deoptimize) { 638 CanDeoptimize can_deoptimize) {
640 info()->MarkAsNonDeferredCalling(); 639 info()->MarkAsNonDeferredCalling();
641 640
642 #ifdef DEBUG 641 #ifdef DEBUG
(...skipping 1983 matching lines...) Expand 10 before | Expand all | Expand 10 after
2626 HConstant* undefined = graph()->GetConstantUndefined(); 2625 HConstant* undefined = graph()->GetConstantUndefined();
2627 HEnvironment* inner = outer->CopyForInlining(instr->closure(), 2626 HEnvironment* inner = outer->CopyForInlining(instr->closure(),
2628 instr->arguments_count(), 2627 instr->arguments_count(),
2629 instr->function(), 2628 instr->function(),
2630 undefined, 2629 undefined,
2631 instr->inlining_kind()); 2630 instr->inlining_kind());
2632 // Only replay binding of arguments object if it wasn't removed from graph. 2631 // Only replay binding of arguments object if it wasn't removed from graph.
2633 if (instr->arguments_var() != NULL && instr->arguments_object()->IsLinked()) { 2632 if (instr->arguments_var() != NULL && instr->arguments_object()->IsLinked()) {
2634 inner->Bind(instr->arguments_var(), instr->arguments_object()); 2633 inner->Bind(instr->arguments_var(), instr->arguments_object());
2635 } 2634 }
2635 inner->BindContext(instr->closure_context());
2636 inner->set_entry(instr); 2636 inner->set_entry(instr);
2637 current_block_->UpdateEnvironment(inner); 2637 current_block_->UpdateEnvironment(inner);
2638 chunk_->AddInlinedClosure(instr->closure()); 2638 chunk_->AddInlinedClosure(instr->closure());
2639 return NULL; 2639 return NULL;
2640 } 2640 }
2641 2641
2642 2642
2643 LInstruction* LChunkBuilder::DoLeaveInlined(HLeaveInlined* instr) { 2643 LInstruction* LChunkBuilder::DoLeaveInlined(HLeaveInlined* instr) {
2644 LInstruction* pop = NULL; 2644 LInstruction* pop = NULL;
2645 2645
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
2701 LOperand* function = UseRegisterAtStart(instr->function()); 2701 LOperand* function = UseRegisterAtStart(instr->function());
2702 LAllocateBlockContext* result = 2702 LAllocateBlockContext* result =
2703 new(zone()) LAllocateBlockContext(context, function); 2703 new(zone()) LAllocateBlockContext(context, function);
2704 return MarkAsCall(DefineFixed(result, esi), instr); 2704 return MarkAsCall(DefineFixed(result, esi), instr);
2705 } 2705 }
2706 2706
2707 2707
2708 } } // namespace v8::internal 2708 } } // namespace v8::internal
2709 2709
2710 #endif // V8_TARGET_ARCH_IA32 2710 #endif // V8_TARGET_ARCH_IA32
OLDNEW
« no previous file with comments | « src/hydrogen-instructions.h ('k') | src/lithium.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698