/* AUTOGENERATED by arch/m68k-all/include/gencall.c */
/* If you can get this to work for anything other   */
/* than gcc-4.5.1 m68k-elf, it would be surprising. */

#ifndef AROS_M68K_LIBCALL_H
#define AROS_M68K_LIBCALL_H

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

#define __AROS_CPU_SPECIFIC_ASMCALLS

#define AROS_UFP0(t,n) \
	t n (void)
#define AROS_UFP1(t,n,a1) \
	t n (void)
#define AROS_UFP2(t,n,a1,a2) \
	t n (void)
#define AROS_UFP3(t,n,a1,a2,a3) \
	t n (void)
#define AROS_UFP4(t,n,a1,a2,a3,a4) \
	t n (void)
#define AROS_UFP5(t,n,a1,a2,a3,a4,a5) \
	t n (void)
#define AROS_UFP6(t,n,a1,a2,a3,a4,a5,a6) \
	t n (void)
#define AROS_UFP7(t,n,a1,a2,a3,a4,a5,a6,a7) \
	t n (void)
#define AROS_UFP8(t,n,a1,a2,a3,a4,a5,a6,a7,a8) \
	t n (void)
#define AROS_UFP9(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9) \
	t n (void)
#define AROS_UFP10(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10) \
	t n (void)
#define AROS_UFP11(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11) \
	t n (void)
#define AROS_UFP12(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12) \
	t n (void)
#define AROS_UFP13(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13) \
	t n (void)
#define AROS_UFP0S(t,n) \
	static t n (void)
#define AROS_UFP1S(t,n,a1) \
	static t n (void)
#define AROS_UFP2S(t,n,a1,a2) \
	static t n (void)
#define AROS_UFP3S(t,n,a1,a2,a3) \
	static t n (void)
#define AROS_UFP4S(t,n,a1,a2,a3,a4) \
	static t n (void)
#define AROS_UFP5S(t,n,a1,a2,a3,a4,a5) \
	static t n (void)
#define AROS_UFP6S(t,n,a1,a2,a3,a4,a5,a6) \
	static t n (void)
#define AROS_UFP7S(t,n,a1,a2,a3,a4,a5,a6,a7) \
	static t n (void)
#define AROS_UFP8S(t,n,a1,a2,a3,a4,a5,a6,a7,a8) \
	static t n (void)
#define AROS_UFP9S(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9) \
	static t n (void)
#define AROS_UFP10S(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10) \
	static t n (void)
#define AROS_UFP11S(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11) \
	static t n (void)
#define AROS_UFP12S(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12) \
	static t n (void)
#define AROS_UFP13S(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13) \
	static t n (void)
#define AROS_UFH0(t,n) \
	t n (void) {

#define AROS_UFH1(t,n,a1) \
	t n (void) { \
 \
	__AROS_UFPA(a1) __attribute__((unused)) __AROS_UFCA(a1) = __AROS_ISREG(a1,__AROS_FP_REG) ? (__AROS_UFPA(a1))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a1));(__AROS_UFPA(a1))__r;});
#define AROS_UFH2(t,n,a1,a2) \
	t n (void) { \
 \
	__AROS_UFPA(a1) __attribute__((unused)) __AROS_UFCA(a1) = __AROS_ISREG(a1,__AROS_FP_REG) ? (__AROS_UFPA(a1))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a1));(__AROS_UFPA(a1))__r;}); \
	__AROS_UFPA(a2) __attribute__((unused)) __AROS_UFCA(a2) = __AROS_ISREG(a2,__AROS_FP_REG) ? (__AROS_UFPA(a2))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a2));(__AROS_UFPA(a2))__r;});
#define AROS_UFH3(t,n,a1,a2,a3) \
	t n (void) { \
 \
	__AROS_UFPA(a1) __attribute__((unused)) __AROS_UFCA(a1) = __AROS_ISREG(a1,__AROS_FP_REG) ? (__AROS_UFPA(a1))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a1));(__AROS_UFPA(a1))__r;}); \
	__AROS_UFPA(a2) __attribute__((unused)) __AROS_UFCA(a2) = __AROS_ISREG(a2,__AROS_FP_REG) ? (__AROS_UFPA(a2))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a2));(__AROS_UFPA(a2))__r;}); \
	__AROS_UFPA(a3) __attribute__((unused)) __AROS_UFCA(a3) = __AROS_ISREG(a3,__AROS_FP_REG) ? (__AROS_UFPA(a3))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a3));(__AROS_UFPA(a3))__r;});
#define AROS_UFH4(t,n,a1,a2,a3,a4) \
	t n (void) { \
 \
	__AROS_UFPA(a1) __attribute__((unused)) __AROS_UFCA(a1) = __AROS_ISREG(a1,__AROS_FP_REG) ? (__AROS_UFPA(a1))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a1));(__AROS_UFPA(a1))__r;}); \
	__AROS_UFPA(a2) __attribute__((unused)) __AROS_UFCA(a2) = __AROS_ISREG(a2,__AROS_FP_REG) ? (__AROS_UFPA(a2))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a2));(__AROS_UFPA(a2))__r;}); \
	__AROS_UFPA(a3) __attribute__((unused)) __AROS_UFCA(a3) = __AROS_ISREG(a3,__AROS_FP_REG) ? (__AROS_UFPA(a3))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a3));(__AROS_UFPA(a3))__r;}); \
	__AROS_UFPA(a4) __attribute__((unused)) __AROS_UFCA(a4) = __AROS_ISREG(a4,__AROS_FP_REG) ? (__AROS_UFPA(a4))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a4));(__AROS_UFPA(a4))__r;});
#define AROS_UFH5(t,n,a1,a2,a3,a4,a5) \
	t n (void) { \
 \
	__AROS_UFPA(a1) __attribute__((unused)) __AROS_UFCA(a1) = __AROS_ISREG(a1,__AROS_FP_REG) ? (__AROS_UFPA(a1))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a1));(__AROS_UFPA(a1))__r;}); \
	__AROS_UFPA(a2) __attribute__((unused)) __AROS_UFCA(a2) = __AROS_ISREG(a2,__AROS_FP_REG) ? (__AROS_UFPA(a2))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a2));(__AROS_UFPA(a2))__r;}); \
	__AROS_UFPA(a3) __attribute__((unused)) __AROS_UFCA(a3) = __AROS_ISREG(a3,__AROS_FP_REG) ? (__AROS_UFPA(a3))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a3));(__AROS_UFPA(a3))__r;}); \
	__AROS_UFPA(a4) __attribute__((unused)) __AROS_UFCA(a4) = __AROS_ISREG(a4,__AROS_FP_REG) ? (__AROS_UFPA(a4))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a4));(__AROS_UFPA(a4))__r;}); \
	__AROS_UFPA(a5) __attribute__((unused)) __AROS_UFCA(a5) = __AROS_ISREG(a5,__AROS_FP_REG) ? (__AROS_UFPA(a5))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a5));(__AROS_UFPA(a5))__r;});
#define AROS_UFH6(t,n,a1,a2,a3,a4,a5,a6) \
	t n (void) { \
 \
	__AROS_UFPA(a1) __attribute__((unused)) __AROS_UFCA(a1) = __AROS_ISREG(a1,__AROS_FP_REG) ? (__AROS_UFPA(a1))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a1));(__AROS_UFPA(a1))__r;}); \
	__AROS_UFPA(a2) __attribute__((unused)) __AROS_UFCA(a2) = __AROS_ISREG(a2,__AROS_FP_REG) ? (__AROS_UFPA(a2))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a2));(__AROS_UFPA(a2))__r;}); \
	__AROS_UFPA(a3) __attribute__((unused)) __AROS_UFCA(a3) = __AROS_ISREG(a3,__AROS_FP_REG) ? (__AROS_UFPA(a3))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a3));(__AROS_UFPA(a3))__r;}); \
	__AROS_UFPA(a4) __attribute__((unused)) __AROS_UFCA(a4) = __AROS_ISREG(a4,__AROS_FP_REG) ? (__AROS_UFPA(a4))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a4));(__AROS_UFPA(a4))__r;}); \
	__AROS_UFPA(a5) __attribute__((unused)) __AROS_UFCA(a5) = __AROS_ISREG(a5,__AROS_FP_REG) ? (__AROS_UFPA(a5))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a5));(__AROS_UFPA(a5))__r;}); \
	__AROS_UFPA(a6) __attribute__((unused)) __AROS_UFCA(a6) = __AROS_ISREG(a6,__AROS_FP_REG) ? (__AROS_UFPA(a6))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a6));(__AROS_UFPA(a6))__r;});
#define AROS_UFH7(t,n,a1,a2,a3,a4,a5,a6,a7) \
	t n (void) { \
 \
	__AROS_UFPA(a1) __attribute__((unused)) __AROS_UFCA(a1) = __AROS_ISREG(a1,__AROS_FP_REG) ? (__AROS_UFPA(a1))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a1));(__AROS_UFPA(a1))__r;}); \
	__AROS_UFPA(a2) __attribute__((unused)) __AROS_UFCA(a2) = __AROS_ISREG(a2,__AROS_FP_REG) ? (__AROS_UFPA(a2))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a2));(__AROS_UFPA(a2))__r;}); \
	__AROS_UFPA(a3) __attribute__((unused)) __AROS_UFCA(a3) = __AROS_ISREG(a3,__AROS_FP_REG) ? (__AROS_UFPA(a3))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a3));(__AROS_UFPA(a3))__r;}); \
	__AROS_UFPA(a4) __attribute__((unused)) __AROS_UFCA(a4) = __AROS_ISREG(a4,__AROS_FP_REG) ? (__AROS_UFPA(a4))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a4));(__AROS_UFPA(a4))__r;}); \
	__AROS_UFPA(a5) __attribute__((unused)) __AROS_UFCA(a5) = __AROS_ISREG(a5,__AROS_FP_REG) ? (__AROS_UFPA(a5))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a5));(__AROS_UFPA(a5))__r;}); \
	__AROS_UFPA(a6) __attribute__((unused)) __AROS_UFCA(a6) = __AROS_ISREG(a6,__AROS_FP_REG) ? (__AROS_UFPA(a6))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a6));(__AROS_UFPA(a6))__r;}); \
	__AROS_UFPA(a7) __attribute__((unused)) __AROS_UFCA(a7) = __AROS_ISREG(a7,__AROS_FP_REG) ? (__AROS_UFPA(a7))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a7));(__AROS_UFPA(a7))__r;});
