| Index: test/unittests/interpreter/interpreter-assembler-unittest.cc
|
| diff --git a/test/unittests/interpreter/interpreter-assembler-unittest.cc b/test/unittests/interpreter/interpreter-assembler-unittest.cc
|
| index 1bc80c0e4a7eeb635cd881c1a87eb9fdfdb77bfa..785ff7e731ca5feb6d4d6061b0971426f4c702fa 100644
|
| --- a/test/unittests/interpreter/interpreter-assembler-unittest.cc
|
| +++ b/test/unittests/interpreter/interpreter-assembler-unittest.cc
|
| @@ -316,6 +316,9 @@ TARGET_TEST_F(InterpreterAssemblerTest, Dispatch) {
|
| Node* tail_call_node = m.Dispatch();
|
|
|
| OperandScale operand_scale = OperandScale::kSingle;
|
| + bool has_star_lookahead =
|
| + interpreter::Bytecodes::IsStarLookahead(bytecode, operand_scale);
|
| +
|
| Matcher<Node*> next_bytecode_offset_matcher = IsIntPtrAdd(
|
| IsParameter(InterpreterDispatchDescriptor::kBytecodeOffsetParameter),
|
| IsIntPtrConstant(
|
| @@ -332,6 +335,32 @@ TARGET_TEST_F(InterpreterAssemblerTest, Dispatch) {
|
| IsParameter(InterpreterDispatchDescriptor::kDispatchTableParameter),
|
| IsWordShl(target_bytecode_matcher, IsIntPtrConstant(kPointerSizeLog2)));
|
|
|
| + if (has_star_lookahead) {
|
| + Matcher<Node*> after_lookahead_offset =
|
| + IsIntPtrAdd(next_bytecode_offset_matcher,
|
| + IsIntPtrConstant(interpreter::Bytecodes::Size(
|
| + Bytecode::kStar, operand_scale)));
|
| + next_bytecode_offset_matcher =
|
| + IsPhi(MachineType::PointerRepresentation(),
|
| + next_bytecode_offset_matcher, after_lookahead_offset, _);
|
| + Matcher<Node*> after_lookahead_bytecode = m.IsLoad(
|
| + MachineType::Uint8(),
|
| + IsParameter(InterpreterDispatchDescriptor::kBytecodeArrayParameter),
|
| + after_lookahead_offset);
|
| + if (kPointerSize == 8) {
|
| + after_lookahead_bytecode =
|
| + IsChangeUint32ToUint64(after_lookahead_bytecode);
|
| + }
|
| + target_bytecode_matcher =
|
| + IsPhi(MachineRepresentation::kWord8, target_bytecode_matcher,
|
| + after_lookahead_bytecode, _);
|
| + code_target_matcher = m.IsLoad(
|
| + MachineType::Pointer(),
|
| + IsParameter(InterpreterDispatchDescriptor::kDispatchTableParameter),
|
| + IsWordShl(target_bytecode_matcher,
|
| + IsIntPtrConstant(kPointerSizeLog2)));
|
| + }
|
| +
|
| EXPECT_THAT(
|
| tail_call_node,
|
| IsTailCall(
|
|
|