00001 #ifndef BITC_RUNTIME_H
00002 #define BITC_RUNTIME_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044 #if defined(__cplusplus)
00045 #error "bitcc output is not (yet) suitable for C++ compilation"
00046 #endif
00047
00048 #if !defined(__STDC_VERSION__) || (__STDC_VERSION__ < 19901L)
00049 #error "bitcc output requires C99 support"
00050 #endif
00051
00052 #include <stdio.h>
00053 #ifndef __cplusplus
00054
00055
00056 #include <stdbool.h>
00057 #endif
00058 #include <unistd.h>
00059 #include <stdint.h>
00060 #include <stdlib.h>
00061 #include <string.h>
00062 #include <gc/gc.h>
00063 #include <setjmp.h>
00064 #include <inttypes.h>
00065 #include <assert.h>
00066
00067 typedef char bitc_unit_t;
00068 typedef uint32_t bitc_char_t;
00069 typedef bool bitc_bool_t;
00070
00071
00072 typedef uintptr_t bitc_word_t;
00073 typedef bitc_word_t bitc_tvar_t;
00074
00075 typedef int8_t bitc_int8_t;
00076 typedef int16_t bitc_int16_t;
00077 typedef int32_t bitc_int32_t;
00078 typedef int64_t bitc_int64_t;
00079 typedef uint8_t bitc_uns8_t;
00080 typedef uint16_t bitc_uns16_t;
00081 typedef uint32_t bitc_uns32_t;
00082 typedef uint64_t bitc_uns64_t;
00083
00084 typedef float bitc_float_t;
00085 typedef double bitc_double_t;
00086
00087 typedef long double bitc_quad_t;
00088
00089 #define INLINE static inline
00090 #define BITC_UNIT '\000'
00091 #define MAYBE_UNUSED __attribute__((unused))
00092
00117 typedef struct bitc_exception_t {
00118 const char *__fileName;
00119 int __line;
00120
00121 const char *__name;
00122 } bitc_exception_t;
00123
00124 extern jmp_buf firstJB;
00125 extern jmp_buf *curCatchBlock;
00126 extern bitc_exception_t *curException;
00127
00128 #define bitc_throw(fileName, line, x) \
00129 do { \
00130 curException = (bitc_exception_t *) x; \
00131 curException->__fileName = fileName; \
00132 curException->__line = line; \
00133 longjmp(*curCatchBlock, 1); \
00134 } while(0)
00135
00136 #define BITC_THROW(x) bitc_throw(__FILE__, __LINE__, x)
00137
00139 extern bitc_exception_t val_ExOutOfMemory;
00142 extern bitc_exception_t val_ExIndexBoundsError;
00143
00144 #define TY_VECTOR_OF_STRINGS K_6string
00145
00146 #define GC_ALLOC(x) bitc_malloc(__FILE__, __LINE__, x)
00147 #define GC_ALLOC_ATOMIC(x) bitc_malloc_atomic(__FILE__, __LINE__, x)
00148
00154 INLINE void *
00155 bitc_malloc(const char * fileName, int line, size_t sz)
00156 {
00157 void *ptr = GC_malloc(sz);
00158 if(ptr == NULL)
00159 bitc_throw(fileName, line, &val_ExOutOfMemory);
00160
00161 return ptr;
00162 }
00163
00169 INLINE void *
00170 bitc_malloc_atomic(const char *fileName, int line, size_t sz)
00171 {
00172 void *ptr = GC_malloc_atomic(sz);
00173 if(ptr == NULL)
00174 bitc_throw(fileName, line, &val_ExOutOfMemory);
00175
00176 return ptr;
00177 }
00178
00183 typedef struct {
00184 bitc_word_t length;
00186 const char *s;
00187 } bitc_string_t;
00188
00189
00190
00191 static bitc_string_t *
00192 mkStringLiteral(const char *s) MAYBE_UNUSED;
00193
00203 static bitc_string_t *
00204 mkStringLiteral(const char *s)
00205 {
00206 size_t len = strlen(s);
00207 bitc_string_t *tmp = (bitc_string_t *)
00208 GC_ALLOC_ATOMIC(sizeof(bitc_string_t));
00209 tmp->length = len;
00210 tmp->s = s;
00211 return tmp;
00212 }
00213
00214
00215 #define LAMNM(NM) NM
00216
00217
00218 #define DEFUN(NM, ...) LAMNM(NM)(__VA_ARGS__)
00219 #define DEFCLOSURE(NM)
00220 #define DEFCLOSURE_INLINE(NM)
00221
00222
00224 INLINE bitc_bool_t
00225 DEFUN(bitc_index_lt, bitc_word_t a, bitc_word_t b)
00226
00227 {
00228 return (a < b);
00229 }
00230 DEFCLOSURE_INLINE(bitc_index_lt);
00231
00232
00233
00234 #define DEFEQL(TY,MTY) \
00235 INLINE bitc_bool_t \
00236 DEFUN(_17bitc_DTprelude_CN___EQ_EQ_SHFN2##MTY##MTY##_4bool, TY arg1, TY arg2) \
00237 { \
00238 return (arg1 == arg2); \
00239 } \
00240 DEFCLOSURE_INLINE(_17bitc_DTprelude_CN___EQ_EQ_SHFN2##MTY##MTY##_4bool)
00241
00242 #define DEFNEQ(TY,MTY) \
00243 INLINE bitc_bool_t \
00244 DEFUN(_17bitc_DTprelude_CN___EX_EQ_SHFN2##MTY##MTY##_4bool, TY arg1, TY arg2) \
00245 { \
00246 return (arg1 != arg2); \
00247 } \
00248 DEFCLOSURE_INLINE(_17bitc_DTprelude_CN___EX_EQ_SHFN2##MTY##MTY##_4bool)
00249
00250 #define DEFLESS(TY,MTY) \
00251 INLINE bitc_bool_t \
00252 DEFUN(_16bitc_DTprelude_CN___LT_SHFN2##MTY##MTY##_4bool, TY arg1, TY arg2) \
00253 { \
00254 return (arg1 < arg2); \
00255 } \
00256 DEFCLOSURE_INLINE(_16bitc_DTprelude_CN___LT_SHFN2##MTY##MTY##_4bool)
00257
00258 #define DEFGREATER(TY,MTY) \
00259 INLINE bitc_bool_t \
00260 DEFUN(_16bitc_DTprelude_CN___GT_SHFN2##MTY##MTY##_4bool, TY arg1, TY arg2) \
00261 { \
00262 return (arg1 > arg2); \
00263 } \
00264 DEFCLOSURE_INLINE(_16bitc_DTprelude_CN___GT_SHFN2##MTY##MTY##_4bool)
00265
00266 #define DEFLESSOREQUAL(TY,MTY) \
00267 INLINE bitc_bool_t \
00268 DEFUN(_17bitc_DTprelude_CN___LT_EQ_SHFN2##MTY##MTY##_4bool, TY arg1, TY arg2) \
00269 { \
00270 return (arg1 <= arg2); \
00271 } \
00272 DEFCLOSURE_INLINE(_17bitc_DTprelude_CN___LT_EQ_SHFN2##MTY##MTY##_4bool)
00273
00274 #define DEFGREATEROREQUAL(TY,MTY) \
00275 INLINE bitc_bool_t \
00276 DEFUN(_17bitc_DTprelude_CN___GT_EQ_SHFN2##MTY##MTY##_4bool, TY arg1, TY arg2) \
00277 { \
00278 return (arg1 >= arg2); \
00279 } \
00280 DEFCLOSURE_INLINE(_17bitc_DTprelude_CN___GT_EQ_SHFN2##MTY##MTY##_4bool)
00281
00282 #define DEFADD(TY,MTY) \
00283 INLINE TY \
00284 DEFUN(_16bitc_DTprelude_CN___PL_SHFN2##MTY##MTY##MTY, TY arg1, TY arg2) \
00285 { \
00286 return (arg1 + arg2); \
00287 } \
00288 DEFCLOSURE_INLINE(_16bitc_DTprelude_CN___PL_SHFN2##MTY##MTY##MTY)
00289
00290 #define DEFSUBTRACT(TY,MTY) \
00291 INLINE TY \
00292 DEFUN(_16bitc_DTprelude_CN___HY_SHFN2##MTY##MTY##MTY, TY arg1, TY arg2) \
00293 { \
00294 return (arg1 - arg2); \
00295 } \
00296 DEFCLOSURE_INLINE(_16bitc_DTprelude_CN___HY_SHFN2##MTY##MTY##MTY)
00297
00298 #define DEFMULTIPLY(TY,MTY) \
00299 INLINE TY \
00300 DEFUN(_16bitc_DTprelude_CN___ST_SHFN2##MTY##MTY##MTY, TY arg1, TY arg2) \
00301 { \
00302 return (arg1 * arg2); \
00303 } \
00304 DEFCLOSURE_INLINE(_16bitc_DTprelude_CN___ST_SHFN2##MTY##MTY##MTY)
00305
00306 #define DEFDIVIDE(TY,MTY) \
00307 INLINE TY \
00308 DEFUN(_16bitc_DTprelude_CN___FS_SHFN2##MTY##MTY##MTY, TY arg1, TY arg2) \
00309 { \
00310 return (arg1 / arg2); \
00311 } \
00312 DEFCLOSURE_INLINE(_16bitc_DTprelude_CN___FS_SHFN2##MTY##MTY##MTY)
00313
00314 #define DEFNEGATE(TY,MTY) \
00315 INLINE TY \
00316 DEFUN(_21bitc_DTprelude_CN__negate_SHFN1##MTY##MTY, TY arg1) \
00317 { \
00318 return (-arg1); \
00319 } \
00320 DEFCLOSURE_INLINE(_21bitc_DTprelude_CN__negate_SHFN1##MTY##MTY)
00321
00322 #define DEFMODULO(TY,MTY) \
00323 INLINE TY \
00324 DEFUN(_16bitc_DTprelude_CN___PC_SHFN2##MTY##MTY##MTY, TY arg1, TY arg2) \
00325 { \
00326 return (arg1 % arg2); \
00327 } \
00328 DEFCLOSURE_INLINE(_16bitc_DTprelude_CN___PC_SHFN2##MTY##MTY##MTY)
00329
00330 #define DEFBAND(TY,MTY) \
00331 INLINE TY \
00332 DEFUN(_20bitc_DTprelude_CN__b_and_SHFN2##MTY##MTY##MTY, TY arg1, TY arg2) \
00333 { \
00334 return (arg1 & arg2); \
00335 } \
00336 DEFCLOSURE_INLINE(_20bitc_DTprelude_CN__b_and_SHFN2##MTY##MTY##MTY)
00337
00338 #define DEFBOR(TY,MTY) \
00339 INLINE TY \
00340 DEFUN(_19bitc_DTprelude_CN__b_or_SHFN2##MTY##MTY##MTY, TY arg1, TY arg2) \
00341 { \
00342 return (arg1 | arg2); \
00343 } \
00344 DEFCLOSURE_INLINE(_19bitc_DTprelude_CN__b_or_SHFN2##MTY##MTY##MTY)
00345
00346 #define DEFBNOT(TY,MTY) \
00347 INLINE TY \
00348 DEFUN(_20bitc_DTprelude_CN__b_not_SHFN1##MTY##MTY, TY arg1) \
00349 { \
00350 return (~arg1); \
00351 } \
00352 DEFCLOSURE_INLINE(_20bitc_DTprelude_CN__b_not_SHFN1##MTY##MTY)
00353
00354 #define DEFBXOR(TY,MTY) \
00355 INLINE TY \
00356 DEFUN(_20bitc_DTprelude_CN__b_xor_SHFN2##MTY##MTY##MTY, TY arg1, TY arg2) \
00357 { \
00358 return (arg1 ^ arg2); \
00359 } \
00360 DEFCLOSURE_INLINE(_20bitc_DTprelude_CN__b_xor_SHFN2##MTY##MTY##MTY)
00361
00362 #define DEFBLS(TY,MTY) \
00363 INLINE TY \
00364 DEFUN(_17bitc_DTprelude_CN___LT_LT_SHFN2##MTY##_4word##MTY, TY arg1, bitc_word_t arg2) \
00365 { \
00366 return (arg1 << arg2); \
00367 } \
00368 DEFCLOSURE_INLINE(_17bitc_DTprelude_CN___LT_LT_SHFN2##MTY##_4word##MTY)
00369
00370 #define DEFBRS(TY,MTY) \
00371 INLINE TY \
00372 DEFUN(_17bitc_DTprelude_CN___GT_GT_SHFN2##MTY##_4word##MTY, TY arg1, bitc_word_t arg2) \
00373 { \
00374 return (arg1 >> arg2); \
00375 } \
00376 DEFCLOSURE_INLINE(_17bitc_DTprelude_CN___GT_GT_SHFN2##MTY##_4word##MTY)
00377
00378
00379 #define DEFORD(TY,MTY) \
00380 DEFEQL(TY,MTY); \
00381 DEFNEQ(TY,MTY); \
00382 DEFLESS(TY, MTY); \
00383 DEFGREATER(TY, MTY); \
00384 DEFLESSOREQUAL(TY, MTY); \
00385 DEFGREATEROREQUAL(TY, MTY)
00386
00387 #define DEFARITH(TY,MTY) \
00388 DEFADD(TY,MTY); \
00389 DEFSUBTRACT(TY, MTY); \
00390 DEFMULTIPLY(TY, MTY); \
00391 DEFDIVIDE(TY, MTY); \
00392 DEFMODULO(TY, MTY); \
00393 DEFNEGATE(TY, MTY); \
00394 DEFORD(TY, MTY)
00395
00396 #define DEFFLOATARITH(TY,MTY) \
00397 DEFADD(TY,MTY); \
00398 DEFSUBTRACT(TY, MTY); \
00399 DEFMULTIPLY(TY, MTY); \
00400 DEFDIVIDE(TY, MTY); \
00401 DEFORD(TY, MTY)
00402
00403 #define DEFBITARITH(TY, MTY) \
00404 DEFBAND(TY, MTY); \
00405 DEFBOR(TY, MTY); \
00406 DEFBNOT(TY, MTY); \
00407 DEFBXOR(TY, MTY); \
00408 DEFBLS(TY, MTY); \
00409 DEFBRS(TY, MTY);
00410
00411 DEFARITH(bitc_int64_t,_5int64);
00412 DEFARITH(bitc_int32_t,_5int32);
00413 DEFARITH(bitc_int16_t,_5int16);
00414 DEFARITH(bitc_int8_t,_4int8);
00415 DEFARITH(bitc_uns64_t,_6uint64);
00416 DEFARITH(bitc_uns32_t,_6uint32);
00417 DEFARITH(bitc_uns16_t,_6uint16);
00418 DEFARITH(bitc_uns8_t,_5uint8);
00419 DEFARITH(bitc_word_t,_4word);
00420 DEFFLOATARITH(bitc_float_t, _5float);
00421 DEFFLOATARITH(bitc_double_t, _6double);
00422
00423 DEFBITARITH(bitc_uns8_t,_5uint8);
00424 DEFBITARITH(bitc_uns16_t,_6uint16);
00425 DEFBITARITH(bitc_uns32_t,_6uint32);
00426 DEFBITARITH(bitc_uns64_t,_6uint64);
00427 DEFBITARITH(bitc_word_t,_4word);
00428
00429 DEFORD(bitc_char_t,_4char);
00430 DEFORD(bitc_bool_t,_4bool);
00431
00432 INLINE bitc_bool_t
00433 DEFUN(_16bitc_DTprelude_CNnot_SHFN1_4bool_4bool, bitc_bool_t arg)
00434 {
00435 return(!arg);
00436 }
00437 DEFCLOSURE_INLINE(_16bitc_DTprelude_CNnot_SHFN1_4bool_4bool);
00438
00439
00440 INLINE bitc_bool_t
00441 DEFUN(_17bitc_DTprelude_CN___EQ_EQ_SHFN2_6string_6string_4bool, bitc_string_t *arg1, bitc_string_t *arg2)
00442 {
00443 return ((arg1->length == arg2->length) &&
00444 (__builtin_strcmp((const char *)arg1->s,(const char *)arg2->s) == 0));
00445 } \
00446 DEFCLOSURE_INLINE(_17bitc_DTprelude_CN___EQ_EQ_SHFN2_6string_6string_4bool);
00447
00448 INLINE bitc_bool_t
00449 DEFUN(_16bitc_DTprelude_CN___LT_SHFN2_6string_6string_4bool, bitc_string_t *arg1, bitc_string_t *arg2)
00450 {
00451 return (__builtin_strcmp((const char *)arg1->s,(const char *)arg2->s) < 0);
00452 } \
00453 DEFCLOSURE_INLINE(_16bitc_DTprelude_CN___LT_SHFN2_6string_6string_4bool);
00454
00455
00456 INLINE bitc_bool_t
00457 DEFUN(_16bitc_DTprelude_CN___GT_SHFN2_6string_6string_4bool, bitc_string_t *arg1, bitc_string_t *arg2)
00458 {
00459 return (__builtin_strcmp((const char *)arg1->s,(const char *)arg2->s) > 0);
00460 } \
00461 DEFCLOSURE_INLINE(_16bitc_DTprelude_CN___GT_SHFN2_6string_6string_4bool);
00462
00463 INLINE bitc_bool_t
00464 DEFUN(_17bitc_DTprelude_CN___LT_EQ_SHFN2_6string_6string_4bool, bitc_string_t *arg1, bitc_string_t *arg2)
00465 {
00466 return (__builtin_strcmp((const char *)arg1->s,(const char *)arg2->s) <= 0);
00467 } \
00468 DEFCLOSURE_INLINE(_17bitc_DTprelude_CN___LT_EQ_SHFN2_6string_6string_4bool);
00469
00470 INLINE bitc_bool_t
00471 DEFUN(_17bitc_DTprelude_CN___GT_EQ_SHFN2_6string_6string_4bool, bitc_string_t *arg1, bitc_string_t *arg2)
00472 {
00473 return (__builtin_strcmp((const char *)arg1->s,(const char *)arg2->s) >= 0);
00474 } \
00475 DEFCLOSURE_INLINE(_17bitc_DTprelude_CN___GT_EQ_SHFN2_6string_6string_4bool);
00476
00477
00478
00479 #define DEFSIGNEX(TY1,MTY1,TY2,MTY2) \
00480 INLINE TY2 \
00481 DEFUN(_23bitc_DTprelude_CNSignExtend_SHFN1##MTY1##MTY2, TY1 arg1) \
00482 { \
00483 return (TY2) arg1; \
00484 } \
00485 DEFCLOSURE_INLINE(_23bitc_DTprelude_CNSignExtend_SHFN1##MTY1##MTY2)
00486
00487
00488 #define DEFZEROEX(TY1,MTY1,TY2,MTY2) \
00489 INLINE TY2 \
00490 DEFUN(_23bitc_DTprelude_CNZeroExtend_SHFN1##MTY1##MTY2, TY1 arg1) \
00491 { \
00492 return (TY2) arg1; \
00493 } \
00494 DEFCLOSURE_INLINE(_23bitc_DTprelude_CNZeroExtend_SHFN1##MTY1##MTY2)
00495
00496 #define DEFTRUNCATE(TY1,MTY1,TY2,MTY2) \
00497 INLINE TY2 \
00498 DEFUN(_21bitc_DTprelude_CNTruncate_SHFN1##MTY1##MTY2, TY1 arg1) \
00499 { \
00500 return (TY2) arg1; \
00501 } \
00502 DEFCLOSURE_INLINE(_21bitc_DTprelude_CNTruncate_SHFN1##MTY1##MTY2)
00503
00504 #define DEFSIGNED(TY1,MTY1,TY2,MTY2) \
00505 INLINE TY2 \
00506 DEFUN(_19bitc_DTprelude_CNsigned_SHFN1##MTY1##MTY2, TY1 arg1) \
00507 { \
00508 return (TY2) arg1; \
00509 } \
00510 DEFCLOSURE_INLINE(_19bitc_DTprelude_CNsigned_SHFN1##MTY1##MTY2)
00511
00512 #define DEFUNSIGNED(TY1,MTY1,TY2,MTY2) \
00513 INLINE TY2 \
00514 DEFUN(_21bitc_DTprelude_CNunsigned_SHFN1##MTY1##MTY2, TY1 arg1) \
00515 { \
00516 return (TY2) arg1; \
00517 } \
00518 DEFCLOSURE_INLINE(_21bitc_DTprelude_CNunsigned_SHFN1##MTY1##MTY2)
00519
00520 #define DEFCAST(TY1,MTY1,TY2,MTY2) \
00521 INLINE TY2 \
00522 DEFUN(_20bitc_DTprelude_CNconvert_SHFN1##MTY1##MTY2, TY1 arg1) \
00523 { \
00524 return (TY2) arg1; \
00525 } \
00526 DEFCLOSURE_INLINE(_20bitc_DTprelude_CNconvert_SHFN1##MTY1##MTY2)
00527
00528 #define DEFSIGNEDOPS(TY1,MTY1,TY2,MTY2) \
00529 DEFSIGNEX(TY1,MTY1,TY2,MTY2); \
00530 DEFTRUNCATE(TY2,MTY2,TY1,MTY1)
00531
00532 #define DEFUNSIGNEDOPS(TY1,MTY1,TY2,MTY2) \
00533 DEFZEROEX(TY1,MTY1,TY2,MTY2); \
00534 DEFTRUNCATE(TY2,MTY2,TY1,MTY1)
00535
00536 #define DEFRESIGN(TY1,MTY1,TY2,MTY2) \
00537 DEFSIGNED(TY1,MTY1,TY2,MTY2); \
00538 DEFUNSIGNED(TY2,MTY2,TY1,MTY1)
00539
00540
00541
00542
00543
00544
00545
00546
00547 DEFUNSIGNEDOPS(bitc_uns8_t, BF1_5uint8, bitc_uns8_t, _5uint8);
00548 DEFUNSIGNEDOPS(bitc_uns8_t, BF2_5uint8, bitc_uns8_t, _5uint8);
00549 DEFUNSIGNEDOPS(bitc_uns8_t, BF3_5uint8, bitc_uns8_t, _5uint8);
00550 DEFUNSIGNEDOPS(bitc_uns8_t, BF4_5uint8, bitc_uns8_t, _5uint8);
00551 DEFUNSIGNEDOPS(bitc_uns8_t, BF5_5uint8, bitc_uns8_t, _5uint8);
00552 DEFUNSIGNEDOPS(bitc_uns8_t, BF6_5uint8, bitc_uns8_t, _5uint8);
00553 DEFUNSIGNEDOPS(bitc_uns8_t, BF7_5uint8, bitc_uns8_t, _5uint8);
00554 DEFUNSIGNEDOPS(bitc_uns8_t, _5uint8, bitc_uns16_t, _6uint16);
00555 DEFUNSIGNEDOPS(bitc_uns8_t, BF1_5uint8, bitc_uns16_t, _6uint16);
00556 DEFUNSIGNEDOPS(bitc_uns8_t, BF2_5uint8, bitc_uns16_t, _6uint16);
00557 DEFUNSIGNEDOPS(bitc_uns8_t, BF3_5uint8, bitc_uns16_t, _6uint16);
00558 DEFUNSIGNEDOPS(bitc_uns8_t, BF4_5uint8, bitc_uns16_t, _6uint16);
00559 DEFUNSIGNEDOPS(bitc_uns8_t, BF5_5uint8, bitc_uns16_t, _6uint16);
00560 DEFUNSIGNEDOPS(bitc_uns8_t, BF6_5uint8, bitc_uns16_t, _6uint16);
00561 DEFUNSIGNEDOPS(bitc_uns8_t, BF7_5uint8, bitc_uns16_t, _6uint16);
00562 DEFUNSIGNEDOPS(bitc_uns8_t, _5uint8, bitc_uns32_t, _6uint32);
00563 DEFUNSIGNEDOPS(bitc_uns8_t, BF1_5uint8, bitc_uns32_t, _6uint32);
00564 DEFUNSIGNEDOPS(bitc_uns8_t, BF2_5uint8, bitc_uns32_t, _6uint32);
00565 DEFUNSIGNEDOPS(bitc_uns8_t, BF3_5uint8, bitc_uns32_t, _6uint32);
00566 DEFUNSIGNEDOPS(bitc_uns8_t, BF4_5uint8, bitc_uns32_t, _6uint32);
00567 DEFUNSIGNEDOPS(bitc_uns8_t, BF5_5uint8, bitc_uns32_t, _6uint32);
00568 DEFUNSIGNEDOPS(bitc_uns8_t, BF6_5uint8, bitc_uns32_t, _6uint32);
00569 DEFUNSIGNEDOPS(bitc_uns8_t, BF7_5uint8, bitc_uns32_t, _6uint32);
00570 DEFUNSIGNEDOPS(bitc_uns8_t, _5uint8, bitc_uns64_t, _6uint64);
00571 DEFUNSIGNEDOPS(bitc_uns8_t, BF1_5uint8, bitc_uns64_t, _6uint64);
00572 DEFUNSIGNEDOPS(bitc_uns8_t, BF2_5uint8, bitc_uns64_t, _6uint64);
00573 DEFUNSIGNEDOPS(bitc_uns8_t, BF3_5uint8, bitc_uns64_t, _6uint64);
00574 DEFUNSIGNEDOPS(bitc_uns8_t, BF4_5uint8, bitc_uns64_t, _6uint64);
00575 DEFUNSIGNEDOPS(bitc_uns8_t, BF5_5uint8, bitc_uns64_t, _6uint64);
00576 DEFUNSIGNEDOPS(bitc_uns8_t, BF6_5uint8, bitc_uns64_t, _6uint64);
00577 DEFUNSIGNEDOPS(bitc_uns8_t, BF7_5uint8, bitc_uns64_t, _6uint64);
00578 DEFUNSIGNEDOPS(bitc_uns16_t, BF1_6uint16, bitc_uns16_t, _6uint16);
00579 DEFUNSIGNEDOPS(bitc_uns16_t, BF2_6uint16, bitc_uns16_t, _6uint16);
00580 DEFUNSIGNEDOPS(bitc_uns16_t, BF3_6uint16, bitc_uns16_t, _6uint16);
00581 DEFUNSIGNEDOPS(bitc_uns16_t, BF4_6uint16, bitc_uns16_t, _6uint16);
00582 DEFUNSIGNEDOPS(bitc_uns16_t, BF5_6uint16, bitc_uns16_t, _6uint16);
00583 DEFUNSIGNEDOPS(bitc_uns16_t, BF6_6uint16, bitc_uns16_t, _6uint16);
00584 DEFUNSIGNEDOPS(bitc_uns16_t, BF7_6uint16, bitc_uns16_t, _6uint16);
00585 DEFUNSIGNEDOPS(bitc_uns16_t, BF8_6uint16, bitc_uns16_t, _6uint16);
00586 DEFUNSIGNEDOPS(bitc_uns16_t, BF9_6uint16, bitc_uns16_t, _6uint16);
00587 DEFUNSIGNEDOPS(bitc_uns16_t, BF10_6uint16, bitc_uns16_t, _6uint16);
00588 DEFUNSIGNEDOPS(bitc_uns16_t, BF11_6uint16, bitc_uns16_t, _6uint16);
00589 DEFUNSIGNEDOPS(bitc_uns16_t, BF12_6uint16, bitc_uns16_t, _6uint16);
00590 DEFUNSIGNEDOPS(bitc_uns16_t, BF13_6uint16, bitc_uns16_t, _6uint16);
00591 DEFUNSIGNEDOPS(bitc_uns16_t, BF14_6uint16, bitc_uns16_t, _6uint16);
00592 DEFUNSIGNEDOPS(bitc_uns16_t, BF15_6uint16, bitc_uns16_t, _6uint16);
00593 DEFUNSIGNEDOPS(bitc_uns16_t, _6uint16, bitc_uns32_t, _6uint32);
00594 DEFUNSIGNEDOPS(bitc_uns16_t, BF1_6uint16, bitc_uns32_t, _6uint32);
00595 DEFUNSIGNEDOPS(bitc_uns16_t, BF2_6uint16, bitc_uns32_t, _6uint32);
00596 DEFUNSIGNEDOPS(bitc_uns16_t, BF3_6uint16, bitc_uns32_t, _6uint32);
00597 DEFUNSIGNEDOPS(bitc_uns16_t, BF4_6uint16, bitc_uns32_t, _6uint32);
00598 DEFUNSIGNEDOPS(bitc_uns16_t, BF5_6uint16, bitc_uns32_t, _6uint32);
00599 DEFUNSIGNEDOPS(bitc_uns16_t, BF6_6uint16, bitc_uns32_t, _6uint32);
00600 DEFUNSIGNEDOPS(bitc_uns16_t, BF7_6uint16, bitc_uns32_t, _6uint32);
00601 DEFUNSIGNEDOPS(bitc_uns16_t, BF8_6uint16, bitc_uns32_t, _6uint32);
00602 DEFUNSIGNEDOPS(bitc_uns16_t, BF9_6uint16, bitc_uns32_t, _6uint32);
00603 DEFUNSIGNEDOPS(bitc_uns16_t, BF10_6uint16, bitc_uns32_t, _6uint32);
00604 DEFUNSIGNEDOPS(bitc_uns16_t, BF11_6uint16, bitc_uns32_t, _6uint32);
00605 DEFUNSIGNEDOPS(bitc_uns16_t, BF12_6uint16, bitc_uns32_t, _6uint32);
00606 DEFUNSIGNEDOPS(bitc_uns16_t, BF13_6uint16, bitc_uns32_t, _6uint32);
00607 DEFUNSIGNEDOPS(bitc_uns16_t, BF14_6uint16, bitc_uns32_t, _6uint32);
00608 DEFUNSIGNEDOPS(bitc_uns16_t, BF15_6uint16, bitc_uns32_t, _6uint32);
00609 DEFUNSIGNEDOPS(bitc_uns16_t, _6uint16, bitc_uns64_t, _6uint64);
00610 DEFUNSIGNEDOPS(bitc_uns16_t, BF1_6uint16, bitc_uns64_t, _6uint64);
00611 DEFUNSIGNEDOPS(bitc_uns16_t, BF2_6uint16, bitc_uns64_t, _6uint64);
00612 DEFUNSIGNEDOPS(bitc_uns16_t, BF3_6uint16, bitc_uns64_t, _6uint64);
00613 DEFUNSIGNEDOPS(bitc_uns16_t, BF4_6uint16, bitc_uns64_t, _6uint64);
00614 DEFUNSIGNEDOPS(bitc_uns16_t, BF5_6uint16, bitc_uns64_t, _6uint64);
00615 DEFUNSIGNEDOPS(bitc_uns16_t, BF6_6uint16, bitc_uns64_t, _6uint64);
00616 DEFUNSIGNEDOPS(bitc_uns16_t, BF7_6uint16, bitc_uns64_t, _6uint64);
00617 DEFUNSIGNEDOPS(bitc_uns16_t, BF8_6uint16, bitc_uns64_t, _6uint64);
00618 DEFUNSIGNEDOPS(bitc_uns16_t, BF9_6uint16, bitc_uns64_t, _6uint64);
00619 DEFUNSIGNEDOPS(bitc_uns16_t, BF10_6uint16, bitc_uns64_t, _6uint64);
00620 DEFUNSIGNEDOPS(bitc_uns16_t, BF11_6uint16, bitc_uns64_t, _6uint64);
00621 DEFUNSIGNEDOPS(bitc_uns16_t, BF12_6uint16, bitc_uns64_t, _6uint64);
00622 DEFUNSIGNEDOPS(bitc_uns16_t, BF13_6uint16, bitc_uns64_t, _6uint64);
00623 DEFUNSIGNEDOPS(bitc_uns16_t, BF14_6uint16, bitc_uns64_t, _6uint64);
00624 DEFUNSIGNEDOPS(bitc_uns16_t, BF15_6uint16, bitc_uns64_t, _6uint64);
00625 DEFUNSIGNEDOPS(bitc_uns32_t, BF1_6uint32, bitc_uns32_t, _6uint32);
00626 DEFUNSIGNEDOPS(bitc_uns32_t, BF2_6uint32, bitc_uns32_t, _6uint32);
00627 DEFUNSIGNEDOPS(bitc_uns32_t, BF3_6uint32, bitc_uns32_t, _6uint32);
00628 DEFUNSIGNEDOPS(bitc_uns32_t, BF4_6uint32, bitc_uns32_t, _6uint32);
00629 DEFUNSIGNEDOPS(bitc_uns32_t, BF5_6uint32, bitc_uns32_t, _6uint32);
00630 DEFUNSIGNEDOPS(bitc_uns32_t, BF6_6uint32, bitc_uns32_t, _6uint32);
00631 DEFUNSIGNEDOPS(bitc_uns32_t, BF7_6uint32, bitc_uns32_t, _6uint32);
00632 DEFUNSIGNEDOPS(bitc_uns32_t, BF8_6uint32, bitc_uns32_t, _6uint32);
00633 DEFUNSIGNEDOPS(bitc_uns32_t, BF9_6uint32, bitc_uns32_t, _6uint32);
00634 DEFUNSIGNEDOPS(bitc_uns32_t, BF10_6uint32, bitc_uns32_t, _6uint32);
00635 DEFUNSIGNEDOPS(bitc_uns32_t, BF11_6uint32, bitc_uns32_t, _6uint32);
00636 DEFUNSIGNEDOPS(bitc_uns32_t, BF12_6uint32, bitc_uns32_t, _6uint32);
00637 DEFUNSIGNEDOPS(bitc_uns32_t, BF13_6uint32, bitc_uns32_t, _6uint32);
00638 DEFUNSIGNEDOPS(bitc_uns32_t, BF14_6uint32, bitc_uns32_t, _6uint32);
00639 DEFUNSIGNEDOPS(bitc_uns32_t, BF15_6uint32, bitc_uns32_t, _6uint32);
00640 DEFUNSIGNEDOPS(bitc_uns32_t, BF16_6uint32, bitc_uns32_t, _6uint32);
00641 DEFUNSIGNEDOPS(bitc_uns32_t, BF17_6uint32, bitc_uns32_t, _6uint32);
00642 DEFUNSIGNEDOPS(bitc_uns32_t, BF18_6uint32, bitc_uns32_t, _6uint32);
00643 DEFUNSIGNEDOPS(bitc_uns32_t, BF19_6uint32, bitc_uns32_t, _6uint32);
00644 DEFUNSIGNEDOPS(bitc_uns32_t, BF20_6uint32, bitc_uns32_t, _6uint32);
00645 DEFUNSIGNEDOPS(bitc_uns32_t, BF21_6uint32, bitc_uns32_t, _6uint32);
00646 DEFUNSIGNEDOPS(bitc_uns32_t, BF22_6uint32, bitc_uns32_t, _6uint32);
00647 DEFUNSIGNEDOPS(bitc_uns32_t, BF23_6uint32, bitc_uns32_t, _6uint32);
00648 DEFUNSIGNEDOPS(bitc_uns32_t, BF24_6uint32, bitc_uns32_t, _6uint32);
00649 DEFUNSIGNEDOPS(bitc_uns32_t, BF25_6uint32, bitc_uns32_t, _6uint32);
00650 DEFUNSIGNEDOPS(bitc_uns32_t, BF26_6uint32, bitc_uns32_t, _6uint32);
00651 DEFUNSIGNEDOPS(bitc_uns32_t, BF27_6uint32, bitc_uns32_t, _6uint32);
00652 DEFUNSIGNEDOPS(bitc_uns32_t, BF28_6uint32, bitc_uns32_t, _6uint32);
00653 DEFUNSIGNEDOPS(bitc_uns32_t, BF29_6uint32, bitc_uns32_t, _6uint32);
00654 DEFUNSIGNEDOPS(bitc_uns32_t, BF30_6uint32, bitc_uns32_t, _6uint32);
00655 DEFUNSIGNEDOPS(bitc_uns32_t, BF31_6uint32, bitc_uns32_t, _6uint32);
00656 DEFUNSIGNEDOPS(bitc_uns32_t, _6uint32, bitc_uns64_t, _6uint64);
00657 DEFUNSIGNEDOPS(bitc_uns32_t, BF1_6uint32, bitc_uns64_t, _6uint64);
00658 DEFUNSIGNEDOPS(bitc_uns32_t, BF2_6uint32, bitc_uns64_t, _6uint64);
00659 DEFUNSIGNEDOPS(bitc_uns32_t, BF3_6uint32, bitc_uns64_t, _6uint64);
00660 DEFUNSIGNEDOPS(bitc_uns32_t, BF4_6uint32, bitc_uns64_t, _6uint64);
00661 DEFUNSIGNEDOPS(bitc_uns32_t, BF5_6uint32, bitc_uns64_t, _6uint64);
00662 DEFUNSIGNEDOPS(bitc_uns32_t, BF6_6uint32, bitc_uns64_t, _6uint64);
00663 DEFUNSIGNEDOPS(bitc_uns32_t, BF7_6uint32, bitc_uns64_t, _6uint64);
00664 DEFUNSIGNEDOPS(bitc_uns32_t, BF8_6uint32, bitc_uns64_t, _6uint64);
00665 DEFUNSIGNEDOPS(bitc_uns32_t, BF9_6uint32, bitc_uns64_t, _6uint64);
00666 DEFUNSIGNEDOPS(bitc_uns32_t, BF10_6uint32, bitc_uns64_t, _6uint64);
00667 DEFUNSIGNEDOPS(bitc_uns32_t, BF11_6uint32, bitc_uns64_t, _6uint64);
00668 DEFUNSIGNEDOPS(bitc_uns32_t, BF12_6uint32, bitc_uns64_t, _6uint64);
00669 DEFUNSIGNEDOPS(bitc_uns32_t, BF13_6uint32, bitc_uns64_t, _6uint64);
00670 DEFUNSIGNEDOPS(bitc_uns32_t, BF14_6uint32, bitc_uns64_t, _6uint64);
00671 DEFUNSIGNEDOPS(bitc_uns32_t, BF15_6uint32, bitc_uns64_t, _6uint64);
00672 DEFUNSIGNEDOPS(bitc_uns32_t, BF16_6uint32, bitc_uns64_t, _6uint64);
00673 DEFUNSIGNEDOPS(bitc_uns32_t, BF17_6uint32, bitc_uns64_t, _6uint64);
00674 DEFUNSIGNEDOPS(bitc_uns32_t, BF18_6uint32, bitc_uns64_t, _6uint64);
00675 DEFUNSIGNEDOPS(bitc_uns32_t, BF19_6uint32, bitc_uns64_t, _6uint64);
00676 DEFUNSIGNEDOPS(bitc_uns32_t, BF20_6uint32, bitc_uns64_t, _6uint64);
00677 DEFUNSIGNEDOPS(bitc_uns32_t, BF21_6uint32, bitc_uns64_t, _6uint64);
00678 DEFUNSIGNEDOPS(bitc_uns32_t, BF22_6uint32, bitc_uns64_t, _6uint64);
00679 DEFUNSIGNEDOPS(bitc_uns32_t, BF23_6uint32, bitc_uns64_t, _6uint64);
00680 DEFUNSIGNEDOPS(bitc_uns32_t, BF24_6uint32, bitc_uns64_t, _6uint64);
00681 DEFUNSIGNEDOPS(bitc_uns32_t, BF25_6uint32, bitc_uns64_t, _6uint64);
00682 DEFUNSIGNEDOPS(bitc_uns32_t, BF26_6uint32, bitc_uns64_t, _6uint64);
00683 DEFUNSIGNEDOPS(bitc_uns32_t, BF27_6uint32, bitc_uns64_t, _6uint64);
00684 DEFUNSIGNEDOPS(bitc_uns32_t, BF28_6uint32, bitc_uns64_t, _6uint64);
00685 DEFUNSIGNEDOPS(bitc_uns32_t, BF29_6uint32, bitc_uns64_t, _6uint64);
00686 DEFUNSIGNEDOPS(bitc_uns32_t, BF30_6uint32, bitc_uns64_t, _6uint64);
00687 DEFUNSIGNEDOPS(bitc_uns32_t, BF31_6uint32, bitc_uns64_t, _6uint64);
00688 DEFUNSIGNEDOPS(bitc_uns64_t, BF1_6uint64, bitc_uns64_t, _6uint64);
00689 DEFUNSIGNEDOPS(bitc_uns64_t, BF2_6uint64, bitc_uns64_t, _6uint64);
00690 DEFUNSIGNEDOPS(bitc_uns64_t, BF3_6uint64, bitc_uns64_t, _6uint64);
00691 DEFUNSIGNEDOPS(bitc_uns64_t, BF4_6uint64, bitc_uns64_t, _6uint64);
00692 DEFUNSIGNEDOPS(bitc_uns64_t, BF5_6uint64, bitc_uns64_t, _6uint64);
00693 DEFUNSIGNEDOPS(bitc_uns64_t, BF6_6uint64, bitc_uns64_t, _6uint64);
00694 DEFUNSIGNEDOPS(bitc_uns64_t, BF7_6uint64, bitc_uns64_t, _6uint64);
00695 DEFUNSIGNEDOPS(bitc_uns64_t, BF8_6uint64, bitc_uns64_t, _6uint64);
00696 DEFUNSIGNEDOPS(bitc_uns64_t, BF9_6uint64, bitc_uns64_t, _6uint64);
00697 DEFUNSIGNEDOPS(bitc_uns64_t, BF10_6uint64, bitc_uns64_t, _6uint64);
00698 DEFUNSIGNEDOPS(bitc_uns64_t, BF11_6uint64, bitc_uns64_t, _6uint64);
00699 DEFUNSIGNEDOPS(bitc_uns64_t, BF12_6uint64, bitc_uns64_t, _6uint64);
00700 DEFUNSIGNEDOPS(bitc_uns64_t, BF13_6uint64, bitc_uns64_t, _6uint64);
00701 DEFUNSIGNEDOPS(bitc_uns64_t, BF14_6uint64, bitc_uns64_t, _6uint64);
00702 DEFUNSIGNEDOPS(bitc_uns64_t, BF15_6uint64, bitc_uns64_t, _6uint64);
00703 DEFUNSIGNEDOPS(bitc_uns64_t, BF16_6uint64, bitc_uns64_t, _6uint64);
00704 DEFUNSIGNEDOPS(bitc_uns64_t, BF17_6uint64, bitc_uns64_t, _6uint64);
00705 DEFUNSIGNEDOPS(bitc_uns64_t, BF18_6uint64, bitc_uns64_t, _6uint64);
00706 DEFUNSIGNEDOPS(bitc_uns64_t, BF19_6uint64, bitc_uns64_t, _6uint64);
00707 DEFUNSIGNEDOPS(bitc_uns64_t, BF20_6uint64, bitc_uns64_t, _6uint64);
00708 DEFUNSIGNEDOPS(bitc_uns64_t, BF21_6uint64, bitc_uns64_t, _6uint64);
00709 DEFUNSIGNEDOPS(bitc_uns64_t, BF22_6uint64, bitc_uns64_t, _6uint64);
00710 DEFUNSIGNEDOPS(bitc_uns64_t, BF23_6uint64, bitc_uns64_t, _6uint64);
00711 DEFUNSIGNEDOPS(bitc_uns64_t, BF24_6uint64, bitc_uns64_t, _6uint64);
00712 DEFUNSIGNEDOPS(bitc_uns64_t, BF25_6uint64, bitc_uns64_t, _6uint64);
00713 DEFUNSIGNEDOPS(bitc_uns64_t, BF26_6uint64, bitc_uns64_t, _6uint64);
00714 DEFUNSIGNEDOPS(bitc_uns64_t, BF27_6uint64, bitc_uns64_t, _6uint64);
00715 DEFUNSIGNEDOPS(bitc_uns64_t, BF28_6uint64, bitc_uns64_t, _6uint64);
00716 DEFUNSIGNEDOPS(bitc_uns64_t, BF29_6uint64, bitc_uns64_t, _6uint64);
00717 DEFUNSIGNEDOPS(bitc_uns64_t, BF30_6uint64, bitc_uns64_t, _6uint64);
00718 DEFUNSIGNEDOPS(bitc_uns64_t, BF31_6uint64, bitc_uns64_t, _6uint64);
00719 DEFUNSIGNEDOPS(bitc_uns64_t, BF32_6uint64, bitc_uns64_t, _6uint64);
00720 DEFUNSIGNEDOPS(bitc_uns64_t, BF33_6uint64, bitc_uns64_t, _6uint64);
00721 DEFUNSIGNEDOPS(bitc_uns64_t, BF34_6uint64, bitc_uns64_t, _6uint64);
00722 DEFUNSIGNEDOPS(bitc_uns64_t, BF35_6uint64, bitc_uns64_t, _6uint64);
00723 DEFUNSIGNEDOPS(bitc_uns64_t, BF36_6uint64, bitc_uns64_t, _6uint64);
00724 DEFUNSIGNEDOPS(bitc_uns64_t, BF37_6uint64, bitc_uns64_t, _6uint64);
00725 DEFUNSIGNEDOPS(bitc_uns64_t, BF38_6uint64, bitc_uns64_t, _6uint64);
00726 DEFUNSIGNEDOPS(bitc_uns64_t, BF39_6uint64, bitc_uns64_t, _6uint64);
00727 DEFUNSIGNEDOPS(bitc_uns64_t, BF40_6uint64, bitc_uns64_t, _6uint64);
00728 DEFUNSIGNEDOPS(bitc_uns64_t, BF41_6uint64, bitc_uns64_t, _6uint64);
00729 DEFUNSIGNEDOPS(bitc_uns64_t, BF42_6uint64, bitc_uns64_t, _6uint64);
00730 DEFUNSIGNEDOPS(bitc_uns64_t, BF43_6uint64, bitc_uns64_t, _6uint64);
00731 DEFUNSIGNEDOPS(bitc_uns64_t, BF44_6uint64, bitc_uns64_t, _6uint64);
00732 DEFUNSIGNEDOPS(bitc_uns64_t, BF45_6uint64, bitc_uns64_t, _6uint64);
00733 DEFUNSIGNEDOPS(bitc_uns64_t, BF46_6uint64, bitc_uns64_t, _6uint64);
00734 DEFUNSIGNEDOPS(bitc_uns64_t, BF47_6uint64, bitc_uns64_t, _6uint64);
00735 DEFUNSIGNEDOPS(bitc_uns64_t, BF48_6uint64, bitc_uns64_t, _6uint64);
00736 DEFUNSIGNEDOPS(bitc_uns64_t, BF49_6uint64, bitc_uns64_t, _6uint64);
00737 DEFUNSIGNEDOPS(bitc_uns64_t, BF50_6uint64, bitc_uns64_t, _6uint64);
00738 DEFUNSIGNEDOPS(bitc_uns64_t, BF51_6uint64, bitc_uns64_t, _6uint64);
00739 DEFUNSIGNEDOPS(bitc_uns64_t, BF52_6uint64, bitc_uns64_t, _6uint64);
00740 DEFUNSIGNEDOPS(bitc_uns64_t, BF53_6uint64, bitc_uns64_t, _6uint64);
00741 DEFUNSIGNEDOPS(bitc_uns64_t, BF54_6uint64, bitc_uns64_t, _6uint64);
00742 DEFUNSIGNEDOPS(bitc_uns64_t, BF55_6uint64, bitc_uns64_t, _6uint64);
00743 DEFUNSIGNEDOPS(bitc_uns64_t, BF56_6uint64, bitc_uns64_t, _6uint64);
00744 DEFUNSIGNEDOPS(bitc_uns64_t, BF57_6uint64, bitc_uns64_t, _6uint64);
00745 DEFUNSIGNEDOPS(bitc_uns64_t, BF58_6uint64, bitc_uns64_t, _6uint64);
00746 DEFUNSIGNEDOPS(bitc_uns64_t, BF59_6uint64, bitc_uns64_t, _6uint64);
00747 DEFUNSIGNEDOPS(bitc_uns64_t, BF60_6uint64, bitc_uns64_t, _6uint64);
00748 DEFUNSIGNEDOPS(bitc_uns64_t, BF61_6uint64, bitc_uns64_t, _6uint64);
00749 DEFUNSIGNEDOPS(bitc_uns64_t, BF62_6uint64, bitc_uns64_t, _6uint64);
00750 DEFUNSIGNEDOPS(bitc_uns64_t, BF63_6uint64, bitc_uns64_t, _6uint64);
00751 DEFSIGNEDOPS(bitc_int8_t, BF1_4int8, bitc_int8_t, _4int8);
00752 DEFSIGNEDOPS(bitc_int8_t, BF2_4int8, bitc_int8_t, _4int8);
00753 DEFSIGNEDOPS(bitc_int8_t, BF3_4int8, bitc_int8_t, _4int8);
00754 DEFSIGNEDOPS(bitc_int8_t, BF4_4int8, bitc_int8_t, _4int8);
00755 DEFSIGNEDOPS(bitc_int8_t, BF5_4int8, bitc_int8_t, _4int8);
00756 DEFSIGNEDOPS(bitc_int8_t, BF6_4int8, bitc_int8_t, _4int8);
00757 DEFSIGNEDOPS(bitc_int8_t, BF7_4int8, bitc_int8_t, _4int8);
00758 DEFSIGNEDOPS(bitc_int8_t, _4int8, bitc_int16_t, _5int16);
00759 DEFSIGNEDOPS(bitc_int8_t, BF1_4int8, bitc_int16_t, _5int16);
00760 DEFSIGNEDOPS(bitc_int8_t, BF2_4int8, bitc_int16_t, _5int16);
00761 DEFSIGNEDOPS(bitc_int8_t, BF3_4int8, bitc_int16_t, _5int16);
00762 DEFSIGNEDOPS(bitc_int8_t, BF4_4int8, bitc_int16_t, _5int16);
00763 DEFSIGNEDOPS(bitc_int8_t, BF5_4int8, bitc_int16_t, _5int16);
00764 DEFSIGNEDOPS(bitc_int8_t, BF6_4int8, bitc_int16_t, _5int16);
00765 DEFSIGNEDOPS(bitc_int8_t, BF7_4int8, bitc_int16_t, _5int16);
00766 DEFSIGNEDOPS(bitc_int8_t, _4int8, bitc_int32_t, _5int32);
00767 DEFSIGNEDOPS(bitc_int8_t, BF1_4int8, bitc_int32_t, _5int32);
00768 DEFSIGNEDOPS(bitc_int8_t, BF2_4int8, bitc_int32_t, _5int32);
00769 DEFSIGNEDOPS(bitc_int8_t, BF3_4int8, bitc_int32_t, _5int32);
00770 DEFSIGNEDOPS(bitc_int8_t, BF4_4int8, bitc_int32_t, _5int32);
00771 DEFSIGNEDOPS(bitc_int8_t, BF5_4int8, bitc_int32_t, _5int32);
00772 DEFSIGNEDOPS(bitc_int8_t, BF6_4int8, bitc_int32_t, _5int32);
00773 DEFSIGNEDOPS(bitc_int8_t, BF7_4int8, bitc_int32_t, _5int32);
00774 DEFSIGNEDOPS(bitc_int8_t, _4int8, bitc_int64_t, _5int64);
00775 DEFSIGNEDOPS(bitc_int8_t, BF1_4int8, bitc_int64_t, _5int64);
00776 DEFSIGNEDOPS(bitc_int8_t, BF2_4int8, bitc_int64_t, _5int64);
00777 DEFSIGNEDOPS(bitc_int8_t, BF3_4int8, bitc_int64_t, _5int64);
00778 DEFSIGNEDOPS(bitc_int8_t, BF4_4int8, bitc_int64_t, _5int64);
00779 DEFSIGNEDOPS(bitc_int8_t, BF5_4int8, bitc_int64_t, _5int64);
00780 DEFSIGNEDOPS(bitc_int8_t, BF6_4int8, bitc_int64_t, _5int64);
00781 DEFSIGNEDOPS(bitc_int8_t, BF7_4int8, bitc_int64_t, _5int64);
00782 DEFSIGNEDOPS(bitc_int16_t, BF1_5int16, bitc_int16_t, _5int16);
00783 DEFSIGNEDOPS(bitc_int16_t, BF2_5int16, bitc_int16_t, _5int16);
00784 DEFSIGNEDOPS(bitc_int16_t, BF3_5int16, bitc_int16_t, _5int16);
00785 DEFSIGNEDOPS(bitc_int16_t, BF4_5int16, bitc_int16_t, _5int16);
00786 DEFSIGNEDOPS(bitc_int16_t, BF5_5int16, bitc_int16_t, _5int16);
00787 DEFSIGNEDOPS(bitc_int16_t, BF6_5int16, bitc_int16_t, _5int16);
00788 DEFSIGNEDOPS(bitc_int16_t, BF7_5int16, bitc_int16_t, _5int16);
00789 DEFSIGNEDOPS(bitc_int16_t, BF8_5int16, bitc_int16_t, _5int16);
00790 DEFSIGNEDOPS(bitc_int16_t, BF9_5int16, bitc_int16_t, _5int16);
00791 DEFSIGNEDOPS(bitc_int16_t, BF10_5int16, bitc_int16_t, _5int16);
00792 DEFSIGNEDOPS(bitc_int16_t, BF11_5int16, bitc_int16_t, _5int16);
00793 DEFSIGNEDOPS(bitc_int16_t, BF12_5int16, bitc_int16_t, _5int16);
00794 DEFSIGNEDOPS(bitc_int16_t, BF13_5int16, bitc_int16_t, _5int16);
00795 DEFSIGNEDOPS(bitc_int16_t, BF14_5int16, bitc_int16_t, _5int16);
00796 DEFSIGNEDOPS(bitc_int16_t, BF15_5int16, bitc_int16_t, _5int16);
00797 DEFSIGNEDOPS(bitc_int16_t, _5int16, bitc_int32_t, _5int32);
00798 DEFSIGNEDOPS(bitc_int16_t, BF1_5int16, bitc_int32_t, _5int32);
00799 DEFSIGNEDOPS(bitc_int16_t, BF2_5int16, bitc_int32_t, _5int32);
00800 DEFSIGNEDOPS(bitc_int16_t, BF3_5int16, bitc_int32_t, _5int32);
00801 DEFSIGNEDOPS(bitc_int16_t, BF4_5int16, bitc_int32_t, _5int32);
00802 DEFSIGNEDOPS(bitc_int16_t, BF5_5int16, bitc_int32_t, _5int32);
00803 DEFSIGNEDOPS(bitc_int16_t, BF6_5int16, bitc_int32_t, _5int32);
00804 DEFSIGNEDOPS(bitc_int16_t, BF7_5int16, bitc_int32_t, _5int32);
00805 DEFSIGNEDOPS(bitc_int16_t, BF8_5int16, bitc_int32_t, _5int32);
00806 DEFSIGNEDOPS(bitc_int16_t, BF9_5int16, bitc_int32_t, _5int32);
00807 DEFSIGNEDOPS(bitc_int16_t, BF10_5int16, bitc_int32_t, _5int32);
00808 DEFSIGNEDOPS(bitc_int16_t, BF11_5int16, bitc_int32_t, _5int32);
00809 DEFSIGNEDOPS(bitc_int16_t, BF12_5int16, bitc_int32_t, _5int32);
00810 DEFSIGNEDOPS(bitc_int16_t, BF13_5int16, bitc_int32_t, _5int32);
00811 DEFSIGNEDOPS(bitc_int16_t, BF14_5int16, bitc_int32_t, _5int32);
00812 DEFSIGNEDOPS(bitc_int16_t, BF15_5int16, bitc_int32_t, _5int32);
00813 DEFSIGNEDOPS(bitc_int16_t, _5int16, bitc_int64_t, _5int64);
00814 DEFSIGNEDOPS(bitc_int16_t, BF1_5int16, bitc_int64_t, _5int64);
00815 DEFSIGNEDOPS(bitc_int16_t, BF2_5int16, bitc_int64_t, _5int64);
00816 DEFSIGNEDOPS(bitc_int16_t, BF3_5int16, bitc_int64_t, _5int64);
00817 DEFSIGNEDOPS(bitc_int16_t, BF4_5int16, bitc_int64_t, _5int64);
00818 DEFSIGNEDOPS(bitc_int16_t, BF5_5int16, bitc_int64_t, _5int64);
00819 DEFSIGNEDOPS(bitc_int16_t, BF6_5int16, bitc_int64_t, _5int64);
00820 DEFSIGNEDOPS(bitc_int16_t, BF7_5int16, bitc_int64_t, _5int64);
00821 DEFSIGNEDOPS(bitc_int16_t, BF8_5int16, bitc_int64_t, _5int64);
00822 DEFSIGNEDOPS(bitc_int16_t, BF9_5int16, bitc_int64_t, _5int64);
00823 DEFSIGNEDOPS(bitc_int16_t, BF10_5int16, bitc_int64_t, _5int64);
00824 DEFSIGNEDOPS(bitc_int16_t, BF11_5int16, bitc_int64_t, _5int64);
00825 DEFSIGNEDOPS(bitc_int16_t, BF12_5int16, bitc_int64_t, _5int64);
00826 DEFSIGNEDOPS(bitc_int16_t, BF13_5int16, bitc_int64_t, _5int64);
00827 DEFSIGNEDOPS(bitc_int16_t, BF14_5int16, bitc_int64_t, _5int64);
00828 DEFSIGNEDOPS(bitc_int16_t, BF15_5int16, bitc_int64_t, _5int64);
00829 DEFSIGNEDOPS(bitc_int32_t, BF1_5int32, bitc_int32_t, _5int32);
00830 DEFSIGNEDOPS(bitc_int32_t, BF2_5int32, bitc_int32_t, _5int32);
00831 DEFSIGNEDOPS(bitc_int32_t, BF3_5int32, bitc_int32_t, _5int32);
00832 DEFSIGNEDOPS(bitc_int32_t, BF4_5int32, bitc_int32_t, _5int32);
00833 DEFSIGNEDOPS(bitc_int32_t, BF5_5int32, bitc_int32_t, _5int32);
00834 DEFSIGNEDOPS(bitc_int32_t, BF6_5int32, bitc_int32_t, _5int32);
00835 DEFSIGNEDOPS(bitc_int32_t, BF7_5int32, bitc_int32_t, _5int32);
00836 DEFSIGNEDOPS(bitc_int32_t, BF8_5int32, bitc_int32_t, _5int32);
00837 DEFSIGNEDOPS(bitc_int32_t, BF9_5int32, bitc_int32_t, _5int32);
00838 DEFSIGNEDOPS(bitc_int32_t, BF10_5int32, bitc_int32_t, _5int32);
00839 DEFSIGNEDOPS(bitc_int32_t, BF11_5int32, bitc_int32_t, _5int32);
00840 DEFSIGNEDOPS(bitc_int32_t, BF12_5int32, bitc_int32_t, _5int32);
00841 DEFSIGNEDOPS(bitc_int32_t, BF13_5int32, bitc_int32_t, _5int32);
00842 DEFSIGNEDOPS(bitc_int32_t, BF14_5int32, bitc_int32_t, _5int32);
00843 DEFSIGNEDOPS(bitc_int32_t, BF15_5int32, bitc_int32_t, _5int32);
00844 DEFSIGNEDOPS(bitc_int32_t, BF16_5int32, bitc_int32_t, _5int32);
00845 DEFSIGNEDOPS(bitc_int32_t, BF17_5int32, bitc_int32_t, _5int32);
00846 DEFSIGNEDOPS(bitc_int32_t, BF18_5int32, bitc_int32_t, _5int32);
00847 DEFSIGNEDOPS(bitc_int32_t, BF19_5int32, bitc_int32_t, _5int32);
00848 DEFSIGNEDOPS(bitc_int32_t, BF20_5int32, bitc_int32_t, _5int32);
00849 DEFSIGNEDOPS(bitc_int32_t, BF21_5int32, bitc_int32_t, _5int32);
00850 DEFSIGNEDOPS(bitc_int32_t, BF22_5int32, bitc_int32_t, _5int32);
00851 DEFSIGNEDOPS(bitc_int32_t, BF23_5int32, bitc_int32_t, _5int32);
00852 DEFSIGNEDOPS(bitc_int32_t, BF24_5int32, bitc_int32_t, _5int32);
00853 DEFSIGNEDOPS(bitc_int32_t, BF25_5int32, bitc_int32_t, _5int32);
00854 DEFSIGNEDOPS(bitc_int32_t, BF26_5int32, bitc_int32_t, _5int32);
00855 DEFSIGNEDOPS(bitc_int32_t, BF27_5int32, bitc_int32_t, _5int32);
00856 DEFSIGNEDOPS(bitc_int32_t, BF28_5int32, bitc_int32_t, _5int32);
00857 DEFSIGNEDOPS(bitc_int32_t, BF29_5int32, bitc_int32_t, _5int32);
00858 DEFSIGNEDOPS(bitc_int32_t, BF30_5int32, bitc_int32_t, _5int32);
00859 DEFSIGNEDOPS(bitc_int32_t, BF31_5int32, bitc_int32_t, _5int32);
00860 DEFSIGNEDOPS(bitc_int32_t, _5int32, bitc_int64_t, _5int64);
00861 DEFSIGNEDOPS(bitc_int32_t, BF1_5int32, bitc_int64_t, _5int64);
00862 DEFSIGNEDOPS(bitc_int32_t, BF2_5int32, bitc_int64_t, _5int64);
00863 DEFSIGNEDOPS(bitc_int32_t, BF3_5int32, bitc_int64_t, _5int64);
00864 DEFSIGNEDOPS(bitc_int32_t, BF4_5int32, bitc_int64_t, _5int64);
00865 DEFSIGNEDOPS(bitc_int32_t, BF5_5int32, bitc_int64_t, _5int64);
00866 DEFSIGNEDOPS(bitc_int32_t, BF6_5int32, bitc_int64_t, _5int64);
00867 DEFSIGNEDOPS(bitc_int32_t, BF7_5int32, bitc_int64_t, _5int64);
00868 DEFSIGNEDOPS(bitc_int32_t, BF8_5int32, bitc_int64_t, _5int64);
00869 DEFSIGNEDOPS(bitc_int32_t, BF9_5int32, bitc_int64_t, _5int64);
00870 DEFSIGNEDOPS(bitc_int32_t, BF10_5int32, bitc_int64_t, _5int64);
00871 DEFSIGNEDOPS(bitc_int32_t, BF11_5int32, bitc_int64_t, _5int64);
00872 DEFSIGNEDOPS(bitc_int32_t, BF12_5int32, bitc_int64_t, _5int64);
00873 DEFSIGNEDOPS(bitc_int32_t, BF13_5int32, bitc_int64_t, _5int64);
00874 DEFSIGNEDOPS(bitc_int32_t, BF14_5int32, bitc_int64_t, _5int64);
00875 DEFSIGNEDOPS(bitc_int32_t, BF15_5int32, bitc_int64_t, _5int64);
00876 DEFSIGNEDOPS(bitc_int32_t, BF16_5int32, bitc_int64_t, _5int64);
00877 DEFSIGNEDOPS(bitc_int32_t, BF17_5int32, bitc_int64_t, _5int64);
00878 DEFSIGNEDOPS(bitc_int32_t, BF18_5int32, bitc_int64_t, _5int64);
00879 DEFSIGNEDOPS(bitc_int32_t, BF19_5int32, bitc_int64_t, _5int64);
00880 DEFSIGNEDOPS(bitc_int32_t, BF20_5int32, bitc_int64_t, _5int64);
00881 DEFSIGNEDOPS(bitc_int32_t, BF21_5int32, bitc_int64_t, _5int64);
00882 DEFSIGNEDOPS(bitc_int32_t, BF22_5int32, bitc_int64_t, _5int64);
00883 DEFSIGNEDOPS(bitc_int32_t, BF23_5int32, bitc_int64_t, _5int64);
00884 DEFSIGNEDOPS(bitc_int32_t, BF24_5int32, bitc_int64_t, _5int64);
00885 DEFSIGNEDOPS(bitc_int32_t, BF25_5int32, bitc_int64_t, _5int64);
00886 DEFSIGNEDOPS(bitc_int32_t, BF26_5int32, bitc_int64_t, _5int64);
00887 DEFSIGNEDOPS(bitc_int32_t, BF27_5int32, bitc_int64_t, _5int64);
00888 DEFSIGNEDOPS(bitc_int32_t, BF28_5int32, bitc_int64_t, _5int64);
00889 DEFSIGNEDOPS(bitc_int32_t, BF29_5int32, bitc_int64_t, _5int64);
00890 DEFSIGNEDOPS(bitc_int32_t, BF30_5int32, bitc_int64_t, _5int64);
00891 DEFSIGNEDOPS(bitc_int32_t, BF31_5int32, bitc_int64_t, _5int64);
00892 DEFSIGNEDOPS(bitc_int64_t, BF1_5int64, bitc_int64_t, _5int64);
00893 DEFSIGNEDOPS(bitc_int64_t, BF2_5int64, bitc_int64_t, _5int64);
00894 DEFSIGNEDOPS(bitc_int64_t, BF3_5int64, bitc_int64_t, _5int64);
00895 DEFSIGNEDOPS(bitc_int64_t, BF4_5int64, bitc_int64_t, _5int64);
00896 DEFSIGNEDOPS(bitc_int64_t, BF5_5int64, bitc_int64_t, _5int64);
00897 DEFSIGNEDOPS(bitc_int64_t, BF6_5int64, bitc_int64_t, _5int64);
00898 DEFSIGNEDOPS(bitc_int64_t, BF7_5int64, bitc_int64_t, _5int64);
00899 DEFSIGNEDOPS(bitc_int64_t, BF8_5int64, bitc_int64_t, _5int64);
00900 DEFSIGNEDOPS(bitc_int64_t, BF9_5int64, bitc_int64_t, _5int64);
00901 DEFSIGNEDOPS(bitc_int64_t, BF10_5int64, bitc_int64_t, _5int64);
00902 DEFSIGNEDOPS(bitc_int64_t, BF11_5int64, bitc_int64_t, _5int64);
00903 DEFSIGNEDOPS(bitc_int64_t, BF12_5int64, bitc_int64_t, _5int64);
00904 DEFSIGNEDOPS(bitc_int64_t, BF13_5int64, bitc_int64_t, _5int64);
00905 DEFSIGNEDOPS(bitc_int64_t, BF14_5int64, bitc_int64_t, _5int64);
00906 DEFSIGNEDOPS(bitc_int64_t, BF15_5int64, bitc_int64_t, _5int64);
00907 DEFSIGNEDOPS(bitc_int64_t, BF16_5int64, bitc_int64_t, _5int64);
00908 DEFSIGNEDOPS(bitc_int64_t, BF17_5int64, bitc_int64_t, _5int64);
00909 DEFSIGNEDOPS(bitc_int64_t, BF18_5int64, bitc_int64_t, _5int64);
00910 DEFSIGNEDOPS(bitc_int64_t, BF19_5int64, bitc_int64_t, _5int64);
00911 DEFSIGNEDOPS(bitc_int64_t, BF20_5int64, bitc_int64_t, _5int64);
00912 DEFSIGNEDOPS(bitc_int64_t, BF21_5int64, bitc_int64_t, _5int64);
00913 DEFSIGNEDOPS(bitc_int64_t, BF22_5int64, bitc_int64_t, _5int64);
00914 DEFSIGNEDOPS(bitc_int64_t, BF23_5int64, bitc_int64_t, _5int64);
00915 DEFSIGNEDOPS(bitc_int64_t, BF24_5int64, bitc_int64_t, _5int64);
00916 DEFSIGNEDOPS(bitc_int64_t, BF25_5int64, bitc_int64_t, _5int64);
00917 DEFSIGNEDOPS(bitc_int64_t, BF26_5int64, bitc_int64_t, _5int64);
00918 DEFSIGNEDOPS(bitc_int64_t, BF27_5int64, bitc_int64_t, _5int64);
00919 DEFSIGNEDOPS(bitc_int64_t, BF28_5int64, bitc_int64_t, _5int64);
00920 DEFSIGNEDOPS(bitc_int64_t, BF29_5int64, bitc_int64_t, _5int64);
00921 DEFSIGNEDOPS(bitc_int64_t, BF30_5int64, bitc_int64_t, _5int64);
00922 DEFSIGNEDOPS(bitc_int64_t, BF31_5int64, bitc_int64_t, _5int64);
00923 DEFSIGNEDOPS(bitc_int64_t, BF32_5int64, bitc_int64_t, _5int64);
00924 DEFSIGNEDOPS(bitc_int64_t, BF33_5int64, bitc_int64_t, _5int64);
00925 DEFSIGNEDOPS(bitc_int64_t, BF34_5int64, bitc_int64_t, _5int64);
00926 DEFSIGNEDOPS(bitc_int64_t, BF35_5int64, bitc_int64_t, _5int64);
00927 DEFSIGNEDOPS(bitc_int64_t, BF36_5int64, bitc_int64_t, _5int64);
00928 DEFSIGNEDOPS(bitc_int64_t, BF37_5int64, bitc_int64_t, _5int64);
00929 DEFSIGNEDOPS(bitc_int64_t, BF38_5int64, bitc_int64_t, _5int64);
00930 DEFSIGNEDOPS(bitc_int64_t, BF39_5int64, bitc_int64_t, _5int64);
00931 DEFSIGNEDOPS(bitc_int64_t, BF40_5int64, bitc_int64_t, _5int64);
00932 DEFSIGNEDOPS(bitc_int64_t, BF41_5int64, bitc_int64_t, _5int64);
00933 DEFSIGNEDOPS(bitc_int64_t, BF42_5int64, bitc_int64_t, _5int64);
00934 DEFSIGNEDOPS(bitc_int64_t, BF43_5int64, bitc_int64_t, _5int64);
00935 DEFSIGNEDOPS(bitc_int64_t, BF44_5int64, bitc_int64_t, _5int64);
00936 DEFSIGNEDOPS(bitc_int64_t, BF45_5int64, bitc_int64_t, _5int64);
00937 DEFSIGNEDOPS(bitc_int64_t, BF46_5int64, bitc_int64_t, _5int64);
00938 DEFSIGNEDOPS(bitc_int64_t, BF47_5int64, bitc_int64_t, _5int64);
00939 DEFSIGNEDOPS(bitc_int64_t, BF48_5int64, bitc_int64_t, _5int64);
00940 DEFSIGNEDOPS(bitc_int64_t, BF49_5int64, bitc_int64_t, _5int64);
00941 DEFSIGNEDOPS(bitc_int64_t, BF50_5int64, bitc_int64_t, _5int64);
00942 DEFSIGNEDOPS(bitc_int64_t, BF51_5int64, bitc_int64_t, _5int64);
00943 DEFSIGNEDOPS(bitc_int64_t, BF52_5int64, bitc_int64_t, _5int64);
00944 DEFSIGNEDOPS(bitc_int64_t, BF53_5int64, bitc_int64_t, _5int64);
00945 DEFSIGNEDOPS(bitc_int64_t, BF54_5int64, bitc_int64_t, _5int64);
00946 DEFSIGNEDOPS(bitc_int64_t, BF55_5int64, bitc_int64_t, _5int64);
00947 DEFSIGNEDOPS(bitc_int64_t, BF56_5int64, bitc_int64_t, _5int64);
00948 DEFSIGNEDOPS(bitc_int64_t, BF57_5int64, bitc_int64_t, _5int64);
00949 DEFSIGNEDOPS(bitc_int64_t, BF58_5int64, bitc_int64_t, _5int64);
00950 DEFSIGNEDOPS(bitc_int64_t, BF59_5int64, bitc_int64_t, _5int64);
00951 DEFSIGNEDOPS(bitc_int64_t, BF60_5int64, bitc_int64_t, _5int64);
00952 DEFSIGNEDOPS(bitc_int64_t, BF61_5int64, bitc_int64_t, _5int64);
00953 DEFSIGNEDOPS(bitc_int64_t, BF62_5int64, bitc_int64_t, _5int64);
00954 DEFSIGNEDOPS(bitc_int64_t, BF63_5int64, bitc_int64_t, _5int64);
00955 DEFRESIGN(bitc_uns8_t, _5uint8, bitc_int8_t, _4int8);
00956 DEFRESIGN(bitc_uns16_t, _6uint16, bitc_int16_t, _5int16);
00957 DEFRESIGN(bitc_uns32_t, _6uint32, bitc_int32_t, _5int32);
00958 DEFRESIGN(bitc_uns64_t, _6uint64, bitc_int64_t, _5int64);
00959 DEFCAST(bitc_uns8_t, _5uint8, bitc_word_t, _4word);
00960 DEFCAST(bitc_int8_t, _4int8, bitc_word_t, _4word);
00961 DEFCAST(bitc_word_t, _4word, bitc_uns8_t, _5uint8);
00962 DEFCAST(bitc_word_t, _4word, bitc_int8_t, _4int8);
00963 DEFCAST(bitc_uns16_t, _6uint16, bitc_word_t, _4word);
00964 DEFCAST(bitc_int16_t, _5int16, bitc_word_t, _4word);
00965 DEFCAST(bitc_word_t, _4word, bitc_uns16_t, _6uint16);
00966 DEFCAST(bitc_word_t, _4word, bitc_int16_t, _5int16);
00967 DEFCAST(bitc_uns32_t, _6uint32, bitc_word_t, _4word);
00968 DEFCAST(bitc_int32_t, _5int32, bitc_word_t, _4word);
00969 DEFCAST(bitc_word_t, _4word, bitc_uns32_t, _6uint32);
00970 DEFCAST(bitc_word_t, _4word, bitc_int32_t, _5int32);
00971 DEFCAST(bitc_uns64_t, _6uint64, bitc_word_t, _4word);
00972 DEFCAST(bitc_int64_t, _5int64, bitc_word_t, _4word);
00973 DEFCAST(bitc_word_t, _4word, bitc_uns64_t, _6uint64);
00974 DEFCAST(bitc_word_t, _4word, bitc_int64_t, _5int64);
00975 DEFCAST(bitc_word_t, _4word, bitc_word_t, _4word);
00976 DEFCAST(bitc_float_t, _5float, bitc_word_t, _4word);
00977 DEFCAST(bitc_double_t, _6double, bitc_word_t, _4word);
00978 DEFCAST(bitc_word_t, _4word, bitc_float_t, _5float);
00979 DEFCAST(bitc_word_t, _4word, bitc_double_t, _6double);
00980
00981
00982
00983
00984
00985
00986
00987
00988
00989
00990
00991
00992
00993
00994
00995
00996
00997
00998
00999
01163
01164
01168 void *
01169 bitc_emit_procedure_object(void *stubP, void *envP) MAYBE_UNUSED;
01170
01171 #if defined(__i386__)
01172
01173 typedef union {
01174 uint8_t code[13];
01175 struct {
01176 uint8_t pad[4];
01177 void *ptr;
01178 } env;
01179 } bitc_Procedure;
01180
01181 #define BITC_GET_CLOSURE_ENV(nm) \
01182 void *nm; \
01183 __asm__ __volatile__("movl %%eax,%0" : "=g" (nm))
01184
01185 #elif defined(__x86_64__)
01186
01187 typedef union {
01188 uint8_t code[25];
01189 struct {
01190 uint8_t pad[16];
01191 void *ptr;
01192 } env;
01193 } bitc_Procedure;
01194
01195 #define BITC_GET_CLOSURE_ENV(nm) \
01196 void *nm; \
01197 __asm__ __volatile__("movq %%rax,%0" : "=g" (nm))
01198
01199 #elif defined(__POWERPC__) && defined(__MACH__)
01200
01201 typedef union {
01202 uint32_t code[10];
01203 } bitc_Procedure;
01204
01205 #define BITC_GET_CLOSURE_ENV(nm) \
01206 void *nm; \
01207 __asm__ __volatile__("stw r2,%0" : "=m" (nm))
01208
01209 #elif defined(__sparc__)
01210
01211 typedef union {
01212 uint32_t code[3];
01213 struct {
01214 uint32_t pad[3];
01215 void *ptr;
01216 } env;
01217 } bitc_Procedure;
01218
01219 #define BITC_GET_CLOSURE_ENV(nm) \
01220 void *nm; \
01221 __asm__ __volatile__("mov %0,%%g0" : "=g" (nm))
01222
01223 #elif defined(__sparc64__)
01224
01225 typedef union {
01226 uint32_t code[7];
01227 struct {
01228
01229
01230 uint32_t pad[8];
01231 void *ptr;
01232 } env;
01233 } bitc_Procedure;
01234
01235 #define BITC_GET_CLOSURE_ENV(nm) \
01236 void *nm; \
01237 __asm__ __volatile__("mov %0,%%g0" : "=g" (nm))
01238
01239 #else
01240 # error "Target architecture not (yet) supported"
01241 #endif
01242
01243
01244
01245
01246
01247
01248 #endif