#include "M3Runtime.h" #define t23 ADDRESS #define t18 void #define TC23 TC_REFANY IMPORT TYPE TC_REFANY; IMPORT char VS_REFANY__4b8748e831fc107a; #define t24 ADDRESS typedef int t2; #define TC24 TC_ADDRESS IMPORT TYPE TC_ADDRESS; IMPORT char VS_ADDRESS__30f7308738738b44; #define t25 ADDRESS #define TC25 TC_NULL IMPORT TYPE TC_NULL; IMPORT char VS_NULL__fb50c7d53bec30dc; #line 16 "./Poly.i3" typedef struct { char* elts; int size[1]; } t14; #line 35 "Poly.m3" #define t1 t14 typedef t2 (*t3)(); #line 35 typedef signed_char t10; typedef struct { t2 elts[4]; } t4; #line 174 typedef t18 (*t5)(); #line 16 "./Poly.i3" typedef signed_char t15; typedef struct { t2 elts[2]; } t6; #line 143 "Poly.m3" typedef void (*t7)(); #line 103 typedef signed_char t8; typedef int t9; #line 18 "./PolyBasis.i3" #define t11 t14 typedef unsigned char t12; #line 18 typedef struct { t6 elts[256]; } t13; typedef unsigned char t29; typedef t29 (*t16)(); typedef CLOSURE t17; #define t22 ADDRESS typedef struct { TYPE self; int private; } t22_methods; #define t22_msize (sizeof (t22_methods)) typedef struct { ADDRESS methods; } t22_fields; #define t22_size (sizeof (t22_fields)) #define TC22 TC_ROOT IMPORT TYPE TC_ROOT; IMPORT char VS_ROOT__349f58f628be0ac6; #define t22_MapProc TC_ROOT->mapProc #define t19 ADDRESS #define TC19 TC_MUTEX IMPORT TYPE TC_MUTEX; IMPORT char VS_MUTEX__1f9d4e89391ab815; #define t19_MapProc TC_MUTEX->mapProc #define t20 ADDRESS #define TC20 TC_TEXT IMPORT TYPE TC_TEXT; IMPORT char VS_TEXT__b7a92447326386f5; #define t20_MapProc TC_TEXT->mapProc #define t21 ADDRESS typedef struct { TYPE self; int private; } t21_methods; #define t21_msize (sizeof (t21_methods)) typedef struct { ADDRESS methods; } t21_fields; #define t21_size (sizeof (t21_fields)) #define TC21 TC_UNTRACED_ROOT IMPORT TYPE TC_UNTRACED_ROOT; IMPORT char VS_UNTRACED_ROOT__3e0964513fd6da20; typedef unsigned char t26; typedef double t27; typedef float t28; #line 9 "Poly.m3" IMPORT INITLINK* PolyBasis__init; IMPORT INITLINK* Word__init; IMPORT INITLINK* Poly__init; IMPORT t6 _PolyBasis__P; IMPORT char VS_PolyBasis__P__3a84f8153a2e59bf; #line 9 IMPORT t13 _PolyBasis__poly64; IMPORT char VS_PolyBasis__poly64__ab16dc692f13145d; IMPORT t13 _PolyBasis__poly72; IMPORT char VS_PolyBasis__poly72__2961a4823076d99c; #line 9 IMPORT t13 _PolyBasis__poly80; IMPORT char VS_PolyBasis__poly80__5db6a5952a2c4f7a; IMPORT t13 _PolyBasis__poly88; IMPORT char VS_PolyBasis__poly88__ac2bb5872f3dcd3b; #line 9 IMPORT t13 _PolyBasis__power; IMPORT char VS_PolyBasis__power__993b56aa38bcb86d; IMPORT t13 _PolyBasis__power8; IMPORT char VS_PolyBasis__power8__7df5d0d43134daa4; #line 9 IMPORT t13 _PolyBasis__power16; IMPORT char VS_PolyBasis__power16__7ca86b4f3f91c159; IMPORT t13 _PolyBasis__power24; IMPORT char VS_PolyBasis__power24__c50dc4f837efccec; #line 9 IMPORT t2 _Word__And (); IMPORT char VS_Word__And__479727d22e0cef9f; IMPORT t2 _Word__Or (); IMPORT char VS_Word__Or__6e0e049826e116f7; #line 9 IMPORT t2 _Word__Xor (); IMPORT char VS_Word__Xor__44d536613f2a974d; IMPORT t2 _Word__Shift (); IMPORT char VS_Word__Shift__e50a3c672927c57d; #line 9 IMPORT t2 _Word__Extract (); IMPORT char VS_Word__Extract__66a802162333b7fb; IMPORT t6 _Poly__ZERO; IMPORT char VS_Poly__ZERO__600e150122d19c8d; #line 9 IMPORT t6 _Poly__ONE; IMPORT char VS_Poly__ONE__b5c900c930619d07; EXPORT void _Poly__Sum (); EXPORT char VS_Poly__Sum__269a68b93d88015f = '\0'; #line 9 EXPORT void _Poly__Product (); EXPORT char VS_Poly__Product__7d7abe682f70233f = '\0'; EXPORT void _Poly__TimesX (); EXPORT char VS_Poly__TimesX__11feb5c22070b51a = '\0'; #line 9 EXPORT void _Poly__Power (); EXPORT char VS_Poly__Power__06368e9b25457508 = '\0'; EXPORT void _Poly__ComputeMod (); EXPORT char VS_Poly__ComputeMod__7f438dde3876c613 = '\0'; #line 9 PRIVATE t2 _Poly__XOR (); PRIVATE t2 _Poly__XOR5 (); PRIVATE t18 _Poly__DoubleINC (); PRIVATE t18 _Poly__DoubleTimesX (); #line 9 PRIVATE t2 _Poly__LSR (); #line 37 "Poly.m3" EXPORT void _Poly__Sum (_p, _q, _return) t6 _p; t6 _q; t6* _return; { t2 z7; #line 37 "Poly.m3" { auto t6 _r; auto t6 __result; { CHECKSTACKOVERFLOW; z7 = _Poly__XOR ((_p.elts[ 0 ]), (_q.elts[ 0 ])); (_r.elts[ 0 ]) = z7; z7 = _Poly__XOR ((_p.elts[ 1 ]), (_q.elts[ 1 ])); (_r.elts[ 1 ]) = z7; __result = _r; *_return = __result; return; } } }; #line 45 "Poly.m3" EXPORT void _Poly__Product (_p, _q, _return) t6 _p; t6 _q; t6* _return; { t2 z5; t2 z6; t2 z7; t2 z3; t29 z1; t14 z2; t6 z4; #line 45 "Poly.m3" { auto t4 _temp; auto t4 _accum; auto t6 __result; { CHECKSTACKOVERFLOW; (_temp.elts[ 0 ]) = 0 ; (_temp.elts[ 1 ]) = 0 ; (_temp.elts[ 2 ]) = 0 ; (_temp.elts[ 3 ]) = 0 ; _accum = _temp; (_temp.elts[ 0 ]) = (_p.elts[ 0 ]); (_temp.elts[ 1 ]) = (_p.elts[ 1 ]); { int from, to, index; from = 0 ; to = 1 ; { auto t2 _j; { for (index = from; index <= to; index += 1) { _j = (t2) index; { int from, to, index; from = 31 ; to = 0 ; { auto t2 _i; { for (index = from; index >= to; index += -1) { #line 57 _i = (t2) index; z6 = 1 ; z7 = _i; z5 = (((z7 <= -32) || (z7 >= 32)) ? 0 : ((z7 < 0) ? (((unsigned)z6) >> -(z7)) : (((unsigned) z6) << z7))); #line 58 z3 = (_q.elts[_j]) & z5; z1 = (z3 != 0 ); if (z1) { _Poly__DoubleINC (&_accum, &_temp); goto if_1_end; }; if_1_end: /**/; _Poly__DoubleTimesX (&_temp); } } }; }; } } }; }; { z2.elts = (char*) (& _accum); z2.size[0] = 4; }; _Poly__ComputeMod (&z2, _Poly__ZERO, &z4); __result = z4; *_return = __result; #line 63 return; } } }; #line 67 "Poly.m3" EXPORT void _Poly__ComputeMod (_source, _init, _return) t1 * _source; t6 _init; t6* _return; { t2 z0; t2 z5; t2 z6; t2 z7; t2 z8; t2 z11; t2 z16; t2 z21; t2 z24; t2 z3; t2 z4; t2 z10; t2 z15; t2 z20; t2 z23; #line 67 "Poly.m3" { auto t6 _result; auto t2 _temp0; auto t2 _temp1; auto t2 _temp2; auto t2 _temp3; auto t6 __result; { CHECKSTACKOVERFLOW; _result = _init; { int from, to, index; from = 0 ; z0 = (*_source).size[0] - 1; to = z0; { auto t2 _i; { for (index = from; index <= to; index += 1) { #line 78 _i = (t2) index; z6 = 24 ; z7 = 8 ; z8 = (_result.elts[ 0 ]); if (z6 + z7 > 32) RANGEFAULT; z5 = (z7 == 32) ? z8 : ((z6 == 32) ? 0 : ( (((unsigned)z8) >> z6) & ~(((unsigned) (~0)) << z7) )); #line 79 _temp3 = z5; z6 = 16 ; z7 = 8 ; z8 = (_result.elts[ 0 ]); if (z6 + z7 > 32) RANGEFAULT; z5 = (z7 == 32) ? z8 : ((z6 == 32) ? 0 : ( (((unsigned)z8) >> z6) & ~(((unsigned) (~0)) << z7) )); #line 80 _temp2 = z5; z6 = 8 ; z7 = 8 ; z8 = (_result.elts[ 0 ]); if (z6 + z7 > 32) RANGEFAULT; z5 = (z7 == 32) ? z8 : ((z6 == 32) ? 0 : ( (((unsigned)z8) >> z6) & ~(((unsigned) (~0)) << z7) )); #line 81 _temp1 = z5; z6 = 0 ; z7 = 8 ; z8 = (_result.elts[ 0 ]); if (z6 + z7 > 32) RANGEFAULT; z5 = (z7 == 32) ? z8 : ((z6 == 32) ? 0 : ( (((unsigned)z8) >> z6) & ~(((unsigned) (~0)) << z7) )); #line 82 _temp0 = z5; z6 = _temp0; if ((z6 < 0) || (255 < z6)) RANGEFAULT; z11 = _temp1; if ((z11 < 0) || (255 < z11)) RANGEFAULT; #line 84 z16 = _temp2; if ((z16 < 0) || (255 < z16)) RANGEFAULT; z21 = _temp3; if ((z21 < 0) || (255 < z21)) RANGEFAULT; #line 84 z24 = _Poly__XOR5 ((_result.elts[ 1 ]), ((_PolyBasis__poly88.elts[z6]).elts[ 0 ]), ((_PolyBasis__poly80.elts[z11]).elts[ 0 ]), ((_PolyBasis__poly72.elts[z16]).elts[ 0 ]), ((_PolyBasis__poly64.elts[z21]).elts[ 0 ])); #line 84 (_result.elts[ 0 ]) = z24; { register t14* array = & (*_source); z4 = _i; if (z4 >= (array->size[0])) RANGEFAULT; z3 = (int)(array->elts + (z4 * 4)); #line 89 }; z5 = _temp0; if ((z5 < 0) || (255 < z5)) RANGEFAULT; z10 = _temp1; if ((z10 < 0) || (255 < z10)) RANGEFAULT; z15 = _temp2; #line 89 if ((z15 < 0) || (255 < z15)) RANGEFAULT; z20 = _temp3; if ((z20 < 0) || (255 < z20)) RANGEFAULT; z23 = _Poly__XOR5 ((*(t2*)z3), ((_PolyBasis__poly88.elts[z5]).elts[ 1 ]), ((_PolyBasis__poly80.elts[z10]).elts[ 1 ]), ((_PolyBasis__poly72.elts[z15]).elts[ 1 ]), ((_PolyBasis__poly64.elts[z20]).elts[ 1 ])); #line 89 (_result.elts[ 1 ]) = z23; } } }; }; __result = _result; *_return = __result; return; } } }; #line 99 "Poly.m3" EXPORT void _Poly__Power (_d, _return) t9 _d; t6* _return; { t2 z3; t2 z4; t2 z5; t9 z6; t29 z2; t2 z7; t6 z8; t2 z10; t6 z11; t6 z9; t6 z1; #line 99 "Poly.m3" { auto t2 _tmp0; auto t2 _tmp1; auto t2 _tmp2; auto t2 _tmp3; auto t8 _i; auto t6 __result; { ZERO1B (& _i); #line 99 CHECKSTACKOVERFLOW; z4 = 24 ; z5 = 8 ; z6 = _d; if (z4 + z5 > 32) RANGEFAULT; z3 = (z5 == 32) ? z6 : ((z4 == 32) ? 0 : ( (((unsigned)z6) >> z4) & ~(((unsigned) (~0)) << z5) )); #line 105 _tmp3 = z3; z4 = 16 ; z5 = 8 ; z6 = _d; if (z4 + z5 > 32) RANGEFAULT; z3 = (z5 == 32) ? z6 : ((z4 == 32) ? 0 : ( (((unsigned)z6) >> z4) & ~(((unsigned) (~0)) << z5) )); #line 106 _tmp2 = z3; z4 = 8 ; z5 = 8 ; z6 = _d; if (z4 + z5 > 32) RANGEFAULT; z3 = (z5 == 32) ? z6 : ((z4 == 32) ? 0 : ( (((unsigned)z6) >> z4) & ~(((unsigned) (~0)) << z5) )); #line 107 _tmp1 = z3; z4 = 0 ; z5 = 8 ; z6 = _d; if (z4 + z5 > 32) RANGEFAULT; z3 = (z5 == 32) ? z6 : ((z4 == 32) ? 0 : ( (((unsigned)z6) >> z4) & ~(((unsigned) (~0)) << z5) )); #line 108 _tmp0 = z3; _i = 0 ; z2 = (_tmp0 != 0 ); if (z2) { _i = 1 ; goto if_2_end; }; if_2_end: /**/; z2 = (_tmp1 != 0 ); if (z2) { if ((_i += 2 ) > 15) RANGEFAULT; goto if_3_end; }; if_3_end: /**/; z2 = (_tmp2 != 0 ); if (z2) { if ((_i += 4 ) > 15) RANGEFAULT; goto if_4_end; }; if_4_end: /**/; z2 = (_tmp3 != 0 ); if (z2) { if ((_i += 8 ) > 15) RANGEFAULT; goto if_5_end; }; if_5_end: /**/; switch (_i) { case 0: __result = _Poly__ONE; *_return = __result; return; case 1: z3 = _tmp0; if ((z3 < 0) || (255 < z3)) RANGEFAULT; __result = (_PolyBasis__power.elts[z3]); *_return = __result; return; case 2: #line 119 z3 = _tmp1; if ((z3 < 0) || (255 < z3)) RANGEFAULT; __result = (_PolyBasis__power8.elts[z3]); *_return = __result; #line 120 return; case 3: z3 = _tmp1; if ((z3 < 0) || (255 < z3)) RANGEFAULT; z7 = _tmp0; if ((z7 < 0) || (255 < z7)) RANGEFAULT; _Poly__Product ((_PolyBasis__power8.elts[z3]), (_PolyBasis__power.elts[z7]), &z8); #line 121 __result = z8; *_return = __result; return; case 4: z3 = _tmp2; if ((z3 < 0) || (255 < z3)) RANGEFAULT; __result = (_PolyBasis__power16.elts[z3]); *_return = __result; return; case 5: #line 122 z3 = _tmp2; if ((z3 < 0) || (255 < z3)) RANGEFAULT; z7 = _tmp0; if ((z7 < 0) || (255 < z7)) RANGEFAULT; _Poly__Product ((_PolyBasis__power16.elts[z3]), (_PolyBasis__power.elts[z7]), &z8); #line 123 __result = z8; *_return = __result; return; case 6: z3 = _tmp2; if ((z3 < 0) || (255 < z3)) RANGEFAULT; z7 = _tmp1; if ((z7 < 0) || (255 < z7)) RANGEFAULT; _Poly__Product ((_PolyBasis__power16.elts[z3]), (_PolyBasis__power8.elts[z7]), &z8); #line 124 __result = z8; *_return = __result; return; case 7: z3 = _tmp2; if ((z3 < 0) || (255 < z3)) RANGEFAULT; z7 = _tmp1; if ((z7 < 0) || (255 < z7)) RANGEFAULT; z10 = _tmp0; if ((z10 < 0) || (255 < z10)) RANGEFAULT; #line 125 _Poly__Product ((_PolyBasis__power8.elts[z7]), (_PolyBasis__power.elts[z10]), &z11); _Poly__Product ((_PolyBasis__power16.elts[z3]), z11, &z8); #line 125 __result = z8; *_return = __result; return; case 8: z3 = _tmp3; if ((z3 < 0) || (255 < z3)) RANGEFAULT; __result = (_PolyBasis__power24.elts[z3]); *_return = __result; return; case 9: #line 127 z3 = _tmp3; if ((z3 < 0) || (255 < z3)) RANGEFAULT; z7 = _tmp0; if ((z7 < 0) || (255 < z7)) RANGEFAULT; _Poly__Product ((_PolyBasis__power24.elts[z3]), (_PolyBasis__power.elts[z7]), &z8); #line 128 __result = z8; *_return = __result; return; case 10: z3 = _tmp3; if ((z3 < 0) || (255 < z3)) RANGEFAULT; z7 = _tmp1; if ((z7 < 0) || (255 < z7)) RANGEFAULT; _Poly__Product ((_PolyBasis__power24.elts[z3]), (_PolyBasis__power8.elts[z7]), &z8); #line 129 __result = z8; *_return = __result; return; case 11: z3 = _tmp3; if ((z3 < 0) || (255 < z3)) RANGEFAULT; z7 = _tmp1; if ((z7 < 0) || (255 < z7)) RANGEFAULT; z10 = _tmp0; if ((z10 < 0) || (255 < z10)) RANGEFAULT; #line 130 _Poly__Product ((_PolyBasis__power8.elts[z7]), (_PolyBasis__power.elts[z10]), &z11); _Poly__Product ((_PolyBasis__power24.elts[z3]), z11, &z8); #line 130 __result = z8; *_return = __result; return; case 12: z3 = _tmp3; if ((z3 < 0) || (255 < z3)) RANGEFAULT; z7 = _tmp2; if ((z7 < 0) || (255 < z7)) RANGEFAULT; _Poly__Product ((_PolyBasis__power24.elts[z3]), (_PolyBasis__power16.elts[z7]), &z8); #line 132 __result = z8; *_return = __result; return; case 13: z3 = _tmp3; if ((z3 < 0) || (255 < z3)) RANGEFAULT; z7 = _tmp2; if ((z7 < 0) || (255 < z7)) RANGEFAULT; z10 = _tmp0; if ((z10 < 0) || (255 < z10)) RANGEFAULT; #line 133 _Poly__Product ((_PolyBasis__power16.elts[z7]), (_PolyBasis__power.elts[z10]), &z11); _Poly__Product ((_PolyBasis__power24.elts[z3]), z11, &z8); #line 133 __result = z8; *_return = __result; return; case 14: z3 = _tmp3; if ((z3 < 0) || (255 < z3)) RANGEFAULT; z7 = _tmp2; if ((z7 < 0) || (255 < z7)) RANGEFAULT; z10 = _tmp1; if ((z10 < 0) || (255 < z10)) RANGEFAULT; #line 135 _Poly__Product ((_PolyBasis__power16.elts[z7]), (_PolyBasis__power8.elts[z10]), &z11); _Poly__Product ((_PolyBasis__power24.elts[z3]), z11, &z8); #line 135 __result = z8; *_return = __result; return; case 15: z4 = _tmp3; if ((z4 < 0) || (255 < z4)) RANGEFAULT; z7 = _tmp2; if ((z7 < 0) || (255 < z7)) RANGEFAULT; _Poly__Product ((_PolyBasis__power24.elts[z4]), (_PolyBasis__power16.elts[z7]), &z8); #line 137 z4 = _tmp1; if ((z4 < 0) || (255 < z4)) RANGEFAULT; z7 = _tmp0; if ((z7 < 0) || (255 < z7)) RANGEFAULT; _Poly__Product ((_PolyBasis__power8.elts[z4]), (_PolyBasis__power.elts[z7]), &z9); #line 137 _Poly__Product (z8, z9, &z1); __result = z1; *_return = __result; return; default: /**/; }; } } }; #line 143 "Poly.m3" EXPORT void _Poly__TimesX (_p, _return) t6 _p; t6* _return; { t2 z5; t2 z4; t29 z1; t2 z3; #line 143 "Poly.m3" { auto t6 _result; auto t6 __result; { CHECKSTACKOVERFLOW; z5 = _Poly__LSR ((_p.elts[ 0 ]), 1 ); (_result.elts[ 0 ]) = z5; z4 = (_p.elts[ 1 ]) & 1 ; z1 = (z4 == 1 ); if (z1) { z4 = - 1 ; z3 = (_result.elts[ 0 ]) | z4; (_result.elts[ 0 ]) = z3; #line 148 goto if_6_end; }; if_6_end: /**/; z5 = _Poly__LSR ((_p.elts[ 1 ]), 1 ); (_result.elts[ 1 ]) = z5; __result = _result; *_return = __result; return; } } }; #line 153 "Poly.m3" PRIVATE t2 _Poly__XOR (_a, _b) t2 _a; t2 _b; { t2 z2; #line 153 "Poly.m3" { auto t2 __result; { CHECKSTACKOVERFLOW; z2 = _a ^ _b; __result = z2; return __result; } } }; #line 159 "Poly.m3" PRIVATE t2 _Poly__XOR5 (_a, _b, _c, _d, _e) t2 _a; t2 _b; t2 _c; t2 _d; t2 _e; { t2 z6; t2 z7; t2 z3; t2 z2; #line 159 "Poly.m3" { auto t2 __result; { CHECKSTACKOVERFLOW; z6 = _Poly__XOR (_b, _c); z7 = _Poly__XOR (_d, _e); z3 = _Poly__XOR (z6, z7); z2 = _Poly__XOR (_a, z3); __result = z2; #line 162 return __result; } } }; #line 165 "Poly.m3" PRIVATE t18 _Poly__DoubleINC (_a, _b) t4 * _a; t4 * _b; { t2 z7; #line 165 "Poly.m3" { { CHECKSTACKOVERFLOW; z7 = _Poly__XOR (((*_a).elts[ 0 ]), ((*_b).elts[ 0 ])); ((*_a).elts[ 0 ]) = z7; z7 = _Poly__XOR (((*_a).elts[ 1 ]), ((*_b).elts[ 1 ])); ((*_a).elts[ 1 ]) = z7; z7 = _Poly__XOR (((*_a).elts[ 2 ]), ((*_b).elts[ 2 ])); ((*_a).elts[ 2 ]) = z7; z7 = _Poly__XOR (((*_a).elts[ 3 ]), ((*_b).elts[ 3 ])); ((*_a).elts[ 3 ]) = z7; } } }; #line 174 "Poly.m3" PRIVATE t18 _Poly__DoubleTimesX (_a) t4 * _a; { t2 z5; t2 z4; t29 z1; #line 174 "Poly.m3" { { CHECKSTACKOVERFLOW; z5 = _Poly__LSR (((*_a).elts[ 0 ]), 1 ); ((*_a).elts[ 0 ]) = z5; z4 = ((*_a).elts[ 1 ]) & 1 ; z1 = (z4 != 0 ); if (z1) { z4 = ((*_a).elts[ 0 ]) | -2147483648 ; ((*_a).elts[ 0 ]) = z4; goto if_7_end; #line 178 }; if_7_end: /**/; z5 = _Poly__LSR (((*_a).elts[ 1 ]), 1 ); ((*_a).elts[ 1 ]) = z5; z4 = ((*_a).elts[ 2 ]) & 1 ; z1 = (z4 != 0 ); if (z1) { z4 = ((*_a).elts[ 1 ]) | -2147483648 ; ((*_a).elts[ 1 ]) = z4; goto if_8_end; #line 180 }; if_8_end: /**/; z5 = _Poly__LSR (((*_a).elts[ 2 ]), 1 ); ((*_a).elts[ 2 ]) = z5; z4 = ((*_a).elts[ 3 ]) & 1 ; z1 = (z4 != 0 ); if (z1) { z4 = ((*_a).elts[ 2 ]) | -2147483648 ; ((*_a).elts[ 2 ]) = z4; goto if_9_end; #line 182 }; if_9_end: /**/; z5 = _Poly__LSR (((*_a).elts[ 3 ]), 1 ); ((*_a).elts[ 3 ]) = z5; } } }; #line 195 "Poly.m3" PRIVATE t2 _Poly__LSR (_a, _cnt) t2 _a; t2 _cnt; { t2 z2; t2 z1; t2 z3; t2 z4; #line 195 "Poly.m3" { auto t2 __result; { CHECKSTACKOVERFLOW; z2 = - _cnt; z3 = _a; z4 = z2; z1 = (((z4 <= -32) || (z4 >= 32)) ? 0 : ((z4 < 0) ? (((unsigned)z3) >> -(z4)) : (((unsigned) z3) << z4))); #line 199 __result = z1; return __result; } } }; PRIVATE int init_done = -1; #line 203 "Poly.m3" PRIVATE void Poly__initProc (g) int g; { t29 z2; t29 z0; t29 z3; #line 203 "Poly.m3" if (init_done >= g) return; init_done = g; INITIALIZE (& Poly__init); INITIALIZE (& PolyBasis__init); INITIALIZE (& Word__init); #line 203 z2 = ( 32 == 32 ); z0 = 0; if (z2) { z3 = ( 8 == 8 ); z0 = z3; }; if (!z0) ASSERTFAULT; return; }; PRIVATE INITLINK me_0 ={(INITLINK*)NIL, 0, Poly__initProc}; static char* VSimports[] = { &VS_PolyBasis__P__3a84f8153a2e59bf, &VS_PolyBasis__poly64__ab16dc692f13145d, &VS_PolyBasis__poly72__2961a4823076d99c, &VS_PolyBasis__poly80__5db6a5952a2c4f7a, &VS_PolyBasis__poly88__ac2bb5872f3dcd3b, &VS_PolyBasis__power__993b56aa38bcb86d, &VS_PolyBasis__power8__7df5d0d43134daa4, &VS_PolyBasis__power16__7ca86b4f3f91c159, &VS_PolyBasis__power24__c50dc4f837efccec, &VS_Word__And__479727d22e0cef9f, &VS_Word__Or__6e0e049826e116f7, &VS_Word__Xor__44d536613f2a974d, &VS_Word__Shift__e50a3c672927c57d, &VS_Word__Extract__66a802162333b7fb, &VS_Poly__ZERO__600e150122d19c8d, &VS_Poly__ONE__b5c900c930619d07, &VS_PolyBasis__power24__c50dc4f837efccec, &VS_PolyBasis__power16__7ca86b4f3f91c159, &VS_PolyBasis__power8__7df5d0d43134daa4, &VS_PolyBasis__power__993b56aa38bcb86d, &VS_PolyBasis__poly88__ac2bb5872f3dcd3b, &VS_PolyBasis__poly80__5db6a5952a2c4f7a, &VS_PolyBasis__poly72__2961a4823076d99c, &VS_PolyBasis__poly64__ab16dc692f13145d, &VS_PolyBasis__P__3a84f8153a2e59bf, NIL }; void Poly__MLink (phase) int phase; { switch (phase) { case 0: { me_0.link = Poly__init; Poly__init = & me_0; break; }; case 1: { break; }; case 2: { break; }; }; };