@@ -32,19 +32,19 @@ InterpreterAssembler::InterpreterAssembler(CodeAssemblerState* state,
3232 bytecode_ (bytecode),
3333 operand_scale_(operand_scale),
3434 TVARIABLE_CONSTRUCTOR(interpreted_frame_pointer_),
35- VARIABLE_CONSTRUCTOR (
36- bytecode_array_, MachineRepresentation:: kTagged ,
37- Parameter (InterpreterDispatchDescriptor::kBytecodeArray )),
35+ TVARIABLE_CONSTRUCTOR (
36+ bytecode_array_,
37+ CAST ( Parameter(InterpreterDispatchDescriptor::kBytecodeArray ) )),
3838 TVARIABLE_CONSTRUCTOR(
3939 bytecode_offset_,
4040 UncheckedCast<IntPtrT>(
4141 Parameter (InterpreterDispatchDescriptor::kBytecodeOffset ))),
42- VARIABLE_CONSTRUCTOR (
43- dispatch_table_, MachineType::PointerRepresentation(),
44- Parameter( InterpreterDispatchDescriptor::kDispatchTable )),
45- VARIABLE_CONSTRUCTOR (
46- accumulator_, MachineRepresentation:: kTagged ,
47- Parameter (InterpreterDispatchDescriptor::kAccumulator )),
42+ TVARIABLE_CONSTRUCTOR (
43+ dispatch_table_, UncheckedCast<ExternalReference>(Parameter(
44+ InterpreterDispatchDescriptor::kDispatchTable ) )),
45+ TVARIABLE_CONSTRUCTOR (
46+ accumulator_,
47+ CAST ( Parameter(InterpreterDispatchDescriptor::kAccumulator ) )),
4848 accumulator_use_(AccumulatorUse::kNone ),
4949 made_call_(false ),
5050 reloaded_frame_ptr_(false ),
@@ -129,27 +129,27 @@ void InterpreterAssembler::SaveBytecodeOffset() {
129129 }
130130}
131131
132- Node* InterpreterAssembler::BytecodeArrayTaggedPointer () {
132+ TNode<BytecodeArray> InterpreterAssembler::BytecodeArrayTaggedPointer () {
133133 // Force a re-load of the bytecode array after every call in case the debugger
134134 // has been activated.
135135 if (!bytecode_array_valid_) {
136- bytecode_array_. Bind (LoadRegister (Register::bytecode_array ()));
136+ bytecode_array_ = CAST (LoadRegister (Register::bytecode_array ()));
137137 bytecode_array_valid_ = true ;
138138 }
139139 return bytecode_array_.value ();
140140}
141141
142- Node* InterpreterAssembler::DispatchTableRawPointer () {
142+ TNode<ExternalReference> InterpreterAssembler::DispatchTablePointer () {
143143 if (Bytecodes::MakesCallAlongCriticalPath (bytecode_) && made_call_ &&
144144 (dispatch_table_.value () ==
145145 Parameter (InterpreterDispatchDescriptor::kDispatchTable ))) {
146- dispatch_table_. Bind ( ExternalConstant (
147- ExternalReference::interpreter_dispatch_table_address (isolate ()))) ;
146+ dispatch_table_ = ExternalConstant (
147+ ExternalReference::interpreter_dispatch_table_address (isolate ()));
148148 }
149149 return dispatch_table_.value ();
150150}
151151
152- Node* InterpreterAssembler::GetAccumulatorUnchecked () {
152+ TNode<Object> InterpreterAssembler::GetAccumulatorUnchecked () {
153153 return accumulator_.value ();
154154}
155155
@@ -159,10 +159,11 @@ TNode<Object> InterpreterAssembler::GetAccumulator() {
159159 return TaggedPoisonOnSpeculation (GetAccumulatorUnchecked ());
160160}
161161
162- void InterpreterAssembler::SetAccumulator (Node* value) {
162+ // TODO(v8:6949): Remove sloppy-ness from SetAccumulator's value argument.
163+ void InterpreterAssembler::SetAccumulator (SloppyTNode<Object> value) {
163164 DCHECK (Bytecodes::WritesAccumulator (bytecode_));
164165 accumulator_use_ = accumulator_use_ | AccumulatorUse::kWrite ;
165- accumulator_. Bind ( value) ;
166+ accumulator_ = value;
166167}
167168
168169TNode<Context> InterpreterAssembler::GetContext () {
@@ -1436,9 +1437,8 @@ Node* InterpreterAssembler::DispatchToBytecode(Node* target_bytecode,
14361437 TraceBytecodeDispatch (target_bytecode);
14371438 }
14381439
1439- Node* target_code_entry =
1440- Load (MachineType::Pointer (), DispatchTableRawPointer (),
1441- TimesSystemPointerSize (target_bytecode));
1440+ Node* target_code_entry = Load (MachineType::Pointer (), DispatchTablePointer (),
1441+ TimesSystemPointerSize (target_bytecode));
14421442
14431443 return DispatchToBytecodeHandlerEntry (target_code_entry, new_bytecode_offset,
14441444 target_bytecode);
@@ -1462,7 +1462,7 @@ Node* InterpreterAssembler::DispatchToBytecodeHandlerEntry(
14621462 return TailCallBytecodeDispatch (
14631463 InterpreterDispatchDescriptor{}, poisoned_handler_entry,
14641464 GetAccumulatorUnchecked (), bytecode_offset, BytecodeArrayTaggedPointer (),
1465- DispatchTableRawPointer ());
1465+ DispatchTablePointer ());
14661466}
14671467
14681468void InterpreterAssembler::DispatchWide (OperandScale operand_scale) {
@@ -1493,9 +1493,8 @@ void InterpreterAssembler::DispatchWide(OperandScale operand_scale) {
14931493 UNREACHABLE ();
14941494 }
14951495 TNode<WordT> target_index = IntPtrAdd (base_index, next_bytecode);
1496- Node* target_code_entry =
1497- Load (MachineType::Pointer (), DispatchTableRawPointer (),
1498- TimesSystemPointerSize (target_index));
1496+ Node* target_code_entry = Load (MachineType::Pointer (), DispatchTablePointer (),
1497+ TimesSystemPointerSize (target_index));
14991498
15001499 DispatchToBytecodeHandlerEntry (target_code_entry, next_bytecode_offset,
15011500 next_bytecode);
0 commit comments