/* AUTOGENERATED by arch/i386-all/include/gencall.c */

#ifndef AROS_I386_LIBCALL_H
#define AROS_I386_LIBCALL_H

#define __AROS_CPU_SPECIFIC_LH

#define AROS_LH0(t,n,bt,bn,o,s) \
    __attribute__((regparm(1))) t AROS_SLIB_ENTRY(n,s,o) (bt bn) \
    {(void)bn;

#define AROS_LH1(t,n,a1,bt,bn,o,s) \
    __attribute__((regparm(1))) t AROS_SLIB_ENTRY(n,s,o) (bt bn, __AROS_LHA(a1)) \
    {(void)bn;

#define AROS_LH2(t,n,a1,a2,bt,bn,o,s) \
    __attribute__((regparm(1))) t AROS_SLIB_ENTRY(n,s,o) (bt bn, __AROS_LHA(a1), __AROS_LHA(a2)) \
    {(void)bn;

#define AROS_LH3(t,n,a1,a2,a3,bt,bn,o,s) \
    __attribute__((regparm(1))) t AROS_SLIB_ENTRY(n,s,o) (bt bn, __AROS_LHA(a1), __AROS_LHA(a2), __AROS_LHA(a3)) \
    {(void)bn;

#define AROS_LH4(t,n,a1,a2,a3,a4,bt,bn,o,s) \
    __attribute__((regparm(1))) t AROS_SLIB_ENTRY(n,s,o) (bt bn, __AROS_LHA(a1), __AROS_LHA(a2), __AROS_LHA(a3), __AROS_LHA(a4)) \
    {(void)bn;

#define AROS_LH5(t,n,a1,a2,a3,a4,a5,bt,bn,o,s) \
    __attribute__((regparm(1))) t AROS_SLIB_ENTRY(n,s,o) (bt bn, __AROS_LHA(a1), __AROS_LHA(a2), __AROS_LHA(a3), __AROS_LHA(a4), __AROS_LHA(a5)) \
    {(void)bn;

#define AROS_LH6(t,n,a1,a2,a3,a4,a5,a6,bt,bn,o,s) \
    __attribute__((regparm(1))) t AROS_SLIB_ENTRY(n,s,o) (bt bn, __AROS_LHA(a1), __AROS_LHA(a2), __AROS_LHA(a3), __AROS_LHA(a4), __AROS_LHA(a5), __AROS_LHA(a6)) \
    {(void)bn;

#define AROS_LH7(t,n,a1,a2,a3,a4,a5,a6,a7,bt,bn,o,s) \
    __attribute__((regparm(1))) t AROS_SLIB_ENTRY(n,s,o) (bt bn, __AROS_LHA(a1), __AROS_LHA(a2), __AROS_LHA(a3), __AROS_LHA(a4), __AROS_LHA(a5), __AROS_LHA(a6), __AROS_LHA(a7)) \
    {(void)bn;

#define AROS_LH8(t,n,a1,a2,a3,a4,a5,a6,a7,a8,bt,bn,o,s) \
    __attribute__((regparm(1))) t AROS_SLIB_ENTRY(n,s,o) (bt bn, __AROS_LHA(a1), __AROS_LHA(a2), __AROS_LHA(a3), __AROS_LHA(a4), __AROS_LHA(a5), __AROS_LHA(a6), __AROS_LHA(a7), __AROS_LHA(a8)) \
    {(void)bn;

#define AROS_LH9(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,bt,bn,o,s) \
    __attribute__((regparm(1))) t AROS_SLIB_ENTRY(n,s,o) (bt bn, __AROS_LHA(a1), __AROS_LHA(a2), __AROS_LHA(a3), __AROS_LHA(a4), __AROS_LHA(a5), __AROS_LHA(a6), __AROS_LHA(a7), __AROS_LHA(a8), __AROS_LHA(a9)) \
    {(void)bn;

#define AROS_LH10(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,bt,bn,o,s) \
    __attribute__((regparm(1))) t AROS_SLIB_ENTRY(n,s,o) (bt bn, __AROS_LHA(a1), __AROS_LHA(a2), __AROS_LHA(a3), __AROS_LHA(a4), __AROS_LHA(a5), __AROS_LHA(a6), __AROS_LHA(a7), __AROS_LHA(a8), __AROS_LHA(a9), __AROS_LHA(a10)) \
    {(void)bn;

#define AROS_LH11(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,bt,bn,o,s) \
    __attribute__((regparm(1))) t AROS_SLIB_ENTRY(n,s,o) (bt bn, __AROS_LHA(a1), __AROS_LHA(a2), __AROS_LHA(a3), __AROS_LHA(a4), __AROS_LHA(a5), __AROS_LHA(a6), __AROS_LHA(a7), __AROS_LHA(a8), __AROS_LHA(a9), __AROS_LHA(a10), __AROS_LHA(a11)) \
    {(void)bn;

#define AROS_LH12(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,bt,bn,o,s) \
    __attribute__((regparm(1))) t AROS_SLIB_ENTRY(n,s,o) (bt bn, __AROS_LHA(a1), __AROS_LHA(a2), __AROS_LHA(a3), __AROS_LHA(a4), __AROS_LHA(a5), __AROS_LHA(a6), __AROS_LHA(a7), __AROS_LHA(a8), __AROS_LHA(a9), __AROS_LHA(a10), __AROS_LHA(a11), __AROS_LHA(a12)) \
    {(void)bn;

#define AROS_LH13(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,bt,bn,o,s) \
    __attribute__((regparm(1))) t AROS_SLIB_ENTRY(n,s,o) (bt bn, __AROS_LHA(a1), __AROS_LHA(a2), __AROS_LHA(a3), __AROS_LHA(a4), __AROS_LHA(a5), __AROS_LHA(a6), __AROS_LHA(a7), __AROS_LHA(a8), __AROS_LHA(a9), __AROS_LHA(a10), __AROS_LHA(a11), __AROS_LHA(a12), __AROS_LHA(a13)) \
    {(void)bn;

#define AROS_LH0I(t,n,bt,bn,o,s) \
    t AROS_SLIB_ENTRY(n,s,o) (void) \
    {

#define AROS_LH1I(t,n,a1,bt,bn,o,s) \
    t AROS_SLIB_ENTRY(n,s,o) (__AROS_LHA(a1)) \
    {

#define AROS_LH2I(t,n,a1,a2,bt,bn,o,s) \
    t AROS_SLIB_ENTRY(n,s,o) (__AROS_LHA(a1), __AROS_LHA(a2)) \
    {

#define AROS_LH3I(t,n,a1,a2,a3,bt,bn,o,s) \
    t AROS_SLIB_ENTRY(n,s,o) (__AROS_LHA(a1), __AROS_LHA(a2), __AROS_LHA(a3)) \
    {

#define AROS_LH4I(t,n,a1,a2,a3,a4,bt,bn,o,s) \
    t AROS_SLIB_ENTRY(n,s,o) (__AROS_LHA(a1), __AROS_LHA(a2), __AROS_LHA(a3), __AROS_LHA(a4)) \
    {

#define AROS_LH5I(t,n,a1,a2,a3,a4,a5,bt,bn,o,s) \
    t AROS_SLIB_ENTRY(n,s,o) (__AROS_LHA(a1), __AROS_LHA(a2), __AROS_LHA(a3), __AROS_LHA(a4), __AROS_LHA(a5)) \
    {

#define AROS_LH6I(t,n,a1,a2,a3,a4,a5,a6,bt,bn,o,s) \
    t AROS_SLIB_ENTRY(n,s,o) (__AROS_LHA(a1), __AROS_LHA(a2), __AROS_LHA(a3), __AROS_LHA(a4), __AROS_LHA(a5), __AROS_LHA(a6)) \
    {

#define AROS_LH7I(t,n,a1,a2,a3,a4,a5,a6,a7,bt,bn,o,s) \
    t AROS_SLIB_ENTRY(n,s,o) (__AROS_LHA(a1), __AROS_LHA(a2), __AROS_LHA(a3), __AROS_LHA(a4), __AROS_LHA(a5), __AROS_LHA(a6), __AROS_LHA(a7)) \
    {

#define AROS_LH8I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,bt,bn,o,s) \
    t AROS_SLIB_ENTRY(n,s,o) (__AROS_LHA(a1), __AROS_LHA(a2), __AROS_LHA(a3), __AROS_LHA(a4), __AROS_LHA(a5), __AROS_LHA(a6), __AROS_LHA(a7), __AROS_LHA(a8)) \
    {

#define AROS_LH9I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,bt,bn,o,s) \
    t AROS_SLIB_ENTRY(n,s,o) (__AROS_LHA(a1), __AROS_LHA(a2), __AROS_LHA(a3), __AROS_LHA(a4), __AROS_LHA(a5), __AROS_LHA(a6), __AROS_LHA(a7), __AROS_LHA(a8), __AROS_LHA(a9)) \
    {

#define AROS_LH10I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,bt,bn,o,s) \
    t AROS_SLIB_ENTRY(n,s,o) (__AROS_LHA(a1), __AROS_LHA(a2), __AROS_LHA(a3), __AROS_LHA(a4), __AROS_LHA(a5), __AROS_LHA(a6), __AROS_LHA(a7), __AROS_LHA(a8), __AROS_LHA(a9), __AROS_LHA(a10)) \
    {

#define AROS_LH11I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,bt,bn,o,s) \
    t AROS_SLIB_ENTRY(n,s,o) (__AROS_LHA(a1), __AROS_LHA(a2), __AROS_LHA(a3), __AROS_LHA(a4), __AROS_LHA(a5), __AROS_LHA(a6), __AROS_LHA(a7), __AROS_LHA(a8), __AROS_LHA(a9), __AROS_LHA(a10), __AROS_LHA(a11)) \
    {

#define AROS_LH12I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,bt,bn,o,s) \
    t AROS_SLIB_ENTRY(n,s,o) (__AROS_LHA(a1), __AROS_LHA(a2), __AROS_LHA(a3), __AROS_LHA(a4), __AROS_LHA(a5), __AROS_LHA(a6), __AROS_LHA(a7), __AROS_LHA(a8), __AROS_LHA(a9), __AROS_LHA(a10), __AROS_LHA(a11), __AROS_LHA(a12)) \
    {

#define AROS_LH13I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,bt,bn,o,s) \
    t AROS_SLIB_ENTRY(n,s,o) (__AROS_LHA(a1), __AROS_LHA(a2), __AROS_LHA(a3), __AROS_LHA(a4), __AROS_LHA(a5), __AROS_LHA(a6), __AROS_LHA(a7), __AROS_LHA(a8), __AROS_LHA(a9), __AROS_LHA(a10), __AROS_LHA(a11), __AROS_LHA(a12), __AROS_LHA(a13)) \
    {


#define __AROS_CPU_SPECIFIC_LC

#define AROS_LC0(t,n,bt,bn,o,s) \
({ \
    bt __bn = (bt)bn; \
    ((__attribute__((regparm(1))) t (*)(bt))__AROS_GETVECADDR(__bn,o))(__bn); \
})
#define AROS_LC1(t,n,a1,bt,bn,o,s) \
({ \
    bt __bn = (bt)bn; \
    ((__attribute__((regparm(1))) t (*)(bt, __AROS_LDA(a1)))__AROS_GETVECADDR(__bn,o))(__bn, __AROS_LCA(a1)); \
})
#define AROS_LC2(t,n,a1,a2,bt,bn,o,s) \
({ \
    bt __bn = (bt)bn; \
    ((__attribute__((regparm(1))) t (*)(bt, __AROS_LDA(a1), __AROS_LDA(a2)))__AROS_GETVECADDR(__bn,o))(__bn, __AROS_LCA(a1), __AROS_LCA(a2)); \
})
#define AROS_LC3(t,n,a1,a2,a3,bt,bn,o,s) \
({ \
    bt __bn = (bt)bn; \
    ((__attribute__((regparm(1))) t (*)(bt, __AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3)))__AROS_GETVECADDR(__bn,o))(__bn, __AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3)); \
})
#define AROS_LC4(t,n,a1,a2,a3,a4,bt,bn,o,s) \
({ \
    bt __bn = (bt)bn; \
    ((__attribute__((regparm(1))) t (*)(bt, __AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4)))__AROS_GETVECADDR(__bn,o))(__bn, __AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3), __AROS_LCA(a4)); \
})
#define AROS_LC5(t,n,a1,a2,a3,a4,a5,bt,bn,o,s) \
({ \
    bt __bn = (bt)bn; \
    ((__attribute__((regparm(1))) t (*)(bt, __AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5)))__AROS_GETVECADDR(__bn,o))(__bn, __AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3), __AROS_LCA(a4), __AROS_LCA(a5)); \
})
#define AROS_LC6(t,n,a1,a2,a3,a4,a5,a6,bt,bn,o,s) \
({ \
    bt __bn = (bt)bn; \
    ((__attribute__((regparm(1))) t (*)(bt, __AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5), __AROS_LDA(a6)))__AROS_GETVECADDR(__bn,o))(__bn, __AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3), __AROS_LCA(a4), __AROS_LCA(a5), __AROS_LCA(a6)); \
})
#define AROS_LC7(t,n,a1,a2,a3,a4,a5,a6,a7,bt,bn,o,s) \
({ \
    bt __bn = (bt)bn; \
    ((__attribute__((regparm(1))) t (*)(bt, __AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5), __AROS_LDA(a6), __AROS_LDA(a7)))__AROS_GETVECADDR(__bn,o))(__bn, __AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3), __AROS_LCA(a4), __AROS_LCA(a5), __AROS_LCA(a6), __AROS_LCA(a7)); \
})
#define AROS_LC8(t,n,a1,a2,a3,a4,a5,a6,a7,a8,bt,bn,o,s) \
({ \
    bt __bn = (bt)bn; \
    ((__attribute__((regparm(1))) t (*)(bt, __AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5), __AROS_LDA(a6), __AROS_LDA(a7), __AROS_LDA(a8)))__AROS_GETVECADDR(__bn,o))(__bn, __AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3), __AROS_LCA(a4), __AROS_LCA(a5), __AROS_LCA(a6), __AROS_LCA(a7), __AROS_LCA(a8)); \
})
#define AROS_LC9(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,bt,bn,o,s) \
({ \
    bt __bn = (bt)bn; \
    ((__attribute__((regparm(1))) t (*)(bt, __AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5), __AROS_LDA(a6), __AROS_LDA(a7), __AROS_LDA(a8), __AROS_LDA(a9)))__AROS_GETVECADDR(__bn,o))(__bn, __AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3), __AROS_LCA(a4), __AROS_LCA(a5), __AROS_LCA(a6), __AROS_LCA(a7), __AROS_LCA(a8), __AROS_LCA(a9)); \
})
#define AROS_LC10(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,bt,bn,o,s) \
({ \
    bt __bn = (bt)bn; \
    ((__attribute__((regparm(1))) t (*)(bt, __AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5), __AROS_LDA(a6), __AROS_LDA(a7), __AROS_LDA(a8), __AROS_LDA(a9), __AROS_LDA(a10)))__AROS_GETVECADDR(__bn,o))(__bn, __AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3), __AROS_LCA(a4), __AROS_LCA(a5), __AROS_LCA(a6), __AROS_LCA(a7), __AROS_LCA(a8), __AROS_LCA(a9), __AROS_LCA(a10)); \
})
#define AROS_LC11(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,bt,bn,o,s) \
({ \
    bt __bn = (bt)bn; \
    ((__attribute__((regparm(1))) t (*)(bt, __AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5), __AROS_LDA(a6), __AROS_LDA(a7), __AROS_LDA(a8), __AROS_LDA(a9), __AROS_LDA(a10), __AROS_LDA(a11)))__AROS_GETVECADDR(__bn,o))(__bn, __AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3), __AROS_LCA(a4), __AROS_LCA(a5), __AROS_LCA(a6), __AROS_LCA(a7), __AROS_LCA(a8), __AROS_LCA(a9), __AROS_LCA(a10), __AROS_LCA(a11)); \
})
#define AROS_LC12(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,bt,bn,o,s) \
({ \
    bt __bn = (bt)bn; \
    ((__attribute__((regparm(1))) t (*)(bt, __AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5), __AROS_LDA(a6), __AROS_LDA(a7), __AROS_LDA(a8), __AROS_LDA(a9), __AROS_LDA(a10), __AROS_LDA(a11), __AROS_LDA(a12)))__AROS_GETVECADDR(__bn,o))(__bn, __AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3), __AROS_LCA(a4), __AROS_LCA(a5), __AROS_LCA(a6), __AROS_LCA(a7), __AROS_LCA(a8), __AROS_LCA(a9), __AROS_LCA(a10), __AROS_LCA(a11), __AROS_LCA(a12)); \
})
#define AROS_LC13(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,bt,bn,o,s) \
({ \
    bt __bn = (bt)bn; \
    ((__attribute__((regparm(1))) t (*)(bt, __AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5), __AROS_LDA(a6), __AROS_LDA(a7), __AROS_LDA(a8), __AROS_LDA(a9), __AROS_LDA(a10), __AROS_LDA(a11), __AROS_LDA(a12), __AROS_LDA(a13)))__AROS_GETVECADDR(__bn,o))(__bn, __AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3), __AROS_LCA(a4), __AROS_LCA(a5), __AROS_LCA(a6), __AROS_LCA(a7), __AROS_LCA(a8), __AROS_LCA(a9), __AROS_LCA(a10), __AROS_LCA(a11), __AROS_LCA(a12), __AROS_LCA(a13)); \
})
#define AROS_LC0NR(t,n,bt,bn,o,s) \
({ \
    bt __bn = (bt)bn; \
    ((__attribute__((regparm(1))) t (*)(bt))__AROS_GETVECADDR(__bn,o))(__bn); \
})
#define AROS_LC1NR(t,n,a1,bt,bn,o,s) \
({ \
    bt __bn = (bt)bn; \
    ((__attribute__((regparm(1))) t (*)(bt, __AROS_LDA(a1)))__AROS_GETVECADDR(__bn,o))(__bn, __AROS_LCA(a1)); \
})
#define AROS_LC2NR(t,n,a1,a2,bt,bn,o,s) \
({ \
    bt __bn = (bt)bn; \
    ((__attribute__((regparm(1))) t (*)(bt, __AROS_LDA(a1), __AROS_LDA(a2)))__AROS_GETVECADDR(__bn,o))(__bn, __AROS_LCA(a1), __AROS_LCA(a2)); \
})
#define AROS_LC3NR(t,n,a1,a2,a3,bt,bn,o,s) \
({ \
    bt __bn = (bt)bn; \
    ((__attribute__((regparm(1))) t (*)(bt, __AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3)))__AROS_GETVECADDR(__bn,o))(__bn, __AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3)); \
})
#define AROS_LC4NR(t,n,a1,a2,a3,a4,bt,bn,o,s) \
({ \
    bt __bn = (bt)bn; \
    ((__attribute__((regparm(1))) t (*)(bt, __AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4)))__AROS_GETVECADDR(__bn,o))(__bn, __AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3), __AROS_LCA(a4)); \
})
#define AROS_LC5NR(t,n,a1,a2,a3,a4,a5,bt,bn,o,s) \
({ \
    bt __bn = (bt)bn; \
    ((__attribute__((regparm(1))) t (*)(bt, __AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5)))__AROS_GETVECADDR(__bn,o))(__bn, __AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3), __AROS_LCA(a4), __AROS_LCA(a5)); \
})
#define AROS_LC6NR(t,n,a1,a2,a3,a4,a5,a6,bt,bn,o,s) \
({ \
    bt __bn = (bt)bn; \
    ((__attribute__((regparm(1))) t (*)(bt, __AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5), __AROS_LDA(a6)))__AROS_GETVECADDR(__bn,o))(__bn, __AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3), __AROS_LCA(a4), __AROS_LCA(a5), __AROS_LCA(a6)); \
})
#define AROS_LC7NR(t,n,a1,a2,a3,a4,a5,a6,a7,bt,bn,o,s) \
({ \
    bt __bn = (bt)bn; \
    ((__attribute__((regparm(1))) t (*)(bt, __AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5), __AROS_LDA(a6), __AROS_LDA(a7)))__AROS_GETVECADDR(__bn,o))(__bn, __AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3), __AROS_LCA(a4), __AROS_LCA(a5), __AROS_LCA(a6), __AROS_LCA(a7)); \
})
#define AROS_LC8NR(t,n,a1,a2,a3,a4,a5,a6,a7,a8,bt,bn,o,s) \
({ \
    bt __bn = (bt)bn; \
    ((__attribute__((regparm(1))) t (*)(bt, __AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5), __AROS_LDA(a6), __AROS_LDA(a7), __AROS_LDA(a8)))__AROS_GETVECADDR(__bn,o))(__bn, __AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3), __AROS_LCA(a4), __AROS_LCA(a5), __AROS_LCA(a6), __AROS_LCA(a7), __AROS_LCA(a8)); \
})
#define AROS_LC9NR(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,bt,bn,o,s) \
({ \
    bt __bn = (bt)bn; \
    ((__attribute__((regparm(1))) t (*)(bt, __AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5), __AROS_LDA(a6), __AROS_LDA(a7), __AROS_LDA(a8), __AROS_LDA(a9)))__AROS_GETVECADDR(__bn,o))(__bn, __AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3), __AROS_LCA(a4), __AROS_LCA(a5), __AROS_LCA(a6), __AROS_LCA(a7), __AROS_LCA(a8), __AROS_LCA(a9)); \
})
#define AROS_LC10NR(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,bt,bn,o,s) \
({ \
    bt __bn = (bt)bn; \
    ((__attribute__((regparm(1))) t (*)(bt, __AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5), __AROS_LDA(a6), __AROS_LDA(a7), __AROS_LDA(a8), __AROS_LDA(a9), __AROS_LDA(a10)))__AROS_GETVECADDR(__bn,o))(__bn, __AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3), __AROS_LCA(a4), __AROS_LCA(a5), __AROS_LCA(a6), __AROS_LCA(a7), __AROS_LCA(a8), __AROS_LCA(a9), __AROS_LCA(a10)); \
})
#define AROS_LC11NR(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,bt,bn,o,s) \
({ \
    bt __bn = (bt)bn; \
    ((__attribute__((regparm(1))) t (*)(bt, __AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5), __AROS_LDA(a6), __AROS_LDA(a7), __AROS_LDA(a8), __AROS_LDA(a9), __AROS_LDA(a10), __AROS_LDA(a11)))__AROS_GETVECADDR(__bn,o))(__bn, __AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3), __AROS_LCA(a4), __AROS_LCA(a5), __AROS_LCA(a6), __AROS_LCA(a7), __AROS_LCA(a8), __AROS_LCA(a9), __AROS_LCA(a10), __AROS_LCA(a11)); \
})
#define AROS_LC12NR(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,bt,bn,o,s) \
({ \
    bt __bn = (bt)bn; \
    ((__attribute__((regparm(1))) t (*)(bt, __AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5), __AROS_LDA(a6), __AROS_LDA(a7), __AROS_LDA(a8), __AROS_LDA(a9), __AROS_LDA(a10), __AROS_LDA(a11), __AROS_LDA(a12)))__AROS_GETVECADDR(__bn,o))(__bn, __AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3), __AROS_LCA(a4), __AROS_LCA(a5), __AROS_LCA(a6), __AROS_LCA(a7), __AROS_LCA(a8), __AROS_LCA(a9), __AROS_LCA(a10), __AROS_LCA(a11), __AROS_LCA(a12)); \
})
#define AROS_LC13NR(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,bt,bn,o,s) \
({ \
    bt __bn = (bt)bn; \
    ((__attribute__((regparm(1))) t (*)(bt, __AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5), __AROS_LDA(a6), __AROS_LDA(a7), __AROS_LDA(a8), __AROS_LDA(a9), __AROS_LDA(a10), __AROS_LDA(a11), __AROS_LDA(a12), __AROS_LDA(a13)))__AROS_GETVECADDR(__bn,o))(__bn, __AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3), __AROS_LCA(a4), __AROS_LCA(a5), __AROS_LCA(a6), __AROS_LCA(a7), __AROS_LCA(a8), __AROS_LCA(a9), __AROS_LCA(a10), __AROS_LCA(a11), __AROS_LCA(a12), __AROS_LCA(a13)); \
})
#define AROS_CALL0(t,n,bt,bn) \
({ \
    bt __bn = (bt)bn; \
    APTR __func = (APTR)n; \
    ((__attribute__((regparm(1))) t (*)(bt))(APTR)__func)(__bn); \
})
#define AROS_CALL1(t,n,a1,bt,bn) \
({ \
    bt __bn = (bt)bn; \
    APTR __func = (APTR)n; \
    ((__attribute__((regparm(1))) t (*)(bt, __AROS_LDA(a1)))(APTR)__func)(__bn, __AROS_LCA(a1)); \
})
#define AROS_CALL2(t,n,a1,a2,bt,bn) \
({ \
    bt __bn = (bt)bn; \
    APTR __func = (APTR)n; \
    ((__attribute__((regparm(1))) t (*)(bt, __AROS_LDA(a1), __AROS_LDA(a2)))(APTR)__func)(__bn, __AROS_LCA(a1), __AROS_LCA(a2)); \
})
#define AROS_CALL3(t,n,a1,a2,a3,bt,bn) \
({ \
    bt __bn = (bt)bn; \
    APTR __func = (APTR)n; \
    ((__attribute__((regparm(1))) t (*)(bt, __AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3)))(APTR)__func)(__bn, __AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3)); \
})
#define AROS_CALL4(t,n,a1,a2,a3,a4,bt,bn) \
({ \
    bt __bn = (bt)bn; \
    APTR __func = (APTR)n; \
    ((__attribute__((regparm(1))) t (*)(bt, __AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4)))(APTR)__func)(__bn, __AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3), __AROS_LCA(a4)); \
})
#define AROS_CALL5(t,n,a1,a2,a3,a4,a5,bt,bn) \
({ \
    bt __bn = (bt)bn; \
    APTR __func = (APTR)n; \
    ((__attribute__((regparm(1))) t (*)(bt, __AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5)))(APTR)__func)(__bn, __AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3), __AROS_LCA(a4), __AROS_LCA(a5)); \
})
#define AROS_CALL6(t,n,a1,a2,a3,a4,a5,a6,bt,bn) \
({ \
    bt __bn = (bt)bn; \
    APTR __func = (APTR)n; \
    ((__attribute__((regparm(1))) t (*)(bt, __AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5), __AROS_LDA(a6)))(APTR)__func)(__bn, __AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3), __AROS_LCA(a4), __AROS_LCA(a5), __AROS_LCA(a6)); \
})
#define AROS_CALL7(t,n,a1,a2,a3,a4,a5,a6,a7,bt,bn) \
({ \
    bt __bn = (bt)bn; \
    APTR __func = (APTR)n; \
    ((__attribute__((regparm(1))) t (*)(bt, __AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5), __AROS_LDA(a6), __AROS_LDA(a7)))(APTR)__func)(__bn, __AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3), __AROS_LCA(a4), __AROS_LCA(a5), __AROS_LCA(a6), __AROS_LCA(a7)); \
})
#define AROS_CALL8(t,n,a1,a2,a3,a4,a5,a6,a7,a8,bt,bn) \
({ \
    bt __bn = (bt)bn; \
    APTR __func = (APTR)n; \
    ((__attribute__((regparm(1))) t (*)(bt, __AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5), __AROS_LDA(a6), __AROS_LDA(a7), __AROS_LDA(a8)))(APTR)__func)(__bn, __AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3), __AROS_LCA(a4), __AROS_LCA(a5), __AROS_LCA(a6), __AROS_LCA(a7), __AROS_LCA(a8)); \
})
#define AROS_CALL9(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,bt,bn) \
({ \
    bt __bn = (bt)bn; \
    APTR __func = (APTR)n; \
    ((__attribute__((regparm(1))) t (*)(bt, __AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5), __AROS_LDA(a6), __AROS_LDA(a7), __AROS_LDA(a8), __AROS_LDA(a9)))(APTR)__func)(__bn, __AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3), __AROS_LCA(a4), __AROS_LCA(a5), __AROS_LCA(a6), __AROS_LCA(a7), __AROS_LCA(a8), __AROS_LCA(a9)); \
})
#define AROS_CALL10(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,bt,bn) \
({ \
    bt __bn = (bt)bn; \
    APTR __func = (APTR)n; \
    ((__attribute__((regparm(1))) t (*)(bt, __AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5), __AROS_LDA(a6), __AROS_LDA(a7), __AROS_LDA(a8), __AROS_LDA(a9), __AROS_LDA(a10)))(APTR)__func)(__bn, __AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3), __AROS_LCA(a4), __AROS_LCA(a5), __AROS_LCA(a6), __AROS_LCA(a7), __AROS_LCA(a8), __AROS_LCA(a9), __AROS_LCA(a10)); \
})
#define AROS_CALL11(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,bt,bn) \
({ \
    bt __bn = (bt)bn; \
    APTR __func = (APTR)n; \
    ((__attribute__((regparm(1))) t (*)(bt, __AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5), __AROS_LDA(a6), __AROS_LDA(a7), __AROS_LDA(a8), __AROS_LDA(a9), __AROS_LDA(a10), __AROS_LDA(a11)))(APTR)__func)(__bn, __AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3), __AROS_LCA(a4), __AROS_LCA(a5), __AROS_LCA(a6), __AROS_LCA(a7), __AROS_LCA(a8), __AROS_LCA(a9), __AROS_LCA(a10), __AROS_LCA(a11)); \
})
#define AROS_CALL12(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,bt,bn) \
({ \
    bt __bn = (bt)bn; \
    APTR __func = (APTR)n; \
    ((__attribute__((regparm(1))) t (*)(bt, __AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5), __AROS_LDA(a6), __AROS_LDA(a7), __AROS_LDA(a8), __AROS_LDA(a9), __AROS_LDA(a10), __AROS_LDA(a11), __AROS_LDA(a12)))(APTR)__func)(__bn, __AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3), __AROS_LCA(a4), __AROS_LCA(a5), __AROS_LCA(a6), __AROS_LCA(a7), __AROS_LCA(a8), __AROS_LCA(a9), __AROS_LCA(a10), __AROS_LCA(a11), __AROS_LCA(a12)); \
})
#define AROS_CALL13(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,bt,bn) \
({ \
    bt __bn = (bt)bn; \
    APTR __func = (APTR)n; \
    ((__attribute__((regparm(1))) t (*)(bt, __AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5), __AROS_LDA(a6), __AROS_LDA(a7), __AROS_LDA(a8), __AROS_LDA(a9), __AROS_LDA(a10), __AROS_LDA(a11), __AROS_LDA(a12), __AROS_LDA(a13)))(APTR)__func)(__bn, __AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3), __AROS_LCA(a4), __AROS_LCA(a5), __AROS_LCA(a6), __AROS_LCA(a7), __AROS_LCA(a8), __AROS_LCA(a9), __AROS_LCA(a10), __AROS_LCA(a11), __AROS_LCA(a12), __AROS_LCA(a13)); \
})
#define AROS_CALL0NR(t,n,bt,bn) \
({ \
    bt __bn = (bt)bn; \
    APTR __func = (APTR)n; \
    ((__attribute__((regparm(1))) t (*)(bt))(APTR)__func)(__bn); \
})
#define AROS_CALL1NR(t,n,a1,bt,bn) \
({ \
    bt __bn = (bt)bn; \
    APTR __func = (APTR)n; \
    ((__attribute__((regparm(1))) t (*)(bt, __AROS_LDA(a1)))(APTR)__func)(__bn, __AROS_LCA(a1)); \
})
#define AROS_CALL2NR(t,n,a1,a2,bt,bn) \
({ \
    bt __bn = (bt)bn; \
    APTR __func = (APTR)n; \
    ((__attribute__((regparm(1))) t (*)(bt, __AROS_LDA(a1), __AROS_LDA(a2)))(APTR)__func)(__bn, __AROS_LCA(a1), __AROS_LCA(a2)); \
})
#define AROS_CALL3NR(t,n,a1,a2,a3,bt,bn) \
({ \
    bt __bn = (bt)bn; \
    APTR __func = (APTR)n; \
    ((__attribute__((regparm(1))) t (*)(bt, __AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3)))(APTR)__func)(__bn, __AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3)); \
})
#define AROS_CALL4NR(t,n,a1,a2,a3,a4,bt,bn) \
({ \
    bt __bn = (bt)bn; \
    APTR __func = (APTR)n; \
    ((__attribute__((regparm(1))) t (*)(bt, __AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4)))(APTR)__func)(__bn, __AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3), __AROS_LCA(a4)); \
})
#define AROS_CALL5NR(t,n,a1,a2,a3,a4,a5,bt,bn) \
({ \
    bt __bn = (bt)bn; \
    APTR __func = (APTR)n; \
    ((__attribute__((regparm(1))) t (*)(bt, __AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5)))(APTR)__func)(__bn, __AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3), __AROS_LCA(a4), __AROS_LCA(a5)); \
})
#define AROS_CALL6NR(t,n,a1,a2,a3,a4,a5,a6,bt,bn) \
({ \
    bt __bn = (bt)bn; \
    APTR __func = (APTR)n; \
    ((__attribute__((regparm(1))) t (*)(bt, __AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5), __AROS_LDA(a6)))(APTR)__func)(__bn, __AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3), __AROS_LCA(a4), __AROS_LCA(a5), __AROS_LCA(a6)); \
})
#define AROS_CALL7NR(t,n,a1,a2,a3,a4,a5,a6,a7,bt,bn) \
({ \
    bt __bn = (bt)bn; \
    APTR __func = (APTR)n; \
    ((__attribute__((regparm(1))) t (*)(bt, __AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5), __AROS_LDA(a6), __AROS_LDA(a7)))(APTR)__func)(__bn, __AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3), __AROS_LCA(a4), __AROS_LCA(a5), __AROS_LCA(a6), __AROS_LCA(a7)); \
})
#define AROS_CALL8NR(t,n,a1,a2,a3,a4,a5,a6,a7,a8,bt,bn) \
({ \
    bt __bn = (bt)bn; \
    APTR __func = (APTR)n; \
    ((__attribute__((regparm(1))) t (*)(bt, __AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5), __AROS_LDA(a6), __AROS_LDA(a7), __AROS_LDA(a8)))(APTR)__func)(__bn, __AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3), __AROS_LCA(a4), __AROS_LCA(a5), __AROS_LCA(a6), __AROS_LCA(a7), __AROS_LCA(a8)); \
})
#define AROS_CALL9NR(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,bt,bn) \
({ \
    bt __bn = (bt)bn; \
    APTR __func = (APTR)n; \
    ((__attribute__((regparm(1))) t (*)(bt, __AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5), __AROS_LDA(a6), __AROS_LDA(a7), __AROS_LDA(a8), __AROS_LDA(a9)))(APTR)__func)(__bn, __AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3), __AROS_LCA(a4), __AROS_LCA(a5), __AROS_LCA(a6), __AROS_LCA(a7), __AROS_LCA(a8), __AROS_LCA(a9)); \
})
#define AROS_CALL10NR(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,bt,bn) \
({ \
    bt __bn = (bt)bn; \
    APTR __func = (APTR)n; \
    ((__attribute__((regparm(1))) t (*)(bt, __AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5), __AROS_LDA(a6), __AROS_LDA(a7), __AROS_LDA(a8), __AROS_LDA(a9), __AROS_LDA(a10)))(APTR)__func)(__bn, __AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3), __AROS_LCA(a4), __AROS_LCA(a5), __AROS_LCA(a6), __AROS_LCA(a7), __AROS_LCA(a8), __AROS_LCA(a9), __AROS_LCA(a10)); \
})
#define AROS_CALL11NR(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,bt,bn) \
({ \
    bt __bn = (bt)bn; \
    APTR __func = (APTR)n; \
    ((__attribute__((regparm(1))) t (*)(bt, __AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5), __AROS_LDA(a6), __AROS_LDA(a7), __AROS_LDA(a8), __AROS_LDA(a9), __AROS_LDA(a10), __AROS_LDA(a11)))(APTR)__func)(__bn, __AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3), __AROS_LCA(a4), __AROS_LCA(a5), __AROS_LCA(a6), __AROS_LCA(a7), __AROS_LCA(a8), __AROS_LCA(a9), __AROS_LCA(a10), __AROS_LCA(a11)); \
})
#define AROS_CALL12NR(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,bt,bn) \
({ \
    bt __bn = (bt)bn; \
    APTR __func = (APTR)n; \
    ((__attribute__((regparm(1))) t (*)(bt, __AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5), __AROS_LDA(a6), __AROS_LDA(a7), __AROS_LDA(a8), __AROS_LDA(a9), __AROS_LDA(a10), __AROS_LDA(a11), __AROS_LDA(a12)))(APTR)__func)(__bn, __AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3), __AROS_LCA(a4), __AROS_LCA(a5), __AROS_LCA(a6), __AROS_LCA(a7), __AROS_LCA(a8), __AROS_LCA(a9), __AROS_LCA(a10), __AROS_LCA(a11), __AROS_LCA(a12)); \
})
#define AROS_CALL13NR(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,bt,bn) \
({ \
    bt __bn = (bt)bn; \
    APTR __func = (APTR)n; \
    ((__attribute__((regparm(1))) t (*)(bt, __AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5), __AROS_LDA(a6), __AROS_LDA(a7), __AROS_LDA(a8), __AROS_LDA(a9), __AROS_LDA(a10), __AROS_LDA(a11), __AROS_LDA(a12), __AROS_LDA(a13)))(APTR)__func)(__bn, __AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3), __AROS_LCA(a4), __AROS_LCA(a5), __AROS_LCA(a6), __AROS_LCA(a7), __AROS_LCA(a8), __AROS_LCA(a9), __AROS_LCA(a10), __AROS_LCA(a11), __AROS_LCA(a12), __AROS_LCA(a13)); \
})

