Displaying 2 results from an estimated 2 matches for "vtable_t".
2018 Mar 28
2
arm tailcall with many parameters?
typedef struct vtable_t {
int (*pf4)(int a, int b, int c, int d);
int (*pf5)(int a, int b, int c, int d, int e);
} vtable_t;
int f1(int (*pf4)(int a, int b, int c, int d))
{
return pf4(1, 2, 3, 4);
}
int f2(vtable_t *vt)
{
return vt->pf4(1, 2, 3, 4);
}
gcc and clang will not tailcall these on arm with -O3....
2018 Mar 28
0
arm tailcall with many parameters?
Sorry that also suffered from signature mismatch.
So how about more like:
typedef struct vtable_t {
int (*pf4)(int a, int b, int c, int d);
int (*pf5)(int a, int b, int c, int d, int e);
} vtable_t;
int f3(int (*pf5)(int a, int b, int c, int d, int e), int a, int b, int c, int d)
{
return pf5(a, b, c, d, d + d);
}
int f4(vtable_t *vt, int a, int b, int c, int d)
{
return vt->pf5(a, b, c...