30 unsigned long function,
unsigned long * gpr,
unsigned long * fpr,
31 unsigned long * stack, sal_Int32 sp,
void * ret)
35 stackargs = alloca(((sp + 1) >> 1) * 16);
36 std::memcpy(stackargs, stack, sp * 8);
39 "ldp x0, x1, [%[gpr_]]\n\t"
40 "ldp x2, x3, [%[gpr_], #16]\n\t"
41 "ldp x4, x5, [%[gpr_], #32]\n\t"
42 "ldp x6, x7, [%[gpr_], #48]\n\t"
44 "ldr x9, %[function_]\n\t"
45 "ldp d0, d1, [%[fpr_]]\n\t"
46 "ldp d2, d3, [%[fpr_], #16]\n\t"
47 "ldp d4, d5, [%[fpr_], #32]\n\t"
48 "ldp d6, d7, [%[fpr_], #48]\n\t"
50 "stp x0, x1, [%[gpr_]]\n\t"
51 "stp d0, d1, [%[fpr_]]\n\t"
52 "stp d2, d3, [%[fpr_], #16]\n\t"
53 :: [gpr_]
"r" (gpr), [fpr_]
"r" (fpr), [function_]
"m" (function),
56 :
"r0",
"r1",
"r2",
"r3",
"r4",
"r5",
"r6",
"r7",
"r8",
"r9",
"r10",
57 "r11",
"r12",
"r13",
"r14",
"r15",
"r16",
"r17",
58#
if !defined ANDROID && !defined MACOSX
61 "v0",
"v1",
"v2",
"v3",
"v4",
"v5",
"v6",
"v7",
"v8",
"v9",
"v10",
"v11",
62 "v12",
"v13",
"v14",
"v15",
"v16",
"v17",
"v18",
"v19",
"v20",
"v21",
63 "v22",
"v23",
"v24",
"v25",
"v26",
"v27",
"v28",
"v29",
"v30",
"v31",
void callVirtualFunction(unsigned long function, unsigned long *gpr, unsigned long *fpr, unsigned long *stack, sal_Int32 sp, void *ret)