summaryrefslogtreecommitdiff
path: root/patches
diff options
context:
space:
mode:
authorDavid Schleef <ds@schleef.org>2005-05-09 01:08:09 +0000
committerDavid Schleef <ds@schleef.org>2005-05-09 01:08:09 +0000
commit4f3db6dfe7a9052178501ea1443b715c95a34811 (patch)
tree129f5fb39c9565e715a805564baa784124a82ad9 /patches
parent95ca71d7e9ec8bfa5410997d5e8aeb0f318d584f (diff)
* patches/patch-remove-indirection: Some patches that might get
applied in 0.4 transition. * patches/patch-small-lib:
Diffstat (limited to 'patches')
-rw-r--r--patches/patch-remove-indirection961
-rw-r--r--patches/patch-small-lib62
2 files changed, 1023 insertions, 0 deletions
diff --git a/patches/patch-remove-indirection b/patches/patch-remove-indirection
new file mode 100644
index 0000000..ff41b5c
--- /dev/null
+++ b/patches/patch-remove-indirection
@@ -0,0 +1,961 @@
+
+This patch removes the second layer of indirection when calling
+function classes. This can either be applied verbatim before 0.4,
+or considered a starting point for more signficant changes to the
+calling mechanism.
+
+Index: liboil/Makefile.am
+===================================================================
+RCS file: /var/cvs/liboil/liboil/Makefile.am,v
+retrieving revision 1.26
+diff -u -r1.26 Makefile.am
+--- liboil/Makefile.am 10 Jan 2005 04:51:51 -0000 1.26
++++ liboil/Makefile.am 14 Jan 2005 03:00:25 -0000
+@@ -76,11 +76,11 @@
+ echo >>liboilarray.c
+ echo '#include <liboil/liboilfunction.h>' >>liboilarray.c
+ echo >>liboilarray.c
+- grep '^_oil_function_class_' .libs/liboiltmp1.exp | \
++ grep '^oil_function_class_[^(ptr)]' .libs/liboiltmp1.exp | \
+ sed 's/.*/extern OilFunctionClass &;/' >>liboilarray.c
+ echo >>liboilarray.c
+ echo 'OilFunctionClass *_oil_function_class_array[] = {' >>liboilarray.c
+- grep '^_oil_function_class_' .libs/liboiltmp1.exp | \
++ grep '^oil_function_class_[^(ptr)]' .libs/liboiltmp1.exp | \
+ sed 's/.*/ \&&,/' >>liboilarray.c
+ echo ' NULL' >>liboilarray.c
+ echo '};' >>liboilarray.c
+Index: liboil/build_prototypes.c
+===================================================================
+RCS file: /var/cvs/liboil/liboil/build_prototypes.c,v
+retrieving revision 1.13
+diff -u -r1.13 build_prototypes.c
+--- liboil/build_prototypes.c 23 Dec 2004 08:39:30 -0000 1.13
++++ liboil/build_prototypes.c 14 Jan 2005 03:00:25 -0000
+@@ -58,10 +58,10 @@
+ if (proto) {
+ string = oil_prototype_to_string (proto);
+
+- printf ("extern OilFunctionClass *oil_function_class_ptr_%s;\n",
++ printf ("extern OilFunctionClass oil_function_class_%s;\n",
+ klass->name);
+ printf ("typedef void (*_oil_type_%s)(%s);\n",klass->name,string);
+- printf ("#define oil_%s ((_oil_type_%s)(*(void **)oil_function_class_ptr_%s))\n",
++ printf ("#define oil_%s ((_oil_type_%s)(*(void **)&oil_function_class_%s))\n",
+ klass->name, klass->name, klass->name);
+
+ oil_prototype_free (proto);
+Index: liboil/liboilfuncs.h
+===================================================================
+RCS file: /var/cvs/liboil/liboil/liboilfuncs.h,v
+retrieving revision 1.18
+diff -u -r1.18 liboilfuncs.h
+--- liboil/liboilfuncs.h 13 Jan 2005 09:29:30 -0000 1.18
++++ liboil/liboilfuncs.h 14 Jan 2005 03:00:27 -0000
+@@ -36,540 +36,495 @@
+ extern "C" {
+ #endif
+
+-extern OilFunctionClass *oil_function_class_ptr_abs_f32_f32;
++extern OilFunctionClass oil_function_class_abs_f32_f32;
+ typedef void (*_oil_type_abs_f32_f32)(float * dest, int dstr, const float * src, int sstr, int n);
+-#define oil_abs_f32_f32 ((_oil_type_abs_f32_f32)(*(void **)oil_function_class_ptr_abs_f32_f32))
+-extern OilFunctionClass *oil_function_class_ptr_abs_f64_f64;
++#define oil_abs_f32_f32 ((_oil_type_abs_f32_f32)(*(void **)&oil_function_class_abs_f32_f32))
++extern OilFunctionClass oil_function_class_abs_f64_f64;
+ typedef void (*_oil_type_abs_f64_f64)(double * dest, int dstr, const double * src, int sstr, int n);
+-#define oil_abs_f64_f64 ((_oil_type_abs_f64_f64)(*(void **)oil_function_class_ptr_abs_f64_f64))
+-extern OilFunctionClass *oil_function_class_ptr_abs_u16_s16;
++#define oil_abs_f64_f64 ((_oil_type_abs_f64_f64)(*(void **)&oil_function_class_abs_f64_f64))
++extern OilFunctionClass oil_function_class_abs_u16_s16;
+ typedef void (*_oil_type_abs_u16_s16)(uint16_t * dest, int dstr, const int16_t * src, int sstr, int n);
+-#define oil_abs_u16_s16 ((_oil_type_abs_u16_s16)(*(void **)oil_function_class_ptr_abs_u16_s16))
+-extern OilFunctionClass *oil_function_class_ptr_abs_u32_s32;
++#define oil_abs_u16_s16 ((_oil_type_abs_u16_s16)(*(void **)&oil_function_class_abs_u16_s16))
++extern OilFunctionClass oil_function_class_abs_u32_s32;
+ typedef void (*_oil_type_abs_u32_s32)(uint32_t * dest, int dstr, const int32_t * src, int sstr, int n);
+-#define oil_abs_u32_s32 ((_oil_type_abs_u32_s32)(*(void **)oil_function_class_ptr_abs_u32_s32))
+-extern OilFunctionClass *oil_function_class_ptr_abs_u8_s8;
++#define oil_abs_u32_s32 ((_oil_type_abs_u32_s32)(*(void **)&oil_function_class_abs_u32_s32))
++extern OilFunctionClass oil_function_class_abs_u8_s8;
+ typedef void (*_oil_type_abs_u8_s8)(uint8_t * dest, int dstr, const int8_t * src, int sstr, int n);
+-#define oil_abs_u8_s8 ((_oil_type_abs_u8_s8)(*(void **)oil_function_class_ptr_abs_u8_s8))
+-extern OilFunctionClass *oil_function_class_ptr_argb_paint_u8;
++#define oil_abs_u8_s8 ((_oil_type_abs_u8_s8)(*(void **)&oil_function_class_abs_u8_s8))
++extern OilFunctionClass oil_function_class_argb_paint_u8;
+ typedef void (*_oil_type_argb_paint_u8)(uint8_t * i_4xn, const uint8_t * s1_4, const uint8_t * s2_n, int n);
+-#define oil_argb_paint_u8 ((_oil_type_argb_paint_u8)(*(void **)oil_function_class_ptr_argb_paint_u8))
+-extern OilFunctionClass *oil_function_class_ptr_average2_u8;
++#define oil_argb_paint_u8 ((_oil_type_argb_paint_u8)(*(void **)&oil_function_class_argb_paint_u8))
++extern OilFunctionClass oil_function_class_average2_u8;
+ typedef void (*_oil_type_average2_u8)(uint8_t * dest, int dstr, const uint8_t * src1, int sstr1, const uint8_t * src2, int sstr2, int n);
+-#define oil_average2_u8 ((_oil_type_average2_u8)(*(void **)oil_function_class_ptr_average2_u8))
+-extern OilFunctionClass *oil_function_class_ptr_ayuv2argb_u8;
++#define oil_average2_u8 ((_oil_type_average2_u8)(*(void **)&oil_function_class_average2_u8))
++extern OilFunctionClass oil_function_class_ayuv2argb_u8;
+ typedef void (*_oil_type_ayuv2argb_u8)(uint8_t * d_4xn, const uint8_t * s_4xn, int n);
+-#define oil_ayuv2argb_u8 ((_oil_type_ayuv2argb_u8)(*(void **)oil_function_class_ptr_ayuv2argb_u8))
+-extern OilFunctionClass *oil_function_class_ptr_clip_f32;
++#define oil_ayuv2argb_u8 ((_oil_type_ayuv2argb_u8)(*(void **)&oil_function_class_ayuv2argb_u8))
++extern OilFunctionClass oil_function_class_clip_f32;
+ typedef void (*_oil_type_clip_f32)(float * dest, int dstr, const float * src, int sstr, int n, const float * s2_1, const float * s3_1);
+-#define oil_clip_f32 ((_oil_type_clip_f32)(*(void **)oil_function_class_ptr_clip_f32))
+-extern OilFunctionClass *oil_function_class_ptr_clip_f64;
++#define oil_clip_f32 ((_oil_type_clip_f32)(*(void **)&oil_function_class_clip_f32))
++extern OilFunctionClass oil_function_class_clip_f64;
+ typedef void (*_oil_type_clip_f64)(double * dest, int dstr, const double * src, int sstr, int n, const double * s2_1, const double * s3_1);
+-#define oil_clip_f64 ((_oil_type_clip_f64)(*(void **)oil_function_class_ptr_clip_f64))
+-extern OilFunctionClass *oil_function_class_ptr_clip_s16;
++#define oil_clip_f64 ((_oil_type_clip_f64)(*(void **)&oil_function_class_clip_f64))
++extern OilFunctionClass oil_function_class_clip_s16;
+ typedef void (*_oil_type_clip_s16)(int16_t * dest, int dstr, const int16_t * src, int sstr, int n, const int16_t * s2_1, const int16_t * s3_1);
+-#define oil_clip_s16 ((_oil_type_clip_s16)(*(void **)oil_function_class_ptr_clip_s16))
+-extern OilFunctionClass *oil_function_class_ptr_clip_s32;
++#define oil_clip_s16 ((_oil_type_clip_s16)(*(void **)&oil_function_class_clip_s16))
++extern OilFunctionClass oil_function_class_clip_s32;
+ typedef void (*_oil_type_clip_s32)(int32_t * dest, int dstr, const int32_t * src, int sstr, int n, const int32_t * s2_1, const int32_t * s3_1);
+-#define oil_clip_s32 ((_oil_type_clip_s32)(*(void **)oil_function_class_ptr_clip_s32))
+-extern OilFunctionClass *oil_function_class_ptr_clip_s8;
++#define oil_clip_s32 ((_oil_type_clip_s32)(*(void **)&oil_function_class_clip_s32))
++extern OilFunctionClass oil_function_class_clip_s8;
+ typedef void (*_oil_type_clip_s8)(int8_t * dest, int dstr, const int8_t * src, int sstr, int n, const int8_t * s2_1, const int8_t * s3_1);
+-#define oil_clip_s8 ((_oil_type_clip_s8)(*(void **)oil_function_class_ptr_clip_s8))
+-extern OilFunctionClass *oil_function_class_ptr_clip_u16;
++#define oil_clip_s8 ((_oil_type_clip_s8)(*(void **)&oil_function_class_clip_s8))
++extern OilFunctionClass oil_function_class_clip_u16;
+ typedef void (*_oil_type_clip_u16)(uint16_t * dest, int dstr, const uint16_t * src, int sstr, int n, const uint16_t * s2_1, const uint16_t * s3_1);
+-#define oil_clip_u16 ((_oil_type_clip_u16)(*(void **)oil_function_class_ptr_clip_u16))
+-extern OilFunctionClass *oil_function_class_ptr_clip_u32;
++#define oil_clip_u16 ((_oil_type_clip_u16)(*(void **)&oil_function_class_clip_u16))
++extern OilFunctionClass oil_function_class_clip_u32;
+ typedef void (*_oil_type_clip_u32)(uint32_t * dest, int dstr, const uint32_t * src, int sstr, int n, const uint32_t * s2_1, const uint32_t * s3_1);
+-#define oil_clip_u32 ((_oil_type_clip_u32)(*(void **)oil_function_class_ptr_clip_u32))
+-extern OilFunctionClass *oil_function_class_ptr_clip_u8;
++#define oil_clip_u32 ((_oil_type_clip_u32)(*(void **)&oil_function_class_clip_u32))
++extern OilFunctionClass oil_function_class_clip_u8;
+ typedef void (*_oil_type_clip_u8)(uint8_t * dest, int dstr, const uint8_t * src, int sstr, int n, const uint8_t * s2_1, const uint8_t * s3_1);
+-#define oil_clip_u8 ((_oil_type_clip_u8)(*(void **)oil_function_class_ptr_clip_u8))
+-extern OilFunctionClass *oil_function_class_ptr_clipconv8x8_u8_s16;
++#define oil_clip_u8 ((_oil_type_clip_u8)(*(void **)&oil_function_class_clip_u8))
++extern OilFunctionClass oil_function_class_clipconv8x8_u8_s16;
+ typedef void (*_oil_type_clipconv8x8_u8_s16)(uint8_t * d_8x8, int dstr, const int16_t * s_8x8, int sstr);
+-#define oil_clipconv8x8_u8_s16 ((_oil_type_clipconv8x8_u8_s16)(*(void **)oil_function_class_ptr_clipconv8x8_u8_s16))
+-extern OilFunctionClass *oil_function_class_ptr_clipconv_s16_f32;
++#define oil_clipconv8x8_u8_s16 ((_oil_type_clipconv8x8_u8_s16)(*(void **)&oil_function_class_clipconv8x8_u8_s16))
++extern OilFunctionClass oil_function_class_clipconv_s16_f32;
+ typedef void (*_oil_type_clipconv_s16_f32)(int16_t * dest, int dstr, const float * src, int sstr, int n);
+-#define oil_clipconv_s16_f32 ((_oil_type_clipconv_s16_f32)(*(void **)oil_function_class_ptr_clipconv_s16_f32))
+-extern OilFunctionClass *oil_function_class_ptr_clipconv_s16_f64;
++#define oil_clipconv_s16_f32 ((_oil_type_clipconv_s16_f32)(*(void **)&oil_function_class_clipconv_s16_f32))
++extern OilFunctionClass oil_function_class_clipconv_s16_f64;
+ typedef void (*_oil_type_clipconv_s16_f64)(int16_t * dest, int dstr, const double * src, int sstr, int n);
+-#define oil_clipconv_s16_f64 ((_oil_type_clipconv_s16_f64)(*(void **)oil_function_class_ptr_clipconv_s16_f64))
+-extern OilFunctionClass *oil_function_class_ptr_clipconv_s16_s32;
++#define oil_clipconv_s16_f64 ((_oil_type_clipconv_s16_f64)(*(void **)&oil_function_class_clipconv_s16_f64))
++extern OilFunctionClass oil_function_class_clipconv_s16_s32;
+ typedef void (*_oil_type_clipconv_s16_s32)(int16_t * dest, int dstr, const int32_t * src, int sstr, int n);
+-#define oil_clipconv_s16_s32 ((_oil_type_clipconv_s16_s32)(*(void **)oil_function_class_ptr_clipconv_s16_s32))
+-extern OilFunctionClass *oil_function_class_ptr_clipconv_s16_u16;
++#define oil_clipconv_s16_s32 ((_oil_type_clipconv_s16_s32)(*(void **)&oil_function_class_clipconv_s16_s32))
++extern OilFunctionClass oil_function_class_clipconv_s16_u16;
+ typedef void (*_oil_type_clipconv_s16_u16)(int16_t * dest, int dstr, const uint16_t * src, int sstr, int n);
+-#define oil_clipconv_s16_u16 ((_oil_type_clipconv_s16_u16)(*(void **)oil_function_class_ptr_clipconv_s16_u16))
+-extern OilFunctionClass *oil_function_class_ptr_clipconv_s16_u32;
++#define oil_clipconv_s16_u16 ((_oil_type_clipconv_s16_u16)(*(void **)&oil_function_class_clipconv_s16_u16))
++extern OilFunctionClass oil_function_class_clipconv_s16_u32;
+ typedef void (*_oil_type_clipconv_s16_u32)(int16_t * dest, int dstr, const uint32_t * src, int sstr, int n);
+-#define oil_clipconv_s16_u32 ((_oil_type_clipconv_s16_u32)(*(void **)oil_function_class_ptr_clipconv_s16_u32))
+-extern OilFunctionClass *oil_function_class_ptr_clipconv_s32_f32;
++#define oil_clipconv_s16_u32 ((_oil_type_clipconv_s16_u32)(*(void **)&oil_function_class_clipconv_s16_u32))
++extern OilFunctionClass oil_function_class_clipconv_s32_f32;
+ typedef void (*_oil_type_clipconv_s32_f32)(int32_t * dest, int dstr, const float * src, int sstr, int n);
+-#define oil_clipconv_s32_f32 ((_oil_type_clipconv_s32_f32)(*(void **)oil_function_class_ptr_clipconv_s32_f32))
+-extern OilFunctionClass *oil_function_class_ptr_clipconv_s32_f64;
++#define oil_clipconv_s32_f32 ((_oil_type_clipconv_s32_f32)(*(void **)&oil_function_class_clipconv_s32_f32))
++extern OilFunctionClass oil_function_class_clipconv_s32_f64;
+ typedef void (*_oil_type_clipconv_s32_f64)(int32_t * dest, int dstr, const double * src, int sstr, int n);
+-#define oil_clipconv_s32_f64 ((_oil_type_clipconv_s32_f64)(*(void **)oil_function_class_ptr_clipconv_s32_f64))
+-extern OilFunctionClass *oil_function_class_ptr_clipconv_s32_u32;
++#define oil_clipconv_s32_f64 ((_oil_type_clipconv_s32_f64)(*(void **)&oil_function_class_clipconv_s32_f64))
++extern OilFunctionClass oil_function_class_clipconv_s32_u32;
+ typedef void (*_oil_type_clipconv_s32_u32)(int32_t * dest, int dstr, const uint32_t * src, int sstr, int n);
+-#define oil_clipconv_s32_u32 ((_oil_type_clipconv_s32_u32)(*(void **)oil_function_class_ptr_clipconv_s32_u32))
+-extern OilFunctionClass *oil_function_class_ptr_clipconv_s8_f32;
++#define oil_clipconv_s32_u32 ((_oil_type_clipconv_s32_u32)(*(void **)&oil_function_class_clipconv_s32_u32))
++extern OilFunctionClass oil_function_class_clipconv_s8_f32;
+ typedef void (*_oil_type_clipconv_s8_f32)(int8_t * dest, int dstr, const float * src, int sstr, int n);
+-#define oil_clipconv_s8_f32 ((_oil_type_clipconv_s8_f32)(*(void **)oil_function_class_ptr_clipconv_s8_f32))
+-extern OilFunctionClass *oil_function_class_ptr_clipconv_s8_f64;
++#define oil_clipconv_s8_f32 ((_oil_type_clipconv_s8_f32)(*(void **)&oil_function_class_clipconv_s8_f32))
++extern OilFunctionClass oil_function_class_clipconv_s8_f64;
+ typedef void (*_oil_type_clipconv_s8_f64)(int8_t * dest, int dstr, const double * src, int sstr, int n);
+-#define oil_clipconv_s8_f64 ((_oil_type_clipconv_s8_f64)(*(void **)oil_function_class_ptr_clipconv_s8_f64))
+-extern OilFunctionClass *oil_function_class_ptr_clipconv_s8_s16;
++#define oil_clipconv_s8_f64 ((_oil_type_clipconv_s8_f64)(*(void **)&oil_function_class_clipconv_s8_f64))
++extern OilFunctionClass oil_function_class_clipconv_s8_s16;
+ typedef void (*_oil_type_clipconv_s8_s16)(int8_t * dest, int dstr, const int16_t * src, int sstr, int n);
+-#define oil_clipconv_s8_s16 ((_oil_type_clipconv_s8_s16)(*(void **)oil_function_class_ptr_clipconv_s8_s16))
+-extern OilFunctionClass *oil_function_class_ptr_clipconv_s8_s32;
++#define oil_clipconv_s8_s16 ((_oil_type_clipconv_s8_s16)(*(void **)&oil_function_class_clipconv_s8_s16))
++extern OilFunctionClass oil_function_class_clipconv_s8_s32;
+ typedef void (*_oil_type_clipconv_s8_s32)(int8_t * dest, int dstr, const int32_t * src, int sstr, int n);
+-#define oil_clipconv_s8_s32 ((_oil_type_clipconv_s8_s32)(*(void **)oil_function_class_ptr_clipconv_s8_s32))
+-extern OilFunctionClass *oil_function_class_ptr_clipconv_s8_u16;
++#define oil_clipconv_s8_s32 ((_oil_type_clipconv_s8_s32)(*(void **)&oil_function_class_clipconv_s8_s32))
++extern OilFunctionClass oil_function_class_clipconv_s8_u16;
+ typedef void (*_oil_type_clipconv_s8_u16)(int8_t * dest, int dstr, const uint16_t * src, int sstr, int n);
+-#define oil_clipconv_s8_u16 ((_oil_type_clipconv_s8_u16)(*(void **)oil_function_class_ptr_clipconv_s8_u16))
+-extern OilFunctionClass *oil_function_class_ptr_clipconv_s8_u32;
++#define oil_clipconv_s8_u16 ((_oil_type_clipconv_s8_u16)(*(void **)&oil_function_class_clipconv_s8_u16))
++extern OilFunctionClass oil_function_class_clipconv_s8_u32;
+ typedef void (*_oil_type_clipconv_s8_u32)(int8_t * dest, int dstr, const uint32_t * src, int sstr, int n);
+-#define oil_clipconv_s8_u32 ((_oil_type_clipconv_s8_u32)(*(void **)oil_function_class_ptr_clipconv_s8_u32))
+-extern OilFunctionClass *oil_function_class_ptr_clipconv_s8_u8;
++#define oil_clipconv_s8_u32 ((_oil_type_clipconv_s8_u32)(*(void **)&oil_function_class_clipconv_s8_u32))
++extern OilFunctionClass oil_function_class_clipconv_s8_u8;
+ typedef void (*_oil_type_clipconv_s8_u8)(int8_t * dest, int dstr, const uint8_t * src, int sstr, int n);
+-#define oil_clipconv_s8_u8 ((_oil_type_clipconv_s8_u8)(*(void **)oil_function_class_ptr_clipconv_s8_u8))
+-extern OilFunctionClass *oil_function_class_ptr_clipconv_u16_f32;
++#define oil_clipconv_s8_u8 ((_oil_type_clipconv_s8_u8)(*(void **)&oil_function_class_clipconv_s8_u8))
++extern OilFunctionClass oil_function_class_clipconv_u16_f32;
+ typedef void (*_oil_type_clipconv_u16_f32)(uint16_t * dest, int dstr, const float * src, int sstr, int n);
+-#define oil_clipconv_u16_f32 ((_oil_type_clipconv_u16_f32)(*(void **)oil_function_class_ptr_clipconv_u16_f32))
+-extern OilFunctionClass *oil_function_class_ptr_clipconv_u16_f64;
++#define oil_clipconv_u16_f32 ((_oil_type_clipconv_u16_f32)(*(void **)&oil_function_class_clipconv_u16_f32))
++extern OilFunctionClass oil_function_class_clipconv_u16_f64;
+ typedef void (*_oil_type_clipconv_u16_f64)(uint16_t * dest, int dstr, const double * src, int sstr, int n);
+-#define oil_clipconv_u16_f64 ((_oil_type_clipconv_u16_f64)(*(void **)oil_function_class_ptr_clipconv_u16_f64))
+-extern OilFunctionClass *oil_function_class_ptr_clipconv_u16_s16;
++#define oil_clipconv_u16_f64 ((_oil_type_clipconv_u16_f64)(*(void **)&oil_function_class_clipconv_u16_f64))
++extern OilFunctionClass oil_function_class_clipconv_u16_s16;
+ typedef void (*_oil_type_clipconv_u16_s16)(uint16_t * dest, int dstr, const int16_t * src, int sstr, int n);
+-#define oil_clipconv_u16_s16 ((_oil_type_clipconv_u16_s16)(*(void **)oil_function_class_ptr_clipconv_u16_s16))
+-extern OilFunctionClass *oil_function_class_ptr_clipconv_u16_s32;
++#define oil_clipconv_u16_s16 ((_oil_type_clipconv_u16_s16)(*(void **)&oil_function_class_clipconv_u16_s16))
++extern OilFunctionClass oil_function_class_clipconv_u16_s32;
+ typedef void (*_oil_type_clipconv_u16_s32)(uint16_t * dest, int dstr, const int32_t * src, int sstr, int n);
+-#define oil_clipconv_u16_s32 ((_oil_type_clipconv_u16_s32)(*(void **)oil_function_class_ptr_clipconv_u16_s32))
+-extern OilFunctionClass *oil_function_class_ptr_clipconv_u16_u32;
++#define oil_clipconv_u16_s32 ((_oil_type_clipconv_u16_s32)(*(void **)&oil_function_class_clipconv_u16_s32))
++extern OilFunctionClass oil_function_class_clipconv_u16_u32;
+ typedef void (*_oil_type_clipconv_u16_u32)(uint16_t * dest, int dstr, const uint32_t * src, int sstr, int n);
+-#define oil_clipconv_u16_u32 ((_oil_type_clipconv_u16_u32)(*(void **)oil_function_class_ptr_clipconv_u16_u32))
+-extern OilFunctionClass *oil_function_class_ptr_clipconv_u32_f32;
++#define oil_clipconv_u16_u32 ((_oil_type_clipconv_u16_u32)(*(void **)&oil_function_class_clipconv_u16_u32))
++extern OilFunctionClass oil_function_class_clipconv_u32_f32;
+ typedef void (*_oil_type_clipconv_u32_f32)(uint32_t * dest, int dstr, const float * src, int sstr, int n);
+-#define oil_clipconv_u32_f32 ((_oil_type_clipconv_u32_f32)(*(void **)oil_function_class_ptr_clipconv_u32_f32))
+-extern OilFunctionClass *oil_function_class_ptr_clipconv_u32_f64;
++#define oil_clipconv_u32_f32 ((_oil_type_clipconv_u32_f32)(*(void **)&oil_function_class_clipconv_u32_f32))
++extern OilFunctionClass oil_function_class_clipconv_u32_f64;
+ typedef void (*_oil_type_clipconv_u32_f64)(uint32_t * dest, int dstr, const double * src, int sstr, int n);
+-#define oil_clipconv_u32_f64 ((_oil_type_clipconv_u32_f64)(*(void **)oil_function_class_ptr_clipconv_u32_f64))
+-extern OilFunctionClass *oil_function_class_ptr_clipconv_u32_s32;
++#define oil_clipconv_u32_f64 ((_oil_type_clipconv_u32_f64)(*(void **)&oil_function_class_clipconv_u32_f64))
++extern OilFunctionClass oil_function_class_clipconv_u32_s32;
+ typedef void (*_oil_type_clipconv_u32_s32)(uint32_t * dest, int dstr, const int32_t * src, int sstr, int n);
+-#define oil_clipconv_u32_s32 ((_oil_type_clipconv_u32_s32)(*(void **)oil_function_class_ptr_clipconv_u32_s32))
+-extern OilFunctionClass *oil_function_class_ptr_clipconv_u8_f32;
++#define oil_clipconv_u32_s32 ((_oil_type_clipconv_u32_s32)(*(void **)&oil_function_class_clipconv_u32_s32))
++extern OilFunctionClass oil_function_class_clipconv_u8_f32;
+ typedef void (*_oil_type_clipconv_u8_f32)(uint8_t * dest, int dstr, const float * src, int sstr, int n);
+-#define oil_clipconv_u8_f32 ((_oil_type_clipconv_u8_f32)(*(void **)oil_function_class_ptr_clipconv_u8_f32))
+-extern OilFunctionClass *oil_function_class_ptr_clipconv_u8_f64;
++#define oil_clipconv_u8_f32 ((_oil_type_clipconv_u8_f32)(*(void **)&oil_function_class_clipconv_u8_f32))
++extern OilFunctionClass oil_function_class_clipconv_u8_f64;
+ typedef void (*_oil_type_clipconv_u8_f64)(uint8_t * dest, int dstr, const double * src, int sstr, int n);
+-#define oil_clipconv_u8_f64 ((_oil_type_clipconv_u8_f64)(*(void **)oil_function_class_ptr_clipconv_u8_f64))
+-extern OilFunctionClass *oil_function_class_ptr_clipconv_u8_s16;
++#define oil_clipconv_u8_f64 ((_oil_type_clipconv_u8_f64)(*(void **)&oil_function_class_clipconv_u8_f64))
++extern OilFunctionClass oil_function_class_clipconv_u8_s16;
+ typedef void (*_oil_type_clipconv_u8_s16)(uint8_t * dest, int dstr, const int16_t * src, int sstr, int n);
+-#define oil_clipconv_u8_s16 ((_oil_type_clipconv_u8_s16)(*(void **)oil_function_class_ptr_clipconv_u8_s16))
+-extern OilFunctionClass *oil_function_class_ptr_clipconv_u8_s32;
++#define oil_clipconv_u8_s16 ((_oil_type_clipconv_u8_s16)(*(void **)&oil_function_class_clipconv_u8_s16))
++extern OilFunctionClass oil_function_class_clipconv_u8_s32;
+ typedef void (*_oil_type_clipconv_u8_s32)(uint8_t * dest, int dstr, const int32_t * src, int sstr, int n);
+-#define oil_clipconv_u8_s32 ((_oil_type_clipconv_u8_s32)(*(void **)oil_function_class_ptr_clipconv_u8_s32))
+-extern OilFunctionClass *oil_function_class_ptr_clipconv_u8_s8;
++#define oil_clipconv_u8_s32 ((_oil_type_clipconv_u8_s32)(*(void **)&oil_function_class_clipconv_u8_s32))
++extern OilFunctionClass oil_function_class_clipconv_u8_s8;
+ typedef void (*_oil_type_clipconv_u8_s8)(uint8_t * dest, int dstr, const int8_t * src, int sstr, int n);
+-#define oil_clipconv_u8_s8 ((_oil_type_clipconv_u8_s8)(*(void **)oil_function_class_ptr_clipconv_u8_s8))
+-extern OilFunctionClass *oil_function_class_ptr_clipconv_u8_u16;
++#define oil_clipconv_u8_s8 ((_oil_type_clipconv_u8_s8)(*(void **)&oil_function_class_clipconv_u8_s8))
++extern OilFunctionClass oil_function_class_clipconv_u8_u16;
+ typedef void (*_oil_type_clipconv_u8_u16)(uint8_t * dest, int dstr, const uint16_t * src, int sstr, int n);
+-#define oil_clipconv_u8_u16 ((_oil_type_clipconv_u8_u16)(*(void **)oil_function_class_ptr_clipconv_u8_u16))
+-extern OilFunctionClass *oil_function_class_ptr_clipconv_u8_u32;
++#define oil_clipconv_u8_u16 ((_oil_type_clipconv_u8_u16)(*(void **)&oil_function_class_clipconv_u8_u16))
++extern OilFunctionClass oil_function_class_clipconv_u8_u32;
+ typedef void (*_oil_type_clipconv_u8_u32)(uint8_t * dest, int dstr, const uint32_t * src, int sstr, int n);
+-#define oil_clipconv_u8_u32 ((_oil_type_clipconv_u8_u32)(*(void **)oil_function_class_ptr_clipconv_u8_u32))
+-extern OilFunctionClass *oil_function_class_ptr_conv8x8_f64_s16;
++#define oil_clipconv_u8_u32 ((_oil_type_clipconv_u8_u32)(*(void **)&oil_function_class_clipconv_u8_u32))
++extern OilFunctionClass oil_function_class_conv8x8_f64_s16;
+ typedef void (*_oil_type_conv8x8_f64_s16)(double * d_8x8, int dstr, const int16_t * s_8x8, int sstr);
+-#define oil_conv8x8_f64_s16 ((_oil_type_conv8x8_f64_s16)(*(void **)oil_function_class_ptr_conv8x8_f64_s16))
+-extern OilFunctionClass *oil_function_class_ptr_conv8x8_s16_f64;
++#define oil_conv8x8_f64_s16 ((_oil_type_conv8x8_f64_s16)(*(void **)&oil_function_class_conv8x8_f64_s16))
++extern OilFunctionClass oil_function_class_conv8x8_s16_f64;
+ typedef void (*_oil_type_conv8x8_s16_f64)(int16_t * d_8x8, int dstr, const double * s_8x8, int sstr);
+-#define oil_conv8x8_s16_f64 ((_oil_type_conv8x8_s16_f64)(*(void **)oil_function_class_ptr_conv8x8_s16_f64))
+-extern OilFunctionClass *oil_function_class_ptr_conv_f32_f64;
++#define oil_conv8x8_s16_f64 ((_oil_type_conv8x8_s16_f64)(*(void **)&oil_function_class_conv8x8_s16_f64))
++extern OilFunctionClass oil_function_class_conv_f32_f64;
+ typedef void (*_oil_type_conv_f32_f64)(float * dest, int dstr, const double * src, int sstr, int n);
+-#define oil_conv_f32_f64 ((_oil_type_conv_f32_f64)(*(void **)oil_function_class_ptr_conv_f32_f64))
+-extern OilFunctionClass *oil_function_class_ptr_conv_f32_s16;
++#define oil_conv_f32_f64 ((_oil_type_conv_f32_f64)(*(void **)&oil_function_class_conv_f32_f64))
++extern OilFunctionClass oil_function_class_conv_f32_s16;
+ typedef void (*_oil_type_conv_f32_s16)(float * dest, int dstr, const int16_t * src, int sstr, int n);
+-#define oil_conv_f32_s16 ((_oil_type_conv_f32_s16)(*(void **)oil_function_class_ptr_conv_f32_s16))
+-extern OilFunctionClass *oil_function_class_ptr_conv_f32_s32;
++#define oil_conv_f32_s16 ((_oil_type_conv_f32_s16)(*(void **)&oil_function_class_conv_f32_s16))
++extern OilFunctionClass oil_function_class_conv_f32_s32;
+ typedef void (*_oil_type_conv_f32_s32)(float * dest, int dstr, const int32_t * src, int sstr, int n);
+-#define oil_conv_f32_s32 ((_oil_type_conv_f32_s32)(*(void **)oil_function_class_ptr_conv_f32_s32))
+-extern OilFunctionClass *oil_function_class_ptr_conv_f32_s8;
++#define oil_conv_f32_s32 ((_oil_type_conv_f32_s32)(*(void **)&oil_function_class_conv_f32_s32))
++extern OilFunctionClass oil_function_class_conv_f32_s8;
+ typedef void (*_oil_type_conv_f32_s8)(float * dest, int dstr, const int8_t * src, int sstr, int n);
+-#define oil_conv_f32_s8 ((_oil_type_conv_f32_s8)(*(void **)oil_function_class_ptr_conv_f32_s8))
+-extern OilFunctionClass *oil_function_class_ptr_conv_f32_u16;
++#define oil_conv_f32_s8 ((_oil_type_conv_f32_s8)(*(void **)&oil_function_class_conv_f32_s8))
++extern OilFunctionClass oil_function_class_conv_f32_u16;
+ typedef void (*_oil_type_conv_f32_u16)(float * dest, int dstr, const uint16_t * src, int sstr, int n);
+-#define oil_conv_f32_u16 ((_oil_type_conv_f32_u16)(*(void **)oil_function_class_ptr_conv_f32_u16))
+-extern OilFunctionClass *oil_function_class_ptr_conv_f32_u32;
++#define oil_conv_f32_u16 ((_oil_type_conv_f32_u16)(*(void **)&oil_function_class_conv_f32_u16))
++extern OilFunctionClass oil_function_class_conv_f32_u32;
+ typedef void (*_oil_type_conv_f32_u32)(float * dest, int dstr, const uint32_t * src, int sstr, int n);
+-#define oil_conv_f32_u32 ((_oil_type_conv_f32_u32)(*(void **)oil_function_class_ptr_conv_f32_u32))
+-extern OilFunctionClass *oil_function_class_ptr_conv_f32_u8;
++#define oil_conv_f32_u32 ((_oil_type_conv_f32_u32)(*(void **)&oil_function_class_conv_f32_u32))
++extern OilFunctionClass oil_function_class_conv_f32_u8;
+ typedef void (*_oil_type_conv_f32_u8)(float * dest, int dstr, const uint8_t * src, int sstr, int n);
+-#define oil_conv_f32_u8 ((_oil_type_conv_f32_u8)(*(void **)oil_function_class_ptr_conv_f32_u8))
+-extern OilFunctionClass *oil_function_class_ptr_conv_f64_f32;
++#define oil_conv_f32_u8 ((_oil_type_conv_f32_u8)(*(void **)&oil_function_class_conv_f32_u8))
++extern OilFunctionClass oil_function_class_conv_f64_f32;
+ typedef void (*_oil_type_conv_f64_f32)(double * dest, int dstr, const float * src, int sstr, int n);
+-#define oil_conv_f64_f32 ((_oil_type_conv_f64_f32)(*(void **)oil_function_class_ptr_conv_f64_f32))
+-extern OilFunctionClass *oil_function_class_ptr_conv_f64_s16;
++#define oil_conv_f64_f32 ((_oil_type_conv_f64_f32)(*(void **)&oil_function_class_conv_f64_f32))
++extern OilFunctionClass oil_function_class_conv_f64_s16;
+ typedef void (*_oil_type_conv_f64_s16)(double * dest, int dstr, const int16_t * src, int sstr, int n);
+-#define oil_conv_f64_s16 ((_oil_type_conv_f64_s16)(*(void **)oil_function_class_ptr_conv_f64_s16))
+-extern OilFunctionClass *oil_function_class_ptr_conv_f64_s32;
++#define oil_conv_f64_s16 ((_oil_type_conv_f64_s16)(*(void **)&oil_function_class_conv_f64_s16))
++extern OilFunctionClass oil_function_class_conv_f64_s32;
+ typedef void (*_oil_type_conv_f64_s32)(double * dest, int dstr, const int32_t * src, int sstr, int n);
+-#define oil_conv_f64_s32 ((_oil_type_conv_f64_s32)(*(void **)oil_function_class_ptr_conv_f64_s32))
+-extern OilFunctionClass *oil_function_class_ptr_conv_f64_s8;
++#define oil_conv_f64_s32 ((_oil_type_conv_f64_s32)(*(void **)&oil_function_class_conv_f64_s32))
++extern OilFunctionClass oil_function_class_conv_f64_s8;
+ typedef void (*_oil_type_conv_f64_s8)(double * dest, int dstr, const int8_t * src, int sstr, int n);
+-#define oil_conv_f64_s8 ((_oil_type_conv_f64_s8)(*(void **)oil_function_class_ptr_conv_f64_s8))
+-extern OilFunctionClass *oil_function_class_ptr_conv_f64_u16;
++#define oil_conv_f64_s8 ((_oil_type_conv_f64_s8)(*(void **)&oil_function_class_conv_f64_s8))
++extern OilFunctionClass oil_function_class_conv_f64_u16;
+ typedef void (*_oil_type_conv_f64_u16)(double * dest, int dstr, const uint16_t * src, int sstr, int n);
+-#define oil_conv_f64_u16 ((_oil_type_conv_f64_u16)(*(void **)oil_function_class_ptr_conv_f64_u16))
+-extern OilFunctionClass *oil_function_class_ptr_conv_f64_u32;
++#define oil_conv_f64_u16 ((_oil_type_conv_f64_u16)(*(void **)&oil_function_class_conv_f64_u16))
++extern OilFunctionClass oil_function_class_conv_f64_u32;
+ typedef void (*_oil_type_conv_f64_u32)(double * dest, int dstr, const uint32_t * src, int sstr, int n);
+-#define oil_conv_f64_u32 ((_oil_type_conv_f64_u32)(*(void **)oil_function_class_ptr_conv_f64_u32))
+-extern OilFunctionClass *oil_function_class_ptr_conv_f64_u8;
++#define oil_conv_f64_u32 ((_oil_type_conv_f64_u32)(*(void **)&oil_function_class_conv_f64_u32))
++extern OilFunctionClass oil_function_class_conv_f64_u8;
+ typedef void (*_oil_type_conv_f64_u8)(double * dest, int dstr, const uint8_t * src, int sstr, int n);
+-#define oil_conv_f64_u8 ((_oil_type_conv_f64_u8)(*(void **)oil_function_class_ptr_conv_f64_u8))
+-extern OilFunctionClass *oil_function_class_ptr_conv_s16_f32;
++#define oil_conv_f64_u8 ((_oil_type_conv_f64_u8)(*(void **)&oil_function_class_conv_f64_u8))
++extern OilFunctionClass oil_function_class_conv_s16_f32;
+ typedef void (*_oil_type_conv_s16_f32)(int16_t * dest, int dstr, const float * src, int sstr, int n);
+-#define oil_conv_s16_f32 ((_oil_type_conv_s16_f32)(*(void **)oil_function_class_ptr_conv_s16_f32))
+-extern OilFunctionClass *oil_function_class_ptr_conv_s16_f64;
++#define oil_conv_s16_f32 ((_oil_type_conv_s16_f32)(*(void **)&oil_function_class_conv_s16_f32))
++extern OilFunctionClass oil_function_class_conv_s16_f64;
+ typedef void (*_oil_type_conv_s16_f64)(int16_t * dest, int dstr, const double * src, int sstr, int n);
+-#define oil_conv_s16_f64 ((_oil_type_conv_s16_f64)(*(void **)oil_function_class_ptr_conv_s16_f64))
+-extern OilFunctionClass *oil_function_class_ptr_conv_s16_s32;
++#define oil_conv_s16_f64 ((_oil_type_conv_s16_f64)(*(void **)&oil_function_class_conv_s16_f64))
++extern OilFunctionClass oil_function_class_conv_s16_s32;
+ typedef void (*_oil_type_conv_s16_s32)(int16_t * dest, int dstr, const int32_t * src, int sstr, int n);
+-#define oil_conv_s16_s32 ((_oil_type_conv_s16_s32)(*(void **)oil_function_class_ptr_conv_s16_s32))
+-extern OilFunctionClass *oil_function_class_ptr_conv_s16_s8;
++#define oil_conv_s16_s32 ((_oil_type_conv_s16_s32)(*(void **)&oil_function_class_conv_s16_s32))
++extern OilFunctionClass oil_function_class_conv_s16_s8;
+ typedef void (*_oil_type_conv_s16_s8)(int16_t * dest, int dstr, const int8_t * src, int sstr, int n);
+-#define oil_conv_s16_s8 ((_oil_type_conv_s16_s8)(*(void **)oil_function_class_ptr_conv_s16_s8))
+-extern OilFunctionClass *oil_function_class_ptr_conv_s16_u16;
++#define oil_conv_s16_s8 ((_oil_type_conv_s16_s8)(*(void **)&oil_function_class_conv_s16_s8))
++extern OilFunctionClass oil_function_class_conv_s16_u16;
+ typedef void (*_oil_type_conv_s16_u16)(int16_t * dest, int dstr, const uint16_t * src, int sstr, int n);
+-#define oil_conv_s16_u16 ((_oil_type_conv_s16_u16)(*(void **)oil_function_class_ptr_conv_s16_u16))
+-extern OilFunctionClass *oil_function_class_ptr_conv_s16_u32;
++#define oil_conv_s16_u16 ((_oil_type_conv_s16_u16)(*(void **)&oil_function_class_conv_s16_u16))
++extern OilFunctionClass oil_function_class_conv_s16_u32;
+ typedef void (*_oil_type_conv_s16_u32)(int16_t * dest, int dstr, const uint32_t * src, int sstr, int n);
+-#define oil_conv_s16_u32 ((_oil_type_conv_s16_u32)(*(void **)oil_function_class_ptr_conv_s16_u32))
+-extern OilFunctionClass *oil_function_class_ptr_conv_s16_u8;
++#define oil_conv_s16_u32 ((_oil_type_conv_s16_u32)(*(void **)&oil_function_class_conv_s16_u32))
++extern OilFunctionClass oil_function_class_conv_s16_u8;
+ typedef void (*_oil_type_conv_s16_u8)(int16_t * dest, int dstr, const uint8_t * src, int sstr, int n);
+-#define oil_conv_s16_u8 ((_oil_type_conv_s16_u8)(*(void **)oil_function_class_ptr_conv_s16_u8))
+-extern OilFunctionClass *oil_function_class_ptr_conv_s32_f32;
++#define oil_conv_s16_u8 ((_oil_type_conv_s16_u8)(*(void **)&oil_function_class_conv_s16_u8))
++extern OilFunctionClass oil_function_class_conv_s32_f32;
+ typedef void (*_oil_type_conv_s32_f32)(int32_t * dest, int dstr, const float * src, int sstr, int n);
+-#define oil_conv_s32_f32 ((_oil_type_conv_s32_f32)(*(void **)oil_function_class_ptr_conv_s32_f32))
+-extern OilFunctionClass *oil_function_class_ptr_conv_s32_f64;
++#define oil_conv_s32_f32 ((_oil_type_conv_s32_f32)(*(void **)&oil_function_class_conv_s32_f32))
++extern OilFunctionClass oil_function_class_conv_s32_f64;
+ typedef void (*_oil_type_conv_s32_f64)(int32_t * dest, int dstr, const double * src, int sstr, int n);
+-#define oil_conv_s32_f64 ((_oil_type_conv_s32_f64)(*(void **)oil_function_class_ptr_conv_s32_f64))
+-extern OilFunctionClass *oil_function_class_ptr_conv_s32_s16;
++#define oil_conv_s32_f64 ((_oil_type_conv_s32_f64)(*(void **)&oil_function_class_conv_s32_f64))
++extern OilFunctionClass oil_function_class_conv_s32_s16;
+ typedef void (*_oil_type_conv_s32_s16)(int32_t * dest, int dstr, const int16_t * src, int sstr, int n);
+-#define oil_conv_s32_s16 ((_oil_type_conv_s32_s16)(*(void **)oil_function_class_ptr_conv_s32_s16))
+-extern OilFunctionClass *oil_function_class_ptr_conv_s32_s8;
++#define oil_conv_s32_s16 ((_oil_type_conv_s32_s16)(*(void **)&oil_function_class_conv_s32_s16))
++extern OilFunctionClass oil_function_class_conv_s32_s8;
+ typedef void (*_oil_type_conv_s32_s8)(int32_t * dest, int dstr, const int8_t * src, int sstr, int n);
+-#define oil_conv_s32_s8 ((_oil_type_conv_s32_s8)(*(void **)oil_function_class_ptr_conv_s32_s8))
+-extern OilFunctionClass *oil_function_class_ptr_conv_s32_u16;
++#define oil_conv_s32_s8 ((_oil_type_conv_s32_s8)(*(void **)&oil_function_class_conv_s32_s8))
++extern OilFunctionClass oil_function_class_conv_s32_u16;
+ typedef void (*_oil_type_conv_s32_u16)(int32_t * dest, int dstr, const uint16_t * src, int sstr, int n);
+-#define oil_conv_s32_u16 ((_oil_type_conv_s32_u16)(*(void **)oil_function_class_ptr_conv_s32_u16))
+-extern OilFunctionClass *oil_function_class_ptr_conv_s32_u32;
++#define oil_conv_s32_u16 ((_oil_type_conv_s32_u16)(*(void **)&oil_function_class_conv_s32_u16))
++extern OilFunctionClass oil_function_class_conv_s32_u32;
+ typedef void (*_oil_type_conv_s32_u32)(int32_t * dest, int dstr, const uint32_t * src, int sstr, int n);
+-#define oil_conv_s32_u32 ((_oil_type_conv_s32_u32)(*(void **)oil_function_class_ptr_conv_s32_u32))
+-extern OilFunctionClass *oil_function_class_ptr_conv_s32_u8;
++#define oil_conv_s32_u32 ((_oil_type_conv_s32_u32)(*(void **)&oil_function_class_conv_s32_u32))
++extern OilFunctionClass oil_function_class_conv_s32_u8;
+ typedef void (*_oil_type_conv_s32_u8)(int32_t * dest, int dstr, const uint8_t * src, int sstr, int n);
+-#define oil_conv_s32_u8 ((_oil_type_conv_s32_u8)(*(void **)oil_function_class_ptr_conv_s32_u8))
+-extern OilFunctionClass *oil_function_class_ptr_conv_s8_f32;
++#define oil_conv_s32_u8 ((_oil_type_conv_s32_u8)(*(void **)&oil_function_class_conv_s32_u8))
++extern OilFunctionClass oil_function_class_conv_s8_f32;
+ typedef void (*_oil_type_conv_s8_f32)(int8_t * dest, int dstr, const float * src, int sstr, int n);
+-#define oil_conv_s8_f32 ((_oil_type_conv_s8_f32)(*(void **)oil_function_class_ptr_conv_s8_f32))
+-extern OilFunctionClass *oil_function_class_ptr_conv_s8_f64;
++#define oil_conv_s8_f32 ((_oil_type_conv_s8_f32)(*(void **)&oil_function_class_conv_s8_f32))
++extern OilFunctionClass oil_function_class_conv_s8_f64;
+ typedef void (*_oil_type_conv_s8_f64)(int8_t * dest, int dstr, const double * src, int sstr, int n);
+-#define oil_conv_s8_f64 ((_oil_type_conv_s8_f64)(*(void **)oil_function_class_ptr_conv_s8_f64))
+-extern OilFunctionClass *oil_function_class_ptr_conv_s8_s16;
++#define oil_conv_s8_f64 ((_oil_type_conv_s8_f64)(*(void **)&oil_function_class_conv_s8_f64))
++extern OilFunctionClass oil_function_class_conv_s8_s16;
+ typedef void (*_oil_type_conv_s8_s16)(int8_t * dest, int dstr, const int16_t * src, int sstr, int n);
+-#define oil_conv_s8_s16 ((_oil_type_conv_s8_s16)(*(void **)oil_function_class_ptr_conv_s8_s16))
+-extern OilFunctionClass *oil_function_class_ptr_conv_s8_s32;
++#define oil_conv_s8_s16 ((_oil_type_conv_s8_s16)(*(void **)&oil_function_class_conv_s8_s16))
++extern OilFunctionClass oil_function_class_conv_s8_s32;
+ typedef void (*_oil_type_conv_s8_s32)(int8_t * dest, int dstr, const int32_t * src, int sstr, int n);
+-#define oil_conv_s8_s32 ((_oil_type_conv_s8_s32)(*(void **)oil_function_class_ptr_conv_s8_s32))
+-extern OilFunctionClass *oil_function_class_ptr_conv_s8_u16;
++#define oil_conv_s8_s32 ((_oil_type_conv_s8_s32)(*(void **)&oil_function_class_conv_s8_s32))
++extern OilFunctionClass oil_function_class_conv_s8_u16;
+ typedef void (*_oil_type_conv_s8_u16)(int8_t * dest, int dstr, const uint16_t * src, int sstr, int n);
+-#define oil_conv_s8_u16 ((_oil_type_conv_s8_u16)(*(void **)oil_function_class_ptr_conv_s8_u16))
+-extern OilFunctionClass *oil_function_class_ptr_conv_s8_u32;
++#define oil_conv_s8_u16 ((_oil_type_conv_s8_u16)(*(void **)&oil_function_class_conv_s8_u16))
++extern OilFunctionClass oil_function_class_conv_s8_u32;
+ typedef void (*_oil_type_conv_s8_u32)(int8_t * dest, int dstr, const uint32_t * src, int sstr, int n);
+-#define oil_conv_s8_u32 ((_oil_type_conv_s8_u32)(*(void **)oil_function_class_ptr_conv_s8_u32))
+-extern OilFunctionClass *oil_function_class_ptr_conv_s8_u8;
++#define oil_conv_s8_u32 ((_oil_type_conv_s8_u32)(*(void **)&oil_function_class_conv_s8_u32))
++extern OilFunctionClass oil_function_class_conv_s8_u8;
+ typedef void (*_oil_type_conv_s8_u8)(int8_t * dest, int dstr, const uint8_t * src, int sstr, int n);
+-#define oil_conv_s8_u8 ((_oil_type_conv_s8_u8)(*(void **)oil_function_class_ptr_conv_s8_u8))
+-extern OilFunctionClass *oil_function_class_ptr_conv_u16_f32;
++#define oil_conv_s8_u8 ((_oil_type_conv_s8_u8)(*(void **)&oil_function_class_conv_s8_u8))
++extern OilFunctionClass oil_function_class_conv_u16_f32;
+ typedef void (*_oil_type_conv_u16_f32)(uint16_t * dest, int dstr, const float * src, int sstr, int n);
+-#define oil_conv_u16_f32 ((_oil_type_conv_u16_f32)(*(void **)oil_function_class_ptr_conv_u16_f32))
+-extern OilFunctionClass *oil_function_class_ptr_conv_u16_f64;
++#define oil_conv_u16_f32 ((_oil_type_conv_u16_f32)(*(void **)&oil_function_class_conv_u16_f32))
++extern OilFunctionClass oil_function_class_conv_u16_f64;
+ typedef void (*_oil_type_conv_u16_f64)(uint16_t * dest, int dstr, const double * src, int sstr, int n);
+-#define oil_conv_u16_f64 ((_oil_type_conv_u16_f64)(*(void **)oil_function_class_ptr_conv_u16_f64))
+-extern OilFunctionClass *oil_function_class_ptr_conv_u16_s16;
++#define oil_conv_u16_f64 ((_oil_type_conv_u16_f64)(*(void **)&oil_function_class_conv_u16_f64))
++extern OilFunctionClass oil_function_class_conv_u16_s16;
+ typedef void (*_oil_type_conv_u16_s16)(uint16_t * dest, int dstr, const int16_t * src, int sstr, int n);
+-#define oil_conv_u16_s16 ((_oil_type_conv_u16_s16)(*(void **)oil_function_class_ptr_conv_u16_s16))
+-extern OilFunctionClass *oil_function_class_ptr_conv_u16_s32;
++#define oil_conv_u16_s16 ((_oil_type_conv_u16_s16)(*(void **)&oil_function_class_conv_u16_s16))
++extern OilFunctionClass oil_function_class_conv_u16_s32;
+ typedef void (*_oil_type_conv_u16_s32)(uint16_t * dest, int dstr, const int32_t * src, int sstr, int n);
+-#define oil_conv_u16_s32 ((_oil_type_conv_u16_s32)(*(void **)oil_function_class_ptr_conv_u16_s32))
+-extern OilFunctionClass *oil_function_class_ptr_conv_u16_s8;
++#define oil_conv_u16_s32 ((_oil_type_conv_u16_s32)(*(void **)&oil_function_class_conv_u16_s32))
++extern OilFunctionClass oil_function_class_conv_u16_s8;
+ typedef void (*_oil_type_conv_u16_s8)(uint16_t * dest, int dstr, const int8_t * src, int sstr, int n);
+-#define oil_conv_u16_s8 ((_oil_type_conv_u16_s8)(*(void **)oil_function_class_ptr_conv_u16_s8))
+-extern OilFunctionClass *oil_function_class_ptr_conv_u16_u32;
++#define oil_conv_u16_s8 ((_oil_type_conv_u16_s8)(*(void **)&oil_function_class_conv_u16_s8))
++extern OilFunctionClass oil_function_class_conv_u16_u32;
+ typedef void (*_oil_type_conv_u16_u32)(uint16_t * dest, int dstr, const uint32_t * src, int sstr, int n);
+-#define oil_conv_u16_u32 ((_oil_type_conv_u16_u32)(*(void **)oil_function_class_ptr_conv_u16_u32))
+-extern OilFunctionClass *oil_function_class_ptr_conv_u16_u8;
++#define oil_conv_u16_u32 ((_oil_type_conv_u16_u32)(*(void **)&oil_function_class_conv_u16_u32))
++extern OilFunctionClass oil_function_class_conv_u16_u8;
+ typedef void (*_oil_type_conv_u16_u8)(uint16_t * dest, int dstr, const uint8_t * src, int sstr, int n);
+-#define oil_conv_u16_u8 ((_oil_type_conv_u16_u8)(*(void **)oil_function_class_ptr_conv_u16_u8))
+-extern OilFunctionClass *oil_function_class_ptr_conv_u32_f32;
++#define oil_conv_u16_u8 ((_oil_type_conv_u16_u8)(*(void **)&oil_function_class_conv_u16_u8))
++extern OilFunctionClass oil_function_class_conv_u32_f32;
+ typedef void (*_oil_type_conv_u32_f32)(uint32_t * dest, int dstr, const float * src, int sstr, int n);
+-#define oil_conv_u32_f32 ((_oil_type_conv_u32_f32)(*(void **)oil_function_class_ptr_conv_u32_f32))
+-extern OilFunctionClass *oil_function_class_ptr_conv_u32_f64;
++#define oil_conv_u32_f32 ((_oil_type_conv_u32_f32)(*(void **)&oil_function_class_conv_u32_f32))
++extern OilFunctionClass oil_function_class_conv_u32_f64;
+ typedef void (*_oil_type_conv_u32_f64)(uint32_t * dest, int dstr, const double * src, int sstr, int n);
+-#define oil_conv_u32_f64 ((_oil_type_conv_u32_f64)(*(void **)oil_function_class_ptr_conv_u32_f64))
+-extern OilFunctionClass *oil_function_class_ptr_conv_u32_s16;
++#define oil_conv_u32_f64 ((_oil_type_conv_u32_f64)(*(void **)&oil_function_class_conv_u32_f64))
++extern OilFunctionClass oil_function_class_conv_u32_s16;
+ typedef void (*_oil_type_conv_u32_s16)(uint32_t * dest, int dstr, const int16_t * src, int sstr, int n);
+-#define oil_conv_u32_s16 ((_oil_type_conv_u32_s16)(*(void **)oil_function_class_ptr_conv_u32_s16))
+-extern OilFunctionClass *oil_function_class_ptr_conv_u32_s32;
++#define oil_conv_u32_s16 ((_oil_type_conv_u32_s16)(*(void **)&oil_function_class_conv_u32_s16))
++extern OilFunctionClass oil_function_class_conv_u32_s32;
+ typedef void (*_oil_type_conv_u32_s32)(uint32_t * dest, int dstr, const int32_t * src, int sstr, int n);
+-#define oil_conv_u32_s32 ((_oil_type_conv_u32_s32)(*(void **)oil_function_class_ptr_conv_u32_s32))
+-extern OilFunctionClass *oil_function_class_ptr_conv_u32_s8;
++#define oil_conv_u32_s32 ((_oil_type_conv_u32_s32)(*(void **)&oil_function_class_conv_u32_s32))
++extern OilFunctionClass oil_function_class_conv_u32_s8;
+ typedef void (*_oil_type_conv_u32_s8)(uint32_t * dest, int dstr, const int8_t * src, int sstr, int n);
+-#define oil_conv_u32_s8 ((_oil_type_conv_u32_s8)(*(void **)oil_function_class_ptr_conv_u32_s8))
+-extern OilFunctionClass *oil_function_class_ptr_conv_u32_u16;
++#define oil_conv_u32_s8 ((_oil_type_conv_u32_s8)(*(void **)&oil_function_class_conv_u32_s8))
++extern OilFunctionClass oil_function_class_conv_u32_u16;
+ typedef void (*_oil_type_conv_u32_u16)(uint32_t * dest, int dstr, const uint16_t * src, int sstr, int n);
+-#define oil_conv_u32_u16 ((_oil_type_conv_u32_u16)(*(void **)oil_function_class_ptr_conv_u32_u16))
+-extern OilFunctionClass *oil_function_class_ptr_conv_u32_u8;
++#define oil_conv_u32_u16 ((_oil_type_conv_u32_u16)(*(void **)&oil_function_class_conv_u32_u16))
++extern OilFunctionClass oil_function_class_conv_u32_u8;
+ typedef void (*_oil_type_conv_u32_u8)(uint32_t * dest, int dstr, const uint8_t * src, int sstr, int n);
+-#define oil_conv_u32_u8 ((_oil_type_conv_u32_u8)(*(void **)oil_function_class_ptr_conv_u32_u8))
+-extern OilFunctionClass *oil_function_class_ptr_conv_u8_f32;
++#define oil_conv_u32_u8 ((_oil_type_conv_u32_u8)(*(void **)&oil_function_class_conv_u32_u8))
++extern OilFunctionClass oil_function_class_conv_u8_f32;
+ typedef void (*_oil_type_conv_u8_f32)(uint8_t * dest, int dstr, const float * src, int sstr, int n);
+-#define oil_conv_u8_f32 ((_oil_type_conv_u8_f32)(*(void **)oil_function_class_ptr_conv_u8_f32))
+-extern OilFunctionClass *oil_function_class_ptr_conv_u8_f64;
++#define oil_conv_u8_f32 ((_oil_type_conv_u8_f32)(*(void **)&oil_function_class_conv_u8_f32))
++extern OilFunctionClass oil_function_class_conv_u8_f64;
+ typedef void (*_oil_type_conv_u8_f64)(uint8_t * dest, int dstr, const double * src, int sstr, int n);
+-#define oil_conv_u8_f64 ((_oil_type_conv_u8_f64)(*(void **)oil_function_class_ptr_conv_u8_f64))
+-extern OilFunctionClass *oil_function_class_ptr_conv_u8_s16;
++#define oil_conv_u8_f64 ((_oil_type_conv_u8_f64)(*(void **)&oil_function_class_conv_u8_f64))
++extern OilFunctionClass oil_function_class_conv_u8_s16;
+ typedef void (*_oil_type_conv_u8_s16)(uint8_t * dest, int dstr, const int16_t * src, int sstr, int n);
+-#define oil_conv_u8_s16 ((_oil_type_conv_u8_s16)(*(void **)oil_function_class_ptr_conv_u8_s16))
+-extern OilFunctionClass *oil_function_class_ptr_conv_u8_s32;
++#define oil_conv_u8_s16 ((_oil_type_conv_u8_s16)(*(void **)&oil_function_class_conv_u8_s16))
++extern OilFunctionClass oil_function_class_conv_u8_s32;
+ typedef void (*_oil_type_conv_u8_s32)(uint8_t * dest, int dstr, const int32_t * src, int sstr, int n);
+-#define oil_conv_u8_s32 ((_oil_type_conv_u8_s32)(*(void **)oil_function_class_ptr_conv_u8_s32))
+-extern OilFunctionClass *oil_function_class_ptr_conv_u8_s8;
++#define oil_conv_u8_s32 ((_oil_type_conv_u8_s32)(*(void **)&oil_function_class_conv_u8_s32))
++extern OilFunctionClass oil_function_class_conv_u8_s8;
+ typedef void (*_oil_type_conv_u8_s8)(uint8_t * dest, int dstr, const int8_t * src, int sstr, int n);
+-#define oil_conv_u8_s8 ((_oil_type_conv_u8_s8)(*(void **)oil_function_class_ptr_conv_u8_s8))
+-extern OilFunctionClass *oil_function_class_ptr_conv_u8_u16;
++#define oil_conv_u8_s8 ((_oil_type_conv_u8_s8)(*(void **)&oil_function_class_conv_u8_s8))
++extern OilFunctionClass oil_function_class_conv_u8_u16;
+ typedef void (*_oil_type_conv_u8_u16)(uint8_t * dest, int dstr, const uint16_t * src, int sstr, int n);
+-#define oil_conv_u8_u16 ((_oil_type_conv_u8_u16)(*(void **)oil_function_class_ptr_conv_u8_u16))
+-extern OilFunctionClass *oil_function_class_ptr_conv_u8_u32;
++#define oil_conv_u8_u16 ((_oil_type_conv_u8_u16)(*(void **)&oil_function_class_conv_u8_u16))
++extern OilFunctionClass oil_function_class_conv_u8_u32;
+ typedef void (*_oil_type_conv_u8_u32)(uint8_t * dest, int dstr, const uint32_t * src, int sstr, int n);
+-#define oil_conv_u8_u32 ((_oil_type_conv_u8_u32)(*(void **)oil_function_class_ptr_conv_u8_u32))
+-extern OilFunctionClass *oil_function_class_ptr_copy_u8;
++#define oil_conv_u8_u32 ((_oil_type_conv_u8_u32)(*(void **)&oil_function_class_conv_u8_u32))
++extern OilFunctionClass oil_function_class_copy_u8;
+ typedef void (*_oil_type_copy_u8)(uint8_t * dest, const uint8_t * src, int n);
+-#define oil_copy_u8 ((_oil_type_copy_u8)(*(void **)oil_function_class_ptr_copy_u8))
+-extern OilFunctionClass *oil_function_class_ptr_dct36_f32;
++#define oil_copy_u8 ((_oil_type_copy_u8)(*(void **)&oil_function_class_copy_u8))
++extern OilFunctionClass oil_function_class_dct36_f32;
+ typedef void (*_oil_type_dct36_f32)(float * d_36, int dstr, const float * s_36, int sstr);
+-#define oil_dct36_f32 ((_oil_type_dct36_f32)(*(void **)oil_function_class_ptr_dct36_f32))
+-extern OilFunctionClass *oil_function_class_ptr_dequantize8x8_s16;
++#define oil_dct36_f32 ((_oil_type_dct36_f32)(*(void **)&oil_function_class_dct36_f32))
++extern OilFunctionClass oil_function_class_dequantize8x8_s16;
+ typedef void (*_oil_type_dequantize8x8_s16)(int16_t * d_8x8, int dstr, const int16_t * s1_8x8, int sstr1, const int16_t * s2_8x8, int sstr2);
+-#define oil_dequantize8x8_s16 ((_oil_type_dequantize8x8_s16)(*(void **)oil_function_class_ptr_dequantize8x8_s16))
+-extern OilFunctionClass *oil_function_class_ptr_diffsquaresum_f64;
++#define oil_dequantize8x8_s16 ((_oil_type_dequantize8x8_s16)(*(void **)&oil_function_class_dequantize8x8_s16))
++extern OilFunctionClass oil_function_class_diffsquaresum_f64;
+ typedef void (*_oil_type_diffsquaresum_f64)(double * d_1, const double * src1, int sstr1, const double * src2, int sstr2, int n);
+-#define oil_diffsquaresum_f64 ((_oil_type_diffsquaresum_f64)(*(void **)oil_function_class_ptr_diffsquaresum_f64))
+-extern OilFunctionClass *oil_function_class_ptr_fdct8_f64;
++#define oil_diffsquaresum_f64 ((_oil_type_diffsquaresum_f64)(*(void **)&oil_function_class_diffsquaresum_f64))
++extern OilFunctionClass oil_function_class_fdct8_f64;
+ typedef void (*_oil_type_fdct8_f64)(double * d_8, const double * s_8, int dstr, int sstr);
+-#define oil_fdct8_f64 ((_oil_type_fdct8_f64)(*(void **)oil_function_class_ptr_fdct8_f64))
+-extern OilFunctionClass *oil_function_class_ptr_fdct8x8_f64;
++#define oil_fdct8_f64 ((_oil_type_fdct8_f64)(*(void **)&oil_function_class_fdct8_f64))
++extern OilFunctionClass oil_function_class_fdct8x8_f64;
+ typedef void (*_oil_type_fdct8x8_f64)(double * d_8x8, int dstr, const double * s_8x8, int sstr);
+-#define oil_fdct8x8_f64 ((_oil_type_fdct8x8_f64)(*(void **)oil_function_class_ptr_fdct8x8_f64))
+-extern OilFunctionClass *oil_function_class_ptr_fdct8x8s_s16;
++#define oil_fdct8x8_f64 ((_oil_type_fdct8x8_f64)(*(void **)&oil_function_class_fdct8x8_f64))
++extern OilFunctionClass oil_function_class_fdct8x8s_s16;
+ typedef void (*_oil_type_fdct8x8s_s16)(int16_t * d_8x8, int ds, const int16_t * s_8x8, int ss);
+-#define oil_fdct8x8s_s16 ((_oil_type_fdct8x8s_s16)(*(void **)oil_function_class_ptr_fdct8x8s_s16))
+-extern OilFunctionClass *oil_function_class_ptr_idct8_f64;
++#define oil_fdct8x8s_s16 ((_oil_type_fdct8x8s_s16)(*(void **)&oil_function_class_fdct8x8s_s16))
++extern OilFunctionClass oil_function_class_idct8_f64;
+ typedef void (*_oil_type_idct8_f64)(double * d_8, int dstr, const double * s_8, int sstr);
+-#define oil_idct8_f64 ((_oil_type_idct8_f64)(*(void **)oil_function_class_ptr_idct8_f64))
+-extern OilFunctionClass *oil_function_class_ptr_idct8x8_f64;
++#define oil_idct8_f64 ((_oil_type_idct8_f64)(*(void **)&oil_function_class_idct8_f64))
++extern OilFunctionClass oil_function_class_idct8x8_f64;
+ typedef void (*_oil_type_idct8x8_f64)(double * d_8x8, int dstr, const double * s_8x8, int sstr);
+-#define oil_idct8x8_f64 ((_oil_type_idct8x8_f64)(*(void **)oil_function_class_ptr_idct8x8_f64))
+-extern OilFunctionClass *oil_function_class_ptr_idct8x8_s16;
++#define oil_idct8x8_f64 ((_oil_type_idct8x8_f64)(*(void **)&oil_function_class_idct8x8_f64))
++extern OilFunctionClass oil_function_class_idct8x8_s16;
+ typedef void (*_oil_type_idct8x8_s16)(int16_t * d_8x8, int dstr, const int16_t * s_8x8, int sstr);
+-#define oil_idct8x8_s16 ((_oil_type_idct8x8_s16)(*(void **)oil_function_class_ptr_idct8x8_s16))
+-extern OilFunctionClass *oil_function_class_ptr_imdct12_f64;
++#define oil_idct8x8_s16 ((_oil_type_idct8x8_s16)(*(void **)&oil_function_class_idct8x8_s16))
++extern OilFunctionClass oil_function_class_imdct12_f64;
+ typedef void (*_oil_type_imdct12_f64)(double * d_12, const double * s_6);
+-#define oil_imdct12_f64 ((_oil_type_imdct12_f64)(*(void **)oil_function_class_ptr_imdct12_f64))
+-extern OilFunctionClass *oil_function_class_ptr_imdct32_f32;
++#define oil_imdct12_f64 ((_oil_type_imdct12_f64)(*(void **)&oil_function_class_imdct12_f64))
++extern OilFunctionClass oil_function_class_imdct32_f32;
+ typedef void (*_oil_type_imdct32_f32)(float * d_32, const float * s_32);
+-#define oil_imdct32_f32 ((_oil_type_imdct32_f32)(*(void **)oil_function_class_ptr_imdct32_f32))
+-extern OilFunctionClass *oil_function_class_ptr_imdct36_f64;
++#define oil_imdct32_f32 ((_oil_type_imdct32_f32)(*(void **)&oil_function_class_imdct32_f32))
++extern OilFunctionClass oil_function_class_imdct36_f64;
+ typedef void (*_oil_type_imdct36_f64)(double * d_36, const double * s_18);
+-#define oil_imdct36_f64 ((_oil_type_imdct36_f64)(*(void **)oil_function_class_ptr_imdct36_f64))
+-extern OilFunctionClass *oil_function_class_ptr_md5;
++#define oil_imdct36_f64 ((_oil_type_imdct36_f64)(*(void **)&oil_function_class_imdct36_f64))
++extern OilFunctionClass oil_function_class_md5;
+ typedef void (*_oil_type_md5)(uint32_t * i_4, const uint32_t * s_16);
+-#define oil_md5 ((_oil_type_md5)(*(void **)oil_function_class_ptr_md5))
+-extern OilFunctionClass *oil_function_class_ptr_mdct12_f64;
++#define oil_md5 ((_oil_type_md5)(*(void **)&oil_function_class_md5))
++extern OilFunctionClass oil_function_class_mdct12_f64;
+ typedef void (*_oil_type_mdct12_f64)(double * d_6, const double * s_12);
+-#define oil_mdct12_f64 ((_oil_type_mdct12_f64)(*(void **)oil_function_class_ptr_mdct12_f64))
+-extern OilFunctionClass *oil_function_class_ptr_mdct36_f64;
++#define oil_mdct12_f64 ((_oil_type_mdct12_f64)(*(void **)&oil_function_class_mdct12_f64))
++extern OilFunctionClass oil_function_class_mdct36_f64;
+ typedef void (*_oil_type_mdct36_f64)(double * d_18, const double * s_36);
+-#define oil_mdct36_f64 ((_oil_type_mdct36_f64)(*(void **)oil_function_class_ptr_mdct36_f64))
+-extern OilFunctionClass *oil_function_class_ptr_mix_u8;
++#define oil_mdct36_f64 ((_oil_type_mdct36_f64)(*(void **)&oil_function_class_mdct36_f64))
++extern OilFunctionClass oil_function_class_mix_u8;
+ typedef void (*_oil_type_mix_u8)(uint8_t * dest, const uint8_t * src1, const uint8_t * src2, const uint8_t * src3, int n);
+-#define oil_mix_u8 ((_oil_type_mix_u8)(*(void **)oil_function_class_ptr_mix_u8))
+-extern OilFunctionClass *oil_function_class_ptr_mult8x8_s16;
++#define oil_mix_u8 ((_oil_type_mix_u8)(*(void **)&oil_function_class_mix_u8))
++extern OilFunctionClass oil_function_class_mult8x8_s16;
+ typedef void (*_oil_type_mult8x8_s16)(int16_t * d_8x8, const int16_t * s1_8x8, const int16_t * s2_8x8, int ds, int ss1, int ss2);
+-#define oil_mult8x8_s16 ((_oil_type_mult8x8_s16)(*(void **)oil_function_class_ptr_mult8x8_s16))
+-extern OilFunctionClass *oil_function_class_ptr_multsum_f32;
++#define oil_mult8x8_s16 ((_oil_type_mult8x8_s16)(*(void **)&oil_function_class_mult8x8_s16))
++extern OilFunctionClass oil_function_class_multsum_f32;
+ typedef void (*_oil_type_multsum_f32)(float * dest, const float * src1, int sstr1, const float * src2, int sstr2, int n);
+-#define oil_multsum_f32 ((_oil_type_multsum_f32)(*(void **)oil_function_class_ptr_multsum_f32))
+-extern OilFunctionClass *oil_function_class_ptr_multsum_f64;
++#define oil_multsum_f32 ((_oil_type_multsum_f32)(*(void **)&oil_function_class_multsum_f32))
++extern OilFunctionClass oil_function_class_multsum_f64;
+ typedef void (*_oil_type_multsum_f64)(double * dest, const double * src1, int sstr1, const double * src2, int sstr2, int n);
+-#define oil_multsum_f64 ((_oil_type_multsum_f64)(*(void **)oil_function_class_ptr_multsum_f64))
+-extern OilFunctionClass *oil_function_class_ptr_null;
++#define oil_multsum_f64 ((_oil_type_multsum_f64)(*(void **)&oil_function_class_multsum_f64))
++extern OilFunctionClass oil_function_class_null;
+ typedef void (*_oil_type_null)();
+-#define oil_null ((_oil_type_null)(*(void **)oil_function_class_ptr_null))
+-extern OilFunctionClass *oil_function_class_ptr_permute_f32;
+-typedef void (*_oil_type_permute_f32)(float * dest, int dstr, const float * src1, int sstr1, const int32_t * src2, int sstr2, int n);
+-#define oil_permute_f32 ((_oil_type_permute_f32)(*(void **)oil_function_class_ptr_permute_f32))
+-extern OilFunctionClass *oil_function_class_ptr_permute_f64;
+-typedef void (*_oil_type_permute_f64)(double * dest, int dstr, const double * src1, int sstr1, const int32_t * src2, int sstr2, int n);
+-#define oil_permute_f64 ((_oil_type_permute_f64)(*(void **)oil_function_class_ptr_permute_f64))
+-extern OilFunctionClass *oil_function_class_ptr_permute_s16;
+-typedef void (*_oil_type_permute_s16)(int16_t * dest, int dstr, const int16_t * src1, int sstr1, const int32_t * src2, int sstr2, int n);
+-#define oil_permute_s16 ((_oil_type_permute_s16)(*(void **)oil_function_class_ptr_permute_s16))
+-extern OilFunctionClass *oil_function_class_ptr_permute_s32;
+-typedef void (*_oil_type_permute_s32)(int32_t * dest, int dstr, const int32_t * src1, int sstr1, const int32_t * src2, int sstr2, int n);
+-#define oil_permute_s32 ((_oil_type_permute_s32)(*(void **)oil_function_class_ptr_permute_s32))
+-extern OilFunctionClass *oil_function_class_ptr_permute_s8;
+-typedef void (*_oil_type_permute_s8)(int8_t * dest, int dstr, const int8_t * src1, int sstr1, const int32_t * src2, int sstr2, int n);
+-#define oil_permute_s8 ((_oil_type_permute_s8)(*(void **)oil_function_class_ptr_permute_s8))
+-extern OilFunctionClass *oil_function_class_ptr_permute_u16;
+-typedef void (*_oil_type_permute_u16)(uint16_t * dest, int dstr, const uint16_t * src1, int sstr1, const int32_t * src2, int sstr2, int n);
+-#define oil_permute_u16 ((_oil_type_permute_u16)(*(void **)oil_function_class_ptr_permute_u16))
+-extern OilFunctionClass *oil_function_class_ptr_permute_u32;
+-typedef void (*_oil_type_permute_u32)(uint32_t * dest, int dstr, const uint32_t * src1, int sstr1, const int32_t * src2, int sstr2, int n);
+-#define oil_permute_u32 ((_oil_type_permute_u32)(*(void **)oil_function_class_ptr_permute_u32))
+-extern OilFunctionClass *oil_function_class_ptr_permute_u8;
+-typedef void (*_oil_type_permute_u8)(uint8_t * dest, int dstr, const uint8_t * src1, int sstr1, const int32_t * src2, int sstr2, int n);
+-#define oil_permute_u8 ((_oil_type_permute_u8)(*(void **)oil_function_class_ptr_permute_u8))
+-extern OilFunctionClass *oil_function_class_ptr_rgb2bgr;
+-typedef void (*_oil_type_rgb2bgr)(uint8_t * d_3xn, const uint8_t * s_3xn, int n);
+-#define oil_rgb2bgr ((_oil_type_rgb2bgr)(*(void **)oil_function_class_ptr_rgb2bgr))
+-extern OilFunctionClass *oil_function_class_ptr_rgb2rgba;
+-typedef void (*_oil_type_rgb2rgba)(uint8_t * d_4xn, const uint8_t * s_3xn, int n);
+-#define oil_rgb2rgba ((_oil_type_rgb2rgba)(*(void **)oil_function_class_ptr_rgb2rgba))
+-extern OilFunctionClass *oil_function_class_ptr_sad8x8_f64;
++#define oil_null ((_oil_type_null)(*(void **)&oil_function_class_null))
++extern OilFunctionClass oil_function_class_sad8x8_f64;
+ typedef void (*_oil_type_sad8x8_f64)(double * d_8x8, int ds, const double * s1_8x8, int ss1, const double * s2_8x8, int ss2);
+-#define oil_sad8x8_f64 ((_oil_type_sad8x8_f64)(*(void **)oil_function_class_ptr_sad8x8_f64))
+-extern OilFunctionClass *oil_function_class_ptr_sad8x8_s16;
++#define oil_sad8x8_f64 ((_oil_type_sad8x8_f64)(*(void **)&oil_function_class_sad8x8_f64))
++extern OilFunctionClass oil_function_class_sad8x8_s16;
+ typedef void (*_oil_type_sad8x8_s16)(uint32_t * d_8x8, int ds, const int16_t * s1_8x8, int ss1, const int16_t * s2_8x8, int ss2);
+-#define oil_sad8x8_s16 ((_oil_type_sad8x8_s16)(*(void **)oil_function_class_ptr_sad8x8_s16))
+-extern OilFunctionClass *oil_function_class_ptr_scalaradd_f32;
++#define oil_sad8x8_s16 ((_oil_type_sad8x8_s16)(*(void **)&oil_function_class_sad8x8_s16))
++extern OilFunctionClass oil_function_class_scalaradd_f32;
+ typedef void (*_oil_type_scalaradd_f32)(float * dest, int dstr, const float * src, int sstr, const float * s2_1, int n);
+-#define oil_scalaradd_f32 ((_oil_type_scalaradd_f32)(*(void **)oil_function_class_ptr_scalaradd_f32))
+-extern OilFunctionClass *oil_function_class_ptr_scalaradd_f64;
++#define oil_scalaradd_f32 ((_oil_type_scalaradd_f32)(*(void **)&oil_function_class_scalaradd_f32))
++extern OilFunctionClass oil_function_class_scalaradd_f64;
+ typedef void (*_oil_type_scalaradd_f64)(double * dest, int dstr, const double * src, int sstr, const double * s2_1, int n);
+-#define oil_scalaradd_f64 ((_oil_type_scalaradd_f64)(*(void **)oil_function_class_ptr_scalaradd_f64))
+-extern OilFunctionClass *oil_function_class_ptr_scalaradd_s16;
++#define oil_scalaradd_f64 ((_oil_type_scalaradd_f64)(*(void **)&oil_function_class_scalaradd_f64))
++extern OilFunctionClass oil_function_class_scalaradd_s16;
+ typedef void (*_oil_type_scalaradd_s16)(int16_t * dest, int dstr, const int16_t * src, int sstr, const int16_t * s2_1, int n);
+-#define oil_scalaradd_s16 ((_oil_type_scalaradd_s16)(*(void **)oil_function_class_ptr_scalaradd_s16))
+-extern OilFunctionClass *oil_function_class_ptr_scalaradd_s32;
++#define oil_scalaradd_s16 ((_oil_type_scalaradd_s16)(*(void **)&oil_function_class_scalaradd_s16))
++extern OilFunctionClass oil_function_class_scalaradd_s32;
+ typedef void (*_oil_type_scalaradd_s32)(int32_t * dest, int dstr, const int32_t * src, int sstr, const int32_t * s2_1, int n);
+-#define oil_scalaradd_s32 ((_oil_type_scalaradd_s32)(*(void **)oil_function_class_ptr_scalaradd_s32))
+-extern OilFunctionClass *oil_function_class_ptr_scalaradd_s8;
++#define oil_scalaradd_s32 ((_oil_type_scalaradd_s32)(*(void **)&oil_function_class_scalaradd_s32))
++extern OilFunctionClass oil_function_class_scalaradd_s8;
+ typedef void (*_oil_type_scalaradd_s8)(int8_t * dest, int dstr, const int8_t * src, int sstr, const int8_t * s2_1, int n);
+-#define oil_scalaradd_s8 ((_oil_type_scalaradd_s8)(*(void **)oil_function_class_ptr_scalaradd_s8))
+-extern OilFunctionClass *oil_function_class_ptr_scalaradd_u16;
++#define oil_scalaradd_s8 ((_oil_type_scalaradd_s8)(*(void **)&oil_function_class_scalaradd_s8))
++extern OilFunctionClass oil_function_class_scalaradd_u16;
+ typedef void (*_oil_type_scalaradd_u16)(uint16_t * dest, int dstr, const uint16_t * src, int sstr, const uint16_t * s2_1, int n);
+-#define oil_scalaradd_u16 ((_oil_type_scalaradd_u16)(*(void **)oil_function_class_ptr_scalaradd_u16))
+-extern OilFunctionClass *oil_function_class_ptr_scalaradd_u32;
++#define oil_scalaradd_u16 ((_oil_type_scalaradd_u16)(*(void **)&oil_function_class_scalaradd_u16))
++extern OilFunctionClass oil_function_class_scalaradd_u32;
+ typedef void (*_oil_type_scalaradd_u32)(uint32_t * dest, int dstr, const uint32_t * src, int sstr, const uint32_t * s2_1, int n);
+-#define oil_scalaradd_u32 ((_oil_type_scalaradd_u32)(*(void **)oil_function_class_ptr_scalaradd_u32))
+-extern OilFunctionClass *oil_function_class_ptr_scalaradd_u8;
++#define oil_scalaradd_u32 ((_oil_type_scalaradd_u32)(*(void **)&oil_function_class_scalaradd_u32))
++extern OilFunctionClass oil_function_class_scalaradd_u8;
+ typedef void (*_oil_type_scalaradd_u8)(uint8_t * dest, int dstr, const uint8_t * src, int sstr, const uint8_t * s2_1, int n);
+-#define oil_scalaradd_u8 ((_oil_type_scalaradd_u8)(*(void **)oil_function_class_ptr_scalaradd_u8))
+-extern OilFunctionClass *oil_function_class_ptr_scalarmult_f32;
++#define oil_scalaradd_u8 ((_oil_type_scalaradd_u8)(*(void **)&oil_function_class_scalaradd_u8))
++extern OilFunctionClass oil_function_class_scalarmult_f32;
+ typedef void (*_oil_type_scalarmult_f32)(float * dest, int dstr, const float * src, int sstr, const float * s2_1, int n);
+-#define oil_scalarmult_f32 ((_oil_type_scalarmult_f32)(*(void **)oil_function_class_ptr_scalarmult_f32))
+-extern OilFunctionClass *oil_function_class_ptr_scalarmult_f64;
++#define oil_scalarmult_f32 ((_oil_type_scalarmult_f32)(*(void **)&oil_function_class_scalarmult_f32))
++extern OilFunctionClass oil_function_class_scalarmult_f64;
+ typedef void (*_oil_type_scalarmult_f64)(double * dest, int dstr, const double * src, int sstr, const double * s2_1, int n);
+-#define oil_scalarmult_f64 ((_oil_type_scalarmult_f64)(*(void **)oil_function_class_ptr_scalarmult_f64))
+-extern OilFunctionClass *oil_function_class_ptr_scalarmult_s16;
++#define oil_scalarmult_f64 ((_oil_type_scalarmult_f64)(*(void **)&oil_function_class_scalarmult_f64))
++extern OilFunctionClass oil_function_class_scalarmult_s16;
+ typedef void (*_oil_type_scalarmult_s16)(int16_t * dest, int dstr, const int16_t * src, int sstr, const int16_t * s2_1, int n);
+-#define oil_scalarmult_s16 ((_oil_type_scalarmult_s16)(*(void **)oil_function_class_ptr_scalarmult_s16))
+-extern OilFunctionClass *oil_function_class_ptr_scalarmult_s32;
++#define oil_scalarmult_s16 ((_oil_type_scalarmult_s16)(*(void **)&oil_function_class_scalarmult_s16))
++extern OilFunctionClass oil_function_class_scalarmult_s32;
+ typedef void (*_oil_type_scalarmult_s32)(int32_t * dest, int dstr, const int32_t * src, int sstr, const int32_t * s2_1, int n);
+-#define oil_scalarmult_s32 ((_oil_type_scalarmult_s32)(*(void **)oil_function_class_ptr_scalarmult_s32))
+-extern OilFunctionClass *oil_function_class_ptr_scalarmult_s8;
++#define oil_scalarmult_s32 ((_oil_type_scalarmult_s32)(*(void **)&oil_function_class_scalarmult_s32))
++extern OilFunctionClass oil_function_class_scalarmult_s8;
+ typedef void (*_oil_type_scalarmult_s8)(int8_t * dest, int dstr, const int8_t * src, int sstr, const int8_t * s2_1, int n);
+-#define oil_scalarmult_s8 ((_oil_type_scalarmult_s8)(*(void **)oil_function_class_ptr_scalarmult_s8))
+-extern OilFunctionClass *oil_function_class_ptr_scalarmult_u16;
++#define oil_scalarmult_s8 ((_oil_type_scalarmult_s8)(*(void **)&oil_function_class_scalarmult_s8))
++extern OilFunctionClass oil_function_class_scalarmult_u16;
+ typedef void (*_oil_type_scalarmult_u16)(uint16_t * dest, int dstr, const uint16_t * src, int sstr, const uint16_t * s2_1, int n);
+-#define oil_scalarmult_u16 ((_oil_type_scalarmult_u16)(*(void **)oil_function_class_ptr_scalarmult_u16))
+-extern OilFunctionClass *oil_function_class_ptr_scalarmult_u32;
++#define oil_scalarmult_u16 ((_oil_type_scalarmult_u16)(*(void **)&oil_function_class_scalarmult_u16))
++extern OilFunctionClass oil_function_class_scalarmult_u32;
+ typedef void (*_oil_type_scalarmult_u32)(uint32_t * dest, int dstr, const uint32_t * src, int sstr, const uint32_t * s2_1, int n);
+-#define oil_scalarmult_u32 ((_oil_type_scalarmult_u32)(*(void **)oil_function_class_ptr_scalarmult_u32))
+-extern OilFunctionClass *oil_function_class_ptr_scalarmult_u8;
++#define oil_scalarmult_u32 ((_oil_type_scalarmult_u32)(*(void **)&oil_function_class_scalarmult_u32))
++extern OilFunctionClass oil_function_class_scalarmult_u8;
+ typedef void (*_oil_type_scalarmult_u8)(uint8_t * dest, int dstr, const uint8_t * src, int sstr, const uint8_t * s2_1, int n);
+-#define oil_scalarmult_u8 ((_oil_type_scalarmult_u8)(*(void **)oil_function_class_ptr_scalarmult_u8))
+-extern OilFunctionClass *oil_function_class_ptr_scanlinescale2_u8;
++#define oil_scalarmult_u8 ((_oil_type_scalarmult_u8)(*(void **)&oil_function_class_scalarmult_u8))
++extern OilFunctionClass oil_function_class_scanlinescale2_u8;
+ typedef void (*_oil_type_scanlinescale2_u8)(uint8_t * dest, const uint8_t * src, int n);
+-#define oil_scanlinescale2_u8 ((_oil_type_scanlinescale2_u8)(*(void **)oil_function_class_ptr_scanlinescale2_u8))
+-extern OilFunctionClass *oil_function_class_ptr_sincos_f64;
++#define oil_scanlinescale2_u8 ((_oil_type_scanlinescale2_u8)(*(void **)&oil_function_class_scanlinescale2_u8))
++extern OilFunctionClass oil_function_class_sincos_f64;
+ typedef void (*_oil_type_sincos_f64)(double * dest1, double * dest2, int n, const double * s1_1, const double * s2_1);
+-#define oil_sincos_f64 ((_oil_type_sincos_f64)(*(void **)oil_function_class_ptr_sincos_f64))
+-extern OilFunctionClass *oil_function_class_ptr_splat_u32;
++#define oil_sincos_f64 ((_oil_type_sincos_f64)(*(void **)&oil_function_class_sincos_f64))
++extern OilFunctionClass oil_function_class_splat_u32;
+ typedef void (*_oil_type_splat_u32)(uint32_t * dest, int dstr, const uint32_t * s1_1, int n);
+-#define oil_splat_u32 ((_oil_type_splat_u32)(*(void **)oil_function_class_ptr_splat_u32))
+-extern OilFunctionClass *oil_function_class_ptr_splat_u8;
++#define oil_splat_u32 ((_oil_type_splat_u32)(*(void **)&oil_function_class_splat_u32))
++extern OilFunctionClass oil_function_class_splat_u8;
+ typedef void (*_oil_type_splat_u8)(uint8_t * dest, int dstr, const uint8_t * s1_1, int n);
+-#define oil_splat_u8 ((_oil_type_splat_u8)(*(void **)oil_function_class_ptr_splat_u8))
+-extern OilFunctionClass *oil_function_class_ptr_squaresum_f64;
++#define oil_splat_u8 ((_oil_type_splat_u8)(*(void **)&oil_function_class_splat_u8))
++extern OilFunctionClass oil_function_class_squaresum_f64;
+ typedef void (*_oil_type_squaresum_f64)(double * dest, const double * src, int n);
+-#define oil_squaresum_f64 ((_oil_type_squaresum_f64)(*(void **)oil_function_class_ptr_squaresum_f64))
+-extern OilFunctionClass *oil_function_class_ptr_sum_f64;
++#define oil_squaresum_f64 ((_oil_type_squaresum_f64)(*(void **)&oil_function_class_squaresum_f64))
++extern OilFunctionClass oil_function_class_sum_f64;
+ typedef void (*_oil_type_sum_f64)(double * dest, const double * src, int sstr, int n);
+-#define oil_sum_f64 ((_oil_type_sum_f64)(*(void **)oil_function_class_ptr_sum_f64))
+-extern OilFunctionClass *oil_function_class_ptr_tablelookup_u8;
+-typedef void (*_oil_type_tablelookup_u8)(uint8_t * d, int ds, const uint8_t * s1, int ss1, const uint8_t * s2_256, int ss2, int n);
+-#define oil_tablelookup_u8 ((_oil_type_tablelookup_u8)(*(void **)oil_function_class_ptr_tablelookup_u8))
+-extern OilFunctionClass *oil_function_class_ptr_trans8x8_f64;
+-typedef void (*_oil_type_trans8x8_f64)(double * d_8x8, int ds, const double * s_8x8, int ss);
+-#define oil_trans8x8_f64 ((_oil_type_trans8x8_f64)(*(void **)oil_function_class_ptr_trans8x8_f64))
+-extern OilFunctionClass *oil_function_class_ptr_trans8x8_u16;
+-typedef void (*_oil_type_trans8x8_u16)(uint16_t * d_8x8, int ds, const uint16_t * s_8x8, int ss);
+-#define oil_trans8x8_u16 ((_oil_type_trans8x8_u16)(*(void **)oil_function_class_ptr_trans8x8_u16))
+-extern OilFunctionClass *oil_function_class_ptr_trans8x8_u32;
+-typedef void (*_oil_type_trans8x8_u32)(uint32_t * d_8x8, int ds, const uint32_t * s_8x8, int ss);
+-#define oil_trans8x8_u32 ((_oil_type_trans8x8_u32)(*(void **)oil_function_class_ptr_trans8x8_u32))
+-extern OilFunctionClass *oil_function_class_ptr_trans8x8_u8;
+-typedef void (*_oil_type_trans8x8_u8)(uint8_t * d_8x8, int ds, const uint8_t * s_8x8, int ss);
+-#define oil_trans8x8_u8 ((_oil_type_trans8x8_u8)(*(void **)oil_function_class_ptr_trans8x8_u8))
+-extern OilFunctionClass *oil_function_class_ptr_unzigzag8x8_s16;
++#define oil_sum_f64 ((_oil_type_sum_f64)(*(void **)&oil_function_class_sum_f64))
++extern OilFunctionClass oil_function_class_unzigzag8x8_s16;
+ typedef void (*_oil_type_unzigzag8x8_s16)(int16_t * d_8x8, int ds, const int16_t * s_8x8, int ss);
+-#define oil_unzigzag8x8_s16 ((_oil_type_unzigzag8x8_s16)(*(void **)oil_function_class_ptr_unzigzag8x8_s16))
+-extern OilFunctionClass *oil_function_class_ptr_vectoradd_f32;
++#define oil_unzigzag8x8_s16 ((_oil_type_unzigzag8x8_s16)(*(void **)&oil_function_class_unzigzag8x8_s16))
++extern OilFunctionClass oil_function_class_vectoradd_f32;
+ typedef void (*_oil_type_vectoradd_f32)(float * dest, int dstr, const float * src1, int sstr1, const float * src2, int sstr2, int n, const float * s3_1, const float * s4_1);
+-#define oil_vectoradd_f32 ((_oil_type_vectoradd_f32)(*(void **)oil_function_class_ptr_vectoradd_f32))
+-extern OilFunctionClass *oil_function_class_ptr_vectoradd_f64;
++#define oil_vectoradd_f32 ((_oil_type_vectoradd_f32)(*(void **)&oil_function_class_vectoradd_f32))
++extern OilFunctionClass oil_function_class_vectoradd_f64;
+ typedef void (*_oil_type_vectoradd_f64)(double * dest, int dstr, const double * src1, int sstr1, const double * src2, int sstr2, int n, const double * s3_1, const double * s4_1);
+-#define oil_vectoradd_f64 ((_oil_type_vectoradd_f64)(*(void **)oil_function_class_ptr_vectoradd_f64))
+-extern OilFunctionClass *oil_function_class_ptr_vectoradd_s16;
++#define oil_vectoradd_f64 ((_oil_type_vectoradd_f64)(*(void **)&oil_function_class_vectoradd_f64))
++extern OilFunctionClass oil_function_class_vectoradd_s16;
+ typedef void (*_oil_type_vectoradd_s16)(int16_t * dest, int dstr, const int16_t * src1, int sstr1, const int16_t * src2, int sstr2, int n, const int16_t * s3_1, const int16_t * s4_1);
+-#define oil_vectoradd_s16 ((_oil_type_vectoradd_s16)(*(void **)oil_function_class_ptr_vectoradd_s16))
+-extern OilFunctionClass *oil_function_class_ptr_vectoradd_s32;
++#define oil_vectoradd_s16 ((_oil_type_vectoradd_s16)(*(void **)&oil_function_class_vectoradd_s16))
++extern OilFunctionClass oil_function_class_vectoradd_s32;
+ typedef void (*_oil_type_vectoradd_s32)(int32_t * dest, int dstr, const int32_t * src1, int sstr1, const int32_t * src2, int sstr2, int n, const int32_t * s3_1, const int32_t * s4_1);
+-#define oil_vectoradd_s32 ((_oil_type_vectoradd_s32)(*(void **)oil_function_class_ptr_vectoradd_s32))
+-extern OilFunctionClass *oil_function_class_ptr_vectoradd_s8;
++#define oil_vectoradd_s32 ((_oil_type_vectoradd_s32)(*(void **)&oil_function_class_vectoradd_s32))
++extern OilFunctionClass oil_function_class_vectoradd_s8;
+ typedef void (*_oil_type_vectoradd_s8)(int8_t * dest, int dstr, const int8_t * src1, int sstr1, const int8_t * src2, int sstr2, int n, const int8_t * s3_1, const int8_t * s4_1);
+-#define oil_vectoradd_s8 ((_oil_type_vectoradd_s8)(*(void **)oil_function_class_ptr_vectoradd_s8))
+-extern OilFunctionClass *oil_function_class_ptr_vectoradd_u16;
++#define oil_vectoradd_s8 ((_oil_type_vectoradd_s8)(*(void **)&oil_function_class_vectoradd_s8))
++extern OilFunctionClass oil_function_class_vectoradd_u16;
+ typedef void (*_oil_type_vectoradd_u16)(uint16_t * dest, int dstr, const uint16_t * src1, int sstr1, const uint16_t * src2, int sstr2, int n, const uint16_t * s3_1, const uint16_t * s4_1);
+-#define oil_vectoradd_u16 ((_oil_type_vectoradd_u16)(*(void **)oil_function_class_ptr_vectoradd_u16))
+-extern OilFunctionClass *oil_function_class_ptr_vectoradd_u32;
++#define oil_vectoradd_u16 ((_oil_type_vectoradd_u16)(*(void **)&oil_function_class_vectoradd_u16))
++extern OilFunctionClass oil_function_class_vectoradd_u32;
+ typedef void (*_oil_type_vectoradd_u32)(uint32_t * dest, int dstr, const uint32_t * src1, int sstr1, const uint32_t * src2, int sstr2, int n, const uint32_t * s3_1, const uint32_t * s4_1);
+-#define oil_vectoradd_u32 ((_oil_type_vectoradd_u32)(*(void **)oil_function_class_ptr_vectoradd_u32))
+-extern OilFunctionClass *oil_function_class_ptr_vectoradd_u8;
++#define oil_vectoradd_u32 ((_oil_type_vectoradd_u32)(*(void **)&oil_function_class_vectoradd_u32))
++extern OilFunctionClass oil_function_class_vectoradd_u8;
+ typedef void (*_oil_type_vectoradd_u8)(uint8_t * dest, int dstr, const uint8_t * src1, int sstr1, const uint8_t * src2, int sstr2, int n, const uint8_t * s3_1, const uint8_t * s4_1);
+-#define oil_vectoradd_u8 ((_oil_type_vectoradd_u8)(*(void **)oil_function_class_ptr_vectoradd_u8))
+-extern OilFunctionClass *oil_function_class_ptr_yuv2rgbx_sub2_u8;
++#define oil_vectoradd_u8 ((_oil_type_vectoradd_u8)(*(void **)&oil_function_class_vectoradd_u8))
++extern OilFunctionClass oil_function_class_yuv2rgbx_sub2_u8;
+ typedef void (*_oil_type_yuv2rgbx_sub2_u8)(uint8_t * d_4xn, const uint8_t * src1, const uint8_t * src2, const uint8_t * src3, int n);
+-#define oil_yuv2rgbx_sub2_u8 ((_oil_type_yuv2rgbx_sub2_u8)(*(void **)oil_function_class_ptr_yuv2rgbx_sub2_u8))
+-extern OilFunctionClass *oil_function_class_ptr_yuv2rgbx_sub4_u8;
++#define oil_yuv2rgbx_sub2_u8 ((_oil_type_yuv2rgbx_sub2_u8)(*(void **)&oil_function_class_yuv2rgbx_sub2_u8))
++extern OilFunctionClass oil_function_class_yuv2rgbx_sub4_u8;
+ typedef void (*_oil_type_yuv2rgbx_sub4_u8)(uint8_t * d_4xn, const uint8_t * src1, const uint8_t * src2, const uint8_t * src3, int n);
+-#define oil_yuv2rgbx_sub4_u8 ((_oil_type_yuv2rgbx_sub4_u8)(*(void **)oil_function_class_ptr_yuv2rgbx_sub4_u8))
+-extern OilFunctionClass *oil_function_class_ptr_yuv2rgbx_u8;
++#define oil_yuv2rgbx_sub4_u8 ((_oil_type_yuv2rgbx_sub4_u8)(*(void **)&oil_function_class_yuv2rgbx_sub4_u8))
++extern OilFunctionClass oil_function_class_yuv2rgbx_u8;
+ typedef void (*_oil_type_yuv2rgbx_u8)(uint8_t * d_4xn, const uint8_t * src1, const uint8_t * src2, const uint8_t * src3, int n);
+-#define oil_yuv2rgbx_u8 ((_oil_type_yuv2rgbx_u8)(*(void **)oil_function_class_ptr_yuv2rgbx_u8))
+-extern OilFunctionClass *oil_function_class_ptr_zigzag8x8_s16;
++#define oil_yuv2rgbx_u8 ((_oil_type_yuv2rgbx_u8)(*(void **)&oil_function_class_yuv2rgbx_u8))
++extern OilFunctionClass oil_function_class_zigzag8x8_s16;
+ typedef void (*_oil_type_zigzag8x8_s16)(int16_t * d_8x8, int ds, const int16_t * s_8x8, int ss);
+-#define oil_zigzag8x8_s16 ((_oil_type_zigzag8x8_s16)(*(void **)oil_function_class_ptr_zigzag8x8_s16))
++#define oil_zigzag8x8_s16 ((_oil_type_zigzag8x8_s16)(*(void **)&oil_function_class_zigzag8x8_s16))
+
+ #ifdef __cplusplus
+ }
+Index: liboil/liboilfunction.h
+===================================================================
+RCS file: /var/cvs/liboil/liboil/liboilfunction.h,v
+retrieving revision 1.25
+diff -u -r1.25 liboilfunction.h
+--- liboil/liboilfunction.h 9 Jan 2005 23:43:20 -0000 1.25
++++ liboil/liboilfunction.h 14 Jan 2005 03:00:27 -0000
+@@ -96,12 +96,12 @@
+ #define OIL_IMPL_FLAG_ALTIVEC (1<<16)
+
+ #define OIL_DECLARE_CLASS(klass) \
+- extern OilFunctionClass _oil_function_class_ ## klass
++ extern OilFunctionClass oil_function_class_ ## klass
+
+
+ #ifndef OIL_NO_CLASSES
+ #define OIL_DEFINE_CLASS_FULL(klass, string, test) \
+-OilFunctionClass _oil_function_class_ ## klass = { \
++OilFunctionClass oil_function_class_ ## klass = { \
+ NULL, \
+ #klass , \
+ NULL, \
+@@ -112,7 +112,7 @@
+ string \
+ }; \
+ OilFunctionClass *oil_function_class_ptr_ ## klass = \
+- &_oil_function_class_ ## klass
++ &oil_function_class_ ## klass
+ #else
+ #define OIL_DEFINE_CLASS_FULL(klass, string, test) \
+ OIL_DECLARE_CLASS(klass)
+@@ -124,7 +124,7 @@
+ #define OIL_DEFINE_IMPL_FULL(function,klass,flags) \
+ OilFunctionImpl OIL_OPT_MANGLE(_oil_function_impl_ ## function) = { \
+ NULL, \
+- &_oil_function_class_ ## klass , \
++ &oil_function_class_ ## klass , \
+ (void *)function, \
+ OIL_OPT_FLAG_MANGLE(flags), \
+ #function OIL_OPT_SUFFIX \
diff --git a/patches/patch-small-lib b/patches/patch-small-lib
new file mode 100644
index 0000000..d62085a
--- /dev/null
+++ b/patches/patch-small-lib
@@ -0,0 +1,62 @@
+
+An idea. Don't remember if it works or helps. Enabling
+-ffunction-sections could be a good first step to implementing
+library peeling.
+
+Index: configure.ac
+===================================================================
+RCS file: /var/cvs/liboil/configure.ac,v
+retrieving revision 1.33
+diff -u -r1.33 configure.ac
+--- configure.ac 11 Jan 2005 08:03:08 -0000 1.33
++++ configure.ac 13 Jan 2005 06:41:40 -0000
+@@ -128,7 +128,7 @@
+ true)
+ fi
+
+-LIBOIL_CFLAGS="$LIBOIL_CFLAGS -D_GNU_SOURCE -D_POSIX_C_SOURCE=200112L -I\$(top_srcdir) -O2"
++LIBOIL_CFLAGS="$LIBOIL_CFLAGS -D_GNU_SOURCE -D_POSIX_C_SOURCE=200112L -I\$(top_srcdir) -O2 -ffunction-sections -fdata-sections"
+ AC_SUBST(LIBOIL_CFLAGS)
+
+ LIBOIL_LIBS="\$(top_builddir)/liboil/liboil-$LIBOIL_MAJORMINOR.la"
+Index: liboil/Makefile.am
+===================================================================
+RCS file: /var/cvs/liboil/liboil/Makefile.am,v
+retrieving revision 1.26
+diff -u -r1.26 Makefile.am
+--- liboil/Makefile.am 10 Jan 2005 04:51:51 -0000 1.26
++++ liboil/Makefile.am 13 Jan 2005 06:41:40 -0000
+@@ -30,7 +30,8 @@
+
+ liboiltmp1_la_SOURCES =
+ liboiltmp1_la_LDFLAGS = -lm \
+- -export-symbols-regex 'oil_'
++ -export-symbols-regex 'oil_' \
++ -Wl,--gc-sections
+ liboiltmp1_la_LIBADD = \
+ liboilfunctions.la
+
+@@ -55,7 +56,8 @@
+ liboil_@LIBOIL_MAJORMINOR@_la_CFLAGS = $(LIBOIL_CFLAGS)
+ liboil_@LIBOIL_MAJORMINOR@_la_LDFLAGS = -lm \
+ -version-info $(LIBOIL_LIBVERSION) \
+- -export-symbols-regex '^oil_'
++ -export-symbols-regex '^oil_' \
++ -Wl,--gc-sections
+
+ # This is required to use 'make -j2'. Automake doesn't seem to notice
+ # that one of the dependencies is in this directory.
+@@ -85,11 +87,11 @@
+ echo ' NULL' >>liboilarray.c
+ echo '};' >>liboilarray.c
+ echo >>liboilarray.c
+- grep '^_oil_function_impl_' .libs/liboiltmp1.exp | \
++ grep '^_oil_function_impl_.*ref' .libs/liboiltmp1.exp | \
+ sed 's/.*/extern OilFunctionImpl &;/' >>liboilarray.c
+ echo >>liboilarray.c
+ echo 'OilFunctionImpl *_oil_function_impl_array[] = {' >>liboilarray.c
+- grep '^_oil_function_impl_' .libs/liboiltmp1.exp | \
++ grep '^_oil_function_impl_.*ref' .libs/liboiltmp1.exp | \
+ sed 's/.*/ \&&,/' >>liboilarray.c
+ echo ' NULL' >>liboilarray.c
+ echo '};' >>liboilarray.c