/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1993 by Xerox Corporation. All rights reserved. */
/* time: May 6, 1993 5:03:05 pm PDT */
/* C2C version: April 20, 1993 (sun4) */
/* ref-counting: off */
/* file: DSupportImpl, module: DSupportImpl */
/* switches: bcfhklnouw */
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [1390064766,3091302834] DSupportImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef struct {word f0, f1;} W2;
typedef W2 *W2Pt;
typedef struct {word f0, f1, f2, f3, f4, f5;} W6;
typedef word (*fPt)();
#define SOURCE(p, l) /* source p, l */
static void NoName←Q3204();
static void DSupportImpl←P0();
static void ConversionError←P60();
static void Overflow←P120();
extern void XR←D64SetTestMode();
extern void XR←DCardCard();
extern void XR←DCardInt();
extern void XR←DCardDIntI();
extern void XR←DIntCard();
extern void XR←DIntInt();
extern void XR←DIntDCardI();
extern word XR←CardDIntI();
extern word XR←CardDCardI();
extern word XR←IntDIntI();
extern word XR←IntDCardI();
extern void XR←DCardAddI();
extern void XR←DCardSubI();
extern void XR←DCardMulI();
static void Div2←P1020();
extern void XR←DCardDivI();
extern void XR←DCardModI();
extern void XR←DCardPwrI();
static void MixedPwr←P2856();
extern word XR←DCardGtI();
extern word XR←DCardGeI();
extern word XR←DEqI();
extern void XR←DCardMinI();
extern void XR←DCardMaxI();
static void XDIntNeg←P1620();
static void Neg64←P1680();
extern void XR←DIntNegI();
extern void XR←DIntAddI();
extern void XR←DIntSubI();
extern void XR←DIntMulI();
extern void XR←DIntDivI();
extern void XR←DIntModI();
extern void XR←DIntPwrI();
extern word XR←DIntGtI();
extern word XR←DIntGeI();
extern void XR←DIntAbsI();
extern void XR←DIntMinI();
extern void XR←DIntMaxI();
extern void XR←DFloatDCardI();
extern void XR←DFloatDIntI();
extern word XR←FloatDCardI();
extern word XR←FloatDIntI();
static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\122\332\264\176\300\270\101\211\262\100\164\000\000"};
static struct {unsigned f; char r[16];} string2 = {851984, "\257\300\321\335\027\212\300\103\063\273\041\100\150\000\000"};
static struct {unsigned f; char r[16];} string3 = {851984, "\257\300\275\320\070\317\300\004\110\363\366\100\150\000\000"};
static struct {unsigned f; char r[16];} string4 = {851984, "\257\300\233\213\041\256\300\330\147\331\041\100\150\000\000"};
static struct {
word f0[6]; word f6; word f7; word f8;
word f9; word f10; word f11; word f12;
word f13; word f14; word f15; word f16;
word f17; word f18; word f19; word f20;
word f21; word f22; word f23; word f24;
word f25; word f26; word f27; word f28;
word f29; word f30; word f31; word f32;
word f33; word f34; word f35; word f36;
word f37; word f38; word f39; word f40;
word f41; word f42; word f43; word f44;
word f45; word f46; word f47; word f48;
word f49; word f50; word f51; word f52;
word f53; word f54; word f55; word f56;
word f57; word f58; word f59; word f60;
word f61; word f62; word f63; word f64;
word f65; word f66; word f67; word f68;
word f69; word f70; word f71; word f72;
word f73; word f74; word f75; word f76;
word f77; word f78; word f79; word f80;
word f81; word f82; word f83; word f84;
word f85; word f86; word f87; word f88;
word f89; word f90; word f91; word f92;
word f93[4];
} globalframe = {
{0}, (word) XR←FloatDIntI, 0, (word) XR←FloatDCardI,
0, (word) XR←DFloatDIntI, 0, (word) XR←DFloatDCardI,
0, (word) XR←DIntMaxI, 0, (word) XR←DIntMinI,
0, (word) XR←DIntAbsI, 0, (word) XR←DIntGeI,
0, (word) XR←DIntGtI, 0, (word) XR←DIntPwrI,
0, (word) XR←DIntModI, 0, (word) XR←DIntDivI,
0, (word) XR←DIntMulI, 0, (word) XR←DIntSubI,
0, (word) XR←DIntAddI, 0, (word) XR←DIntNegI,
0, (word) Neg64←P1680, 0, (word) XDIntNeg←P1620,
0, (word) XR←DCardMaxI, 0, (word) XR←DCardMinI,
0, (word) XR←DEqI, 0, (word) XR←DCardGeI,
0, (word) XR←DCardGtI, 0, (word) XR←DCardPwrI,
0, (word) XR←DCardModI, 0, (word) XR←DCardDivI,
0, (word) Div2←P1020, 0, (word) XR←DCardMulI,
0, (word) XR←DCardSubI, 0, (word) XR←DCardAddI,
0, (word) XR←IntDCardI, 0, (word) XR←IntDIntI,
0, (word) XR←CardDCardI, 0, (word) XR←CardDIntI,
0, (word) XR←DIntDCardI, 0, (word) XR←DIntInt,
0, (word) XR←DIntCard, 0, (word) XR←DCardDIntI,
0, (word) XR←DCardInt, 0, (word) XR←DCardCard,
0, (word) XR←D64SetTestMode, 0, (word) Overflow←P120,
0, (word) ConversionError←P60, 0, (word) DSupportImpl←P0,
{0}
};
static void NoName←Q3204()
{
register ptr gf←c0224 = (ptr) &globalframe;
word var←c14092;
(void) XR←DeclareGlobalFrame((word) "DSupportImpl", &globalframe, (word) XR←GetTypeIndexS((word) (&string1)), (word) (( (bPt) gf←c0224)+368)
/* var←c13356 */ );
var←c14092 = (word) XR←ImportInterface((word) "RealSupport", (word) XR←GetTypeIndexS((word) (&string2)), 24);
(* (( (ptr) gf←c0224)+96)/* var←c14060 */ ) = var←c14092;
(void) XR←ImportProcS(var←c14092, 67371777);
(void) XR←ImportProcS(var←c14092, 67634690);
var←c14092 = (word) XR←ImportInterface((word) "RuntimeError", (word) XR←GetTypeIndexS((word) (&string3)), 27);
(* (( (ptr) gf←c0224)+94)/* var←c13388 */ ) = var←c14092;
var←c14092 = (word) XR←ImportInterface((word) "DRealSupport", (word) XR←GetTypeIndexS((word) (&string4)), 26);
(* (( (ptr) gf←c0224)+95)/* var←c13964 */ ) = var←c14092;
(void) XR←ImportProcS(var←c14092, 134480897);
(void) XR←ImportProcS(var←c14092, 135006210);
}
static void DSupportImpl←P0(formal←c052, formal←c051)
word formal←c052;
word formal←c051;
{
/* DSupportImpl: */
}
static void ConversionError←P60()
{
register ptr gf←c14124 = (ptr) &globalframe;
/* ConversionError: */
SOURCE(1934, 85)
SOURCE(1989, 30)
(void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c14124)+94)/* var←c13388 */ ))+8) ), 0);
}
static void Overflow←P120()
{
register ptr gf←c14156 = (ptr) &globalframe;
/* Overflow: */
SOURCE(2025, 70)
SOURCE(2047, 48)
if ((0 != (* (( (ptr) gf←c14156)+4)/* overFlowTests64←v2664 */ ))) {
SOURCE(2071, 24)
(void) (XR←RaiseSignal((word) (( (bPt) gf←c14156)+20)/* var←c11948 */ , 0, 0));
};
}
extern void XR←D64SetTestMode(c←v4976)
word c←v4976;
{
register ptr gf←c14188 = (ptr) &globalframe;
/* D64SetTestMode: */
SOURCE(2101, 72)
SOURCE(2151, 22)
(* (( (ptr) gf←c14188)+4)/* overFlowTests64←v2664 */ ) = (unsigned) (c←v4976 != 0);
}
extern void XR←DCardCard(res←v5036, c←v5064)
word res←v5036;
word c←v5064;
{
/* DCardCard: */
SOURCE(2178, 88)
SOURCE(2240, 12)
(* (( (ptr) res←v5036)+1) ) = c←v5064;
SOURCE(2254, 12)
(* (ptr) res←v5036 ) = 0;
}
extern void XR←DCardInt(res←v5124, i←v5152)
word res←v5124;
word i←v5152;
{
/* DCardInt: */
SOURCE(2272, 117)
SOURCE(2332, 29)
if (( (int)i←v5152 < (int)0)) {
SOURCE(2344, 17)
(void) ConversionError←P60();
};
SOURCE(2363, 12)
(* (( (ptr) res←v5124)+1) ) = i←v5152;
SOURCE(2377, 12)
(* (ptr) res←v5124 ) = 0;
}
extern void XR←DCardDIntI(res←v5212, dint←v5240)
word res←v5212;
word dint←v5240;
{
/* DCardDInt: */
SOURCE(2395, 108)
SOURCE(2452, 37)
if (( (int)(* (ptr) dint←v5240 ) < (int)0)) {
SOURCE(2472, 17)
(void) ConversionError←P60();
};
SOURCE(2491, 12)
(* (W2Pt) res←v5212 ) = (* (W2Pt) dint←v5240 );
}
extern void XR←DIntCard(res←v5300, c←v5328)
word res←v5300;
word c←v5328;
{
/* DIntCard: */
SOURCE(2510, 87)
SOURCE(2571, 12)
(* (ptr) res←v5300 ) = 0;
SOURCE(2585, 12)
(* (( (ptr) res←v5300)+1) ) = c←v5328;
}
extern void XR←DIntInt(res←v5388, i←v5416)
word res←v5388;
word i←v5416;
{
/* DIntInt: */
SOURCE(2603, 117)
SOURCE(2662, 44)
if (( (int)i←v5416 >= (int)0)) {
SOURCE(2675, 18)
(* (ptr) res←v5388 ) = 0;
}
else {
SOURCE(2693, 13)
(* (ptr) res←v5388 ) = (word) -1;
};
SOURCE(2708, 12)
(* (( (ptr) res←v5388)+1) ) = i←v5416;
}
extern void XR←DIntDCardI(res←v5476, dcard←v5504)
word res←v5476;
word dcard←v5504;
{
/* DIntDCard: */
SOURCE(2726, 112)
SOURCE(2785, 38)
if (( (int)(* (ptr) dcard←v5504 ) < (int)0)) {
SOURCE(2806, 17)
(void) ConversionError←P60();
};
SOURCE(2825, 13)
(* (W2Pt) res←v5476 ) = (* (W2Pt) dcard←v5504 );
}
extern word XR←CardDIntI(dint←v5564)
word dint←v5564;
{
word var←c5608;
/* CardDInt: */
SOURCE(2845, 125)
SOURCE(2913, 37)
if (((* (ptr) dint←v5564 ) != 0)) {
SOURCE(2933, 17)
(void) ConversionError←P60();
};
SOURCE(2952, 18)
return((* (( (ptr) dint←v5564)+1) ));
}
extern word XR←CardDCardI(dcard←v5668)
word dcard←v5668;
{
word var←c5712;
/* CardDCard: */
SOURCE(2976, 130)
SOURCE(3047, 38)
if (((* (ptr) dcard←v5668 ) != 0)) {
SOURCE(3068, 17)
(void) ConversionError←P60();
};
SOURCE(3087, 19)
return((* (( (ptr) dcard←v5668)+1) ));
}
extern word XR←IntDIntI(dint←v5772)
word dint←v5772;
{
word var←c5816;
/* IntDInt: */
SOURCE(3113, 234)
SOURCE(3179, 148)
{
word var←c13420;
var←c13420 = (* (ptr) dint←v5772 );
if ((var←c13420 == 0)) {
SOURCE(3206, 37)
if (( (int)(* (( (ptr) dint←v5772)+1) ) < (int)0)) {
SOURCE(3226, 17)
(void) ConversionError←P60();
};
}
else {
if ((var←c13420 == (word) -1)) {
SOURCE(3259, 38)
if (( (int)(* (( (ptr) dint←v5772)+1) ) >= (int)0)) {
SOURCE(3280, 17)
(void) ConversionError←P60();
};
}
else {
SOURCE(3310, 17)
(void) ConversionError←P60();
};
};
};
SOURCE(3329, 18)
return((* (( (ptr) dint←v5772)+1) ));
}
extern word XR←IntDCardI(dcard←v5876)
word dcard←v5876;
{
word var←c5920;
/* IntDCard: */
SOURCE(3353, 143)
SOURCE(3421, 54)
if (((* (ptr) dcard←v5876 ) != 0) || ( (int)(* (( (ptr) dcard←v5876)+1) ) < (int)0)) {
SOURCE(3458, 17)
(void) ConversionError←P60();
};
SOURCE(3477, 19)
return((* (( (ptr) dcard←v5876)+1) ));
}
extern void XR←DCardAddI(res←v5980, a←v6008, b←v6036)
word res←v5980;
word a←v6008;
word b←v6036;
{
word over←v9512;
/* DCardAdd: */
SOURCE(3504, 281)
SOURCE(3560, 60)
over←v9512 = ( (( (word) -1 - (* (( (ptr) a←v6008)+1) )) < (* (( (ptr) b←v6036)+1) )) ? 1 : 0 ) ;
SOURCE(3622, 97)
if ((( (word) -1 - (* (ptr) a←v6008 )) <= (* (ptr) b←v6036 ))) {
SOURCE(3662, 57)
if ((( (word) -1 - (* (ptr) a←v6008 )) < (* (ptr) b←v6036 )) || (over←v9512 != 0)) {
SOURCE(3709, 10)
(void) Overflow←P120();
};
};
SOURCE(3724, 26)
(* (( (ptr) res←v5980)+1) ) = ((* (( (ptr) a←v6008)+1) ) + (* (( (ptr) b←v6036)+1) ));
SOURCE(3752, 33)
(* (ptr) res←v5980 ) = (((* (ptr) a←v6008 ) + (* (ptr) b←v6036 )) + over←v9512);
}
extern void XR←DCardSubI(res←v6096, a←v6124, b←v6152)
word res←v6096;
word a←v6124;
word b←v6152;
{
word over←v9556;
/* DCardSub: */
SOURCE(3791, 236)
SOURCE(3847, 45)
over←v9556 = ( ((* (( (ptr) a←v6124)+1) ) < (* (( (ptr) b←v6152)+1) )) ? 1 : 0 ) ;
SOURCE(3894, 67)
if (((* (ptr) a←v6124 ) <= (* (ptr) b←v6152 ))) {
SOURCE(3919, 42)
if (((* (ptr) a←v6124 ) < (* (ptr) b←v6152 )) || (over←v9556 != 0)) {
SOURCE(3951, 10)
(void) Overflow←P120();
};
};
SOURCE(3966, 26)
(* (( (ptr) res←v6096)+1) ) = ((* (( (ptr) a←v6124)+1) ) - (* (( (ptr) b←v6152)+1) ));
SOURCE(3994, 33)
(* (ptr) res←v6096 ) = (((* (ptr) a←v6124 ) - (* (ptr) b←v6152 )) - over←v9556);
}
extern void XR←DCardMulI(res←v6212, a←v6240, b←v6268)
word res←v6212;
word a←v6240;
word b←v6268;
{
word r0←v9628;
word r1←v9656;
word r2←v9684;
word r3←v9712;
word carry3←v9740;
word p1a←v9768;
word p1b←v9796;
word p2a←v9824;
word p2b←v9852;
word p2c←v9880;
word p3a←v9908;
word p3b←v9936;
word p3c←v9964;
word p3d←v9992;
/* DCardMul: */
SOURCE(4033, 1088)
SOURCE(4205, 14)
r0←v9628 = ( (unsigned) (* (( (hPt) a←v6240)+3) ) * (unsigned) (* (( (hPt) b←v6268)+3) ));
SOURCE(4221, 15)
p1a←v9768 = ( (unsigned) (* (( (hPt) a←v6240)+2) ) * (unsigned) (* (( (hPt) b←v6268)+3) ));
SOURCE(4238, 15)
p1b←v9796 = ( (unsigned) (* (( (hPt) a←v6240)+3) ) * (unsigned) (* (( (hPt) b←v6268)+2) ));
SOURCE(4255, 46)
if ((( (word) -1 - p1a←v9768) < p1b←v9796)) {
carry3←v9740 = 1;
}
else {
carry3←v9740 = 0;
};
SOURCE(4303, 14)
r1←v9656 = (p1a←v9768 + p1b←v9796);
SOURCE(4319, 15)
p2a←v9824 = ( (unsigned) (* (( (hPt) a←v6240)+1) ) * (unsigned) (* (( (hPt) b←v6268)+3) ));
SOURCE(4337, 15)
p2b←v9852 = ( (unsigned) (* (( (hPt) a←v6240)+2) ) * (unsigned) (* (( (hPt) b←v6268)+2) ));
SOURCE(4354, 15)
p2c←v9880 = ( (unsigned) (* (( (hPt) a←v6240)+3) ) * (unsigned) (* (( (hPt) b←v6268)+1) ));
SOURCE(4371, 39)
if ((( (word) -1 - p2a←v9824) < p2b←v9852)) {
SOURCE(4400, 10)
(void) Overflow←P120();
};
SOURCE(4412, 14)
r2←v9684 = (p2a←v9824 + p2b←v9852);
SOURCE(4428, 38)
if ((( (word) -1 - r2←v9684) < p2c←v9880)) {
SOURCE(4456, 10)
(void) Overflow←P120();
};
SOURCE(4468, 13)
r2←v9684 = (r2←v9684 + p2c←v9880);
SOURCE(4483, 24)
p3a←v9908 = (( (unsigned) (* (hPt) a←v6240 ) * (unsigned) (* (( (hPt) b←v6268)+3) )) + carry3←v9740);
SOURCE(4526, 15)
p3b←v9936 = ( (unsigned) (* (( (hPt) a←v6240)+1) ) * (unsigned) (* (( (hPt) b←v6268)+2) ));
SOURCE(4543, 15)
p3c←v9964 = ( (unsigned) (* (( (hPt) a←v6240)+2) ) * (unsigned) (* (( (hPt) b←v6268)+1) ));
SOURCE(4560, 15)
p3d←v9992 = ( (unsigned) (* (( (hPt) a←v6240)+3) ) * (unsigned) (* (hPt) b←v6268 ));
SOURCE(4577, 63)
if ((((p3a←v9908 > 65536) || (p3b←v9936 > 65536)) || (p3c←v9964 > 65536)) || (p3d←v9992 > 65536)) {
SOURCE(4630, 10)
(void) Overflow←P120();
};
SOURCE(4642, 26)
r3←v9712 = (((p3a←v9908 + p3b←v9936) + p3c←v9964) + p3d←v9992);
SOURCE(4673, 20)
(* (( (hPt) res←v6212)+3) ) = ( (((unsigned)r0←v9628 << 16) >> 16) );
SOURCE(4695, 12)
r0←v9628 = ((word) r0←v9628 >> 16);
SOURCE(4712, 44)
if ((( (word) -1 - r1←v9656) < r0←v9628)) {
carry3←v9740 = 1;
}
else {
carry3←v9740 = 0;
};
SOURCE(4758, 12)
r1←v9656 = (r1←v9656 + r0←v9628);
SOURCE(4773, 20)
(* (( (hPt) res←v6212)+2) ) = ( (((unsigned)r1←v9656 << 16) >> 16) );
SOURCE(4795, 12)
r1←v9656 = ((word) r1←v9656 >> 16);
SOURCE(4812, 37)
if ((( (word) -1 - r2←v9684) < r1←v9656)) {
SOURCE(4839, 10)
(void) Overflow←P120();
};
SOURCE(4851, 12)
r2←v9684 = (r2←v9684 + r1←v9656);
SOURCE(4866, 20)
(* (( (hPt) res←v6212)+1) ) = ( (((unsigned)r2←v9684 << 16) >> 16) );
SOURCE(4888, 12)
r2←v9684 = ((word) r2←v9684 >> 16);
SOURCE(4905, 26)
if ((r3←v9712 > 65536)) {
SOURCE(4921, 10)
(void) Overflow←P120();
};
SOURCE(4933, 21)
r3←v9712 = ((r3←v9712 + r2←v9684) + carry3←v9740);
SOURCE(4981, 20)
(* (hPt) res←v6212 ) = ( (((unsigned)r3←v9712 << 16) >> 16) );
SOURCE(5003, 118)
{
word tc6;
word tc7;
word tc8;
if ((r3←v9712 >= 65536)) { goto then05;};
if (( (unsigned) (* (hPt) a←v6240 ) > 0)) {
tc6 = (word) ((( (unsigned) (* (( (hPt) b←v6268)+2) ) + (unsigned) (* (( (hPt) b←v6268)+1) )) + (unsigned) (* (hPt) b←v6268 )) > 0);
}
else {
tc6 = (word) 0;
};
if (tc6) { goto then05;};
if (( (unsigned) (* (hPt) b←v6268 ) > 0)) {
tc7 = (word) (( (unsigned) (* (( (hPt) a←v6240)+2) ) + (unsigned) (* (( (hPt) a←v6240)+1) )) > 0);
}
else {
tc7 = (word) 0;
};
if (tc7) { goto then05;};
if (( (unsigned) (* (( (hPt) a←v6240)+1) ) > 0)) {
tc8 = (word) ( (unsigned) (* (( (hPt) b←v6268)+1) ) > 0);
}
else {
tc8 = (word) 0;
};
if (tc8) {
then05: ;
SOURCE(5111, 10)
(void) Overflow←P120();
};
};
}
static void Div2←P1020(formal←c0102, a←v6328)
word formal←c0102;
word a←v6328;
{
W2 res←v6372;
/* Div2: */
SOURCE(5127, 138)
SOURCE(5187, 54)
res←v6372.f1 = ((((* (ptr) a←v6328 ) & 1) << 31) + ((* (( (ptr) a←v6328)+1) ) >> 1));
SOURCE(5243, 22)
res←v6372.f0 = ((* (ptr) a←v6328 ) >> 1);
/* removed tail goto */
(* (W2Pt) formal←c0102 ) = res←v6372;
return;
}
extern void XR←DCardDivI(res←v6536, a←v6564, b←v6592)
word res←v6536;
word a←v6564;
word b←v6592;
{
register ptr gf←c14220 = (ptr) &globalframe;
/* DCardDiv: */
SOURCE(5366, 583)
SOURCE(5422, 527)
if (XR←DCardGtI(b←v6592, a←v6564)) {
SOURCE(5442, 17)
{
W2 D9;
XR←DCardCard(&D9, 0);
(* (W2Pt) res←v6536 ) = D9;
};
}
else {
SOURCE(5459, 490)
if ( ( ((* (ptr) b←v6592 ) == 0) ? ((* (( (ptr) b←v6592)+1) ) <= 2) : 0 ) ) {
SOURCE(5492, 92)
{
word var←c13452;
var←c13452 = (* (( (ptr) b←v6592)+1) );
switch (var←c13452) {
case 2:
SOURCE(5516, 14)
(void) Div2←P1020((word) res←v6536, a←v6564);
break;
case 1:
SOURCE(5537, 9)
(* (W2Pt) res←v6536 ) = (* (W2Pt) a←v6564 );
break;
case 0:
SOURCE(5553, 31)
(void) (XR←RaiseSignal((* (( (ptr) (* (( (ptr) gf←c14220)+94)/* var←c13388 */ ))+27) ), 0, 0));
break;
default:
SOURCE(5597, 5)
(void) XR←RaiseUnnamedError();
break;
};
};
}
else {
SOURCE(5611, 340)
{
W2 result←v10036;
W2 d←v10064;
word count←v10092 = 1;
W2 rest←v10120;
SOURCE(5613, 26)
{
W2 D10;
XR←DCardCard(&D10, 0);
result←v10036 = D10;
};
SOURCE(5641, 15)
d←v10064 = (* (W2Pt) b←v6592 );
SOURCE(5674, 23)
(void) Div2←P1020((word) &rest←v10120, a←v6564);
SOURCE(5699, 64)
lab←L100003: ;
if (XR←DCardGeI(&rest←v10120, &d←v10064)) {
}
else {
goto lab←L100001;
};
SOURCE(5724, 12)
{
W2 var←c13516;
W2 res←v11900;
SOURCE(5338, 24)
{
W2 D11;
XR←DCardAddI(&D11, &d←v10064, &d←v10064);
res←v11900 = D11;
};
SOURCE(5271, 91)
var←c13516 = res←v11900;
d←v10064 = var←c13516;
};
SOURCE(5738, 25)
count←v10092 = (count←v10092 + 1);
goto lab←L100003;
lab←L100001: ;
SOURCE(5765, 9)
rest←v10120 = (* (W2Pt) a←v6564 );
SOURCE(5776, 148)
{
register word i←v10164 = 0;
register word noName←c13548;
noName←c13548 = count←v10092;
if ((i←v10164 >= noName←c13548)) {
goto lab←L100005;
};
lab←L100008: ;
SOURCE(5804, 22)
{
W2 var←c13580;
W2 res←v11852;
SOURCE(5338, 24)
{
W2 D12;
XR←DCardAddI(&D12, &result←v10036, &result←v10036);
res←v11852 = D12;
};
SOURCE(5271, 91)
var←c13580 = res←v11852;
result←v10036 = var←c13580;
};
SOURCE(5828, 81)
if (XR←DCardGeI(&rest←v10120, &d←v10064)) {
SOURCE(5853, 27)
{
W2 D13;
XR←DCardSubI(&D13, &rest←v10120, &d←v10064);
rest←v10120 = D13;
};
SOURCE(5882, 27)
{
W2 D14;
W2 D15;
XR←DCardCard(&D15, 1);
XR←DCardAddI(&D14, &result←v10036, &D15);
result←v10036 = D14;
};
};
SOURCE(5912, 12)
(void) Div2←P1020((word) &d←v10064, (word) &d←v10064);
i←v10164 = (i←v10164 + 1);
if ((i←v10164 < noName←c13548)) {
goto lab←L100008;
};
lab←L100005: ;
};
SOURCE(5936, 13)
(* (W2Pt) res←v6536 ) = result←v10036;
};
};
};
}
extern void XR←DCardModI(res←v6652, a←v6680, b←v6708)
word res←v6652;
word a←v6680;
word b←v6708;
{
/* DCardMod: */
SOURCE(5958, 97)
SOURCE(6014, 41)
{
W2 D16;
W2 D17;
W2 D18;
XR←DCardDivI(&D18, a←v6680, b←v6708);
XR←DCardMulI(&D17, &D18, b←v6708);
XR←DCardSubI(&D16, a←v6680, &D17);
(* (W2Pt) res←v6652 ) = D16;
};
}
extern void XR←DCardPwrI(res←v6768, a←v6796, b←v6824)
word res←v6768;
word a←v6796;
word b←v6824;
{
W6 var←c14252;
/* declaration of var←c13612 skipped */
/* DCardPwr: */
SOURCE(6061, 463)
{
word tmpAddr19;
tmpAddr19 = (word) (( (ptr) &var←c14252)+4)/* var←c13612 */ ;
(* (ptr) tmpAddr19 ) = ( ((word) (fPt) MixedPwr←P2856) );
(* (( (ptr) tmpAddr19) + 1) ) = 1;
};
SOURCE(6344, 141)
if (((* (ptr) b←v6824 ) > 0)) {
SOURCE(6363, 114)
if (((* (ptr) a←v6796 ) > 0)) {
SOURCE(6381, 16)
(void) Overflow←P120();
}
else {
SOURCE(6397, 80)
{
word var←c13644;
var←c13644 = (* (( (ptr) a←v6796)+1) );
if ((var←c13644 == 0)) {
SOURCE(6421, 11)
{
W2 D20;
XR←DCardCard(&D20, 0);
(* (W2Pt) res←v6768 ) = D20;
};
}
else {
if ((var←c13644 == 1)) {
SOURCE(6439, 15)
(* (W2Pt) res←v6768 ) = (* (W2Pt) a←v6796 );
}
else {
SOURCE(6467, 10)
(void) Overflow←P120();
};
};
};
};
SOURCE(6479, 6)
return;
};
SOURCE(6490, 34)
(void) MixedPwr←P2856((word) res←v6768, (* (W2Pt) a←v6796 ), (* (( (ptr) b←v6824)+1) ), (word) (( (bPt) &var←c14252)+16)
/* var←c13612 */ );
}
static void MixedPwr←P2856(formal←c0137, x←v10284, y←v10312, formal←c14284)
word formal←c0137;
W2 x←v10284;
word y←v10312;
word formal←c14284;
{
W2 var←c10356;
formal←c14284 = (formal←c14284 - 16);
/* MixedPwr: */
SOURCE(6117, 221)
SOURCE(6191, 147)
{
word var←c13676;
var←c13676 = y←v10312;
if ((var←c13676 == 0)) {
SOURCE(6210, 10)
{
W2 D21;
XR←DCardCard(&D21, 1);
var←c10356 = D21;
};
/* removed tail goto */
}
else {
if ((var←c13676 == 1)) {
SOURCE(6227, 10)
var←c10356 = x←v10284;
/* removed tail goto */
}
else {
SOURCE(6250, 88)
if (((y←v10312 & 1) != 0)) {
SOURCE(6270, 39)
{
W2 var←c13740;
{
W2 var←c0134;
{
W2 D22;
XR←DCardMulI(&D22, &x←v10284, &x←v10284);
(void) MixedPwr←P2856((word) &var←c0134, D22, ((word) y←v10312 >> 1), (word) (( (bPt) formal←c14284)+16));
};
{
W2 D23;
XR←DCardMulI(&D23, &x←v10284, &var←c0134);
var←c13740 = D23;
};
};
var←c10356 = var←c13740;
/* removed tail goto */
};
}
else {
SOURCE(6309, 29)
{
W2 var←c13804;
{
W2 D24;
XR←DCardMulI(&D24, &x←v10284, &x←v10284);
(void) MixedPwr←P2856((word) &var←c13804, D24, ((word) y←v10312 >> 1), (word) (( (bPt) formal←c14284)+16));
};
var←c10356 = var←c13804;
/* removed tail goto */
};
};
};
};
};
(* (W2Pt) formal←c0137 ) = var←c10356;
return;
}
extern word XR←DCardGtI(a←v6884, b←v6912)
word a←v6884;
word b←v6912;
{
word var←c6956;
/* DCardGt: */
SOURCE(6528, 181)
if (((* (ptr) a←v6884 ) > (* (ptr) b←v6912 ))) {
SOURCE(6627, 13)
return(1);
}
else {
if (((* (ptr) a←v6884 ) < (* (ptr) b←v6912 ))) {
SOURCE(6659, 14)
return(0);
}
else {
SOURCE(6686, 23)
return( (unsigned) ((* (( (ptr) a←v6884)+1) ) > (* (( (ptr) b←v6912)+1) )));
};
};
}
extern word XR←DCardGeI(a←v7016, b←v7044)
word a←v7016;
word b←v7044;
{
word var←c7088;
/* DCardGe: */
SOURCE(6713, 182)
if (((* (ptr) a←v7016 ) > (* (ptr) b←v7044 ))) {
SOURCE(6812, 13)
return(1);
}
else {
if (((* (ptr) a←v7016 ) < (* (ptr) b←v7044 ))) {
SOURCE(6844, 14)
return(0);
}
else {
SOURCE(6871, 24)
return( (unsigned) ((* (( (ptr) a←v7016)+1) ) >= (* (( (ptr) b←v7044)+1) )));
};
};
}
extern word XR←DEqI(a←v7148, b←v7176)
word a←v7148;
word b←v7176;
{
word var←c7220;
/* DEq: */
SOURCE(6899, 102)
SOURCE(6960, 41)
{
word tc25;
if (((* (( (ptr) a←v7148)+1) ) == (* (( (ptr) b←v7176)+1) ))) {
tc25 = (word) (unsigned) ((* (ptr) a←v7148 ) == (* (ptr) b←v7176 ));
}
else {
tc25 = (word) (unsigned) 0;
};
return(tc25);
};
}
extern void XR←DCardMinI(res←v7280, a←v7308, b←v7336)
word res←v7280;
word a←v7308;
word b←v7336;
{
/* DCardMin: */
SOURCE(7005, 103)
SOURCE(7061, 47)
if ((0 != (word) XR←DCardGtI(a←v7308, b←v7336))) {
SOURCE(7083, 15)
(* (W2Pt) res←v7280 ) = (* (W2Pt) b←v7336 );
}
else {
SOURCE(7098, 10)
(* (W2Pt) res←v7280 ) = (* (W2Pt) a←v7308 );
};
}
extern void XR←DCardMaxI(res←v7396, a←v7424, b←v7452)
word res←v7396;
word a←v7424;
word b←v7452;
{
/* DCardMax: */
SOURCE(7112, 103)
SOURCE(7168, 47)
if ((0 != (word) XR←DCardGtI(a←v7424, b←v7452))) {
SOURCE(7190, 15)
(* (W2Pt) res←v7396 ) = (* (W2Pt) a←v7424 );
}
else {
SOURCE(7205, 10)
(* (W2Pt) res←v7396 ) = (* (W2Pt) b←v7452 );
};
}
static void XDIntNeg←P1620(res←v7512, a←v7540)
word res←v7512;
word a←v7540;
{
W2 n1←v10384;
W2 p1←v10412;
W2 t←v10440;
/* XDIntNeg: */
SOURCE(7220, 183)
SOURCE(7273, 47)
n1←v10384.f0 = (word) -1;
n1←v10384.f1 = (word) -1;
SOURCE(7322, 25)
p1←v10412.f0 = 0;
p1←v10412.f1 = 1;
SOURCE(7361, 19)
(void) XR←DIntSubI((word) &t←v10440, (word) &n1←v10384, a←v7540);
SOURCE(7382, 21)
(void) XR←DIntSubI(res←v7512, (word) &t←v10440, (word) &p1←v10412);
}
static void Neg64←P1680(res←v7600, n←v7628)
word res←v7600;
word n←v7628;
{
/* Neg64: */
SOURCE(7409, 219)
SOURCE(7459, 32)
(* (( (ptr) res←v7600)+1) ) = ( (word) -1 - (* (( (ptr) n←v7628)+1) ));
SOURCE(7493, 32)
(* (ptr) res←v7600 ) = ( (word) -1 - (* (ptr) n←v7628 ));
SOURCE(7527, 101)
if (((* (( (ptr) res←v7600)+1) ) == (word) -1)) {
SOURCE(7559, 23)
(* (ptr) res←v7600 ) = ((* (ptr) res←v7600 ) + 1);
SOURCE(7584, 12)
(* (( (ptr) res←v7600)+1) ) = 0;
}
else {
SOURCE(7603, 25)
(* (( (ptr) res←v7600)+1) ) = ((* (( (ptr) res←v7600)+1) ) + 1);
};
}
extern void XR←DIntNegI(res←v7792, a←v7820)
word res←v7792;
word a←v7820;
{
/* DIntNeg: */
SOURCE(7745, 100)
SOURCE(7797, 33)
if ( ( ((* (( (ptr) a←v7820)+1) ) == 0) ? ( (int)(* (ptr) a←v7820 ) == (int)2147483648) : 0 ) ) {
SOURCE(7820, 10)
(void) Overflow←P120();
};
SOURCE(7832, 13)
(void) Neg64←P1680(res←v7792, a←v7820);
}
extern void XR←DIntAddI(res←v7880, a←v7908, b←v7936)
word res←v7880;
word a←v7908;
word b←v7936;
{
word over←v10484;
word h←v10512;
/* DIntAdd: */
SOURCE(7851, 320)
SOURCE(7906, 60)
over←v10484 = ( (( (word) -1 - (* (( (ptr) a←v7908)+1) )) < (* (( (ptr) b←v7936)+1) )) ? 1 : 0 ) ;
SOURCE(7968, 34)
h←v10512 = (((* (ptr) a←v7908 ) + (* (ptr) b←v7936 )) + over←v10484);
SOURCE(8004, 124)
if ( ( ( ( (int)h←v10512 < (int)0) ? ( (int)(* (ptr) a←v7908 ) >= (int)0) : 0 ) ? ( (int)(* (ptr) b←v7936 ) >= (int)0) : 0 ) || ( ( ( (int)h←v10512 >= (int)0) ? ( (int)(* (ptr) a←v7908 ) < (int)0) : 0 ) ? ( (int)(* (ptr) b←v7936 ) < (int)0) : 0 ) ) {
SOURCE(8118, 10)
(void) Overflow←P120();
};
SOURCE(8131, 26)
(* (( (ptr) res←v7880)+1) ) = ((* (( (ptr) a←v7908)+1) ) + (* (( (ptr) b←v7936)+1) ));
SOURCE(8159, 12)
(* (ptr) res←v7880 ) = h←v10512;
}
extern void XR←DIntSubI(res←v7996, a←v8024, b←v8052)
word res←v7996;
word a←v8024;
word b←v8052;
{
word over←v10556;
word h←v10584;
/* DIntSub: */
SOURCE(8177, 305)
SOURCE(8232, 45)
over←v10556 = ( ((* (( (ptr) a←v8024)+1) ) < (* (( (ptr) b←v8052)+1) )) ? 1 : 0 ) ;
SOURCE(8279, 34)
h←v10584 = (((* (ptr) a←v8024 ) - (* (ptr) b←v8052 )) - over←v10556);
SOURCE(8315, 124)
if ( ( ( ( (int)(* (ptr) a←v8024 ) < (int)0) ? ( (int)h←v10584 >= (int)0) : 0 ) ? ( (int)(* (ptr) b←v8052 ) >= (int)0) : 0 ) || ( ( ( (int)(* (ptr) a←v8024 ) >= (int)0) ? ( (int)h←v10584 < (int)0) : 0 ) ? ( (int)(* (ptr) b←v8052 ) < (int)0) : 0 ) ) {
SOURCE(8429, 10)
(void) Overflow←P120();
};
SOURCE(8442, 26)
(* (( (ptr) res←v7996)+1) ) = ((* (( (ptr) a←v8024)+1) ) - (* (( (ptr) b←v8052)+1) ));
SOURCE(8470, 12)
(* (ptr) res←v7996 ) = h←v10584;
}
extern void XR←DIntMulI(res←v8112, a←v8140, b←v8168)
word res←v8112;
word a←v8140;
word b←v8168;
{
W2 x←v10628;
W2 y←v10656;
word invert←v10684 = 0;
/* DIntMul: */
SOURCE(8488, 323)
SOURCE(8580, 66)
if (( (int)(* (ptr) a←v8140 ) >= (int)0)) {
SOURCE(8599, 13)
x←v10628 = (* (W2Pt) a←v8140 );
}
else {
SOURCE(8613, 12)
(void) Neg64←P1680((word) &x←v10628, a←v8140);
SOURCE(8627, 19)
invert←v10684 = (unsigned) (0 == invert←v10684);
};
SOURCE(8649, 66)
if (( (int)(* (ptr) b←v8168 ) >= (int)0)) {
SOURCE(8668, 13)
y←v10656 = (* (W2Pt) b←v8168 );
}
else {
SOURCE(8682, 12)
(void) Neg64←P1680((word) &y←v10656, b←v8168);
SOURCE(8696, 19)
invert←v10684 = (unsigned) (0 == invert←v10684);
};
SOURCE(8718, 19)
{
W2 D26;
XR←DCardMulI(&D26, &x←v10628, &y←v10656);
x←v10628 = D26;
};
SOURCE(8739, 27)
if (( (int)x←v10628.f0 < (int)0)) {
SOURCE(8756, 10)
(void) Overflow←P120();
};
SOURCE(8768, 43)
if ((0 != invert←v10684)) {
SOURCE(8783, 20)
(void) Neg64←P1680(res←v8112, (word) &x←v10628);
}
else {
SOURCE(8803, 8)
(* (W2Pt) res←v8112 ) = x←v10628;
};
}
extern void XR←DIntDivI(res←v8228, a←v8256, b←v8284)
word res←v8228;
word a←v8256;
word b←v8284;
{
W2 x←v10728;
W2 y←v10756;
word invert←v10784 = 0;
/* DIntDiv: */
SOURCE(8817, 325)
SOURCE(8909, 66)
if (( (int)(* (ptr) a←v8256 ) >= (int)0)) {
SOURCE(8928, 13)
x←v10728 = (* (W2Pt) a←v8256 );
}
else {
SOURCE(8942, 12)
(void) Neg64←P1680((word) &x←v10728, a←v8256);
SOURCE(8956, 19)
invert←v10784 = (unsigned) (0 == invert←v10784);
};
SOURCE(8978, 66)
if (( (int)(* (ptr) b←v8284 ) >= (int)0)) {
SOURCE(8997, 13)
y←v10756 = (* (W2Pt) b←v8284 );
}
else {
SOURCE(9011, 12)
(void) Neg64←P1680((word) &y←v10756, b←v8284);
SOURCE(9025, 19)
invert←v10784 = (unsigned) (0 == invert←v10784);
};
SOURCE(9047, 21)
{
W2 D27;
XR←DCardDivI(&D27, &x←v10728, &y←v10756);
x←v10728 = D27;
};
SOURCE(9070, 27)
if (( (int)x←v10728.f0 < (int)0)) {
SOURCE(9087, 10)
(void) Overflow←P120();
};
SOURCE(9099, 43)
if ((0 != invert←v10784)) {
SOURCE(9114, 20)
(void) Neg64←P1680(res←v8228, (word) &x←v10728);
}
else {
SOURCE(9134, 8)
(* (W2Pt) res←v8228 ) = x←v10728;
};
}
extern void XR←DIntModI(res←v8344, a←v8372, b←v8400)
word res←v8344;
word a←v8372;
word b←v8400;
{
/* DIntMod: */
SOURCE(9148, 472)
SOURCE(9203, 417)
if (( (int)(* (ptr) b←v8400 ) >= (int)0)) {
SOURCE(9224, 174)
if (( (int)(* (ptr) a←v8372 ) >= (int)0)) {
SOURCE(9244, 26)
{
W2 D28;
XR←DCardModI(&D28, a←v8372, b←v8400);
(* (W2Pt) res←v8344 ) = D28;
};
}
else {
SOURCE(9277, 121)
{
W2 m←v10828;
SOURCE(9291, 12)
(void) Neg64←P1680((word) &m←v10828, a←v8372);
SOURCE(9305, 23)
{
W2 D29;
XR←DCardModI(&D29, &m←v10828, b←v8400);
m←v10828 = D29;
};
SOURCE(9330, 68)
if ( ( (m←v10828.f0 == 0) ? (m←v10828.f1 == 0) : 0 ) ) {
SOURCE(9360, 14)
(* (W2Pt) res←v8344 ) = m←v10828;
}
else {
SOURCE(9374, 24)
{
W2 D30;
XR←DCardSubI(&D30, b←v8400, &m←v10828);
(* (W2Pt) res←v8344 ) = D30;
};
};
};
};
}
else {
SOURCE(9407, 215)
{
W2 bb←v10872;
W2 m←v10900;
SOURCE(9426, 13)
(void) Neg64←P1680((word) &bb←v10872, b←v8400);
SOURCE(9441, 179)
if (( (int)(* (ptr) a←v8372 ) >= (int)0)) {
SOURCE(9461, 24)
{
W2 D31;
XR←DCardModI(&D31, a←v8372, &bb←v10872);
m←v10900 = D31;
};
SOURCE(9487, 69)
if ( ( (m←v10900.f0 == 0) ? (m←v10900.f1 == 0) : 0 ) ) {
SOURCE(9517, 14)
(* (W2Pt) res←v8344 ) = m←v10900;
}
else {
SOURCE(9531, 25)
{
W2 D32;
XR←DCardSubI(&D32, &m←v10900, &bb←v10872);
(* (W2Pt) res←v8344 ) = D32;
};
};
}
else {
SOURCE(9565, 12)
(void) Neg64←P1680((word) &m←v10900, a←v8372);
SOURCE(9579, 24)
{
W2 D33;
XR←DCardModI(&D33, &m←v10900, &bb←v10872);
m←v10900 = D33;
};
SOURCE(9605, 15)
(void) Neg64←P1680(res←v8344, (word) &m←v10900);
};
};
};
}
extern void XR←DIntPwrI(res←v8460, a←v8488, b←v8516)
word res←v8460;
word a←v8488;
word b←v8516;
{
W2 x←v10944;
/* DIntPwr: */
SOURCE(9628, 301)
SOURCE(9696, 27)
if (( (int)(* (ptr) b←v8516 ) < (int)0)) {
SOURCE(9713, 10)
(void) Overflow←P120();
};
SOURCE(9725, 190)
if (( (int)(* (ptr) a←v8488 ) >= (int)0)) {
SOURCE(9746, 22)
{
W2 D34;
XR←DCardPwrI(&D34, a←v8488, b←v8516);
x←v10944 = D34;
};
SOURCE(9771, 28)
if (( (int)x←v10944.f0 < (int)0)) {
SOURCE(9788, 11)
(void) Overflow←P120();
};
}
else {
SOURCE(9808, 12)
(void) Neg64←P1680((word) &x←v10944, a←v8488);
SOURCE(9823, 22)
{
W2 D35;
XR←DCardPwrI(&D35, &x←v10944, b←v8516);
x←v10944 = D35;
};
SOURCE(9848, 27)
if (( (int)x←v10944.f0 < (int)0)) {
SOURCE(9865, 10)
(void) Overflow←P120();
};
SOURCE(9877, 38)
if ((((* (( (ptr) b←v8516)+1) ) & 1) != 0)) {
SOURCE(9902, 13)
(void) Neg64←P1680((word) &x←v10944, (word) &x←v10944);
};
};
SOURCE(9921, 8)
(* (W2Pt) res←v8460 ) = x←v10944;
}
extern word XR←DIntGtI(a←v8576, b←v8604)
word a←v8576;
word b←v8604;
{
word var←c8648;
/* DIntGt: */
SOURCE(9935, 216)
if (( (int)(* (ptr) a←v8576 ) > (int)(* (ptr) b←v8604 ))) {
SOURCE(10033, 13)
return(1);
}
else {
if (( (int)(* (ptr) a←v8576 ) < (int)(* (ptr) b←v8604 ))) {
SOURCE(10065, 14)
return(0);
}
else {
if (( (int)(* (ptr) a←v8576 ) < (int)0)) {
SOURCE(10093, 22)
return( (unsigned) ((* (( (ptr) a←v8576)+1) ) < (* (( (ptr) b←v8604)+1) )));
}
else {
SOURCE(10128, 23)
return( (unsigned) ((* (( (ptr) a←v8576)+1) ) > (* (( (ptr) b←v8604)+1) )));
};
};
};
}
extern word XR←DIntGeI(a←v8708, b←v8736)
word a←v8708;
word b←v8736;
{
word var←c8780;
/* DIntGe: */
SOURCE(10155, 218)
if (( (int)(* (ptr) a←v8708 ) > (int)(* (ptr) b←v8736 ))) {
SOURCE(10253, 13)
return(1);
}
else {
if (( (int)(* (ptr) a←v8708 ) < (int)(* (ptr) b←v8736 ))) {
SOURCE(10285, 14)
return(0);
}
else {
if (( (int)(* (ptr) a←v8708 ) < (int)0)) {
SOURCE(10313, 23)
return( (unsigned) ((* (( (ptr) a←v8708)+1) ) <= (* (( (ptr) b←v8736)+1) )));
}
else {
SOURCE(10349, 24)
return( (unsigned) ((* (( (ptr) a←v8708)+1) ) >= (* (( (ptr) b←v8736)+1) )));
};
};
};
}
extern void XR←DIntAbsI(res←v8840, a←v8868)
word res←v8840;
word a←v8868;
{
/* DIntAbs: */
SOURCE(10377, 127)
SOURCE(10429, 75)
if (( (int)(* (ptr) a←v8868 ) >= (int)0)) {
SOURCE(10448, 15)
(* (W2Pt) res←v8840 ) = (* (W2Pt) a←v8868 );
}
else {
SOURCE(10463, 41)
(void) Neg64←P1680(res←v8840, a←v8868);
};
}
extern void XR←DIntMinI(res←v8928, a←v8956, b←v8984)
word res←v8928;
word a←v8956;
word b←v8984;
{
/* DIntMin: */
SOURCE(10508, 101)
SOURCE(10563, 46)
if ((0 != (word) XR←DIntGtI(a←v8956, b←v8984))) {
SOURCE(10584, 15)
(* (W2Pt) res←v8928 ) = (* (W2Pt) b←v8984 );
}
else {
SOURCE(10599, 10)
(* (W2Pt) res←v8928 ) = (* (W2Pt) a←v8956 );
};
}
extern void XR←DIntMaxI(res←v9044, a←v9072, b←v9100)
word res←v9044;
word a←v9072;
word b←v9100;
{
/* DIntMax: */
SOURCE(10613, 101)
SOURCE(10668, 46)
if ((0 != (word) XR←DIntGtI(a←v9072, b←v9100))) {
SOURCE(10689, 15)
(* (W2Pt) res←v9044 ) = (* (W2Pt) a←v9072 );
}
else {
SOURCE(10704, 10)
(* (W2Pt) res←v9044 ) = (* (W2Pt) b←v9100 );
};
}
extern void XR←DFloatDCardI(res←v9160, a←v9188)
word res←v9160;
word a←v9188;
{
register ptr gf←c14316 = (ptr) &globalframe;
/* DFloatDCard: */
SOURCE(10719, 159)
SOURCE(10775, 103)
{
W2 var←c13900;
{
W2 var←c13932;
W2 var←c0213;
W2 var←c0232;
W2 var←c0214;
{
word pd36;
pd36 = (* (( (ptr) (* (( (ptr) gf←c14316)+95)/* var←c13964 */ ))+8) );
(void) ( *( (fPt) ((* (ptr) pd36 ))))((word) &var←c13932, (* (ptr) a←v9188 ), pd36);
};
{
word pd37;
pd37 = (* (( (ptr) (* (( (ptr) gf←c14316)+95)/* var←c13964 */ ))+12) );
(void) ( *( (fPt) ((* (ptr) pd37 ))))((word) &var←c0213, var←c13932, 32, pd37);
};
var←c0232 = var←c0213;
{
word pd38;
pd38 = (* (( (ptr) (* (( (ptr) gf←c14316)+95)/* var←c13964 */ ))+8) );
(void) ( *( (fPt) ((* (ptr) pd38 ))))((word) &var←c0214, (* (( (ptr) a←v9188)+1) ), pd38);
};
XR←DRealAddI(&var←c13900, &var←c0232, &var←c0214);
};
(* (W2Pt) res←v9160 ) = var←c13900;
};
}
extern void XR←DFloatDIntI(res←v9248, a←v9276)
word res←v9248;
word a←v9276;
{
/* DFloatDInt: */
SOURCE(10882, 170)
SOURCE(10947, 105)
if (( (int)(* (ptr) a←v9276 ) >= (int)0)) {
SOURCE(10965, 21)
{
W2 D39;
XR←DFloatDCardI(&D39, (a←v9276));
(* (W2Pt) res←v9248 ) = D39;
};
}
else {
SOURCE(10986, 66)
{
W2 aa←v10988;
SOURCE(11001, 13)
(void) Neg64←P1680((word) &aa←v10988, a←v9276);
SOURCE(11016, 15)
{
W2 D40;
XR←DFloatDCardI(&D40, (&aa←v10988));
aa←v10988 = D40;
};
SOURCE(11034, 18)
XR←DRealNegI(&(* (W2Pt) (res←v9248)), &aa←v10988);
};
};
}
extern word XR←FloatDCardI(dcard←v9336)
word dcard←v9336;
{
register ptr gf←c14348 = (ptr) &globalframe;
word var←c9380;
/* FloatDCard: */
SOURCE(11059, 174)
SOURCE(11128, 105)
{
word var←c0234;
{
word var←c14028;
word var←c0233;
{
word pd41;
pd41 = (* (( (ptr) (* (( (ptr) gf←c14348)+96)/* var←c14060 */ ))+7) );
var←c14028 = (word) ( *( (fPt) ((* (ptr) pd41 ))))((* (ptr) (dcard←v9336) ), pd41);
};
{
word pd42;
pd42 = (* (( (ptr) (* (( (ptr) gf←c14348)+96)/* var←c14060 */ ))+10) );
var←c0233 = (word) ( *( (fPt) ((* (ptr) pd42 ))))(var←c14028, 32, pd42);
};
{
word x43;
word pd44;
word x45;
pd44 = (* (( (ptr) (* (( (ptr) gf←c14348)+96)/* var←c14060 */ ))+7) );
*(float*)&var←c0234 = (
x43 = var←c0233, *(float*)&x43
) + (
x45 = (word) ( *( (fPt) ((* (ptr) pd44 ))))((* ((( (ptr) dcard←v9336)+1)) ), pd44), *(float*)&x45
);
};
};
return(var←c0234);
};
}
extern word XR←FloatDIntI(dint←v9440)
word dint←v9440;
{
word r←v9484;
/* FloatDInt: */
SOURCE(11237, 162)
SOURCE(11307, 92)
if (( (int)(* (ptr) dint←v9440 ) >= (int)0)) {
SOURCE(11328, 18)
r←v9484 = XR←FloatDCardI(dint←v9440);
}
else {
SOURCE(11346, 53)
{
W2 aa←v11032;
SOURCE(11361, 16)
(void) Neg64←P1680((word) &aa←v11032, dint←v9440);
SOURCE(11379, 10)
r←v9484 = XR←FloatDCardI(&aa←v11032);
SOURCE(11392, 7)
{
word x46;
*(float*)&r←v9484 = - (
x46 = r←v9484, *(float*)&x46
);
};
};
};
SOURCE(11237, 162)
return(r←v9484);
}
/* file: DSupportImpl, module: DSupportImpl, compiled at: May 6, 1993 5:03:04 pm PDT */
extern void XR←install←DSupportImpl() {
NoName←Q3204();
}
extern void XR←run←DSupportImpl() { XR←Start(&globalframe); }