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

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

Issue 2084623002: Reland: [Interpreter] Map runtime id's to intrinsic id's in InvokeIntrinsic bytecode. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Reland Created 4 years, 6 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/interpreter/interpreter-assembler.h ('k') | src/interpreter/interpreter-intrinsics.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/interpreter/interpreter-assembler.h" 5 #include "src/interpreter/interpreter-assembler.h"
6 6
7 #include <limits> 7 #include <limits>
8 #include <ostream> 8 #include <ostream>
9 9
10 #include "src/code-factory.h" 10 #include "src/code-factory.h"
(...skipping 345 matching lines...) Expand 10 before | Expand all | Expand 10 after
356 356
357 Node* InterpreterAssembler::BytecodeOperandRuntimeId(int operand_index) { 357 Node* InterpreterAssembler::BytecodeOperandRuntimeId(int operand_index) {
358 DCHECK(OperandType::kRuntimeId == 358 DCHECK(OperandType::kRuntimeId ==
359 Bytecodes::GetOperandType(bytecode_, operand_index)); 359 Bytecodes::GetOperandType(bytecode_, operand_index));
360 OperandSize operand_size = 360 OperandSize operand_size =
361 Bytecodes::GetOperandSize(bytecode_, operand_index, operand_scale()); 361 Bytecodes::GetOperandSize(bytecode_, operand_index, operand_scale());
362 DCHECK_EQ(operand_size, OperandSize::kShort); 362 DCHECK_EQ(operand_size, OperandSize::kShort);
363 return BytecodeUnsignedOperand(operand_index, operand_size); 363 return BytecodeUnsignedOperand(operand_index, operand_size);
364 } 364 }
365 365
366 Node* InterpreterAssembler::BytecodeOperandIntrinsicId(int operand_index) {
367 DCHECK(OperandType::kIntrinsicId ==
368 Bytecodes::GetOperandType(bytecode_, operand_index));
369 OperandSize operand_size =
370 Bytecodes::GetOperandSize(bytecode_, operand_index, operand_scale());
371 DCHECK_EQ(operand_size, OperandSize::kByte);
372 return BytecodeUnsignedOperand(operand_index, operand_size);
373 }
374
366 Node* InterpreterAssembler::LoadConstantPoolEntry(Node* index) { 375 Node* InterpreterAssembler::LoadConstantPoolEntry(Node* index) {
367 Node* constant_pool = LoadObjectField(BytecodeArrayTaggedPointer(), 376 Node* constant_pool = LoadObjectField(BytecodeArrayTaggedPointer(),
368 BytecodeArray::kConstantPoolOffset); 377 BytecodeArray::kConstantPoolOffset);
369 Node* entry_offset = 378 Node* entry_offset =
370 IntPtrAdd(IntPtrConstant(FixedArray::kHeaderSize - kHeapObjectTag), 379 IntPtrAdd(IntPtrConstant(FixedArray::kHeaderSize - kHeapObjectTag),
371 WordShl(index, kPointerSizeLog2)); 380 WordShl(index, kPointerSizeLog2));
372 return Load(MachineType::AnyTagged(), constant_pool, entry_offset); 381 return Load(MachineType::AnyTagged(), constant_pool, entry_offset);
373 } 382 }
374 383
375 Node* InterpreterAssembler::LoadContextSlot(Node* context, int slot_index) { 384 Node* InterpreterAssembler::LoadContextSlot(Node* context, int slot_index) {
(...skipping 385 matching lines...) Expand 10 before | Expand all | Expand 10 after
761 Goto(&loop); 770 Goto(&loop);
762 } 771 }
763 Bind(&done_loop); 772 Bind(&done_loop);
764 773
765 return array; 774 return array;
766 } 775 }
767 776
768 } // namespace interpreter 777 } // namespace interpreter
769 } // namespace internal 778 } // namespace internal
770 } // namespace v8 779 } // namespace v8
OLDNEW
« no previous file with comments | « src/interpreter/interpreter-assembler.h ('k') | src/interpreter/interpreter-intrinsics.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698