#define AROS_UFH8(t,n,a1,a2,a3,a4,a5,a6,a7,a8) \
	t n (void) { \
 \
	__AROS_UFPA(a1) __attribute__((unused)) __AROS_UFCA(a1) = __AROS_ISREG(a1,__AROS_FP_REG) ? (__AROS_UFPA(a1))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a1));(__AROS_UFPA(a1))__r;}); \
	__AROS_UFPA(a2) __attribute__((unused)) __AROS_UFCA(a2) = __AROS_ISREG(a2,__AROS_FP_REG) ? (__AROS_UFPA(a2))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a2));(__AROS_UFPA(a2))__r;}); \
	__AROS_UFPA(a3) __attribute__((unused)) __AROS_UFCA(a3) = __AROS_ISREG(a3,__AROS_FP_REG) ? (__AROS_UFPA(a3))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a3));(__AROS_UFPA(a3))__r;}); \
	__AROS_UFPA(a4) __attribute__((unused)) __AROS_UFCA(a4) = __AROS_ISREG(a4,__AROS_FP_REG) ? (__AROS_UFPA(a4))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a4));(__AROS_UFPA(a4))__r;}); \
	__AROS_UFPA(a5) __attribute__((unused)) __AROS_UFCA(a5) = __AROS_ISREG(a5,__AROS_FP_REG) ? (__AROS_UFPA(a5))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a5));(__AROS_UFPA(a5))__r;}); \
	__AROS_UFPA(a6) __attribute__((unused)) __AROS_UFCA(a6) = __AROS_ISREG(a6,__AROS_FP_REG) ? (__AROS_UFPA(a6))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a6));(__AROS_UFPA(a6))__r;}); \
	__AROS_UFPA(a7) __attribute__((unused)) __AROS_UFCA(a7) = __AROS_ISREG(a7,__AROS_FP_REG) ? (__AROS_UFPA(a7))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a7));(__AROS_UFPA(a7))__r;}); \
	__AROS_UFPA(a8) __attribute__((unused)) __AROS_UFCA(a8) = __AROS_ISREG(a8,__AROS_FP_REG) ? (__AROS_UFPA(a8))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a8));(__AROS_UFPA(a8))__r;});
#define AROS_UFH9(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9) \
	t n (void) { \
 \
	__AROS_UFPA(a1) __attribute__((unused)) __AROS_UFCA(a1) = __AROS_ISREG(a1,__AROS_FP_REG) ? (__AROS_UFPA(a1))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a1));(__AROS_UFPA(a1))__r;}); \
	__AROS_UFPA(a2) __attribute__((unused)) __AROS_UFCA(a2) = __AROS_ISREG(a2,__AROS_FP_REG) ? (__AROS_UFPA(a2))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a2));(__AROS_UFPA(a2))__r;}); \
	__AROS_UFPA(a3) __attribute__((unused)) __AROS_UFCA(a3) = __AROS_ISREG(a3,__AROS_FP_REG) ? (__AROS_UFPA(a3))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a3));(__AROS_UFPA(a3))__r;}); \
	__AROS_UFPA(a4) __attribute__((unused)) __AROS_UFCA(a4) = __AROS_ISREG(a4,__AROS_FP_REG) ? (__AROS_UFPA(a4))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a4));(__AROS_UFPA(a4))__r;}); \
	__AROS_UFPA(a5) __attribute__((unused)) __AROS_UFCA(a5) = __AROS_ISREG(a5,__AROS_FP_REG) ? (__AROS_UFPA(a5))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a5));(__AROS_UFPA(a5))__r;}); \
	__AROS_UFPA(a6) __attribute__((unused)) __AROS_UFCA(a6) = __AROS_ISREG(a6,__AROS_FP_REG) ? (__AROS_UFPA(a6))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a6));(__AROS_UFPA(a6))__r;}); \
	__AROS_UFPA(a7) __attribute__((unused)) __AROS_UFCA(a7) = __AROS_ISREG(a7,__AROS_FP_REG) ? (__AROS_UFPA(a7))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a7));(__AROS_UFPA(a7))__r;}); \
	__AROS_UFPA(a8) __attribute__((unused)) __AROS_UFCA(a8) = __AROS_ISREG(a8,__AROS_FP_REG) ? (__AROS_UFPA(a8))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a8));(__AROS_UFPA(a8))__r;}); \
	__AROS_UFPA(a9) __attribute__((unused)) __AROS_UFCA(a9) = __AROS_ISREG(a9,__AROS_FP_REG) ? (__AROS_UFPA(a9))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a9));(__AROS_UFPA(a9))__r;});
#define AROS_UFH10(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10) \
	t n (void) { \
 \
	__AROS_UFPA(a1) __attribute__((unused)) __AROS_UFCA(a1) = __AROS_ISREG(a1,__AROS_FP_REG) ? (__AROS_UFPA(a1))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a1));(__AROS_UFPA(a1))__r;}); \
	__AROS_UFPA(a2) __attribute__((unused)) __AROS_UFCA(a2) = __AROS_ISREG(a2,__AROS_FP_REG) ? (__AROS_UFPA(a2))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a2));(__AROS_UFPA(a2))__r;}); \
	__AROS_UFPA(a3) __attribute__((unused)) __AROS_UFCA(a3) = __AROS_ISREG(a3,__AROS_FP_REG) ? (__AROS_UFPA(a3))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a3));(__AROS_UFPA(a3))__r;}); \
	__AROS_UFPA(a4) __attribute__((unused)) __AROS_UFCA(a4) = __AROS_ISREG(a4,__AROS_FP_REG) ? (__AROS_UFPA(a4))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a4));(__AROS_UFPA(a4))__r;}); \
	__AROS_UFPA(a5) __attribute__((unused)) __AROS_UFCA(a5) = __AROS_ISREG(a5,__AROS_FP_REG) ? (__AROS_UFPA(a5))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a5));(__AROS_UFPA(a5))__r;}); \
	__AROS_UFPA(a6) __attribute__((unused)) __AROS_UFCA(a6) = __AROS_ISREG(a6,__AROS_FP_REG) ? (__AROS_UFPA(a6))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a6));(__AROS_UFPA(a6))__r;}); \
	__AROS_UFPA(a7) __attribute__((unused)) __AROS_UFCA(a7) = __AROS_ISREG(a7,__AROS_FP_REG) ? (__AROS_UFPA(a7))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a7));(__AROS_UFPA(a7))__r;}); \
	__AROS_UFPA(a8) __attribute__((unused)) __AROS_UFCA(a8) = __AROS_ISREG(a8,__AROS_FP_REG) ? (__AROS_UFPA(a8))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a8));(__AROS_UFPA(a8))__r;}); \
	__AROS_UFPA(a9) __attribute__((unused)) __AROS_UFCA(a9) = __AROS_ISREG(a9,__AROS_FP_REG) ? (__AROS_UFPA(a9))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a9));(__AROS_UFPA(a9))__r;}); \
	__AROS_UFPA(a10) __attribute__((unused)) __AROS_UFCA(a10) = __AROS_ISREG(a10,__AROS_FP_REG) ? (__AROS_UFPA(a10))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a10));(__AROS_UFPA(a10))__r;});
#define AROS_UFH11(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11) \
	t n (void) { \
 \
	__AROS_UFPA(a1) __attribute__((unused)) __AROS_UFCA(a1) = __AROS_ISREG(a1,__AROS_FP_REG) ? (__AROS_UFPA(a1))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a1));(__AROS_UFPA(a1))__r;}); \
	__AROS_UFPA(a2) __attribute__((unused)) __AROS_UFCA(a2) = __AROS_ISREG(a2,__AROS_FP_REG) ? (__AROS_UFPA(a2))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a2));(__AROS_UFPA(a2))__r;}); \
	__AROS_UFPA(a3) __attribute__((unused)) __AROS_UFCA(a3) = __AROS_ISREG(a3,__AROS_FP_REG) ? (__AROS_UFPA(a3))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a3));(__AROS_UFPA(a3))__r;}); \
	__AROS_UFPA(a4) __attribute__((unused)) __AROS_UFCA(a4) = __AROS_ISREG(a4,__AROS_FP_REG) ? (__AROS_UFPA(a4))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a4));(__AROS_UFPA(a4))__r;}); \
	__AROS_UFPA(a5) __attribute__((unused)) __AROS_UFCA(a5) = __AROS_ISREG(a5,__AROS_FP_REG) ? (__AROS_UFPA(a5))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a5));(__AROS_UFPA(a5))__r;}); \
	__AROS_UFPA(a6) __attribute__((unused)) __AROS_UFCA(a6) = __AROS_ISREG(a6,__AROS_FP_REG) ? (__AROS_UFPA(a6))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a6));(__AROS_UFPA(a6))__r;}); \
	__AROS_UFPA(a7) __attribute__((unused)) __AROS_UFCA(a7) = __AROS_ISREG(a7,__AROS_FP_REG) ? (__AROS_UFPA(a7))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a7));(__AROS_UFPA(a7))__r;}); \
	__AROS_UFPA(a8) __attribute__((unused)) __AROS_UFCA(a8) = __AROS_ISREG(a8,__AROS_FP_REG) ? (__AROS_UFPA(a8))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a8));(__AROS_UFPA(a8))__r;}); \
	__AROS_UFPA(a9) __attribute__((unused)) __AROS_UFCA(a9) = __AROS_ISREG(a9,__AROS_FP_REG) ? (__AROS_UFPA(a9))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a9));(__AROS_UFPA(a9))__r;}); \
	__AROS_UFPA(a10) __attribute__((unused)) __AROS_UFCA(a10) = __AROS_ISREG(a10,__AROS_FP_REG) ? (__AROS_UFPA(a10))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a10));(__AROS_UFPA(a10))__r;}); \
	__AROS_UFPA(a11) __attribute__((unused)) __AROS_UFCA(a11) = __AROS_ISREG(a11,__AROS_FP_REG) ? (__AROS_UFPA(a11))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a11));(__AROS_UFPA(a11))__r;});
