/*
  Copyright © 2019, The AROS Development Team. All rights reserved.
  This file is AUTOGENERATED from arch/m68k-all/include/gencall.c
*/

#ifndef AROS_M68K_LIBCALL_H
#define AROS_M68K_LIBCALL_H

/* Call a libary function which requires the libbase */

#define __AROS_CPU_SPECIFIC_LP

#define __AROS_LP0(t,n,bt,bn,o,s) \
	t n ( void )
#define AROS_LP0 __AROS_LP0
#define __AROS_LP1(t,n,a1,bt,bn,o,s) \
	t n ( __AROS_LHA(a1))
#define AROS_LP1 __AROS_LP1
#define __AROS_LP2(t,n,a1,a2,bt,bn,o,s) \
	t n ( __AROS_LHA(a1), \
	__AROS_LHA(a2))
#define AROS_LP2 __AROS_LP2
#define __AROS_LP3(t,n,a1,a2,a3,bt,bn,o,s) \
	t n ( __AROS_LHA(a1), \
	__AROS_LHA(a2), \
	__AROS_LHA(a3))
#define AROS_LP3 __AROS_LP3
#define __AROS_LP4(t,n,a1,a2,a3,a4,bt,bn,o,s) \
	t n ( __AROS_LHA(a1), \
	__AROS_LHA(a2), \
	__AROS_LHA(a3), \
	__AROS_LHA(a4))
#define AROS_LP4 __AROS_LP4
#define __AROS_LP5(t,n,a1,a2,a3,a4,a5,bt,bn,o,s) \
	t n ( __AROS_LHA(a1), \
	__AROS_LHA(a2), \
	__AROS_LHA(a3), \
	__AROS_LHA(a4), \
	__AROS_LHA(a5))
#define AROS_LP5 __AROS_LP5
#define __AROS_LP6(t,n,a1,a2,a3,a4,a5,a6,bt,bn,o,s) \
	t n ( __AROS_LHA(a1), \
	__AROS_LHA(a2), \
	__AROS_LHA(a3), \
	__AROS_LHA(a4), \
	__AROS_LHA(a5), \
	__AROS_LHA(a6))
#define AROS_LP6 __AROS_LP6
#define __AROS_LP7(t,n,a1,a2,a3,a4,a5,a6,a7,bt,bn,o,s) \
	t n ( __AROS_LHA(a1), \
	__AROS_LHA(a2), \
	__AROS_LHA(a3), \
	__AROS_LHA(a4), \
	__AROS_LHA(a5), \
	__AROS_LHA(a6), \
	__AROS_LHA(a7))
#define AROS_LP7 __AROS_LP7
#define __AROS_LP8(t,n,a1,a2,a3,a4,a5,a6,a7,a8,bt,bn,o,s) \
	t n ( __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_LP8 __AROS_LP8
#define __AROS_LP9(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,bt,bn,o,s) \
	t n ( __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_LP9 __AROS_LP9
#define __AROS_LP10(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,bt,bn,o,s) \
	t n ( __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_LP10 __AROS_LP10
#define __AROS_LP11(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,bt,bn,o,s) \
	t n ( __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_LP11 __AROS_LP11
#define __AROS_LP12(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,bt,bn,o,s) \
	t n ( __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_LP12 __AROS_LP12
#define __AROS_LP13(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,bt,bn,o,s) \
	t n ( __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_LP13 __AROS_LP13
#define __AROS_LP0I(t,n,bt,bn,o,s) \
	t n ( void )
#define AROS_LP0I __AROS_LP0I
#define __AROS_LP1I(t,n,a1,bt,bn,o,s) \
	t n ( __AROS_LHA(a1))
#define AROS_LP1I __AROS_LP1I
#define __AROS_LP2I(t,n,a1,a2,bt,bn,o,s) \
	t n ( __AROS_LHA(a1), \
	__AROS_LHA(a2))
#define AROS_LP2I __AROS_LP2I
#define __AROS_LP3I(t,n,a1,a2,a3,bt,bn,o,s) \
	t n ( __AROS_LHA(a1), \
	__AROS_LHA(a2), \
	__AROS_LHA(a3))
#define AROS_LP3I __AROS_LP3I
#define __AROS_LP4I(t,n,a1,a2,a3,a4,bt,bn,o,s) \
	t n ( __AROS_LHA(a1), \
	__AROS_LHA(a2), \
	__AROS_LHA(a3), \
	__AROS_LHA(a4))
#define AROS_LP4I __AROS_LP4I
#define __AROS_LP5I(t,n,a1,a2,a3,a4,a5,bt,bn,o,s) \
	t n ( __AROS_LHA(a1), \
	__AROS_LHA(a2), \
	__AROS_LHA(a3), \
	__AROS_LHA(a4), \
	__AROS_LHA(a5))
#define AROS_LP5I __AROS_LP5I
#define __AROS_LP6I(t,n,a1,a2,a3,a4,a5,a6,bt,bn,o,s) \
	t n ( __AROS_LHA(a1), \
	__AROS_LHA(a2), \
	__AROS_LHA(a3), \
	__AROS_LHA(a4), \
	__AROS_LHA(a5), \
	__AROS_LHA(a6))
#define AROS_LP6I __AROS_LP6I
#define __AROS_LP7I(t,n,a1,a2,a3,a4,a5,a6,a7,bt,bn,o,s) \
	t n ( __AROS_LHA(a1), \
	__AROS_LHA(a2), \
	__AROS_LHA(a3), \
	__AROS_LHA(a4), \
	__AROS_LHA(a5), \
	__AROS_LHA(a6), \
	__AROS_LHA(a7))
#define AROS_LP7I __AROS_LP7I
#define __AROS_LP8I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,bt,bn,o,s) \
	t n ( __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_LP8I __AROS_LP8I
#define __AROS_LP9I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,bt,bn,o,s) \
	t n ( __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_LP9I __AROS_LP9I
#define __AROS_LP10I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,bt,bn,o,s) \
	t n ( __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_LP10I __AROS_LP10I
#define __AROS_LP11I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,bt,bn,o,s) \
	t n ( __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_LP11I __AROS_LP11I
#define __AROS_LP12I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,bt,bn,o,s) \
	t n ( __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_LP12I __AROS_LP12I
#define __AROS_LP13I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,bt,bn,o,s) \
	t n ( __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_LP13I __AROS_LP13I

#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 = __AROS_ISREG(bn,bt,A6,__AROS_FP_REG) ? (bt)(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm("%a6");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) (void) { \
	__AROS_LPA(a1) __attribute__((unused)) __AROS_LCA(a1) = __AROS_ISREG(a1,__AROS_FP_REG) ? (__AROS_LPA(a1))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a1));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a1))__r;}); \
	register bt __attribute__((unused)) bn = __AROS_ISREG(bn,bt,A6,__AROS_FP_REG) ? (bt)(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm("%a6");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) (void) { \
	__AROS_LPA(a1) __attribute__((unused)) __AROS_LCA(a1) = __AROS_ISREG(a1,__AROS_FP_REG) ? (__AROS_LPA(a1))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a1));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a1))__r;}); \
	__AROS_LPA(a2) __attribute__((unused)) __AROS_LCA(a2) = __AROS_ISREG(a2,__AROS_FP_REG) ? (__AROS_LPA(a2))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a2));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a2))__r;}); \
	register bt __attribute__((unused)) bn = __AROS_ISREG(bn,bt,A6,__AROS_FP_REG) ? (bt)(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm("%a6");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) (void) { \
	__AROS_LPA(a1) __attribute__((unused)) __AROS_LCA(a1) = __AROS_ISREG(a1,__AROS_FP_REG) ? (__AROS_LPA(a1))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a1));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a1))__r;}); \
	__AROS_LPA(a2) __attribute__((unused)) __AROS_LCA(a2) = __AROS_ISREG(a2,__AROS_FP_REG) ? (__AROS_LPA(a2))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a2));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a2))__r;}); \
	__AROS_LPA(a3) __attribute__((unused)) __AROS_LCA(a3) = __AROS_ISREG(a3,__AROS_FP_REG) ? (__AROS_LPA(a3))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a3));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a3))__r;}); \
	register bt __attribute__((unused)) bn = __AROS_ISREG(bn,bt,A6,__AROS_FP_REG) ? (bt)(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm("%a6");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) (void) { \
	__AROS_LPA(a1) __attribute__((unused)) __AROS_LCA(a1) = __AROS_ISREG(a1,__AROS_FP_REG) ? (__AROS_LPA(a1))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a1));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a1))__r;}); \
	__AROS_LPA(a2) __attribute__((unused)) __AROS_LCA(a2) = __AROS_ISREG(a2,__AROS_FP_REG) ? (__AROS_LPA(a2))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a2));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a2))__r;}); \
	__AROS_LPA(a3) __attribute__((unused)) __AROS_LCA(a3) = __AROS_ISREG(a3,__AROS_FP_REG) ? (__AROS_LPA(a3))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a3));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a3))__r;}); \
	__AROS_LPA(a4) __attribute__((unused)) __AROS_LCA(a4) = __AROS_ISREG(a4,__AROS_FP_REG) ? (__AROS_LPA(a4))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a4));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a4))__r;}); \
	register bt __attribute__((unused)) bn = __AROS_ISREG(bn,bt,A6,__AROS_FP_REG) ? (bt)(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm("%a6");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) (void) { \
	__AROS_LPA(a1) __attribute__((unused)) __AROS_LCA(a1) = __AROS_ISREG(a1,__AROS_FP_REG) ? (__AROS_LPA(a1))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a1));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a1))__r;}); \
	__AROS_LPA(a2) __attribute__((unused)) __AROS_LCA(a2) = __AROS_ISREG(a2,__AROS_FP_REG) ? (__AROS_LPA(a2))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a2));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a2))__r;}); \
	__AROS_LPA(a3) __attribute__((unused)) __AROS_LCA(a3) = __AROS_ISREG(a3,__AROS_FP_REG) ? (__AROS_LPA(a3))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a3));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a3))__r;}); \
	__AROS_LPA(a4) __attribute__((unused)) __AROS_LCA(a4) = __AROS_ISREG(a4,__AROS_FP_REG) ? (__AROS_LPA(a4))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a4));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a4))__r;}); \
	__AROS_LPA(a5) __attribute__((unused)) __AROS_LCA(a5) = __AROS_ISREG(a5,__AROS_FP_REG) ? (__AROS_LPA(a5))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a5));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a5))__r;}); \
	register bt __attribute__((unused)) bn = __AROS_ISREG(bn,bt,A6,__AROS_FP_REG) ? (bt)(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm("%a6");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) (void) { \
	__AROS_LPA(a1) __attribute__((unused)) __AROS_LCA(a1) = __AROS_ISREG(a1,__AROS_FP_REG) ? (__AROS_LPA(a1))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a1));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a1))__r;}); \
	__AROS_LPA(a2) __attribute__((unused)) __AROS_LCA(a2) = __AROS_ISREG(a2,__AROS_FP_REG) ? (__AROS_LPA(a2))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a2));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a2))__r;}); \
	__AROS_LPA(a3) __attribute__((unused)) __AROS_LCA(a3) = __AROS_ISREG(a3,__AROS_FP_REG) ? (__AROS_LPA(a3))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a3));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a3))__r;}); \
	__AROS_LPA(a4) __attribute__((unused)) __AROS_LCA(a4) = __AROS_ISREG(a4,__AROS_FP_REG) ? (__AROS_LPA(a4))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a4));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a4))__r;}); \
	__AROS_LPA(a5) __attribute__((unused)) __AROS_LCA(a5) = __AROS_ISREG(a5,__AROS_FP_REG) ? (__AROS_LPA(a5))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a5));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a5))__r;}); \
	__AROS_LPA(a6) __attribute__((unused)) __AROS_LCA(a6) = __AROS_ISREG(a6,__AROS_FP_REG) ? (__AROS_LPA(a6))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a6));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a6))__r;}); \
	register bt __attribute__((unused)) bn = __AROS_ISREG(bn,bt,A6,__AROS_FP_REG) ? (bt)(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm("%a6");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) (void) { \
	__AROS_LPA(a1) __attribute__((unused)) __AROS_LCA(a1) = __AROS_ISREG(a1,__AROS_FP_REG) ? (__AROS_LPA(a1))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a1));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a1))__r;}); \
	__AROS_LPA(a2) __attribute__((unused)) __AROS_LCA(a2) = __AROS_ISREG(a2,__AROS_FP_REG) ? (__AROS_LPA(a2))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a2));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a2))__r;}); \
	__AROS_LPA(a3) __attribute__((unused)) __AROS_LCA(a3) = __AROS_ISREG(a3,__AROS_FP_REG) ? (__AROS_LPA(a3))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a3));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a3))__r;}); \
	__AROS_LPA(a4) __attribute__((unused)) __AROS_LCA(a4) = __AROS_ISREG(a4,__AROS_FP_REG) ? (__AROS_LPA(a4))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a4));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a4))__r;}); \
	__AROS_LPA(a5) __attribute__((unused)) __AROS_LCA(a5) = __AROS_ISREG(a5,__AROS_FP_REG) ? (__AROS_LPA(a5))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a5));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a5))__r;}); \
	__AROS_LPA(a6) __attribute__((unused)) __AROS_LCA(a6) = __AROS_ISREG(a6,__AROS_FP_REG) ? (__AROS_LPA(a6))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a6));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a6))__r;}); \
	__AROS_LPA(a7) __attribute__((unused)) __AROS_LCA(a7) = __AROS_ISREG(a7,__AROS_FP_REG) ? (__AROS_LPA(a7))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a7));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a7))__r;}); \
	register bt __attribute__((unused)) bn = __AROS_ISREG(bn,bt,A6,__AROS_FP_REG) ? (bt)(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm("%a6");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) (void) { \
	__AROS_LPA(a1) __attribute__((unused)) __AROS_LCA(a1) = __AROS_ISREG(a1,__AROS_FP_REG) ? (__AROS_LPA(a1))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a1));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a1))__r;}); \
	__AROS_LPA(a2) __attribute__((unused)) __AROS_LCA(a2) = __AROS_ISREG(a2,__AROS_FP_REG) ? (__AROS_LPA(a2))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a2));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a2))__r;}); \
	__AROS_LPA(a3) __attribute__((unused)) __AROS_LCA(a3) = __AROS_ISREG(a3,__AROS_FP_REG) ? (__AROS_LPA(a3))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a3));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a3))__r;}); \
	__AROS_LPA(a4) __attribute__((unused)) __AROS_LCA(a4) = __AROS_ISREG(a4,__AROS_FP_REG) ? (__AROS_LPA(a4))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a4));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a4))__r;}); \
	__AROS_LPA(a5) __attribute__((unused)) __AROS_LCA(a5) = __AROS_ISREG(a5,__AROS_FP_REG) ? (__AROS_LPA(a5))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a5));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a5))__r;}); \
	__AROS_LPA(a6) __attribute__((unused)) __AROS_LCA(a6) = __AROS_ISREG(a6,__AROS_FP_REG) ? (__AROS_LPA(a6))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a6));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a6))__r;}); \
	__AROS_LPA(a7) __attribute__((unused)) __AROS_LCA(a7) = __AROS_ISREG(a7,__AROS_FP_REG) ? (__AROS_LPA(a7))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a7));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a7))__r;}); \
	__AROS_LPA(a8) __attribute__((unused)) __AROS_LCA(a8) = __AROS_ISREG(a8,__AROS_FP_REG) ? (__AROS_LPA(a8))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a8));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a8))__r;}); \
	register bt __attribute__((unused)) bn = __AROS_ISREG(bn,bt,A6,__AROS_FP_REG) ? (bt)(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm("%a6");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) (void) { \
	__AROS_LPA(a1) __attribute__((unused)) __AROS_LCA(a1) = __AROS_ISREG(a1,__AROS_FP_REG) ? (__AROS_LPA(a1))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a1));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a1))__r;}); \
	__AROS_LPA(a2) __attribute__((unused)) __AROS_LCA(a2) = __AROS_ISREG(a2,__AROS_FP_REG) ? (__AROS_LPA(a2))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a2));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a2))__r;}); \
	__AROS_LPA(a3) __attribute__((unused)) __AROS_LCA(a3) = __AROS_ISREG(a3,__AROS_FP_REG) ? (__AROS_LPA(a3))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a3));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a3))__r;}); \
	__AROS_LPA(a4) __attribute__((unused)) __AROS_LCA(a4) = __AROS_ISREG(a4,__AROS_FP_REG) ? (__AROS_LPA(a4))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a4));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a4))__r;}); \
	__AROS_LPA(a5) __attribute__((unused)) __AROS_LCA(a5) = __AROS_ISREG(a5,__AROS_FP_REG) ? (__AROS_LPA(a5))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a5));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a5))__r;}); \
	__AROS_LPA(a6) __attribute__((unused)) __AROS_LCA(a6) = __AROS_ISREG(a6,__AROS_FP_REG) ? (__AROS_LPA(a6))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a6));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a6))__r;}); \
	__AROS_LPA(a7) __attribute__((unused)) __AROS_LCA(a7) = __AROS_ISREG(a7,__AROS_FP_REG) ? (__AROS_LPA(a7))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a7));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a7))__r;}); \
	__AROS_LPA(a8) __attribute__((unused)) __AROS_LCA(a8) = __AROS_ISREG(a8,__AROS_FP_REG) ? (__AROS_LPA(a8))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a8));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a8))__r;}); \
	__AROS_LPA(a9) __attribute__((unused)) __AROS_LCA(a9) = __AROS_ISREG(a9,__AROS_FP_REG) ? (__AROS_LPA(a9))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a9));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a9))__r;}); \
	register bt __attribute__((unused)) bn = __AROS_ISREG(bn,bt,A6,__AROS_FP_REG) ? (bt)(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm("%a6");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) (void) { \
	__AROS_LPA(a1) __attribute__((unused)) __AROS_LCA(a1) = __AROS_ISREG(a1,__AROS_FP_REG) ? (__AROS_LPA(a1))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a1));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a1))__r;}); \
	__AROS_LPA(a2) __attribute__((unused)) __AROS_LCA(a2) = __AROS_ISREG(a2,__AROS_FP_REG) ? (__AROS_LPA(a2))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a2));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a2))__r;}); \
	__AROS_LPA(a3) __attribute__((unused)) __AROS_LCA(a3) = __AROS_ISREG(a3,__AROS_FP_REG) ? (__AROS_LPA(a3))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a3));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a3))__r;}); \
	__AROS_LPA(a4) __attribute__((unused)) __AROS_LCA(a4) = __AROS_ISREG(a4,__AROS_FP_REG) ? (__AROS_LPA(a4))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a4));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a4))__r;}); \
	__AROS_LPA(a5) __attribute__((unused)) __AROS_LCA(a5) = __AROS_ISREG(a5,__AROS_FP_REG) ? (__AROS_LPA(a5))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a5));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a5))__r;}); \
	__AROS_LPA(a6) __attribute__((unused)) __AROS_LCA(a6) = __AROS_ISREG(a6,__AROS_FP_REG) ? (__AROS_LPA(a6))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a6));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a6))__r;}); \
	__AROS_LPA(a7) __attribute__((unused)) __AROS_LCA(a7) = __AROS_ISREG(a7,__AROS_FP_REG) ? (__AROS_LPA(a7))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a7));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a7))__r;}); \
	__AROS_LPA(a8) __attribute__((unused)) __AROS_LCA(a8) = __AROS_ISREG(a8,__AROS_FP_REG) ? (__AROS_LPA(a8))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a8));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a8))__r;}); \
	__AROS_LPA(a9) __attribute__((unused)) __AROS_LCA(a9) = __AROS_ISREG(a9,__AROS_FP_REG) ? (__AROS_LPA(a9))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a9));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a9))__r;}); \
	__AROS_LPA(a10) __attribute__((unused)) __AROS_LCA(a10) = __AROS_ISREG(a10,__AROS_FP_REG) ? (__AROS_LPA(a10))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a10));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a10))__r;}); \
	register bt __attribute__((unused)) bn = __AROS_ISREG(bn,bt,A6,__AROS_FP_REG) ? (bt)(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm("%a6");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) (void) { \
	__AROS_LPA(a1) __attribute__((unused)) __AROS_LCA(a1) = __AROS_ISREG(a1,__AROS_FP_REG) ? (__AROS_LPA(a1))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a1));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a1))__r;}); \
	__AROS_LPA(a2) __attribute__((unused)) __AROS_LCA(a2) = __AROS_ISREG(a2,__AROS_FP_REG) ? (__AROS_LPA(a2))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a2));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a2))__r;}); \
	__AROS_LPA(a3) __attribute__((unused)) __AROS_LCA(a3) = __AROS_ISREG(a3,__AROS_FP_REG) ? (__AROS_LPA(a3))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a3));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a3))__r;}); \
	__AROS_LPA(a4) __attribute__((unused)) __AROS_LCA(a4) = __AROS_ISREG(a4,__AROS_FP_REG) ? (__AROS_LPA(a4))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a4));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a4))__r;}); \
	__AROS_LPA(a5) __attribute__((unused)) __AROS_LCA(a5) = __AROS_ISREG(a5,__AROS_FP_REG) ? (__AROS_LPA(a5))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a5));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a5))__r;}); \
	__AROS_LPA(a6) __attribute__((unused)) __AROS_LCA(a6) = __AROS_ISREG(a6,__AROS_FP_REG) ? (__AROS_LPA(a6))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a6));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a6))__r;}); \
	__AROS_LPA(a7) __attribute__((unused)) __AROS_LCA(a7) = __AROS_ISREG(a7,__AROS_FP_REG) ? (__AROS_LPA(a7))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a7));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a7))__r;}); \
	__AROS_LPA(a8) __attribute__((unused)) __AROS_LCA(a8) = __AROS_ISREG(a8,__AROS_FP_REG) ? (__AROS_LPA(a8))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a8));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a8))__r;}); \
	__AROS_LPA(a9) __attribute__((unused)) __AROS_LCA(a9) = __AROS_ISREG(a9,__AROS_FP_REG) ? (__AROS_LPA(a9))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a9));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a9))__r;}); \
	__AROS_LPA(a10) __attribute__((unused)) __AROS_LCA(a10) = __AROS_ISREG(a10,__AROS_FP_REG) ? (__AROS_LPA(a10))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a10));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a10))__r;}); \
	__AROS_LPA(a11) __attribute__((unused)) __AROS_LCA(a11) = __AROS_ISREG(a11,__AROS_FP_REG) ? (__AROS_LPA(a11))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a11));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a11))__r;}); \
	register bt __attribute__((unused)) bn = __AROS_ISREG(bn,bt,A6,__AROS_FP_REG) ? (bt)(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm("%a6");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) (void) { \
	__AROS_LPA(a1) __attribute__((unused)) __AROS_LCA(a1) = __AROS_ISREG(a1,__AROS_FP_REG) ? (__AROS_LPA(a1))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a1));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a1))__r;}); \
	__AROS_LPA(a2) __attribute__((unused)) __AROS_LCA(a2) = __AROS_ISREG(a2,__AROS_FP_REG) ? (__AROS_LPA(a2))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a2));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a2))__r;}); \
	__AROS_LPA(a3) __attribute__((unused)) __AROS_LCA(a3) = __AROS_ISREG(a3,__AROS_FP_REG) ? (__AROS_LPA(a3))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a3));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a3))__r;}); \
	__AROS_LPA(a4) __attribute__((unused)) __AROS_LCA(a4) = __AROS_ISREG(a4,__AROS_FP_REG) ? (__AROS_LPA(a4))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a4));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a4))__r;}); \
	__AROS_LPA(a5) __attribute__((unused)) __AROS_LCA(a5) = __AROS_ISREG(a5,__AROS_FP_REG) ? (__AROS_LPA(a5))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a5));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a5))__r;}); \
	__AROS_LPA(a6) __attribute__((unused)) __AROS_LCA(a6) = __AROS_ISREG(a6,__AROS_FP_REG) ? (__AROS_LPA(a6))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a6));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a6))__r;}); \
	__AROS_LPA(a7) __attribute__((unused)) __AROS_LCA(a7) = __AROS_ISREG(a7,__AROS_FP_REG) ? (__AROS_LPA(a7))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a7));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a7))__r;}); \
	__AROS_LPA(a8) __attribute__((unused)) __AROS_LCA(a8) = __AROS_ISREG(a8,__AROS_FP_REG) ? (__AROS_LPA(a8))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a8));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a8))__r;}); \
	__AROS_LPA(a9) __attribute__((unused)) __AROS_LCA(a9) = __AROS_ISREG(a9,__AROS_FP_REG) ? (__AROS_LPA(a9))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a9));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a9))__r;}); \
	__AROS_LPA(a10) __attribute__((unused)) __AROS_LCA(a10) = __AROS_ISREG(a10,__AROS_FP_REG) ? (__AROS_LPA(a10))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a10));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a10))__r;}); \
	__AROS_LPA(a11) __attribute__((unused)) __AROS_LCA(a11) = __AROS_ISREG(a11,__AROS_FP_REG) ? (__AROS_LPA(a11))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a11));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a11))__r;}); \
	__AROS_LPA(a12) __attribute__((unused)) __AROS_LCA(a12) = __AROS_ISREG(a12,__AROS_FP_REG) ? (__AROS_LPA(a12))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a12));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a12))__r;}); \
	register bt __attribute__((unused)) bn = __AROS_ISREG(bn,bt,A6,__AROS_FP_REG) ? (bt)(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm("%a6");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) (void) { \
	__AROS_LPA(a1) __attribute__((unused)) __AROS_LCA(a1) = __AROS_ISREG(a1,__AROS_FP_REG) ? (__AROS_LPA(a1))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a1));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a1))__r;}); \
	__AROS_LPA(a2) __attribute__((unused)) __AROS_LCA(a2) = __AROS_ISREG(a2,__AROS_FP_REG) ? (__AROS_LPA(a2))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a2));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a2))__r;}); \
	__AROS_LPA(a3) __attribute__((unused)) __AROS_LCA(a3) = __AROS_ISREG(a3,__AROS_FP_REG) ? (__AROS_LPA(a3))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a3));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a3))__r;}); \
	__AROS_LPA(a4) __attribute__((unused)) __AROS_LCA(a4) = __AROS_ISREG(a4,__AROS_FP_REG) ? (__AROS_LPA(a4))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a4));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a4))__r;}); \
	__AROS_LPA(a5) __attribute__((unused)) __AROS_LCA(a5) = __AROS_ISREG(a5,__AROS_FP_REG) ? (__AROS_LPA(a5))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a5));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a5))__r;}); \
	__AROS_LPA(a6) __attribute__((unused)) __AROS_LCA(a6) = __AROS_ISREG(a6,__AROS_FP_REG) ? (__AROS_LPA(a6))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a6));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a6))__r;}); \
	__AROS_LPA(a7) __attribute__((unused)) __AROS_LCA(a7) = __AROS_ISREG(a7,__AROS_FP_REG) ? (__AROS_LPA(a7))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a7));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a7))__r;}); \
	__AROS_LPA(a8) __attribute__((unused)) __AROS_LCA(a8) = __AROS_ISREG(a8,__AROS_FP_REG) ? (__AROS_LPA(a8))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a8));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a8))__r;}); \
	__AROS_LPA(a9) __attribute__((unused)) __AROS_LCA(a9) = __AROS_ISREG(a9,__AROS_FP_REG) ? (__AROS_LPA(a9))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a9));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a9))__r;}); \
	__AROS_LPA(a10) __attribute__((unused)) __AROS_LCA(a10) = __AROS_ISREG(a10,__AROS_FP_REG) ? (__AROS_LPA(a10))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a10));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a10))__r;}); \
	__AROS_LPA(a11) __attribute__((unused)) __AROS_LCA(a11) = __AROS_ISREG(a11,__AROS_FP_REG) ? (__AROS_LPA(a11))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a11));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a11))__r;}); \
	__AROS_LPA(a12) __attribute__((unused)) __AROS_LCA(a12) = __AROS_ISREG(a12,__AROS_FP_REG) ? (__AROS_LPA(a12))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a12));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a12))__r;}); \
	__AROS_LPA(a13) __attribute__((unused)) __AROS_LCA(a13) = __AROS_ISREG(a13,__AROS_FP_REG) ? (__AROS_LPA(a13))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a13));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a13))__r;}); \
	register bt __attribute__((unused)) bn = __AROS_ISREG(bn,bt,A6,__AROS_FP_REG) ? (bt)(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm("%a6");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) (void) { \
	__AROS_LPA(a1) __attribute__((unused)) __AROS_LCA(a1) = __AROS_ISREG(a1,__AROS_FP_REG) ? (__AROS_LPA(a1))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a1));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a1))__r;});
