• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 
2 /* autogenerated from gstgaudieffectsorc.orc */
3 
4 #ifdef HAVE_CONFIG_H
5 #include "config.h"
6 #endif
7 #include <glib.h>
8 
9 #ifndef _ORC_INTEGER_TYPEDEFS_
10 #define _ORC_INTEGER_TYPEDEFS_
11 #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
12 #include <stdint.h>
13 typedef int8_t orc_int8;
14 typedef int16_t orc_int16;
15 typedef int32_t orc_int32;
16 typedef int64_t orc_int64;
17 typedef uint8_t orc_uint8;
18 typedef uint16_t orc_uint16;
19 typedef uint32_t orc_uint32;
20 typedef uint64_t orc_uint64;
21 #define ORC_UINT64_C(x) UINT64_C(x)
22 #elif defined(_MSC_VER)
23 typedef signed __int8 orc_int8;
24 typedef signed __int16 orc_int16;
25 typedef signed __int32 orc_int32;
26 typedef signed __int64 orc_int64;
27 typedef unsigned __int8 orc_uint8;
28 typedef unsigned __int16 orc_uint16;
29 typedef unsigned __int32 orc_uint32;
30 typedef unsigned __int64 orc_uint64;
31 #define ORC_UINT64_C(x) (x##Ui64)
32 #define inline __inline
33 #else
34 #include <limits.h>
35 typedef signed char orc_int8;
36 typedef short orc_int16;
37 typedef int orc_int32;
38 typedef unsigned char orc_uint8;
39 typedef unsigned short orc_uint16;
40 typedef unsigned int orc_uint32;
41 #if INT_MAX == LONG_MAX
42 typedef long long orc_int64;
43 typedef unsigned long long orc_uint64;
44 #define ORC_UINT64_C(x) (x##ULL)
45 #else
46 typedef long orc_int64;
47 typedef unsigned long orc_uint64;
48 #define ORC_UINT64_C(x) (x##UL)
49 #endif
50 #endif
51 typedef union
52 {
53   orc_int16 i;
54   orc_int8 x2[2];
55 } orc_union16;
56 typedef union
57 {
58   orc_int32 i;
59   float f;
60   orc_int16 x2[2];
61   orc_int8 x4[4];
62 } orc_union32;
63 typedef union
64 {
65   orc_int64 i;
66   double f;
67   orc_int32 x2[2];
68   float x2f[2];
69   orc_int16 x4[4];
70 } orc_union64;
71 #endif
72 #ifndef ORC_RESTRICT
73 #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
74 #define ORC_RESTRICT restrict
75 #elif defined(__GNUC__) && __GNUC__ >= 4
76 #define ORC_RESTRICT __restrict__
77 #else
78 #define ORC_RESTRICT
79 #endif
80 #endif
81 
82 #ifndef ORC_INTERNAL
83 #if defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590)
84 #define ORC_INTERNAL __attribute__((visibility("hidden")))
85 #elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550)
86 #define ORC_INTERNAL __hidden
87 #elif defined (__GNUC__)
88 #define ORC_INTERNAL __attribute__((visibility("hidden")))
89 #else
90 #define ORC_INTERNAL
91 #endif
92 #endif
93 
94 
95 #ifndef DISABLE_ORC
96 #include <orc/orc.h>
97 #endif
98 void gaudi_orc_burn (guint32 * ORC_RESTRICT d1, const guint32 * ORC_RESTRICT s1,
99     int p1, int n);
100 
101 
102 /* begin Orc C target preamble */
103 #define ORC_CLAMP(x,a,b) ((x)<(a) ? (a) : ((x)>(b) ? (b) : (x)))
104 #define ORC_ABS(a) ((a)<0 ? -(a) : (a))
105 #define ORC_MIN(a,b) ((a)<(b) ? (a) : (b))
106 #define ORC_MAX(a,b) ((a)>(b) ? (a) : (b))
107 #define ORC_SB_MAX 127
108 #define ORC_SB_MIN (-1-ORC_SB_MAX)
109 #define ORC_UB_MAX (orc_uint8) 255
110 #define ORC_UB_MIN 0
111 #define ORC_SW_MAX 32767
112 #define ORC_SW_MIN (-1-ORC_SW_MAX)
113 #define ORC_UW_MAX (orc_uint16)65535
114 #define ORC_UW_MIN 0
115 #define ORC_SL_MAX 2147483647
116 #define ORC_SL_MIN (-1-ORC_SL_MAX)
117 #define ORC_UL_MAX 4294967295U
118 #define ORC_UL_MIN 0
119 #define ORC_CLAMP_SB(x) ORC_CLAMP(x,ORC_SB_MIN,ORC_SB_MAX)
120 #define ORC_CLAMP_UB(x) ORC_CLAMP(x,ORC_UB_MIN,ORC_UB_MAX)
121 #define ORC_CLAMP_SW(x) ORC_CLAMP(x,ORC_SW_MIN,ORC_SW_MAX)
122 #define ORC_CLAMP_UW(x) ORC_CLAMP(x,ORC_UW_MIN,ORC_UW_MAX)
123 #define ORC_CLAMP_SL(x) ORC_CLAMP(x,ORC_SL_MIN,ORC_SL_MAX)
124 #define ORC_CLAMP_UL(x) ORC_CLAMP(x,ORC_UL_MIN,ORC_UL_MAX)
125 #define ORC_SWAP_W(x) ((((x)&0xffU)<<8) | (((x)&0xff00U)>>8))
126 #define ORC_SWAP_L(x) ((((x)&0xffU)<<24) | (((x)&0xff00U)<<8) | (((x)&0xff0000U)>>8) | (((x)&0xff000000U)>>24))
127 #define ORC_SWAP_Q(x) ((((x)&ORC_UINT64_C(0xff))<<56) | (((x)&ORC_UINT64_C(0xff00))<<40) | (((x)&ORC_UINT64_C(0xff0000))<<24) | (((x)&ORC_UINT64_C(0xff000000))<<8) | (((x)&ORC_UINT64_C(0xff00000000))>>8) | (((x)&ORC_UINT64_C(0xff0000000000))>>24) | (((x)&ORC_UINT64_C(0xff000000000000))>>40) | (((x)&ORC_UINT64_C(0xff00000000000000))>>56))
128 #define ORC_PTR_OFFSET(ptr,offset) ((void *)(((unsigned char *)(ptr)) + (offset)))
129 #define ORC_DENORMAL(x) ((x) & ((((x)&0x7f800000) == 0) ? 0xff800000 : 0xffffffff))
130 #define ORC_ISNAN(x) ((((x)&0x7f800000) == 0x7f800000) && (((x)&0x007fffff) != 0))
131 #define ORC_DENORMAL_DOUBLE(x) ((x) & ((((x)&ORC_UINT64_C(0x7ff0000000000000)) == 0) ? ORC_UINT64_C(0xfff0000000000000) : ORC_UINT64_C(0xffffffffffffffff)))
132 #define ORC_ISNAN_DOUBLE(x) ((((x)&ORC_UINT64_C(0x7ff0000000000000)) == ORC_UINT64_C(0x7ff0000000000000)) && (((x)&ORC_UINT64_C(0x000fffffffffffff)) != 0))
133 #ifndef ORC_RESTRICT
134 #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
135 #define ORC_RESTRICT restrict
136 #elif defined(__GNUC__) && __GNUC__ >= 4
137 #define ORC_RESTRICT __restrict__
138 #else
139 #define ORC_RESTRICT
140 #endif
141 #endif
142 /* end Orc C target preamble */
143 
144 
145 
146 /* gaudi_orc_burn */
147 #ifdef DISABLE_ORC
148 void
gaudi_orc_burn(guint32 * ORC_RESTRICT d1,const guint32 * ORC_RESTRICT s1,int p1,int n)149 gaudi_orc_burn (guint32 * ORC_RESTRICT d1, const guint32 * ORC_RESTRICT s1,
150     int p1, int n)
151 {
152   int i;
153   orc_union32 *ORC_RESTRICT ptr0;
154   const orc_union32 *ORC_RESTRICT ptr4;
155   orc_union32 var35;
156   orc_union64 var36;
157 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
158   volatile orc_union32 var37;
159 #else
160   orc_union32 var37;
161 #endif
162 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
163   volatile orc_union64 var38;
164 #else
165   orc_union64 var38;
166 #endif
167   orc_union32 var39;
168   orc_union64 var40;
169   orc_union64 var41;
170   orc_union64 var42;
171   orc_union32 var43;
172   orc_union64 var44;
173   orc_union64 var45;
174   orc_union64 var46;
175   orc_union64 var47;
176   orc_union32 var48;
177 
178   ptr0 = (orc_union32 *) d1;
179   ptr4 = (orc_union32 *) s1;
180 
181   /* 3: loadpw */
182   var36.x4[0] = p1;
183   var36.x4[1] = p1;
184   var36.x4[2] = p1;
185   var36.x4[3] = p1;
186   /* 6: loadpb */
187   var37.x4[0] = 0x000000ff;     /* 255 or 1.25987e-321f */
188   var37.x4[1] = 0x000000ff;     /* 255 or 1.25987e-321f */
189   var37.x4[2] = 0x000000ff;     /* 255 or 1.25987e-321f */
190   var37.x4[3] = 0x000000ff;     /* 255 or 1.25987e-321f */
191   /* 11: loadpw */
192   var38.x4[0] = 0x000000ff;     /* 255 or 1.25987e-321f */
193   var38.x4[1] = 0x000000ff;     /* 255 or 1.25987e-321f */
194   var38.x4[2] = 0x000000ff;     /* 255 or 1.25987e-321f */
195   var38.x4[3] = 0x000000ff;     /* 255 or 1.25987e-321f */
196 
197   for (i = 0; i < n; i++) {
198     /* 0: loadl */
199     var35 = ptr4[i];
200     /* 1: copyb */
201     var39.x4[0] = var35.x4[0];
202     var39.x4[1] = var35.x4[1];
203     var39.x4[2] = var35.x4[2];
204     var39.x4[3] = var35.x4[3];
205     /* 2: convubw */
206     var40.x4[0] = (orc_uint8) var39.x4[0];
207     var40.x4[1] = (orc_uint8) var39.x4[1];
208     var40.x4[2] = (orc_uint8) var39.x4[2];
209     var40.x4[3] = (orc_uint8) var39.x4[3];
210     /* 4: addw */
211     var41.x4[0] = var40.x4[0] + var36.x4[0];
212     var41.x4[1] = var40.x4[1] + var36.x4[1];
213     var41.x4[2] = var40.x4[2] + var36.x4[2];
214     var41.x4[3] = var40.x4[3] + var36.x4[3];
215     /* 5: shruw */
216     var42.x4[0] = ((orc_uint16) var41.x4[0]) >> 1;
217     var42.x4[1] = ((orc_uint16) var41.x4[1]) >> 1;
218     var42.x4[2] = ((orc_uint16) var41.x4[2]) >> 1;
219     var42.x4[3] = ((orc_uint16) var41.x4[3]) >> 1;
220     /* 7: subb */
221     var43.x4[0] = var37.x4[0] - var39.x4[0];
222     var43.x4[1] = var37.x4[1] - var39.x4[1];
223     var43.x4[2] = var37.x4[2] - var39.x4[2];
224     var43.x4[3] = var37.x4[3] - var39.x4[3];
225     /* 8: convubw */
226     var44.x4[0] = (orc_uint8) var43.x4[0];
227     var44.x4[1] = (orc_uint8) var43.x4[1];
228     var44.x4[2] = (orc_uint8) var43.x4[2];
229     var44.x4[3] = (orc_uint8) var43.x4[3];
230     /* 9: shlw */
231     var45.x4[0] = ((orc_uint16) var44.x4[0]) << 7;
232     var45.x4[1] = ((orc_uint16) var44.x4[1]) << 7;
233     var45.x4[2] = ((orc_uint16) var44.x4[2]) << 7;
234     var45.x4[3] = ((orc_uint16) var44.x4[3]) << 7;
235     /* 10: divluw */
236     var46.x4[0] =
237         ((var42.x4[0] & 0xff) ==
238         0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var45.x4[0]) /
239         ((orc_uint16) var42.x4[0] & 0xff));
240     var46.x4[1] =
241         ((var42.x4[1] & 0xff) ==
242         0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var45.x4[1]) /
243         ((orc_uint16) var42.x4[1] & 0xff));
244     var46.x4[2] =
245         ((var42.x4[2] & 0xff) ==
246         0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var45.x4[2]) /
247         ((orc_uint16) var42.x4[2] & 0xff));
248     var46.x4[3] =
249         ((var42.x4[3] & 0xff) ==
250         0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var45.x4[3]) /
251         ((orc_uint16) var42.x4[3] & 0xff));
252     /* 12: subw */
253     var47.x4[0] = var38.x4[0] - var46.x4[0];
254     var47.x4[1] = var38.x4[1] - var46.x4[1];
255     var47.x4[2] = var38.x4[2] - var46.x4[2];
256     var47.x4[3] = var38.x4[3] - var46.x4[3];
257     /* 13: convwb */
258     var48.x4[0] = var47.x4[0];
259     var48.x4[1] = var47.x4[1];
260     var48.x4[2] = var47.x4[2];
261     var48.x4[3] = var47.x4[3];
262     /* 14: storel */
263     ptr0[i] = var48;
264   }
265 
266 }
267 
268 #else
269 static void
_backup_gaudi_orc_burn(OrcExecutor * ORC_RESTRICT ex)270 _backup_gaudi_orc_burn (OrcExecutor * ORC_RESTRICT ex)
271 {
272   int i;
273   int n = ex->n;
274   orc_union32 *ORC_RESTRICT ptr0;
275   const orc_union32 *ORC_RESTRICT ptr4;
276   orc_union32 var35;
277   orc_union64 var36;
278 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
279   volatile orc_union32 var37;
280 #else
281   orc_union32 var37;
282 #endif
283 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
284   volatile orc_union64 var38;
285 #else
286   orc_union64 var38;
287 #endif
288   orc_union32 var39;
289   orc_union64 var40;
290   orc_union64 var41;
291   orc_union64 var42;
292   orc_union32 var43;
293   orc_union64 var44;
294   orc_union64 var45;
295   orc_union64 var46;
296   orc_union64 var47;
297   orc_union32 var48;
298 
299   ptr0 = (orc_union32 *) ex->arrays[0];
300   ptr4 = (orc_union32 *) ex->arrays[4];
301 
302   /* 3: loadpw */
303   var36.x4[0] = ex->params[24];
304   var36.x4[1] = ex->params[24];
305   var36.x4[2] = ex->params[24];
306   var36.x4[3] = ex->params[24];
307   /* 6: loadpb */
308   var37.x4[0] = 0x000000ff;     /* 255 or 1.25987e-321f */
309   var37.x4[1] = 0x000000ff;     /* 255 or 1.25987e-321f */
310   var37.x4[2] = 0x000000ff;     /* 255 or 1.25987e-321f */
311   var37.x4[3] = 0x000000ff;     /* 255 or 1.25987e-321f */
312   /* 11: loadpw */
313   var38.x4[0] = 0x000000ff;     /* 255 or 1.25987e-321f */
314   var38.x4[1] = 0x000000ff;     /* 255 or 1.25987e-321f */
315   var38.x4[2] = 0x000000ff;     /* 255 or 1.25987e-321f */
316   var38.x4[3] = 0x000000ff;     /* 255 or 1.25987e-321f */
317 
318   for (i = 0; i < n; i++) {
319     /* 0: loadl */
320     var35 = ptr4[i];
321     /* 1: copyb */
322     var39.x4[0] = var35.x4[0];
323     var39.x4[1] = var35.x4[1];
324     var39.x4[2] = var35.x4[2];
325     var39.x4[3] = var35.x4[3];
326     /* 2: convubw */
327     var40.x4[0] = (orc_uint8) var39.x4[0];
328     var40.x4[1] = (orc_uint8) var39.x4[1];
329     var40.x4[2] = (orc_uint8) var39.x4[2];
330     var40.x4[3] = (orc_uint8) var39.x4[3];
331     /* 4: addw */
332     var41.x4[0] = var40.x4[0] + var36.x4[0];
333     var41.x4[1] = var40.x4[1] + var36.x4[1];
334     var41.x4[2] = var40.x4[2] + var36.x4[2];
335     var41.x4[3] = var40.x4[3] + var36.x4[3];
336     /* 5: shruw */
337     var42.x4[0] = ((orc_uint16) var41.x4[0]) >> 1;
338     var42.x4[1] = ((orc_uint16) var41.x4[1]) >> 1;
339     var42.x4[2] = ((orc_uint16) var41.x4[2]) >> 1;
340     var42.x4[3] = ((orc_uint16) var41.x4[3]) >> 1;
341     /* 7: subb */
342     var43.x4[0] = var37.x4[0] - var39.x4[0];
343     var43.x4[1] = var37.x4[1] - var39.x4[1];
344     var43.x4[2] = var37.x4[2] - var39.x4[2];
345     var43.x4[3] = var37.x4[3] - var39.x4[3];
346     /* 8: convubw */
347     var44.x4[0] = (orc_uint8) var43.x4[0];
348     var44.x4[1] = (orc_uint8) var43.x4[1];
349     var44.x4[2] = (orc_uint8) var43.x4[2];
350     var44.x4[3] = (orc_uint8) var43.x4[3];
351     /* 9: shlw */
352     var45.x4[0] = ((orc_uint16) var44.x4[0]) << 7;
353     var45.x4[1] = ((orc_uint16) var44.x4[1]) << 7;
354     var45.x4[2] = ((orc_uint16) var44.x4[2]) << 7;
355     var45.x4[3] = ((orc_uint16) var44.x4[3]) << 7;
356     /* 10: divluw */
357     var46.x4[0] =
358         ((var42.x4[0] & 0xff) ==
359         0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var45.x4[0]) /
360         ((orc_uint16) var42.x4[0] & 0xff));
361     var46.x4[1] =
362         ((var42.x4[1] & 0xff) ==
363         0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var45.x4[1]) /
364         ((orc_uint16) var42.x4[1] & 0xff));
365     var46.x4[2] =
366         ((var42.x4[2] & 0xff) ==
367         0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var45.x4[2]) /
368         ((orc_uint16) var42.x4[2] & 0xff));
369     var46.x4[3] =
370         ((var42.x4[3] & 0xff) ==
371         0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var45.x4[3]) /
372         ((orc_uint16) var42.x4[3] & 0xff));
373     /* 12: subw */
374     var47.x4[0] = var38.x4[0] - var46.x4[0];
375     var47.x4[1] = var38.x4[1] - var46.x4[1];
376     var47.x4[2] = var38.x4[2] - var46.x4[2];
377     var47.x4[3] = var38.x4[3] - var46.x4[3];
378     /* 13: convwb */
379     var48.x4[0] = var47.x4[0];
380     var48.x4[1] = var47.x4[1];
381     var48.x4[2] = var47.x4[2];
382     var48.x4[3] = var47.x4[3];
383     /* 14: storel */
384     ptr0[i] = var48;
385   }
386 
387 }
388 
389 void
gaudi_orc_burn(guint32 * ORC_RESTRICT d1,const guint32 * ORC_RESTRICT s1,int p1,int n)390 gaudi_orc_burn (guint32 * ORC_RESTRICT d1, const guint32 * ORC_RESTRICT s1,
391     int p1, int n)
392 {
393   OrcExecutor _ex, *ex = &_ex;
394   static volatile int p_inited = 0;
395   static OrcCode *c = 0;
396   void (*func) (OrcExecutor *);
397 
398   if (!p_inited) {
399     orc_once_mutex_lock ();
400     if (!p_inited) {
401       OrcProgram *p;
402 
403 #if 1
404       static const orc_uint8 bc[] = {
405         1, 9, 14, 103, 97, 117, 100, 105, 95, 111, 114, 99, 95, 98, 117, 114,
406         110, 11, 4, 4, 12, 4, 4, 14, 1, 255, 0, 0, 0, 14, 1, 7,
407         0, 0, 0, 14, 1, 1, 0, 0, 0, 16, 4, 20, 4, 20, 8, 20,
408         8, 21, 2, 42, 32, 4, 21, 2, 150, 33, 32, 21, 2, 70, 34, 33,
409         24, 21, 2, 95, 34, 34, 18, 21, 2, 65, 32, 16, 32, 21, 2, 150,
410         33, 32, 21, 2, 93, 33, 33, 17, 21, 2, 81, 33, 33, 34, 21, 2,
411         98, 33, 16, 33, 21, 2, 157, 32, 33, 128, 0, 32, 2, 0,
412       };
413       p = orc_program_new_from_static_bytecode (bc);
414       orc_program_set_backup_function (p, _backup_gaudi_orc_burn);
415 #else
416       p = orc_program_new ();
417       orc_program_set_name (p, "gaudi_orc_burn");
418       orc_program_set_backup_function (p, _backup_gaudi_orc_burn);
419       orc_program_add_destination (p, 4, "d1");
420       orc_program_add_source (p, 4, "s1");
421       orc_program_add_constant (p, 1, 0x000000ff, "c1");
422       orc_program_add_constant (p, 1, 0x00000007, "c2");
423       orc_program_add_constant (p, 1, 0x00000001, "c3");
424       orc_program_add_parameter (p, 4, "p1");
425       orc_program_add_temporary (p, 4, "t1");
426       orc_program_add_temporary (p, 8, "t2");
427       orc_program_add_temporary (p, 8, "t3");
428 
429       orc_program_append_2 (p, "copyb", 2, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
430           ORC_VAR_D1);
431       orc_program_append_2 (p, "convubw", 2, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
432           ORC_VAR_D1);
433       orc_program_append_2 (p, "addw", 2, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_P1,
434           ORC_VAR_D1);
435       orc_program_append_2 (p, "shruw", 2, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_C3,
436           ORC_VAR_D1);
437       orc_program_append_2 (p, "subb", 2, ORC_VAR_T1, ORC_VAR_C1, ORC_VAR_T1,
438           ORC_VAR_D1);
439       orc_program_append_2 (p, "convubw", 2, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
440           ORC_VAR_D1);
441       orc_program_append_2 (p, "shlw", 2, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C2,
442           ORC_VAR_D1);
443       orc_program_append_2 (p, "divluw", 2, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T3,
444           ORC_VAR_D1);
445       orc_program_append_2 (p, "subw", 2, ORC_VAR_T2, ORC_VAR_C1, ORC_VAR_T2,
446           ORC_VAR_D1);
447       orc_program_append_2 (p, "convwb", 2, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_D1,
448           ORC_VAR_D1);
449       orc_program_append_2 (p, "storel", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
450           ORC_VAR_D1);
451 #endif
452 
453       orc_program_compile (p);
454       c = orc_program_take_code (p);
455       orc_program_free (p);
456     }
457     p_inited = TRUE;
458     orc_once_mutex_unlock ();
459   }
460   ex->arrays[ORC_VAR_A2] = c;
461   ex->program = 0;
462 
463   ex->n = n;
464   ex->arrays[ORC_VAR_D1] = d1;
465   ex->arrays[ORC_VAR_S1] = (void *) s1;
466   ex->params[ORC_VAR_P1] = p1;
467 
468   func = c->exec;
469   func (ex);
470 }
471 #endif
472