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 1e49b08e80d46b07c67aee6d2d3a861b41beb09f..f57ca05b3f16630d96fe6f620c4910f13fdb67ad 100644 |
--- a/test/unittests/compiler/interpreter-assembler-unittest.cc |
+++ b/test/unittests/compiler/interpreter-assembler-unittest.cc |
@@ -350,6 +350,7 @@ TARGET_TEST_F(InterpreterAssemblerTest, BytecodeOperand) { |
break; |
case interpreter::OperandType::kMaybeReg8: |
case interpreter::OperandType::kReg8: |
+ case interpreter::OperandType::kRegPair8: |
EXPECT_THAT(m.BytecodeOperandReg(i), |
m.IsBytecodeOperandSignExtended(offset)); |
break; |
@@ -592,29 +593,33 @@ TARGET_TEST_F(InterpreterAssemblerTest, CallRuntime2) { |
TARGET_TEST_F(InterpreterAssemblerTest, CallRuntime) { |
+ const int kResultSizes[] = {1, 2}; |
TRACED_FOREACH(interpreter::Bytecode, bytecode, kBytecodes) { |
- InterpreterAssemblerForTest m(this, bytecode); |
- Callable builtin = CodeFactory::InterpreterCEntry(isolate()); |
- |
- Node* function_id = m.Int32Constant(0); |
- Node* first_arg = m.Int32Constant(1); |
- Node* arg_count = m.Int32Constant(2); |
- |
- Matcher<Node*> function_table = IsExternalConstant( |
- ExternalReference::runtime_function_table_address(isolate())); |
- Matcher<Node*> function = IsIntPtrAdd( |
- function_table, |
- IsInt32Mul(function_id, IsInt32Constant(sizeof(Runtime::Function)))); |
- Matcher<Node*> function_entry = |
- m.IsLoad(MachineType::Pointer(), function, |
- IsInt32Constant(offsetof(Runtime::Function, entry))); |
- |
- Node* call_runtime = m.CallRuntime(function_id, first_arg, arg_count); |
- EXPECT_THAT( |
- call_runtime, |
- IsCall(_, IsHeapConstant(builtin.code()), arg_count, first_arg, |
- function_entry, |
- IsParameter(Linkage::kInterpreterContextParameter), _, _)); |
+ TRACED_FOREACH(int, result_size, kResultSizes) { |
+ InterpreterAssemblerForTest m(this, bytecode); |
+ Callable builtin = CodeFactory::InterpreterCEntry(isolate(), result_size); |
+ |
+ Node* function_id = m.Int32Constant(0); |
+ Node* first_arg = m.Int32Constant(1); |
+ Node* arg_count = m.Int32Constant(2); |
+ |
+ Matcher<Node*> function_table = IsExternalConstant( |
+ ExternalReference::runtime_function_table_address(isolate())); |
+ Matcher<Node*> function = IsIntPtrAdd( |
+ function_table, |
+ IsInt32Mul(function_id, IsInt32Constant(sizeof(Runtime::Function)))); |
+ Matcher<Node*> function_entry = |
+ m.IsLoad(MachineType::Pointer(), function, |
+ IsInt32Constant(offsetof(Runtime::Function, entry))); |
+ |
+ Node* call_runtime = |
+ m.CallRuntime(function_id, first_arg, arg_count, result_size); |
+ EXPECT_THAT( |
+ call_runtime, |
+ IsCall(_, IsHeapConstant(builtin.code()), arg_count, first_arg, |
+ function_entry, |
+ IsParameter(Linkage::kInterpreterContextParameter), _, _)); |
+ } |
} |
} |