#define AROS_LH1I __AROS_LH1I
#define __AROS_LH2I(t,n,a1,a2,bt,bn,o,s) \
	t AROS_SLIB_ENTRY(n,s,o) (void) { \
	__AROS_LPA(a1) __attribute__((unused)) __AROS_LCA(a1) = __AROS_ISREG(a1,__AROS_FP_REG) ? (__AROS_LPA(a1))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a1));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a1))__r;}); \
	__AROS_LPA(a2) __attribute__((unused)) __AROS_LCA(a2) = __AROS_ISREG(a2,__AROS_FP_REG) ? (__AROS_LPA(a2))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a2));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a2))__r;});
#define AROS_LH2I __AROS_LH2I
#define __AROS_LH3I(t,n,a1,a2,a3,bt,bn,o,s) \
	t AROS_SLIB_ENTRY(n,s,o) (void) { \
	__AROS_LPA(a1) __attribute__((unused)) __AROS_LCA(a1) = __AROS_ISREG(a1,__AROS_FP_REG) ? (__AROS_LPA(a1))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a1));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a1))__r;}); \
	__AROS_LPA(a2) __attribute__((unused)) __AROS_LCA(a2) = __AROS_ISREG(a2,__AROS_FP_REG) ? (__AROS_LPA(a2))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a2));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a2))__r;}); \
	__AROS_LPA(a3) __attribute__((unused)) __AROS_LCA(a3) = __AROS_ISREG(a3,__AROS_FP_REG) ? (__AROS_LPA(a3))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a3));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a3))__r;});
#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) (void) { \
	__AROS_LPA(a1) __attribute__((unused)) __AROS_LCA(a1) = __AROS_ISREG(a1,__AROS_FP_REG) ? (__AROS_LPA(a1))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a1));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a1))__r;}); \
	__AROS_LPA(a2) __attribute__((unused)) __AROS_LCA(a2) = __AROS_ISREG(a2,__AROS_FP_REG) ? (__AROS_LPA(a2))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a2));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a2))__r;}); \
	__AROS_LPA(a3) __attribute__((unused)) __AROS_LCA(a3) = __AROS_ISREG(a3,__AROS_FP_REG) ? (__AROS_LPA(a3))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a3));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a3))__r;}); \
	__AROS_LPA(a4) __attribute__((unused)) __AROS_LCA(a4) = __AROS_ISREG(a4,__AROS_FP_REG) ? (__AROS_LPA(a4))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a4));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a4))__r;});
#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) (void) { \
	__AROS_LPA(a1) __attribute__((unused)) __AROS_LCA(a1) = __AROS_ISREG(a1,__AROS_FP_REG) ? (__AROS_LPA(a1))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a1));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a1))__r;}); \
	__AROS_LPA(a2) __attribute__((unused)) __AROS_LCA(a2) = __AROS_ISREG(a2,__AROS_FP_REG) ? (__AROS_LPA(a2))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a2));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a2))__r;}); \
	__AROS_LPA(a3) __attribute__((unused)) __AROS_LCA(a3) = __AROS_ISREG(a3,__AROS_FP_REG) ? (__AROS_LPA(a3))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a3));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a3))__r;}); \
	__AROS_LPA(a4) __attribute__((unused)) __AROS_LCA(a4) = __AROS_ISREG(a4,__AROS_FP_REG) ? (__AROS_LPA(a4))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a4));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a4))__r;}); \
	__AROS_LPA(a5) __attribute__((unused)) __AROS_LCA(a5) = __AROS_ISREG(a5,__AROS_FP_REG) ? (__AROS_LPA(a5))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a5));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a5))__r;});
#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) (void) { \
	__AROS_LPA(a1) __attribute__((unused)) __AROS_LCA(a1) = __AROS_ISREG(a1,__AROS_FP_REG) ? (__AROS_LPA(a1))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a1));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a1))__r;}); \
	__AROS_LPA(a2) __attribute__((unused)) __AROS_LCA(a2) = __AROS_ISREG(a2,__AROS_FP_REG) ? (__AROS_LPA(a2))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a2));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a2))__r;}); \
	__AROS_LPA(a3) __attribute__((unused)) __AROS_LCA(a3) = __AROS_ISREG(a3,__AROS_FP_REG) ? (__AROS_LPA(a3))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a3));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a3))__r;}); \
	__AROS_LPA(a4) __attribute__((unused)) __AROS_LCA(a4) = __AROS_ISREG(a4,__AROS_FP_REG) ? (__AROS_LPA(a4))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a4));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a4))__r;}); \
	__AROS_LPA(a5) __attribute__((unused)) __AROS_LCA(a5) = __AROS_ISREG(a5,__AROS_FP_REG) ? (__AROS_LPA(a5))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a5));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a5))__r;}); \
	__AROS_LPA(a6) __attribute__((unused)) __AROS_LCA(a6) = __AROS_ISREG(a6,__AROS_FP_REG) ? (__AROS_LPA(a6))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a6));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a6))__r;});
#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) (void) { \
	__AROS_LPA(a1) __attribute__((unused)) __AROS_LCA(a1) = __AROS_ISREG(a1,__AROS_FP_REG) ? (__AROS_LPA(a1))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a1));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a1))__r;}); \
	__AROS_LPA(a2) __attribute__((unused)) __AROS_LCA(a2) = __AROS_ISREG(a2,__AROS_FP_REG) ? (__AROS_LPA(a2))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a2));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a2))__r;}); \
	__AROS_LPA(a3) __attribute__((unused)) __AROS_LCA(a3) = __AROS_ISREG(a3,__AROS_FP_REG) ? (__AROS_LPA(a3))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a3));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a3))__r;}); \
	__AROS_LPA(a4) __attribute__((unused)) __AROS_LCA(a4) = __AROS_ISREG(a4,__AROS_FP_REG) ? (__AROS_LPA(a4))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a4));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a4))__r;}); \
	__AROS_LPA(a5) __attribute__((unused)) __AROS_LCA(a5) = __AROS_ISREG(a5,__AROS_FP_REG) ? (__AROS_LPA(a5))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a5));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a5))__r;}); \
	__AROS_LPA(a6) __attribute__((unused)) __AROS_LCA(a6) = __AROS_ISREG(a6,__AROS_FP_REG) ? (__AROS_LPA(a6))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a6));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a6))__r;}); \
	__AROS_LPA(a7) __attribute__((unused)) __AROS_LCA(a7) = __AROS_ISREG(a7,__AROS_FP_REG) ? (__AROS_LPA(a7))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a7));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a7))__r;});
#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) (void) { \
	__AROS_LPA(a1) __attribute__((unused)) __AROS_LCA(a1) = __AROS_ISREG(a1,__AROS_FP_REG) ? (__AROS_LPA(a1))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a1));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a1))__r;}); \
	__AROS_LPA(a2) __attribute__((unused)) __AROS_LCA(a2) = __AROS_ISREG(a2,__AROS_FP_REG) ? (__AROS_LPA(a2))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a2));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a2))__r;}); \
	__AROS_LPA(a3) __attribute__((unused)) __AROS_LCA(a3) = __AROS_ISREG(a3,__AROS_FP_REG) ? (__AROS_LPA(a3))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a3));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a3))__r;}); \
	__AROS_LPA(a4) __attribute__((unused)) __AROS_LCA(a4) = __AROS_ISREG(a4,__AROS_FP_REG) ? (__AROS_LPA(a4))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a4));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a4))__r;}); \
	__AROS_LPA(a5) __attribute__((unused)) __AROS_LCA(a5) = __AROS_ISREG(a5,__AROS_FP_REG) ? (__AROS_LPA(a5))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a5));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a5))__r;}); \
	__AROS_LPA(a6) __attribute__((unused)) __AROS_LCA(a6) = __AROS_ISREG(a6,__AROS_FP_REG) ? (__AROS_LPA(a6))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a6));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a6))__r;}); \
	__AROS_LPA(a7) __attribute__((unused)) __AROS_LCA(a7) = __AROS_ISREG(a7,__AROS_FP_REG) ? (__AROS_LPA(a7))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a7));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a7))__r;}); \
	__AROS_LPA(a8) __attribute__((unused)) __AROS_LCA(a8) = __AROS_ISREG(a8,__AROS_FP_REG) ? (__AROS_LPA(a8))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a8));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a8))__r;});
#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) (void) { \
	__AROS_LPA(a1) __attribute__((unused)) __AROS_LCA(a1) = __AROS_ISREG(a1,__AROS_FP_REG) ? (__AROS_LPA(a1))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a1));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a1))__r;}); \
	__AROS_LPA(a2) __attribute__((unused)) __AROS_LCA(a2) = __AROS_ISREG(a2,__AROS_FP_REG) ? (__AROS_LPA(a2))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a2));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a2))__r;}); \
	__AROS_LPA(a3) __attribute__((unused)) __AROS_LCA(a3) = __AROS_ISREG(a3,__AROS_FP_REG) ? (__AROS_LPA(a3))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a3));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a3))__r;}); \
	__AROS_LPA(a4) __attribute__((unused)) __AROS_LCA(a4) = __AROS_ISREG(a4,__AROS_FP_REG) ? (__AROS_LPA(a4))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a4));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a4))__r;}); \
	__AROS_LPA(a5) __attribute__((unused)) __AROS_LCA(a5) = __AROS_ISREG(a5,__AROS_FP_REG) ? (__AROS_LPA(a5))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a5));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a5))__r;}); \
	__AROS_LPA(a6) __attribute__((unused)) __AROS_LCA(a6) = __AROS_ISREG(a6,__AROS_FP_REG) ? (__AROS_LPA(a6))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a6));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a6))__r;}); \
	__AROS_LPA(a7) __attribute__((unused)) __AROS_LCA(a7) = __AROS_ISREG(a7,__AROS_FP_REG) ? (__AROS_LPA(a7))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a7));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a7))__r;}); \
	__AROS_LPA(a8) __attribute__((unused)) __AROS_LCA(a8) = __AROS_ISREG(a8,__AROS_FP_REG) ? (__AROS_LPA(a8))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a8));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a8))__r;}); \
	__AROS_LPA(a9) __attribute__((unused)) __AROS_LCA(a9) = __AROS_ISREG(a9,__AROS_FP_REG) ? (__AROS_LPA(a9))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a9));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a9))__r;});
#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) (void) { \
	__AROS_LPA(a1) __attribute__((unused)) __AROS_LCA(a1) = __AROS_ISREG(a1,__AROS_FP_REG) ? (__AROS_LPA(a1))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a1));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a1))__r;}); \
	__AROS_LPA(a2) __attribute__((unused)) __AROS_LCA(a2) = __AROS_ISREG(a2,__AROS_FP_REG) ? (__AROS_LPA(a2))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a2));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a2))__r;}); \
	__AROS_LPA(a3) __attribute__((unused)) __AROS_LCA(a3) = __AROS_ISREG(a3,__AROS_FP_REG) ? (__AROS_LPA(a3))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a3));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a3))__r;}); \
	__AROS_LPA(a4) __attribute__((unused)) __AROS_LCA(a4) = __AROS_ISREG(a4,__AROS_FP_REG) ? (__AROS_LPA(a4))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a4));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a4))__r;}); \
	__AROS_LPA(a5) __attribute__((unused)) __AROS_LCA(a5) = __AROS_ISREG(a5,__AROS_FP_REG) ? (__AROS_LPA(a5))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a5));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a5))__r;}); \
	__AROS_LPA(a6) __attribute__((unused)) __AROS_LCA(a6) = __AROS_ISREG(a6,__AROS_FP_REG) ? (__AROS_LPA(a6))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a6));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a6))__r;}); \
	__AROS_LPA(a7) __attribute__((unused)) __AROS_LCA(a7) = __AROS_ISREG(a7,__AROS_FP_REG) ? (__AROS_LPA(a7))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a7));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a7))__r;}); \
	__AROS_LPA(a8) __attribute__((unused)) __AROS_LCA(a8) = __AROS_ISREG(a8,__AROS_FP_REG) ? (__AROS_LPA(a8))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a8));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a8))__r;}); \
	__AROS_LPA(a9) __attribute__((unused)) __AROS_LCA(a9) = __AROS_ISREG(a9,__AROS_FP_REG) ? (__AROS_LPA(a9))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a9));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a9))__r;}); \
	__AROS_LPA(a10) __attribute__((unused)) __AROS_LCA(a10) = __AROS_ISREG(a10,__AROS_FP_REG) ? (__AROS_LPA(a10))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a10));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a10))__r;});
#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) (void) { \
	__AROS_LPA(a1) __attribute__((unused)) __AROS_LCA(a1) = __AROS_ISREG(a1,__AROS_FP_REG) ? (__AROS_LPA(a1))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a1));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a1))__r;}); \
	__AROS_LPA(a2) __attribute__((unused)) __AROS_LCA(a2) = __AROS_ISREG(a2,__AROS_FP_REG) ? (__AROS_LPA(a2))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a2));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a2))__r;}); \
	__AROS_LPA(a3) __attribute__((unused)) __AROS_LCA(a3) = __AROS_ISREG(a3,__AROS_FP_REG) ? (__AROS_LPA(a3))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a3));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a3))__r;}); \
	__AROS_LPA(a4) __attribute__((unused)) __AROS_LCA(a4) = __AROS_ISREG(a4,__AROS_FP_REG) ? (__AROS_LPA(a4))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a4));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a4))__r;}); \
	__AROS_LPA(a5) __attribute__((unused)) __AROS_LCA(a5) = __AROS_ISREG(a5,__AROS_FP_REG) ? (__AROS_LPA(a5))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a5));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a5))__r;}); \
	__AROS_LPA(a6) __attribute__((unused)) __AROS_LCA(a6) = __AROS_ISREG(a6,__AROS_FP_REG) ? (__AROS_LPA(a6))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a6));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a6))__r;}); \
	__AROS_LPA(a7) __attribute__((unused)) __AROS_LCA(a7) = __AROS_ISREG(a7,__AROS_FP_REG) ? (__AROS_LPA(a7))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a7));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a7))__r;}); \
	__AROS_LPA(a8) __attribute__((unused)) __AROS_LCA(a8) = __AROS_ISREG(a8,__AROS_FP_REG) ? (__AROS_LPA(a8))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a8));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a8))__r;}); \
	__AROS_LPA(a9) __attribute__((unused)) __AROS_LCA(a9) = __AROS_ISREG(a9,__AROS_FP_REG) ? (__AROS_LPA(a9))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a9));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a9))__r;}); \
	__AROS_LPA(a10) __attribute__((unused)) __AROS_LCA(a10) = __AROS_ISREG(a10,__AROS_FP_REG) ? (__AROS_LPA(a10))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a10));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a10))__r;}); \
	__AROS_LPA(a11) __attribute__((unused)) __AROS_LCA(a11) = __AROS_ISREG(a11,__AROS_FP_REG) ? (__AROS_LPA(a11))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a11));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a11))__r;});
#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) (void) { \
	__AROS_LPA(a1) __attribute__((unused)) __AROS_LCA(a1) = __AROS_ISREG(a1,__AROS_FP_REG) ? (__AROS_LPA(a1))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a1));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a1))__r;}); \
	__AROS_LPA(a2) __attribute__((unused)) __AROS_LCA(a2) = __AROS_ISREG(a2,__AROS_FP_REG) ? (__AROS_LPA(a2))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a2));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a2))__r;}); \
	__AROS_LPA(a3) __attribute__((unused)) __AROS_LCA(a3) = __AROS_ISREG(a3,__AROS_FP_REG) ? (__AROS_LPA(a3))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a3));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a3))__r;}); \
	__AROS_LPA(a4) __attribute__((unused)) __AROS_LCA(a4) = __AROS_ISREG(a4,__AROS_FP_REG) ? (__AROS_LPA(a4))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a4));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a4))__r;}); \
	__AROS_LPA(a5) __attribute__((unused)) __AROS_LCA(a5) = __AROS_ISREG(a5,__AROS_FP_REG) ? (__AROS_LPA(a5))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a5));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a5))__r;}); \
	__AROS_LPA(a6) __attribute__((unused)) __AROS_LCA(a6) = __AROS_ISREG(a6,__AROS_FP_REG) ? (__AROS_LPA(a6))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a6));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a6))__r;}); \
	__AROS_LPA(a7) __attribute__((unused)) __AROS_LCA(a7) = __AROS_ISREG(a7,__AROS_FP_REG) ? (__AROS_LPA(a7))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a7));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a7))__r;}); \
	__AROS_LPA(a8) __attribute__((unused)) __AROS_LCA(a8) = __AROS_ISREG(a8,__AROS_FP_REG) ? (__AROS_LPA(a8))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a8));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a8))__r;}); \
	__AROS_LPA(a9) __attribute__((unused)) __AROS_LCA(a9) = __AROS_ISREG(a9,__AROS_FP_REG) ? (__AROS_LPA(a9))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a9));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a9))__r;}); \
	__AROS_LPA(a10) __attribute__((unused)) __AROS_LCA(a10) = __AROS_ISREG(a10,__AROS_FP_REG) ? (__AROS_LPA(a10))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a10));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a10))__r;}); \
	__AROS_LPA(a11) __attribute__((unused)) __AROS_LCA(a11) = __AROS_ISREG(a11,__AROS_FP_REG) ? (__AROS_LPA(a11))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a11));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a11))__r;}); \
	__AROS_LPA(a12) __attribute__((unused)) __AROS_LCA(a12) = __AROS_ISREG(a12,__AROS_FP_REG) ? (__AROS_LPA(a12))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a12));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a12))__r;});
#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) (void) { \
	__AROS_LPA(a1) __attribute__((unused)) __AROS_LCA(a1) = __AROS_ISREG(a1,__AROS_FP_REG) ? (__AROS_LPA(a1))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a1));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a1))__r;}); \
	__AROS_LPA(a2) __attribute__((unused)) __AROS_LCA(a2) = __AROS_ISREG(a2,__AROS_FP_REG) ? (__AROS_LPA(a2))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a2));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a2))__r;}); \
	__AROS_LPA(a3) __attribute__((unused)) __AROS_LCA(a3) = __AROS_ISREG(a3,__AROS_FP_REG) ? (__AROS_LPA(a3))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a3));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a3))__r;}); \
	__AROS_LPA(a4) __attribute__((unused)) __AROS_LCA(a4) = __AROS_ISREG(a4,__AROS_FP_REG) ? (__AROS_LPA(a4))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a4));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a4))__r;}); \
	__AROS_LPA(a5) __attribute__((unused)) __AROS_LCA(a5) = __AROS_ISREG(a5,__AROS_FP_REG) ? (__AROS_LPA(a5))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a5));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a5))__r;}); \
	__AROS_LPA(a6) __attribute__((unused)) __AROS_LCA(a6) = __AROS_ISREG(a6,__AROS_FP_REG) ? (__AROS_LPA(a6))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a6));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a6))__r;}); \
	__AROS_LPA(a7) __attribute__((unused)) __AROS_LCA(a7) = __AROS_ISREG(a7,__AROS_FP_REG) ? (__AROS_LPA(a7))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a7));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a7))__r;}); \
	__AROS_LPA(a8) __attribute__((unused)) __AROS_LCA(a8) = __AROS_ISREG(a8,__AROS_FP_REG) ? (__AROS_LPA(a8))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a8));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a8))__r;}); \
	__AROS_LPA(a9) __attribute__((unused)) __AROS_LCA(a9) = __AROS_ISREG(a9,__AROS_FP_REG) ? (__AROS_LPA(a9))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a9));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a9))__r;}); \
	__AROS_LPA(a10) __attribute__((unused)) __AROS_LCA(a10) = __AROS_ISREG(a10,__AROS_FP_REG) ? (__AROS_LPA(a10))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a10));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a10))__r;}); \
	__AROS_LPA(a11) __attribute__((unused)) __AROS_LCA(a11) = __AROS_ISREG(a11,__AROS_FP_REG) ? (__AROS_LPA(a11))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a11));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a11))__r;}); \
	__AROS_LPA(a12) __attribute__((unused)) __AROS_LCA(a12) = __AROS_ISREG(a12,__AROS_FP_REG) ? (__AROS_LPA(a12))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a12));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a12))__r;}); \
	__AROS_LPA(a13) __attribute__((unused)) __AROS_LCA(a13) = __AROS_ISREG(a13,__AROS_FP_REG) ? (__AROS_LPA(a13))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a13));asm volatile("":"=r"(__r):"0"(__r));(__AROS_LPA(a13))__r;});
