Chromium Code Reviews| 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); |
|
rmcilroy
2016/07/20 10:34:12
nit - just inline this into if block below
klaasb
2016/07/20 11:22:55
Done.
|
| + |
| 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( |