#include "M3Runtime.h" #define t32 ADDRESS #define t28 void #define TC32 TC_REFANY IMPORT TYPE TC_REFANY; IMPORT char VS_REFANY__4b8748e831fc107a; #define t33 ADDRESS typedef int t3; #define TC33 TC_ADDRESS IMPORT TYPE TC_ADDRESS; IMPORT char VS_ADDRESS__30f7308738738b44; #define t34 ADDRESS #define TC34 TC_NULL IMPORT TYPE TC_NULL; IMPORT char VS_NULL__fb50c7d53bec30dc; #line 37 ".ROOT/.boots/corelib/Interfaces/Text.i3" typedef struct { char* elts; int size[1]; } t17; #line 44 "FPrint.m3" #define t1 t17 typedef unsigned char t11; #line 19 #define t2 t17 typedef unsigned char t4; #line 44 typedef struct { t3 elts[251]; } t5; #line 43 typedef signed_char t6; typedef struct { t3 elts[1]; } t7; #line 42 typedef signed_char t8; typedef int t9; #line 16 "./Poly.i3" typedef signed_char t16; typedef struct { t3 elts[2]; } t10; #line 35 "FPrint.m3" typedef short t12; typedef struct { t11 elts[1000]; } t13; typedef void (*t14)(); #define t15 ADDRESS #define TC15 TC_TEXT IMPORT TYPE TC_TEXT; IMPORT char VS_TEXT__b7a92447326386f5; #define t15_MapProc TC_TEXT->mapProc typedef signed_char t18; #line 67 ".ROOT/.boots/corelib/Interfaces/Text.i3" typedef t18 (*t19)(); #line 63 typedef t3 (*t20)(); typedef unsigned char t21; #line 55 typedef t21 (*t22)(); #line 52 typedef t15 (*t23)(); #line 49 typedef t28 (*t24)(); #line 26 typedef t9 (*t25)(); #line 23 typedef t11 (*t26)(); typedef CLOSURE t27; #define t31 ADDRESS typedef struct { TYPE self; int private; } t31_methods; #define t31_msize (sizeof (t31_methods)) typedef struct { ADDRESS methods; } t31_fields; #define t31_size (sizeof (t31_fields)) #define TC31 TC_ROOT IMPORT TYPE TC_ROOT; IMPORT char VS_ROOT__349f58f628be0ac6; #define t31_MapProc TC_ROOT->mapProc #define t29 ADDRESS #define TC29 TC_MUTEX IMPORT TYPE TC_MUTEX; IMPORT char VS_MUTEX__1f9d4e89391ab815; #define t29_MapProc TC_MUTEX->mapProc #define t30 ADDRESS typedef struct { TYPE self; int private; } t30_methods; #define t30_msize (sizeof (t30_methods)) typedef struct { ADDRESS methods; } t30_fields; #define t30_size (sizeof (t30_fields)) #define TC30 TC_UNTRACED_ROOT IMPORT TYPE TC_UNTRACED_ROOT; IMPORT char VS_UNTRACED_ROOT__3e0964513fd6da20; typedef double t35; typedef float t36; #line 9 "FPrint.m3" IMPORT INITLINK* Word__init; IMPORT INITLINK* Poly__init; IMPORT INITLINK* Text__init; IMPORT INITLINK* FPrint__init; IMPORT t3 _Word__Or (); #line 9 IMPORT char VS_Word__Or__6e0e049826e116f7; IMPORT t3 _Word__Xor (); IMPORT char VS_Word__Xor__44d536613f2a974d; IMPORT t3 _Word__Shift (); #line 9 IMPORT char VS_Word__Shift__e50a3c672927c57d; IMPORT t10 _Poly__ONE; IMPORT char VS_Poly__ONE__b5c900c930619d07; IMPORT void _Poly__ComputeMod (); #line 9 IMPORT char VS_Poly__ComputeMod__7f438dde3876c613; IMPORT TYPE TC_Text__T; IMPORT char VS_Text__T__fc4b369f3ab271fd; IMPORT t9 _Text__Length (); #line 9 IMPORT char VS_Text__Length__661a58173d76f41c; IMPORT t15 _Text__Sub (); IMPORT char VS_Text__Sub__ba151c702fe1a06f; IMPORT t28 _Text__SetChars (); #line 9 IMPORT char VS_Text__SetChars__bc9d6611221daa06; EXPORT void _FPrint__FromText (); EXPORT char VS_FPrint__FromText__0bb4e38c3c08e10e = '\0'; #line 9 PRIVATE void _FPrint__Extend (); #line 17 "FPrint.m3" EXPORT void _FPrint__FromText (_t, _return) t15 _t; t10* _return; { t9 z2; t21 z3; t3 z4; t17 z5; t3 z6; t15 z7; t10 z8; #line 17 "FPrint.m3" { auto t10 _result; auto t9 _length; auto t9 _start; auto t13 _buffer; auto t10 __result; { ZERO1 (& _length); ZERO1 (& _start); ZERO (1000, & _buffer); #line 17 CHECKSTACKOVERFLOW; _result = _Poly__ONE; z2 = _Text__Length (_t); _length = z2; _start = 0 ; z3 = (_length > 0 ); if (z3) do { { t3 with; z2 = _length; z4 = 1000 ; if (z2 > z4) z2 = z4; with = z2; { auto t3 _i; { _i = with; { z5.elts = (char*) (& _buffer); z5.size[0] = 1000; }; z6 = _i; if (z6 < 0) RANGEFAULT; z7 = _Text__Sub (_t, _start, z6); #line 26 _Text__SetChars (&z5, z7); _FPrint__Extend (_result, &_buffer, _i, &z8); _result = z8; if ((_length -= _i) < 0) RANGEFAULT; if ((_start += _i) < 0) RANGEFAULT; } } }; z3 = (_length > 0 ); } while (z3); __result = _result; *_return = __result; return; } } }; #line 35 "FPrint.m3" PRIVATE void _FPrint__Extend (_t, _p, _c, _return) t10 _t; t13 * _p; t3 _c; t10* _return; { t3 z2; t3 z0; t3 z3; t3 z4; t3 z5; t3 z1; t21 z6; t3 z7; t3 z8; t17 z9; t10 z10; t9 z11; t9 z12; #line 35 "FPrint.m3" { auto t10 _init; auto t10 _result; auto t9 _intCount; auto t9 _start; auto t8 _residueBits; auto t7 _temp; auto t5 _ip; auto t10 __result; #line 35 { ZERO1 (& _intCount); ZERO1 (& _start); ZERO1B (& _residueBits); #line 35 CHECKSTACKOVERFLOW; #line 47 z2 = IDIV (_c, 4 ); z0 = z2; if (z0 < 0) RANGEFAULT; _intCount = z0; z3 = _c; z4 = 4 ; z5 = z3 - (z4 * (IDIV (z3, z4))); z1 = 8 * z5; z0 = z1; if ((z0 < 0) || (24 < z0)) RANGEFAULT; #line 48 _residueBits = z0; _result = _t; z6 = (_residueBits != 0 ); if (z6) { z5 = 32 - _residueBits; z4 = (_result.elts[ 0 ]); z7 = z5; z3 = (((z7 <= -32) || (z7 >= 32)) ? 0 : ((z7 < 0) ? (((unsigned)z4) >> -(z7)) : (((unsigned) z4) << z7))); #line 55 (_init.elts[ 0 ]) = z3; z4 = - _residueBits; z5 = (_result.elts[ 0 ]); z7 = z4; z3 = (((z7 <= -32) || (z7 >= 32)) ? 0 : ((z7 < 0) ? (((unsigned)z5) >> -(z7)) : (((unsigned) z5) << z7))); #line 56 z7 = 32 - _residueBits; z5 = (_result.elts[ 1 ]); z8 = z7; z4 = (((z8 <= -32) || (z8 >= 32)) ? 0 : ((z8 < 0) ? (((unsigned)z5) >> -(z8)) : (((unsigned) z5) << z8))); #line 56 z0 = z3 ^ z4; (_init.elts[ 1 ]) = z0; { register t8 e = _residueBits; if (e < 8) goto c1_else; if (e <= 8) goto c1_0; if (e < 16) goto c1_else; if (e <= 16) goto c1_1; #line 58 if (e < 24) goto c1_else; if (e <= 24) goto c1_2; goto c1_else; c1_0:; z4 = - _residueBits; z5 = (_result.elts[ 1 ]); z7 = z4; z3 = (((z7 <= -32) || (z7 >= 32)) ? 0 : ((z7 < 0) ? (((unsigned)z5) >> -(z7)) : (((unsigned) z5) << z7))); #line 59 z4 = ((unsigned)((*_p).elts[ 0 ])) << 24; z0 = z3 ^ z4; (_temp.elts[ 0 ]) = z0; goto c1_exit; c1_1:; z4 = - _residueBits; z5 = (_result.elts[ 1 ]); z7 = z4; z3 = (((z7 <= -32) || (z7 >= 32)) ? 0 : ((z7 < 0) ? (((unsigned)z5) >> -(z7)) : (((unsigned) z5) << z7))); #line 61 z4 = ((unsigned)((*_p).elts[ 0 ])) << 16; z5 = ((unsigned)((*_p).elts[ 1 ])) << 24; z0 = z4 | z5; z1 = z3 ^ z0; #line 61 (_temp.elts[ 0 ]) = z1; goto c1_exit; c1_2:; z4 = - _residueBits; z5 = (_result.elts[ 1 ]); z7 = z4; z3 = (((z7 <= -32) || (z7 >= 32)) ? 0 : ((z7 < 0) ? (((unsigned)z5) >> -(z7)) : (((unsigned) z5) << z7))); #line 64 z4 = ((unsigned)((*_p).elts[ 0 ])) << 8; z5 = ((unsigned)((*_p).elts[ 1 ])) << 16; z7 = ((unsigned)((*_p).elts[ 2 ])) << 24; #line 64 z0 = z5 | z7; z1 = z4 | z0; z0 = z3 ^ z1; (_temp.elts[ 0 ]) = z0; goto c1_exit; c1_else:; CASEFAULT; c1_exit: /* exit */; #line 64 }; { z9.elts = (char*) (& _temp); z9.size[0] = 1; }; _Poly__ComputeMod (&z9, _init, &z10); _result = z10; goto if_1_end; #line 70 }; if_1_end: /**/; z2 = IDIV (_residueBits, 8 ); z0 = z2; if (z0 < 0) RANGEFAULT; _start = z0; { int from, to, index; from = 0 ; z2 = _intCount - 1 ; to = z2; { auto t3 _i; { for (index = from; index <= to; index += 1) { #line 75 _i = (t3) index; z11 = _start; if (z11 > 999) RANGEFAULT; z5 = _start + 1 ; z3 = z5; if ((z3 < 0) || (999 < z3)) RANGEFAULT; #line 76 z5 = ((unsigned)((*_p).elts[z3])) << 8; z7 = _start + 2 ; z3 = z7; if ((z3 < 0) || (999 < z3)) RANGEFAULT; #line 76 z7 = ((unsigned)((*_p).elts[z3])) << 16; z8 = _start + 3 ; z3 = z8; if ((z3 < 0) || (999 < z3)) RANGEFAULT; #line 76 z8 = ((unsigned)((*_p).elts[z3])) << 24; z2 = z7 | z8; z3 = z5 | z2; z2 = ((*_p).elts[z11]) | z3; z3 = _i; #line 76 if (z3 > 250) RANGEFAULT; (_ip.elts[z3]) = z2; _start += 4 ; } } }; }; z3 = 0 ; if (z3 < 0) RANGEFAULT; z11 = _intCount; if (z11 < 0) RANGEFAULT; { z2 = z3; z12 = z11; if ((z2+z12) > 251) RANGEFAULT; #line 83 z9.size[0] = z12; z9.elts = ((char*)(& _ip)) + (z2 * 4); }; _Poly__ComputeMod (&z9, _result, &z10); _result = z10; __result = _result; *_return = __result; return; } } }; PRIVATE int init_done = -1; #line 88 "FPrint.m3" PRIVATE void FPrint__initProc (g) int g; { t21 z2; t21 z0; t21 z3; #line 88 "FPrint.m3" if (init_done >= g) return; init_done = g; INITIALIZE (& FPrint__init); INITIALIZE (& Word__init); INITIALIZE (& Poly__init); #line 88 INITIALIZE (& Text__init); z2 = ( 32 == 32 ); z0 = 0; if (z2) { z3 = ( 8 == 8 ); z0 = z3; }; if (!z0) ASSERTFAULT; return; #line 88 }; PRIVATE INITLINK me_0 ={(INITLINK*)NIL, 0, FPrint__initProc}; static char* VSimports[] = { &VS_Word__Or__6e0e049826e116f7, &VS_Word__Xor__44d536613f2a974d, &VS_Word__Shift__e50a3c672927c57d, &VS_Poly__ONE__b5c900c930619d07, &VS_Poly__ComputeMod__7f438dde3876c613, &VS_Text__T__fc4b369f3ab271fd, &VS_Text__Length__661a58173d76f41c, &VS_Text__Sub__ba151c702fe1a06f, &VS_Text__SetChars__bc9d6611221daa06, NIL }; void FPrint__MLink (phase) int phase; { switch (phase) { case 0: { me_0.link = FPrint__init; FPrint__init = & me_0; break; }; case 1: { break; }; case 2: { break; }; }; };