#define AROS_LH13I __AROS_LH13I

#define __AROS_CPU_SPECIFIC_LC

#define __AROS_LC0(t,n,bt,bn,o,s) \
	({ \
	register volatile ULONG _ret0 asm("%d0"); \
	register volatile ULONG _ret1 asm("%d1"); \
	register volatile ULONG _mem0 asm("%a0"); \
	register volatile ULONG _mem1 asm("%a1"); \
	{ \
	   ULONG _bn_arg = (ULONG)bn; \
	   register volatile ULONG _bn asm("%a6"); \
	   if (! __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      _bn = _bn_arg; } \
	   if ( __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_bn_arg), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		: "cc", "memory" \
	       ); }\
	   if (!(0 || __AROS_ISREG(bt,bn,A6,__AROS_FP_REG))) {\
	      asm volatile ("jsr %c5(%%a6)\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "i" (0), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		: "cc", "memory" \
	       ); }\
	}\
	(void)_mem0; (void)_mem1; \
	(sizeof(t) < sizeof(QUAD)) ? (t)(_ret0) :\
	   ({struct { ULONG r0,r1; } rv;\
	     t *t_ptr = (t *)&rv.r0;\
	     rv.r0 = _ret0; rv.r1 = _ret1; *t_ptr; });\
	  })

#define AROS_LC0 __AROS_LC0
#define __AROS_LC0NR(t,n,bt,bn,o,s) \
	({ \
	register volatile ULONG _ret0 asm("%d0"); \
	register volatile ULONG _ret1 asm("%d1"); \
	register volatile ULONG _mem0 asm("%a0"); \
	register volatile ULONG _mem1 asm("%a1"); \
	{ \
	   ULONG _bn_arg = (ULONG)bn; \
	   register volatile ULONG _bn asm("%a6"); \
	   if (! __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      _bn = _bn_arg; } \
	   if ( __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_bn_arg), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		: "cc", "memory" \
	       ); }\
	   if (!(0 || __AROS_ISREG(bt,bn,A6,__AROS_FP_REG))) {\
	      asm volatile ("jsr %c5(%%a6)\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "i" (0), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		: "cc", "memory" \
	       ); }\
	}\
	  })

#define AROS_LC0NR __AROS_LC0NR
#define __AROS_LC1(t,n,a1,bt,bn,o,s) \
	({ \
	register volatile ULONG _ret0 asm("%d0"); \
	register volatile ULONG _ret1 asm("%d1"); \
	register volatile ULONG _mem0 asm("%a0"); \
	register volatile ULONG _mem1 asm("%a1"); \
	{ \
	   ULONG _arg1 = (ULONG)__AROS_LCA(a1); \
	   ULONG _bn_arg = (ULONG)bn; \
	   register volatile ULONG  __AROS_LTA(a1) asm(__AROS_LSA(a1)); \
	   register volatile ULONG _bn asm("%a6"); \
	   if (! __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      __AROS_LTA(a1) = _arg1; } \
	   if (! __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      _bn = _bn_arg; } \
	   if ( __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg1), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_bn_arg), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		: "cc", "memory" \
	       ); }\
	   if (!(0 || __AROS_ISREG(bt,bn,A6,__AROS_FP_REG) || __AROS_ISREG(a1,__AROS_FP_REG))) {\
	      asm volatile ("jsr %c5(%%a6)\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "i" (0), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		: "cc", "memory" \
	       ); }\
	}\
	(void)_mem0; (void)_mem1; \
	(sizeof(t) < sizeof(QUAD)) ? (t)(_ret0) :\
	   ({struct { ULONG r0,r1; } rv;\
	     t *t_ptr = (t *)&rv.r0;\
	     rv.r0 = _ret0; rv.r1 = _ret1; *t_ptr; });\
	  })

#define AROS_LC1 __AROS_LC1
#define __AROS_LC1NR(t,n,a1,bt,bn,o,s) \
	({ \
	register volatile ULONG _ret0 asm("%d0"); \
	register volatile ULONG _ret1 asm("%d1"); \
	register volatile ULONG _mem0 asm("%a0"); \
	register volatile ULONG _mem1 asm("%a1"); \
	{ \
	   ULONG _arg1 = (ULONG)__AROS_LCA(a1); \
	   ULONG _bn_arg = (ULONG)bn; \
	   register volatile ULONG  __AROS_LTA(a1) asm(__AROS_LSA(a1)); \
	   register volatile ULONG _bn asm("%a6"); \
	   if (! __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      __AROS_LTA(a1) = _arg1; } \
	   if (! __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      _bn = _bn_arg; } \
	   if ( __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg1), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_bn_arg), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		: "cc", "memory" \
	       ); }\
	   if (!(0 || __AROS_ISREG(bt,bn,A6,__AROS_FP_REG) || __AROS_ISREG(a1,__AROS_FP_REG))) {\
	      asm volatile ("jsr %c5(%%a6)\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "i" (0), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		: "cc", "memory" \
	       ); }\
	}\
	  })

#define AROS_LC1NR __AROS_LC1NR
#define __AROS_LC2(t,n,a1,a2,bt,bn,o,s) \
	({ \
	register volatile ULONG _ret0 asm("%d0"); \
	register volatile ULONG _ret1 asm("%d1"); \
	register volatile ULONG _mem0 asm("%a0"); \
	register volatile ULONG _mem1 asm("%a1"); \
	{ \
	   ULONG _arg1 = (ULONG)__AROS_LCA(a1); \
	   ULONG _arg2 = (ULONG)__AROS_LCA(a2); \
	   ULONG _bn_arg = (ULONG)bn; \
	   register volatile ULONG  __AROS_LTA(a1) asm(__AROS_LSA(a1)); \
	   register volatile ULONG  __AROS_LTA(a2) asm(__AROS_LSA(a2)); \
	   register volatile ULONG _bn asm("%a6"); \
	   if (! __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      __AROS_LTA(a1) = _arg1; } \
	   if (! __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      __AROS_LTA(a2) = _arg2; } \
	   if (! __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      _bn = _bn_arg; } \
	   if ( __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg1), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg2), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_bn_arg), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		: "cc", "memory" \
	       ); }\
	   if (!(0 || __AROS_ISREG(bt,bn,A6,__AROS_FP_REG) || __AROS_ISREG(a1,__AROS_FP_REG) || __AROS_ISREG(a2,__AROS_FP_REG))) {\
	      asm volatile ("jsr %c5(%%a6)\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "i" (0), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		: "cc", "memory" \
	       ); }\
	}\
	(void)_mem0; (void)_mem1; \
	(sizeof(t) < sizeof(QUAD)) ? (t)(_ret0) :\
	   ({struct { ULONG r0,r1; } rv;\
	     t *t_ptr = (t *)&rv.r0;\
	     rv.r0 = _ret0; rv.r1 = _ret1; *t_ptr; });\
	  })

#define AROS_LC2 __AROS_LC2
#define __AROS_LC2NR(t,n,a1,a2,bt,bn,o,s) \
	({ \
	register volatile ULONG _ret0 asm("%d0"); \
	register volatile ULONG _ret1 asm("%d1"); \
	register volatile ULONG _mem0 asm("%a0"); \
	register volatile ULONG _mem1 asm("%a1"); \
	{ \
	   ULONG _arg1 = (ULONG)__AROS_LCA(a1); \
	   ULONG _arg2 = (ULONG)__AROS_LCA(a2); \
	   ULONG _bn_arg = (ULONG)bn; \
	   register volatile ULONG  __AROS_LTA(a1) asm(__AROS_LSA(a1)); \
	   register volatile ULONG  __AROS_LTA(a2) asm(__AROS_LSA(a2)); \
	   register volatile ULONG _bn asm("%a6"); \
	   if (! __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      __AROS_LTA(a1) = _arg1; } \
	   if (! __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      __AROS_LTA(a2) = _arg2; } \
	   if (! __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      _bn = _bn_arg; } \
	   if ( __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg1), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg2), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_bn_arg), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		: "cc", "memory" \
	       ); }\
	   if (!(0 || __AROS_ISREG(bt,bn,A6,__AROS_FP_REG) || __AROS_ISREG(a1,__AROS_FP_REG) || __AROS_ISREG(a2,__AROS_FP_REG))) {\
	      asm volatile ("jsr %c5(%%a6)\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "i" (0), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		: "cc", "memory" \
	       ); }\
	}\
	  })

#define AROS_LC2NR __AROS_LC2NR
#define __AROS_LC3(t,n,a1,a2,a3,bt,bn,o,s) \
	({ \
	register volatile ULONG _ret0 asm("%d0"); \
	register volatile ULONG _ret1 asm("%d1"); \
	register volatile ULONG _mem0 asm("%a0"); \
	register volatile ULONG _mem1 asm("%a1"); \
	{ \
	   ULONG _arg1 = (ULONG)__AROS_LCA(a1); \
	   ULONG _arg2 = (ULONG)__AROS_LCA(a2); \
	   ULONG _arg3 = (ULONG)__AROS_LCA(a3); \
	   ULONG _bn_arg = (ULONG)bn; \
	   register volatile ULONG  __AROS_LTA(a1) asm(__AROS_LSA(a1)); \
	   register volatile ULONG  __AROS_LTA(a2) asm(__AROS_LSA(a2)); \
	   register volatile ULONG  __AROS_LTA(a3) asm(__AROS_LSA(a3)); \
	   register volatile ULONG _bn asm("%a6"); \
	   if (! __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      __AROS_LTA(a1) = _arg1; } \
	   if (! __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      __AROS_LTA(a2) = _arg2; } \
	   if (! __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      __AROS_LTA(a3) = _arg3; } \
	   if (! __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      _bn = _bn_arg; } \
	   if ( __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg1), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg2), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg3), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_bn_arg), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		: "cc", "memory" \
	       ); }\
	   if (!(0 || __AROS_ISREG(bt,bn,A6,__AROS_FP_REG) || __AROS_ISREG(a1,__AROS_FP_REG) || __AROS_ISREG(a2,__AROS_FP_REG) || __AROS_ISREG(a3,__AROS_FP_REG))) {\
	      asm volatile ("jsr %c5(%%a6)\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "i" (0), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		: "cc", "memory" \
	       ); }\
	}\
	(void)_mem0; (void)_mem1; \
	(sizeof(t) < sizeof(QUAD)) ? (t)(_ret0) :\
	   ({struct { ULONG r0,r1; } rv;\
	     t *t_ptr = (t *)&rv.r0;\
	     rv.r0 = _ret0; rv.r1 = _ret1; *t_ptr; });\
	  })

#define AROS_LC3 __AROS_LC3
#define __AROS_LC3NR(t,n,a1,a2,a3,bt,bn,o,s) \
	({ \
	register volatile ULONG _ret0 asm("%d0"); \
	register volatile ULONG _ret1 asm("%d1"); \
	register volatile ULONG _mem0 asm("%a0"); \
	register volatile ULONG _mem1 asm("%a1"); \
	{ \
	   ULONG _arg1 = (ULONG)__AROS_LCA(a1); \
	   ULONG _arg2 = (ULONG)__AROS_LCA(a2); \
	   ULONG _arg3 = (ULONG)__AROS_LCA(a3); \
	   ULONG _bn_arg = (ULONG)bn; \
	   register volatile ULONG  __AROS_LTA(a1) asm(__AROS_LSA(a1)); \
	   register volatile ULONG  __AROS_LTA(a2) asm(__AROS_LSA(a2)); \
	   register volatile ULONG  __AROS_LTA(a3) asm(__AROS_LSA(a3)); \
	   register volatile ULONG _bn asm("%a6"); \
	   if (! __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      __AROS_LTA(a1) = _arg1; } \
	   if (! __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      __AROS_LTA(a2) = _arg2; } \
	   if (! __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      __AROS_LTA(a3) = _arg3; } \
	   if (! __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      _bn = _bn_arg; } \
	   if ( __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg1), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg2), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg3), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_bn_arg), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		: "cc", "memory" \
	       ); }\
	   if (!(0 || __AROS_ISREG(bt,bn,A6,__AROS_FP_REG) || __AROS_ISREG(a1,__AROS_FP_REG) || __AROS_ISREG(a2,__AROS_FP_REG) || __AROS_ISREG(a3,__AROS_FP_REG))) {\
	      asm volatile ("jsr %c5(%%a6)\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "i" (0), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		: "cc", "memory" \
	       ); }\
	}\
	  })

#define AROS_LC3NR __AROS_LC3NR
#define __AROS_LC4(t,n,a1,a2,a3,a4,bt,bn,o,s) \
	({ \
	register volatile ULONG _ret0 asm("%d0"); \
	register volatile ULONG _ret1 asm("%d1"); \
	register volatile ULONG _mem0 asm("%a0"); \
	register volatile ULONG _mem1 asm("%a1"); \
	{ \
	   ULONG _arg1 = (ULONG)__AROS_LCA(a1); \
	   ULONG _arg2 = (ULONG)__AROS_LCA(a2); \
	   ULONG _arg3 = (ULONG)__AROS_LCA(a3); \
	   ULONG _arg4 = (ULONG)__AROS_LCA(a4); \
	   ULONG _bn_arg = (ULONG)bn; \
	   register volatile ULONG  __AROS_LTA(a1) asm(__AROS_LSA(a1)); \
	   register volatile ULONG  __AROS_LTA(a2) asm(__AROS_LSA(a2)); \
	   register volatile ULONG  __AROS_LTA(a3) asm(__AROS_LSA(a3)); \
	   register volatile ULONG  __AROS_LTA(a4) asm(__AROS_LSA(a4)); \
	   register volatile ULONG _bn asm("%a6"); \
	   if (! __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      __AROS_LTA(a1) = _arg1; } \
	   if (! __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      __AROS_LTA(a2) = _arg2; } \
	   if (! __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      __AROS_LTA(a3) = _arg3; } \
	   if (! __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      __AROS_LTA(a4) = _arg4; } \
	   if (! __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      _bn = _bn_arg; } \
	   if ( __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg1), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg2), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg3), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg4), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_bn_arg), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		: "cc", "memory" \
	       ); }\
	   if (!(0 || __AROS_ISREG(bt,bn,A6,__AROS_FP_REG) || __AROS_ISREG(a1,__AROS_FP_REG) || __AROS_ISREG(a2,__AROS_FP_REG) || __AROS_ISREG(a3,__AROS_FP_REG) || __AROS_ISREG(a4,__AROS_FP_REG))) {\
	      asm volatile ("jsr %c5(%%a6)\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "i" (0), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		: "cc", "memory" \
	       ); }\
	}\
	(void)_mem0; (void)_mem1; \
	(sizeof(t) < sizeof(QUAD)) ? (t)(_ret0) :\
	   ({struct { ULONG r0,r1; } rv;\
	     t *t_ptr = (t *)&rv.r0;\
	     rv.r0 = _ret0; rv.r1 = _ret1; *t_ptr; });\
	  })

#define AROS_LC4 __AROS_LC4
#define __AROS_LC4NR(t,n,a1,a2,a3,a4,bt,bn,o,s) \
	({ \
	register volatile ULONG _ret0 asm("%d0"); \
	register volatile ULONG _ret1 asm("%d1"); \
	register volatile ULONG _mem0 asm("%a0"); \
	register volatile ULONG _mem1 asm("%a1"); \
	{ \
	   ULONG _arg1 = (ULONG)__AROS_LCA(a1); \
	   ULONG _arg2 = (ULONG)__AROS_LCA(a2); \
	   ULONG _arg3 = (ULONG)__AROS_LCA(a3); \
	   ULONG _arg4 = (ULONG)__AROS_LCA(a4); \
	   ULONG _bn_arg = (ULONG)bn; \
	   register volatile ULONG  __AROS_LTA(a1) asm(__AROS_LSA(a1)); \
	   register volatile ULONG  __AROS_LTA(a2) asm(__AROS_LSA(a2)); \
	   register volatile ULONG  __AROS_LTA(a3) asm(__AROS_LSA(a3)); \
	   register volatile ULONG  __AROS_LTA(a4) asm(__AROS_LSA(a4)); \
	   register volatile ULONG _bn asm("%a6"); \
	   if (! __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      __AROS_LTA(a1) = _arg1; } \
	   if (! __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      __AROS_LTA(a2) = _arg2; } \
	   if (! __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      __AROS_LTA(a3) = _arg3; } \
	   if (! __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      __AROS_LTA(a4) = _arg4; } \
	   if (! __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      _bn = _bn_arg; } \
	   if ( __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg1), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg2), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg3), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg4), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_bn_arg), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		: "cc", "memory" \
	       ); }\
	   if (!(0 || __AROS_ISREG(bt,bn,A6,__AROS_FP_REG) || __AROS_ISREG(a1,__AROS_FP_REG) || __AROS_ISREG(a2,__AROS_FP_REG) || __AROS_ISREG(a3,__AROS_FP_REG) || __AROS_ISREG(a4,__AROS_FP_REG))) {\
	      asm volatile ("jsr %c5(%%a6)\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "i" (0), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		: "cc", "memory" \
	       ); }\
	}\
	  })

#define AROS_LC4NR __AROS_LC4NR
#define __AROS_LC5(t,n,a1,a2,a3,a4,a5,bt,bn,o,s) \
	({ \
	register volatile ULONG _ret0 asm("%d0"); \
	register volatile ULONG _ret1 asm("%d1"); \
	register volatile ULONG _mem0 asm("%a0"); \
	register volatile ULONG _mem1 asm("%a1"); \
	{ \
	   ULONG _arg1 = (ULONG)__AROS_LCA(a1); \
	   ULONG _arg2 = (ULONG)__AROS_LCA(a2); \
	   ULONG _arg3 = (ULONG)__AROS_LCA(a3); \
	   ULONG _arg4 = (ULONG)__AROS_LCA(a4); \
	   ULONG _arg5 = (ULONG)__AROS_LCA(a5); \
	   ULONG _bn_arg = (ULONG)bn; \
	   register volatile ULONG  __AROS_LTA(a1) asm(__AROS_LSA(a1)); \
	   register volatile ULONG  __AROS_LTA(a2) asm(__AROS_LSA(a2)); \
	   register volatile ULONG  __AROS_LTA(a3) asm(__AROS_LSA(a3)); \
	   register volatile ULONG  __AROS_LTA(a4) asm(__AROS_LSA(a4)); \
	   register volatile ULONG  __AROS_LTA(a5) asm(__AROS_LSA(a5)); \
	   register volatile ULONG _bn asm("%a6"); \
	   if (! __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      __AROS_LTA(a1) = _arg1; } \
	   if (! __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      __AROS_LTA(a2) = _arg2; } \
	   if (! __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      __AROS_LTA(a3) = _arg3; } \
	   if (! __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      __AROS_LTA(a4) = _arg4; } \
	   if (! __AROS_ISREG(a5,__AROS_FP_REG)) { \
	      __AROS_LTA(a5) = _arg5; } \
	   if (! __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      _bn = _bn_arg; } \
	   if ( __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg1), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg2), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg3), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg4), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a5,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg5), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_bn_arg), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		: "cc", "memory" \
	       ); }\
	   if (!(0 || __AROS_ISREG(bt,bn,A6,__AROS_FP_REG) || __AROS_ISREG(a1,__AROS_FP_REG) || __AROS_ISREG(a2,__AROS_FP_REG) || __AROS_ISREG(a3,__AROS_FP_REG) || __AROS_ISREG(a4,__AROS_FP_REG) || __AROS_ISREG(a5,__AROS_FP_REG))) {\
	      asm volatile ("jsr %c5(%%a6)\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "i" (0), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		: "cc", "memory" \
	       ); }\
	}\
	(void)_mem0; (void)_mem1; \
	(sizeof(t) < sizeof(QUAD)) ? (t)(_ret0) :\
	   ({struct { ULONG r0,r1; } rv;\
	     t *t_ptr = (t *)&rv.r0;\
	     rv.r0 = _ret0; rv.r1 = _ret1; *t_ptr; });\
	  })

#define AROS_LC5 __AROS_LC5
#define __AROS_LC5NR(t,n,a1,a2,a3,a4,a5,bt,bn,o,s) \
	({ \
	register volatile ULONG _ret0 asm("%d0"); \
	register volatile ULONG _ret1 asm("%d1"); \
	register volatile ULONG _mem0 asm("%a0"); \
	register volatile ULONG _mem1 asm("%a1"); \
	{ \
	   ULONG _arg1 = (ULONG)__AROS_LCA(a1); \
	   ULONG _arg2 = (ULONG)__AROS_LCA(a2); \
	   ULONG _arg3 = (ULONG)__AROS_LCA(a3); \
	   ULONG _arg4 = (ULONG)__AROS_LCA(a4); \
	   ULONG _arg5 = (ULONG)__AROS_LCA(a5); \
	   ULONG _bn_arg = (ULONG)bn; \
	   register volatile ULONG  __AROS_LTA(a1) asm(__AROS_LSA(a1)); \
	   register volatile ULONG  __AROS_LTA(a2) asm(__AROS_LSA(a2)); \
	   register volatile ULONG  __AROS_LTA(a3) asm(__AROS_LSA(a3)); \
	   register volatile ULONG  __AROS_LTA(a4) asm(__AROS_LSA(a4)); \
	   register volatile ULONG  __AROS_LTA(a5) asm(__AROS_LSA(a5)); \
	   register volatile ULONG _bn asm("%a6"); \
	   if (! __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      __AROS_LTA(a1) = _arg1; } \
	   if (! __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      __AROS_LTA(a2) = _arg2; } \
	   if (! __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      __AROS_LTA(a3) = _arg3; } \
	   if (! __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      __AROS_LTA(a4) = _arg4; } \
	   if (! __AROS_ISREG(a5,__AROS_FP_REG)) { \
	      __AROS_LTA(a5) = _arg5; } \
	   if (! __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      _bn = _bn_arg; } \
	   if ( __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg1), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg2), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg3), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg4), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a5,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg5), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_bn_arg), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		: "cc", "memory" \
	       ); }\
	   if (!(0 || __AROS_ISREG(bt,bn,A6,__AROS_FP_REG) || __AROS_ISREG(a1,__AROS_FP_REG) || __AROS_ISREG(a2,__AROS_FP_REG) || __AROS_ISREG(a3,__AROS_FP_REG) || __AROS_ISREG(a4,__AROS_FP_REG) || __AROS_ISREG(a5,__AROS_FP_REG))) {\
	      asm volatile ("jsr %c5(%%a6)\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "i" (0), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		: "cc", "memory" \
	       ); }\
	}\
	  })

#define AROS_LC5NR __AROS_LC5NR
#define __AROS_LC6(t,n,a1,a2,a3,a4,a5,a6,bt,bn,o,s) \
	({ \
	register volatile ULONG _ret0 asm("%d0"); \
	register volatile ULONG _ret1 asm("%d1"); \
	register volatile ULONG _mem0 asm("%a0"); \
	register volatile ULONG _mem1 asm("%a1"); \
	{ \
	   ULONG _arg1 = (ULONG)__AROS_LCA(a1); \
	   ULONG _arg2 = (ULONG)__AROS_LCA(a2); \
	   ULONG _arg3 = (ULONG)__AROS_LCA(a3); \
	   ULONG _arg4 = (ULONG)__AROS_LCA(a4); \
	   ULONG _arg5 = (ULONG)__AROS_LCA(a5); \
	   ULONG _arg6 = (ULONG)__AROS_LCA(a6); \
	   ULONG _bn_arg = (ULONG)bn; \
	   register volatile ULONG  __AROS_LTA(a1) asm(__AROS_LSA(a1)); \
	   register volatile ULONG  __AROS_LTA(a2) asm(__AROS_LSA(a2)); \
	   register volatile ULONG  __AROS_LTA(a3) asm(__AROS_LSA(a3)); \
	   register volatile ULONG  __AROS_LTA(a4) asm(__AROS_LSA(a4)); \
	   register volatile ULONG  __AROS_LTA(a5) asm(__AROS_LSA(a5)); \
	   register volatile ULONG  __AROS_LTA(a6) asm(__AROS_LSA(a6)); \
	   register volatile ULONG _bn asm("%a6"); \
	   if (! __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      __AROS_LTA(a1) = _arg1; } \
	   if (! __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      __AROS_LTA(a2) = _arg2; } \
	   if (! __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      __AROS_LTA(a3) = _arg3; } \
	   if (! __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      __AROS_LTA(a4) = _arg4; } \
	   if (! __AROS_ISREG(a5,__AROS_FP_REG)) { \
	      __AROS_LTA(a5) = _arg5; } \
	   if (! __AROS_ISREG(a6,__AROS_FP_REG)) { \
	      __AROS_LTA(a6) = _arg6; } \
	   if (! __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      _bn = _bn_arg; } \
	   if ( __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg1), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg2), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg3), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg4), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a5,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg5), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg6), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_bn_arg), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		: "cc", "memory" \
	       ); }\
	   if (!(0 || __AROS_ISREG(bt,bn,A6,__AROS_FP_REG) || __AROS_ISREG(a1,__AROS_FP_REG) || __AROS_ISREG(a2,__AROS_FP_REG) || __AROS_ISREG(a3,__AROS_FP_REG) || __AROS_ISREG(a4,__AROS_FP_REG) || __AROS_ISREG(a5,__AROS_FP_REG) || __AROS_ISREG(a6,__AROS_FP_REG))) {\
	      asm volatile ("jsr %c5(%%a6)\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "i" (0), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		: "cc", "memory" \
	       ); }\
	}\
	(void)_mem0; (void)_mem1; \
	(sizeof(t) < sizeof(QUAD)) ? (t)(_ret0) :\
	   ({struct { ULONG r0,r1; } rv;\
	     t *t_ptr = (t *)&rv.r0;\
	     rv.r0 = _ret0; rv.r1 = _ret1; *t_ptr; });\
	  })

#define AROS_LC6 __AROS_LC6
#define __AROS_LC6NR(t,n,a1,a2,a3,a4,a5,a6,bt,bn,o,s) \
	({ \
	register volatile ULONG _ret0 asm("%d0"); \
	register volatile ULONG _ret1 asm("%d1"); \
	register volatile ULONG _mem0 asm("%a0"); \
	register volatile ULONG _mem1 asm("%a1"); \
	{ \
	   ULONG _arg1 = (ULONG)__AROS_LCA(a1); \
	   ULONG _arg2 = (ULONG)__AROS_LCA(a2); \
	   ULONG _arg3 = (ULONG)__AROS_LCA(a3); \
	   ULONG _arg4 = (ULONG)__AROS_LCA(a4); \
	   ULONG _arg5 = (ULONG)__AROS_LCA(a5); \
	   ULONG _arg6 = (ULONG)__AROS_LCA(a6); \
	   ULONG _bn_arg = (ULONG)bn; \
	   register volatile ULONG  __AROS_LTA(a1) asm(__AROS_LSA(a1)); \
	   register volatile ULONG  __AROS_LTA(a2) asm(__AROS_LSA(a2)); \
	   register volatile ULONG  __AROS_LTA(a3) asm(__AROS_LSA(a3)); \
	   register volatile ULONG  __AROS_LTA(a4) asm(__AROS_LSA(a4)); \
	   register volatile ULONG  __AROS_LTA(a5) asm(__AROS_LSA(a5)); \
	   register volatile ULONG  __AROS_LTA(a6) asm(__AROS_LSA(a6)); \
	   register volatile ULONG _bn asm("%a6"); \
	   if (! __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      __AROS_LTA(a1) = _arg1; } \
	   if (! __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      __AROS_LTA(a2) = _arg2; } \
	   if (! __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      __AROS_LTA(a3) = _arg3; } \
	   if (! __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      __AROS_LTA(a4) = _arg4; } \
	   if (! __AROS_ISREG(a5,__AROS_FP_REG)) { \
	      __AROS_LTA(a5) = _arg5; } \
	   if (! __AROS_ISREG(a6,__AROS_FP_REG)) { \
	      __AROS_LTA(a6) = _arg6; } \
	   if (! __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      _bn = _bn_arg; } \
	   if ( __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg1), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg2), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg3), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg4), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a5,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg5), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg6), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_bn_arg), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		: "cc", "memory" \
	       ); }\
	   if (!(0 || __AROS_ISREG(bt,bn,A6,__AROS_FP_REG) || __AROS_ISREG(a1,__AROS_FP_REG) || __AROS_ISREG(a2,__AROS_FP_REG) || __AROS_ISREG(a3,__AROS_FP_REG) || __AROS_ISREG(a4,__AROS_FP_REG) || __AROS_ISREG(a5,__AROS_FP_REG) || __AROS_ISREG(a6,__AROS_FP_REG))) {\
	      asm volatile ("jsr %c5(%%a6)\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "i" (0), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		: "cc", "memory" \
	       ); }\
	}\
	  })

#define AROS_LC6NR __AROS_LC6NR
#define __AROS_LC7(t,n,a1,a2,a3,a4,a5,a6,a7,bt,bn,o,s) \
	({ \
	register volatile ULONG _ret0 asm("%d0"); \
	register volatile ULONG _ret1 asm("%d1"); \
	register volatile ULONG _mem0 asm("%a0"); \
	register volatile ULONG _mem1 asm("%a1"); \
	{ \
	   ULONG _arg1 = (ULONG)__AROS_LCA(a1); \
	   ULONG _arg2 = (ULONG)__AROS_LCA(a2); \
	   ULONG _arg3 = (ULONG)__AROS_LCA(a3); \
	   ULONG _arg4 = (ULONG)__AROS_LCA(a4); \
	   ULONG _arg5 = (ULONG)__AROS_LCA(a5); \
	   ULONG _arg6 = (ULONG)__AROS_LCA(a6); \
	   ULONG _arg7 = (ULONG)__AROS_LCA(a7); \
	   ULONG _bn_arg = (ULONG)bn; \
	   register volatile ULONG  __AROS_LTA(a1) asm(__AROS_LSA(a1)); \
	   register volatile ULONG  __AROS_LTA(a2) asm(__AROS_LSA(a2)); \
	   register volatile ULONG  __AROS_LTA(a3) asm(__AROS_LSA(a3)); \
	   register volatile ULONG  __AROS_LTA(a4) asm(__AROS_LSA(a4)); \
	   register volatile ULONG  __AROS_LTA(a5) asm(__AROS_LSA(a5)); \
	   register volatile ULONG  __AROS_LTA(a6) asm(__AROS_LSA(a6)); \
	   register volatile ULONG  __AROS_LTA(a7) asm(__AROS_LSA(a7)); \
	   register volatile ULONG _bn asm("%a6"); \
	   if (! __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      __AROS_LTA(a1) = _arg1; } \
	   if (! __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      __AROS_LTA(a2) = _arg2; } \
	   if (! __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      __AROS_LTA(a3) = _arg3; } \
	   if (! __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      __AROS_LTA(a4) = _arg4; } \
	   if (! __AROS_ISREG(a5,__AROS_FP_REG)) { \
	      __AROS_LTA(a5) = _arg5; } \
	   if (! __AROS_ISREG(a6,__AROS_FP_REG)) { \
	      __AROS_LTA(a6) = _arg6; } \
	   if (! __AROS_ISREG(a7,__AROS_FP_REG)) { \
	      __AROS_LTA(a7) = _arg7; } \
	   if (! __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      _bn = _bn_arg; } \
	   if ( __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg1), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg2), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg3), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg4), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a5,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg5), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg6), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a7,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg7), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_bn_arg), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		: "cc", "memory" \
	       ); }\
	   if (!(0 || __AROS_ISREG(bt,bn,A6,__AROS_FP_REG) || __AROS_ISREG(a1,__AROS_FP_REG) || __AROS_ISREG(a2,__AROS_FP_REG) || __AROS_ISREG(a3,__AROS_FP_REG) || __AROS_ISREG(a4,__AROS_FP_REG) || __AROS_ISREG(a5,__AROS_FP_REG) || __AROS_ISREG(a6,__AROS_FP_REG) || __AROS_ISREG(a7,__AROS_FP_REG))) {\
	      asm volatile ("jsr %c5(%%a6)\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "i" (0), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		: "cc", "memory" \
	       ); }\
	}\
	(void)_mem0; (void)_mem1; \
	(sizeof(t) < sizeof(QUAD)) ? (t)(_ret0) :\
	   ({struct { ULONG r0,r1; } rv;\
	     t *t_ptr = (t *)&rv.r0;\
	     rv.r0 = _ret0; rv.r1 = _ret1; *t_ptr; });\
	  })

#define AROS_LC7 __AROS_LC7
#define __AROS_LC7NR(t,n,a1,a2,a3,a4,a5,a6,a7,bt,bn,o,s) \
	({ \
	register volatile ULONG _ret0 asm("%d0"); \
	register volatile ULONG _ret1 asm("%d1"); \
	register volatile ULONG _mem0 asm("%a0"); \
	register volatile ULONG _mem1 asm("%a1"); \
	{ \
	   ULONG _arg1 = (ULONG)__AROS_LCA(a1); \
	   ULONG _arg2 = (ULONG)__AROS_LCA(a2); \
	   ULONG _arg3 = (ULONG)__AROS_LCA(a3); \
	   ULONG _arg4 = (ULONG)__AROS_LCA(a4); \
	   ULONG _arg5 = (ULONG)__AROS_LCA(a5); \
	   ULONG _arg6 = (ULONG)__AROS_LCA(a6); \
	   ULONG _arg7 = (ULONG)__AROS_LCA(a7); \
	   ULONG _bn_arg = (ULONG)bn; \
	   register volatile ULONG  __AROS_LTA(a1) asm(__AROS_LSA(a1)); \
	   register volatile ULONG  __AROS_LTA(a2) asm(__AROS_LSA(a2)); \
	   register volatile ULONG  __AROS_LTA(a3) asm(__AROS_LSA(a3)); \
	   register volatile ULONG  __AROS_LTA(a4) asm(__AROS_LSA(a4)); \
	   register volatile ULONG  __AROS_LTA(a5) asm(__AROS_LSA(a5)); \
	   register volatile ULONG  __AROS_LTA(a6) asm(__AROS_LSA(a6)); \
	   register volatile ULONG  __AROS_LTA(a7) asm(__AROS_LSA(a7)); \
	   register volatile ULONG _bn asm("%a6"); \
	   if (! __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      __AROS_LTA(a1) = _arg1; } \
	   if (! __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      __AROS_LTA(a2) = _arg2; } \
	   if (! __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      __AROS_LTA(a3) = _arg3; } \
	   if (! __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      __AROS_LTA(a4) = _arg4; } \
	   if (! __AROS_ISREG(a5,__AROS_FP_REG)) { \
	      __AROS_LTA(a5) = _arg5; } \
	   if (! __AROS_ISREG(a6,__AROS_FP_REG)) { \
	      __AROS_LTA(a6) = _arg6; } \
	   if (! __AROS_ISREG(a7,__AROS_FP_REG)) { \
	      __AROS_LTA(a7) = _arg7; } \
	   if (! __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      _bn = _bn_arg; } \
	   if ( __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg1), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg2), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg3), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg4), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a5,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg5), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg6), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a7,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg7), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_bn_arg), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		: "cc", "memory" \
	       ); }\
	   if (!(0 || __AROS_ISREG(bt,bn,A6,__AROS_FP_REG) || __AROS_ISREG(a1,__AROS_FP_REG) || __AROS_ISREG(a2,__AROS_FP_REG) || __AROS_ISREG(a3,__AROS_FP_REG) || __AROS_ISREG(a4,__AROS_FP_REG) || __AROS_ISREG(a5,__AROS_FP_REG) || __AROS_ISREG(a6,__AROS_FP_REG) || __AROS_ISREG(a7,__AROS_FP_REG))) {\
	      asm volatile ("jsr %c5(%%a6)\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "i" (0), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		: "cc", "memory" \
	       ); }\
	}\
	  })

#define AROS_LC7NR __AROS_LC7NR
#define __AROS_LC8(t,n,a1,a2,a3,a4,a5,a6,a7,a8,bt,bn,o,s) \
	({ \
	register volatile ULONG _ret0 asm("%d0"); \
	register volatile ULONG _ret1 asm("%d1"); \
	register volatile ULONG _mem0 asm("%a0"); \
	register volatile ULONG _mem1 asm("%a1"); \
	{ \
	   ULONG _arg1 = (ULONG)__AROS_LCA(a1); \
	   ULONG _arg2 = (ULONG)__AROS_LCA(a2); \
	   ULONG _arg3 = (ULONG)__AROS_LCA(a3); \
	   ULONG _arg4 = (ULONG)__AROS_LCA(a4); \
	   ULONG _arg5 = (ULONG)__AROS_LCA(a5); \
	   ULONG _arg6 = (ULONG)__AROS_LCA(a6); \
	   ULONG _arg7 = (ULONG)__AROS_LCA(a7); \
	   ULONG _arg8 = (ULONG)__AROS_LCA(a8); \
	   ULONG _bn_arg = (ULONG)bn; \
	   register volatile ULONG  __AROS_LTA(a1) asm(__AROS_LSA(a1)); \
	   register volatile ULONG  __AROS_LTA(a2) asm(__AROS_LSA(a2)); \
	   register volatile ULONG  __AROS_LTA(a3) asm(__AROS_LSA(a3)); \
	   register volatile ULONG  __AROS_LTA(a4) asm(__AROS_LSA(a4)); \
	   register volatile ULONG  __AROS_LTA(a5) asm(__AROS_LSA(a5)); \
	   register volatile ULONG  __AROS_LTA(a6) asm(__AROS_LSA(a6)); \
	   register volatile ULONG  __AROS_LTA(a7) asm(__AROS_LSA(a7)); \
	   register volatile ULONG  __AROS_LTA(a8) asm(__AROS_LSA(a8)); \
	   register volatile ULONG _bn asm("%a6"); \
	   if (! __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      __AROS_LTA(a1) = _arg1; } \
	   if (! __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      __AROS_LTA(a2) = _arg2; } \
	   if (! __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      __AROS_LTA(a3) = _arg3; } \
	   if (! __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      __AROS_LTA(a4) = _arg4; } \
	   if (! __AROS_ISREG(a5,__AROS_FP_REG)) { \
	      __AROS_LTA(a5) = _arg5; } \
	   if (! __AROS_ISREG(a6,__AROS_FP_REG)) { \
	      __AROS_LTA(a6) = _arg6; } \
	   if (! __AROS_ISREG(a7,__AROS_FP_REG)) { \
	      __AROS_LTA(a7) = _arg7; } \
	   if (! __AROS_ISREG(a8,__AROS_FP_REG)) { \
	      __AROS_LTA(a8) = _arg8; } \
	   if (! __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      _bn = _bn_arg; } \
	   if ( __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg1), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg2), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg3), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg4), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a5,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg5), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg6), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a7,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg7), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a8,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg8), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_bn_arg), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		: "cc", "memory" \
	       ); }\
	   if (!(0 || __AROS_ISREG(bt,bn,A6,__AROS_FP_REG) || __AROS_ISREG(a1,__AROS_FP_REG) || __AROS_ISREG(a2,__AROS_FP_REG) || __AROS_ISREG(a3,__AROS_FP_REG) || __AROS_ISREG(a4,__AROS_FP_REG) || __AROS_ISREG(a5,__AROS_FP_REG) || __AROS_ISREG(a6,__AROS_FP_REG) || __AROS_ISREG(a7,__AROS_FP_REG) || __AROS_ISREG(a8,__AROS_FP_REG))) {\
	      asm volatile ("jsr %c5(%%a6)\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "i" (0), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		: "cc", "memory" \
	       ); }\
	}\
	(void)_mem0; (void)_mem1; \
	(sizeof(t) < sizeof(QUAD)) ? (t)(_ret0) :\
	   ({struct { ULONG r0,r1; } rv;\
	     t *t_ptr = (t *)&rv.r0;\
	     rv.r0 = _ret0; rv.r1 = _ret1; *t_ptr; });\
	  })

#define AROS_LC8 __AROS_LC8
#define __AROS_LC8NR(t,n,a1,a2,a3,a4,a5,a6,a7,a8,bt,bn,o,s) \
	({ \
	register volatile ULONG _ret0 asm("%d0"); \
	register volatile ULONG _ret1 asm("%d1"); \
	register volatile ULONG _mem0 asm("%a0"); \
	register volatile ULONG _mem1 asm("%a1"); \
	{ \
	   ULONG _arg1 = (ULONG)__AROS_LCA(a1); \
	   ULONG _arg2 = (ULONG)__AROS_LCA(a2); \
	   ULONG _arg3 = (ULONG)__AROS_LCA(a3); \
	   ULONG _arg4 = (ULONG)__AROS_LCA(a4); \
	   ULONG _arg5 = (ULONG)__AROS_LCA(a5); \
	   ULONG _arg6 = (ULONG)__AROS_LCA(a6); \
	   ULONG _arg7 = (ULONG)__AROS_LCA(a7); \
	   ULONG _arg8 = (ULONG)__AROS_LCA(a8); \
	   ULONG _bn_arg = (ULONG)bn; \
	   register volatile ULONG  __AROS_LTA(a1) asm(__AROS_LSA(a1)); \
	   register volatile ULONG  __AROS_LTA(a2) asm(__AROS_LSA(a2)); \
	   register volatile ULONG  __AROS_LTA(a3) asm(__AROS_LSA(a3)); \
	   register volatile ULONG  __AROS_LTA(a4) asm(__AROS_LSA(a4)); \
	   register volatile ULONG  __AROS_LTA(a5) asm(__AROS_LSA(a5)); \
	   register volatile ULONG  __AROS_LTA(a6) asm(__AROS_LSA(a6)); \
	   register volatile ULONG  __AROS_LTA(a7) asm(__AROS_LSA(a7)); \
	   register volatile ULONG  __AROS_LTA(a8) asm(__AROS_LSA(a8)); \
	   register volatile ULONG _bn asm("%a6"); \
	   if (! __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      __AROS_LTA(a1) = _arg1; } \
	   if (! __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      __AROS_LTA(a2) = _arg2; } \
	   if (! __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      __AROS_LTA(a3) = _arg3; } \
	   if (! __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      __AROS_LTA(a4) = _arg4; } \
	   if (! __AROS_ISREG(a5,__AROS_FP_REG)) { \
	      __AROS_LTA(a5) = _arg5; } \
	   if (! __AROS_ISREG(a6,__AROS_FP_REG)) { \
	      __AROS_LTA(a6) = _arg6; } \
	   if (! __AROS_ISREG(a7,__AROS_FP_REG)) { \
	      __AROS_LTA(a7) = _arg7; } \
	   if (! __AROS_ISREG(a8,__AROS_FP_REG)) { \
	      __AROS_LTA(a8) = _arg8; } \
	   if (! __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      _bn = _bn_arg; } \
	   if ( __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg1), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg2), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg3), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg4), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a5,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg5), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg6), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a7,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg7), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a8,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg8), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_bn_arg), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		: "cc", "memory" \
	       ); }\
	   if (!(0 || __AROS_ISREG(bt,bn,A6,__AROS_FP_REG) || __AROS_ISREG(a1,__AROS_FP_REG) || __AROS_ISREG(a2,__AROS_FP_REG) || __AROS_ISREG(a3,__AROS_FP_REG) || __AROS_ISREG(a4,__AROS_FP_REG) || __AROS_ISREG(a5,__AROS_FP_REG) || __AROS_ISREG(a6,__AROS_FP_REG) || __AROS_ISREG(a7,__AROS_FP_REG) || __AROS_ISREG(a8,__AROS_FP_REG))) {\
	      asm volatile ("jsr %c5(%%a6)\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "i" (0), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		: "cc", "memory" \
	       ); }\
	}\
	  })

#define AROS_LC8NR __AROS_LC8NR
#define __AROS_LC9(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,bt,bn,o,s) \
	({ \
	register volatile ULONG _ret0 asm("%d0"); \
	register volatile ULONG _ret1 asm("%d1"); \
	register volatile ULONG _mem0 asm("%a0"); \
	register volatile ULONG _mem1 asm("%a1"); \
	{ \
	   ULONG _arg1 = (ULONG)__AROS_LCA(a1); \
	   ULONG _arg2 = (ULONG)__AROS_LCA(a2); \
	   ULONG _arg3 = (ULONG)__AROS_LCA(a3); \
	   ULONG _arg4 = (ULONG)__AROS_LCA(a4); \
	   ULONG _arg5 = (ULONG)__AROS_LCA(a5); \
	   ULONG _arg6 = (ULONG)__AROS_LCA(a6); \
	   ULONG _arg7 = (ULONG)__AROS_LCA(a7); \
	   ULONG _arg8 = (ULONG)__AROS_LCA(a8); \
	   ULONG _arg9 = (ULONG)__AROS_LCA(a9); \
	   ULONG _bn_arg = (ULONG)bn; \
	   register volatile ULONG  __AROS_LTA(a1) asm(__AROS_LSA(a1)); \
	   register volatile ULONG  __AROS_LTA(a2) asm(__AROS_LSA(a2)); \
	   register volatile ULONG  __AROS_LTA(a3) asm(__AROS_LSA(a3)); \
	   register volatile ULONG  __AROS_LTA(a4) asm(__AROS_LSA(a4)); \
	   register volatile ULONG  __AROS_LTA(a5) asm(__AROS_LSA(a5)); \
	   register volatile ULONG  __AROS_LTA(a6) asm(__AROS_LSA(a6)); \
	   register volatile ULONG  __AROS_LTA(a7) asm(__AROS_LSA(a7)); \
	   register volatile ULONG  __AROS_LTA(a8) asm(__AROS_LSA(a8)); \
	   register volatile ULONG  __AROS_LTA(a9) asm(__AROS_LSA(a9)); \
	   register volatile ULONG _bn asm("%a6"); \
	   if (! __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      __AROS_LTA(a1) = _arg1; } \
	   if (! __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      __AROS_LTA(a2) = _arg2; } \
	   if (! __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      __AROS_LTA(a3) = _arg3; } \
	   if (! __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      __AROS_LTA(a4) = _arg4; } \
	   if (! __AROS_ISREG(a5,__AROS_FP_REG)) { \
	      __AROS_LTA(a5) = _arg5; } \
	   if (! __AROS_ISREG(a6,__AROS_FP_REG)) { \
	      __AROS_LTA(a6) = _arg6; } \
	   if (! __AROS_ISREG(a7,__AROS_FP_REG)) { \
	      __AROS_LTA(a7) = _arg7; } \
	   if (! __AROS_ISREG(a8,__AROS_FP_REG)) { \
	      __AROS_LTA(a8) = _arg8; } \
	   if (! __AROS_ISREG(a9,__AROS_FP_REG)) { \
	      __AROS_LTA(a9) = _arg9; } \
	   if (! __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      _bn = _bn_arg; } \
	   if ( __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg1), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg2), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg3), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg4), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a5,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg5), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg6), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a7,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg7), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a8,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg8), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a9,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg9), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_bn_arg), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		: "cc", "memory" \
	       ); }\
	   if (!(0 || __AROS_ISREG(bt,bn,A6,__AROS_FP_REG) || __AROS_ISREG(a1,__AROS_FP_REG) || __AROS_ISREG(a2,__AROS_FP_REG) || __AROS_ISREG(a3,__AROS_FP_REG) || __AROS_ISREG(a4,__AROS_FP_REG) || __AROS_ISREG(a5,__AROS_FP_REG) || __AROS_ISREG(a6,__AROS_FP_REG) || __AROS_ISREG(a7,__AROS_FP_REG) || __AROS_ISREG(a8,__AROS_FP_REG) || __AROS_ISREG(a9,__AROS_FP_REG))) {\
	      asm volatile ("jsr %c5(%%a6)\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "i" (0), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		: "cc", "memory" \
	       ); }\
	}\
	(void)_mem0; (void)_mem1; \
	(sizeof(t) < sizeof(QUAD)) ? (t)(_ret0) :\
	   ({struct { ULONG r0,r1; } rv;\
	     t *t_ptr = (t *)&rv.r0;\
	     rv.r0 = _ret0; rv.r1 = _ret1; *t_ptr; });\
	  })

#define AROS_LC9 __AROS_LC9
#define __AROS_LC9NR(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,bt,bn,o,s) \
	({ \
	register volatile ULONG _ret0 asm("%d0"); \
	register volatile ULONG _ret1 asm("%d1"); \
	register volatile ULONG _mem0 asm("%a0"); \
	register volatile ULONG _mem1 asm("%a1"); \
	{ \
	   ULONG _arg1 = (ULONG)__AROS_LCA(a1); \
	   ULONG _arg2 = (ULONG)__AROS_LCA(a2); \
	   ULONG _arg3 = (ULONG)__AROS_LCA(a3); \
	   ULONG _arg4 = (ULONG)__AROS_LCA(a4); \
	   ULONG _arg5 = (ULONG)__AROS_LCA(a5); \
	   ULONG _arg6 = (ULONG)__AROS_LCA(a6); \
	   ULONG _arg7 = (ULONG)__AROS_LCA(a7); \
	   ULONG _arg8 = (ULONG)__AROS_LCA(a8); \
	   ULONG _arg9 = (ULONG)__AROS_LCA(a9); \
	   ULONG _bn_arg = (ULONG)bn; \
	   register volatile ULONG  __AROS_LTA(a1) asm(__AROS_LSA(a1)); \
	   register volatile ULONG  __AROS_LTA(a2) asm(__AROS_LSA(a2)); \
	   register volatile ULONG  __AROS_LTA(a3) asm(__AROS_LSA(a3)); \
	   register volatile ULONG  __AROS_LTA(a4) asm(__AROS_LSA(a4)); \
	   register volatile ULONG  __AROS_LTA(a5) asm(__AROS_LSA(a5)); \
	   register volatile ULONG  __AROS_LTA(a6) asm(__AROS_LSA(a6)); \
	   register volatile ULONG  __AROS_LTA(a7) asm(__AROS_LSA(a7)); \
	   register volatile ULONG  __AROS_LTA(a8) asm(__AROS_LSA(a8)); \
	   register volatile ULONG  __AROS_LTA(a9) asm(__AROS_LSA(a9)); \
	   register volatile ULONG _bn asm("%a6"); \
	   if (! __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      __AROS_LTA(a1) = _arg1; } \
	   if (! __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      __AROS_LTA(a2) = _arg2; } \
	   if (! __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      __AROS_LTA(a3) = _arg3; } \
	   if (! __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      __AROS_LTA(a4) = _arg4; } \
	   if (! __AROS_ISREG(a5,__AROS_FP_REG)) { \
	      __AROS_LTA(a5) = _arg5; } \
	   if (! __AROS_ISREG(a6,__AROS_FP_REG)) { \
	      __AROS_LTA(a6) = _arg6; } \
	   if (! __AROS_ISREG(a7,__AROS_FP_REG)) { \
	      __AROS_LTA(a7) = _arg7; } \
	   if (! __AROS_ISREG(a8,__AROS_FP_REG)) { \
	      __AROS_LTA(a8) = _arg8; } \
	   if (! __AROS_ISREG(a9,__AROS_FP_REG)) { \
	      __AROS_LTA(a9) = _arg9; } \
	   if (! __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      _bn = _bn_arg; } \
	   if ( __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg1), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg2), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg3), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg4), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a5,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg5), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg6), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a7,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg7), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a8,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg8), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a9,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg9), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_bn_arg), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		: "cc", "memory" \
	       ); }\
	   if (!(0 || __AROS_ISREG(bt,bn,A6,__AROS_FP_REG) || __AROS_ISREG(a1,__AROS_FP_REG) || __AROS_ISREG(a2,__AROS_FP_REG) || __AROS_ISREG(a3,__AROS_FP_REG) || __AROS_ISREG(a4,__AROS_FP_REG) || __AROS_ISREG(a5,__AROS_FP_REG) || __AROS_ISREG(a6,__AROS_FP_REG) || __AROS_ISREG(a7,__AROS_FP_REG) || __AROS_ISREG(a8,__AROS_FP_REG) || __AROS_ISREG(a9,__AROS_FP_REG))) {\
	      asm volatile ("jsr %c5(%%a6)\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "i" (0), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		: "cc", "memory" \
	       ); }\
	}\
	  })

#define AROS_LC9NR __AROS_LC9NR
#define __AROS_LC10(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,bt,bn,o,s) \
	({ \
	register volatile ULONG _ret0 asm("%d0"); \
	register volatile ULONG _ret1 asm("%d1"); \
	register volatile ULONG _mem0 asm("%a0"); \
	register volatile ULONG _mem1 asm("%a1"); \
	{ \
	   ULONG _arg1 = (ULONG)__AROS_LCA(a1); \
	   ULONG _arg2 = (ULONG)__AROS_LCA(a2); \
	   ULONG _arg3 = (ULONG)__AROS_LCA(a3); \
	   ULONG _arg4 = (ULONG)__AROS_LCA(a4); \
	   ULONG _arg5 = (ULONG)__AROS_LCA(a5); \
	   ULONG _arg6 = (ULONG)__AROS_LCA(a6); \
	   ULONG _arg7 = (ULONG)__AROS_LCA(a7); \
	   ULONG _arg8 = (ULONG)__AROS_LCA(a8); \
	   ULONG _arg9 = (ULONG)__AROS_LCA(a9); \
	   ULONG _arg10 = (ULONG)__AROS_LCA(a10); \
	   ULONG _bn_arg = (ULONG)bn; \
	   register volatile ULONG  __AROS_LTA(a1) asm(__AROS_LSA(a1)); \
	   register volatile ULONG  __AROS_LTA(a2) asm(__AROS_LSA(a2)); \
	   register volatile ULONG  __AROS_LTA(a3) asm(__AROS_LSA(a3)); \
	   register volatile ULONG  __AROS_LTA(a4) asm(__AROS_LSA(a4)); \
	   register volatile ULONG  __AROS_LTA(a5) asm(__AROS_LSA(a5)); \
	   register volatile ULONG  __AROS_LTA(a6) asm(__AROS_LSA(a6)); \
	   register volatile ULONG  __AROS_LTA(a7) asm(__AROS_LSA(a7)); \
	   register volatile ULONG  __AROS_LTA(a8) asm(__AROS_LSA(a8)); \
	   register volatile ULONG  __AROS_LTA(a9) asm(__AROS_LSA(a9)); \
	   register volatile ULONG  __AROS_LTA(a10) asm(__AROS_LSA(a10)); \
	   register volatile ULONG _bn asm("%a6"); \
	   if (! __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      __AROS_LTA(a1) = _arg1; } \
	   if (! __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      __AROS_LTA(a2) = _arg2; } \
	   if (! __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      __AROS_LTA(a3) = _arg3; } \
	   if (! __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      __AROS_LTA(a4) = _arg4; } \
	   if (! __AROS_ISREG(a5,__AROS_FP_REG)) { \
	      __AROS_LTA(a5) = _arg5; } \
	   if (! __AROS_ISREG(a6,__AROS_FP_REG)) { \
	      __AROS_LTA(a6) = _arg6; } \
	   if (! __AROS_ISREG(a7,__AROS_FP_REG)) { \
	      __AROS_LTA(a7) = _arg7; } \
	   if (! __AROS_ISREG(a8,__AROS_FP_REG)) { \
	      __AROS_LTA(a8) = _arg8; } \
	   if (! __AROS_ISREG(a9,__AROS_FP_REG)) { \
	      __AROS_LTA(a9) = _arg9; } \
	   if (! __AROS_ISREG(a10,__AROS_FP_REG)) { \
	      __AROS_LTA(a10) = _arg10; } \
	   if (! __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      _bn = _bn_arg; } \
	   if ( __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg1), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg2), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg3), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg4), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a5,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg5), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg6), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a7,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg7), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a8,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg8), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a9,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg9), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a10,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg10), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_bn_arg), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		: "cc", "memory" \
	       ); }\
	   if (!(0 || __AROS_ISREG(bt,bn,A6,__AROS_FP_REG) || __AROS_ISREG(a1,__AROS_FP_REG) || __AROS_ISREG(a2,__AROS_FP_REG) || __AROS_ISREG(a3,__AROS_FP_REG) || __AROS_ISREG(a4,__AROS_FP_REG) || __AROS_ISREG(a5,__AROS_FP_REG) || __AROS_ISREG(a6,__AROS_FP_REG) || __AROS_ISREG(a7,__AROS_FP_REG) || __AROS_ISREG(a8,__AROS_FP_REG) || __AROS_ISREG(a9,__AROS_FP_REG) || __AROS_ISREG(a10,__AROS_FP_REG))) {\
	      asm volatile ("jsr %c5(%%a6)\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "i" (0), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		: "cc", "memory" \
	       ); }\
	}\
	(void)_mem0; (void)_mem1; \
	(sizeof(t) < sizeof(QUAD)) ? (t)(_ret0) :\
	   ({struct { ULONG r0,r1; } rv;\
	     t *t_ptr = (t *)&rv.r0;\
	     rv.r0 = _ret0; rv.r1 = _ret1; *t_ptr; });\
	  })

#define AROS_LC10 __AROS_LC10
#define __AROS_LC10NR(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,bt,bn,o,s) \
	({ \
	register volatile ULONG _ret0 asm("%d0"); \
	register volatile ULONG _ret1 asm("%d1"); \
	register volatile ULONG _mem0 asm("%a0"); \
	register volatile ULONG _mem1 asm("%a1"); \
	{ \
	   ULONG _arg1 = (ULONG)__AROS_LCA(a1); \
	   ULONG _arg2 = (ULONG)__AROS_LCA(a2); \
	   ULONG _arg3 = (ULONG)__AROS_LCA(a3); \
	   ULONG _arg4 = (ULONG)__AROS_LCA(a4); \
	   ULONG _arg5 = (ULONG)__AROS_LCA(a5); \
	   ULONG _arg6 = (ULONG)__AROS_LCA(a6); \
	   ULONG _arg7 = (ULONG)__AROS_LCA(a7); \
	   ULONG _arg8 = (ULONG)__AROS_LCA(a8); \
	   ULONG _arg9 = (ULONG)__AROS_LCA(a9); \
	   ULONG _arg10 = (ULONG)__AROS_LCA(a10); \
	   ULONG _bn_arg = (ULONG)bn; \
	   register volatile ULONG  __AROS_LTA(a1) asm(__AROS_LSA(a1)); \
	   register volatile ULONG  __AROS_LTA(a2) asm(__AROS_LSA(a2)); \
	   register volatile ULONG  __AROS_LTA(a3) asm(__AROS_LSA(a3)); \
	   register volatile ULONG  __AROS_LTA(a4) asm(__AROS_LSA(a4)); \
	   register volatile ULONG  __AROS_LTA(a5) asm(__AROS_LSA(a5)); \
	   register volatile ULONG  __AROS_LTA(a6) asm(__AROS_LSA(a6)); \
	   register volatile ULONG  __AROS_LTA(a7) asm(__AROS_LSA(a7)); \
	   register volatile ULONG  __AROS_LTA(a8) asm(__AROS_LSA(a8)); \
	   register volatile ULONG  __AROS_LTA(a9) asm(__AROS_LSA(a9)); \
	   register volatile ULONG  __AROS_LTA(a10) asm(__AROS_LSA(a10)); \
	   register volatile ULONG _bn asm("%a6"); \
	   if (! __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      __AROS_LTA(a1) = _arg1; } \
	   if (! __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      __AROS_LTA(a2) = _arg2; } \
	   if (! __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      __AROS_LTA(a3) = _arg3; } \
	   if (! __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      __AROS_LTA(a4) = _arg4; } \
	   if (! __AROS_ISREG(a5,__AROS_FP_REG)) { \
	      __AROS_LTA(a5) = _arg5; } \
	   if (! __AROS_ISREG(a6,__AROS_FP_REG)) { \
	      __AROS_LTA(a6) = _arg6; } \
	   if (! __AROS_ISREG(a7,__AROS_FP_REG)) { \
	      __AROS_LTA(a7) = _arg7; } \
	   if (! __AROS_ISREG(a8,__AROS_FP_REG)) { \
	      __AROS_LTA(a8) = _arg8; } \
	   if (! __AROS_ISREG(a9,__AROS_FP_REG)) { \
	      __AROS_LTA(a9) = _arg9; } \
	   if (! __AROS_ISREG(a10,__AROS_FP_REG)) { \
	      __AROS_LTA(a10) = _arg10; } \
	   if (! __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      _bn = _bn_arg; } \
	   if ( __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg1), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg2), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg3), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg4), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a5,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg5), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg6), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a7,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg7), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a8,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg8), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a9,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg9), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a10,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg10), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_bn_arg), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		: "cc", "memory" \
	       ); }\
	   if (!(0 || __AROS_ISREG(bt,bn,A6,__AROS_FP_REG) || __AROS_ISREG(a1,__AROS_FP_REG) || __AROS_ISREG(a2,__AROS_FP_REG) || __AROS_ISREG(a3,__AROS_FP_REG) || __AROS_ISREG(a4,__AROS_FP_REG) || __AROS_ISREG(a5,__AROS_FP_REG) || __AROS_ISREG(a6,__AROS_FP_REG) || __AROS_ISREG(a7,__AROS_FP_REG) || __AROS_ISREG(a8,__AROS_FP_REG) || __AROS_ISREG(a9,__AROS_FP_REG) || __AROS_ISREG(a10,__AROS_FP_REG))) {\
	      asm volatile ("jsr %c5(%%a6)\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "i" (0), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		: "cc", "memory" \
	       ); }\
	}\
	  })

#define AROS_LC10NR __AROS_LC10NR
#define __AROS_LC11(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,bt,bn,o,s) \
	({ \
	register volatile ULONG _ret0 asm("%d0"); \
	register volatile ULONG _ret1 asm("%d1"); \
	register volatile ULONG _mem0 asm("%a0"); \
	register volatile ULONG _mem1 asm("%a1"); \
	{ \
	   ULONG _arg1 = (ULONG)__AROS_LCA(a1); \
	   ULONG _arg2 = (ULONG)__AROS_LCA(a2); \
	   ULONG _arg3 = (ULONG)__AROS_LCA(a3); \
	   ULONG _arg4 = (ULONG)__AROS_LCA(a4); \
	   ULONG _arg5 = (ULONG)__AROS_LCA(a5); \
	   ULONG _arg6 = (ULONG)__AROS_LCA(a6); \
	   ULONG _arg7 = (ULONG)__AROS_LCA(a7); \
	   ULONG _arg8 = (ULONG)__AROS_LCA(a8); \
	   ULONG _arg9 = (ULONG)__AROS_LCA(a9); \
	   ULONG _arg10 = (ULONG)__AROS_LCA(a10); \
	   ULONG _arg11 = (ULONG)__AROS_LCA(a11); \
	   ULONG _bn_arg = (ULONG)bn; \
	   register volatile ULONG  __AROS_LTA(a1) asm(__AROS_LSA(a1)); \
	   register volatile ULONG  __AROS_LTA(a2) asm(__AROS_LSA(a2)); \
	   register volatile ULONG  __AROS_LTA(a3) asm(__AROS_LSA(a3)); \
	   register volatile ULONG  __AROS_LTA(a4) asm(__AROS_LSA(a4)); \
	   register volatile ULONG  __AROS_LTA(a5) asm(__AROS_LSA(a5)); \
	   register volatile ULONG  __AROS_LTA(a6) asm(__AROS_LSA(a6)); \
	   register volatile ULONG  __AROS_LTA(a7) asm(__AROS_LSA(a7)); \
	   register volatile ULONG  __AROS_LTA(a8) asm(__AROS_LSA(a8)); \
	   register volatile ULONG  __AROS_LTA(a9) asm(__AROS_LSA(a9)); \
	   register volatile ULONG  __AROS_LTA(a10) asm(__AROS_LSA(a10)); \
	   register volatile ULONG  __AROS_LTA(a11) asm(__AROS_LSA(a11)); \
	   register volatile ULONG _bn asm("%a6"); \
	   if (! __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      __AROS_LTA(a1) = _arg1; } \
	   if (! __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      __AROS_LTA(a2) = _arg2; } \
	   if (! __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      __AROS_LTA(a3) = _arg3; } \
	   if (! __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      __AROS_LTA(a4) = _arg4; } \
	   if (! __AROS_ISREG(a5,__AROS_FP_REG)) { \
	      __AROS_LTA(a5) = _arg5; } \
	   if (! __AROS_ISREG(a6,__AROS_FP_REG)) { \
	      __AROS_LTA(a6) = _arg6; } \
	   if (! __AROS_ISREG(a7,__AROS_FP_REG)) { \
	      __AROS_LTA(a7) = _arg7; } \
	   if (! __AROS_ISREG(a8,__AROS_FP_REG)) { \
	      __AROS_LTA(a8) = _arg8; } \
	   if (! __AROS_ISREG(a9,__AROS_FP_REG)) { \
	      __AROS_LTA(a9) = _arg9; } \
	   if (! __AROS_ISREG(a10,__AROS_FP_REG)) { \
	      __AROS_LTA(a10) = _arg10; } \
	   if (! __AROS_ISREG(a11,__AROS_FP_REG)) { \
	      __AROS_LTA(a11) = _arg11; } \
	   if (! __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      _bn = _bn_arg; } \
	   if ( __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg1), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg2), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg3), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg4), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a5,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg5), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg6), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a7,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg7), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a8,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg8), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a9,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg9), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a10,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg10), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a11,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg11), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_bn_arg), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		: "cc", "memory" \
	       ); }\
	   if (!(0 || __AROS_ISREG(bt,bn,A6,__AROS_FP_REG) || __AROS_ISREG(a1,__AROS_FP_REG) || __AROS_ISREG(a2,__AROS_FP_REG) || __AROS_ISREG(a3,__AROS_FP_REG) || __AROS_ISREG(a4,__AROS_FP_REG) || __AROS_ISREG(a5,__AROS_FP_REG) || __AROS_ISREG(a6,__AROS_FP_REG) || __AROS_ISREG(a7,__AROS_FP_REG) || __AROS_ISREG(a8,__AROS_FP_REG) || __AROS_ISREG(a9,__AROS_FP_REG) || __AROS_ISREG(a10,__AROS_FP_REG) || __AROS_ISREG(a11,__AROS_FP_REG))) {\
	      asm volatile ("jsr %c5(%%a6)\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "i" (0), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		: "cc", "memory" \
	       ); }\
	}\
	(void)_mem0; (void)_mem1; \
	(sizeof(t) < sizeof(QUAD)) ? (t)(_ret0) :\
	   ({struct { ULONG r0,r1; } rv;\
	     t *t_ptr = (t *)&rv.r0;\
	     rv.r0 = _ret0; rv.r1 = _ret1; *t_ptr; });\
	  })

#define AROS_LC11 __AROS_LC11
#define __AROS_LC11NR(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,bt,bn,o,s) \
	({ \
	register volatile ULONG _ret0 asm("%d0"); \
	register volatile ULONG _ret1 asm("%d1"); \
	register volatile ULONG _mem0 asm("%a0"); \
	register volatile ULONG _mem1 asm("%a1"); \
	{ \
	   ULONG _arg1 = (ULONG)__AROS_LCA(a1); \
	   ULONG _arg2 = (ULONG)__AROS_LCA(a2); \
	   ULONG _arg3 = (ULONG)__AROS_LCA(a3); \
	   ULONG _arg4 = (ULONG)__AROS_LCA(a4); \
	   ULONG _arg5 = (ULONG)__AROS_LCA(a5); \
	   ULONG _arg6 = (ULONG)__AROS_LCA(a6); \
	   ULONG _arg7 = (ULONG)__AROS_LCA(a7); \
	   ULONG _arg8 = (ULONG)__AROS_LCA(a8); \
	   ULONG _arg9 = (ULONG)__AROS_LCA(a9); \
	   ULONG _arg10 = (ULONG)__AROS_LCA(a10); \
	   ULONG _arg11 = (ULONG)__AROS_LCA(a11); \
	   ULONG _bn_arg = (ULONG)bn; \
	   register volatile ULONG  __AROS_LTA(a1) asm(__AROS_LSA(a1)); \
	   register volatile ULONG  __AROS_LTA(a2) asm(__AROS_LSA(a2)); \
	   register volatile ULONG  __AROS_LTA(a3) asm(__AROS_LSA(a3)); \
	   register volatile ULONG  __AROS_LTA(a4) asm(__AROS_LSA(a4)); \
	   register volatile ULONG  __AROS_LTA(a5) asm(__AROS_LSA(a5)); \
	   register volatile ULONG  __AROS_LTA(a6) asm(__AROS_LSA(a6)); \
	   register volatile ULONG  __AROS_LTA(a7) asm(__AROS_LSA(a7)); \
	   register volatile ULONG  __AROS_LTA(a8) asm(__AROS_LSA(a8)); \
	   register volatile ULONG  __AROS_LTA(a9) asm(__AROS_LSA(a9)); \
	   register volatile ULONG  __AROS_LTA(a10) asm(__AROS_LSA(a10)); \
	   register volatile ULONG  __AROS_LTA(a11) asm(__AROS_LSA(a11)); \
	   register volatile ULONG _bn asm("%a6"); \
	   if (! __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      __AROS_LTA(a1) = _arg1; } \
	   if (! __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      __AROS_LTA(a2) = _arg2; } \
	   if (! __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      __AROS_LTA(a3) = _arg3; } \
	   if (! __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      __AROS_LTA(a4) = _arg4; } \
	   if (! __AROS_ISREG(a5,__AROS_FP_REG)) { \
	      __AROS_LTA(a5) = _arg5; } \
	   if (! __AROS_ISREG(a6,__AROS_FP_REG)) { \
	      __AROS_LTA(a6) = _arg6; } \
	   if (! __AROS_ISREG(a7,__AROS_FP_REG)) { \
	      __AROS_LTA(a7) = _arg7; } \
	   if (! __AROS_ISREG(a8,__AROS_FP_REG)) { \
	      __AROS_LTA(a8) = _arg8; } \
	   if (! __AROS_ISREG(a9,__AROS_FP_REG)) { \
	      __AROS_LTA(a9) = _arg9; } \
	   if (! __AROS_ISREG(a10,__AROS_FP_REG)) { \
	      __AROS_LTA(a10) = _arg10; } \
	   if (! __AROS_ISREG(a11,__AROS_FP_REG)) { \
	      __AROS_LTA(a11) = _arg11; } \
	   if (! __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      _bn = _bn_arg; } \
	   if ( __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg1), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg2), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg3), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg4), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a5,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg5), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg6), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a7,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg7), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a8,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg8), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a9,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg9), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a10,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg10), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a11,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg11), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_bn_arg), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		: "cc", "memory" \
	       ); }\
	   if (!(0 || __AROS_ISREG(bt,bn,A6,__AROS_FP_REG) || __AROS_ISREG(a1,__AROS_FP_REG) || __AROS_ISREG(a2,__AROS_FP_REG) || __AROS_ISREG(a3,__AROS_FP_REG) || __AROS_ISREG(a4,__AROS_FP_REG) || __AROS_ISREG(a5,__AROS_FP_REG) || __AROS_ISREG(a6,__AROS_FP_REG) || __AROS_ISREG(a7,__AROS_FP_REG) || __AROS_ISREG(a8,__AROS_FP_REG) || __AROS_ISREG(a9,__AROS_FP_REG) || __AROS_ISREG(a10,__AROS_FP_REG) || __AROS_ISREG(a11,__AROS_FP_REG))) {\
	      asm volatile ("jsr %c5(%%a6)\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "i" (0), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		: "cc", "memory" \
	       ); }\
	}\
	  })

#define AROS_LC11NR __AROS_LC11NR
#define __AROS_LC12(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,bt,bn,o,s) \
	({ \
	register volatile ULONG _ret0 asm("%d0"); \
	register volatile ULONG _ret1 asm("%d1"); \
	register volatile ULONG _mem0 asm("%a0"); \
	register volatile ULONG _mem1 asm("%a1"); \
	{ \
	   ULONG _arg1 = (ULONG)__AROS_LCA(a1); \
	   ULONG _arg2 = (ULONG)__AROS_LCA(a2); \
	   ULONG _arg3 = (ULONG)__AROS_LCA(a3); \
	   ULONG _arg4 = (ULONG)__AROS_LCA(a4); \
	   ULONG _arg5 = (ULONG)__AROS_LCA(a5); \
	   ULONG _arg6 = (ULONG)__AROS_LCA(a6); \
	   ULONG _arg7 = (ULONG)__AROS_LCA(a7); \
	   ULONG _arg8 = (ULONG)__AROS_LCA(a8); \
	   ULONG _arg9 = (ULONG)__AROS_LCA(a9); \
	   ULONG _arg10 = (ULONG)__AROS_LCA(a10); \
	   ULONG _arg11 = (ULONG)__AROS_LCA(a11); \
	   ULONG _arg12 = (ULONG)__AROS_LCA(a12); \
	   ULONG _bn_arg = (ULONG)bn; \
	   register volatile ULONG  __AROS_LTA(a1) asm(__AROS_LSA(a1)); \
	   register volatile ULONG  __AROS_LTA(a2) asm(__AROS_LSA(a2)); \
	   register volatile ULONG  __AROS_LTA(a3) asm(__AROS_LSA(a3)); \
	   register volatile ULONG  __AROS_LTA(a4) asm(__AROS_LSA(a4)); \
	   register volatile ULONG  __AROS_LTA(a5) asm(__AROS_LSA(a5)); \
	   register volatile ULONG  __AROS_LTA(a6) asm(__AROS_LSA(a6)); \
	   register volatile ULONG  __AROS_LTA(a7) asm(__AROS_LSA(a7)); \
	   register volatile ULONG  __AROS_LTA(a8) asm(__AROS_LSA(a8)); \
	   register volatile ULONG  __AROS_LTA(a9) asm(__AROS_LSA(a9)); \
	   register volatile ULONG  __AROS_LTA(a10) asm(__AROS_LSA(a10)); \
	   register volatile ULONG  __AROS_LTA(a11) asm(__AROS_LSA(a11)); \
	   register volatile ULONG  __AROS_LTA(a12) asm(__AROS_LSA(a12)); \
	   register volatile ULONG _bn asm("%a6"); \
	   if (! __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      __AROS_LTA(a1) = _arg1; } \
	   if (! __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      __AROS_LTA(a2) = _arg2; } \
	   if (! __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      __AROS_LTA(a3) = _arg3; } \
	   if (! __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      __AROS_LTA(a4) = _arg4; } \
	   if (! __AROS_ISREG(a5,__AROS_FP_REG)) { \
	      __AROS_LTA(a5) = _arg5; } \
	   if (! __AROS_ISREG(a6,__AROS_FP_REG)) { \
	      __AROS_LTA(a6) = _arg6; } \
	   if (! __AROS_ISREG(a7,__AROS_FP_REG)) { \
	      __AROS_LTA(a7) = _arg7; } \
	   if (! __AROS_ISREG(a8,__AROS_FP_REG)) { \
	      __AROS_LTA(a8) = _arg8; } \
	   if (! __AROS_ISREG(a9,__AROS_FP_REG)) { \
	      __AROS_LTA(a9) = _arg9; } \
	   if (! __AROS_ISREG(a10,__AROS_FP_REG)) { \
	      __AROS_LTA(a10) = _arg10; } \
	   if (! __AROS_ISREG(a11,__AROS_FP_REG)) { \
	      __AROS_LTA(a11) = _arg11; } \
	   if (! __AROS_ISREG(a12,__AROS_FP_REG)) { \
	      __AROS_LTA(a12) = _arg12; } \
	   if (! __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      _bn = _bn_arg; } \
	   if ( __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg1), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		, "r" (__AROS_LTA(a12)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg2), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		, "r" (__AROS_LTA(a12)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg3), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		, "r" (__AROS_LTA(a12)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg4), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		, "r" (__AROS_LTA(a12)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a5,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg5), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		, "r" (__AROS_LTA(a12)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg6), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		, "r" (__AROS_LTA(a12)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a7,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg7), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		, "r" (__AROS_LTA(a12)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a8,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg8), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		, "r" (__AROS_LTA(a12)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a9,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg9), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		, "r" (__AROS_LTA(a12)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a10,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg10), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		, "r" (__AROS_LTA(a12)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a11,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg11), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		, "r" (__AROS_LTA(a12)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a12,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg12), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		, "r" (__AROS_LTA(a12)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_bn_arg), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		, "r" (__AROS_LTA(a12)) \
		: "cc", "memory" \
	       ); }\
	   if (!(0 || __AROS_ISREG(bt,bn,A6,__AROS_FP_REG) || __AROS_ISREG(a1,__AROS_FP_REG) || __AROS_ISREG(a2,__AROS_FP_REG) || __AROS_ISREG(a3,__AROS_FP_REG) || __AROS_ISREG(a4,__AROS_FP_REG) || __AROS_ISREG(a5,__AROS_FP_REG) || __AROS_ISREG(a6,__AROS_FP_REG) || __AROS_ISREG(a7,__AROS_FP_REG) || __AROS_ISREG(a8,__AROS_FP_REG) || __AROS_ISREG(a9,__AROS_FP_REG) || __AROS_ISREG(a10,__AROS_FP_REG) || __AROS_ISREG(a11,__AROS_FP_REG) || __AROS_ISREG(a12,__AROS_FP_REG))) {\
	      asm volatile ("jsr %c5(%%a6)\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "i" (0), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		, "r" (__AROS_LTA(a12)) \
		: "cc", "memory" \
	       ); }\
	}\
	(void)_mem0; (void)_mem1; \
	(sizeof(t) < sizeof(QUAD)) ? (t)(_ret0) :\
	   ({struct { ULONG r0,r1; } rv;\
	     t *t_ptr = (t *)&rv.r0;\
	     rv.r0 = _ret0; rv.r1 = _ret1; *t_ptr; });\
	  })

#define AROS_LC12 __AROS_LC12
#define __AROS_LC12NR(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,bt,bn,o,s) \
	({ \
	register volatile ULONG _ret0 asm("%d0"); \
	register volatile ULONG _ret1 asm("%d1"); \
	register volatile ULONG _mem0 asm("%a0"); \
	register volatile ULONG _mem1 asm("%a1"); \
	{ \
	   ULONG _arg1 = (ULONG)__AROS_LCA(a1); \
	   ULONG _arg2 = (ULONG)__AROS_LCA(a2); \
	   ULONG _arg3 = (ULONG)__AROS_LCA(a3); \
	   ULONG _arg4 = (ULONG)__AROS_LCA(a4); \
	   ULONG _arg5 = (ULONG)__AROS_LCA(a5); \
	   ULONG _arg6 = (ULONG)__AROS_LCA(a6); \
	   ULONG _arg7 = (ULONG)__AROS_LCA(a7); \
	   ULONG _arg8 = (ULONG)__AROS_LCA(a8); \
	   ULONG _arg9 = (ULONG)__AROS_LCA(a9); \
	   ULONG _arg10 = (ULONG)__AROS_LCA(a10); \
	   ULONG _arg11 = (ULONG)__AROS_LCA(a11); \
	   ULONG _arg12 = (ULONG)__AROS_LCA(a12); \
	   ULONG _bn_arg = (ULONG)bn; \
	   register volatile ULONG  __AROS_LTA(a1) asm(__AROS_LSA(a1)); \
	   register volatile ULONG  __AROS_LTA(a2) asm(__AROS_LSA(a2)); \
	   register volatile ULONG  __AROS_LTA(a3) asm(__AROS_LSA(a3)); \
	   register volatile ULONG  __AROS_LTA(a4) asm(__AROS_LSA(a4)); \
	   register volatile ULONG  __AROS_LTA(a5) asm(__AROS_LSA(a5)); \
	   register volatile ULONG  __AROS_LTA(a6) asm(__AROS_LSA(a6)); \
	   register volatile ULONG  __AROS_LTA(a7) asm(__AROS_LSA(a7)); \
	   register volatile ULONG  __AROS_LTA(a8) asm(__AROS_LSA(a8)); \
	   register volatile ULONG  __AROS_LTA(a9) asm(__AROS_LSA(a9)); \
	   register volatile ULONG  __AROS_LTA(a10) asm(__AROS_LSA(a10)); \
	   register volatile ULONG  __AROS_LTA(a11) asm(__AROS_LSA(a11)); \
	   register volatile ULONG  __AROS_LTA(a12) asm(__AROS_LSA(a12)); \
	   register volatile ULONG _bn asm("%a6"); \
	   if (! __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      __AROS_LTA(a1) = _arg1; } \
	   if (! __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      __AROS_LTA(a2) = _arg2; } \
	   if (! __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      __AROS_LTA(a3) = _arg3; } \
	   if (! __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      __AROS_LTA(a4) = _arg4; } \
	   if (! __AROS_ISREG(a5,__AROS_FP_REG)) { \
	      __AROS_LTA(a5) = _arg5; } \
	   if (! __AROS_ISREG(a6,__AROS_FP_REG)) { \
	      __AROS_LTA(a6) = _arg6; } \
	   if (! __AROS_ISREG(a7,__AROS_FP_REG)) { \
	      __AROS_LTA(a7) = _arg7; } \
	   if (! __AROS_ISREG(a8,__AROS_FP_REG)) { \
	      __AROS_LTA(a8) = _arg8; } \
	   if (! __AROS_ISREG(a9,__AROS_FP_REG)) { \
	      __AROS_LTA(a9) = _arg9; } \
	   if (! __AROS_ISREG(a10,__AROS_FP_REG)) { \
	      __AROS_LTA(a10) = _arg10; } \
	   if (! __AROS_ISREG(a11,__AROS_FP_REG)) { \
	      __AROS_LTA(a11) = _arg11; } \
	   if (! __AROS_ISREG(a12,__AROS_FP_REG)) { \
	      __AROS_LTA(a12) = _arg12; } \
	   if (! __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      _bn = _bn_arg; } \
	   if ( __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg1), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		, "r" (__AROS_LTA(a12)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg2), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		, "r" (__AROS_LTA(a12)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg3), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		, "r" (__AROS_LTA(a12)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg4), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		, "r" (__AROS_LTA(a12)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a5,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg5), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		, "r" (__AROS_LTA(a12)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg6), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		, "r" (__AROS_LTA(a12)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a7,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg7), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		, "r" (__AROS_LTA(a12)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a8,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg8), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		, "r" (__AROS_LTA(a12)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a9,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg9), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		, "r" (__AROS_LTA(a12)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a10,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg10), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		, "r" (__AROS_LTA(a12)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a11,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg11), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		, "r" (__AROS_LTA(a12)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a12,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg12), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		, "r" (__AROS_LTA(a12)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_bn_arg), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		, "r" (__AROS_LTA(a12)) \
		: "cc", "memory" \
	       ); }\
	   if (!(0 || __AROS_ISREG(bt,bn,A6,__AROS_FP_REG) || __AROS_ISREG(a1,__AROS_FP_REG) || __AROS_ISREG(a2,__AROS_FP_REG) || __AROS_ISREG(a3,__AROS_FP_REG) || __AROS_ISREG(a4,__AROS_FP_REG) || __AROS_ISREG(a5,__AROS_FP_REG) || __AROS_ISREG(a6,__AROS_FP_REG) || __AROS_ISREG(a7,__AROS_FP_REG) || __AROS_ISREG(a8,__AROS_FP_REG) || __AROS_ISREG(a9,__AROS_FP_REG) || __AROS_ISREG(a10,__AROS_FP_REG) || __AROS_ISREG(a11,__AROS_FP_REG) || __AROS_ISREG(a12,__AROS_FP_REG))) {\
	      asm volatile ("jsr %c5(%%a6)\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "i" (0), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		, "r" (__AROS_LTA(a12)) \
		: "cc", "memory" \
	       ); }\
	}\
	  })

#define AROS_LC12NR __AROS_LC12NR
#define __AROS_LC13(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,bt,bn,o,s) \
	({ \
	register volatile ULONG _ret0 asm("%d0"); \
	register volatile ULONG _ret1 asm("%d1"); \
	register volatile ULONG _mem0 asm("%a0"); \
	register volatile ULONG _mem1 asm("%a1"); \
	{ \
	   ULONG _arg1 = (ULONG)__AROS_LCA(a1); \
	   ULONG _arg2 = (ULONG)__AROS_LCA(a2); \
	   ULONG _arg3 = (ULONG)__AROS_LCA(a3); \
	   ULONG _arg4 = (ULONG)__AROS_LCA(a4); \
	   ULONG _arg5 = (ULONG)__AROS_LCA(a5); \
	   ULONG _arg6 = (ULONG)__AROS_LCA(a6); \
	   ULONG _arg7 = (ULONG)__AROS_LCA(a7); \
	   ULONG _arg8 = (ULONG)__AROS_LCA(a8); \
	   ULONG _arg9 = (ULONG)__AROS_LCA(a9); \
	   ULONG _arg10 = (ULONG)__AROS_LCA(a10); \
	   ULONG _arg11 = (ULONG)__AROS_LCA(a11); \
	   ULONG _arg12 = (ULONG)__AROS_LCA(a12); \
	   ULONG _arg13 = (ULONG)__AROS_LCA(a13); \
	   ULONG _bn_arg = (ULONG)bn; \
	   register volatile ULONG  __AROS_LTA(a1) asm(__AROS_LSA(a1)); \
	   register volatile ULONG  __AROS_LTA(a2) asm(__AROS_LSA(a2)); \
	   register volatile ULONG  __AROS_LTA(a3) asm(__AROS_LSA(a3)); \
	   register volatile ULONG  __AROS_LTA(a4) asm(__AROS_LSA(a4)); \
	   register volatile ULONG  __AROS_LTA(a5) asm(__AROS_LSA(a5)); \
	   register volatile ULONG  __AROS_LTA(a6) asm(__AROS_LSA(a6)); \
	   register volatile ULONG  __AROS_LTA(a7) asm(__AROS_LSA(a7)); \
	   register volatile ULONG  __AROS_LTA(a8) asm(__AROS_LSA(a8)); \
	   register volatile ULONG  __AROS_LTA(a9) asm(__AROS_LSA(a9)); \
	   register volatile ULONG  __AROS_LTA(a10) asm(__AROS_LSA(a10)); \
	   register volatile ULONG  __AROS_LTA(a11) asm(__AROS_LSA(a11)); \
	   register volatile ULONG  __AROS_LTA(a12) asm(__AROS_LSA(a12)); \
	   register volatile ULONG  __AROS_LTA(a13) asm(__AROS_LSA(a13)); \
	   register volatile ULONG _bn asm("%a6"); \
	   if (! __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      __AROS_LTA(a1) = _arg1; } \
	   if (! __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      __AROS_LTA(a2) = _arg2; } \
	   if (! __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      __AROS_LTA(a3) = _arg3; } \
	   if (! __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      __AROS_LTA(a4) = _arg4; } \
	   if (! __AROS_ISREG(a5,__AROS_FP_REG)) { \
	      __AROS_LTA(a5) = _arg5; } \
	   if (! __AROS_ISREG(a6,__AROS_FP_REG)) { \
	      __AROS_LTA(a6) = _arg6; } \
	   if (! __AROS_ISREG(a7,__AROS_FP_REG)) { \
	      __AROS_LTA(a7) = _arg7; } \
	   if (! __AROS_ISREG(a8,__AROS_FP_REG)) { \
	      __AROS_LTA(a8) = _arg8; } \
	   if (! __AROS_ISREG(a9,__AROS_FP_REG)) { \
	      __AROS_LTA(a9) = _arg9; } \
	   if (! __AROS_ISREG(a10,__AROS_FP_REG)) { \
	      __AROS_LTA(a10) = _arg10; } \
	   if (! __AROS_ISREG(a11,__AROS_FP_REG)) { \
	      __AROS_LTA(a11) = _arg11; } \
	   if (! __AROS_ISREG(a12,__AROS_FP_REG)) { \
	      __AROS_LTA(a12) = _arg12; } \
	   if (! __AROS_ISREG(a13,__AROS_FP_REG)) { \
	      __AROS_LTA(a13) = _arg13; } \
	   if (! __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      _bn = _bn_arg; } \
	   if ( __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg1), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		, "r" (__AROS_LTA(a12)) \
		, "r" (__AROS_LTA(a13)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg2), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		, "r" (__AROS_LTA(a12)) \
		, "r" (__AROS_LTA(a13)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg3), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		, "r" (__AROS_LTA(a12)) \
		, "r" (__AROS_LTA(a13)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg4), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		, "r" (__AROS_LTA(a12)) \
		, "r" (__AROS_LTA(a13)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a5,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg5), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		, "r" (__AROS_LTA(a12)) \
		, "r" (__AROS_LTA(a13)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg6), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		, "r" (__AROS_LTA(a12)) \
		, "r" (__AROS_LTA(a13)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a7,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg7), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		, "r" (__AROS_LTA(a12)) \
		, "r" (__AROS_LTA(a13)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a8,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg8), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		, "r" (__AROS_LTA(a12)) \
		, "r" (__AROS_LTA(a13)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a9,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg9), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		, "r" (__AROS_LTA(a12)) \
		, "r" (__AROS_LTA(a13)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a10,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg10), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		, "r" (__AROS_LTA(a12)) \
		, "r" (__AROS_LTA(a13)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a11,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg11), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		, "r" (__AROS_LTA(a12)) \
		, "r" (__AROS_LTA(a13)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a12,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg12), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		, "r" (__AROS_LTA(a12)) \
		, "r" (__AROS_LTA(a13)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a13,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg13), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		, "r" (__AROS_LTA(a12)) \
		, "r" (__AROS_LTA(a13)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_bn_arg), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		, "r" (__AROS_LTA(a12)) \
		, "r" (__AROS_LTA(a13)) \
		: "cc", "memory" \
	       ); }\
	   if (!(0 || __AROS_ISREG(bt,bn,A6,__AROS_FP_REG) || __AROS_ISREG(a1,__AROS_FP_REG) || __AROS_ISREG(a2,__AROS_FP_REG) || __AROS_ISREG(a3,__AROS_FP_REG) || __AROS_ISREG(a4,__AROS_FP_REG) || __AROS_ISREG(a5,__AROS_FP_REG) || __AROS_ISREG(a6,__AROS_FP_REG) || __AROS_ISREG(a7,__AROS_FP_REG) || __AROS_ISREG(a8,__AROS_FP_REG) || __AROS_ISREG(a9,__AROS_FP_REG) || __AROS_ISREG(a10,__AROS_FP_REG) || __AROS_ISREG(a11,__AROS_FP_REG) || __AROS_ISREG(a12,__AROS_FP_REG) || __AROS_ISREG(a13,__AROS_FP_REG))) {\
	      asm volatile ("jsr %c5(%%a6)\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "i" (0), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		, "r" (__AROS_LTA(a12)) \
		, "r" (__AROS_LTA(a13)) \
		: "cc", "memory" \
	       ); }\
	}\
	(void)_mem0; (void)_mem1; \
	(sizeof(t) < sizeof(QUAD)) ? (t)(_ret0) :\
	   ({struct { ULONG r0,r1; } rv;\
	     t *t_ptr = (t *)&rv.r0;\
	     rv.r0 = _ret0; rv.r1 = _ret1; *t_ptr; });\
	  })

#define AROS_LC13 __AROS_LC13
#define __AROS_LC13NR(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,bt,bn,o,s) \
	({ \
	register volatile ULONG _ret0 asm("%d0"); \
	register volatile ULONG _ret1 asm("%d1"); \
	register volatile ULONG _mem0 asm("%a0"); \
	register volatile ULONG _mem1 asm("%a1"); \
	{ \
	   ULONG _arg1 = (ULONG)__AROS_LCA(a1); \
	   ULONG _arg2 = (ULONG)__AROS_LCA(a2); \
	   ULONG _arg3 = (ULONG)__AROS_LCA(a3); \
	   ULONG _arg4 = (ULONG)__AROS_LCA(a4); \
	   ULONG _arg5 = (ULONG)__AROS_LCA(a5); \
	   ULONG _arg6 = (ULONG)__AROS_LCA(a6); \
	   ULONG _arg7 = (ULONG)__AROS_LCA(a7); \
	   ULONG _arg8 = (ULONG)__AROS_LCA(a8); \
	   ULONG _arg9 = (ULONG)__AROS_LCA(a9); \
	   ULONG _arg10 = (ULONG)__AROS_LCA(a10); \
	   ULONG _arg11 = (ULONG)__AROS_LCA(a11); \
	   ULONG _arg12 = (ULONG)__AROS_LCA(a12); \
	   ULONG _arg13 = (ULONG)__AROS_LCA(a13); \
	   ULONG _bn_arg = (ULONG)bn; \
	   register volatile ULONG  __AROS_LTA(a1) asm(__AROS_LSA(a1)); \
	   register volatile ULONG  __AROS_LTA(a2) asm(__AROS_LSA(a2)); \
	   register volatile ULONG  __AROS_LTA(a3) asm(__AROS_LSA(a3)); \
	   register volatile ULONG  __AROS_LTA(a4) asm(__AROS_LSA(a4)); \
	   register volatile ULONG  __AROS_LTA(a5) asm(__AROS_LSA(a5)); \
	   register volatile ULONG  __AROS_LTA(a6) asm(__AROS_LSA(a6)); \
	   register volatile ULONG  __AROS_LTA(a7) asm(__AROS_LSA(a7)); \
	   register volatile ULONG  __AROS_LTA(a8) asm(__AROS_LSA(a8)); \
	   register volatile ULONG  __AROS_LTA(a9) asm(__AROS_LSA(a9)); \
	   register volatile ULONG  __AROS_LTA(a10) asm(__AROS_LSA(a10)); \
	   register volatile ULONG  __AROS_LTA(a11) asm(__AROS_LSA(a11)); \
	   register volatile ULONG  __AROS_LTA(a12) asm(__AROS_LSA(a12)); \
	   register volatile ULONG  __AROS_LTA(a13) asm(__AROS_LSA(a13)); \
	   register volatile ULONG _bn asm("%a6"); \
	   if (! __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      __AROS_LTA(a1) = _arg1; } \
	   if (! __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      __AROS_LTA(a2) = _arg2; } \
	   if (! __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      __AROS_LTA(a3) = _arg3; } \
	   if (! __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      __AROS_LTA(a4) = _arg4; } \
	   if (! __AROS_ISREG(a5,__AROS_FP_REG)) { \
	      __AROS_LTA(a5) = _arg5; } \
	   if (! __AROS_ISREG(a6,__AROS_FP_REG)) { \
	      __AROS_LTA(a6) = _arg6; } \
	   if (! __AROS_ISREG(a7,__AROS_FP_REG)) { \
	      __AROS_LTA(a7) = _arg7; } \
	   if (! __AROS_ISREG(a8,__AROS_FP_REG)) { \
	      __AROS_LTA(a8) = _arg8; } \
	   if (! __AROS_ISREG(a9,__AROS_FP_REG)) { \
	      __AROS_LTA(a9) = _arg9; } \
	   if (! __AROS_ISREG(a10,__AROS_FP_REG)) { \
	      __AROS_LTA(a10) = _arg10; } \
	   if (! __AROS_ISREG(a11,__AROS_FP_REG)) { \
	      __AROS_LTA(a11) = _arg11; } \
	   if (! __AROS_ISREG(a12,__AROS_FP_REG)) { \
	      __AROS_LTA(a12) = _arg12; } \
	   if (! __AROS_ISREG(a13,__AROS_FP_REG)) { \
	      __AROS_LTA(a13) = _arg13; } \
	   if (! __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      _bn = _bn_arg; } \
	   if ( __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg1), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		, "r" (__AROS_LTA(a12)) \
		, "r" (__AROS_LTA(a13)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg2), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		, "r" (__AROS_LTA(a12)) \
		, "r" (__AROS_LTA(a13)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg3), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		, "r" (__AROS_LTA(a12)) \
		, "r" (__AROS_LTA(a13)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg4), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		, "r" (__AROS_LTA(a12)) \
		, "r" (__AROS_LTA(a13)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a5,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg5), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		, "r" (__AROS_LTA(a12)) \
		, "r" (__AROS_LTA(a13)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg6), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		, "r" (__AROS_LTA(a12)) \
		, "r" (__AROS_LTA(a13)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a7,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg7), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		, "r" (__AROS_LTA(a12)) \
		, "r" (__AROS_LTA(a13)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a8,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg8), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		, "r" (__AROS_LTA(a12)) \
		, "r" (__AROS_LTA(a13)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a9,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg9), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		, "r" (__AROS_LTA(a12)) \
		, "r" (__AROS_LTA(a13)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a10,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg10), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		, "r" (__AROS_LTA(a12)) \
		, "r" (__AROS_LTA(a13)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a11,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg11), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		, "r" (__AROS_LTA(a12)) \
		, "r" (__AROS_LTA(a13)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a12,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg12), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		, "r" (__AROS_LTA(a12)) \
		, "r" (__AROS_LTA(a13)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a13,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg13), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		, "r" (__AROS_LTA(a12)) \
		, "r" (__AROS_LTA(a13)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_bn_arg), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		, "r" (__AROS_LTA(a12)) \
		, "r" (__AROS_LTA(a13)) \
		: "cc", "memory" \
	       ); }\
	   if (!(0 || __AROS_ISREG(bt,bn,A6,__AROS_FP_REG) || __AROS_ISREG(a1,__AROS_FP_REG) || __AROS_ISREG(a2,__AROS_FP_REG) || __AROS_ISREG(a3,__AROS_FP_REG) || __AROS_ISREG(a4,__AROS_FP_REG) || __AROS_ISREG(a5,__AROS_FP_REG) || __AROS_ISREG(a6,__AROS_FP_REG) || __AROS_ISREG(a7,__AROS_FP_REG) || __AROS_ISREG(a8,__AROS_FP_REG) || __AROS_ISREG(a9,__AROS_FP_REG) || __AROS_ISREG(a10,__AROS_FP_REG) || __AROS_ISREG(a11,__AROS_FP_REG) || __AROS_ISREG(a12,__AROS_FP_REG) || __AROS_ISREG(a13,__AROS_FP_REG))) {\
	      asm volatile ("jsr %c5(%%a6)\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "i" (0), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
		, "r" (__AROS_LTA(a7)) \
		, "r" (__AROS_LTA(a8)) \
		, "r" (__AROS_LTA(a9)) \
		, "r" (__AROS_LTA(a10)) \
		, "r" (__AROS_LTA(a11)) \
		, "r" (__AROS_LTA(a12)) \
		, "r" (__AROS_LTA(a13)) \
		: "cc", "memory" \
	       ); }\
	}\
	  })

#define AROS_LC13NR __AROS_LC13NR
#define __AROS_LC2D(t,n,a1,a2,bt,bn,o,s) \
	({ \
	register volatile ULONG _ret0 asm("%d0"); \
	register volatile ULONG _ret1 asm("%d1"); \
	register volatile ULONG _mem0 asm("%a0"); \
	register volatile ULONG _mem1 asm("%a1"); \
	{ \
	   ULONG _arg1 = (ULONG)__AROS_LCA(a1); \
	   ULONG _arg2 = (ULONG)__AROS_LCA(a2); \
	   ULONG _bn_arg = (ULONG)bn; \
	   register volatile ULONG  __AROS_LTA(a1) asm(__AROS_LSA(a1)); \
	   register volatile ULONG  __AROS_LTA(a2) asm(__AROS_LSA(a2)); \
	   register volatile ULONG _bn asm("%a6"); \
	   if (! __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      __AROS_LTA(a1) = _arg1; } \
	   if (! __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      __AROS_LTA(a2) = _arg2; } \
	   if (! __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      _bn = _bn_arg; } \
	   if ( __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg1), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg2), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_bn_arg), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		: "cc", "memory" \
	       ); }\
	   if (!(0 || __AROS_ISREG(bt,bn,A6,__AROS_FP_REG) || __AROS_ISREG(a1,__AROS_FP_REG) || __AROS_ISREG(a2,__AROS_FP_REG))) {\
	      asm volatile ("jsr %c5(%%a6)\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "i" (0), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		: "cc", "memory" \
	       ); }\
	}\
	(void)_mem0; (void)_mem1; \
	(sizeof(t) < sizeof(QUAD)) ? (t)(_ret0) :\
	   ({struct { ULONG r0,r1; } rv;\
	     t *t_ptr = (t *)&rv.r0;\
	     rv.r0 = _ret0; rv.r1 = _ret1; *t_ptr; });\
	  })

#define AROS_LC2D __AROS_LC2D
#define __AROS_LC3D(t,n,a1,a2,a3,bt,bn,o,s) \
	({ \
	register volatile ULONG _ret0 asm("%d0"); \
	register volatile ULONG _ret1 asm("%d1"); \
	register volatile ULONG _mem0 asm("%a0"); \
	register volatile ULONG _mem1 asm("%a1"); \
	{ \
	   ULONG _arg1 = (ULONG)__AROS_LCA(a1); \
	   ULONG _arg2 = (ULONG)__AROS_LCA(a2); \
	   ULONG _arg3 = (ULONG)__AROS_LCA(a3); \
	   ULONG _bn_arg = (ULONG)bn; \
	   register volatile ULONG  __AROS_LTA(a1) asm(__AROS_LSA(a1)); \
	   register volatile ULONG  __AROS_LTA(a2) asm(__AROS_LSA(a2)); \
	   register volatile ULONG  __AROS_LTA(a3) asm(__AROS_LSA(a3)); \
	   register volatile ULONG _bn asm("%a6"); \
	   if (! __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      __AROS_LTA(a1) = _arg1; } \
	   if (! __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      __AROS_LTA(a2) = _arg2; } \
	   if (! __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      __AROS_LTA(a3) = _arg3; } \
	   if (! __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      _bn = _bn_arg; } \
	   if ( __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg1), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg2), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg3), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_bn_arg), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		: "cc", "memory" \
	       ); }\
	   if (!(0 || __AROS_ISREG(bt,bn,A6,__AROS_FP_REG) || __AROS_ISREG(a1,__AROS_FP_REG) || __AROS_ISREG(a2,__AROS_FP_REG) || __AROS_ISREG(a3,__AROS_FP_REG))) {\
	      asm volatile ("jsr %c5(%%a6)\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "i" (0), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		: "cc", "memory" \
	       ); }\
	}\
	(void)_mem0; (void)_mem1; \
	(sizeof(t) < sizeof(QUAD)) ? (t)(_ret0) :\
	   ({struct { ULONG r0,r1; } rv;\
	     t *t_ptr = (t *)&rv.r0;\
	     rv.r0 = _ret0; rv.r1 = _ret1; *t_ptr; });\
	  })

#define AROS_LC3D __AROS_LC3D
#define __AROS_LC4D(t,n,a1,a2,a3,a4,bt,bn,o,s) \
	({ \
	register volatile ULONG _ret0 asm("%d0"); \
	register volatile ULONG _ret1 asm("%d1"); \
	register volatile ULONG _mem0 asm("%a0"); \
	register volatile ULONG _mem1 asm("%a1"); \
	{ \
	   ULONG _arg1 = (ULONG)__AROS_LCA(a1); \
	   ULONG _arg2 = (ULONG)__AROS_LCA(a2); \
	   ULONG _arg3 = (ULONG)__AROS_LCA(a3); \
	   ULONG _arg4 = (ULONG)__AROS_LCA(a4); \
	   ULONG _bn_arg = (ULONG)bn; \
	   register volatile ULONG  __AROS_LTA(a1) asm(__AROS_LSA(a1)); \
	   register volatile ULONG  __AROS_LTA(a2) asm(__AROS_LSA(a2)); \
	   register volatile ULONG  __AROS_LTA(a3) asm(__AROS_LSA(a3)); \
	   register volatile ULONG  __AROS_LTA(a4) asm(__AROS_LSA(a4)); \
	   register volatile ULONG _bn asm("%a6"); \
	   if (! __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      __AROS_LTA(a1) = _arg1; } \
	   if (! __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      __AROS_LTA(a2) = _arg2; } \
	   if (! __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      __AROS_LTA(a3) = _arg3; } \
	   if (! __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      __AROS_LTA(a4) = _arg4; } \
	   if (! __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      _bn = _bn_arg; } \
	   if ( __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg1), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg2), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg3), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_arg4), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		: "cc", "memory" \
	       ); }\
	   if ( __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %4,%%" __AROS_FP_SREG "\njsr %c5(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "r" (_bn_arg), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		: "cc", "memory" \
	       ); }\
	   if (!(0 || __AROS_ISREG(bt,bn,A6,__AROS_FP_REG) || __AROS_ISREG(a1,__AROS_FP_REG) || __AROS_ISREG(a2,__AROS_FP_REG) || __AROS_ISREG(a3,__AROS_FP_REG) || __AROS_ISREG(a4,__AROS_FP_REG))) {\
	      asm volatile ("jsr %c5(%%a6)\n" : "=r"(_ret0), "=r"(_ret1), "=r"(_mem0), "=r"(_mem1) : "i" (0), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		: "cc", "memory" \
	       ); }\
	}\
	(void)_mem0; (void)_mem1; \
	(sizeof(t) < sizeof(QUAD)) ? (t)(_ret0) :\
	   ({struct { ULONG r0,r1; } rv;\
	     t *t_ptr = (t *)&rv.r0;\
	     rv.r0 = _ret0; rv.r1 = _ret1; *t_ptr; });\
	  })

#define AROS_LC4D __AROS_LC4D
#define __AROS_CALL0(t,n,bt,bn) \
	AROS_UFC1(t,n,AROS_UFCA(bt,bn,A6))
#define AROS_CALL0 __AROS_CALL0
#define __AROS_CALL0NR(t,n,bt,bn) \
	AROS_UFC1NR(t,n,AROS_UFCA(bt,bn,A6))
#define AROS_CALL0NR __AROS_CALL0NR
#define __AROS_CALL1(t,n,a1,bt,bn) \
	AROS_UFC2(t,n,AROS_UFCA(a1),AROS_UFCA(bt,bn,A6))
#define AROS_CALL1 __AROS_CALL1
#define __AROS_CALL1NR(t,n,a1,bt,bn) \
	AROS_UFC2NR(t,n,AROS_UFCA(a1),AROS_UFCA(bt,bn,A6))
#define AROS_CALL1NR __AROS_CALL1NR
#define __AROS_CALL2(t,n,a1,a2,bt,bn) \
	AROS_UFC3(t,n,AROS_UFCA(a1),AROS_UFCA(a2),AROS_UFCA(bt,bn,A6))
#define AROS_CALL2 __AROS_CALL2
#define __AROS_CALL2NR(t,n,a1,a2,bt,bn) \
	AROS_UFC3NR(t,n,AROS_UFCA(a1),AROS_UFCA(a2),AROS_UFCA(bt,bn,A6))
#define AROS_CALL2NR __AROS_CALL2NR
#define __AROS_CALL3(t,n,a1,a2,a3,bt,bn) \
	AROS_UFC4(t,n,AROS_UFCA(a1),AROS_UFCA(a2),AROS_UFCA(a3),AROS_UFCA(bt,bn,A6))
#define AROS_CALL3 __AROS_CALL3
#define __AROS_CALL3NR(t,n,a1,a2,a3,bt,bn) \
	AROS_UFC4NR(t,n,AROS_UFCA(a1),AROS_UFCA(a2),AROS_UFCA(a3),AROS_UFCA(bt,bn,A6))
#define AROS_CALL3NR __AROS_CALL3NR
#define __AROS_CALL4(t,n,a1,a2,a3,a4,bt,bn) \
	AROS_UFC5(t,n,AROS_UFCA(a1),AROS_UFCA(a2),AROS_UFCA(a3),AROS_UFCA(a4),AROS_UFCA(bt,bn,A6))
#define AROS_CALL4 __AROS_CALL4
#define __AROS_CALL4NR(t,n,a1,a2,a3,a4,bt,bn) \
	AROS_UFC5NR(t,n,AROS_UFCA(a1),AROS_UFCA(a2),AROS_UFCA(a3),AROS_UFCA(a4),AROS_UFCA(bt,bn,A6))
#define AROS_CALL4NR __AROS_CALL4NR
#define __AROS_CALL5(t,n,a1,a2,a3,a4,a5,bt,bn) \
	AROS_UFC6(t,n,AROS_UFCA(a1),AROS_UFCA(a2),AROS_UFCA(a3),AROS_UFCA(a4),AROS_UFCA(a5),AROS_UFCA(bt,bn,A6))
#define AROS_CALL5 __AROS_CALL5
#define __AROS_CALL5NR(t,n,a1,a2,a3,a4,a5,bt,bn) \
	AROS_UFC6NR(t,n,AROS_UFCA(a1),AROS_UFCA(a2),AROS_UFCA(a3),AROS_UFCA(a4),AROS_UFCA(a5),AROS_UFCA(bt,bn,A6))
#define AROS_CALL5NR __AROS_CALL5NR
#define __AROS_CALL6(t,n,a1,a2,a3,a4,a5,a6,bt,bn) \
	AROS_UFC7(t,n,AROS_UFCA(a1),AROS_UFCA(a2),AROS_UFCA(a3),AROS_UFCA(a4),AROS_UFCA(a5),AROS_UFCA(a6),AROS_UFCA(bt,bn,A6))
#define AROS_CALL6 __AROS_CALL6
#define __AROS_CALL6NR(t,n,a1,a2,a3,a4,a5,a6,bt,bn) \
	AROS_UFC7NR(t,n,AROS_UFCA(a1),AROS_UFCA(a2),AROS_UFCA(a3),AROS_UFCA(a4),AROS_UFCA(a5),AROS_UFCA(a6),AROS_UFCA(bt,bn,A6))
#define AROS_CALL6NR __AROS_CALL6NR
#define __AROS_CALL7(t,n,a1,a2,a3,a4,a5,a6,a7,bt,bn) \
	AROS_UFC8(t,n,AROS_UFCA(a1),AROS_UFCA(a2),AROS_UFCA(a3),AROS_UFCA(a4),AROS_UFCA(a5),AROS_UFCA(a6),AROS_UFCA(a7),AROS_UFCA(bt,bn,A6))
#define AROS_CALL7 __AROS_CALL7
#define __AROS_CALL7NR(t,n,a1,a2,a3,a4,a5,a6,a7,bt,bn) \
	AROS_UFC8NR(t,n,AROS_UFCA(a1),AROS_UFCA(a2),AROS_UFCA(a3),AROS_UFCA(a4),AROS_UFCA(a5),AROS_UFCA(a6),AROS_UFCA(a7),AROS_UFCA(bt,bn,A6))
#define AROS_CALL7NR __AROS_CALL7NR
#define __AROS_CALL8(t,n,a1,a2,a3,a4,a5,a6,a7,a8,bt,bn) \
	AROS_UFC9(t,n,AROS_UFCA(a1),AROS_UFCA(a2),AROS_UFCA(a3),AROS_UFCA(a4),AROS_UFCA(a5),AROS_UFCA(a6),AROS_UFCA(a7),AROS_UFCA(a8),AROS_UFCA(bt,bn,A6))
#define AROS_CALL8 __AROS_CALL8
#define __AROS_CALL8NR(t,n,a1,a2,a3,a4,a5,a6,a7,a8,bt,bn) \
	AROS_UFC9NR(t,n,AROS_UFCA(a1),AROS_UFCA(a2),AROS_UFCA(a3),AROS_UFCA(a4),AROS_UFCA(a5),AROS_UFCA(a6),AROS_UFCA(a7),AROS_UFCA(a8),AROS_UFCA(bt,bn,A6))
#define AROS_CALL8NR __AROS_CALL8NR
#define __AROS_CALL9(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,bt,bn) \
	AROS_UFC10(t,n,AROS_UFCA(a1),AROS_UFCA(a2),AROS_UFCA(a3),AROS_UFCA(a4),AROS_UFCA(a5),AROS_UFCA(a6),AROS_UFCA(a7),AROS_UFCA(a8),AROS_UFCA(a9),AROS_UFCA(bt,bn,A6))
#define AROS_CALL9 __AROS_CALL9
#define __AROS_CALL9NR(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,bt,bn) \
	AROS_UFC10NR(t,n,AROS_UFCA(a1),AROS_UFCA(a2),AROS_UFCA(a3),AROS_UFCA(a4),AROS_UFCA(a5),AROS_UFCA(a6),AROS_UFCA(a7),AROS_UFCA(a8),AROS_UFCA(a9),AROS_UFCA(bt,bn,A6))
#define AROS_CALL9NR __AROS_CALL9NR
#define __AROS_CALL10(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,bt,bn) \
	AROS_UFC11(t,n,AROS_UFCA(a1),AROS_UFCA(a2),AROS_UFCA(a3),AROS_UFCA(a4),AROS_UFCA(a5),AROS_UFCA(a6),AROS_UFCA(a7),AROS_UFCA(a8),AROS_UFCA(a9),AROS_UFCA(a10),AROS_UFCA(bt,bn,A6))
#define AROS_CALL10 __AROS_CALL10
#define __AROS_CALL10NR(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,bt,bn) \
	AROS_UFC11NR(t,n,AROS_UFCA(a1),AROS_UFCA(a2),AROS_UFCA(a3),AROS_UFCA(a4),AROS_UFCA(a5),AROS_UFCA(a6),AROS_UFCA(a7),AROS_UFCA(a8),AROS_UFCA(a9),AROS_UFCA(a10),AROS_UFCA(bt,bn,A6))
#define AROS_CALL10NR __AROS_CALL10NR
#define __AROS_CALL11(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,bt,bn) \
	AROS_UFC12(t,n,AROS_UFCA(a1),AROS_UFCA(a2),AROS_UFCA(a3),AROS_UFCA(a4),AROS_UFCA(a5),AROS_UFCA(a6),AROS_UFCA(a7),AROS_UFCA(a8),AROS_UFCA(a9),AROS_UFCA(a10),AROS_UFCA(a11),AROS_UFCA(bt,bn,A6))
#define AROS_CALL11 __AROS_CALL11
#define __AROS_CALL11NR(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,bt,bn) \
	AROS_UFC12NR(t,n,AROS_UFCA(a1),AROS_UFCA(a2),AROS_UFCA(a3),AROS_UFCA(a4),AROS_UFCA(a5),AROS_UFCA(a6),AROS_UFCA(a7),AROS_UFCA(a8),AROS_UFCA(a9),AROS_UFCA(a10),AROS_UFCA(a11),AROS_UFCA(bt,bn,A6))
#define AROS_CALL11NR __AROS_CALL11NR
#define __AROS_CALL12(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,bt,bn) \
	AROS_UFC13(t,n,AROS_UFCA(a1),AROS_UFCA(a2),AROS_UFCA(a3),AROS_UFCA(a4),AROS_UFCA(a5),AROS_UFCA(a6),AROS_UFCA(a7),AROS_UFCA(a8),AROS_UFCA(a9),AROS_UFCA(a10),AROS_UFCA(a11),AROS_UFCA(a12),AROS_UFCA(bt,bn,A6))
#define AROS_CALL12 __AROS_CALL12
#define __AROS_CALL12NR(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,bt,bn) \
	AROS_UFC13NR(t,n,AROS_UFCA(a1),AROS_UFCA(a2),AROS_UFCA(a3),AROS_UFCA(a4),AROS_UFCA(a5),AROS_UFCA(a6),AROS_UFCA(a7),AROS_UFCA(a8),AROS_UFCA(a9),AROS_UFCA(a10),AROS_UFCA(a11),AROS_UFCA(a12),AROS_UFCA(bt,bn,A6))
#define AROS_CALL12NR __AROS_CALL12NR
#define __AROS_CALL13(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,bt,bn) \
	AROS_UFC14(t,n,AROS_UFCA(a1),AROS_UFCA(a2),AROS_UFCA(a3),AROS_UFCA(a4),AROS_UFCA(a5),AROS_UFCA(a6),AROS_UFCA(a7),AROS_UFCA(a8),AROS_UFCA(a9),AROS_UFCA(a10),AROS_UFCA(a11),AROS_UFCA(a12),AROS_UFCA(a13),AROS_UFCA(bt,bn,A6))
#define AROS_CALL13 __AROS_CALL13
#define __AROS_CALL13NR(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,bt,bn) \
	AROS_UFC14NR(t,n,AROS_UFCA(a1),AROS_UFCA(a2),AROS_UFCA(a3),AROS_UFCA(a4),AROS_UFCA(a5),AROS_UFCA(a6),AROS_UFCA(a7),AROS_UFCA(a8),AROS_UFCA(a9),AROS_UFCA(a10),AROS_UFCA(a11),AROS_UFCA(a12),AROS_UFCA(a13),AROS_UFCA(bt,bn,A6))
#define AROS_CALL13NR __AROS_CALL13NR
#define __AROS_LVO_CALL0(t,bt,bn,o,s) \
	__AROS_CALL0(t,__AROS_GETVECADDR(bn,o), \
		bt,bn)
#define AROS_LVO_CALL0 __AROS_LVO_CALL0
#define __AROS_LVO_CALL1(t,a1,bt,bn,o,s) \
	__AROS_CALL1(t,__AROS_GETVECADDR(bn,o), \
		AROS_LCA(a1), \
		bt,bn)
#define AROS_LVO_CALL1 __AROS_LVO_CALL1
#define __AROS_LVO_CALL2(t,a1,a2,bt,bn,o,s) \
	__AROS_CALL2(t,__AROS_GETVECADDR(bn,o), \
		AROS_LCA(a1), \
		AROS_LCA(a2), \
		bt,bn)
#define AROS_LVO_CALL2 __AROS_LVO_CALL2
#define __AROS_LVO_CALL3(t,a1,a2,a3,bt,bn,o,s) \
	__AROS_CALL3(t,__AROS_GETVECADDR(bn,o), \
		AROS_LCA(a1), \
		AROS_LCA(a2), \
		AROS_LCA(a3), \
		bt,bn)
#define AROS_LVO_CALL3 __AROS_LVO_CALL3
#define __AROS_LVO_CALL4(t,a1,a2,a3,a4,bt,bn,o,s) \
	__AROS_CALL4(t,__AROS_GETVECADDR(bn,o), \
		AROS_LCA(a1), \
		AROS_LCA(a2), \
		AROS_LCA(a3), \
		AROS_LCA(a4), \
		bt,bn)
#define AROS_LVO_CALL4 __AROS_LVO_CALL4
#define __AROS_LVO_CALL5(t,a1,a2,a3,a4,a5,bt,bn,o,s) \
	__AROS_CALL5(t,__AROS_GETVECADDR(bn,o), \
		AROS_LCA(a1), \
		AROS_LCA(a2), \
		AROS_LCA(a3), \
		AROS_LCA(a4), \
		AROS_LCA(a5), \
		bt,bn)
#define AROS_LVO_CALL5 __AROS_LVO_CALL5
#define __AROS_LVO_CALL6(t,a1,a2,a3,a4,a5,a6,bt,bn,o,s) \
	__AROS_CALL6(t,__AROS_GETVECADDR(bn,o), \
		AROS_LCA(a1), \
		AROS_LCA(a2), \
		AROS_LCA(a3), \
		AROS_LCA(a4), \
		AROS_LCA(a5), \
		AROS_LCA(a6), \
		bt,bn)
#define AROS_LVO_CALL6 __AROS_LVO_CALL6
#define __AROS_LVO_CALL7(t,a1,a2,a3,a4,a5,a6,a7,bt,bn,o,s) \
	__AROS_CALL7(t,__AROS_GETVECADDR(bn,o), \
		AROS_LCA(a1), \
		AROS_LCA(a2), \
		AROS_LCA(a3), \
		AROS_LCA(a4), \
		AROS_LCA(a5), \
		AROS_LCA(a6), \
		AROS_LCA(a7), \
		bt,bn)
#define AROS_LVO_CALL7 __AROS_LVO_CALL7
#define __AROS_LVO_CALL8(t,a1,a2,a3,a4,a5,a6,a7,a8,bt,bn,o,s) \
	__AROS_CALL8(t,__AROS_GETVECADDR(bn,o), \
		AROS_LCA(a1), \
		AROS_LCA(a2), \
		AROS_LCA(a3), \
		AROS_LCA(a4), \
		AROS_LCA(a5), \
		AROS_LCA(a6), \
		AROS_LCA(a7), \
		AROS_LCA(a8), \
		bt,bn)
#define AROS_LVO_CALL8 __AROS_LVO_CALL8
#define __AROS_LVO_CALL9(t,a1,a2,a3,a4,a5,a6,a7,a8,a9,bt,bn,o,s) \
	__AROS_CALL9(t,__AROS_GETVECADDR(bn,o), \
		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), \
		bt,bn)
#define AROS_LVO_CALL9 __AROS_LVO_CALL9
#define __AROS_LVO_CALL10(t,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,bt,bn,o,s) \
	__AROS_CALL10(t,__AROS_GETVECADDR(bn,o), \
		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), \
		bt,bn)
#define AROS_LVO_CALL10 __AROS_LVO_CALL10
#define __AROS_LVO_CALL11(t,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,bt,bn,o,s) \
	__AROS_CALL11(t,__AROS_GETVECADDR(bn,o), \
		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), \
		bt,bn)
#define AROS_LVO_CALL11 __AROS_LVO_CALL11
#define __AROS_LVO_CALL12(t,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,bt,bn,o,s) \
	__AROS_CALL12(t,__AROS_GETVECADDR(bn,o), \
		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), \
		bt,bn)
#define AROS_LVO_CALL12 __AROS_LVO_CALL12
#define __AROS_LVO_CALL13(t,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,bt,bn,o,s) \
	__AROS_CALL13(t,__AROS_GETVECADDR(bn,o), \
		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), \
		bt,bn)