#define AROS_UFH12(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12) \
	t n (void) { \
 \
	__AROS_UFPA(a1) __attribute__((unused)) __AROS_UFCA(a1) = __AROS_ISREG(a1,__AROS_FP_REG) ? (__AROS_UFPA(a1))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a1));(__AROS_UFPA(a1))__r;}); \
	__AROS_UFPA(a2) __attribute__((unused)) __AROS_UFCA(a2) = __AROS_ISREG(a2,__AROS_FP_REG) ? (__AROS_UFPA(a2))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a2));(__AROS_UFPA(a2))__r;}); \
	__AROS_UFPA(a3) __attribute__((unused)) __AROS_UFCA(a3) = __AROS_ISREG(a3,__AROS_FP_REG) ? (__AROS_UFPA(a3))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a3));(__AROS_UFPA(a3))__r;}); \
	__AROS_UFPA(a4) __attribute__((unused)) __AROS_UFCA(a4) = __AROS_ISREG(a4,__AROS_FP_REG) ? (__AROS_UFPA(a4))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a4));(__AROS_UFPA(a4))__r;}); \
	__AROS_UFPA(a5) __attribute__((unused)) __AROS_UFCA(a5) = __AROS_ISREG(a5,__AROS_FP_REG) ? (__AROS_UFPA(a5))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a5));(__AROS_UFPA(a5))__r;}); \
	__AROS_UFPA(a6) __attribute__((unused)) __AROS_UFCA(a6) = __AROS_ISREG(a6,__AROS_FP_REG) ? (__AROS_UFPA(a6))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a6));(__AROS_UFPA(a6))__r;}); \
	__AROS_UFPA(a7) __attribute__((unused)) __AROS_UFCA(a7) = __AROS_ISREG(a7,__AROS_FP_REG) ? (__AROS_UFPA(a7))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a7));(__AROS_UFPA(a7))__r;}); \
	__AROS_UFPA(a8) __attribute__((unused)) __AROS_UFCA(a8) = __AROS_ISREG(a8,__AROS_FP_REG) ? (__AROS_UFPA(a8))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a8));(__AROS_UFPA(a8))__r;}); \
	__AROS_UFPA(a9) __attribute__((unused)) __AROS_UFCA(a9) = __AROS_ISREG(a9,__AROS_FP_REG) ? (__AROS_UFPA(a9))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a9));(__AROS_UFPA(a9))__r;}); \
	__AROS_UFPA(a10) __attribute__((unused)) __AROS_UFCA(a10) = __AROS_ISREG(a10,__AROS_FP_REG) ? (__AROS_UFPA(a10))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a10));(__AROS_UFPA(a10))__r;}); \
	__AROS_UFPA(a11) __attribute__((unused)) __AROS_UFCA(a11) = __AROS_ISREG(a11,__AROS_FP_REG) ? (__AROS_UFPA(a11))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a11));(__AROS_UFPA(a11))__r;}); \
	__AROS_UFPA(a12) __attribute__((unused)) __AROS_UFCA(a12) = __AROS_ISREG(a12,__AROS_FP_REG) ? (__AROS_UFPA(a12))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a12));(__AROS_UFPA(a12))__r;});
#define AROS_UFH13(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13) \
	t n (void) { \
 \
	__AROS_UFPA(a1) __attribute__((unused)) __AROS_UFCA(a1) = __AROS_ISREG(a1,__AROS_FP_REG) ? (__AROS_UFPA(a1))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a1));(__AROS_UFPA(a1))__r;}); \
	__AROS_UFPA(a2) __attribute__((unused)) __AROS_UFCA(a2) = __AROS_ISREG(a2,__AROS_FP_REG) ? (__AROS_UFPA(a2))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a2));(__AROS_UFPA(a2))__r;}); \
	__AROS_UFPA(a3) __attribute__((unused)) __AROS_UFCA(a3) = __AROS_ISREG(a3,__AROS_FP_REG) ? (__AROS_UFPA(a3))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a3));(__AROS_UFPA(a3))__r;}); \
	__AROS_UFPA(a4) __attribute__((unused)) __AROS_UFCA(a4) = __AROS_ISREG(a4,__AROS_FP_REG) ? (__AROS_UFPA(a4))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a4));(__AROS_UFPA(a4))__r;}); \
	__AROS_UFPA(a5) __attribute__((unused)) __AROS_UFCA(a5) = __AROS_ISREG(a5,__AROS_FP_REG) ? (__AROS_UFPA(a5))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a5));(__AROS_UFPA(a5))__r;}); \
	__AROS_UFPA(a6) __attribute__((unused)) __AROS_UFCA(a6) = __AROS_ISREG(a6,__AROS_FP_REG) ? (__AROS_UFPA(a6))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a6));(__AROS_UFPA(a6))__r;}); \
	__AROS_UFPA(a7) __attribute__((unused)) __AROS_UFCA(a7) = __AROS_ISREG(a7,__AROS_FP_REG) ? (__AROS_UFPA(a7))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a7));(__AROS_UFPA(a7))__r;}); \
	__AROS_UFPA(a8) __attribute__((unused)) __AROS_UFCA(a8) = __AROS_ISREG(a8,__AROS_FP_REG) ? (__AROS_UFPA(a8))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a8));(__AROS_UFPA(a8))__r;}); \
	__AROS_UFPA(a9) __attribute__((unused)) __AROS_UFCA(a9) = __AROS_ISREG(a9,__AROS_FP_REG) ? (__AROS_UFPA(a9))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a9));(__AROS_UFPA(a9))__r;}); \
	__AROS_UFPA(a10) __attribute__((unused)) __AROS_UFCA(a10) = __AROS_ISREG(a10,__AROS_FP_REG) ? (__AROS_UFPA(a10))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a10));(__AROS_UFPA(a10))__r;}); \
	__AROS_UFPA(a11) __attribute__((unused)) __AROS_UFCA(a11) = __AROS_ISREG(a11,__AROS_FP_REG) ? (__AROS_UFPA(a11))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a11));(__AROS_UFPA(a11))__r;}); \
	__AROS_UFPA(a12) __attribute__((unused)) __AROS_UFCA(a12) = __AROS_ISREG(a12,__AROS_FP_REG) ? (__AROS_UFPA(a12))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a12));(__AROS_UFPA(a12))__r;}); \
	__AROS_UFPA(a13) __attribute__((unused)) __AROS_UFCA(a13) = __AROS_ISREG(a13,__AROS_FP_REG) ? (__AROS_UFPA(a13))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a13));(__AROS_UFPA(a13))__r;});
#define AROS_UFH0S(t,n) \
	static t n (void) {

#define AROS_UFH1S(t,n,a1) \
	static t n (void) { \
 \
	__AROS_UFPA(a1) __attribute__((unused)) __AROS_UFCA(a1) = __AROS_ISREG(a1,__AROS_FP_REG) ? (__AROS_UFPA(a1))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a1));(__AROS_UFPA(a1))__r;});
#define AROS_UFH2S(t,n,a1,a2) \
	static t n (void) { \
 \
	__AROS_UFPA(a1) __attribute__((unused)) __AROS_UFCA(a1) = __AROS_ISREG(a1,__AROS_FP_REG) ? (__AROS_UFPA(a1))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a1));(__AROS_UFPA(a1))__r;}); \
	__AROS_UFPA(a2) __attribute__((unused)) __AROS_UFCA(a2) = __AROS_ISREG(a2,__AROS_FP_REG) ? (__AROS_UFPA(a2))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a2));(__AROS_UFPA(a2))__r;});
#define AROS_UFH3S(t,n,a1,a2,a3) \
	static t n (void) { \
 \
	__AROS_UFPA(a1) __attribute__((unused)) __AROS_UFCA(a1) = __AROS_ISREG(a1,__AROS_FP_REG) ? (__AROS_UFPA(a1))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a1));(__AROS_UFPA(a1))__r;}); \
	__AROS_UFPA(a2) __attribute__((unused)) __AROS_UFCA(a2) = __AROS_ISREG(a2,__AROS_FP_REG) ? (__AROS_UFPA(a2))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a2));(__AROS_UFPA(a2))__r;}); \
	__AROS_UFPA(a3) __attribute__((unused)) __AROS_UFCA(a3) = __AROS_ISREG(a3,__AROS_FP_REG) ? (__AROS_UFPA(a3))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a3));(__AROS_UFPA(a3))__r;});
#define AROS_UFH4S(t,n,a1,a2,a3,a4) \
	static t n (void) { \
 \
	__AROS_UFPA(a1) __attribute__((unused)) __AROS_UFCA(a1) = __AROS_ISREG(a1,__AROS_FP_REG) ? (__AROS_UFPA(a1))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a1));(__AROS_UFPA(a1))__r;}); \
	__AROS_UFPA(a2) __attribute__((unused)) __AROS_UFCA(a2) = __AROS_ISREG(a2,__AROS_FP_REG) ? (__AROS_UFPA(a2))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a2));(__AROS_UFPA(a2))__r;}); \
	__AROS_UFPA(a3) __attribute__((unused)) __AROS_UFCA(a3) = __AROS_ISREG(a3,__AROS_FP_REG) ? (__AROS_UFPA(a3))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a3));(__AROS_UFPA(a3))__r;}); \
	__AROS_UFPA(a4) __attribute__((unused)) __AROS_UFCA(a4) = __AROS_ISREG(a4,__AROS_FP_REG) ? (__AROS_UFPA(a4))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a4));(__AROS_UFPA(a4))__r;});
