Index: test/cctest/compiler/test-run-machops.cc |
diff --git a/test/cctest/compiler/test-run-machops.cc b/test/cctest/compiler/test-run-machops.cc |
index acccdfaf996c6b0e2289543541b0276028e9b55a..2092dc9c63631b4494444263245d2db4c33f7c3b 100644 |
--- a/test/cctest/compiler/test-run-machops.cc |
+++ b/test/cctest/compiler/test-run-machops.cc |
@@ -6163,6 +6163,11 @@ int32_t foo8(int32_t a, int32_t b, int32_t c, int32_t d, int32_t e, int32_t f, |
return a + b + c + d + e + f + g + h; |
} |
+int32_t foo9(int32_t a, int32_t b, int32_t c, int32_t d, int32_t e, int32_t f, |
+ int32_t g, int32_t h, int32_t i) { |
+ return a + b + c + d + e + f + g + h + i; |
+} |
+ |
} // namespace |
@@ -6221,6 +6226,30 @@ TEST(RunCallCFunction8) { |
CHECK_EQ(x * 8, m.Call(x)); |
} |
} |
+ |
+TEST(RunCallCFunction9) { |
+ auto* foo9_ptr = &foo9; |
+ RawMachineAssemblerTester<int32_t> m(MachineType::Int32()); |
+ Node* function = m.LoadFromPointer(&foo9_ptr, MachineType::Pointer()); |
+ Node* param = m.Parameter(0); |
+ m.Return(m.CallCFunction9( |
+ MachineType::Int32(), MachineType::Int32(), MachineType::Int32(), |
+ MachineType::Int32(), MachineType::Int32(), MachineType::Int32(), |
+ MachineType::Int32(), MachineType::Int32(), MachineType::Int32(), |
+ MachineType::Int32(), function, param, |
+ m.Int32Add(param, m.Int32Constant(1)), |
+ m.Int32Add(param, m.Int32Constant(2)), |
+ m.Int32Add(param, m.Int32Constant(3)), |
+ m.Int32Add(param, m.Int32Constant(4)), |
+ m.Int32Add(param, m.Int32Constant(5)), |
+ m.Int32Add(param, m.Int32Constant(6)), |
+ m.Int32Add(param, m.Int32Constant(7)), |
+ m.Int32Add(param, m.Int32Constant(8)))); |
+ FOR_INT32_INPUTS(i) { |
+ int32_t const x = *i; |
+ CHECK_EQ(x * 9 + 36, m.Call(x)); |
+ } |
+} |
#endif // USE_SIMULATOR |
#if V8_TARGET_ARCH_64_BIT |