| 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/crankshaft/hydrogen.h" | 5 #include "src/crankshaft/hydrogen.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 #include <sstream> | 8 #include <sstream> |
| 9 | 9 |
| 10 #include "src/allocation-site-scopes.h" | 10 #include "src/allocation-site-scopes.h" |
| (...skipping 5316 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5327 return; | 5327 return; |
| 5328 } else { | 5328 } else { |
| 5329 Handle<TypeFeedbackVector> vector(current_feedback_vector(), isolate()); | 5329 Handle<TypeFeedbackVector> vector(current_feedback_vector(), isolate()); |
| 5330 | 5330 |
| 5331 HValue* vector_value = Add<HConstant>(vector); | 5331 HValue* vector_value = Add<HConstant>(vector); |
| 5332 HValue* slot_value = | 5332 HValue* slot_value = |
| 5333 Add<HConstant>(vector->GetIndex(expr->VariableFeedbackSlot())); | 5333 Add<HConstant>(vector->GetIndex(expr->VariableFeedbackSlot())); |
| 5334 Callable callable = CodeFactory::LoadGlobalICInOptimizedCode( | 5334 Callable callable = CodeFactory::LoadGlobalICInOptimizedCode( |
| 5335 isolate(), ast_context()->typeof_mode()); | 5335 isolate(), ast_context()->typeof_mode()); |
| 5336 HValue* stub = Add<HConstant>(callable.code()); | 5336 HValue* stub = Add<HConstant>(callable.code()); |
| 5337 HValue* values[] = {slot_value, vector_value}; | 5337 HValue* name = Add<HConstant>(variable->name()); |
| 5338 HValue* values[] = {name, slot_value, vector_value}; |
| 5338 HCallWithDescriptor* instr = New<HCallWithDescriptor>( | 5339 HCallWithDescriptor* instr = New<HCallWithDescriptor>( |
| 5339 Code::LOAD_GLOBAL_IC, stub, 0, callable.descriptor(), | 5340 Code::LOAD_GLOBAL_IC, stub, 0, callable.descriptor(), |
| 5340 ArrayVector(values)); | 5341 ArrayVector(values)); |
| 5341 return ast_context()->ReturnInstruction(instr, expr->id()); | 5342 return ast_context()->ReturnInstruction(instr, expr->id()); |
| 5342 } | 5343 } |
| 5343 } | 5344 } |
| 5344 | 5345 |
| 5345 case VariableLocation::PARAMETER: | 5346 case VariableLocation::PARAMETER: |
| 5346 case VariableLocation::LOCAL: { | 5347 case VariableLocation::LOCAL: { |
| 5347 HValue* value = LookupAndMakeLive(variable); | 5348 HValue* value = LookupAndMakeLive(variable); |
| (...skipping 7661 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 13009 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); | 13010 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); |
| 13010 } | 13011 } |
| 13011 | 13012 |
| 13012 #ifdef DEBUG | 13013 #ifdef DEBUG |
| 13013 graph_->Verify(false); // No full verify. | 13014 graph_->Verify(false); // No full verify. |
| 13014 #endif | 13015 #endif |
| 13015 } | 13016 } |
| 13016 | 13017 |
| 13017 } // namespace internal | 13018 } // namespace internal |
| 13018 } // namespace v8 | 13019 } // namespace v8 |
| OLD | NEW |