#define AROS_UFH5S(t,n,a1,a2,a3,a4,a5) \
	static t n (void) { \
 \
	__AROS_UFPA(a1) __attribute__((unused)) __AROS_UFCA(a1) = __AROS_ISREG(a1,__AROS_FP_REG) ? (__AROS_UFPA(a1))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a1));(__AROS_UFPA(a1))__r;}); \
	__AROS_UFPA(a2) __attribute__((unused)) __AROS_UFCA(a2) = __AROS_ISREG(a2,__AROS_FP_REG) ? (__AROS_UFPA(a2))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a2));(__AROS_UFPA(a2))__r;}); \
	__AROS_UFPA(a3) __attribute__((unused)) __AROS_UFCA(a3) = __AROS_ISREG(a3,__AROS_FP_REG) ? (__AROS_UFPA(a3))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a3));(__AROS_UFPA(a3))__r;}); \
	__AROS_UFPA(a4) __attribute__((unused)) __AROS_UFCA(a4) = __AROS_ISREG(a4,__AROS_FP_REG) ? (__AROS_UFPA(a4))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a4));(__AROS_UFPA(a4))__r;}); \
	__AROS_UFPA(a5) __attribute__((unused)) __AROS_UFCA(a5) = __AROS_ISREG(a5,__AROS_FP_REG) ? (__AROS_UFPA(a5))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a5));(__AROS_UFPA(a5))__r;});
#define AROS_UFH6S(t,n,a1,a2,a3,a4,a5,a6) \
	static t n (void) { \
 \
	__AROS_UFPA(a1) __attribute__((unused)) __AROS_UFCA(a1) = __AROS_ISREG(a1,__AROS_FP_REG) ? (__AROS_UFPA(a1))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a1));(__AROS_UFPA(a1))__r;}); \
	__AROS_UFPA(a2) __attribute__((unused)) __AROS_UFCA(a2) = __AROS_ISREG(a2,__AROS_FP_REG) ? (__AROS_UFPA(a2))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a2));(__AROS_UFPA(a2))__r;}); \
	__AROS_UFPA(a3) __attribute__((unused)) __AROS_UFCA(a3) = __AROS_ISREG(a3,__AROS_FP_REG) ? (__AROS_UFPA(a3))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a3));(__AROS_UFPA(a3))__r;}); \
	__AROS_UFPA(a4) __attribute__((unused)) __AROS_UFCA(a4) = __AROS_ISREG(a4,__AROS_FP_REG) ? (__AROS_UFPA(a4))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a4));(__AROS_UFPA(a4))__r;}); \
	__AROS_UFPA(a5) __attribute__((unused)) __AROS_UFCA(a5) = __AROS_ISREG(a5,__AROS_FP_REG) ? (__AROS_UFPA(a5))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a5));(__AROS_UFPA(a5))__r;}); \
	__AROS_UFPA(a6) __attribute__((unused)) __AROS_UFCA(a6) = __AROS_ISREG(a6,__AROS_FP_REG) ? (__AROS_UFPA(a6))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a6));(__AROS_UFPA(a6))__r;});
#define AROS_UFH7S(t,n,a1,a2,a3,a4,a5,a6,a7) \
	static t n (void) { \
 \
	__AROS_UFPA(a1) __attribute__((unused)) __AROS_UFCA(a1) = __AROS_ISREG(a1,__AROS_FP_REG) ? (__AROS_UFPA(a1))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a1));(__AROS_UFPA(a1))__r;}); \
	__AROS_UFPA(a2) __attribute__((unused)) __AROS_UFCA(a2) = __AROS_ISREG(a2,__AROS_FP_REG) ? (__AROS_UFPA(a2))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a2));(__AROS_UFPA(a2))__r;}); \
	__AROS_UFPA(a3) __attribute__((unused)) __AROS_UFCA(a3) = __AROS_ISREG(a3,__AROS_FP_REG) ? (__AROS_UFPA(a3))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a3));(__AROS_UFPA(a3))__r;}); \
	__AROS_UFPA(a4) __attribute__((unused)) __AROS_UFCA(a4) = __AROS_ISREG(a4,__AROS_FP_REG) ? (__AROS_UFPA(a4))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a4));(__AROS_UFPA(a4))__r;}); \
	__AROS_UFPA(a5) __attribute__((unused)) __AROS_UFCA(a5) = __AROS_ISREG(a5,__AROS_FP_REG) ? (__AROS_UFPA(a5))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a5));(__AROS_UFPA(a5))__r;}); \
	__AROS_UFPA(a6) __attribute__((unused)) __AROS_UFCA(a6) = __AROS_ISREG(a6,__AROS_FP_REG) ? (__AROS_UFPA(a6))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a6));(__AROS_UFPA(a6))__r;}); \
	__AROS_UFPA(a7) __attribute__((unused)) __AROS_UFCA(a7) = __AROS_ISREG(a7,__AROS_FP_REG) ? (__AROS_UFPA(a7))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a7));(__AROS_UFPA(a7))__r;});
#define AROS_UFH8S(t,n,a1,a2,a3,a4,a5,a6,a7,a8) \
	static t n (void) { \
 \
	__AROS_UFPA(a1) __attribute__((unused)) __AROS_UFCA(a1) = __AROS_ISREG(a1,__AROS_FP_REG) ? (__AROS_UFPA(a1))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a1));(__AROS_UFPA(a1))__r;}); \
	__AROS_UFPA(a2) __attribute__((unused)) __AROS_UFCA(a2) = __AROS_ISREG(a2,__AROS_FP_REG) ? (__AROS_UFPA(a2))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a2));(__AROS_UFPA(a2))__r;}); \
	__AROS_UFPA(a3) __attribute__((unused)) __AROS_UFCA(a3) = __AROS_ISREG(a3,__AROS_FP_REG) ? (__AROS_UFPA(a3))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a3));(__AROS_UFPA(a3))__r;}); \
	__AROS_UFPA(a4) __attribute__((unused)) __AROS_UFCA(a4) = __AROS_ISREG(a4,__AROS_FP_REG) ? (__AROS_UFPA(a4))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a4));(__AROS_UFPA(a4))__r;}); \
	__AROS_UFPA(a5) __attribute__((unused)) __AROS_UFCA(a5) = __AROS_ISREG(a5,__AROS_FP_REG) ? (__AROS_UFPA(a5))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a5));(__AROS_UFPA(a5))__r;}); \
	__AROS_UFPA(a6) __attribute__((unused)) __AROS_UFCA(a6) = __AROS_ISREG(a6,__AROS_FP_REG) ? (__AROS_UFPA(a6))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a6));(__AROS_UFPA(a6))__r;}); \
	__AROS_UFPA(a7) __attribute__((unused)) __AROS_UFCA(a7) = __AROS_ISREG(a7,__AROS_FP_REG) ? (__AROS_UFPA(a7))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a7));(__AROS_UFPA(a7))__r;}); \
	__AROS_UFPA(a8) __attribute__((unused)) __AROS_UFCA(a8) = __AROS_ISREG(a8,__AROS_FP_REG) ? (__AROS_UFPA(a8))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a8));(__AROS_UFPA(a8))__r;});
#define AROS_UFH9S(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9) \
	static t n (void) { \
 \
	__AROS_UFPA(a1) __attribute__((unused)) __AROS_UFCA(a1) = __AROS_ISREG(a1,__AROS_FP_REG) ? (__AROS_UFPA(a1))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a1));(__AROS_UFPA(a1))__r;}); \
	__AROS_UFPA(a2) __attribute__((unused)) __AROS_UFCA(a2) = __AROS_ISREG(a2,__AROS_FP_REG) ? (__AROS_UFPA(a2))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a2));(__AROS_UFPA(a2))__r;}); \
	__AROS_UFPA(a3) __attribute__((unused)) __AROS_UFCA(a3) = __AROS_ISREG(a3,__AROS_FP_REG) ? (__AROS_UFPA(a3))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a3));(__AROS_UFPA(a3))__r;}); \
	__AROS_UFPA(a4) __attribute__((unused)) __AROS_UFCA(a4) = __AROS_ISREG(a4,__AROS_FP_REG) ? (__AROS_UFPA(a4))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a4));(__AROS_UFPA(a4))__r;}); \
	__AROS_UFPA(a5) __attribute__((unused)) __AROS_UFCA(a5) = __AROS_ISREG(a5,__AROS_FP_REG) ? (__AROS_UFPA(a5))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a5));(__AROS_UFPA(a5))__r;}); \
	__AROS_UFPA(a6) __attribute__((unused)) __AROS_UFCA(a6) = __AROS_ISREG(a6,__AROS_FP_REG) ? (__AROS_UFPA(a6))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a6));(__AROS_UFPA(a6))__r;}); \
	__AROS_UFPA(a7) __attribute__((unused)) __AROS_UFCA(a7) = __AROS_ISREG(a7,__AROS_FP_REG) ? (__AROS_UFPA(a7))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a7));(__AROS_UFPA(a7))__r;}); \
	__AROS_UFPA(a8) __attribute__((unused)) __AROS_UFCA(a8) = __AROS_ISREG(a8,__AROS_FP_REG) ? (__AROS_UFPA(a8))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a8));(__AROS_UFPA(a8))__r;}); \
	__AROS_UFPA(a9) __attribute__((unused)) __AROS_UFCA(a9) = __AROS_ISREG(a9,__AROS_FP_REG) ? (__AROS_UFPA(a9))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a9));(__AROS_UFPA(a9))__r;});
