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

Side by Side Diff: src/compiler/raw-machine-assembler.cc

Issue 1300813005: [Interpreter] Add implementations of arithmetic binary op bytecodes. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@mstar_v8h
Patch Set: Created 5 years, 4 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 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 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/compiler/raw-machine-assembler.h" 5 #include "src/compiler/raw-machine-assembler.h"
6 6
7 #include "src/code-factory.h" 7 #include "src/code-factory.h"
8 #include "src/compiler/pipeline.h" 8 #include "src/compiler/pipeline.h"
9 #include "src/compiler/scheduler.h" 9 #include "src/compiler/scheduler.h"
10 10
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
124 isolate(), zone(), callable.descriptor(), 1, 124 isolate(), zone(), callable.descriptor(), 1,
125 CallDescriptor::kNeedsFrameState, Operator::kNoProperties); 125 CallDescriptor::kNeedsFrameState, Operator::kNoProperties);
126 Node* stub_code = HeapConstant(callable.code()); 126 Node* stub_code = HeapConstant(callable.code());
127 Node* call = graph()->NewNode(common()->Call(desc), stub_code, function, 127 Node* call = graph()->NewNode(common()->Call(desc), stub_code, function,
128 receiver, context, frame_state); 128 receiver, context, frame_state);
129 schedule()->AddNode(CurrentBlock(), call); 129 schedule()->AddNode(CurrentBlock(), call);
130 return call; 130 return call;
131 } 131 }
132 132
133 133
134 Node* RawMachineAssembler::CallJS0(Node* function, Node* receiver, 134 Node* RawMachineAssembler::CallJS(Node* function, Node* receiver, Node* context,
135 Node* context, Node* frame_state) { 135 Node** args, int arg_count) {
136 int node_input_count = arg_count + 5;
137 Node** buffer = zone()->NewArray<Node*>(node_input_count);
138 int index = 0;
139 buffer[index++] = function;
140 buffer[index++] = receiver;
141 for (int i = 0; i < arg_count; i++) {
142 buffer[index++] = args[i];
143 }
144 buffer[index++] = context;
145 buffer[index++] = graph()->start();
146 buffer[index++] = graph()->start();
Michael Starzinger 2015/08/19 17:18:56 Please don't add effect and control inputs to the
rmcilroy 2015/08/24 11:49:07 As discussed in https://codereview.chromium.org/12
147
148 CallDescriptor* descriptor = Linkage::GetJSCallDescriptor(
Michael Starzinger 2015/08/19 17:18:56 Would it be possible to just use RawMachineAssembl
rmcilroy 2015/08/24 11:49:07 Done (also removed CallJs0 and renamed CallInterpr
149 zone(), false, arg_count + 1, CallDescriptor::kNoFlags);
150 Node* call =
151 graph()->NewNode(common()->Call(descriptor), node_input_count, buffer);
152 schedule()->AddNode(CurrentBlock(), call);
153 return call;
154 }
155
156
157 Node* RawMachineAssembler::CallJS0WithFrameState(Node* function, Node* receiver,
158 Node* context,
159 Node* frame_state) {
136 CallDescriptor* descriptor = Linkage::GetJSCallDescriptor( 160 CallDescriptor* descriptor = Linkage::GetJSCallDescriptor(
137 zone(), false, 1, CallDescriptor::kNeedsFrameState); 161 zone(), false, 1, CallDescriptor::kNeedsFrameState);
138 Node* call = graph()->NewNode(common()->Call(descriptor), function, receiver, 162 Node* call = graph()->NewNode(common()->Call(descriptor), function, receiver,
139 context, frame_state); 163 context, frame_state);
140 schedule()->AddNode(CurrentBlock(), call); 164 schedule()->AddNode(CurrentBlock(), call);
141 return call; 165 return call;
142 } 166 }
143 167
144 168
145 Node* RawMachineAssembler::CallRuntime1(Runtime::FunctionId function, 169 Node* RawMachineAssembler::CallRuntime1(Runtime::FunctionId function,
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
274 DCHECK_NOT_NULL(schedule_); 298 DCHECK_NOT_NULL(schedule_);
275 DCHECK(current_block_ != nullptr); 299 DCHECK(current_block_ != nullptr);
276 Node* node = graph()->NewNode(op, input_count, inputs); 300 Node* node = graph()->NewNode(op, input_count, inputs);
277 schedule()->AddNode(CurrentBlock(), node); 301 schedule()->AddNode(CurrentBlock(), node);
278 return node; 302 return node;
279 } 303 }
280 304
281 } // namespace compiler 305 } // namespace compiler
282 } // namespace internal 306 } // namespace internal
283 } // namespace v8 307 } // namespace v8
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698