#define __AROS_CPU_SPECIFIC_LD

#define AROS_LD0(t,n,bt,bn,o,s) \
    __attribute__((regparm(1))) t AROS_SLIB_ENTRY(n,s,o) (bt bn);
#define AROS_LD1(t,n,a1,bt,bn,o,s) \
    __attribute__((regparm(1))) t AROS_SLIB_ENTRY(n,s,o) (bt bn, __AROS_LDA(a1));
#define AROS_LD2(t,n,a1,a2,bt,bn,o,s) \
    __attribute__((regparm(1))) t AROS_SLIB_ENTRY(n,s,o) (bt bn, __AROS_LDA(a1), __AROS_LDA(a2));
#define AROS_LD3(t,n,a1,a2,a3,bt,bn,o,s) \
    __attribute__((regparm(1))) t AROS_SLIB_ENTRY(n,s,o) (bt bn, __AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3));
#define AROS_LD4(t,n,a1,a2,a3,a4,bt,bn,o,s) \
    __attribute__((regparm(1))) t AROS_SLIB_ENTRY(n,s,o) (bt bn, __AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4));
#define AROS_LD5(t,n,a1,a2,a3,a4,a5,bt,bn,o,s) \
    __attribute__((regparm(1))) t AROS_SLIB_ENTRY(n,s,o) (bt bn, __AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5));
