OLD | NEW |
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 Loading... |
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 | |
375 Node* InterpreterAssembler::LoadConstantPoolEntry(Node* index) { | 366 Node* InterpreterAssembler::LoadConstantPoolEntry(Node* index) { |
376 Node* constant_pool = LoadObjectField(BytecodeArrayTaggedPointer(), | 367 Node* constant_pool = LoadObjectField(BytecodeArrayTaggedPointer(), |
377 BytecodeArray::kConstantPoolOffset); | 368 BytecodeArray::kConstantPoolOffset); |
378 Node* entry_offset = | 369 Node* entry_offset = |
379 IntPtrAdd(IntPtrConstant(FixedArray::kHeaderSize - kHeapObjectTag), | 370 IntPtrAdd(IntPtrConstant(FixedArray::kHeaderSize - kHeapObjectTag), |
380 WordShl(index, kPointerSizeLog2)); | 371 WordShl(index, kPointerSizeLog2)); |
381 return Load(MachineType::AnyTagged(), constant_pool, entry_offset); | 372 return Load(MachineType::AnyTagged(), constant_pool, entry_offset); |
382 } | 373 } |
383 | 374 |
384 Node* InterpreterAssembler::LoadContextSlot(Node* context, int slot_index) { | 375 Node* InterpreterAssembler::LoadContextSlot(Node* context, int slot_index) { |
(...skipping 385 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
770 Goto(&loop); | 761 Goto(&loop); |
771 } | 762 } |
772 Bind(&done_loop); | 763 Bind(&done_loop); |
773 | 764 |
774 return array; | 765 return array; |
775 } | 766 } |
776 | 767 |
777 } // namespace interpreter | 768 } // namespace interpreter |
778 } // namespace internal | 769 } // namespace internal |
779 } // namespace v8 | 770 } // namespace v8 |
OLD | NEW |