#define AROS_UFH10S(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10) \
	static t n (void) { \
 \
	__AROS_UFPA(a1) __attribute__((unused)) __AROS_UFCA(a1) = __AROS_ISREG(a1,__AROS_FP_REG) ? (__AROS_UFPA(a1))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a1));(__AROS_UFPA(a1))__r;}); \
	__AROS_UFPA(a2) __attribute__((unused)) __AROS_UFCA(a2) = __AROS_ISREG(a2,__AROS_FP_REG) ? (__AROS_UFPA(a2))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a2));(__AROS_UFPA(a2))__r;}); \
	__AROS_UFPA(a3) __attribute__((unused)) __AROS_UFCA(a3) = __AROS_ISREG(a3,__AROS_FP_REG) ? (__AROS_UFPA(a3))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a3));(__AROS_UFPA(a3))__r;}); \
	__AROS_UFPA(a4) __attribute__((unused)) __AROS_UFCA(a4) = __AROS_ISREG(a4,__AROS_FP_REG) ? (__AROS_UFPA(a4))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a4));(__AROS_UFPA(a4))__r;}); \
	__AROS_UFPA(a5) __attribute__((unused)) __AROS_UFCA(a5) = __AROS_ISREG(a5,__AROS_FP_REG) ? (__AROS_UFPA(a5))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a5));(__AROS_UFPA(a5))__r;}); \
	__AROS_UFPA(a6) __attribute__((unused)) __AROS_UFCA(a6) = __AROS_ISREG(a6,__AROS_FP_REG) ? (__AROS_UFPA(a6))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a6));(__AROS_UFPA(a6))__r;}); \
	__AROS_UFPA(a7) __attribute__((unused)) __AROS_UFCA(a7) = __AROS_ISREG(a7,__AROS_FP_REG) ? (__AROS_UFPA(a7))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a7));(__AROS_UFPA(a7))__r;}); \
	__AROS_UFPA(a8) __attribute__((unused)) __AROS_UFCA(a8) = __AROS_ISREG(a8,__AROS_FP_REG) ? (__AROS_UFPA(a8))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a8));(__AROS_UFPA(a8))__r;}); \
	__AROS_UFPA(a9) __attribute__((unused)) __AROS_UFCA(a9) = __AROS_ISREG(a9,__AROS_FP_REG) ? (__AROS_UFPA(a9))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a9));(__AROS_UFPA(a9))__r;}); \
	__AROS_UFPA(a10) __attribute__((unused)) __AROS_UFCA(a10) = __AROS_ISREG(a10,__AROS_FP_REG) ? (__AROS_UFPA(a10))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a10));(__AROS_UFPA(a10))__r;});
#define AROS_UFH11S(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11) \
	static t n (void) { \
 \
	__AROS_UFPA(a1) __attribute__((unused)) __AROS_UFCA(a1) = __AROS_ISREG(a1,__AROS_FP_REG) ? (__AROS_UFPA(a1))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a1));(__AROS_UFPA(a1))__r;}); \
	__AROS_UFPA(a2) __attribute__((unused)) __AROS_UFCA(a2) = __AROS_ISREG(a2,__AROS_FP_REG) ? (__AROS_UFPA(a2))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a2));(__AROS_UFPA(a2))__r;}); \
	__AROS_UFPA(a3) __attribute__((unused)) __AROS_UFCA(a3) = __AROS_ISREG(a3,__AROS_FP_REG) ? (__AROS_UFPA(a3))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a3));(__AROS_UFPA(a3))__r;}); \
	__AROS_UFPA(a4) __attribute__((unused)) __AROS_UFCA(a4) = __AROS_ISREG(a4,__AROS_FP_REG) ? (__AROS_UFPA(a4))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a4));(__AROS_UFPA(a4))__r;}); \
	__AROS_UFPA(a5) __attribute__((unused)) __AROS_UFCA(a5) = __AROS_ISREG(a5,__AROS_FP_REG) ? (__AROS_UFPA(a5))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a5));(__AROS_UFPA(a5))__r;}); \
	__AROS_UFPA(a6) __attribute__((unused)) __AROS_UFCA(a6) = __AROS_ISREG(a6,__AROS_FP_REG) ? (__AROS_UFPA(a6))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a6));(__AROS_UFPA(a6))__r;}); \
	__AROS_UFPA(a7) __attribute__((unused)) __AROS_UFCA(a7) = __AROS_ISREG(a7,__AROS_FP_REG) ? (__AROS_UFPA(a7))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a7));(__AROS_UFPA(a7))__r;}); \
	__AROS_UFPA(a8) __attribute__((unused)) __AROS_UFCA(a8) = __AROS_ISREG(a8,__AROS_FP_REG) ? (__AROS_UFPA(a8))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a8));(__AROS_UFPA(a8))__r;}); \
	__AROS_UFPA(a9) __attribute__((unused)) __AROS_UFCA(a9) = __AROS_ISREG(a9,__AROS_FP_REG) ? (__AROS_UFPA(a9))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a9));(__AROS_UFPA(a9))__r;}); \
	__AROS_UFPA(a10) __attribute__((unused)) __AROS_UFCA(a10) = __AROS_ISREG(a10,__AROS_FP_REG) ? (__AROS_UFPA(a10))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a10));(__AROS_UFPA(a10))__r;}); \
	__AROS_UFPA(a11) __attribute__((unused)) __AROS_UFCA(a11) = __AROS_ISREG(a11,__AROS_FP_REG) ? (__AROS_UFPA(a11))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a11));(__AROS_UFPA(a11))__r;});
#define AROS_UFH12S(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12) \
	static t n (void) { \
 \
	__AROS_UFPA(a1) __attribute__((unused)) __AROS_UFCA(a1) = __AROS_ISREG(a1,__AROS_FP_REG) ? (__AROS_UFPA(a1))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a1));(__AROS_UFPA(a1))__r;}); \
	__AROS_UFPA(a2) __attribute__((unused)) __AROS_UFCA(a2) = __AROS_ISREG(a2,__AROS_FP_REG) ? (__AROS_UFPA(a2))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a2));(__AROS_UFPA(a2))__r;}); \
	__AROS_UFPA(a3) __attribute__((unused)) __AROS_UFCA(a3) = __AROS_ISREG(a3,__AROS_FP_REG) ? (__AROS_UFPA(a3))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a3));(__AROS_UFPA(a3))__r;}); \
	__AROS_UFPA(a4) __attribute__((unused)) __AROS_UFCA(a4) = __AROS_ISREG(a4,__AROS_FP_REG) ? (__AROS_UFPA(a4))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a4));(__AROS_UFPA(a4))__r;}); \
	__AROS_UFPA(a5) __attribute__((unused)) __AROS_UFCA(a5) = __AROS_ISREG(a5,__AROS_FP_REG) ? (__AROS_UFPA(a5))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a5));(__AROS_UFPA(a5))__r;}); \
	__AROS_UFPA(a6) __attribute__((unused)) __AROS_UFCA(a6) = __AROS_ISREG(a6,__AROS_FP_REG) ? (__AROS_UFPA(a6))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a6));(__AROS_UFPA(a6))__r;}); \
	__AROS_UFPA(a7) __attribute__((unused)) __AROS_UFCA(a7) = __AROS_ISREG(a7,__AROS_FP_REG) ? (__AROS_UFPA(a7))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a7));(__AROS_UFPA(a7))__r;}); \
	__AROS_UFPA(a8) __attribute__((unused)) __AROS_UFCA(a8) = __AROS_ISREG(a8,__AROS_FP_REG) ? (__AROS_UFPA(a8))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a8));(__AROS_UFPA(a8))__r;}); \
	__AROS_UFPA(a9) __attribute__((unused)) __AROS_UFCA(a9) = __AROS_ISREG(a9,__AROS_FP_REG) ? (__AROS_UFPA(a9))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a9));(__AROS_UFPA(a9))__r;}); \
	__AROS_UFPA(a10) __attribute__((unused)) __AROS_UFCA(a10) = __AROS_ISREG(a10,__AROS_FP_REG) ? (__AROS_UFPA(a10))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a10));(__AROS_UFPA(a10))__r;}); \
	__AROS_UFPA(a11) __attribute__((unused)) __AROS_UFCA(a11) = __AROS_ISREG(a11,__AROS_FP_REG) ? (__AROS_UFPA(a11))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a11));(__AROS_UFPA(a11))__r;}); \
	__AROS_UFPA(a12) __attribute__((unused)) __AROS_UFCA(a12) = __AROS_ISREG(a12,__AROS_FP_REG) ? (__AROS_UFPA(a12))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a12));(__AROS_UFPA(a12))__r;});
