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

Unified Diff: src/compiler/interpreter-assembler.h

Issue 1512543002: [Interpreter] Save bytecode offset in interpreter stack frames. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Fix ia32 and rebase Created 5 years 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/arm64/builtins-arm64.cc ('k') | src/compiler/interpreter-assembler.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/compiler/interpreter-assembler.h
diff --git a/src/compiler/interpreter-assembler.h b/src/compiler/interpreter-assembler.h
index 11e3a9127c72fd1afc1aac367559a2fdac51ac57..5401457752ae89c75444212cdfb5986e1aec7dad 100644
--- a/src/compiler/interpreter-assembler.h
+++ b/src/compiler/interpreter-assembler.h
@@ -60,8 +60,11 @@ class InterpreterAssembler {
void SetContext(Node* value);
// Loads from and stores to the interpreter register file.
+ Node* LoadRegister(int offset);
Node* LoadRegister(interpreter::Register reg);
Node* LoadRegister(Node* reg_index);
+ Node* StoreRegister(Node* value, int offset);
+ Node* StoreRegister(Node* value, interpreter::Register reg);
Node* StoreRegister(Node* value, Node* reg_index);
// Returns the location in memory of the register |reg_index| in the
@@ -163,6 +166,11 @@ class InterpreterAssembler {
// Returns a raw pointer to first entry in the interpreter dispatch table.
Node* DispatchTableRawPointer();
+ // Saves and restores interpreter bytecode offset to the interpreter stack
+ // frame when performing a call.
+ void CallPrologue();
+ void CallEpilogue();
+
// Returns the offset of register |index| relative to RegisterFilePointer().
Node* RegisterFrameOffset(Node* index);
@@ -173,8 +181,6 @@ class InterpreterAssembler {
Node* CallN(CallDescriptor* descriptor, Node* code_target, Node** args);
Node* CallIC(CallInterfaceDescriptor descriptor, Node* target, Node** args);
- Node* CallJSBuiltin(int context_index, Node* receiver, Node** js_args,
- int js_arg_count);
// Returns BytecodeOffset() advanced by delta bytecodes. Note: this does not
// update BytecodeOffset() itself.
@@ -193,8 +199,11 @@ class InterpreterAssembler {
interpreter::Bytecode bytecode_;
base::SmartPointer<RawMachineAssembler> raw_assembler_;
+
Node* accumulator_;
+ Node* bytecode_offset_;
Node* context_;
+
bool code_generated_;
DISALLOW_COPY_AND_ASSIGN(InterpreterAssembler);
« no previous file with comments | « src/arm64/builtins-arm64.cc ('k') | src/compiler/interpreter-assembler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698