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

Side by Side Diff: src/interpreter/interpreter-assembler.h

Issue 2343633002: [interpreter] Add a fast path for dynamic local load (Closed)
Patch Set: Disable clang format for the new test 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
OLDNEW
1 // Copyright 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 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 #ifndef V8_INTERPRETER_INTERPRETER_ASSEMBLER_H_ 5 #ifndef V8_INTERPRETER_INTERPRETER_ASSEMBLER_H_
6 #define V8_INTERPRETER_INTERPRETER_ASSEMBLER_H_ 6 #define V8_INTERPRETER_INTERPRETER_ASSEMBLER_H_
7 7
8 #include "src/allocation.h" 8 #include "src/allocation.h"
9 #include "src/builtins/builtins.h" 9 #include "src/builtins/builtins.h"
10 #include "src/code-stub-assembler.h" 10 #include "src/code-stub-assembler.h"
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 compiler::Node* BytecodeOperandIntrinsicId(int operand_index); 49 compiler::Node* BytecodeOperandIntrinsicId(int operand_index);
50 50
51 // Accumulator. 51 // Accumulator.
52 compiler::Node* GetAccumulator(); 52 compiler::Node* GetAccumulator();
53 void SetAccumulator(compiler::Node* value); 53 void SetAccumulator(compiler::Node* value);
54 54
55 // Context. 55 // Context.
56 compiler::Node* GetContext(); 56 compiler::Node* GetContext();
57 void SetContext(compiler::Node* value); 57 void SetContext(compiler::Node* value);
58 58
59 // Context at |depth| in the context chain starting at |context| 59 // Context at |depth| in the context chain starting at |context|.
60 compiler::Node* GetContextAtDepth(compiler::Node* context, 60 compiler::Node* GetContextAtDepth(compiler::Node* context,
61 compiler::Node* depth); 61 compiler::Node* depth);
62 62
63 // Goto the given |target| if the context chain starting at |context| has any
64 // extensions up to the given |depth|.
65 void GotoIfHasContextExtensionUpToDepth(compiler::Node* context,
66 compiler::Node* depth, Label* target);
67
63 // Number of registers. 68 // Number of registers.
64 compiler::Node* RegisterCount(); 69 compiler::Node* RegisterCount();
65 70
66 // Backup/restore register file to/from a fixed array of the correct length. 71 // Backup/restore register file to/from a fixed array of the correct length.
67 compiler::Node* ExportRegisterFile(compiler::Node* array); 72 compiler::Node* ExportRegisterFile(compiler::Node* array);
68 compiler::Node* ImportRegisterFile(compiler::Node* array); 73 compiler::Node* ImportRegisterFile(compiler::Node* array);
69 74
70 // Loads from and stores to the interpreter register file. 75 // Loads from and stores to the interpreter register file.
71 compiler::Node* LoadRegister(Register reg); 76 compiler::Node* LoadRegister(Register reg);
72 compiler::Node* LoadRegister(compiler::Node* reg_index); 77 compiler::Node* LoadRegister(compiler::Node* reg_index);
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after
303 compiler::Node* stack_pointer_before_call_; 308 compiler::Node* stack_pointer_before_call_;
304 309
305 DISALLOW_COPY_AND_ASSIGN(InterpreterAssembler); 310 DISALLOW_COPY_AND_ASSIGN(InterpreterAssembler);
306 }; 311 };
307 312
308 } // namespace interpreter 313 } // namespace interpreter
309 } // namespace internal 314 } // namespace internal
310 } // namespace v8 315 } // namespace v8
311 316
312 #endif // V8_INTERPRETER_INTERPRETER_ASSEMBLER_H_ 317 #endif // V8_INTERPRETER_INTERPRETER_ASSEMBLER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698