#define AROS_LD6(t,n,a1,a2,a3,a4,a5,a6,bt,bn,o,s) \
    __attribute__((regparm(1))) t AROS_SLIB_ENTRY(n,s,o) (bt bn, __AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5), __AROS_LDA(a6));
#define AROS_LD7(t,n,a1,a2,a3,a4,a5,a6,a7,bt,bn,o,s) \
    __attribute__((regparm(1))) t AROS_SLIB_ENTRY(n,s,o) (bt bn, __AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5), __AROS_LDA(a6), __AROS_LDA(a7));
#define AROS_LD8(t,n,a1,a2,a3,a4,a5,a6,a7,a8,bt,bn,o,s) \
    __attribute__((regparm(1))) t AROS_SLIB_ENTRY(n,s,o) (bt bn, __AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5), __AROS_LDA(a6), __AROS_LDA(a7), __AROS_LDA(a8));
#define AROS_LD9(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,bt,bn,o,s) \
    __attribute__((regparm(1))) t AROS_SLIB_ENTRY(n,s,o) (bt bn, __AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5), __AROS_LDA(a6), __AROS_LDA(a7), __AROS_LDA(a8), __AROS_LDA(a9));
#define AROS_LD10(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,bt,bn,o,s) \
    __attribute__((regparm(1))) t AROS_SLIB_ENTRY(n,s,o) (bt bn, __AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5), __AROS_LDA(a6), __AROS_LDA(a7), __AROS_LDA(a8), __AROS_LDA(a9), __AROS_LDA(a10));