#define AROS_UFH13S(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13) \
	static t n (void) { \
 \
	__AROS_UFPA(a1) __attribute__((unused)) __AROS_UFCA(a1) = __AROS_ISREG(a1,__AROS_FP_REG) ? (__AROS_UFPA(a1))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a1));(__AROS_UFPA(a1))__r;}); \
	__AROS_UFPA(a2) __attribute__((unused)) __AROS_UFCA(a2) = __AROS_ISREG(a2,__AROS_FP_REG) ? (__AROS_UFPA(a2))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a2));(__AROS_UFPA(a2))__r;}); \
	__AROS_UFPA(a3) __attribute__((unused)) __AROS_UFCA(a3) = __AROS_ISREG(a3,__AROS_FP_REG) ? (__AROS_UFPA(a3))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a3));(__AROS_UFPA(a3))__r;}); \
	__AROS_UFPA(a4) __attribute__((unused)) __AROS_UFCA(a4) = __AROS_ISREG(a4,__AROS_FP_REG) ? (__AROS_UFPA(a4))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a4));(__AROS_UFPA(a4))__r;}); \
	__AROS_UFPA(a5) __attribute__((unused)) __AROS_UFCA(a5) = __AROS_ISREG(a5,__AROS_FP_REG) ? (__AROS_UFPA(a5))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a5));(__AROS_UFPA(a5))__r;}); \
	__AROS_UFPA(a6) __attribute__((unused)) __AROS_UFCA(a6) = __AROS_ISREG(a6,__AROS_FP_REG) ? (__AROS_UFPA(a6))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a6));(__AROS_UFPA(a6))__r;}); \
	__AROS_UFPA(a7) __attribute__((unused)) __AROS_UFCA(a7) = __AROS_ISREG(a7,__AROS_FP_REG) ? (__AROS_UFPA(a7))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a7));(__AROS_UFPA(a7))__r;}); \
	__AROS_UFPA(a8) __attribute__((unused)) __AROS_UFCA(a8) = __AROS_ISREG(a8,__AROS_FP_REG) ? (__AROS_UFPA(a8))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a8));(__AROS_UFPA(a8))__r;}); \
	__AROS_UFPA(a9) __attribute__((unused)) __AROS_UFCA(a9) = __AROS_ISREG(a9,__AROS_FP_REG) ? (__AROS_UFPA(a9))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a9));(__AROS_UFPA(a9))__r;}); \
	__AROS_UFPA(a10) __attribute__((unused)) __AROS_UFCA(a10) = __AROS_ISREG(a10,__AROS_FP_REG) ? (__AROS_UFPA(a10))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a10));(__AROS_UFPA(a10))__r;}); \
	__AROS_UFPA(a11) __attribute__((unused)) __AROS_UFCA(a11) = __AROS_ISREG(a11,__AROS_FP_REG) ? (__AROS_UFPA(a11))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a11));(__AROS_UFPA(a11))__r;}); \
	__AROS_UFPA(a12) __attribute__((unused)) __AROS_UFCA(a12) = __AROS_ISREG(a12,__AROS_FP_REG) ? (__AROS_UFPA(a12))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a12));(__AROS_UFPA(a12))__r;}); \
	__AROS_UFPA(a13) __attribute__((unused)) __AROS_UFCA(a13) = __AROS_ISREG(a13,__AROS_FP_REG) ? (__AROS_UFPA(a13))(ULONG)__builtin_frame_address(1) : ({register ULONG __r asm(__AROS_LSA(a13));(__AROS_UFPA(a13))__r;});
#define AROS_UFC0(t,n) \
	({ APTR _n = (n);\
	   register volatile ULONG _ret0 asm("%d0"); \
	   asm volatile ("" : "=r" (_ret0) : : "%d1", "%a0", "%a1", "cc", "memory"); \
	   (t)_ret0; \
	  })

#define AROS_UFC1(t,n,a1) \
	({ APTR _n = (n);\
	   ULONG _arg1 = (ULONG)__AROS_LCA(a1); \
	   register volatile ULONG _ret0 asm("%d0"); \
	   register volatile ULONG __AROS_LTA(a1) asm(__AROS_LSA(a1)); \
	   if (! __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      __AROS_LTA(a1) = _arg1; } \
	   if ( __AROS_ISREG(a1,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg1), "r" (_n), "i" (__LINE__) \
		, "r" (__AROS_LTA(a1)) \
	       ); }\
	   if (!(0 || __AROS_ISREG(a1,__AROS_FP_REG))) {\
	      asm volatile ("pea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\n" : : "i" (0), "r" (_n), "i" (__LINE__) \
		, "r" (__AROS_LTA(a1)) \
	       ); }\
	   asm volatile ("" : "=r" (_ret0) : : "%d1", "%a0", "%a1", "cc", "memory"); \
	   (t)_ret0; \
	  })

#define AROS_UFC2(t,n,a1,a2) \
	({ APTR _n = (n);\
	   ULONG _arg1 = (ULONG)__AROS_LCA(a1); \
	   ULONG _arg2 = (ULONG)__AROS_LCA(a2); \
	   register volatile ULONG _ret0 asm("%d0"); \
	   register volatile ULONG __AROS_LTA(a1) asm(__AROS_LSA(a1)); \
	   register volatile ULONG __AROS_LTA(a2) asm(__AROS_LSA(a2)); \
	   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(a1,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg1), "r" (_n), "i" (__LINE__) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
	       ); }\
	   if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg2), "r" (_n), "i" (__LINE__) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
	       ); }\
	   if (!(0 || __AROS_ISREG(a1,__AROS_FP_REG) || __AROS_ISREG(a2,__AROS_FP_REG))) {\
	      asm volatile ("pea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\n" : : "i" (0), "r" (_n), "i" (__LINE__) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
	       ); }\
	   asm volatile ("" : "=r" (_ret0) : : "%d1", "%a0", "%a1", "cc", "memory"); \
	   (t)_ret0; \
	  })

#define AROS_UFC3(t,n,a1,a2,a3) \
	({ APTR _n = (n);\
	   ULONG _arg1 = (ULONG)__AROS_LCA(a1); \
	   ULONG _arg2 = (ULONG)__AROS_LCA(a2); \
	   ULONG _arg3 = (ULONG)__AROS_LCA(a3); \
	   register volatile ULONG _ret0 asm("%d0"); \
	   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)); \
	   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(a1,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg1), "r" (_n), "i" (__LINE__) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
	       ); }\
	   if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg2), "r" (_n), "i" (__LINE__) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
	       ); }\
	   if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg3), "r" (_n), "i" (__LINE__) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
	       ); }\
	   if (!(0 || __AROS_ISREG(a1,__AROS_FP_REG) || __AROS_ISREG(a2,__AROS_FP_REG) || __AROS_ISREG(a3,__AROS_FP_REG))) {\
	      asm volatile ("pea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\n" : : "i" (0), "r" (_n), "i" (__LINE__) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
	       ); }\
	   asm volatile ("" : "=r" (_ret0) : : "%d1", "%a0", "%a1", "cc", "memory"); \
	   (t)_ret0; \
	  })

#define AROS_UFC4(t,n,a1,a2,a3,a4) \
	({ APTR _n = (n);\
	   ULONG _arg1 = (ULONG)__AROS_LCA(a1); \
	   ULONG _arg2 = (ULONG)__AROS_LCA(a2); \
	   ULONG _arg3 = (ULONG)__AROS_LCA(a3); \
	   ULONG _arg4 = (ULONG)__AROS_LCA(a4); \
	   register volatile ULONG _ret0 asm("%d0"); \
	   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)); \
	   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(a1,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg1), "r" (_n), "i" (__LINE__) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
	       ); }\
	   if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg2), "r" (_n), "i" (__LINE__) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
	       ); }\
	   if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg3), "r" (_n), "i" (__LINE__) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
	       ); }\
	   if ( __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg4), "r" (_n), "i" (__LINE__) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
	       ); }\
	   if (!(0 || __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 ("pea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\n" : : "i" (0), "r" (_n), "i" (__LINE__) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
	       ); }\
	   asm volatile ("" : "=r" (_ret0) : : "%d1", "%a0", "%a1", "cc", "memory"); \
	   (t)_ret0; \
	  })

#define AROS_UFC5(t,n,a1,a2,a3,a4,a5) \
	({ APTR _n = (n);\
	   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); \
	   register volatile ULONG _ret0 asm("%d0"); \
	   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)); \
	   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(a1,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg1), "r" (_n), "i" (__LINE__) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
	       ); }\
	   if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg2), "r" (_n), "i" (__LINE__) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
	       ); }\
	   if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg3), "r" (_n), "i" (__LINE__) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
	       ); }\
	   if ( __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg4), "r" (_n), "i" (__LINE__) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
	       ); }\
	   if ( __AROS_ISREG(a5,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg5), "r" (_n), "i" (__LINE__) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
	       ); }\
	   if (!(0 || __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 ("pea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\n" : : "i" (0), "r" (_n), "i" (__LINE__) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
	       ); }\
	   asm volatile ("" : "=r" (_ret0) : : "%d1", "%a0", "%a1", "cc", "memory"); \
	   (t)_ret0; \
	  })

#define AROS_UFC6(t,n,a1,a2,a3,a4,a5,a6) \
	({ APTR _n = (n);\
	   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); \
	   register volatile ULONG _ret0 asm("%d0"); \
	   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)); \
	   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(a1,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg1), "r" (_n), "i" (__LINE__) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
	       ); }\
	   if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg2), "r" (_n), "i" (__LINE__) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
	       ); }\
	   if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg3), "r" (_n), "i" (__LINE__) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
	       ); }\
	   if ( __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg4), "r" (_n), "i" (__LINE__) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
	       ); }\
	   if ( __AROS_ISREG(a5,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg5), "r" (_n), "i" (__LINE__) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
	       ); }\
	   if ( __AROS_ISREG(a6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg6), "r" (_n), "i" (__LINE__) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
	       ); }\
	   if (!(0 || __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 ("pea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\n" : : "i" (0), "r" (_n), "i" (__LINE__) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
		, "r" (__AROS_LTA(a4)) \
		, "r" (__AROS_LTA(a5)) \
		, "r" (__AROS_LTA(a6)) \
	       ); }\
	   asm volatile ("" : "=r" (_ret0) : : "%d1", "%a0", "%a1", "cc", "memory"); \
	   (t)_ret0; \
	  })