#define AROS_LVO_CALL13 __AROS_LVO_CALL13
#define __AROS_LVO_CALL0NR(t,bt,bn,o,s) \
	__AROS_CALL0NR(t,__AROS_GETVECADDR(bn,o), \
		bt,bn)
#define AROS_LVO_CALL0NR __AROS_LVO_CALL0NR
#define __AROS_LVO_CALL1NR(t,a1,bt,bn,o,s) \
	__AROS_CALL1NR(t,__AROS_GETVECADDR(bn,o), \
		AROS_LCA(a1), \
		bt,bn)
#define AROS_LVO_CALL1NR __AROS_LVO_CALL1NR
#define __AROS_LVO_CALL2NR(t,a1,a2,bt,bn,o,s) \
	__AROS_CALL2NR(t,__AROS_GETVECADDR(bn,o), \
		AROS_LCA(a1), \
		AROS_LCA(a2), \
		bt,bn)
#define AROS_LVO_CALL2NR __AROS_LVO_CALL2NR
#define __AROS_LVO_CALL3NR(t,a1,a2,a3,bt,bn,o,s) \
	__AROS_CALL3NR(t,__AROS_GETVECADDR(bn,o), \
		AROS_LCA(a1), \
		AROS_LCA(a2), \
		AROS_LCA(a3), \
		bt,bn)
