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

#ifndef AROS_X86_64_LIBCALL_H
#define AROS_X86_64_LIBCALL_H

#define AROS_LIBCALL_INIT(bn, o) \
    APTR __sto; \
    APTR _bn = (APTR)bn;\
    APTR __func = __AROS_GETVECADDR(_bn, o); \
    __asm__ __volatile__("movq %%r12, %0\n    movq %1, %%r12" : "=&rm"(__sto) : "rm"(_bn) : "r12");

#define AROS_LIBCALL_EXIT \
    __asm__ __volatile__("movq %0, %%r12 " : : "rm"(__sto) : "r12"); \
    __ret; 

#define AROS_LIBCALLNR_EXIT \
    __asm__ __volatile__("movq %0, %%r12 " : : "rm"(__sto) : "r12");

#define __AROS_CPU_SPECIFIC_LH

#define __AROS_LH0(t,n,bt,bn,o,s) \
    t AROS_SLIB_ENTRY(n,s,o) (void) { \
    register bt __attribute__((unused)) bn = ({register APTR __r __asm__("r12");__asm__ __volatile__("":"=r"(__r):"0"(__r));(bt)__r;});
#define AROS_LH0 __AROS_LH0
#define __AROS_LH1(t,n,a1,bt,bn,o,s) \
    t AROS_SLIB_ENTRY(n,s,o) (__AROS_LHA(a1)) { \
    register bt __attribute__((unused)) bn = ({register APTR __r __asm__("r12");__asm__ __volatile__("":"=r"(__r):"0"(__r));(bt)__r;});
#define AROS_LH1 __AROS_LH1
#define __AROS_LH2(t,n,a1,a2,bt,bn,o,s) \
    t AROS_SLIB_ENTRY(n,s,o) (__AROS_LHA(a1), __AROS_LHA(a2)) { \
    register bt __attribute__((unused)) bn = ({register APTR __r __asm__("r12");__asm__ __volatile__("":"=r"(__r):"0"(__r));(bt)__r;});
#define AROS_LH2 __AROS_LH2
#define __AROS_LH3(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)) { \
    register bt __attribute__((unused)) bn = ({register APTR __r __asm__("r12");__asm__ __volatile__("":"=r"(__r):"0"(__r));(bt)__r;});
#define AROS_LH3 __AROS_LH3
#define __AROS_LH4(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)) { \
    register bt __attribute__((unused)) bn = ({register APTR __r __asm__("r12");__asm__ __volatile__("":"=r"(__r):"0"(__r));(bt)__r;});
#define AROS_LH4 __AROS_LH4
#define __AROS_LH5(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)) { \
    register bt __attribute__((unused)) bn = ({register APTR __r __asm__("r12");__asm__ __volatile__("":"=r"(__r):"0"(__r));(bt)__r;});
#define AROS_LH5 __AROS_LH5
#define __AROS_LH6(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)) { \
    register bt __attribute__((unused)) bn = ({register APTR __r __asm__("r12");__asm__ __volatile__("":"=r"(__r):"0"(__r));(bt)__r;});
#define AROS_LH6 __AROS_LH6
#define __AROS_LH7(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)) { \
    register bt __attribute__((unused)) bn = ({register APTR __r __asm__("r12");__asm__ __volatile__("":"=r"(__r):"0"(__r));(bt)__r;});
#define AROS_LH7 __AROS_LH7
#define __AROS_LH8(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)) { \
    register bt __attribute__((unused)) bn = ({register APTR __r __asm__("r12");__asm__ __volatile__("":"=r"(__r):"0"(__r));(bt)__r;});
#define AROS_LH8 __AROS_LH8
#define __AROS_LH9(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)) { \
    register bt __attribute__((unused)) bn = ({register APTR __r __asm__("r12");__asm__ __volatile__("":"=r"(__r):"0"(__r));(bt)__r;});
#define AROS_LH9 __AROS_LH9
#define __AROS_LH10(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)) { \
    register bt __attribute__((unused)) bn = ({register APTR __r __asm__("r12");__asm__ __volatile__("":"=r"(__r):"0"(__r));(bt)__r;});
#define AROS_LH10 __AROS_LH10
#define __AROS_LH11(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)) { \
    register bt __attribute__((unused)) bn = ({register APTR __r __asm__("r12");__asm__ __volatile__("":"=r"(__r):"0"(__r));(bt)__r;});
#define AROS_LH11 __AROS_LH11
#define __AROS_LH12(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)) { \
    register bt __attribute__((unused)) bn = ({register APTR __r __asm__("r12");__asm__ __volatile__("":"=r"(__r):"0"(__r));(bt)__r;});
#define AROS_LH12 __AROS_LH12
#define __AROS_LH13(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)) { \
    register bt __attribute__((unused)) bn = ({register APTR __r __asm__("r12");__asm__ __volatile__("":"=r"(__r):"0"(__r));(bt)__r;});
#define AROS_LH13 __AROS_LH13
#define __AROS_LH0I(t,n,bt,bn,o,s) \
    t AROS_SLIB_ENTRY(n,s,o) (void) {
#define AROS_LH0I __AROS_LH0I
#define __AROS_LH1I(t,n,a1,bt,bn,o,s) \
    t AROS_SLIB_ENTRY(n,s,o) (__AROS_LHA(a1)) {
#define AROS_LH1I __AROS_LH1I
#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_LH2I __AROS_LH2I
#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_LH3I __AROS_LH3I
#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_LH4I __AROS_LH4I
#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_LH5I __AROS_LH5I
#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_LH6I __AROS_LH6I
#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_LH7I __AROS_LH7I
#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_LH8I __AROS_LH8I
#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_LH9I __AROS_LH9I
#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_LH10I __AROS_LH10I
#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_LH11I __AROS_LH11I
#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_LH12I __AROS_LH12I
#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_LH13I __AROS_LH13I

#define __AROS_CPU_SPECIFIC_LC

#define __AROS_LC0(t,a,bt,bn,o,s) \
({ \
    AROS_LIBCALL_INIT(bn, o) \
    t __ret = (( t (*)())(APTR)__func)(); \
    AROS_LIBCALL_EXIT \
})
#define AROS_LC0 __AROS_LC0

#define __AROS_LC1(t,a,a1,bt,bn,o,s) \
({ \
    AROS_LIBCALL_INIT(bn, o) \
    t __ret = (( t (*)(__AROS_LDA(a1)))(APTR)__func)(__AROS_LCA(a1)); \
    AROS_LIBCALL_EXIT \
})
#define AROS_LC1 __AROS_LC1

#define __AROS_LC2(t,a,a1,a2,bt,bn,o,s) \
({ \
    AROS_LIBCALL_INIT(bn, o) \
    t __ret = (( t (*)(__AROS_LDA(a1), __AROS_LDA(a2)))(APTR)__func)(__AROS_LCA(a1), __AROS_LCA(a2)); \
    AROS_LIBCALL_EXIT \
})
#define AROS_LC2 __AROS_LC2

#define __AROS_LC3(t,a,a1,a2,a3,bt,bn,o,s) \
({ \
    AROS_LIBCALL_INIT(bn, o) \
    t __ret = (( t (*)(__AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3)))(APTR)__func)(__AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3)); \
    AROS_LIBCALL_EXIT \
})
#define AROS_LC3 __AROS_LC3

#define __AROS_LC4(t,a,a1,a2,a3,a4,bt,bn,o,s) \
({ \
    AROS_LIBCALL_INIT(bn, o) \
    t __ret = (( t (*)(__AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4)))(APTR)__func)(__AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3), __AROS_LCA(a4)); \
    AROS_LIBCALL_EXIT \
})
#define AROS_LC4 __AROS_LC4

#define __AROS_LC5(t,a,a1,a2,a3,a4,a5,bt,bn,o,s) \
({ \
    AROS_LIBCALL_INIT(bn, o) \
    t __ret = (( t (*)(__AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5)))(APTR)__func)(__AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3), __AROS_LCA(a4), __AROS_LCA(a5)); \
    AROS_LIBCALL_EXIT \
})
#define AROS_LC5 __AROS_LC5