#define AROS_UFC7(t,n,a1,a2,a3,a4,a5,a6,a7) \
	({ APTR _n = (n);\
	   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); \
	   register volatile ULONG _ret0 asm("%d0"); \
	   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)); \
	   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(a1,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg1), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg2), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg3), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg4), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a5,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg5), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg6), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a7,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg7), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if (!(0 || __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 ("pea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\n" : : "i" (0), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   asm volatile ("" : "=r" (_ret0) : : "%d1", "%a0", "%a1", "cc", "memory"); \
	   (t)_ret0; \
	  })

#define AROS_UFC8(t,n,a1,a2,a3,a4,a5,a6,a7,a8) \
	({ APTR _n = (n);\
	   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); \
	   register volatile ULONG _ret0 asm("%d0"); \
	   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)); \
	   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(a1,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg1), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg2), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg3), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg4), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a5,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg5), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg6), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a7,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg7), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a8,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg8), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if (!(0 || __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 ("pea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\n" : : "i" (0), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   asm volatile ("" : "=r" (_ret0) : : "%d1", "%a0", "%a1", "cc", "memory"); \
	   (t)_ret0; \
	  })

#define AROS_UFC9(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9) \
	({ APTR _n = (n);\
	   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); \
	   register volatile ULONG _ret0 asm("%d0"); \
	   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)); \
	   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(a1,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg1), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg2), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg3), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg4), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a5,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg5), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg6), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a7,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg7), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a8,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg8), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a9,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg9), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if (!(0 || __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 ("pea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\n" : : "i" (0), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   asm volatile ("" : "=r" (_ret0) : : "%d1", "%a0", "%a1", "cc", "memory"); \
	   (t)_ret0; \
	  })

#define AROS_UFC10(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10) \
	({ APTR _n = (n);\
	   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); \
	   register volatile ULONG _ret0 asm("%d0"); \
	   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)); \
	   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(a1,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg1), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg2), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg3), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg4), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a5,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg5), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg6), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a7,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg7), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a8,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg8), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a9,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg9), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a10,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg10), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if (!(0 || __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 ("pea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\n" : : "i" (0), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   asm volatile ("" : "=r" (_ret0) : : "%d1", "%a0", "%a1", "cc", "memory"); \
	   (t)_ret0; \
	  })

#define AROS_UFC11(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11) \
	({ APTR _n = (n);\
	   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); \
	   register volatile ULONG _ret0 asm("%d0"); \
	   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)); \
	   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(a1,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg1), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg2), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg3), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg4), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a5,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg5), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg6), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a7,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg7), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a8,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg8), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a9,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg9), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a10,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg10), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a11,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg11), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if (!(0 || __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 ("pea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\n" : : "i" (0), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   asm volatile ("" : "=r" (_ret0) : : "%d1", "%a0", "%a1", "cc", "memory"); \
	   (t)_ret0; \
	  })

#define AROS_UFC12(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12) \
	({ APTR _n = (n);\
	   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); \
	   register volatile ULONG _ret0 asm("%d0"); \
	   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)); \
	   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(a1,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg1), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg2), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg3), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg4), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a5,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg5), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg6), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a7,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg7), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a8,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg8), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a9,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg9), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a10,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg10), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a11,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg11), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a12,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg12), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if (!(0 || __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 ("pea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\n" : : "i" (0), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   asm volatile ("" : "=r" (_ret0) : : "%d1", "%a0", "%a1", "cc", "memory"); \
	   (t)_ret0; \
	  })

#define AROS_UFC13(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13) \
	({ APTR _n = (n);\
	   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); \
	   register volatile ULONG _ret0 asm("%d0"); \
	   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)); \
	   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(a1,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg1), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg2), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg3), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg4), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a5,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg5), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg6), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a7,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg7), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a8,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg8), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a9,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg9), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a10,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg10), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a11,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg11), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a12,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg12), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if ( __AROS_ISREG(a13,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\npea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg13), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   if (!(0 || __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 ("pea.l 0f\nmove.l %1, %%sp@-\nrts\n0:\n\n" : : "i" (0), "r" (_n), "i" (__LINE__) \
		, "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)) \
	       ); }\
	   asm volatile ("" : "=r" (_ret0) : : "%d1", "%a0", "%a1", "cc", "memory"); \
	   (t)_ret0; \
	  })

#define __AROS_CPU_SPECIFIC_LP

#define AROS_LP0(t,n,bt,bn,o,s) \
	t n ( void )
#define AROS_LP1(t,n,a1,bt,bn,o,s) \
	t n ( __AROS_LHA(a1))
#define AROS_LP2(t,n,a1,a2,bt,bn,o,s) \
	t n ( __AROS_LHA(a1), \
	__AROS_LHA(a2))
#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_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_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_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_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_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_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_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_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_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_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_LP0I(t,n,bt,bn,o,s) \
	t n ( void )
#define AROS_LP1I(t,n,a1,bt,bn,o,s) \
	t n ( __AROS_LHA(a1))
#define AROS_LP2I(t,n,a1,a2,bt,bn,o,s) \
	t n ( __AROS_LHA(a1), \
	__AROS_LHA(a2))
#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_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_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_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_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_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_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_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_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_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_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_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");(bt)__r;});
#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));(__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");(bt)__r;});
#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));(__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));(__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");(bt)__r;});
#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));(__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));(__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));(__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");(bt)__r;});
#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));(__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));(__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));(__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));(__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");(bt)__r;});
#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));(__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));(__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));(__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));(__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));(__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");(bt)__r;});
#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));(__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));(__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));(__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));(__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));(__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));(__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");(bt)__r;});
#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));(__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));(__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));(__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));(__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));(__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));(__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));(__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");(bt)__r;});
#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));(__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));(__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));(__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));(__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));(__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));(__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));(__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));(__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");(bt)__r;});
#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));(__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));(__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));(__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));(__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));(__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));(__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));(__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));(__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));(__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");(bt)__r;});
#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));(__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));(__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));(__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));(__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));(__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));(__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));(__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));(__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));(__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));(__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");(bt)__r;});
#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));(__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));(__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));(__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));(__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));(__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));(__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));(__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));(__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));(__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));(__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));(__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");(bt)__r;});
#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));(__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));(__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));(__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));(__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));(__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));(__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));(__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));(__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));(__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));(__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));(__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));(__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");(bt)__r;});
#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));(__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));(__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));(__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));(__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));(__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));(__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));(__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));(__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));(__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));(__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));(__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));(__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));(__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");(bt)__r;});
#define AROS_LH0I(t,n,bt,bn,o,s) \
	t AROS_SLIB_ENTRY(n,s,o) (void) {
#define AROS_LH1I(t,n,a1,bt,bn,o,s) \
	t AROS_SLIB_ENTRY(n,s,o) (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));(__AROS_LPA(a1))__r;});
#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));(__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));(__AROS_LPA(a2))__r;});
#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));(__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));(__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));(__AROS_LPA(a3))__r;});
#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));(__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));(__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));(__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));(__AROS_LPA(a4))__r;});
#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));(__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));(__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));(__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));(__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));(__AROS_LPA(a5))__r;});
#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));(__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));(__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));(__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));(__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));(__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));(__AROS_LPA(a6))__r;});
#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));(__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));(__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));(__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));(__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));(__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));(__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));(__AROS_LPA(a7))__r;});
#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));(__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));(__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));(__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));(__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));(__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));(__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));(__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));(__AROS_LPA(a8))__r;});
#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));(__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));(__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));(__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));(__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));(__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));(__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));(__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));(__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));(__AROS_LPA(a9))__r;});
#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));(__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));(__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));(__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));(__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));(__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));(__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));(__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));(__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));(__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));(__AROS_LPA(a10))__r;});
#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));(__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));(__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));(__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));(__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));(__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));(__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));(__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));(__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));(__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));(__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));(__AROS_LPA(a11))__r;});
#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));(__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));(__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));(__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));(__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));(__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));(__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));(__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));(__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));(__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));(__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));(__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));(__AROS_LPA(a12))__r;});
#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));(__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));(__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));(__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));(__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));(__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));(__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));(__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));(__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));(__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));(__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));(__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));(__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));(__AROS_LPA(a13))__r;});

#define __AROS_CPU_SPECIFIC_LC

#define AROS_LC0(t,n,bt,bn,o,s) \
	({ \
	   ULONG _bn_arg = (ULONG)bn; \
	   register volatile ULONG _ret0 asm("%d0"); \
	   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 %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_bn_arg), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
	       ); }\
	   if (!(0 || __AROS_ISREG(bt,bn,A6,__AROS_FP_REG))) {\
	      asm volatile ("jsr %c1(%%a6)\n" : : "i" (0), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
	       ); }\
	   asm volatile ("" : "=r" (_ret0) : : "%d1", "%a0", "%a1", "cc", "memory"); \
	   (t)_ret0; \
	  })

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

#define AROS_LC2(t,n,a1,a2,bt,bn,o,s) \
	({ \
	   ULONG _arg1 = (ULONG)__AROS_LCA(a1); \
	   ULONG _arg2 = (ULONG)__AROS_LCA(a2); \
	   ULONG _bn_arg = (ULONG)bn; \
	   register volatile ULONG _ret0 asm("%d0"); \
	   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 %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg1), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
	       ); }\
	   if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg2), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
	       ); }\
	   if ( __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_bn_arg), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
	       ); }\
	   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 %c1(%%a6)\n" : : "i" (0), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
	       ); }\
	   asm volatile ("" : "=r" (_ret0) : : "%d1", "%a0", "%a1", "cc", "memory"); \
	   (t)_ret0; \
	  })

#define AROS_LC3(t,n,a1,a2,a3,bt,bn,o,s) \
	({ \
	   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 _ret0 asm("%d0"); \
	   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 %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg1), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
	       ); }\
	   if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg2), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
	       ); }\
	   if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg3), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
	       ); }\
	   if ( __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_bn_arg), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
	       ); }\
	   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 %c1(%%a6)\n" : : "i" (0), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
	       ); }\
	   asm volatile ("" : "=r" (_ret0) : : "%d1", "%a0", "%a1", "cc", "memory"); \
	   (t)_ret0; \
	  })

#define AROS_LC4(t,n,a1,a2,a3,a4,bt,bn,o,s) \
	({ \
	   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 _ret0 asm("%d0"); \
	   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 %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   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 %c1(%%a6)\n" : : "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)) \
	       ); }\
	   asm volatile ("" : "=r" (_ret0) : : "%d1", "%a0", "%a1", "cc", "memory"); \
	   (t)_ret0; \
	  })

