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

Side by Side Diff: src/crankshaft/hydrogen.cc

Issue 2325013004: [stubs] Port LoadScriptContextFieldStub and StoreScriptContextFieldStub to TurboFan. (Closed)
Patch Set: Rebasing Created 4 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
« no previous file with comments | « src/crankshaft/hydrogen.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 3384 matching lines...) Expand 10 before | Expand all | Expand 10 after
3395 HInstruction* HGraphBuilder::BuildGetNativeContext(HValue* closure) { 3395 HInstruction* HGraphBuilder::BuildGetNativeContext(HValue* closure) {
3396 // Get the global object, then the native context 3396 // Get the global object, then the native context
3397 HInstruction* context = Add<HLoadNamedField>( 3397 HInstruction* context = Add<HLoadNamedField>(
3398 closure, nullptr, HObjectAccess::ForFunctionContextPointer()); 3398 closure, nullptr, HObjectAccess::ForFunctionContextPointer());
3399 return Add<HLoadNamedField>( 3399 return Add<HLoadNamedField>(
3400 context, nullptr, 3400 context, nullptr,
3401 HObjectAccess::ForContextSlot(Context::NATIVE_CONTEXT_INDEX)); 3401 HObjectAccess::ForContextSlot(Context::NATIVE_CONTEXT_INDEX));
3402 } 3402 }
3403 3403
3404 3404
3405 HInstruction* HGraphBuilder::BuildGetScriptContext(int context_index) {
3406 HValue* native_context = BuildGetNativeContext();
3407 HValue* script_context_table = Add<HLoadNamedField>(
3408 native_context, nullptr,
3409 HObjectAccess::ForContextSlot(Context::SCRIPT_CONTEXT_TABLE_INDEX));
3410 return Add<HLoadNamedField>(script_context_table, nullptr,
3411 HObjectAccess::ForScriptContext(context_index));
3412 }
3413
3414
3415 HValue* HGraphBuilder::BuildGetParentContext(HValue* depth, int depth_value) { 3405 HValue* HGraphBuilder::BuildGetParentContext(HValue* depth, int depth_value) {
3416 HValue* script_context = context(); 3406 HValue* script_context = context();
3417 if (depth != NULL) { 3407 if (depth != NULL) {
3418 HValue* zero = graph()->GetConstant0(); 3408 HValue* zero = graph()->GetConstant0();
3419 3409
3420 Push(script_context); 3410 Push(script_context);
3421 Push(depth); 3411 Push(depth);
3422 3412
3423 LoopBuilder loop(this); 3413 LoopBuilder loop(this);
3424 loop.BeginBody(2); // Drop script_context and depth from last environment 3414 loop.BeginBody(2); // Drop script_context and depth from last environment
(...skipping 9970 matching lines...) Expand 10 before | Expand all | Expand 10 after
13395 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); 13385 isolate()->GetHTracer()->TraceHydrogen(name(), graph_);
13396 } 13386 }
13397 13387
13398 #ifdef DEBUG 13388 #ifdef DEBUG
13399 graph_->Verify(false); // No full verify. 13389 graph_->Verify(false); // No full verify.
13400 #endif 13390 #endif
13401 } 13391 }
13402 13392
13403 } // namespace internal 13393 } // namespace internal
13404 } // namespace v8 13394 } // namespace v8
OLDNEW
« no previous file with comments | « src/crankshaft/hydrogen.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698