#define AROS_LD11(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,bt,bn,o,s) \
    __attribute__((regparm(1))) t AROS_SLIB_ENTRY(n,s,o) (bt bn, __AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5), __AROS_LDA(a6), __AROS_LDA(a7), __AROS_LDA(a8), __AROS_LDA(a9), __AROS_LDA(a10), __AROS_LDA(a11));
#define AROS_LD12(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,bt,bn,o,s) \
    __attribute__((regparm(1))) t AROS_SLIB_ENTRY(n,s,o) (bt bn, __AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5), __AROS_LDA(a6), __AROS_LDA(a7), __AROS_LDA(a8), __AROS_LDA(a9), __AROS_LDA(a10), __AROS_LDA(a11), __AROS_LDA(a12));
#define AROS_LD13(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,bt,bn,o,s) \
    __attribute__((regparm(1))) t AROS_SLIB_ENTRY(n,s,o) (bt bn, __AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5), __AROS_LDA(a6), __AROS_LDA(a7), __AROS_LDA(a8), __AROS_LDA(a9), __AROS_LDA(a10), __AROS_LDA(a11), __AROS_LDA(a12), __AROS_LDA(a13));
#define AROS_LD0I(t,n,bt,bn,o,s) \
    t AROS_SLIB_ENTRY(n,s,o) (void);
