Commit 4de20cb1 authored by Maya Lekova's avatar Maya Lekova Committed by V8 LUCI CQ

[arm] Increase the number of args supported by the simulator to 20

This CL adds a minor change to the arm/arm64 simulators to support up to
20 arguments in a C function call. This change is necessary for an
upcoming CL which adds float support to the simulator and tests with
more than 20 arguments, see
https://chromium-review.googlesource.com/c/v8/v8/+/3060486

Bug: chromium:1052746
Change-Id: I60ae603c96554525d28f1cd248d7766f86c9cc3e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3256785
Commit-Queue: Maya Lekova <mslekova@chromium.org>
Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77651}
parent 2179ac84
......@@ -78,7 +78,7 @@ namespace internal {
// defines a limit of 256 parameters but in simulator builds we provide only
// limited support.
#ifdef USE_SIMULATOR
static constexpr int kMaxCParameters = 10;
static constexpr int kMaxCParameters = 20;
#else
static constexpr int kMaxCParameters = 256;
#endif
......
......@@ -1595,11 +1595,11 @@ void Simulator::HandleVList(Instruction* instr) {
// 64-bit value. With the code below we assume that all runtime calls return
// 64 bits of result. If they don't, the r1 result register contains a bogus
// value, which is fine because it is caller-saved.
using SimulatorRuntimeCall = int64_t (*)(int32_t arg0, int32_t arg1,
int32_t arg2, int32_t arg3,
int32_t arg4, int32_t arg5,
int32_t arg6, int32_t arg7,
int32_t arg8, int32_t arg9);
using SimulatorRuntimeCall = int64_t (*)(
int32_t arg0, int32_t arg1, int32_t arg2, int32_t arg3, int32_t arg4,
int32_t arg5, int32_t arg6, int32_t arg7, int32_t arg8, int32_t arg9,
int32_t arg10, int32_t arg11, int32_t arg12, int32_t arg13, int32_t arg14,
int32_t arg15, int32_t arg16, int32_t arg17, int32_t arg18, int32_t arg19);
// These prototypes handle the four types of FP calls.
using SimulatorRuntimeCompareCall = int64_t (*)(double darg0, double darg1);
......@@ -1624,10 +1624,15 @@ using SimulatorRuntimeProfilingGetterCall = void (*)(int32_t arg0, int32_t arg1,
int64_t UnsafeGenericFunctionCall(intptr_t function, int32_t arg0, int32_t arg1,
int32_t arg2, int32_t arg3, int32_t arg4,
int32_t arg5, int32_t arg6, int32_t arg7,
int32_t arg8, int32_t arg9) {
int32_t arg8, int32_t arg9, int32_t arg10,
int32_t arg11, int32_t arg12, int32_t arg13,
int32_t arg14, int32_t arg15, int32_t arg16,
int32_t arg17, int32_t arg18, int32_t arg19) {
SimulatorRuntimeCall target =
reinterpret_cast<SimulatorRuntimeCall>(function);
return target(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
return target(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9,
arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18,
arg19);
}
void UnsafeDirectApiCall(intptr_t function, int32_t arg0) {
SimulatorRuntimeDirectApiCall target =
......@@ -1668,7 +1673,17 @@ void Simulator::SoftwareInterrupt(Instruction* instr) {
int32_t arg7 = stack_pointer[3];
int32_t arg8 = stack_pointer[4];
int32_t arg9 = stack_pointer[5];
STATIC_ASSERT(kMaxCParameters == 10);
int32_t arg10 = stack_pointer[6];
int32_t arg11 = stack_pointer[7];
int32_t arg12 = stack_pointer[8];
int32_t arg13 = stack_pointer[9];
int32_t arg14 = stack_pointer[10];
int32_t arg15 = stack_pointer[11];
int32_t arg16 = stack_pointer[12];
int32_t arg17 = stack_pointer[13];
int32_t arg18 = stack_pointer[14];
int32_t arg19 = stack_pointer[15];
STATIC_ASSERT(kMaxCParameters == 20);
bool fp_call =
(redirection->type() == ExternalReference::BUILTIN_FP_FP_CALL) ||
......@@ -1851,18 +1866,22 @@ void Simulator::SoftwareInterrupt(Instruction* instr) {
if (::v8::internal::FLAG_trace_sim || !stack_aligned) {
PrintF(
"Call to host function at %p "
"args %08x, %08x, %08x, %08x, %08x, %08x, %08x, %08x, %08x, %08x",
"args %08x, %08x, %08x, %08x, %08x, %08x, %08x, %08x, %08x, "
"%08x, %08x, %08x, %08x, %08x, %08x, %08x, %08x, %08x, %08x, "
"%08x",
reinterpret_cast<void*>(external), arg0, arg1, arg2, arg3, arg4,
arg5, arg6, arg7, arg8, arg9);
arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14,
arg15, arg16, arg17, arg18, arg19);
if (!stack_aligned) {
PrintF(" with unaligned stack %08x\n", get_register(sp));
}
PrintF("\n");
}
CHECK(stack_aligned);
int64_t result =
UnsafeGenericFunctionCall(external, arg0, arg1, arg2, arg3, arg4,
arg5, arg6, arg7, arg8, arg9);
int64_t result = UnsafeGenericFunctionCall(
external, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8,
arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18,
arg19);
#ifdef DEBUG
TrashCallerSaveRegisters();
#endif
......
......@@ -443,18 +443,18 @@ void Simulator::RunFrom(Instruction* start) {
// The simulator assumes all runtime calls return two 64-bits values. If they
// don't, register x1 is clobbered. This is fine because x1 is caller-saved.
#if defined(V8_OS_WIN)
using SimulatorRuntimeCall_ReturnPtr = int64_t (*)(int64_t arg0, int64_t arg1,
int64_t arg2, int64_t arg3,
int64_t arg4, int64_t arg5,
int64_t arg6, int64_t arg7,
int64_t arg8, int64_t arg9);
using SimulatorRuntimeCall_ReturnPtr = int64_t (*)(
int64_t arg0, int64_t arg1, int64_t arg2, int64_t arg3, int64_t arg4,
int64_t arg5, int64_t arg6, int64_t arg7, int64_t arg8, int64_t arg9,
int64_t arg10, int64_t arg11, int64_t arg12, int64_t arg13, int64_t arg14,
int64_t arg15, int64_t arg16, int64_t arg17, int64_t arg18, int64_t arg19);
#endif
using SimulatorRuntimeCall = ObjectPair (*)(int64_t arg0, int64_t arg1,
int64_t arg2, int64_t arg3,
int64_t arg4, int64_t arg5,
int64_t arg6, int64_t arg7,
int64_t arg8, int64_t arg9);
using SimulatorRuntimeCall = ObjectPair (*)(
int64_t arg0, int64_t arg1, int64_t arg2, int64_t arg3, int64_t arg4,
int64_t arg5, int64_t arg6, int64_t arg7, int64_t arg8, int64_t arg9,
int64_t arg10, int64_t arg11, int64_t arg12, int64_t arg13, int64_t arg14,
int64_t arg15, int64_t arg16, int64_t arg17, int64_t arg18, int64_t arg19);
using SimulatorRuntimeCompareCall = int64_t (*)(double arg1, double arg2);
using SimulatorRuntimeFPFPCall = double (*)(double arg1, double arg2);
......@@ -475,13 +475,17 @@ using SimulatorRuntimeProfilingGetterCall = void (*)(int64_t arg0, int64_t arg1,
// function to {SimulatorRuntimeCall} is undefined behavior; but since
// the target function can indeed be any function that's exposed via
// the "fast C call" mechanism, we can't reconstruct its signature here.
ObjectPair UnsafeGenericFunctionCall(int64_t function, int64_t arg0,
int64_t arg1, int64_t arg2, int64_t arg3,
int64_t arg4, int64_t arg5, int64_t arg6,
int64_t arg7, int64_t arg8, int64_t arg9) {
ObjectPair UnsafeGenericFunctionCall(
int64_t function, int64_t arg0, int64_t arg1, int64_t arg2, int64_t arg3,
int64_t arg4, int64_t arg5, int64_t arg6, int64_t arg7, int64_t arg8,
int64_t arg9, int64_t arg10, int64_t arg11, int64_t arg12, int64_t arg13,
int64_t arg14, int64_t arg15, int64_t arg16, int64_t arg17, int64_t arg18,
int64_t arg19) {
SimulatorRuntimeCall target =
reinterpret_cast<SimulatorRuntimeCall>(function);
return target(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
return target(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9,
arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18,
arg19);
}
void UnsafeDirectApiCall(int64_t function, int64_t arg0) {
SimulatorRuntimeDirectApiCall target =
......@@ -531,7 +535,17 @@ void Simulator::DoRuntimeCall(Instruction* instr) {
const int64_t arg7 = xreg(7);
const int64_t arg8 = stack_pointer[0];
const int64_t arg9 = stack_pointer[1];
STATIC_ASSERT(kMaxCParameters == 10);
const int64_t arg10 = stack_pointer[2];
const int64_t arg11 = stack_pointer[3];
const int64_t arg12 = stack_pointer[4];
const int64_t arg13 = stack_pointer[5];
const int64_t arg14 = stack_pointer[6];
const int64_t arg15 = stack_pointer[7];
const int64_t arg16 = stack_pointer[8];
const int64_t arg17 = stack_pointer[9];
const int64_t arg18 = stack_pointer[10];
const int64_t arg19 = stack_pointer[11];
STATIC_ASSERT(kMaxCParameters == 20);
switch (redirection->type()) {
default:
......@@ -574,14 +588,26 @@ void Simulator::DoRuntimeCall(Instruction* instr) {
", "
"0x%016" PRIx64 ", 0x%016" PRIx64
", "
"0x%016" PRIx64 ", 0x%016" PRIx64
", "
"0x%016" PRIx64 ", 0x%016" PRIx64
", "
"0x%016" PRIx64 ", 0x%016" PRIx64
", "
"0x%016" PRIx64 ", 0x%016" PRIx64
", "
"0x%016" PRIx64 ", 0x%016" PRIx64
", "
"0x%016" PRIx64 ", 0x%016" PRIx64,
arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10,
arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, arg19);
SimulatorRuntimeCall_ReturnPtr target =
reinterpret_cast<SimulatorRuntimeCall_ReturnPtr>(external);
int64_t result =
target(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
int64_t result = target(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7,
arg8, arg9, arg10, arg11, arg12, arg13, arg14,
arg15, arg16, arg17, arg18, arg19);
TraceSim("Returned: 0x%16\n", result);
#ifdef DEBUG
CorruptAllCallerSavedCPURegisters();
......@@ -609,10 +635,23 @@ void Simulator::DoRuntimeCall(Instruction* instr) {
", "
"0x%016" PRIx64 ", 0x%016" PRIx64
", "
"0x%016" PRIx64 ", 0x%016" PRIx64
", "
"0x%016" PRIx64 ", 0x%016" PRIx64
", "
"0x%016" PRIx64 ", 0x%016" PRIx64
", "
"0x%016" PRIx64 ", 0x%016" PRIx64
", "
"0x%016" PRIx64 ", 0x%016" PRIx64
", "
"0x%016" PRIx64 ", 0x%016" PRIx64,
arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10,
arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, arg19);
ObjectPair result = UnsafeGenericFunctionCall(
external, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
external, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9,
arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, arg19);
TraceSim("Returned: {%p, %p}\n", reinterpret_cast<void*>(result.x),
reinterpret_cast<void*>(result.y));
#ifdef DEBUG
......
......@@ -379,8 +379,6 @@ TEST(RunCallFloat64Pow) {
}
#endif // V8_ENABLE_WEBASSEMBLY
#ifdef V8_ENABLE_FP_PARAMS_IN_C_LINKAGE
template <typename T>
MachineType MachineTypeForCType() {
UNREACHABLE();
......@@ -417,7 +415,7 @@ MachineType MachineTypeForCType<float>() {
#define SIGNATURE_TEST(NAME, SIGNATURE, FUNC) \
TEST(NAME) { \
RawMachineAssemblerTester<int64_t> m(SIGNATURE(SIGNATURE_TYPES)); \
RawMachineAssemblerTester<int32_t> m(SIGNATURE(SIGNATURE_TYPES)); \
\
Address func_address = FUNCTION_ADDR(&FUNC); \
ExternalReference::Type dummy_type = ExternalReference::BUILTIN_CALL; \
......@@ -425,19 +423,77 @@ MachineType MachineTypeForCType<float>() {
ExternalReference ref = ExternalReference::Create(&func, dummy_type); \
\
Node* function = m.ExternalConstant(ref); \
m.Return(m.CallCFunction(function, MachineType::Int64(), \
m.Return(m.CallCFunction(function, MachineType::Int32(), \
SIGNATURE(PARAM_PAIRS))); \
\
int64_t c = m.Call(SIGNATURE(CALL_ARGS)); \
int32_t c = m.Call(SIGNATURE(CALL_ARGS)); \
CHECK_EQ(c, 42); \
}
#define SIGNATURE_ONLY_INT(V) \
V(int32_t, 0, 0) \
V(int32_t, 1, 1) \
V(int32_t, 2, 2) \
V(int32_t, 3, 3) \
V(int32_t, 4, 4) \
V(int32_t, 5, 5) \
V(int32_t, 6, 6) \
V(int32_t, 7, 7) \
V(int32_t, 8, 8) \
V##_END(int32_t, 9, 9)
int32_t func_only_int(int32_t arg0, int32_t arg1, int32_t arg2, int32_t arg3,
int32_t arg4, int32_t arg5, int32_t arg6, int32_t arg7,
int32_t arg8, int32_t arg9) {
CHECK(SIGNATURE_ONLY_INT(COMPARE_ARG_I));
return 42;
}
SIGNATURE_TEST(RunCallWithSignatureOnlyInt, SIGNATURE_ONLY_INT, func_only_int)
#define SIGNATURE_ONLY_INT_20(V) \
V(int32_t, 0, 0) \
V(int32_t, 1, 1) \
V(int32_t, 2, 2) \
V(int32_t, 3, 3) \
V(int32_t, 4, 4) \
V(int32_t, 5, 5) \
V(int32_t, 6, 6) \
V(int32_t, 7, 7) \
V(int32_t, 8, 8) \
V(int32_t, 9, 9) \
V(int32_t, 10, 10) \
V(int32_t, 11, 11) \
V(int32_t, 12, 12) \
V(int32_t, 13, 13) \
V(int32_t, 14, 14) \
V(int32_t, 15, 15) \
V(int32_t, 16, 16) \
V(int32_t, 17, 17) \
V(int32_t, 18, 18) \
V##_END(int32_t, 19, 19)
int32_t func_only_int_20(int32_t arg0, int32_t arg1, int32_t arg2, int32_t arg3,
int32_t arg4, int32_t arg5, int32_t arg6, int32_t arg7,
int32_t arg8, int32_t arg9, int32_t arg10,
int32_t arg11, int32_t arg12, int32_t arg13,
int32_t arg14, int32_t arg15, int32_t arg16,
int32_t arg17, int32_t arg18, int32_t arg19) {
CHECK(SIGNATURE_ONLY_INT_20(COMPARE_ARG_I));
return 42;
}
SIGNATURE_TEST(RunCallWithSignatureOnlyInt20, SIGNATURE_ONLY_INT_20,
func_only_int_20)
#ifdef V8_ENABLE_FP_PARAMS_IN_C_LINKAGE
#define MIXED_SIGNATURE_SIMPLE(V) \
V(int32_t, 0, 0) \
V(double, 1, 1.5) \
V##_END(int32_t, 2, 2)
int64_t test_api_func_simple(int32_t arg0, double arg1, int32_t arg2) {
int32_t test_api_func_simple(int32_t arg0, double arg1, int32_t arg2) {
CHECK(MIXED_SIGNATURE_SIMPLE(COMPARE_ARG_I));
return 42;
}
......@@ -458,7 +514,7 @@ SIGNATURE_TEST(RunCallWithMixedSignatureSimple, MIXED_SIGNATURE_SIMPLE,
V(double, 9, 9.5) \
V##_END(int32_t, 10, 10)
int64_t test_api_func(int32_t arg0, double arg1, int32_t arg2, double arg3,
int32_t test_api_func(int32_t arg0, double arg1, int32_t arg2, double arg3,
int32_t arg4, double arg5, int32_t arg6, double arg7,
int32_t arg8, double arg9, int32_t arg10) {
CHECK(MIXED_SIGNATURE(COMPARE_ARG_I));
......@@ -489,7 +545,7 @@ SIGNATURE_TEST(RunCallWithMixedSignature, MIXED_SIGNATURE, test_api_func)
V(int32_t, 18, 18) \
V##_END(int32_t, 19, 19)
int64_t func_mixed_double_int(double arg0, double arg1, double arg2,
int32_t func_mixed_double_int(double arg0, double arg1, double arg2,
double arg3, double arg4, double arg5,
double arg6, double arg7, double arg8,
double arg9, int32_t arg10, int32_t arg11,
......@@ -525,7 +581,7 @@ SIGNATURE_TEST(RunCallWithMixedSignatureDoubleInt, MIXED_SIGNATURE_DOUBLE_INT,
V(double, 18, 18.5) \
V##_END(double, 19, 19.5)
int64_t func_mixed_int_double(int32_t arg0, int32_t arg1, int32_t arg2,
int32_t func_mixed_int_double(int32_t arg0, int32_t arg1, int32_t arg2,
int32_t arg3, int32_t arg4, int32_t arg5,
int32_t arg6, int32_t arg7, int32_t arg8,
int32_t arg9, double arg10, double arg11,
......@@ -561,7 +617,7 @@ SIGNATURE_TEST(RunCallWithMixedSignatureIntDouble, MIXED_SIGNATURE_INT_DOUBLE,
V(int32_t, 18, 18) \
V##_END(double, 19, 19.5)
int64_t func_mixed_int_double_alt(int32_t arg0, double arg1, int32_t arg2,
int32_t func_mixed_int_double_alt(int32_t arg0, double arg1, int32_t arg2,
double arg3, int32_t arg4, double arg5,
int32_t arg6, double arg7, int32_t arg8,
double arg9, int32_t arg10, double arg11,
......@@ -587,7 +643,7 @@ SIGNATURE_TEST(RunCallWithMixedSignatureIntDoubleAlt,
V(double, 8, 8.5) \
V##_END(double, 9, 9.5)
int64_t func_only_double(double arg0, double arg1, double arg2, double arg3,
int32_t func_only_double(double arg0, double arg1, double arg2, double arg3,
double arg4, double arg5, double arg6, double arg7,
double arg8, double arg9) {
CHECK(SIGNATURE_ONLY_DOUBLE(COMPARE_ARG_I));
......@@ -619,7 +675,7 @@ SIGNATURE_TEST(RunCallWithSignatureOnlyDouble, SIGNATURE_ONLY_DOUBLE,
V(double, 18, 18.5) \
V##_END(double, 19, 19.5)
int64_t func_only_double_20(double arg0, double arg1, double arg2, double arg3,
int32_t func_only_double_20(double arg0, double arg1, double arg2, double arg3,
double arg4, double arg5, double arg6, double arg7,
double arg8, double arg9, double arg10,
double arg11, double arg12, double arg13,
......@@ -632,68 +688,12 @@ int64_t func_only_double_20(double arg0, double arg1, double arg2, double arg3,
SIGNATURE_TEST(RunCallWithSignatureOnlyDouble20, SIGNATURE_ONLY_DOUBLE_20,
func_only_double_20)
#define SIGNATURE_ONLY_INT(V) \
V(int32_t, 0, 0) \
V(int32_t, 1, 1) \
V(int32_t, 2, 2) \
V(int32_t, 3, 3) \
V(int32_t, 4, 4) \
V(int32_t, 5, 5) \
V(int32_t, 6, 6) \
V(int32_t, 7, 7) \
V(int32_t, 8, 8) \
V##_END(int32_t, 9, 9)
int64_t func_only_int(int32_t arg0, int32_t arg1, int32_t arg2, int32_t arg3,
int32_t arg4, int32_t arg5, int32_t arg6, int32_t arg7,
int32_t arg8, int32_t arg9) {
CHECK(SIGNATURE_ONLY_INT(COMPARE_ARG_I));
return 42;
}
SIGNATURE_TEST(RunCallWithSignatureOnlyInt, SIGNATURE_ONLY_INT, func_only_int)
#define SIGNATURE_ONLY_INT_20(V) \
V(int32_t, 0, 0) \
V(int32_t, 1, 1) \
V(int32_t, 2, 2) \
V(int32_t, 3, 3) \
V(int32_t, 4, 4) \
V(int32_t, 5, 5) \
V(int32_t, 6, 6) \
V(int32_t, 7, 7) \
V(int32_t, 8, 8) \
V(int32_t, 9, 9) \
V(int32_t, 10, 10) \
V(int32_t, 11, 11) \
V(int32_t, 12, 12) \
V(int32_t, 13, 13) \
V(int32_t, 14, 14) \
V(int32_t, 15, 15) \
V(int32_t, 16, 16) \
V(int32_t, 17, 17) \
V(int32_t, 18, 18) \
V##_END(int32_t, 19, 19)
int64_t func_only_int_20(int32_t arg0, int32_t arg1, int32_t arg2, int32_t arg3,
int32_t arg4, int32_t arg5, int32_t arg6, int32_t arg7,
int32_t arg8, int32_t arg9, int32_t arg10,
int32_t arg11, int32_t arg12, int32_t arg13,
int32_t arg14, int32_t arg15, int32_t arg16,
int32_t arg17, int32_t arg18, int32_t arg19) {
CHECK(SIGNATURE_ONLY_INT_20(COMPARE_ARG_I));
return 42;
}
SIGNATURE_TEST(RunCallWithSignatureOnlyInt20, SIGNATURE_ONLY_INT_20,
func_only_int_20)
#define MIXED_SIGNATURE_SIMPLE_FLOAT(V) \
V(int32_t, 0, 0) \
V(float, 1, 1.5) \
V##_END(int32_t, 2, 2)
int64_t test_api_func_simple_float(int32_t arg0, float arg1, int32_t arg2) {
int32_t test_api_func_simple_float(int32_t arg0, float arg1, int32_t arg2) {
CHECK(MIXED_SIGNATURE_SIMPLE_FLOAT(COMPARE_ARG_I));
return 42;
}
......@@ -714,7 +714,7 @@ SIGNATURE_TEST(RunCallWithMixedSignatureSimpleFloat,
V(float, 9, 9.5) \
V##_END(int32_t, 10, 10)
int64_t test_api_func_float(int32_t arg0, float arg1, int32_t arg2, float arg3,
int32_t test_api_func_float(int32_t arg0, float arg1, int32_t arg2, float arg3,
int32_t arg4, float arg5, int32_t arg6, float arg7,
int32_t arg8, float arg9, int32_t arg10) {
CHECK(MIXED_SIGNATURE_FLOAT(COMPARE_ARG_I));
......@@ -746,7 +746,7 @@ SIGNATURE_TEST(RunCallWithMixedSignatureFloat, MIXED_SIGNATURE_FLOAT,
V(int32_t, 18, 18) \
V##_END(float, 19, 19.5)
int64_t func_mixed_int_float_alt(int32_t arg0, float arg1, int32_t arg2,
int32_t func_mixed_int_float_alt(int32_t arg0, float arg1, int32_t arg2,
float arg3, int32_t arg4, float arg5,
int32_t arg6, float arg7, int32_t arg8,
float arg9, int32_t arg10, float arg11,
......@@ -782,7 +782,7 @@ SIGNATURE_TEST(RunCallWithMixedSignatureIntFloatAlt,
V(float, 18, 18.5) \
V##_END(float, 19, 19.5)
int64_t func_only_float_20(float arg0, float arg1, float arg2, float arg3,
int32_t func_only_float_20(float arg0, float arg1, float arg2, float arg3,
float arg4, float arg5, float arg6, float arg7,
float arg8, float arg9, float arg10, float arg11,
float arg12, float arg13, float arg14, float arg15,
......@@ -816,7 +816,7 @@ SIGNATURE_TEST(RunCallWithSignatureOnlyFloat20, SIGNATURE_ONLY_FLOAT_20,
V(int32_t, 18, 18) \
V##_END(int32_t, 19, 19)
int64_t func_mixed_float_int(float arg0, float arg1, float arg2, float arg3,
int32_t func_mixed_float_int(float arg0, float arg1, float arg2, float arg3,
float arg4, float arg5, float arg6, float arg7,
float arg8, float arg9, int32_t arg10,
int32_t arg11, int32_t arg12, int32_t arg13,
......@@ -851,7 +851,7 @@ SIGNATURE_TEST(RunCallWithMixedSignatureFloatInt, MIXED_SIGNATURE_FLOAT_INT,
V(float, 18, 18.5) \
V##_END(float, 19, 19.5)
int64_t func_mixed_int_float(int32_t arg0, int32_t arg1, int32_t arg2,
int32_t func_mixed_int_float(int32_t arg0, int32_t arg1, int32_t arg2,
int32_t arg3, int32_t arg4, int32_t arg5,
int32_t arg6, int32_t arg7, int32_t arg8,
int32_t arg9, float arg10, float arg11,
......@@ -887,7 +887,7 @@ SIGNATURE_TEST(RunCallWithMixedSignatureIntFloat, MIXED_SIGNATURE_INT_FLOAT,
V(double, 18, 18.7) \
V##_END(double, 19, 19.7)
int64_t func_mixed_float_double(float arg0, float arg1, float arg2, float arg3,
int32_t func_mixed_float_double(float arg0, float arg1, float arg2, float arg3,
float arg4, float arg5, float arg6, float arg7,
float arg8, float arg9, double arg10,
double arg11, double arg12, double arg13,
......@@ -922,7 +922,7 @@ SIGNATURE_TEST(RunCallWithMixedSignatureFloatDouble,
V(float, 18, 18.5) \
V##_END(float, 19, 19.5)
int64_t func_mixed_double_float(double arg0, double arg1, double arg2,
int32_t func_mixed_double_float(double arg0, double arg1, double arg2,
double arg3, double arg4, double arg5,
double arg6, double arg7, double arg8,
double arg9, float arg10, float arg11,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment