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

Unified Diff: src/interpreter/interpreter.h

Issue 1985753002: [interpreter] Introduce fused bytecodes for common sequences. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: src/interpreter/interpreter.h
diff --git a/src/interpreter/interpreter.h b/src/interpreter/interpreter.h
index 57930bbde0b8137e5434aef8e90c2143ed9c8c7b..28657e710aecbf26d9592d2a21ed9a953f2cc258 100644
--- a/src/interpreter/interpreter.h
+++ b/src/interpreter/interpreter.h
@@ -21,6 +21,10 @@ class Isolate;
class Callable;
class CompilationInfo;
+namespace compiler {
+class Node;
+}
+
namespace interpreter {
class InterpreterAssembler;
@@ -80,26 +84,23 @@ class Interpreter {
// |compare_op|.
void DoCompareOp(Token::Value compare_op, InterpreterAssembler* assembler);
- // Generates code to load a constant from the constant pool.
- void DoLoadConstant(InterpreterAssembler* assembler);
-
// Generates code to perform a global load via |ic|.
- void DoLoadGlobal(Callable ic, InterpreterAssembler* assembler);
+ void DoLdaGlobal(Callable ic, InterpreterAssembler* assembler);
// Generates code to perform a global store via |ic|.
- void DoStoreGlobal(Callable ic, InterpreterAssembler* assembler);
+ void DoStaGlobal(Callable ic, InterpreterAssembler* assembler);
// Generates code to perform a named property load via |ic|.
- void DoLoadIC(Callable ic, InterpreterAssembler* assembler);
+ void DoLdaIC(Callable ic, InterpreterAssembler* assembler);
// Generates code to perform a keyed property load via |ic|.
void DoKeyedLoadIC(Callable ic, InterpreterAssembler* assembler);
- // Generates code to perform a namedproperty store via |ic|.
- void DoStoreIC(Callable ic, InterpreterAssembler* assembler);
+ // Generates code to perform a named property store via |ic|.
+ void DoStaNamedProperty(Callable ic, InterpreterAssembler* assembler);
// Generates code to perform a keyed property store via |ic|.
- void DoKeyedStoreIC(Callable ic, InterpreterAssembler* assembler);
+ void DoStaKeyedProperty(Callable ic, InterpreterAssembler* assembler);
// Generates code to perform a JS call.
void DoJSCall(InterpreterAssembler* assembler, TailCallMode tail_call_mode);
@@ -124,12 +125,22 @@ class Interpreter {
InterpreterAssembler* assembler);
// Generates code to perform a lookup slot load via |function_id|.
- void DoLoadLookupSlot(Runtime::FunctionId function_id,
- InterpreterAssembler* assembler);
+ void DoLdaLookupSlot(Runtime::FunctionId function_id,
+ InterpreterAssembler* assembler);
// Generates code to perform a lookup slot store depending on |language_mode|.
- void DoStoreLookupSlot(LanguageMode language_mode,
- InterpreterAssembler* assembler);
+ void DoStaLookupSlot(LanguageMode language_mode,
+ InterpreterAssembler* assembler);
+
+ // Helpers for fused bytecodes. These require the caller to add the
+ // Dispatch().
rmcilroy 2016/05/17 15:49:33 I don't think it's necessary to mention the caller
oth 2016/05/18 20:22:25 Done.
+ compiler::Node* BuildLoadUndefined(InterpreterAssembler* assembler);
+ compiler::Node* BuildLoadContextSlot(InterpreterAssembler* assembler);
+ compiler::Node* BuildLoadGlobal(Callable ic, InterpreterAssembler* assembler);
+ compiler::Node* BuildLoadNamedProperty(Callable ic,
+ InterpreterAssembler* assembler);
+ compiler::Node* BuildLoadKeyedProperty(Callable ic,
+ InterpreterAssembler* assembler);
uintptr_t GetDispatchCounter(Bytecode from, Bytecode to) const;

Powered by Google App Engine
This is Rietveld 408576698