#define AROS_LD1I(t,n,a1,bt,bn,o,s) \
    t AROS_SLIB_ENTRY(n,s,o) (__AROS_LDA(a1));
#define AROS_LD2I(t,n,a1,a2,bt,bn,o,s) \
    t AROS_SLIB_ENTRY(n,s,o) (__AROS_LDA(a1), __AROS_LDA(a2));
#define AROS_LD3I(t,n,a1,a2,a3,bt,bn,o,s) \
    t AROS_SLIB_ENTRY(n,s,o) (__AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3));
#define AROS_LD4I(t,n,a1,a2,a3,a4,bt,bn,o,s) \
    t AROS_SLIB_ENTRY(n,s,o) (__AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4));
#define AROS_LD5I(t,n,a1,a2,a3,a4,a5,bt,bn,o,s) \
    t AROS_SLIB_ENTRY(n,s,o) (__AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5));
#define AROS_LD6I(t,n,a1,a2,a3,a4,a5,a6,bt,bn,o,s) \
    t AROS_SLIB_ENTRY(n,s,o) (__AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5), __AROS_LDA(a6));
#define AROS_LD7I(t,n,a1,a2,a3,a4,a5,a6,a7,bt,bn,o,s) \
    t AROS_SLIB_ENTRY(n,s,o) (__AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5), __AROS_LDA(a6), __AROS_LDA(a7));