#define AROS_LVO_CALL3NR __AROS_LVO_CALL3NR
#define __AROS_LVO_CALL4NR(t,a1,a2,a3,a4,bt,bn,o,s) \
	__AROS_CALL4NR(t,__AROS_GETVECADDR(bn,o), \
		AROS_LCA(a1), \
		AROS_LCA(a2), \
		AROS_LCA(a3), \
		AROS_LCA(a4), \
		bt,bn)
#define AROS_LVO_CALL4NR __AROS_LVO_CALL4NR
#define __AROS_LVO_CALL5NR(t,a1,a2,a3,a4,a5,bt,bn,o,s) \
	__AROS_CALL5NR(t,__AROS_GETVECADDR(bn,o), \
		AROS_LCA(a1), \
		AROS_LCA(a2), \
		AROS_LCA(a3), \
		AROS_LCA(a4), \
		AROS_LCA(a5), \
		bt,bn)
#define AROS_LVO_CALL5NR __AROS_LVO_CALL5NR
#define __AROS_LVO_CALL6NR(t,a1,a2,a3,a4,a5,a6,bt,bn,o,s) \
	__AROS_CALL6NR(t,__AROS_GETVECADDR(bn,o), \
		AROS_LCA(a1), \
		AROS_LCA(a2), \
		AROS_LCA(a3), \
		AROS_LCA(a4), \
		AROS_LCA(a5), \
		AROS_LCA(a6), \
		bt,bn)
