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

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

Issue 1333843002: [runtime] Move binary operator fallbacks into the runtime. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 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 side-by-side diff with in-line comments
Download patch
Index: src/compiler/interpreter-assembler.cc
diff --git a/src/compiler/interpreter-assembler.cc b/src/compiler/interpreter-assembler.cc
index 085ce7cdf140c2b5ba335c2c0917157b3e828596..7cc97797dbb8b35980f014686d030016ccbe2480 100644
--- a/src/compiler/interpreter-assembler.cc
+++ b/src/compiler/interpreter-assembler.cc
@@ -80,6 +80,18 @@ Node* InterpreterAssembler::ContextTaggedPointer() {
}
+Node* InterpreterAssembler::EmptyFrameState() {
+ Node* state_values = raw_assembler_->graph()->NewNode(
+ raw_assembler_->common()->StateValues(0));
+ return raw_assembler_->graph()->NewNode(
+ raw_assembler_->common()->FrameState(
+ BailoutId::None(), OutputFrameStateCombine::Ignore(), nullptr),
+ state_values, state_values, state_values, ContextTaggedPointer(),
+ HeapConstant(isolate()->factory()->undefined_string()),
+ raw_assembler_->graph()->start());
+}
+
+
Node* InterpreterAssembler::RegisterFileRawPointer() {
return raw_assembler_->Parameter(Linkage::kInterpreterRegisterFileParameter);
}
@@ -271,36 +283,10 @@ Node* InterpreterAssembler::CallIC(CallInterfaceDescriptor descriptor,
}
-Node* InterpreterAssembler::CallJSBuiltin(int context_index, Node* receiver,
- Node** js_args, int js_arg_count) {
- Node* global_object = LoadContextSlot(Context::GLOBAL_OBJECT_INDEX);
- Node* native_context =
- LoadObjectField(global_object, GlobalObject::kNativeContextOffset);
- Node* function = LoadContextSlot(native_context, context_index);
- Node* context = LoadObjectField(function, JSFunction::kContextOffset);
-
- int index = 0;
- Node** args = zone()->NewArray<Node*>(js_arg_count + 2);
- args[index++] = receiver;
- for (int i = 0; i < js_arg_count; i++) {
- args[index++] = js_args[i];
- }
- args[index++] = context;
-
- CallDescriptor* descriptor = Linkage::GetJSCallDescriptor(
- zone(), false, js_arg_count + 1, CallDescriptor::kNoFlags);
- return raw_assembler_->CallN(descriptor, function, args);
-}
-
-
-Node* InterpreterAssembler::CallJSBuiltin(int context_index, Node* receiver) {
- return CallJSBuiltin(context_index, receiver, nullptr, 0);
-}
-
-
-Node* InterpreterAssembler::CallJSBuiltin(int context_index, Node* receiver,
- Node* arg1) {
- return CallJSBuiltin(context_index, receiver, &arg1, 1);
+Node* InterpreterAssembler::CallRuntime(Runtime::FunctionId function_id,
+ Node* arg1, Node* arg2) {
+ return raw_assembler_->CallRuntime2(
+ function_id, arg1, arg2, ContextTaggedPointer(), EmptyFrameState());
}

Powered by Google App Engine
This is Rietveld 408576698