#define AROS_LD8I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,bt,bn,o,s) \
    t AROS_SLIB_ENTRY(n,s,o) (__AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5), __AROS_LDA(a6), __AROS_LDA(a7), __AROS_LDA(a8));
#define AROS_LD9I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,bt,bn,o,s) \
    t AROS_SLIB_ENTRY(n,s,o) (__AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5), __AROS_LDA(a6), __AROS_LDA(a7), __AROS_LDA(a8), __AROS_LDA(a9));
#define AROS_LD10I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,bt,bn,o,s) \
    t AROS_SLIB_ENTRY(n,s,o) (__AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5), __AROS_LDA(a6), __AROS_LDA(a7), __AROS_LDA(a8), __AROS_LDA(a9), __AROS_LDA(a10));
#define AROS_LD11I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,bt,bn,o,s) \
    t AROS_SLIB_ENTRY(n,s,o) (__AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5), __AROS_LDA(a6), __AROS_LDA(a7), __AROS_LDA(a8), __AROS_LDA(a9), __AROS_LDA(a10), __AROS_LDA(a11));
#define AROS_LD12I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,bt,bn,o,s) \
    t AROS_SLIB_ENTRY(n,s,o) (__AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5), __AROS_LDA(a6), __AROS_LDA(a7), __AROS_LDA(a8), __AROS_LDA(a9), __AROS_LDA(a10), __AROS_LDA(a11), __AROS_LDA(a12));