#define AROS_LVO_CALL6NR __AROS_LVO_CALL6NR
#define __AROS_LVO_CALL7NR(t,a1,a2,a3,a4,a5,a6,a7,bt,bn,o,s) \
	__AROS_CALL7NR(t,__AROS_GETVECADDR(bn,o), \
		AROS_LCA(a1), \
		AROS_LCA(a2), \
		AROS_LCA(a3), \
		AROS_LCA(a4), \
		AROS_LCA(a5), \
		AROS_LCA(a6), \
		AROS_LCA(a7), \
		bt,bn)
#define AROS_LVO_CALL7NR __AROS_LVO_CALL7NR
#define __AROS_LVO_CALL8NR(t,a1,a2,a3,a4,a5,a6,a7,a8,bt,bn,o,s) \
	__AROS_CALL8NR(t,__AROS_GETVECADDR(bn,o), \
		AROS_LCA(a1), \
		AROS_LCA(a2), \
		AROS_LCA(a3), \
		AROS_LCA(a4), \
		AROS_LCA(a5), \
		AROS_LCA(a6), \
		AROS_LCA(a7), \
		AROS_LCA(a8), \
		bt,bn)
#define AROS_LVO_CALL8NR __AROS_LVO_CALL8NR
#define __AROS_LVO_CALL9NR(t,a1,a2,a3,a4,a5,a6,a7,a8,a9,bt,bn,o,s) \
	__AROS_CALL9NR(t,__AROS_GETVECADDR(bn,o), \
		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), \
		bt,bn)
