| Index: test/unittests/compiler/interpreter-assembler-unittest.cc
|
| diff --git a/test/unittests/compiler/interpreter-assembler-unittest.cc b/test/unittests/compiler/interpreter-assembler-unittest.cc
|
| index a869f7ebb1121450022f63395029c5567b55bbce..bc5be263fff4d615741e78189144a08f6ce975e5 100644
|
| --- a/test/unittests/compiler/interpreter-assembler-unittest.cc
|
| +++ b/test/unittests/compiler/interpreter-assembler-unittest.cc
|
| @@ -23,6 +23,12 @@ const interpreter::Bytecode kBytecodes[] = {
|
| };
|
|
|
|
|
| +Matcher<Node*> IsIntPtrConstant(const intptr_t value) {
|
| + return kPointerSize == 8 ? IsInt64Constant(static_cast<int64_t>(value))
|
| + : IsInt32Constant(static_cast<int32_t>(value));
|
| +}
|
| +
|
| +
|
| Matcher<Node*> IsIntPtrAdd(const Matcher<Node*>& lhs_matcher,
|
| const Matcher<Node*>& rhs_matcher) {
|
| return kPointerSize == 8 ? IsInt64Add(lhs_matcher, rhs_matcher)
|
| @@ -130,6 +136,7 @@ TARGET_TEST_F(InterpreterAssemblerTest, Dispatch) {
|
| next_bytecode_offset_matcher,
|
| IsParameter(Linkage::kInterpreterBytecodeArrayParameter),
|
| IsParameter(Linkage::kInterpreterDispatchTableParameter),
|
| + IsParameter(Linkage::kInterpreterContextParameter),
|
| graph->start(), graph->start()));
|
| }
|
| }
|
| @@ -158,6 +165,7 @@ TARGET_TEST_F(InterpreterAssemblerTest, Return) {
|
| IsParameter(Linkage::kInterpreterBytecodeOffsetParameter),
|
| IsParameter(Linkage::kInterpreterBytecodeArrayParameter),
|
| IsParameter(Linkage::kInterpreterDispatchTableParameter),
|
| + IsParameter(Linkage::kInterpreterContextParameter),
|
| graph->start(), graph->start()));
|
| }
|
| }
|
| @@ -223,7 +231,7 @@ TARGET_TEST_F(InterpreterAssemblerTest, LoadRegister) {
|
| Node* load_reg_node = m.LoadRegister(reg_index_node);
|
| EXPECT_THAT(
|
| load_reg_node,
|
| - m.IsLoad(kMachPtr,
|
| + m.IsLoad(kMachAnyTagged,
|
| IsParameter(Linkage::kInterpreterRegisterFileParameter),
|
| IsWordShl(reg_index_node, IsInt32Constant(kPointerSizeLog2))));
|
| }
|
| @@ -238,7 +246,7 @@ TARGET_TEST_F(InterpreterAssemblerTest, StoreRegister) {
|
| Node* store_reg_node = m.StoreRegister(store_value, reg_index_node);
|
| EXPECT_THAT(
|
| store_reg_node,
|
| - m.IsStore(StoreRepresentation(kMachPtr, kNoWriteBarrier),
|
| + m.IsStore(StoreRepresentation(kMachAnyTagged, kNoWriteBarrier),
|
| IsParameter(Linkage::kInterpreterRegisterFileParameter),
|
| IsWordShl(reg_index_node, IsInt32Constant(kPointerSizeLog2)),
|
| store_value));
|
| @@ -257,6 +265,18 @@ TARGET_TEST_F(InterpreterAssemblerTest, SmiTag) {
|
| }
|
| }
|
|
|
| +
|
| +TARGET_TEST_F(InterpreterAssemblerTest, LoadContextSlot) {
|
| + TRACED_FOREACH(interpreter::Bytecode, bytecode, kBytecodes) {
|
| + InterpreterAssemblerForTest m(this, bytecode);
|
| + Node* load_context = m.LoadContextSlot(22);
|
| + EXPECT_THAT(load_context,
|
| + m.IsLoad(kMachAnyTagged,
|
| + IsParameter(Linkage::kInterpreterContextParameter),
|
| + IsIntPtrConstant(Context::SlotOffset(22))));
|
| + }
|
| +}
|
| +
|
| } // namespace compiler
|
| } // namespace internal
|
| } // namespace v8
|
|
|