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

Side by Side Diff: src/compiler/interpreter-assembler.cc

Issue 1595103006: [Interpreter] Preparation for wide registers. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Rebase. Created 4 years, 11 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
« no previous file with comments | « src/compiler/bytecode-graph-builder.cc ('k') | src/interpreter/bytecode-array-builder.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 #include "src/compiler/interpreter-assembler.h" 5 #include "src/compiler/interpreter-assembler.h"
6 6
7 #include <ostream> 7 #include <ostream>
8 8
9 #include "src/code-factory.h" 9 #include "src/code-factory.h"
10 #include "src/compiler/graph.h" 10 #include "src/compiler/graph.h"
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after
252 load = raw_assembler_->ChangeInt32ToInt64(load); 252 load = raw_assembler_->ChangeInt32ToInt64(load);
253 } 253 }
254 return load; 254 return load;
255 } 255 }
256 256
257 257
258 Node* InterpreterAssembler::BytecodeOperandCount(int operand_index) { 258 Node* InterpreterAssembler::BytecodeOperandCount(int operand_index) {
259 switch (interpreter::Bytecodes::GetOperandSize(bytecode_, operand_index)) { 259 switch (interpreter::Bytecodes::GetOperandSize(bytecode_, operand_index)) {
260 case interpreter::OperandSize::kByte: 260 case interpreter::OperandSize::kByte:
261 DCHECK_EQ( 261 DCHECK_EQ(
262 interpreter::OperandType::kCount8, 262 interpreter::OperandType::kRegCount8,
263 interpreter::Bytecodes::GetOperandType(bytecode_, operand_index)); 263 interpreter::Bytecodes::GetOperandType(bytecode_, operand_index));
264 return BytecodeOperand(operand_index); 264 return BytecodeOperand(operand_index);
265 case interpreter::OperandSize::kShort: 265 case interpreter::OperandSize::kShort:
266 DCHECK_EQ( 266 DCHECK_EQ(
267 interpreter::OperandType::kCount16, 267 interpreter::OperandType::kRegCount16,
268 interpreter::Bytecodes::GetOperandType(bytecode_, operand_index)); 268 interpreter::Bytecodes::GetOperandType(bytecode_, operand_index));
269 return BytecodeOperandShort(operand_index); 269 return BytecodeOperandShort(operand_index);
270 default: 270 case interpreter::OperandSize::kNone:
271 UNREACHABLE(); 271 UNREACHABLE();
272 return nullptr;
273 } 272 }
273 return nullptr;
274 } 274 }
275 275
276 276
277 Node* InterpreterAssembler::BytecodeOperandImm(int operand_index) { 277 Node* InterpreterAssembler::BytecodeOperandImm(int operand_index) {
278 DCHECK_EQ(interpreter::OperandType::kImm8, 278 DCHECK_EQ(interpreter::OperandType::kImm8,
279 interpreter::Bytecodes::GetOperandType(bytecode_, operand_index)); 279 interpreter::Bytecodes::GetOperandType(bytecode_, operand_index));
280 return BytecodeOperandSignExtended(operand_index); 280 return BytecodeOperandSignExtended(operand_index);
281 } 281 }
282 282
283 283
284 Node* InterpreterAssembler::BytecodeOperandIdx(int operand_index) { 284 Node* InterpreterAssembler::BytecodeOperandIdx(int operand_index) {
285 switch (interpreter::Bytecodes::GetOperandSize(bytecode_, operand_index)) { 285 switch (interpreter::Bytecodes::GetOperandSize(bytecode_, operand_index)) {
286 case interpreter::OperandSize::kByte: 286 case interpreter::OperandSize::kByte:
287 DCHECK_EQ( 287 DCHECK_EQ(
288 interpreter::OperandType::kIdx8, 288 interpreter::OperandType::kIdx8,
289 interpreter::Bytecodes::GetOperandType(bytecode_, operand_index)); 289 interpreter::Bytecodes::GetOperandType(bytecode_, operand_index));
290 return BytecodeOperand(operand_index); 290 return BytecodeOperand(operand_index);
291 case interpreter::OperandSize::kShort: 291 case interpreter::OperandSize::kShort:
292 DCHECK_EQ( 292 DCHECK_EQ(
293 interpreter::OperandType::kIdx16, 293 interpreter::OperandType::kIdx16,
294 interpreter::Bytecodes::GetOperandType(bytecode_, operand_index)); 294 interpreter::Bytecodes::GetOperandType(bytecode_, operand_index));
295 return BytecodeOperandShort(operand_index); 295 return BytecodeOperandShort(operand_index);
296 default: 296 case interpreter::OperandSize::kNone:
297 UNREACHABLE(); 297 UNREACHABLE();
298 return nullptr;
299 } 298 }
299 return nullptr;
300 } 300 }
301 301
302 302
303 Node* InterpreterAssembler::BytecodeOperandReg(int operand_index) { 303 Node* InterpreterAssembler::BytecodeOperandReg(int operand_index) {
304 switch (interpreter::Bytecodes::GetOperandType(bytecode_, operand_index)) { 304 switch (interpreter::Bytecodes::GetOperandType(bytecode_, operand_index)) {
305 case interpreter::OperandType::kMaybeReg8:
305 case interpreter::OperandType::kReg8: 306 case interpreter::OperandType::kReg8:
306 case interpreter::OperandType::kRegPair8: 307 case interpreter::OperandType::kRegPair8:
307 case interpreter::OperandType::kRegTriple8: 308 case interpreter::OperandType::kRegTriple8:
308 case interpreter::OperandType::kMaybeReg8:
309 DCHECK_EQ( 309 DCHECK_EQ(
310 interpreter::OperandSize::kByte, 310 interpreter::OperandSize::kByte,
311 interpreter::Bytecodes::GetOperandSize(bytecode_, operand_index)); 311 interpreter::Bytecodes::GetOperandSize(bytecode_, operand_index));
312 return BytecodeOperandSignExtended(operand_index); 312 return BytecodeOperandSignExtended(operand_index);
313 case interpreter::OperandType::kMaybeReg16:
313 case interpreter::OperandType::kReg16: 314 case interpreter::OperandType::kReg16:
315 case interpreter::OperandType::kRegPair16:
316 case interpreter::OperandType::kRegTriple16:
314 DCHECK_EQ( 317 DCHECK_EQ(
315 interpreter::OperandSize::kShort, 318 interpreter::OperandSize::kShort,
316 interpreter::Bytecodes::GetOperandSize(bytecode_, operand_index)); 319 interpreter::Bytecodes::GetOperandSize(bytecode_, operand_index));
317 return BytecodeOperandShortSignExtended(operand_index); 320 return BytecodeOperandShortSignExtended(operand_index);
318 default: 321 case interpreter::OperandType::kNone:
322 case interpreter::OperandType::kIdx8:
323 case interpreter::OperandType::kIdx16:
324 case interpreter::OperandType::kImm8:
325 case interpreter::OperandType::kRegCount8:
326 case interpreter::OperandType::kRegCount16:
319 UNREACHABLE(); 327 UNREACHABLE();
320 return nullptr;
321 } 328 }
329 return nullptr;
322 } 330 }
323 331
324 332
325 Node* InterpreterAssembler::Int32Constant(int value) { 333 Node* InterpreterAssembler::Int32Constant(int value) {
326 return raw_assembler_->Int32Constant(value); 334 return raw_assembler_->Int32Constant(value);
327 } 335 }
328 336
329 337
330 Node* InterpreterAssembler::IntPtrConstant(intptr_t value) { 338 Node* InterpreterAssembler::IntPtrConstant(intptr_t value) {
331 return raw_assembler_->IntPtrConstant(value); 339 return raw_assembler_->IntPtrConstant(value);
(...skipping 411 matching lines...) Expand 10 before | Expand all | Expand 10 after
743 return raw_assembler_->call_descriptor(); 751 return raw_assembler_->call_descriptor();
744 } 752 }
745 753
746 754
747 Zone* InterpreterAssembler::zone() { return raw_assembler_->zone(); } 755 Zone* InterpreterAssembler::zone() { return raw_assembler_->zone(); }
748 756
749 757
750 } // namespace compiler 758 } // namespace compiler
751 } // namespace internal 759 } // namespace internal
752 } // namespace v8 760 } // namespace v8
OLDNEW
« no previous file with comments | « src/compiler/bytecode-graph-builder.cc ('k') | src/interpreter/bytecode-array-builder.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698