| Index: src/compiler/interpreter-assembler.cc
|
| diff --git a/src/compiler/interpreter-assembler.cc b/src/compiler/interpreter-assembler.cc
|
| index fa2612354f16c680afb25c5b659d189ed05fc27f..3179895c92924e8f3f09a3867eeceec420360940 100644
|
| --- a/src/compiler/interpreter-assembler.cc
|
| +++ b/src/compiler/interpreter-assembler.cc
|
| @@ -30,7 +30,8 @@ InterpreterAssembler::InterpreterAssembler(Isolate* isolate, Zone* zone,
|
| : bytecode_(bytecode),
|
| raw_assembler_(new RawMachineAssembler(
|
| isolate, new (zone) Graph(zone),
|
| - Linkage::GetInterpreterDispatchDescriptor(zone), kMachPtr,
|
| + Linkage::GetInterpreterDispatchDescriptor(zone),
|
| + MachineType::PointerRepresentation(),
|
| InstructionSelector::SupportedMachineOperatorFlags())),
|
| accumulator_(
|
| raw_assembler_->Parameter(Linkage::kInterpreterAccumulatorParameter)),
|
| @@ -112,21 +113,22 @@ Node* InterpreterAssembler::RegisterLocation(Node* reg_index) {
|
|
|
| Node* InterpreterAssembler::LoadRegister(interpreter::Register reg) {
|
| return raw_assembler_->Load(
|
| - kMachAnyTagged, RegisterFileRawPointer(),
|
| + MachineType::AnyTagged(), RegisterFileRawPointer(),
|
| RegisterFrameOffset(Int32Constant(reg.ToOperand())));
|
| }
|
|
|
|
|
| Node* InterpreterAssembler::LoadRegister(Node* reg_index) {
|
| - return raw_assembler_->Load(kMachAnyTagged, RegisterFileRawPointer(),
|
| + return raw_assembler_->Load(MachineType::AnyTagged(),
|
| + RegisterFileRawPointer(),
|
| RegisterFrameOffset(reg_index));
|
| }
|
|
|
|
|
| Node* InterpreterAssembler::StoreRegister(Node* value, Node* reg_index) {
|
| - return raw_assembler_->Store(kMachAnyTagged, RegisterFileRawPointer(),
|
| - RegisterFrameOffset(reg_index), value,
|
| - kNoWriteBarrier);
|
| + return raw_assembler_->Store(
|
| + MachineType::AnyTagged(), RegisterFileRawPointer(),
|
| + RegisterFrameOffset(reg_index), value, kNoWriteBarrier);
|
| }
|
|
|
|
|
| @@ -135,7 +137,7 @@ Node* InterpreterAssembler::BytecodeOperand(int operand_index) {
|
| DCHECK_EQ(interpreter::OperandSize::kByte,
|
| interpreter::Bytecodes::GetOperandSize(bytecode_, operand_index));
|
| return raw_assembler_->Load(
|
| - kMachUint8, BytecodeArrayTaggedPointer(),
|
| + MachineType::Uint8(), BytecodeArrayTaggedPointer(),
|
| IntPtrAdd(BytecodeOffset(),
|
| Int32Constant(interpreter::Bytecodes::GetOperandOffset(
|
| bytecode_, operand_index))));
|
| @@ -147,7 +149,7 @@ Node* InterpreterAssembler::BytecodeOperandSignExtended(int operand_index) {
|
| DCHECK_EQ(interpreter::OperandSize::kByte,
|
| interpreter::Bytecodes::GetOperandSize(bytecode_, operand_index));
|
| Node* load = raw_assembler_->Load(
|
| - kMachInt8, BytecodeArrayTaggedPointer(),
|
| + MachineType::Int8(), BytecodeArrayTaggedPointer(),
|
| IntPtrAdd(BytecodeOffset(),
|
| Int32Constant(interpreter::Bytecodes::GetOperandOffset(
|
| bytecode_, operand_index))));
|
| @@ -165,7 +167,7 @@ Node* InterpreterAssembler::BytecodeOperandShort(int operand_index) {
|
| interpreter::Bytecodes::GetOperandSize(bytecode_, operand_index));
|
| if (TargetSupportsUnalignedAccess()) {
|
| return raw_assembler_->Load(
|
| - kMachUint16, BytecodeArrayTaggedPointer(),
|
| + MachineType::Uint16(), BytecodeArrayTaggedPointer(),
|
| IntPtrAdd(BytecodeOffset(),
|
| Int32Constant(interpreter::Bytecodes::GetOperandOffset(
|
| bytecode_, operand_index))));
|
| @@ -173,10 +175,10 @@ Node* InterpreterAssembler::BytecodeOperandShort(int operand_index) {
|
| int offset =
|
| interpreter::Bytecodes::GetOperandOffset(bytecode_, operand_index);
|
| Node* first_byte = raw_assembler_->Load(
|
| - kMachUint8, BytecodeArrayTaggedPointer(),
|
| + MachineType::Uint8(), BytecodeArrayTaggedPointer(),
|
| IntPtrAdd(BytecodeOffset(), Int32Constant(offset)));
|
| Node* second_byte = raw_assembler_->Load(
|
| - kMachUint8, BytecodeArrayTaggedPointer(),
|
| + MachineType::Uint8(), BytecodeArrayTaggedPointer(),
|
| IntPtrAdd(BytecodeOffset(), Int32Constant(offset + 1)));
|
| #if V8_TARGET_LITTLE_ENDIAN
|
| return raw_assembler_->WordOr(WordShl(second_byte, kBitsPerByte),
|
| @@ -308,7 +310,8 @@ Node* InterpreterAssembler::LoadConstantPoolEntry(Node* index) {
|
| Node* entry_offset =
|
| IntPtrAdd(IntPtrConstant(FixedArray::kHeaderSize - kHeapObjectTag),
|
| WordShl(index, kPointerSizeLog2));
|
| - return raw_assembler_->Load(kMachAnyTagged, constant_pool, entry_offset);
|
| + return raw_assembler_->Load(MachineType::AnyTagged(), constant_pool,
|
| + entry_offset);
|
| }
|
|
|
|
|
| @@ -317,18 +320,19 @@ Node* InterpreterAssembler::LoadFixedArrayElement(Node* fixed_array,
|
| Node* entry_offset =
|
| IntPtrAdd(IntPtrConstant(FixedArray::kHeaderSize - kHeapObjectTag),
|
| WordShl(Int32Constant(index), kPointerSizeLog2));
|
| - return raw_assembler_->Load(kMachAnyTagged, fixed_array, entry_offset);
|
| + return raw_assembler_->Load(MachineType::AnyTagged(), fixed_array,
|
| + entry_offset);
|
| }
|
|
|
|
|
| Node* InterpreterAssembler::LoadObjectField(Node* object, int offset) {
|
| - return raw_assembler_->Load(kMachAnyTagged, object,
|
| + return raw_assembler_->Load(MachineType::AnyTagged(), object,
|
| IntPtrConstant(offset - kHeapObjectTag));
|
| }
|
|
|
|
|
| Node* InterpreterAssembler::LoadContextSlot(Node* context, int slot_index) {
|
| - return raw_assembler_->Load(kMachAnyTagged, context,
|
| + return raw_assembler_->Load(MachineType::AnyTagged(), context,
|
| IntPtrConstant(Context::SlotOffset(slot_index)));
|
| }
|
|
|
| @@ -337,7 +341,7 @@ Node* InterpreterAssembler::LoadContextSlot(Node* context, Node* slot_index) {
|
| Node* offset =
|
| IntPtrAdd(WordShl(slot_index, kPointerSizeLog2),
|
| Int32Constant(Context::kHeaderSize - kHeapObjectTag));
|
| - return raw_assembler_->Load(kMachAnyTagged, context, offset);
|
| + return raw_assembler_->Load(MachineType::AnyTagged(), context, offset);
|
| }
|
|
|
|
|
| @@ -346,14 +350,14 @@ Node* InterpreterAssembler::StoreContextSlot(Node* context, Node* slot_index,
|
| Node* offset =
|
| IntPtrAdd(WordShl(slot_index, kPointerSizeLog2),
|
| Int32Constant(Context::kHeaderSize - kHeapObjectTag));
|
| - return raw_assembler_->Store(kMachAnyTagged, context, offset, value,
|
| + return raw_assembler_->Store(MachineType::AnyTagged(), context, offset, value,
|
| kFullWriteBarrier);
|
| }
|
|
|
|
|
| Node* InterpreterAssembler::LoadTypeFeedbackVector() {
|
| Node* function = raw_assembler_->Load(
|
| - kMachAnyTagged, RegisterFileRawPointer(),
|
| + MachineType::AnyTagged(), RegisterFileRawPointer(),
|
| IntPtrConstant(InterpreterFrameConstants::kFunctionFromRegisterPointer));
|
| Node* shared_info =
|
| LoadObjectField(function, JSFunction::kSharedFunctionInfoOffset);
|
| @@ -477,8 +481,9 @@ Node* InterpreterAssembler::CallRuntime(Node* function_id, Node* first_arg,
|
| Node* function_offset = raw_assembler_->Int32Mul(
|
| function_id, Int32Constant(sizeof(Runtime::Function)));
|
| Node* function = IntPtrAdd(function_table, function_offset);
|
| - Node* function_entry = raw_assembler_->Load(
|
| - kMachPtr, function, Int32Constant(offsetof(Runtime::Function, entry)));
|
| + Node* function_entry =
|
| + raw_assembler_->Load(MachineType::Pointer(), function,
|
| + Int32Constant(offsetof(Runtime::Function, entry)));
|
|
|
| Node** args = zone()->NewArray<Node*>(4);
|
| args[0] = arg_count;
|
| @@ -562,12 +567,12 @@ void InterpreterAssembler::Dispatch() {
|
|
|
| void InterpreterAssembler::DispatchTo(Node* new_bytecode_offset) {
|
| Node* target_bytecode = raw_assembler_->Load(
|
| - kMachUint8, BytecodeArrayTaggedPointer(), new_bytecode_offset);
|
| + MachineType::Uint8(), BytecodeArrayTaggedPointer(), new_bytecode_offset);
|
|
|
| // TODO(rmcilroy): Create a code target dispatch table to avoid conversion
|
| // from code object on every dispatch.
|
| Node* target_code_object = raw_assembler_->Load(
|
| - kMachPtr, DispatchTableRawPointer(),
|
| + MachineType::Pointer(), DispatchTableRawPointer(),
|
| raw_assembler_->Word32Shl(target_bytecode,
|
| Int32Constant(kPointerSizeLog2)));
|
|
|
|
|