#define AROS_LD13I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,bt,bn,o,s) \
    t AROS_SLIB_ENTRY(n,s,o) (__AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5), __AROS_LDA(a6), __AROS_LDA(a7), __AROS_LDA(a8), __AROS_LDA(a9), __AROS_LDA(a10), __AROS_LDA(a11), __AROS_LDA(a12), __AROS_LDA(a13));

#define __AROS_QUADt(type,name,reg1,reg2) type
#define __AROS_QUADn(type,name,reg1,reg2) name
#define __AROS_QUADr(type,name,reg1,reg2) reg1##reg2

#define AROS_LHDOUBLE1(t,n,a1,bt,bn,o,s) \
    AROS_LH1(t,n, \
             AROS_LHA(__AROS_QUADt(a1), __AROS_QUADn(a1), __AROS_QUADr(a1)), \
             bt, bn, o, s \
    )
#define AROS_LHDOUBLE2(t,n,a1,a2,bt,bn,o,s) \
    AROS_LH2(t,n, \
             AROS_LHA(__AROS_QUADt(a1), __AROS_QUADn(a1), __AROS_QUADr(a1)), \
             AROS_LHA(__AROS_QUADt(a2), __AROS_QUADn(a2), __AROS_QUADr(a2)), \
             bt, bn, o, s \
    )