#define AROS_LC5(t,n,a1,a2,a3,a4,a5,bt,bn,o,s) \
	({ \
	   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 _ret0 asm("%d0"); \
	   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 %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a5,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   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 %c1(%%a6)\n" : : "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)) \
	       ); }\
	   asm volatile ("" : "=r" (_ret0) : : "%d1", "%a0", "%a1", "cc", "memory"); \
	   (t)_ret0; \
	  })

#define AROS_LC6(t,n,a1,a2,a3,a4,a5,a6,bt,bn,o,s) \
	({ \
	   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 _ret0 asm("%d0"); \
	   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 %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a5,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   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 %c1(%%a6)\n" : : "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)) \
	       ); }\
	   asm volatile ("" : "=r" (_ret0) : : "%d1", "%a0", "%a1", "cc", "memory"); \
	   (t)_ret0; \
	  })

#define AROS_LC7(t,n,a1,a2,a3,a4,a5,a6,a7,bt,bn,o,s) \
	({ \
	   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 _ret0 asm("%d0"); \
	   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 %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a5,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a7,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   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 %c1(%%a6)\n" : : "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)) \
	       ); }\
	   asm volatile ("" : "=r" (_ret0) : : "%d1", "%a0", "%a1", "cc", "memory"); \
	   (t)_ret0; \
	  })

#define AROS_LC8(t,n,a1,a2,a3,a4,a5,a6,a7,a8,bt,bn,o,s) \
	({ \
	   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 _ret0 asm("%d0"); \
	   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 %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a5,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a7,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a8,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   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 %c1(%%a6)\n" : : "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)) \
	       ); }\
	   asm volatile ("" : "=r" (_ret0) : : "%d1", "%a0", "%a1", "cc", "memory"); \
	   (t)_ret0; \
	  })

#define AROS_LC9(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,bt,bn,o,s) \
	({ \
	   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 _ret0 asm("%d0"); \
	   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 %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a5,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a7,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a8,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a9,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   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 %c1(%%a6)\n" : : "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)) \
	       ); }\
	   asm volatile ("" : "=r" (_ret0) : : "%d1", "%a0", "%a1", "cc", "memory"); \
	   (t)_ret0; \
	  })

#define AROS_LC10(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,bt,bn,o,s) \
	({ \
	   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 _ret0 asm("%d0"); \
	   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 %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a5,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a7,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a8,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a9,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a10,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   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 %c1(%%a6)\n" : : "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)) \
	       ); }\
	   asm volatile ("" : "=r" (_ret0) : : "%d1", "%a0", "%a1", "cc", "memory"); \
	   (t)_ret0; \
	  })

#define AROS_LC11(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,bt,bn,o,s) \
	({ \
	   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 _ret0 asm("%d0"); \
	   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 %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a5,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a7,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a8,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a9,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a10,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a11,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   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 %c1(%%a6)\n" : : "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)) \
	       ); }\
	   asm volatile ("" : "=r" (_ret0) : : "%d1", "%a0", "%a1", "cc", "memory"); \
	   (t)_ret0; \
	  })

#define AROS_LC12(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,bt,bn,o,s) \
	({ \
	   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 _ret0 asm("%d0"); \
	   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 %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a5,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a7,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a8,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a9,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a10,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a11,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a12,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   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 %c1(%%a6)\n" : : "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)) \
	       ); }\
	   asm volatile ("" : "=r" (_ret0) : : "%d1", "%a0", "%a1", "cc", "memory"); \
	   (t)_ret0; \
	  })

#define AROS_LC13(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,bt,bn,o,s) \
	({ \
	   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 _ret0 asm("%d0"); \
	   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 %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a5,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a7,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a8,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a9,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a10,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a11,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a12,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a13,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   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 %c1(%%a6)\n" : : "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)) \
	       ); }\
	   asm volatile ("" : "=r" (_ret0) : : "%d1", "%a0", "%a1", "cc", "memory"); \
	   (t)_ret0; \
	  })

#define AROS_LC2D(t,n,a1,a2,bt,bn,o,s) \
	({ \
	   ULONG _arg1 = (ULONG)__AROS_LCA(a1); \
	   ULONG _arg2 = (ULONG)__AROS_LCA(a2); \
	   ULONG _bn_arg = (ULONG)bn; \
	   register volatile ULONG _ret0 asm("%d0"); \
	   register volatile ULONG _ret1 asm("%d1"); \
	   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 %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg1), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
	       ); }\
	   if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg2), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
	       ); }\
	   if ( __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_bn_arg), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
	       ); }\
	   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 %c1(%%a6)\n" : : "i" (0), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
	       ); }\
	   asm volatile ("" : "=r" (_ret0), "=r" (_ret1) : : "%a0", "%a1", "cc", "memory"); \
	   (t)({union { struct { ULONG r0,r1; } v; double d; } rv;\
	        rv.v.r0 = _ret0; rv.v.r1 = _ret1; rv.d; });\
	  })

#define AROS_LC3D(t,n,a1,a2,a3,bt,bn,o,s) \
	({ \
	   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 _ret0 asm("%d0"); \
	   register volatile ULONG _ret1 asm("%d1"); \
	   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 %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg1), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
	       ); }\
	   if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg2), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
	       ); }\
	   if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg3), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
	       ); }\
	   if ( __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_bn_arg), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
	       ); }\
	   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 %c1(%%a6)\n" : : "i" (0), "i" (-1 * (o) * LIB_VECTSIZE), "r" (_bn) \
		, "r" (__AROS_LTA(a1)) \
		, "r" (__AROS_LTA(a2)) \
		, "r" (__AROS_LTA(a3)) \
	       ); }\
	   asm volatile ("" : "=r" (_ret0), "=r" (_ret1) : : "%a0", "%a1", "cc", "memory"); \
	   (t)({union { struct { ULONG r0,r1; } v; double d; } rv;\
	        rv.v.r0 = _ret0; rv.v.r1 = _ret1; rv.d; });\
	  })

#define AROS_LC4D(t,n,a1,a2,a3,a4,bt,bn,o,s) \
	({ \
	   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 _ret0 asm("%d0"); \
	   register volatile ULONG _ret1 asm("%d1"); \
	   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 %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(a4,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   if ( __AROS_ISREG(bt,bn,A6,__AROS_FP_REG)) { \
	      asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\njsr %c1(%%a6)\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "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)) \
	       ); }\
	   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 %c1(%%a6)\n" : : "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)) \
	       ); }\
	   asm volatile ("" : "=r" (_ret0), "=r" (_ret1) : : "%a0", "%a1", "cc", "memory"); \
	   (t)({union { struct { ULONG r0,r1; } v; double d; } rv;\
	        rv.v.r0 = _ret0; rv.v.r1 = _ret1; rv.d; });\
	  })

#define AROS_LC0NR AROS_LC0
#define AROS_LC1NR AROS_LC1
#define AROS_LC2NR AROS_LC2
#define AROS_LC3NR AROS_LC3
#define AROS_LC4NR AROS_LC4
#define AROS_LC5NR AROS_LC5
#define AROS_LC6NR AROS_LC6
#define AROS_LC7NR AROS_LC7
#define AROS_LC8NR AROS_LC8
#define AROS_LC9NR AROS_LC9
#define AROS_LC10NR AROS_LC10
#define AROS_LC11NR AROS_LC11
#define AROS_LC12NR AROS_LC12
#define AROS_LC13NR AROS_LC13
#define AROS_CALL0(t,n,bt,bn) \
	AROS_UFC1(t,n,AROS_UFCA(bt,bn,A6))
#define AROS_CALL1(t,n,a1,bt,bn) \
	AROS_UFC2(t,n,AROS_UFCA(a1),AROS_UFCA(bt,bn,A6))
#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_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_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_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_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_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_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_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_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_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_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_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_CALL0NR AROS_CALL0
#define AROS_CALL1NR AROS_CALL1
#define AROS_CALL2NR AROS_CALL2
#define AROS_CALL3NR AROS_CALL3
#define AROS_CALL4NR AROS_CALL4
#define AROS_CALL5NR AROS_CALL5
#define AROS_CALL6NR AROS_CALL6
#define AROS_CALL7NR AROS_CALL7
#define AROS_CALL8NR AROS_CALL8
#define AROS_CALL9NR AROS_CALL9
#define AROS_CALL10NR AROS_CALL10
#define AROS_CALL11NR AROS_CALL11
#define AROS_CALL12NR AROS_CALL12
#define AROS_CALL13NR AROS_CALL13
#define AROS_LVO_CALL0(t,bt,bn,o,s) \
	AROS_CALL0(t,__AROS_GETVECADDR(bn,o), \
		bt,bn)
#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_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_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_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_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_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_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_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_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_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_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_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_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_CALL0NR(t,bt,bn,o,s) \
	AROS_CALL0NR(t,__AROS_GETVECADDR(bn,o), \
		bt,bn)
#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_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_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_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_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_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_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_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_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_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_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_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_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_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_LD1(t,n,a1,bt,bn,o,s) \
	__AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s,o) (void)
#define AROS_LD2(t,n,a1,a2,bt,bn,o,s) \
	__AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s,o) (void)
#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_LD4(t,n,a1,a2,a3,a4,bt,bn,o,s) \
	__AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s,o) (void)
#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_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_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_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_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_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_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_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_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_LD0I(t,n,bt,bn,o,s) \
	__AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s,o) (void)
#define AROS_LD1I(t,n,a1,bt,bn,o,s) \
	__AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s,o) (void)
#define AROS_LD2I(t,n,a1,a2,bt,bn,o,s) \
	__AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s,o) (void)
#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_LD4I(t,n,a1,a2,a3,a4,bt,bn,o,s) \
	__AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s,o) (void)
#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_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_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_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_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_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_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_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_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)
#endif /* AROS_M68K_LIBCALL_H */