#define AROS_LVO_CALL9NR __AROS_LVO_CALL9NR
#define __AROS_LVO_CALL10NR(t,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,bt,bn,o,s) \
	__AROS_CALL10NR(t,__AROS_GETVECADDR(bn,o), \
		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), \
		bt,bn)
#define AROS_LVO_CALL10NR __AROS_LVO_CALL10NR
#define __AROS_LVO_CALL11NR(t,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,bt,bn,o,s) \
	__AROS_CALL11NR(t,__AROS_GETVECADDR(bn,o), \
		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), \
		bt,bn)
#define AROS_LVO_CALL11NR __AROS_LVO_CALL11NR
#define __AROS_LVO_CALL12NR(t,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,bt,bn,o,s) \
	__AROS_CALL12NR(t,__AROS_GETVECADDR(bn,o), \
		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), \
		bt,bn)
#define AROS_LVO_CALL12NR __AROS_LVO_CALL12NR
#define __AROS_LVO_CALL13NR(t,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,bt,bn,o,s) \
	__AROS_CALL13NR(t,__AROS_GETVECADDR(bn,o), \
		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), \
		bt,bn)
#define AROS_LVO_CALL13NR __AROS_LVO_CALL13NR

#define __AROS_CPU_SPECIFIC_LD

#define __AROS_LD0(t,n,bt,bn,o,s) \
	__AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s,o) (void)