#define AROS_LH1DOUBLE1(t,n,a1,a2,bt,bn,o,s) \
    AROS_LH2(t,n, \
             AROS_LHA(a1), \
             AROS_LHA(__AROS_QUADt(a2), __AROS_QUADn(a2), __AROS_QUADr(a2)), \
             bt, bn, o, s \
    )
#define AROS_LH2QUAD1(t,n,a1,a2,a3,bt,bn,o,s) \
    AROS_LH3(t,n, \
             AROS_LHA(a1), \
             AROS_LHA(a2), \
             AROS_LHA(__AROS_QUADt(a3), __AROS_QUADn(a3), __AROS_QUADr(a3)), \
             bt, bn, o, s \
    )
#define AROS_LH3QUAD1(t,n,a1,a2,a3,a4,bt,bn,o,s) \
    AROS_LH4(t,n, \
             AROS_LHA(a1), \
             AROS_LHA(a2), \
             AROS_LHA(a3), \
             AROS_LHA(__AROS_QUADt(a4), __AROS_QUADn(a4), __AROS_QUADr(a4)), \
             bt, bn, o, s \
    )


#define AROS_LCDOUBLE1(t,n,a1,bt,bn,o,s) \
    AROS_LC1(t,n, \
             AROS_LCA(__AROS_QUADt(a1), __AROS_QUADn(a1), __AROS_QUADr(a1)), \
             bt, bn, o, s \
    )
#define AROS_LCDOUBLE2(t,n,a1,a2,bt,bn,o,s) \
    AROS_LC2(t,n, \
             AROS_LCA(__AROS_QUADt(a1), __AROS_QUADn(a1), __AROS_QUADr(a1)), \
             AROS_LCA(__AROS_QUADt(a2), __AROS_QUADn(a2), __AROS_QUADr(a2)), \
             bt, bn, o, s \
    )
#define AROS_LC1DOUBLE1(t,n,a1,a2,bt,bn,o,s) \
    AROS_LC2(t,n, \
             AROS_LCA(a1), \
             AROS_LCA(__AROS_QUADt(a2), __AROS_QUADn(a2), __AROS_QUADr(a2)), \
             bt, bn, o, s \
    )
#define AROS_LC2QUAD1(t,n,a1,a2,a3,bt,bn,o,s) \
    AROS_LC3(t,n, \
             AROS_LCA(a1), \
             AROS_LCA(a2), \
             AROS_LCA(__AROS_QUADt(a3), __AROS_QUADn(a3), __AROS_QUADr(a3)), \
             bt, bn, o, s \
    )
#define AROS_LC3QUAD1(t,n,a1,a2,a3,a4,bt,bn,o,s) \
    AROS_LC4(t,n, \
             AROS_LCA(a1), \
             AROS_LCA(a2), \
             AROS_LCA(a3), \
             AROS_LCA(__AROS_QUADt(a4), __AROS_QUADn(a4), __AROS_QUADr(a4)), \
             bt, bn, o, s \
    )

#define AROS_LDDOUBLE1(t,n,a1,bt,bn,o,s) \
     AROS_LD1(t,n, \
         AROS_LDA(__AROS_QUADt(a1), __AROS_QUADn(a1), __AROS_QUADr(a1)), \
         bt, bn, o, s \
     )
#define AROS_LDDOUBLE2(t,n,a1,a2,bt,bn,o,s) \
     AROS_LD2(t,n, \
         AROS_LDA(__AROS_QUADt(a1), __AROS_QUADn(a1), __AROS_QUADr(a1)), \
         AROS_LDA(__AROS_QUADt(a2), __AROS_QUADn(a2), __AROS_QUADr(a2)), \
         bt, bn, o, s \
     )
#define AROS_LD1DOUBLE1(t,n,a1,a2,bt,bn,o,s) \
     AROS_LD2(t,n, \
         AROS_LDA(a1), \
         AROS_LDA(__AROS_QUADt(a2), __AROS_QUADn(a2), __AROS_QUADr(a2)), \
         bt, bn, o, s \
     )
#define AROS_LD2QUAD1(t,n,a1,a2,a3,bt,bn,o,s) \
     AROS_LD3(t,n, \
         AROS_LDA(a1), \
         AROS_LDA(a2), \
         AROS_LDA(__AROS_QUADt(a3), __AROS_QUADn(a3), __AROS_QUADr(a3)), \
         bt, bn, o, s \
     )
#define AROS_LD3QUAD1(t,n,a1,a2,a3,a4,bt,bn,o,s) \
     AROS_LD4(t,n, \
         AROS_LDA(a1), \
         AROS_LDA(a2), \
         AROS_LDA(a3), \
         AROS_LDA(__AROS_QUADt(a4), __AROS_QUADn(a4), __AROS_QUADr(a4)), \
         bt, bn, o, s \
     )


#endif /* AROS_I386_LIBCALL_H */