#define __AROS_LC6(t,a,a1,a2,a3,a4,a5,a6,bt,bn,o,s) \
({ \
    AROS_LIBCALL_INIT(bn, o) \
    t __ret = (( t (*)(__AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5), __AROS_LDA(a6)))(APTR)__func)(__AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3), __AROS_LCA(a4), __AROS_LCA(a5), __AROS_LCA(a6)); \
    AROS_LIBCALL_EXIT \
})
#define AROS_LC6 __AROS_LC6

#define __AROS_LC7(t,a,a1,a2,a3,a4,a5,a6,a7,bt,bn,o,s) \
({ \
    AROS_LIBCALL_INIT(bn, o) \
    t __ret = (( t (*)(__AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5), __AROS_LDA(a6), __AROS_LDA(a7)))(APTR)__func)(__AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3), __AROS_LCA(a4), __AROS_LCA(a5), __AROS_LCA(a6), __AROS_LCA(a7)); \
    AROS_LIBCALL_EXIT \
})
#define AROS_LC7 __AROS_LC7

#define __AROS_LC8(t,a,a1,a2,a3,a4,a5,a6,a7,a8,bt,bn,o,s) \
({ \
    AROS_LIBCALL_INIT(bn, o) \
    t __ret = (( t (*)(__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)(__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_LIBCALL_EXIT \
})
#define AROS_LC8 __AROS_LC8

#define __AROS_LC9(t,a,a1,a2,a3,a4,a5,a6,a7,a8,a9,bt,bn,o,s) \
({ \
    AROS_LIBCALL_INIT(bn, o) \
    t __ret = (( t (*)(__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)(__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_LIBCALL_EXIT \
})
#define AROS_LC9 __AROS_LC9

#define __AROS_LC10(t,a,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,bt,bn,o,s) \
({ \
    AROS_LIBCALL_INIT(bn, o) \
    t __ret = (( t (*)(__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)(__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_LIBCALL_EXIT \
})
#define AROS_LC10 __AROS_LC10

#define __AROS_LC11(t,a,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,bt,bn,o,s) \
({ \
    AROS_LIBCALL_INIT(bn, o) \
    t __ret = (( t (*)(__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)(__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_LIBCALL_EXIT \
})
#define AROS_LC11 __AROS_LC11

#define __AROS_LC12(t,a,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,bt,bn,o,s) \
({ \
    AROS_LIBCALL_INIT(bn, o) \
    t __ret = (( t (*)(__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)(__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_LIBCALL_EXIT \
})
#define AROS_LC12 __AROS_LC12

#define __AROS_LC13(t,a,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,bt,bn,o,s) \
({ \
    AROS_LIBCALL_INIT(bn, o) \
    t __ret = (( t (*)(__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)(__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)); \
    AROS_LIBCALL_EXIT \
})
#define AROS_LC13 __AROS_LC13

#define __AROS_LC0NR(t,a,bt,bn,o,s) \
({ \
    AROS_LIBCALL_INIT(bn, o) \
    (( t (*)())(APTR)__func)(); \
    AROS_LIBCALLNR_EXIT \
})
#define AROS_LC0NR __AROS_LC0NR

#define __AROS_LC1NR(t,a,a1,bt,bn,o,s) \
({ \
    AROS_LIBCALL_INIT(bn, o) \
    (( t (*)(__AROS_LDA(a1)))(APTR)__func)(__AROS_LCA(a1)); \
    AROS_LIBCALLNR_EXIT \
})
#define AROS_LC1NR __AROS_LC1NR

#define __AROS_LC2NR(t,a,a1,a2,bt,bn,o,s) \
({ \
    AROS_LIBCALL_INIT(bn, o) \
    (( t (*)(__AROS_LDA(a1), __AROS_LDA(a2)))(APTR)__func)(__AROS_LCA(a1), __AROS_LCA(a2)); \
    AROS_LIBCALLNR_EXIT \
})
#define AROS_LC2NR __AROS_LC2NR

#define __AROS_LC3NR(t,a,a1,a2,a3,bt,bn,o,s) \
({ \
    AROS_LIBCALL_INIT(bn, o) \
    (( t (*)(__AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3)))(APTR)__func)(__AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3)); \
    AROS_LIBCALLNR_EXIT \
})
#define AROS_LC3NR __AROS_LC3NR

#define __AROS_LC4NR(t,a,a1,a2,a3,a4,bt,bn,o,s) \
({ \
    AROS_LIBCALL_INIT(bn, o) \
    (( t (*)(__AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4)))(APTR)__func)(__AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3), __AROS_LCA(a4)); \
    AROS_LIBCALLNR_EXIT \
})
#define AROS_LC4NR __AROS_LC4NR

#define __AROS_LC5NR(t,a,a1,a2,a3,a4,a5,bt,bn,o,s) \
({ \
    AROS_LIBCALL_INIT(bn, o) \
    (( t (*)(__AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5)))(APTR)__func)(__AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3), __AROS_LCA(a4), __AROS_LCA(a5)); \
    AROS_LIBCALLNR_EXIT \
})
#define AROS_LC5NR __AROS_LC5NR

#define __AROS_LC6NR(t,a,a1,a2,a3,a4,a5,a6,bt,bn,o,s) \
({ \
    AROS_LIBCALL_INIT(bn, o) \
    (( t (*)(__AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5), __AROS_LDA(a6)))(APTR)__func)(__AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3), __AROS_LCA(a4), __AROS_LCA(a5), __AROS_LCA(a6)); \
    AROS_LIBCALLNR_EXIT \
})
#define AROS_LC6NR __AROS_LC6NR

#define __AROS_LC7NR(t,a,a1,a2,a3,a4,a5,a6,a7,bt,bn,o,s) \
({ \
    AROS_LIBCALL_INIT(bn, o) \
    (( t (*)(__AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5), __AROS_LDA(a6), __AROS_LDA(a7)))(APTR)__func)(__AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3), __AROS_LCA(a4), __AROS_LCA(a5), __AROS_LCA(a6), __AROS_LCA(a7)); \
    AROS_LIBCALLNR_EXIT \
})
#define AROS_LC7NR __AROS_LC7NR

#define __AROS_LC8NR(t,a,a1,a2,a3,a4,a5,a6,a7,a8,bt,bn,o,s) \
({ \
    AROS_LIBCALL_INIT(bn, o) \
    (( t (*)(__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)(__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_LIBCALLNR_EXIT \
})
#define AROS_LC8NR __AROS_LC8NR

#define __AROS_LC9NR(t,a,a1,a2,a3,a4,a5,a6,a7,a8,a9,bt,bn,o,s) \
({ \
    AROS_LIBCALL_INIT(bn, o) \
    (( t (*)(__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)(__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_LIBCALLNR_EXIT \
})
#define AROS_LC9NR __AROS_LC9NR

#define __AROS_LC10NR(t,a,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,bt,bn,o,s) \
({ \
    AROS_LIBCALL_INIT(bn, o) \
    (( t (*)(__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)(__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_LIBCALLNR_EXIT \
})
#define AROS_LC10NR __AROS_LC10NR

#define __AROS_LC11NR(t,a,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,bt,bn,o,s) \
({ \
    AROS_LIBCALL_INIT(bn, o) \
    (( t (*)(__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)(__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_LIBCALLNR_EXIT \
})
#define AROS_LC11NR __AROS_LC11NR

#define __AROS_LC12NR(t,a,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,bt,bn,o,s) \
({ \
    AROS_LIBCALL_INIT(bn, o) \
    (( t (*)(__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)(__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_LIBCALLNR_EXIT \
})
#define AROS_LC12NR __AROS_LC12NR

#define __AROS_LC13NR(t,a,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,bt,bn,o,s) \
({ \
    AROS_LIBCALL_INIT(bn, o) \
    (( t (*)(__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)(__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)); \
    AROS_LIBCALLNR_EXIT \
})
#define AROS_LC13NR __AROS_LC13NR

#define __AROS_CALL0(t,a,bt,bn) \
({ \
    APTR __sto; \
    bt _bn = (bt)bn;\
    APTR __func = (APTR)a; \
    __asm__ __volatile__("movq %%r12, %0\n    movq %1, %%r12" : "=&rm"(__sto) : "rm"(_bn) : "r12"); \
    t __ret = (( t (*)())(APTR)__func)(); \
    AROS_LIBCALL_EXIT \
})
#define AROS_CALL0 __AROS_CALL0

#define __AROS_CALL1(t,a,a1,bt,bn) \
({ \
    APTR __sto; \
    bt _bn = (bt)bn;\
    APTR __func = (APTR)a; \
    __asm__ __volatile__("movq %%r12, %0\n    movq %1, %%r12" : "=&rm"(__sto) : "rm"(_bn) : "r12"); \
    t __ret = (( t (*)(__AROS_LDA(a1)))(APTR)__func)(__AROS_LCA(a1)); \
    AROS_LIBCALL_EXIT \
})
#define AROS_CALL1 __AROS_CALL1

#define __AROS_CALL2(t,a,a1,a2,bt,bn) \
({ \
    APTR __sto; \
    bt _bn = (bt)bn;\
    APTR __func = (APTR)a; \
    __asm__ __volatile__("movq %%r12, %0\n    movq %1, %%r12" : "=&rm"(__sto) : "rm"(_bn) : "r12"); \
    t __ret = (( t (*)(__AROS_LDA(a1), __AROS_LDA(a2)))(APTR)__func)(__AROS_LCA(a1), __AROS_LCA(a2)); \
    AROS_LIBCALL_EXIT \
})
#define AROS_CALL2 __AROS_CALL2

#define __AROS_CALL3(t,a,a1,a2,a3,bt,bn) \
({ \
    APTR __sto; \
    bt _bn = (bt)bn;\
    APTR __func = (APTR)a; \
    __asm__ __volatile__("movq %%r12, %0\n    movq %1, %%r12" : "=&rm"(__sto) : "rm"(_bn) : "r12"); \
    t __ret = (( t (*)(__AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3)))(APTR)__func)(__AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3)); \
    AROS_LIBCALL_EXIT \
})
#define AROS_CALL3 __AROS_CALL3

#define __AROS_CALL4(t,a,a1,a2,a3,a4,bt,bn) \
({ \
    APTR __sto; \
    bt _bn = (bt)bn;\
    APTR __func = (APTR)a; \
    __asm__ __volatile__("movq %%r12, %0\n    movq %1, %%r12" : "=&rm"(__sto) : "rm"(_bn) : "r12"); \
    t __ret = (( t (*)(__AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4)))(APTR)__func)(__AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3), __AROS_LCA(a4)); \
    AROS_LIBCALL_EXIT \
})
#define AROS_CALL4 __AROS_CALL4

#define __AROS_CALL5(t,a,a1,a2,a3,a4,a5,bt,bn) \
({ \
    APTR __sto; \
    bt _bn = (bt)bn;\
    APTR __func = (APTR)a; \
    __asm__ __volatile__("movq %%r12, %0\n    movq %1, %%r12" : "=&rm"(__sto) : "rm"(_bn) : "r12"); \
    t __ret = (( t (*)(__AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5)))(APTR)__func)(__AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3), __AROS_LCA(a4), __AROS_LCA(a5)); \
    AROS_LIBCALL_EXIT \
})
#define AROS_CALL5 __AROS_CALL5

#define __AROS_CALL6(t,a,a1,a2,a3,a4,a5,a6,bt,bn) \
({ \
    APTR __sto; \
    bt _bn = (bt)bn;\
    APTR __func = (APTR)a; \
    __asm__ __volatile__("movq %%r12, %0\n    movq %1, %%r12" : "=&rm"(__sto) : "rm"(_bn) : "r12"); \
    t __ret = (( t (*)(__AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5), __AROS_LDA(a6)))(APTR)__func)(__AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3), __AROS_LCA(a4), __AROS_LCA(a5), __AROS_LCA(a6)); \
    AROS_LIBCALL_EXIT \
})
#define AROS_CALL6 __AROS_CALL6

#define __AROS_CALL7(t,a,a1,a2,a3,a4,a5,a6,a7,bt,bn) \
({ \
    APTR __sto; \
    bt _bn = (bt)bn;\
    APTR __func = (APTR)a; \
    __asm__ __volatile__("movq %%r12, %0\n    movq %1, %%r12" : "=&rm"(__sto) : "rm"(_bn) : "r12"); \
    t __ret = (( t (*)(__AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5), __AROS_LDA(a6), __AROS_LDA(a7)))(APTR)__func)(__AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3), __AROS_LCA(a4), __AROS_LCA(a5), __AROS_LCA(a6), __AROS_LCA(a7)); \
    AROS_LIBCALL_EXIT \
})
#define AROS_CALL7 __AROS_CALL7

#define __AROS_CALL8(t,a,a1,a2,a3,a4,a5,a6,a7,a8,bt,bn) \
({ \
    APTR __sto; \
    bt _bn = (bt)bn;\
    APTR __func = (APTR)a; \
    __asm__ __volatile__("movq %%r12, %0\n    movq %1, %%r12" : "=&rm"(__sto) : "rm"(_bn) : "r12"); \
    t __ret = (( t (*)(__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)(__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_LIBCALL_EXIT \
})
#define AROS_CALL8 __AROS_CALL8

#define __AROS_CALL9(t,a,a1,a2,a3,a4,a5,a6,a7,a8,a9,bt,bn) \
({ \
    APTR __sto; \
    bt _bn = (bt)bn;\
    APTR __func = (APTR)a; \
    __asm__ __volatile__("movq %%r12, %0\n    movq %1, %%r12" : "=&rm"(__sto) : "rm"(_bn) : "r12"); \
    t __ret = (( t (*)(__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)(__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_LIBCALL_EXIT \
})
#define AROS_CALL9 __AROS_CALL9

#define __AROS_CALL10(t,a,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,bt,bn) \
({ \
    APTR __sto; \
    bt _bn = (bt)bn;\
    APTR __func = (APTR)a; \
    __asm__ __volatile__("movq %%r12, %0\n    movq %1, %%r12" : "=&rm"(__sto) : "rm"(_bn) : "r12"); \
    t __ret = (( t (*)(__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)(__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_LIBCALL_EXIT \
})
#define AROS_CALL10 __AROS_CALL10

#define __AROS_CALL11(t,a,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,bt,bn) \
({ \
    APTR __sto; \
    bt _bn = (bt)bn;\
    APTR __func = (APTR)a; \
    __asm__ __volatile__("movq %%r12, %0\n    movq %1, %%r12" : "=&rm"(__sto) : "rm"(_bn) : "r12"); \
    t __ret = (( t (*)(__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)(__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_LIBCALL_EXIT \
})
#define AROS_CALL11 __AROS_CALL11

#define __AROS_CALL12(t,a,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,bt,bn) \
({ \
    APTR __sto; \
    bt _bn = (bt)bn;\
    APTR __func = (APTR)a; \
    __asm__ __volatile__("movq %%r12, %0\n    movq %1, %%r12" : "=&rm"(__sto) : "rm"(_bn) : "r12"); \
    t __ret = (( t (*)(__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)(__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_LIBCALL_EXIT \
})
#define AROS_CALL12 __AROS_CALL12

#define __AROS_CALL13(t,a,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,bt,bn) \
({ \
    APTR __sto; \
    bt _bn = (bt)bn;\
    APTR __func = (APTR)a; \
    __asm__ __volatile__("movq %%r12, %0\n    movq %1, %%r12" : "=&rm"(__sto) : "rm"(_bn) : "r12"); \
    t __ret = (( t (*)(__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)(__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)); \
    AROS_LIBCALL_EXIT \
})
#define AROS_CALL13 __AROS_CALL13

#define __AROS_CALL0NR(t,a,bt,bn) \
({ \
    APTR __sto; \
    bt _bn = (bt)bn;\
    APTR __func = (APTR)a; \
    __asm__ __volatile__("movq %%r12, %0\n    movq %1, %%r12" : "=&rm"(__sto) : "rm"(_bn) : "r12"); \
    (( t (*)())(APTR)__func)(); \
    AROS_LIBCALLNR_EXIT \
})
#define AROS_CALL0NR __AROS_CALL0NR

#define __AROS_CALL1NR(t,a,a1,bt,bn) \
({ \
    APTR __sto; \
    bt _bn = (bt)bn;\
    APTR __func = (APTR)a; \
    __asm__ __volatile__("movq %%r12, %0\n    movq %1, %%r12" : "=&rm"(__sto) : "rm"(_bn) : "r12"); \
    (( t (*)(__AROS_LDA(a1)))(APTR)__func)(__AROS_LCA(a1)); \
    AROS_LIBCALLNR_EXIT \
})
#define AROS_CALL1NR __AROS_CALL1NR

#define __AROS_CALL2NR(t,a,a1,a2,bt,bn) \
({ \
    APTR __sto; \
    bt _bn = (bt)bn;\
    APTR __func = (APTR)a; \
    __asm__ __volatile__("movq %%r12, %0\n    movq %1, %%r12" : "=&rm"(__sto) : "rm"(_bn) : "r12"); \
    (( t (*)(__AROS_LDA(a1), __AROS_LDA(a2)))(APTR)__func)(__AROS_LCA(a1), __AROS_LCA(a2)); \
    AROS_LIBCALLNR_EXIT \
})
#define AROS_CALL2NR __AROS_CALL2NR

#define __AROS_CALL3NR(t,a,a1,a2,a3,bt,bn) \
({ \
    APTR __sto; \
    bt _bn = (bt)bn;\
    APTR __func = (APTR)a; \
    __asm__ __volatile__("movq %%r12, %0\n    movq %1, %%r12" : "=&rm"(__sto) : "rm"(_bn) : "r12"); \
    (( t (*)(__AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3)))(APTR)__func)(__AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3)); \
    AROS_LIBCALLNR_EXIT \
})
#define AROS_CALL3NR __AROS_CALL3NR

#define __AROS_CALL4NR(t,a,a1,a2,a3,a4,bt,bn) \
({ \
    APTR __sto; \
    bt _bn = (bt)bn;\
    APTR __func = (APTR)a; \
    __asm__ __volatile__("movq %%r12, %0\n    movq %1, %%r12" : "=&rm"(__sto) : "rm"(_bn) : "r12"); \
    (( t (*)(__AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4)))(APTR)__func)(__AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3), __AROS_LCA(a4)); \
    AROS_LIBCALLNR_EXIT \
})
#define AROS_CALL4NR __AROS_CALL4NR

#define __AROS_CALL5NR(t,a,a1,a2,a3,a4,a5,bt,bn) \
({ \
    APTR __sto; \
    bt _bn = (bt)bn;\
    APTR __func = (APTR)a; \
    __asm__ __volatile__("movq %%r12, %0\n    movq %1, %%r12" : "=&rm"(__sto) : "rm"(_bn) : "r12"); \
    (( t (*)(__AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5)))(APTR)__func)(__AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3), __AROS_LCA(a4), __AROS_LCA(a5)); \
    AROS_LIBCALLNR_EXIT \
})
#define AROS_CALL5NR __AROS_CALL5NR

#define __AROS_CALL6NR(t,a,a1,a2,a3,a4,a5,a6,bt,bn) \
({ \
    APTR __sto; \
    bt _bn = (bt)bn;\
    APTR __func = (APTR)a; \
    __asm__ __volatile__("movq %%r12, %0\n    movq %1, %%r12" : "=&rm"(__sto) : "rm"(_bn) : "r12"); \
    (( t (*)(__AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5), __AROS_LDA(a6)))(APTR)__func)(__AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3), __AROS_LCA(a4), __AROS_LCA(a5), __AROS_LCA(a6)); \
    AROS_LIBCALLNR_EXIT \
})
#define AROS_CALL6NR __AROS_CALL6NR

#define __AROS_CALL7NR(t,a,a1,a2,a3,a4,a5,a6,a7,bt,bn) \
({ \
    APTR __sto; \
    bt _bn = (bt)bn;\
    APTR __func = (APTR)a; \
    __asm__ __volatile__("movq %%r12, %0\n    movq %1, %%r12" : "=&rm"(__sto) : "rm"(_bn) : "r12"); \
    (( t (*)(__AROS_LDA(a1), __AROS_LDA(a2), __AROS_LDA(a3), __AROS_LDA(a4), __AROS_LDA(a5), __AROS_LDA(a6), __AROS_LDA(a7)))(APTR)__func)(__AROS_LCA(a1), __AROS_LCA(a2), __AROS_LCA(a3), __AROS_LCA(a4), __AROS_LCA(a5), __AROS_LCA(a6), __AROS_LCA(a7)); \
    AROS_LIBCALLNR_EXIT \
})
#define AROS_CALL7NR __AROS_CALL7NR

#define __AROS_CALL8NR(t,a,a1,a2,a3,a4,a5,a6,a7,a8,bt,bn) \
({ \
    APTR __sto; \
    bt _bn = (bt)bn;\
    APTR __func = (APTR)a; \
    __asm__ __volatile__("movq %%r12, %0\n    movq %1, %%r12" : "=&rm"(__sto) : "rm"(_bn) : "r12"); \
    (( t (*)(__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)(__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_LIBCALLNR_EXIT \
})
#define AROS_CALL8NR __AROS_CALL8NR

#define __AROS_CALL9NR(t,a,a1,a2,a3,a4,a5,a6,a7,a8,a9,bt,bn) \
({ \
    APTR __sto; \
    bt _bn = (bt)bn;\
    APTR __func = (APTR)a; \
    __asm__ __volatile__("movq %%r12, %0\n    movq %1, %%r12" : "=&rm"(__sto) : "rm"(_bn) : "r12"); \
    (( t (*)(__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)(__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_LIBCALLNR_EXIT \
})
#define AROS_CALL9NR __AROS_CALL9NR

#define __AROS_CALL10NR(t,a,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,bt,bn) \
({ \
    APTR __sto; \
    bt _bn = (bt)bn;\
    APTR __func = (APTR)a; \
    __asm__ __volatile__("movq %%r12, %0\n    movq %1, %%r12" : "=&rm"(__sto) : "rm"(_bn) : "r12"); \
    (( t (*)(__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)(__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_LIBCALLNR_EXIT \
})
#define AROS_CALL10NR __AROS_CALL10NR

#define __AROS_CALL11NR(t,a,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,bt,bn) \
({ \
    APTR __sto; \
    bt _bn = (bt)bn;\
    APTR __func = (APTR)a; \
    __asm__ __volatile__("movq %%r12, %0\n    movq %1, %%r12" : "=&rm"(__sto) : "rm"(_bn) : "r12"); \
    (( t (*)(__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)(__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_LIBCALLNR_EXIT \
})
#define AROS_CALL11NR __AROS_CALL11NR

#define __AROS_CALL12NR(t,a,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,bt,bn) \
({ \
    APTR __sto; \
    bt _bn = (bt)bn;\
    APTR __func = (APTR)a; \
    __asm__ __volatile__("movq %%r12, %0\n    movq %1, %%r12" : "=&rm"(__sto) : "rm"(_bn) : "r12"); \
    (( t (*)(__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)(__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_LIBCALLNR_EXIT \
})
#define AROS_CALL12NR __AROS_CALL12NR

#define __AROS_CALL13NR(t,a,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,bt,bn) \
({ \
    APTR __sto; \
    bt _bn = (bt)bn;\
    APTR __func = (APTR)a; \
    __asm__ __volatile__("movq %%r12, %0\n    movq %1, %%r12" : "=&rm"(__sto) : "rm"(_bn) : "r12"); \
    (( t (*)(__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)(__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)); \
    AROS_LIBCALLNR_EXIT \
})
#define AROS_CALL13NR __AROS_CALL13NR


#define __AROS_CPU_SPECIFIC_LD

#define __AROS_LD0(t,n,bt,bn,o,s) \
    t AROS_SLIB_ENTRY(n,s,o) (void);
#define AROS_LD0 __AROS_LD0
#define __AROS_LD1(t,n,a1,bt,bn,o,s) \
    t AROS_SLIB_ENTRY(n,s,o) (__AROS_LDA(a1));
#define AROS_LD1 __AROS_LD1
#define __AROS_LD2(t,n,a1,a2,bt,bn,o,s) \
    t AROS_SLIB_ENTRY(n,s,o) (__AROS_LDA(a1), __AROS_LDA(a2));
#define AROS_LD2 __AROS_LD2
#define __AROS_LD3(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_LD3 __AROS_LD3
#define __AROS_LD4(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_LD4 __AROS_LD4
#define __AROS_LD5(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_LD5 __AROS_LD5
#define __AROS_LD6(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_LD6 __AROS_LD6
#define __AROS_LD7(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_LD7 __AROS_LD7
#define __AROS_LD8(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_LD8 __AROS_LD8
#define __AROS_LD9(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_LD9 __AROS_LD9
#define __AROS_LD10(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_LD10 __AROS_LD10
#define __AROS_LD11(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_LD11 __AROS_LD11
#define __AROS_LD12(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_LD12 __AROS_LD12
#define __AROS_LD13(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_LD13 __AROS_LD13
#define __AROS_LD0I(t,n,bt,bn,o,s) \
    t AROS_SLIB_ENTRY(n,s,o) (void);
#define AROS_LD0I __AROS_LD0I
#define __AROS_LD1I(t,n,a1,bt,bn,o,s) \
    t AROS_SLIB_ENTRY(n,s,o) (__AROS_LDA(a1));
#define AROS_LD1I __AROS_LD1I
#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_LD2I __AROS_LD2I
#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_LD3I __AROS_LD3I
#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_LD4I __AROS_LD4I
#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_LD5I __AROS_LD5I
#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_LD6I __AROS_LD6I
#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_LD7I __AROS_LD7I
#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_LD8I __AROS_LD8I
#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_LD9I __AROS_LD9I
#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_LD10I __AROS_LD10I
#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_LD11I __AROS_LD11I
#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_LD12I __AROS_LD12I
#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_LD13I __AROS_LD13I

#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_X86_64_LIBCALL_H */