#define AROS_LD0 __AROS_LD0
#define __AROS_LD1(t,n,a1,bt,bn,o,s) \
	__AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s,o) (void)
#define AROS_LD1 __AROS_LD1
#define __AROS_LD2(t,n,a1,a2,bt,bn,o,s) \
	__AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s,o) (void)
#define AROS_LD2 __AROS_LD2
#define __AROS_LD3(t,n,a1,a2,a3,bt,bn,o,s) \
	__AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s,o) (void)
#define AROS_LD3 __AROS_LD3
#define __AROS_LD4(t,n,a1,a2,a3,a4,bt,bn,o,s) \
	__AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s,o) (void)
#define AROS_LD4 __AROS_LD4
#define __AROS_LD5(t,n,a1,a2,a3,a4,a5,bt,bn,o,s) \
	__AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s,o) (void)
#define AROS_LD5 __AROS_LD5
#define __AROS_LD6(t,n,a1,a2,a3,a4,a5,a6,bt,bn,o,s) \
	__AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s,o) (void)
#define AROS_LD6 __AROS_LD6
#define __AROS_LD7(t,n,a1,a2,a3,a4,a5,a6,a7,bt,bn,o,s) \
	__AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s,o) (void)
#define AROS_LD7 __AROS_LD7
#define __AROS_LD8(t,n,a1,a2,a3,a4,a5,a6,a7,a8,bt,bn,o,s) \
	__AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s,o) (void)
#define AROS_LD8 __AROS_LD8
#define __AROS_LD9(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,bt,bn,o,s) \
	__AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s,o) (void)
#define AROS_LD9 __AROS_LD9
#define __AROS_LD10(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,bt,bn,o,s) \
	__AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s,o) (void)
#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) \
	__AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s,o) (void)
#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) \
	__AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s,o) (void)
#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) \
	__AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s,o) (void)
#define AROS_LD13 __AROS_LD13
#define __AROS_LD0I(t,n,bt,bn,o,s) \
	__AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s,o) (void)
#define AROS_LD0I __AROS_LD0I
#define __AROS_LD1I(t,n,a1,bt,bn,o,s) \
	__AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s,o) (void)
#define AROS_LD1I __AROS_LD1I
#define __AROS_LD2I(t,n,a1,a2,bt,bn,o,s) \
	__AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s,o) (void)
#define AROS_LD2I __AROS_LD2I
#define __AROS_LD3I(t,n,a1,a2,a3,bt,bn,o,s) \
	__AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s,o) (void)
#define AROS_LD3I __AROS_LD3I
#define __AROS_LD4I(t,n,a1,a2,a3,a4,bt,bn,o,s) \
	__AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s,o) (void)
#define AROS_LD4I __AROS_LD4I
#define __AROS_LD5I(t,n,a1,a2,a3,a4,a5,bt,bn,o,s) \
	__AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s,o) (void)
#define AROS_LD5I __AROS_LD5I
#define __AROS_LD6I(t,n,a1,a2,a3,a4,a5,a6,bt,bn,o,s) \
	__AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s,o) (void)
#define AROS_LD6I __AROS_LD6I
#define __AROS_LD7I(t,n,a1,a2,a3,a4,a5,a6,a7,bt,bn,o,s) \
	__AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s,o) (void)
#define AROS_LD7I __AROS_LD7I
#define __AROS_LD8I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,bt,bn,o,s) \
	__AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s,o) (void)
#define AROS_LD8I __AROS_LD8I
#define __AROS_LD9I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,bt,bn,o,s) \
	__AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s,o) (void)
#define AROS_LD9I __AROS_LD9I
#define __AROS_LD10I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,bt,bn,o,s) \
	__AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s,o) (void)
#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) \
	__AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s,o) (void)
#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) \
	__AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s,o) (void)
#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) \
	__AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s,o) (void)
#define AROS_LD13I __AROS_LD13I

/* Get the register from a triplet */
#define __AROS_LRA(type,name,reg)             reg
#define __AROS_LRAQUAD1(type,name,reg1,reg2)  reg1
#define __AROS_LRAQUAD2(type,name,reg1,reg2)  reg2

/* Temporary variables */
#define __AROS_LTA(type,name,reg)             reg##_tmp
#define __AROS_LTAQUAD(type,name,reg1,reg2)   reg1##_##reg2##_tmp
#define __AROS_LTAQUAD1(type,name,reg1,reg2)  reg1##_tmp
#define __AROS_LTAQUAD2(type,name,reg1,reg2)  reg2##_tmp

/* Get the register as a string from the triplet */
#define __AROS_LSA(type,name,reg)             "%"#reg
#define __AROS_LSAQUAD1(type,name,reg1,reg2)  "%"#reg1
#define __AROS_LSAQUAD2(type,name,reg1,reg2)  "%"#reg2

#define __AROS_LHDOUBLE1(t,n,q1,bt,bn,o,s) \
        __AROS_LH2(t,n, \
                AROS_LHA(ULONG, __AROS_LTAQUAD1(q1), __AROS_LRAQUAD1(q1)), \
                AROS_LHA(ULONG, __AROS_LTAQUAD2(q1), __AROS_LRAQUAD2(q1)), \
                bt, bn, o, s) \
                union { \
                        __AROS_LPA2(q1) val; \
                        ULONG reg[2]; \
                } __AROS_LTAQUAD(q1); \
                __AROS_LTAQUAD(q1).reg[0] = __AROS_LTAQUAD1(q1); \
                __AROS_LTAQUAD(q1).reg[1] = __AROS_LTAQUAD2(q1); \
                __AROS_LPA2(q1) __attribute__((unused)) __AROS_LCA2(q1) = __AROS_LTAQUAD(q1).val;

#define AROS_LHDOUBLE1 __AROS_LHDOUBLE1

#define __AROS_LHDOUBLE2(t,n,q1,q2,bt,bn,o,s) \
        __AROS_LH4(t,n, \
                AROS_LHA(ULONG, __AROS_LTAQUAD1(q1), __AROS_LRAQUAD1(q1)), \
                AROS_LHA(ULONG, __AROS_LTAQUAD2(q1), __AROS_LRAQUAD2(q1)), \
                AROS_LHA(ULONG, __AROS_LTAQUAD1(q2), __AROS_LRAQUAD1(q2)), \
                AROS_LHA(ULONG, __AROS_LTAQUAD2(q2), __AROS_LRAQUAD2(q2)), \
                bt, bn, o, s) \
                union { \
                        __AROS_LPA2(q1) val; \
                        ULONG reg[2]; \
                } __AROS_LTAQUAD(q1); \
                union { \
                        __AROS_LPA2(q2) val; \
                        ULONG reg[2]; \
                } __AROS_LTAQUAD(q2); \
                __AROS_LTAQUAD(q1).reg[0] = __AROS_LTAQUAD1(q1); \
                __AROS_LTAQUAD(q1).reg[1] = __AROS_LTAQUAD2(q1); \
                __AROS_LPA2(q1) __attribute__((unused)) __AROS_LCA2(q1) = __AROS_LTAQUAD(q1).val; \
                __AROS_LTAQUAD(q2).reg[0] = __AROS_LTAQUAD1(q2); \
                __AROS_LTAQUAD(q2).reg[1] = __AROS_LTAQUAD2(q2); \
                __AROS_LPA2(q2) __attribute__((unused)) __AROS_LCA2(q2) = __AROS_LTAQUAD(q2).val;

#define AROS_LHDOUBLE2 __AROS_LHDOUBLE2

#define __AROS_LH1DOUBLE2(t,n,a1,q1,q2,bt,bn,o,s) \
        __AROS_LH5(t,n, \
                AROS_LHA(a1), \
                AROS_LHA(ULONG, __AROS_LTAQUAD1(q1), __AROS_LRAQUAD1(q1)), \
                AROS_LHA(ULONG, __AROS_LTAQUAD2(q1), __AROS_LRAQUAD2(q1)), \
                AROS_LHA(ULONG, __AROS_LTAQUAD1(q2), __AROS_LRAQUAD1(q2)), \
                AROS_LHA(ULONG, __AROS_LTAQUAD2(q2), __AROS_LRAQUAD2(q2)), \
                bt, bn, o, s) \
                union { \
                        __AROS_LPA2(q1) val; \
                        ULONG reg[2]; \
                } __AROS_LTAQUAD(q1); \
                union { \
                        __AROS_LPA2(q2) val; \
                        ULONG reg[2]; \
                } __AROS_LTAQUAD(q2); \
                __AROS_LTAQUAD(q1).reg[0] = __AROS_LTAQUAD1(q1); \
                __AROS_LTAQUAD(q1).reg[1] = __AROS_LTAQUAD2(q1); \
                __AROS_LPA2(q1) __attribute__((unused)) __AROS_LCA2(q1) = __AROS_LTAQUAD(q1).val; \
                __AROS_LTAQUAD(q2).reg[0] = __AROS_LTAQUAD1(q2); \
                __AROS_LTAQUAD(q2).reg[1] = __AROS_LTAQUAD2(q2); \
                __AROS_LPA2(q2) __attribute__((unused)) __AROS_LCA2(q2) = __AROS_LTAQUAD(q2).val;

#define AROS_LH1DOUBLE2 __AROS_LH1DOUBLE2

#define __AROS_LH1DOUBLE1(t,n,a1,q1,bt,bn,o,s) \
        __AROS_LH3(t,n, \
                AROS_LHA(a1), \
                AROS_LHA(ULONG, __AROS_LTAQUAD1(q1), __AROS_LRAQUAD1(q1)), \
                AROS_LHA(ULONG, __AROS_LTAQUAD2(q1), __AROS_LRAQUAD2(q1)), \
                bt, bn, o, s) \
                union { \
                        __AROS_LPA2(q1) val; \
                        ULONG reg[2]; \
                } __AROS_LTAQUAD(q1); \
                __AROS_LTAQUAD(q1).reg[0] = __AROS_LTAQUAD1(q1); \
                __AROS_LTAQUAD(q1).reg[1] = __AROS_LTAQUAD2(q1); \
                __AROS_LPA2(q1) __attribute__((unused)) __AROS_LCA2(q1) = __AROS_LTAQUAD(q1).val;

#define AROS_LH1DOUBLE1 __AROS_LH1DOUBLE1

#define __AROS_LH2QUAD1(t,n,a1,a2,q1,bt,bn,o,s) \
        __AROS_LH4(t,n, \
                AROS_LHA(a1), \
                AROS_LHA(a2), \
                AROS_LHA(ULONG, __AROS_LTAQUAD1(q1), __AROS_LRAQUAD1(q1)), \
                AROS_LHA(ULONG, __AROS_LTAQUAD2(q1), __AROS_LRAQUAD2(q1)), \
                bt, bn, o, s) \
                union { \
                        __AROS_LPA2(q1) val; \
                        ULONG reg[2]; \
                } __AROS_LTAQUAD(q1); \
                __AROS_LTAQUAD(q1).reg[0] = __AROS_LTAQUAD1(q1); \
                __AROS_LTAQUAD(q1).reg[1] = __AROS_LTAQUAD2(q1); \
                __AROS_LPA2(q1) __attribute__((unused)) __AROS_LCA2(q1) = __AROS_LTAQUAD(q1).val;

#define AROS_LH2QUAD1 __AROS_LH2QUAD1

#define __AROS_LH3QUAD1(t,n,a1,a2,a3,q1,bt,bn,o,s) \
        __AROS_LH5(t,n, \
                AROS_LHA(a1), \
                AROS_LHA(a2), \
                AROS_LHA(a3), \
                AROS_LHA(ULONG, __AROS_LTAQUAD1(q1), __AROS_LRAQUAD1(q1)), \
                AROS_LHA(ULONG, __AROS_LTAQUAD2(q1), __AROS_LRAQUAD2(q1)), \
                bt, bn, o, s) \
                union { \
                        __AROS_LPA2(q1) val; \
                        ULONG reg[2]; \
                } __AROS_LTAQUAD(q1); \
                __AROS_LTAQUAD(q1).reg[0] = __AROS_LTAQUAD1(q1); \
                __AROS_LTAQUAD(q1).reg[1] = __AROS_LTAQUAD2(q1); \
                __AROS_LPA2(q1) __attribute__((unused)) __AROS_LCA2(q1) = __AROS_LTAQUAD(q1).val;

#define AROS_LH3QUAD1 __AROS_LH3QUAD1

#define __AROS_LCDOUBLE1(t,n,q1,bt,bn,o,s) \
        ({ \
                union { \
                        __AROS_LPA2(q1) val; \
                        ULONG reg[2]; \
                } _q1 = { .val = __AROS_LCA2(q1) }; \
                __AROS_LC2##t(t, n,  \
                        AROS_LCA(ULONG, _q1.reg[0], __AROS_LRAQUAD1(q1)), \
                        AROS_LCA(ULONG, _q1.reg[1], __AROS_LRAQUAD2(q1)), \
                        bt, bn, o, s); \
         })

#define AROS_LCDOUBLE1 __AROS_LCDOUBLE1

#define __AROS_LCDOUBLE2(t,n,q1,q2,bt,bn,o,s) \
        ({ \
                union { \
                        __AROS_LPA2(q1) val; \
                        ULONG reg[2]; \
                } _q1 = { .val = __AROS_LCA2(q1) }; \
                union { \
                        __AROS_LPA2(q2) val; \
                        ULONG reg[2]; \
                } _q2 = { .val = __AROS_LCA2(q2) }; \
                __AROS_LC4##t(t, n,  \
                        AROS_LCA(ULONG, _q1.reg[0], __AROS_LRAQUAD1(q1)), \
                        AROS_LCA(ULONG, _q1.reg[1], __AROS_LRAQUAD2(q1)), \
                        AROS_LCA(ULONG, _q2.reg[0], __AROS_LRAQUAD1(q2)), \
                        AROS_LCA(ULONG, _q2.reg[1], __AROS_LRAQUAD2(q2)), \
                        bt, bn, o, s); \
         })

#define AROS_LCDOUBLE2 __AROS_LCDOUBLE2

#define __AROS_LC1DOUBLE1(t,n,a1,q1,bt,bn,o,s) \
        ({ \
                union { \
                        __AROS_LPA2(q1) val; \
                        ULONG reg[2]; \
                } _q1 = { .val = __AROS_LCA2(q1) }; \
                __AROS_LC3##t(t, n,  \
                        AROS_LCA(a1), \
                        AROS_LCA(ULONG, _q1.reg[0], __AROS_LRAQUAD1(q1)), \
                        AROS_LCA(ULONG, _q1.reg[1], __AROS_LRAQUAD2(q1)), \
                        bt, bn, o, s); \
         })

#define AROS_LC1DOUBLE1 __AROS_LC1DOUBLE1

#define __AROS_LC2QUAD1(t,n,a1,a2,q1,bt,bn,o,s) \
        ({ \
                union { \
                        __AROS_LPA2(q1) val; \
                        ULONG reg[2]; \
                } _q1 = { .val = __AROS_LCA2(q1) }; \
                __AROS_LC4##t(t, n,  \
                        AROS_LCA(a1), \
                        AROS_LCA(a2), \
                        AROS_LCA(ULONG, _q1.reg[0], __AROS_LRAQUAD1(q1)), \
                        AROS_LCA(ULONG, _q1.reg[1], __AROS_LRAQUAD2(q1)), \
                        bt, bn, o, s); \
         })

#define AROS_LC2QUAD1 __AROS_LC2QUAD1

#define __AROS_LC3QUAD1(t,n,a1,a2,a3,q1,bt,bn,o,s) \
        ({ \
                union { \
                        __AROS_LPA2(q1) val; \
                        ULONG reg[2]; \
                } _q1 = { .val = __AROS_LCA2(q1) }; \
                __AROS_LC5##t(t, n,  \
                        AROS_LCA(a1), \
                        AROS_LCA(a2), \
                        AROS_LCA(a3), \
                        AROS_LCA(ULONG, _q1.reg[0], __AROS_LRAQUAD1(q1)), \
                        AROS_LCA(ULONG, _q1.reg[1], __AROS_LRAQUAD2(q1)), \
                        bt, bn, o, s); \
         })

#define AROS_LC3QUAD1 __AROS_LC3QUAD1

#define __AROS_LC2double __AROS_LC2D
#define __AROS_LC3double __AROS_LC3D
#define __AROS_LC4double __AROS_LC4D
#define __AROS_LC2LONG   __AROS_LC2
#define __AROS_LC3LONG   __AROS_LC3
#define __AROS_LC4LONG   __AROS_LC4
#define __AROS_LC5LONG   __AROS_LC5

#   define AROS_LDDOUBLE1(t,n,q1,bt,bn,o,s) \
        __AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s,o) ( \
        __AROS_LDA2(q1), __AROS_LD_BASE(bt,bn))
#   define AROS_LDDOUBLE2(t,n,q1,q2,bt,bn,o,s) \
        __AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s,o) ( \
        __AROS_LDA2(q1), \
        __AROS_LDA2(q2),__AROS_LD_BASE(bt,bn))

#define AROS_LPDOUBLE1(t,n,q1,bt,bn,o,s) \
                t n (__AROS_LPA2(q1))
#define AROS_LPDOUBLE2(t,n,q1,q2,bt,bn,o,s) \
                t n (__AROS_LPA2(q1), __AROS_LPA2(q2))

#endif /* AROS_M68K_LIBCALL_H */
