/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1992 by Xerox Corporation. All rights reserved. */
/* time: February 21, 1992 11:53:29 pm PST */
/* C2C version: October 16, 1990 (native) */
/* ref-counting: off */
/* file: FloatOpsImpl, module: FloatOpsImpl */
/* switches: cfhklnouw */
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
#define XRM←BITXOR(x, y) (((word)(x)) ↑ ((word)(y)))
#define XRM←BITOR(x, y) (((word)(x)) | ((word)(y)))
#define XRM←BITAND(x, y) (((word)(x)) & ((word)(y)))
#define XRM←BITLSHIFT(x, y) ((word)(x) << (word)(y))
#define XRM←BITRSHIFT(x, y) ((word)(x) >> (word)(y))
static char versionStamp[] = "@(#)mob←version [2808075000,2594761725] FloatOpsImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef word (*fPt)();
typedef struct {word f0, f1;} W2;
#define SOURCE(p, l) /* source p, l */
#define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR←RaiseBoundsFault()) : (idx) )
#define INEG(x) ( (word) ( - ((int) (word) (x)) ) )
static float fc6 = 0.0;
#define IOP2(op, x, y) ( (word) ((x) op (y)) )
static void NoName←Q5268();
static void FloatOpsImpl←P0();
extern word XR←RealSub();
extern word XR←RealAdd();
extern word XR←RealMul();
extern word XR←RealDiv();
extern word XR←FloatInt();
extern word XR←FloatCard();
extern word XR←REAL32←Fix();
extern word XR←REAL32←Round();
extern word XR←REAL32←Floor();
extern word XR←REAL32←Ceiling();
extern word XR←RealNeg();
extern word XR←RealAbs();
extern word XR←RealMin();
extern word XR←RealMax();
extern word XR←RealGt();
extern word XR←RealGe();
extern word XR←RealEq();
static word SoftCmp←P1500();
extern word XR←RealLt();
extern word XR←RealLe();
extern word XR←SignedPwr();
extern word XR←UnsignedPwr();
extern word XR←RealPwr();
static word SetExceptionFlag←P1860();
static word RaiseFloatError←P1920();
static word GetStickyFlags←P1980();
static word SetStickyFlags←P2040();
static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\247\137\322\370\300\232\250\353\375\100\164\000\000"};
static struct {unsigned f; char r[16];} string2 = {851984, "\257\300\246\205\220\035\300\344\000\142\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string3 = {851984, "\257\300\245\247\302\156\300\052\156\325\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string4 = {851984, "\257\300\313\044\005\371\300\370\023\007\040\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[4];
} globalframe = {
{0}, (word) SetStickyFlags←P2040, 0, (word) GetStickyFlags←P1980,
0, (word) RaiseFloatError←P1920, 0, (word) SetExceptionFlag←P1860,
0, (word) XR←RealPwr, 0, (word) XR←UnsignedPwr,
0, (word) XR←SignedPwr, 0, (word) XR←RealLe,
0, (word) XR←RealLt, 0, (word) SoftCmp←P1500,
0, (word) XR←RealEq, 0, (word) XR←RealGe,
0, (word) XR←RealGt, 0, (word) XR←RealMax,
0, (word) XR←RealMin, 0, (word) XR←RealAbs,
0, (word) XR←RealNeg, 0, (word) XR←REAL32←Ceiling,
0, (word) XR←REAL32←Floor, 0, (word) XR←REAL32←Round,
0, (word) XR←REAL32←Fix, 0, (word) XR←FloatCard,
0, (word) XR←FloatInt, 0, (word) XR←RealDiv,
0, (word) XR←RealMul, 0, (word) XR←RealAdd,
0, (word) XR←RealSub, 0, (word) FloatOpsImpl←P0,
{0}
};
static void NoName←Q5268()
{
register ptr gf←c0294 = (ptr) &globalframe;
word var←c23052;
(void) XR←DeclareGlobalFrame((word) "FloatOpsImpl", &globalframe, (word) XR←GetTypeIndexS((word) (&string1)), (word) (( (bPt) gf←c0294)+240)
/* var←c19180 */ );
var←c23052 = (word) XR←ImportInterface((word) "Real", (word) XR←GetTypeIndexS((word) (&string2)), 11);
(* (( (ptr) gf←c0294)+63)/* var←c22988 */ ) = var←c23052;
var←c23052 = (word) XR←ImportInterface((word) "RealFns", (word) XR←GetTypeIndexS((word) (&string3)), 36);
(* (( (ptr) gf←c0294)+62)/* var←c22924 */ ) = var←c23052;
(void) XR←ImportProcS(var←c23052, 67633922);
var←c23052 = (word) XR←ExportInterface((word) "FloatOps", (word) XR←GetTypeIndexS((word) (&string4)), 23);
(* (( (ptr) gf←c0294)+64)/* var←c23084 */ ) = var←c23052;
(void) XR←ExportProcS(var←c23052, (word) (( (bPt) gf←c0294)+232)/* var←c19148 */ , 67633154);
(void) XR←ExportProcS(var←c23052, (word) (( (bPt) gf←c0294)+224)/* var←c19116 */ , 67633410);
(void) XR←ExportProcS(var←c23052, (word) (( (bPt) gf←c0294)+216)/* var←c19084 */ , 67633666);
(void) XR←ExportProcS(var←c23052, (word) (( (bPt) gf←c0294)+208)/* var←c19052 */ , 67633922);
(void) XR←ExportProcS(var←c23052, (word) (( (bPt) gf←c0294)+200)/* var←c19020 */ , 67372033);
(void) XR←ExportProcS(var←c23052, (word) (( (bPt) gf←c0294)+192)/* var←c18988 */ , 67372289);
(void) XR←ExportProcS(var←c23052, (word) (( (bPt) gf←c0294)+184)/* var←c18956 */ , 67372545);
(void) XR←ExportProcS(var←c23052, (word) (( (bPt) gf←c0294)+176)/* var←c18924 */ , 67372801);
(void) XR←ExportProcS(var←c23052, (word) (( (bPt) gf←c0294)+168)/* var←c18892 */ , 67373057);
(void) XR←ExportProcS(var←c23052, (word) (( (bPt) gf←c0294)+160)/* var←c18860 */ , 67373313);
(void) XR←ExportProcS(var←c23052, (word) (( (bPt) gf←c0294)+152)/* var←c18828 */ , 67373569);
(void) XR←ExportProcS(var←c23052, (word) (( (bPt) gf←c0294)+144)/* var←c18796 */ , 67373825);
(void) XR←ExportProcS(var←c23052, (word) (( (bPt) gf←c0294)+136)/* var←c18764 */ , 67636226);
(void) XR←ExportProcS(var←c23052, (word) (( (bPt) gf←c0294)+128)/* var←c18732 */ , 67636482);
(void) XR←ExportProcS(var←c23052, (word) (( (bPt) gf←c0294)+120)/* var←c18700 */ , 67636738);
(void) XR←ExportProcS(var←c23052, (word) (( (bPt) gf←c0294)+112)/* var←c18668 */ , 67636994);
(void) XR←ExportProcS(var←c23052, (word) (( (bPt) gf←c0294)+104)/* var←c18636 */ , 67637250);
(void) XR←ExportProcS(var←c23052, (word) (( (bPt) gf←c0294)+96)/* var←c18604 */ , 67637506);
(void) XR←ExportProcS(var←c23052, (word) (( (bPt) gf←c0294)+88)/* var←c18572 */ , 67637762);
(void) XR←ExportProcS(var←c23052, (word) (( (bPt) gf←c0294)+80)/* var←c18540 */ , 67638018);
(void) XR←ExportProcS(var←c23052, (word) (( (bPt) gf←c0294)+72)/* var←c18508 */ , 67638274);
(void) XR←ExportProcS(var←c23052, (word) (( (bPt) gf←c0294)+64)/* var←c18476 */ , 67638530);
(void) XR←ExportProcS(var←c23052, (word) (( (bPt) gf←c0294)+56)/* var←c18444 */ , 67638786);
}
static void FloatOpsImpl←P0(formal←c036, formal←c035)
word formal←c036;
word formal←c035;
{
/* FloatOpsImpl: */
}
extern word XR←RealSub(r0←v5272, r1←v5300)
word r0←v5272;
word r1←v5300;
{
word var←c5344;
word sMask←v8608 = 2147483648;
/* SoftSub: */
SOURCE(2423, 2584)
SOURCE(2560, 59)
r1←v5300 = (word) XRM←BITXOR(r1←v5300, sMask←v8608);
SOURCE(2621, 136)
if (((word) XRM←BITOR(r0←v5272, sMask←v8608) < (word) XRM←BITOR(r1←v5300, sMask←v8608))) {
SOURCE(2719, 40)
{
word temp←v8652;
SOURCE(2721, 16)
temp←v8652 = r0←v5272;
SOURCE(2739, 7)
r0←v5272 = r1←v5300;
SOURCE(2748, 9)
r1←v5300 = temp←v8652;
};
};
SOURCE(2762, 2250)
{
word guard←v8696 = 0;
word r0s←v8724;
word r1s←v8752;
word resExp←v8780;
word dExp←v8808;
SOURCE(2783, 58)
r0s←v8724 = (word) XRM←BITAND(r0←v5272, sMask←v8608);
SOURCE(2843, 58)
r1s←v8752 = (word) XRM←BITAND(r1←v5300, sMask←v8608);
SOURCE(2903, 20)
resExp←v8780 = (((unsigned)r0←v5272 << 1) >> 24);
SOURCE(2925, 25)
dExp←v8808 = (resExp←v8780 - (((unsigned)r1←v5300 << 1) >> 24));
if ((resExp←v8780 == 255)) {
SOURCE(2990, 29)
return((word) RaiseFloatError←P1920(1));
}
else {
if ((dExp←v8808 > 24)) {
SOURCE(3045, 11)
return(r0←v5272);
}
else {
SOURCE(3069, 1940)
{
word mnr←v8852 = 8388608;
word mMask←v8880 = 8388607;
word r0m←v8908;
word mant←v8936;
SOURCE(3137, 58)
r0m←v8908 = (word) XRM←BITAND(r0←v5272, mMask←v8880);
SOURCE(3197, 65)
mant←v8936 = ((word) XRM←BITAND(r1←v5300, mMask←v8880) + mnr←v8852);
SOURCE(3264, 238)
if ((dExp←v8808 == resExp←v8780)) {
SOURCE(3288, 42)
if ((resExp←v8780 > 24)) {
SOURCE(3319, 11)
return(r0←v5272);
};
SOURCE(3332, 35)
mant←v8936 = (word) XRM←BITAND(mant←v8936, mMask←v8880);
SOURCE(3369, 110)
if ((resExp←v8780 == 0)) {
SOURCE(3390, 58)
if ((r0s←v8724 == r1s←v8752)) {
SOURCE(3408, 23)
mant←v8936 = (r0m←v8908 + mant←v8936);
}
else {
SOURCE(3431, 17)
mant←v8936 = (r0m←v8908 - mant←v8936);
};
SOURCE(3450, 29)
return((mant←v8936 + r0s←v8724));
};
SOURCE(3484, 18)
mant←v8936 = (mant←v8936 + mant←v8936);
};
SOURCE(3507, 30)
r0m←v8908 = (word) XRM←BITOR(r0m←v8908, mnr←v8852);
SOURCE(3539, 99)
if ((dExp←v8808 != 0)) {
SOURCE(3558, 41)
{
word var←c19244;
word count←v18048;
count←v18048 = (32 - dExp←v8808);
var←c19244 = (word) XRM←BITLSHIFT(mant←v8936, count←v18048);
guard←v8696 = var←c19244;
};
SOURCE(3601, 37)
mant←v8936 = (word) XRM←BITRSHIFT(mant←v8936, BCK(dExp←v8808, 32));
};
SOURCE(3643, 1013)
if ((r0s←v8724 == r1s←v8752)) {
SOURCE(3663, 17)
mant←v8936 = (mant←v8936 + r0m←v8908);
SOURCE(3682, 152)
if ((mant←v8936 >= (mnr←v8852 + mnr←v8852))) {
SOURCE(3708, 69)
guard←v8696 = ((word) XRM←BITRSHIFT(guard←v8696, 1) + (word) XRM←BITLSHIFT(mant←v8936, 31));
SOURCE(3779, 34)
mant←v8936 = (word) XRM←BITRSHIFT(mant←v8936, 1);
SOURCE(3815, 19)
resExp←v8780 = (resExp←v8780 + 1);
};
}
else {
SOURCE(3848, 17)
mant←v8936 = (r0m←v8908 - mant←v8936);
SOURCE(3867, 53)
if ((guard←v8696 != 0)) {
SOURCE(3886, 15)
mant←v8936 = (mant←v8936 - 1);
SOURCE(3903, 17)
guard←v8696 = (0 - guard←v8696);
};
SOURCE(3923, 733)
if ((mant←v8936 < mnr←v8852)) {
SOURCE(3942, 719)
{
word shift←v8980 = 0;
word temp←v9008 = 12;
word var←c19308;
word count←v17300;
word var←c19372;
word count←v17252;
word var←c19436;
word count←v17204;
word var←c19500;
word count←v17156;
SOURCE(3979, 33)
if ((mant←v8936 == 0)) {
SOURCE(3996, 16)
return(0);
};
SOURCE(4014, 51)
if (((word) XRM←BITRSHIFT(mant←v8936, 12) != 0)) {
SOURCE(4055, 10)
shift←v8980 = 12;
};
SOURCE(4067, 61)
count←v17300 = (shift←v8980 + 8);
var←c19308 = (word) XRM←BITRSHIFT(mant←v8936, count←v17300);
if ((var←c19308 != 0)) {
SOURCE(4113, 15)
shift←v8980 = (shift←v8980 + 8);
};
SOURCE(4130, 61)
count←v17252 = (shift←v8980 + 4);
var←c19372 = (word) XRM←BITRSHIFT(mant←v8936, count←v17252);
if ((var←c19372 != 0)) {
SOURCE(4176, 15)
shift←v8980 = (shift←v8980 + 4);
};
SOURCE(4193, 61)
count←v17204 = (shift←v8980 + 2);
var←c19436 = (word) XRM←BITRSHIFT(mant←v8936, count←v17204);
if ((var←c19436 != 0)) {
SOURCE(4239, 15)
shift←v8980 = (shift←v8980 + 2);
};
SOURCE(4256, 61)
count←v17156 = (shift←v8980 + 1);
var←c19500 = (word) XRM←BITRSHIFT(mant←v8936, count←v17156);
if ((var←c19500 != 0)) {
SOURCE(4302, 15)
shift←v8980 = (shift←v8980 + 1);
};
SOURCE(4319, 16)
shift←v8980 = (23 - shift←v8980);
SOURCE(4337, 76)
{
word var←c19564;
word count←v17108;
count←v17108 = (32 - shift←v8980);
var←c19564 = (word) XRM←BITRSHIFT(guard←v8696, count←v17108);
mant←v8936 = ((word) XRM←BITLSHIFT(mant←v8936, BCK(shift←v8980, 32)) + var←c19564);
};
SOURCE(4415, 40)
guard←v8696 = (word) XRM←BITLSHIFT(guard←v8696, BCK(shift←v8980, 32));
SOURCE(4457, 23)
resExp←v8780 = (resExp←v8780 - shift←v8980);
SOURCE(4482, 174)
if ((resExp←v8780 <= 0)) {
SOURCE(4502, 156)
{
/*1*/ word shift←v9052;
SOURCE(4504, 21)
/*1*/ shift←v9052 = (1 - resExp←v8780);
SOURCE(4527, 77)
/*1*/ {
/*1*/ word var←c19628;
/*1*/ word count←v18000;
/*1*/ count←v18000 = (32 - shift←v9052);
/*1*/ var←c19628 = (word) XRM←BITLSHIFT(mant←v8936, count←v18000);
/*1*/ guard←v8696 = ((word) XRM←BITRSHIFT(guard←v8696, BCK(shift←v9052, 32)) + var←c19628);
/*1*/ };
SOURCE(4606, 38)
/*1*/ mant←v8936 = (word) XRM←BITRSHIFT(mant←v8936, BCK(shift←v9052, 32));
SOURCE(4646, 10)
/*1*/ resExp←v8780 = 0;
/*1*/ };
};
};
};
};
SOURCE(4667, 195)
if (( (int)guard←v8696 < (int)0)) {
SOURCE(4704, 104)
if (( (int)guard←v8696 == (int)2147483648)) {
SOURCE(4749, 44)
mant←v8936 = (mant←v8936 + (word) XRM←BITAND(mant←v8936, 1));
}
else {
SOURCE(4793, 15)
mant←v8936 = (mant←v8936 + 1);
};
SOURCE(4810, 52)
resExp←v8780 = (resExp←v8780 + (word) XRM←BITRSHIFT(mant←v8936, 24));
};
SOURCE(4867, 60)
if ((resExp←v8780 > 254)) {
SOURCE(4893, 34)
return((word) RaiseFloatError←P1920(2));
};
SOURCE(4929, 78)
return((((word) XRM←BITAND(mant←v8936, mMask←v8880) + (resExp←v8780 << 23)) + r0s←v8724));
};
};
};
};
}
extern word XR←RealAdd(r0←v5404, r1←v5432)
word r0←v5404;
word r1←v5432;
{
word var←c5476;
word sMask←v9096 = 2147483648;
/* SoftAdd: */
SOURCE(5019, 2523)
SOURCE(5156, 136)
if (((word) XRM←BITOR(r0←v5404, sMask←v9096) < (word) XRM←BITOR(r1←v5432, sMask←v9096))) {
SOURCE(5254, 40)
{
word temp←v9140;
SOURCE(5256, 16)
temp←v9140 = r0←v5404;
SOURCE(5274, 7)
r0←v5404 = r1←v5432;
SOURCE(5283, 9)
r1←v5432 = temp←v9140;
};
};
SOURCE(5297, 2250)
{
word guard←v9184 = 0;
word r0s←v9212;
word r1s←v9240;
word resExp←v9268;
word dExp←v9296;
SOURCE(5318, 58)
r0s←v9212 = (word) XRM←BITAND(r0←v5404, sMask←v9096);
SOURCE(5378, 58)
r1s←v9240 = (word) XRM←BITAND(r1←v5432, sMask←v9096);
SOURCE(5438, 20)
resExp←v9268 = (((unsigned)r0←v5404 << 1) >> 24);
SOURCE(5460, 25)
dExp←v9296 = (resExp←v9268 - (((unsigned)r1←v5432 << 1) >> 24));
if ((resExp←v9268 == 255)) {
SOURCE(5525, 29)
return((word) RaiseFloatError←P1920(1));
}
else {
if ((dExp←v9296 > 24)) {
SOURCE(5580, 11)
return(r0←v5404);
}
else {
SOURCE(5604, 1940)
{
word mnr←v9340 = 8388608;
word mMask←v9368 = 8388607;
word r0m←v9396;
word mant←v9424;
SOURCE(5672, 58)
r0m←v9396 = (word) XRM←BITAND(r0←v5404, mMask←v9368);
SOURCE(5732, 65)
mant←v9424 = ((word) XRM←BITAND(r1←v5432, mMask←v9368) + mnr←v9340);
SOURCE(5799, 238)
if ((dExp←v9296 == resExp←v9268)) {
SOURCE(5823, 42)
if ((resExp←v9268 > 24)) {
SOURCE(5854, 11)
return(r0←v5404);
};
SOURCE(5867, 35)
mant←v9424 = (word) XRM←BITAND(mant←v9424, mMask←v9368);
SOURCE(5904, 110)
if ((resExp←v9268 == 0)) {
SOURCE(5925, 58)
if ((r0s←v9212 == r1s←v9240)) {
SOURCE(5943, 23)
mant←v9424 = (r0m←v9396 + mant←v9424);
}
else {
SOURCE(5966, 17)
mant←v9424 = (r0m←v9396 - mant←v9424);
};
SOURCE(5985, 29)
return((mant←v9424 + r0s←v9212));
};
SOURCE(6019, 18)
mant←v9424 = (mant←v9424 + mant←v9424);
};
SOURCE(6042, 30)
r0m←v9396 = (word) XRM←BITOR(r0m←v9396, mnr←v9340);
SOURCE(6074, 99)
if ((dExp←v9296 != 0)) {
SOURCE(6093, 41)
{
word var←c19788;
word count←v17952;
count←v17952 = (32 - dExp←v9296);
var←c19788 = (word) XRM←BITLSHIFT(mant←v9424, count←v17952);
guard←v9184 = var←c19788;
};
SOURCE(6136, 37)
mant←v9424 = (word) XRM←BITRSHIFT(mant←v9424, BCK(dExp←v9296, 32));
};
SOURCE(6178, 1013)
if ((r0s←v9212 == r1s←v9240)) {
SOURCE(6198, 17)
mant←v9424 = (mant←v9424 + r0m←v9396);
SOURCE(6217, 152)
if ((mant←v9424 >= (mnr←v9340 + mnr←v9340))) {
SOURCE(6243, 69)
guard←v9184 = ((word) XRM←BITRSHIFT(guard←v9184, 1) + (word) XRM←BITLSHIFT(mant←v9424, 31));
SOURCE(6314, 34)
mant←v9424 = (word) XRM←BITRSHIFT(mant←v9424, 1);
SOURCE(6350, 19)
resExp←v9268 = (resExp←v9268 + 1);
};
}
else {
SOURCE(6383, 17)
mant←v9424 = (r0m←v9396 - mant←v9424);
SOURCE(6402, 53)
if ((guard←v9184 != 0)) {
SOURCE(6421, 15)
mant←v9424 = (mant←v9424 - 1);
SOURCE(6438, 17)
guard←v9184 = (0 - guard←v9184);
};
SOURCE(6458, 733)
if ((mant←v9424 < mnr←v9340)) {
SOURCE(6477, 719)
{
word shift←v9468 = 0;
word temp←v9496 = 12;
word var←c19852;
word count←v17060;
word var←c19916;
word count←v17012;
word var←c19980;
word count←v16964;
word var←c20044;
word count←v16916;
SOURCE(6514, 33)
if ((mant←v9424 == 0)) {
SOURCE(6531, 16)
return(0);
};
SOURCE(6549, 51)
if (((word) XRM←BITRSHIFT(mant←v9424, 12) != 0)) {
SOURCE(6590, 10)
shift←v9468 = 12;
};
SOURCE(6602, 61)
count←v17060 = (shift←v9468 + 8);
var←c19852 = (word) XRM←BITRSHIFT(mant←v9424, count←v17060);
if ((var←c19852 != 0)) {
SOURCE(6648, 15)
shift←v9468 = (shift←v9468 + 8);
};
SOURCE(6665, 61)
count←v17012 = (shift←v9468 + 4);
var←c19916 = (word) XRM←BITRSHIFT(mant←v9424, count←v17012);
if ((var←c19916 != 0)) {
SOURCE(6711, 15)
shift←v9468 = (shift←v9468 + 4);
};
SOURCE(6728, 61)
count←v16964 = (shift←v9468 + 2);
var←c19980 = (word) XRM←BITRSHIFT(mant←v9424, count←v16964);
if ((var←c19980 != 0)) {
SOURCE(6774, 15)
shift←v9468 = (shift←v9468 + 2);
};
SOURCE(6791, 61)
count←v16916 = (shift←v9468 + 1);
var←c20044 = (word) XRM←BITRSHIFT(mant←v9424, count←v16916);
if ((var←c20044 != 0)) {
SOURCE(6837, 15)
shift←v9468 = (shift←v9468 + 1);
};
SOURCE(6854, 16)
shift←v9468 = (23 - shift←v9468);
SOURCE(6872, 76)
{
word var←c20108;
word count←v16868;
count←v16868 = (32 - shift←v9468);
var←c20108 = (word) XRM←BITRSHIFT(guard←v9184, count←v16868);
mant←v9424 = ((word) XRM←BITLSHIFT(mant←v9424, BCK(shift←v9468, 32)) + var←c20108);
};
SOURCE(6950, 40)
guard←v9184 = (word) XRM←BITLSHIFT(guard←v9184, BCK(shift←v9468, 32));
SOURCE(6992, 23)
resExp←v9268 = (resExp←v9268 - shift←v9468);
SOURCE(7017, 174)
if ((resExp←v9268 <= 0)) {
SOURCE(7037, 156)
{
/*1*/ word shift←v9540;
SOURCE(7039, 21)
/*1*/ shift←v9540 = (1 - resExp←v9268);
SOURCE(7062, 77)
/*1*/ {
/*1*/ word var←c20172;
/*1*/ word count←v17904;
/*1*/ count←v17904 = (32 - shift←v9540);
/*1*/ var←c20172 = (word) XRM←BITLSHIFT(mant←v9424, count←v17904);
/*1*/ guard←v9184 = ((word) XRM←BITRSHIFT(guard←v9184, BCK(shift←v9540, 32)) + var←c20172);
/*1*/ };
SOURCE(7141, 38)
/*1*/ mant←v9424 = (word) XRM←BITRSHIFT(mant←v9424, BCK(shift←v9540, 32));
SOURCE(7181, 10)
/*1*/ resExp←v9268 = 0;
/*1*/ };
};
};
};
};
SOURCE(7202, 195)
if (( (int)guard←v9184 < (int)0)) {
SOURCE(7239, 104)
if (( (int)guard←v9184 == (int)2147483648)) {
SOURCE(7284, 44)
mant←v9424 = (mant←v9424 + (word) XRM←BITAND(mant←v9424, 1));
}
else {
SOURCE(7328, 15)
mant←v9424 = (mant←v9424 + 1);
};
SOURCE(7345, 52)
resExp←v9268 = (resExp←v9268 + (word) XRM←BITRSHIFT(mant←v9424, 24));
};
SOURCE(7402, 60)
if ((resExp←v9268 > 254)) {
SOURCE(7428, 34)
return((word) RaiseFloatError←P1920(2));
};
SOURCE(7464, 78)
return((((word) XRM←BITAND(mant←v9424, mMask←v9368) + (resExp←v9268 << 23)) + r0s←v9212));
};
};
};
};
}
extern word XR←RealMul(r0←v5536, r1←v5564)
word r0←v5536;
word r1←v5564;
{
word var←c5608;
word sign←v9584;
word r0exp←v9612;
word r1exp←v9640;
word resExp←v9668;
word mMask←v9696 = 8388607;
word r0Mant←v9724;
word r1Mant←v9752;
word mant←v9780 = 0;
word guard←v9808 = 0;
/* SoftMul: */
SOURCE(7554, 2537)
SOURCE(7624, 106)
{
word w2←v18268;
w2←v18268 = (word) XRM←BITXOR(r0←v5536, r1←v5564);
sign←v9584 = (word) XRM←BITAND(2147483648, w2←v18268);
};
SOURCE(7732, 23)
r0exp←v9612 = (((unsigned)r0←v5536 << 1) >> 24);
SOURCE(7757, 23)
r1exp←v9640 = (((unsigned)r1←v5564 << 1) >> 24);
SOURCE(7782, 39)
resExp←v9668 = ((r0exp←v9612 + r1exp←v9640) - 127);
SOURCE(7858, 61)
r0Mant←v9724 = (word) XRM←BITAND(mMask←v9696, r0←v5536);
SOURCE(7921, 61)
r1Mant←v9752 = (word) XRM←BITAND(mMask←v9696, r1←v5564);
SOURCE(8022, 54)
if (( (int)r0exp←v9612 == (int)255)) {
SOURCE(8047, 29)
return((word) RaiseFloatError←P1920(1));
};
SOURCE(8078, 54)
if (( (int)r1exp←v9640 == (int)255)) {
SOURCE(8103, 29)
return((word) RaiseFloatError←P1920(1));
};
SOURCE(8134, 152)
if (( (int)r0exp←v9612 == (int)0)) {
SOURCE(8154, 42)
if ((r0Mant←v9724 == 0)) {
SOURCE(8173, 23)
return(sign←v9584);
};
SOURCE(8198, 88)
lab←L100017: ;
SOURCE(8201, 24)
r0Mant←v9724 = (r0Mant←v9724 + r0Mant←v9724);
SOURCE(8227, 34)
if ((r0Mant←v9724 >= 8388608)) {
SOURCE(8261, 4)
goto lab←L100016;
};
SOURCE(8267, 19)
resExp←v9668 = (resExp←v9668 - 1);
goto lab←L100017;
lab←L100016: ;
};
SOURCE(8300, 152)
if (( (int)r1exp←v9640 == (int)0)) {
SOURCE(8320, 42)
if ((r1Mant←v9752 == 0)) {
SOURCE(8339, 23)
return(sign←v9584);
};
SOURCE(8364, 88)
lab←L100020: ;
SOURCE(8367, 24)
r1Mant←v9752 = (r1Mant←v9752 + r1Mant←v9752);
SOURCE(8393, 34)
if ((r1Mant←v9752 >= 8388608)) {
SOURCE(8427, 4)
goto lab←L100019;
};
SOURCE(8433, 19)
resExp←v9668 = (resExp←v9668 - 1);
goto lab←L100020;
lab←L100019: ;
};
SOURCE(8466, 48)
r0Mant←v9724 = (word) XRM←BITOR(r0Mant←v9724, 8388608);
SOURCE(8516, 48)
r1Mant←v9752 = (word) XRM←BITOR(r1Mant←v9752, 8388608);
SOURCE(8566, 845)
{
word pLo←v9880;
word pMid←v9908;
word pHi←v9936;
word sumLo←v9964;
SOURCE(8660, 48)
{
word x←v16264;
x←v16264 = (word) XRM←BITAND(r0Mant←v9724, 255);
SOURCE(8617, 38)
if ((x←v16264 == 0)) {
pLo←v9880 = 0;
}
else {
pLo←v9880 = (x←v16264 * r1Mant←v9752);
};
};
SOURCE(8710, 72)
{
word x←v16216;
{
word w1←v18220;
w1←v18220 = (word) XRM←BITRSHIFT(r0Mant←v9724, 8);
x←v16216 = (word) XRM←BITAND(w1←v18220, 255);
};
SOURCE(8617, 38)
if ((x←v16216 == 0)) {
pMid←v9908 = 0;
}
else {
pMid←v9908 = (x←v16216 * r1Mant←v9752);
};
};
SOURCE(8784, 53)
pHi←v9936 = ((word) XRM←BITRSHIFT(r0Mant←v9724, 16) * r1Mant←v9752);
SOURCE(8839, 156)
{
word var←c20556;
word value←v17856;
word var←c20620;
word value←v17808;
word var←c0299;
value←v17856 = (word) XRM←BITAND(255, pHi←v9936);
var←c20556 = (word) XRM←BITLSHIFT(value←v17856, 16);
value←v17808 = (word) XRM←BITAND(65535, pMid←v9908);
var←c20620 = (word) XRM←BITLSHIFT(value←v17808, 8);
var←c0299 = (var←c20556 + var←c20620);
sumLo←v9964 = (var←c0299 + (word) XRM←BITAND(16777215, pLo←v9880));
};
SOURCE(8997, 126)
mant←v9780 = ((((word) XRM←BITRSHIFT(pHi←v9936, 8) + (word) XRM←BITRSHIFT(pMid←v9908, 16)) + (word) XRM←BITRSHIFT(pLo←v9880, 24)
) + (word) XRM←BITRSHIFT(sumLo←v9964, 24));
SOURCE(9125, 36)
guard←v9808 = (word) XRM←BITLSHIFT(sumLo←v9964, 8);
SOURCE(9163, 238)
if ((mant←v9780 < 8388608)) {
SOURCE(9196, 52)
mant←v9780 = ((mant←v9780 + mant←v9780) + (word) XRM←BITRSHIFT(guard←v9808, 31));
SOURCE(9250, 21)
guard←v9808 = (guard←v9808 + guard←v9808);
}
else {
SOURCE(9333, 19)
resExp←v9668 = (resExp←v9668 + 1);
};
};
SOURCE(9414, 335)
if (( (int)resExp←v9668 <= (int)0)) {
SOURCE(9434, 320)
{
word shift←v10112;
SOURCE(9436, 21)
shift←v10112 = (1 - resExp←v9668);
SOURCE(9459, 290)
if ((shift←v10112 > 24)) {
SOURCE(9478, 29)
return(sign←v9584);
}
else {
SOURCE(9507, 244)
{
word guardOut←v10156;
SOURCE(9509, 54)
{
word count←v17760;
count←v17760 = (32 - shift←v10112);
guardOut←v10156 = (word) XRM←BITLSHIFT(guard←v9808, count←v17760);
};
SOURCE(9565, 77)
{
word var←c20748;
word count←v17712;
count←v17712 = (32 - shift←v10112);
var←c20748 = (word) XRM←BITLSHIFT(mant←v9780, count←v17712);
guard←v9808 = ((word) XRM←BITRSHIFT(guard←v9808, BCK(shift←v10112, 32)) + var←c20748);
};
SOURCE(9644, 53)
if ((guardOut←v10156 != 0)) {
SOURCE(9665, 32)
guard←v9808 = (word) XRM←BITOR(guard←v9808, 1);
};
SOURCE(9699, 38)
mant←v9780 = (word) XRM←BITRSHIFT(mant←v9780, BCK(shift←v10112, 32));
SOURCE(9739, 10)
resExp←v9668 = 0;
};
};
};
};
SOURCE(9757, 180)
if (( (int)guard←v9808 < (int)0)) {
SOURCE(9794, 89)
if ((guard←v9808 == 2147483648)) {
SOURCE(9824, 44)
mant←v9780 = (mant←v9780 + (word) XRM←BITAND(mant←v9780, 1));
}
else {
SOURCE(9868, 15)
mant←v9780 = (mant←v9780 + 1);
};
SOURCE(9885, 52)
resExp←v9668 = (resExp←v9668 + (word) XRM←BITRSHIFT(mant←v9780, 24));
};
SOURCE(9942, 60)
if (( (int)resExp←v9668 > (int)254)) {
SOURCE(9968, 34)
return((word) RaiseFloatError←P1920(2));
};
SOURCE(10004, 87)
{
word var←c0301;
{
word var←c20876;
word value←v17664;
word var←c0300;
value←v17664 = resExp←v9668;
var←c20876 = (word) XRM←BITLSHIFT(value←v17664, 23);
var←c0300 = ((word) XRM←BITAND(mant←v9780, mMask←v9696) + var←c20876);
var←c0301 = (var←c0300 + sign←v9584);
};
return(var←c0301);
};
}
extern word XR←RealDiv(r0←v5668, r1←v5696)
word r0←v5668;
word r1←v5696;
{
word var←c5740;
word guard←v10200 = 0;
word sign←v10228;
word r0exp←v10256;
word r1exp←v10284;
word resExp←v10312;
word mMask←v10340 = 8388607;
word r0Mant←v10368;
word r1Mant←v10396;
word mant←v10424 = 0;
/* SoftDiv: */
SOURCE(10097, 2232)
SOURCE(10186, 106)
{
word w2←v18172;
w2←v18172 = (word) XRM←BITXOR(r0←v5668, r1←v5696);
sign←v10228 = (word) XRM←BITAND(2147483648, w2←v18172);
};
SOURCE(10294, 19)
r0exp←v10256 = (((unsigned)r0←v5668 << 1) >> 24);
SOURCE(10315, 19)
r1exp←v10284 = (((unsigned)r1←v5696 << 1) >> 24);
SOURCE(10336, 43)
resExp←v10312 = ((r0exp←v10256 - r1exp←v10284) + 127);
SOURCE(10416, 61)
r0Mant←v10368 = (word) XRM←BITAND(mMask←v10340, r0←v5668);
SOURCE(10479, 61)
r1Mant←v10396 = (word) XRM←BITAND(mMask←v10340, r1←v5696);
SOURCE(10561, 54)
if ((r0exp←v10256 == 255)) {
SOURCE(10586, 29)
return((word) RaiseFloatError←P1920(1));
};
SOURCE(10617, 54)
if ((r1exp←v10284 == 255)) {
SOURCE(10642, 29)
return((word) RaiseFloatError←P1920(1));
};
SOURCE(10673, 164)
if ((r1exp←v10284 == 0)) {
SOURCE(10693, 54)
if ((r1Mant←v10396 == 0)) {
SOURCE(10712, 35)
return((word) RaiseFloatError←P1920(4));
};
SOURCE(10749, 88)
lab←L100032: ;
SOURCE(10752, 24)
r1Mant←v10396 = (r1Mant←v10396 + r1Mant←v10396);
SOURCE(10778, 34)
if ((r1Mant←v10396 >= 8388608)) {
SOURCE(10812, 4)
goto lab←L100031;
};
SOURCE(10818, 19)
resExp←v10312 = (resExp←v10312 - 1);
goto lab←L100032;
lab←L100031: ;
};
SOURCE(10851, 152)
if ((r0exp←v10256 == 0)) {
SOURCE(10871, 42)
if ((r0Mant←v10368 == 0)) {
SOURCE(10890, 23)
return(sign←v10228);
};
SOURCE(10915, 88)
lab←L100035: ;
SOURCE(10918, 24)
r0Mant←v10368 = (r0Mant←v10368 + r0Mant←v10368);
SOURCE(10944, 34)
if ((r0Mant←v10368 >= 8388608)) {
SOURCE(10978, 4)
goto lab←L100034;
};
SOURCE(10984, 19)
resExp←v10312 = (resExp←v10312 - 1);
goto lab←L100035;
lab←L100034: ;
};
SOURCE(11017, 48)
r0Mant←v10368 = (word) XRM←BITOR(r0Mant←v10368, 8388608);
SOURCE(11067, 48)
r1Mant←v10396 = (word) XRM←BITOR(r1Mant←v10396, 8388608);
SOURCE(11118, 640)
SOURCE(11120, 29)
{
word bit←v10468 = 8388608;
SOURCE(11151, 22)
mant←v10424 = 8388608;
SOURCE(11175, 71)
if ((r0Mant←v10368 < r1Mant←v10396)) {
SOURCE(11201, 24)
r0Mant←v10368 = (r0Mant←v10368 + r0Mant←v10368);
SOURCE(11227, 19)
resExp←v10312 = (resExp←v10312 - 1);
};
SOURCE(11251, 24)
r0Mant←v10368 = (r0Mant←v10368 - r1Mant←v10396);
SOURCE(11277, 19)
if ((r0Mant←v10368 == 0)) {
SOURCE(11296, 15)
goto lab←L100036;
};
SOURCE(11313, 393)
lab←L100039: ;
SOURCE(11316, 24)
r0Mant←v10368 = (r0Mant←v10368 + r0Mant←v10368);
SOURCE(11342, 222)
if ((bit←v10468 == 1)) {
SOURCE(11360, 204)
if ((r0Mant←v10368 >= r1Mant←v10396)) {
SOURCE(11387, 83)
if ((r0Mant←v10368 == r1Mant←v10396)) {
SOURCE(11411, 44)
mant←v10424 = (mant←v10424 + (word) XRM←BITAND(mant←v10424, 1));
}
else {
SOURCE(11455, 15)
mant←v10424 = (mant←v10424 + 1);
};
SOURCE(11472, 92)
if ((mant←v10424 == 16777216)) {
SOURCE(11521, 22)
mant←v10424 = 8388608;
SOURCE(11545, 19)
resExp←v10312 = (resExp←v10312 + 1);
};
};
SOURCE(11572, 4)
goto lab←L100038;
};
SOURCE(11581, 32)
bit←v10468 = (word) XRM←BITRSHIFT(bit←v10468, 1);
SOURCE(11615, 91)
if ((r0Mant←v10368 >= r1Mant←v10396)) {
SOURCE(11642, 17)
mant←v10424 = (mant←v10424 + bit←v10468);
SOURCE(11661, 24)
r0Mant←v10368 = (r0Mant←v10368 - r1Mant←v10396);
SOURCE(11687, 19)
if ((r0Mant←v10368 == 0)) {
SOURCE(11706, 15)
goto lab←L100036;
};
};
goto lab←L100039;
lab←L100038: ;
};
goto lab←L100040;
lab←L100036: ;
lab←L100040: ;
SOURCE(11761, 220)
if (( (int)resExp←v10312 <= (int)0)) {
SOURCE(11783, 198)
lab←L100043: ;
SOURCE(11786, 113)
{
word var←c21100;
word w1←v18096;
word w2←v18124;
w1←v18096 = (word) XRM←BITAND(guard←v10200, 1);
w2←v18124 = ((word) XRM←BITRSHIFT(guard←v10200, 1) + (word) XRM←BITLSHIFT(mant←v10424, 31));
var←c21100 = (word) XRM←BITOR(w1←v18096, w2←v18124);
guard←v10200 = var←c21100;
};
SOURCE(11901, 34)
mant←v10424 = (word) XRM←BITRSHIFT(mant←v10424, 1);
SOURCE(11937, 19)
if (( (int)resExp←v10312 == (int)0)) {
SOURCE(11956, 4)
goto lab←L100042;
};
SOURCE(11962, 19)
resExp←v10312 = (resExp←v10312 + 1);
goto lab←L100043;
lab←L100042: ;
};
SOURCE(11995, 180)
if (( (int)guard←v10200 < (int)0)) {
SOURCE(12032, 89)
if ((guard←v10200 == 2147483648)) {
SOURCE(12062, 44)
mant←v10424 = (mant←v10424 + (word) XRM←BITAND(mant←v10424, 1));
}
else {
SOURCE(12106, 15)
mant←v10424 = (mant←v10424 + 1);
};
SOURCE(12123, 52)
resExp←v10312 = (resExp←v10312 + (word) XRM←BITRSHIFT(mant←v10424, 24));
};
SOURCE(12180, 60)
if (( (int)resExp←v10312 > (int)254)) {
SOURCE(12206, 34)
return((word) RaiseFloatError←P1920(2));
};
SOURCE(12242, 87)
{
word var←c0303;
{
word var←c21228;
word value←v17616;
word var←c0302;
value←v17616 = resExp←v10312;
var←c21228 = (word) XRM←BITLSHIFT(value←v17616, 23);
var←c0302 = ((word) XRM←BITAND(mant←v10424, mMask←v10340) + var←c21228);
var←c0303 = (var←c0302 + sign←v10228);
};
return(var←c0303);
};
}
extern word XR←FloatInt(i←v5800)
word i←v5800;
{
word var←c5844;
word sign←v10512 = 0;
word c←v10540;
word shift←v10568 = 0;
word temp←v10596 = 0;
word guard←v10624;
word exp←v10652;
word mMask←v10680 = 8388607;
word var←c21292;
word count←v16820;
word var←c21356;
word count←v16772;
word var←c21420;
word count←v16724;
word var←c21484;
word count←v16676;
/* FloatInt: */
SOURCE(12335, 1026)
SOURCE(12419, 23)
c←v10540 = i←v5800;
SOURCE(12538, 39)
if (( (int)i←v5800 == (int)0)) {
SOURCE(12552, 25)
return(0);
};
SOURCE(12579, 43)
if (( (int)i←v5800 < (int)0)) {
SOURCE(12594, 6)
c←v10540 = INEG(i←v5800);
SOURCE(12602, 20)
sign←v10512 = 2147483648;
};
SOURCE(12625, 48)
if (((word) XRM←BITRSHIFT(c←v10540, 16) != 0)) {
SOURCE(12663, 10)
shift←v10568 = 16;
};
SOURCE(12675, 58)
count←v16820 = (shift←v10568 + 8);
var←c21292 = (word) XRM←BITRSHIFT(c←v10540, count←v16820);
if ((var←c21292 != 0)) {
SOURCE(12718, 15)
shift←v10568 = (shift←v10568 + 8);
};
SOURCE(12735, 58)
count←v16772 = (shift←v10568 + 4);
var←c21356 = (word) XRM←BITRSHIFT(c←v10540, count←v16772);
if ((var←c21356 != 0)) {
SOURCE(12778, 15)
shift←v10568 = (shift←v10568 + 4);
};
SOURCE(12795, 58)
count←v16724 = (shift←v10568 + 2);
var←c21420 = (word) XRM←BITRSHIFT(c←v10540, count←v16724);
if ((var←c21420 != 0)) {
SOURCE(12838, 15)
shift←v10568 = (shift←v10568 + 2);
};
SOURCE(12855, 58)
count←v16676 = (shift←v10568 + 1);
var←c21484 = (word) XRM←BITRSHIFT(c←v10540, count←v16676);
if ((var←c21484 != 0)) {
SOURCE(12898, 15)
shift←v10568 = (shift←v10568 + 1);
};
SOURCE(12915, 19)
exp←v10652 = (shift←v10568 + 127);
SOURCE(12936, 341)
if ((shift←v10568 <= 23)) {
SOURCE(12958, 38)
{
word var←c21548;
word count←v17568;
count←v17568 = (23 - shift←v10568);
var←c21548 = (word) XRM←BITLSHIFT(c←v10540, count←v17568);
temp←v10596 = var←c21548;
};
}
else {
SOURCE(13007, 38)
{
word var←c21612;
word count←v16628;
count←v16628 = (shift←v10568 - 23);
var←c21612 = (word) XRM←BITRSHIFT(c←v10540, count←v16628);
temp←v10596 = var←c21612;
};
SOURCE(13047, 39)
{
word var←c21676;
word count←v17520;
count←v17520 = (32 - shift←v10568);
var←c21676 = (word) XRM←BITLSHIFT(c←v10540, count←v17520);
guard←v10624 = var←c21676;
};
SOURCE(13088, 189)
if (( (int)guard←v10624 < (int)0)) {
SOURCE(13125, 104)
if (( (int)guard←v10624 == (int)2147483648)) {
SOURCE(13170, 44)
temp←v10596 = (temp←v10596 + (word) XRM←BITAND(temp←v10596, 1));
}
else {
SOURCE(13214, 15)
temp←v10596 = (temp←v10596 + 1);
};
SOURCE(13231, 46)
exp←v10652 = (exp←v10652 + (word) XRM←BITRSHIFT(temp←v10596, 24));
};
};
SOURCE(13287, 74)
return((((word) XRM←BITAND(temp←v10596, mMask←v10680) + (exp←v10652 << 23)) + sign←v10512));
}
extern word XR←FloatCard(c←v5904)
word c←v5904;
{
word var←c5948;
word shift←v10724 = 0;
word temp←v10752 = 0;
word exp←v10780;
word guard←v10808;
word mMask←v10836 = 8388607;
word var←c21772;
word count←v16580;
word var←c21836;
word count←v16532;
word var←c21900;
word count←v16484;
word var←c21964;
word count←v16436;
/* FloatCard: */
SOURCE(13367, 933)
SOURCE(13530, 39)
if ((c←v5904 == 0)) {
SOURCE(13544, 25)
return(0);
};
SOURCE(13571, 48)
if (((word) XRM←BITRSHIFT(c←v5904, 16) != 0)) {
SOURCE(13609, 10)
shift←v10724 = 16;
};
SOURCE(13621, 58)
count←v16580 = (shift←v10724 + 8);
var←c21772 = (word) XRM←BITRSHIFT(c←v5904, count←v16580);
if ((var←c21772 != 0)) {
SOURCE(13664, 15)
shift←v10724 = (shift←v10724 + 8);
};
SOURCE(13681, 58)
count←v16532 = (shift←v10724 + 4);
var←c21836 = (word) XRM←BITRSHIFT(c←v5904, count←v16532);
if ((var←c21836 != 0)) {
SOURCE(13724, 15)
shift←v10724 = (shift←v10724 + 4);
};
SOURCE(13741, 58)
count←v16484 = (shift←v10724 + 2);
var←c21900 = (word) XRM←BITRSHIFT(c←v5904, count←v16484);
if ((var←c21900 != 0)) {
SOURCE(13784, 15)
shift←v10724 = (shift←v10724 + 2);
};
SOURCE(13801, 58)
count←v16436 = (shift←v10724 + 1);
var←c21964 = (word) XRM←BITRSHIFT(c←v5904, count←v16436);
if ((var←c21964 != 0)) {
SOURCE(13844, 15)
shift←v10724 = (shift←v10724 + 1);
};
SOURCE(13861, 19)
exp←v10780 = (shift←v10724 + 127);
SOURCE(13882, 341)
if ((shift←v10724 <= 23)) {
SOURCE(13904, 38)
{
word var←c22028;
word count←v17472;
count←v17472 = (23 - shift←v10724);
var←c22028 = (word) XRM←BITLSHIFT(c←v5904, count←v17472);
temp←v10752 = var←c22028;
};
}
else {
SOURCE(13953, 38)
{
word var←c22092;
word count←v16388;
count←v16388 = (shift←v10724 - 23);
var←c22092 = (word) XRM←BITRSHIFT(c←v5904, count←v16388);
temp←v10752 = var←c22092;
};
SOURCE(13993, 39)
{
word var←c22156;
word count←v17424;
count←v17424 = (32 - shift←v10724);
var←c22156 = (word) XRM←BITLSHIFT(c←v5904, count←v17424);
guard←v10808 = var←c22156;
};
SOURCE(14034, 189)
if (( (int)guard←v10808 < (int)0)) {
SOURCE(14071, 104)
if (( (int)guard←v10808 == (int)2147483648)) {
SOURCE(14116, 44)
temp←v10752 = (temp←v10752 + (word) XRM←BITAND(temp←v10752, 1));
}
else {
SOURCE(14160, 15)
temp←v10752 = (temp←v10752 + 1);
};
SOURCE(14177, 46)
exp←v10780 = (exp←v10780 + (word) XRM←BITRSHIFT(temp←v10752, 24));
};
};
SOURCE(14231, 69)
return(((word) XRM←BITAND(temp←v10752, mMask←v10836) + (exp←v10780 << 23)));
}
extern word XR←REAL32←Fix(c←v6008)
word c←v6008;
{
word var←c6052;
word exponent←v10880;
word newInt←v10908;
word neg0←v10936 = 2147483648;
/* SoftFix: */
SOURCE(14307, 630)
SOURCE(14372, 21)
exponent←v10880 = (((unsigned)c←v6008 << 1) >> 24);
SOURCE(14433, 41)
if ((c←v6008 == neg0←v10936) || (c←v6008 == 0)) {
SOURCE(14465, 9)
return(0);
};
SOURCE(14476, 66)
if ((exponent←v10880 == 255)) {
SOURCE(14504, 38)
return((word) RaiseFloatError←P1920(1));
};
SOURCE(14544, 73)
if ((exponent←v10880 > 158)) {
SOURCE(14574, 43)
return((word) RaiseFloatError←P1920(2));
};
SOURCE(14619, 36)
if ((exponent←v10880 < 127)) {
SOURCE(14646, 9)
return(0);
};
SOURCE(14657, 62)
newInt←v10908 = ((( (((unsigned)c←v6008 << 16) >> 16) ) + (word) XRM←BITLSHIFT((((unsigned)c←v6008 << 9) >> 25), 16)) + 8388608);
SOURCE(14721, 155)
if ((exponent←v10880 >= 151)) {
{
word var←c22316;
word value←v17348;
word count←v17376;
value←v17348 = newInt←v10908;
count←v17376 = ((exponent←v10880 - 127) - 23);
var←c22316 = (word) XRM←BITLSHIFT(value←v17348, count←v17376);
newInt←v10908 = var←c22316;
};
}
else {
{
word var←c22380;
word value←v16312;
word count←v16340;
value←v16312 = newInt←v10908;
count←v16340 = (23 - (exponent←v10880 - 127));
var←c22380 = (word) XRM←BITRSHIFT(value←v16312, count←v16340);
newInt←v10908 = var←c22380;
};
};
SOURCE(14878, 59)
if (( (int)c←v6008 < (int)0)) {
return(INEG(newInt←v10908));
}
else {
return(newInt←v10908);
};
}
extern word XR←REAL32←Round(c←v6112)
word c←v6112;
{
word var←c6156;
word half←v10980 = 1056964608;
word abs←v11008;
word fix←v11036;
word flt←v11064;
word delta←v11092;
/* SoftRnd: */
SOURCE(14943, 430)
SOURCE(15072, 24)
abs←v11008 = ((c←v6112 << 1) >> 1);
SOURCE(15098, 25)
fix←v11036 = (word) XR←REAL32←Fix(abs←v11008);
SOURCE(15125, 26)
flt←v11064 = (word) XR←FloatInt(fix←v11036);
SOURCE(15153, 32)
delta←v11092 = (word) XR←RealSub(abs←v11008, flt←v11064);
if (( (int)delta←v11092 <= (int)half←v10980)) {
}
else {
if (( (int)delta←v11092 > (int)half←v10980)) {
SOURCE(15256, 13)
fix←v11036 = (fix←v11036 + 1);
}
else {
if (((fix←v11036 & 1) == 1)) {
SOURCE(15308, 13)
fix←v11036 = (fix←v11036 + 1);
};
};
};
SOURCE(15332, 27)
if ((abs←v11008 != c←v6112)) {
SOURCE(15348, 11)
fix←v11036 = INEG(fix←v11036);
};
SOURCE(15361, 12)
return(fix←v11036);
}
extern word XR←REAL32←Floor(c←v6216)
word c←v6216;
{
word var←c6260;
word temp←v11136;
/* SoftFloor: */
SOURCE(15379, 190)
SOURCE(15445, 41)
temp←v11136 = (word) XR←REAL32←Fix(c←v6216);
SOURCE(15488, 28)
{
word x5;
word x7;
if (((
x5 = c←v6216, *(float*)&x5
) >= (
x7 = (* (ptr) &fc6 ), *(float*)&x7
))) {
SOURCE(15503, 13)
return(temp←v11136);
};
};
SOURCE(15518, 51)
{
word x8;
if (((
x8 = c←v6216, *(float*)&x8
) == (float)(int)temp←v11136)) {
SOURCE(15535, 19)
return(temp←v11136);
}
else {
SOURCE(15554, 15)
return((temp←v11136 - 1));
};
};
}
extern word XR←REAL32←Ceiling(c←v6320)
word c←v6320;
{
word var←c6364;
word temp←v11180;
/* SoftCeiling: */
SOURCE(15575, 192)
SOURCE(15643, 41)
temp←v11180 = (word) XR←REAL32←Fix(c←v6320);
SOURCE(15686, 28)
{
word x9;
word x10;
if (((
x9 = c←v6320, *(float*)&x9
) <= (
x10 = (* (ptr) &fc6 ), *(float*)&x10
))) {
SOURCE(15701, 13)
return(temp←v11180);
};
};
SOURCE(15716, 51)
{
word x11;
if (((
x11 = c←v6320, *(float*)&x11
) == (float)(int)temp←v11180)) {
SOURCE(15733, 19)
return(temp←v11180);
}
else {
SOURCE(15752, 15)
return((temp←v11180 + 1));
};
};
}
extern word XR←RealNeg(a←v6424)
word a←v6424;
{
word var←c6468;
/* SoftNeg: */
SOURCE(15773, 198)
SOURCE(15838, 54)
if (((((unsigned)a←v6424 << 1) >> 24) == 255)) {
SOURCE(15863, 29)
return((word) RaiseFloatError←P1920(1));
};
SOURCE(15894, 77)
return((word) XRM←BITXOR(a←v6424, 2147483648));
}
extern word XR←RealAbs(a←v6528)
word a←v6528;
{
word var←c6572;
word c←v11252;
/* SoftAbs: */
SOURCE(15977, 249)
SOURCE(16117, 37)
c←v11252 = ((a←v6528 << 1) >> 1);
SOURCE(16156, 48)
if ((c←v11252 >= 2139095040)) {
SOURCE(16175, 29)
return((word) RaiseFloatError←P1920(1));
};
SOURCE(16206, 20)
return(c←v11252);
}
extern word XR←RealMin(a←v6632, b←v6660)
word a←v6632;
word b←v6660;
{
word var←c6704;
word neg0←v11296 = 2147483648;
word nanLow←v11324 = 2139095040;
/* RealMin: */
SOURCE(16232, 501)
SOURCE(16388, 28)
if ((a←v6632 == neg0←v11296)) {
SOURCE(16405, 11)
a←v6632 = 0;
};
SOURCE(16418, 28)
if ((b←v6660 == neg0←v11296)) {
SOURCE(16435, 11)
b←v6660 = 0;
};
SOURCE(16448, 98)
if (((word) XRM←BITAND(a←v6632, nanLow←v11324) == nanLow←v11324) || ((word) XRM←BITAND(b←v6660, nanLow←v11324) == nanLow←v11324)) {
SOURCE(16517, 29)
return((word) RaiseFloatError←P1920(1));
};
SOURCE(16548, 111)
if (( (int)(word) XRM←BITAND(a←v6632, b←v6660) < (int)0)) {
SOURCE(16592, 67)
if (( (int)a←v6632 > (int)b←v6660)) {
return(a←v6632);
}
else {
return(b←v6660);
};
};
SOURCE(16661, 72)
if (( (int)a←v6632 > (int)b←v6660)) {
SOURCE(16709, 15)
return(b←v6660);
}
else {
SOURCE(16724, 9)
return(a←v6632);
};
}
extern word XR←RealMax(a←v6764, b←v6792)
word a←v6764;
word b←v6792;
{
word var←c6836;
word neg0←v11368 = 2147483648;
word nanLow←v11396 = 2139095040;
/* RealMax: */
SOURCE(16739, 503)
SOURCE(16895, 28)
if ((a←v6764 == neg0←v11368)) {
SOURCE(16912, 11)
a←v6764 = 0;
};
SOURCE(16925, 28)
if ((b←v6792 == neg0←v11368)) {
SOURCE(16942, 11)
b←v6792 = 0;
};
SOURCE(16955, 98)
if (((word) XRM←BITAND(a←v6764, nanLow←v11396) == nanLow←v11396) || ((word) XRM←BITAND(b←v6792, nanLow←v11396) == nanLow←v11396)) {
SOURCE(17024, 29)
return((word) RaiseFloatError←P1920(1));
};
SOURCE(17055, 111)
if (( (int)(word) XRM←BITAND(a←v6764, b←v6792) < (int)0)) {
SOURCE(17099, 67)
if (( (int)a←v6764 > (int)b←v6792)) {
return(b←v6792);
}
else {
return(a←v6764);
};
};
SOURCE(17168, 74)
if (( (int)a←v6764 > (int)b←v6792)) {
SOURCE(17216, 16)
return(a←v6764);
}
else {
SOURCE(17232, 10)
return(b←v6792);
};
}
extern word XR←RealGt(r0←v6896, r1←v6924)
word r0←v6896;
word r1←v6924;
{
word var←c6968;
word neg0←v11440 = 2147483648;
word nanLow←v11468 = 2139095040;
/* SoftGt: */
SOURCE(17248, 486)
SOURCE(17404, 30)
if ((r0←v6896 == neg0←v11440)) {
SOURCE(17422, 12)
r0←v6896 = 0;
};
SOURCE(17436, 30)
if ((r1←v6924 == neg0←v11440)) {
SOURCE(17454, 12)
r1←v6924 = 0;
};
SOURCE(17468, 114)
if (((word) XRM←BITAND(r0←v6896, nanLow←v11468) == nanLow←v11468) || ((word) XRM←BITAND(r1←v6924, nanLow←v11468) == nanLow←v11468)) {
SOURCE(17541, 25)
{
word var←c22604;
var←c22604 = (word) RaiseFloatError←P1920(1);
};
SOURCE(17568, 14)
return(0);
};
SOURCE(17587, 95)
if (( (int)(word) XRM←BITAND(r0←v6896, r1←v6924) < (int)0)) {
SOURCE(17633, 49)
return(( (int)r0←v6896 < (int)r1←v6924));
};
SOURCE(17684, 50)
return(( (int)r0←v6896 > (int)r1←v6924));
}
extern word XR←RealGe(r0←v7028, r1←v7056)
word r0←v7028;
word r1←v7056;
{
word var←c7100;
word neg0←v11512 = 2147483648;
word nanLow←v11540 = 2139095040;
/* SoftGe: */
SOURCE(17740, 488)
SOURCE(17896, 30)
if ((r0←v7028 == neg0←v11512)) {
SOURCE(17914, 12)
r0←v7028 = 0;
};
SOURCE(17928, 30)
if ((r1←v7056 == neg0←v11512)) {
SOURCE(17946, 12)
r1←v7056 = 0;
};
SOURCE(17960, 114)
if (((word) XRM←BITAND(r0←v7028, nanLow←v11540) == nanLow←v11540) || ((word) XRM←BITAND(r1←v7056, nanLow←v11540) == nanLow←v11540)) {
SOURCE(18033, 25)
{
word var←c22636;
var←c22636 = (word) RaiseFloatError←P1920(1);
};
SOURCE(18060, 14)
return(0);
};
SOURCE(18079, 96)
if (( (int)(word) XRM←BITAND(r0←v7028, r1←v7056) < (int)0)) {
SOURCE(18125, 50)
return(( (int)r0←v7028 <= (int)r1←v7056));
};
SOURCE(18177, 51)
return(( (int)r0←v7028 >= (int)r1←v7056));
}
extern word XR←RealEq(r0←v7160, r1←v7188)
word r0←v7160;
word r1←v7188;
{
word var←c7232;
word neg0←v11584 = 2147483648;
word nanLow←v11612 = 2139095040;
/* SoftEq: */
SOURCE(18234, 389)
SOURCE(18390, 30)
if ((r0←v7160 == neg0←v11584)) {
SOURCE(18408, 12)
r0←v7160 = 0;
};
SOURCE(18422, 30)
if ((r1←v7188 == neg0←v11584)) {
SOURCE(18440, 12)
r1←v7188 = 0;
};
SOURCE(18454, 114)
if (((word) XRM←BITAND(r0←v7160, nanLow←v11612) == nanLow←v11612) || ((word) XRM←BITAND(r1←v7188, nanLow←v11612) == nanLow←v11612)) {
SOURCE(18527, 25)
{
word var←c22668;
var←c22668 = (word) RaiseFloatError←P1920(1);
};
SOURCE(18554, 14)
return(0);
};
SOURCE(18573, 50)
return(( (int)r0←v7160 == (int)r1←v7188));
}
static word SoftCmp←P1500(r0←v7292, r1←v7320)
word r0←v7292;
word r1←v7320;
{
word var←c7364;
word neg0←v11656 = 2147483648;
word nanLow←v11684 = 2139095040;
/* SoftCmp: */
SOURCE(18629, 682)
SOURCE(18806, 30)
if ((r0←v7292 == neg0←v11656)) {
SOURCE(18824, 12)
r0←v7292 = 0;
};
SOURCE(18838, 30)
if ((r1←v7320 == neg0←v11656)) {
SOURCE(18856, 12)
r1←v7320 = 0;
};
SOURCE(18870, 92)
if (((word) XRM←BITAND(r0←v7292, nanLow←v11684) == nanLow←v11684) || ((word) XRM←BITAND(r0←v7292, nanLow←v11684) == nanLow←v11684)) {
SOURCE(18941, 21)
return(3);
};
SOURCE(18964, 195)
if (( (int)(word) XRM←BITAND(r0←v7292, r1←v7320) < (int)0)) {
SOURCE(19012, 66)
if (( (int)r0←v7292 < (int)r1←v7320)) {
SOURCE(19062, 16)
return(2);
};
SOURCE(19080, 63)
if (( (int)r1←v7320 < (int)r0←v7292)) {
SOURCE(19130, 13)
return(0);
};
SOURCE(19145, 14)
return(1);
};
SOURCE(19164, 63)
if (( (int)r0←v7292 < (int)r1←v7320)) {
SOURCE(19214, 13)
return(0);
};
SOURCE(19229, 66)
if (( (int)r1←v7320 < (int)r0←v7292)) {
SOURCE(19279, 16)
return(2);
};
SOURCE(19297, 14)
return(1);
}
extern word XR←RealLt(r0←v7424, r1←v7452)
word r0←v7424;
word r1←v7452;
{
word var←c7496;
word neg0←v11728 = 2147483648;
word nanLow←v11756 = 2139095040;
/* SoftLt: */
SOURCE(19317, 486)
SOURCE(19473, 30)
if ((r0←v7424 == neg0←v11728)) {
SOURCE(19491, 12)
r0←v7424 = 0;
};
SOURCE(19505, 30)
if ((r1←v7452 == neg0←v11728)) {
SOURCE(19523, 12)
r1←v7452 = 0;
};
SOURCE(19537, 114)
if (((word) XRM←BITAND(r0←v7424, nanLow←v11756) == nanLow←v11756) || ((word) XRM←BITAND(r1←v7452, nanLow←v11756) == nanLow←v11756)) {
SOURCE(19610, 25)
{
word var←c22700;
var←c22700 = (word) RaiseFloatError←P1920(1);
};
SOURCE(19637, 14)
return(0);
};
SOURCE(19656, 95)
if (( (int)(word) XRM←BITAND(r0←v7424, r1←v7452) < (int)0)) {
SOURCE(19702, 49)
return(( (int)r0←v7424 > (int)r1←v7452));
};
SOURCE(19753, 50)
return(( (int)r0←v7424 < (int)r1←v7452));
}
extern word XR←RealLe(r0←v7556, r1←v7584)
word r0←v7556;
word r1←v7584;
{
word var←c7628;
word neg0←v11800 = 2147483648;
word nanLow←v11828 = 2139095040;
/* SoftLe: */
SOURCE(19809, 488)
SOURCE(19965, 30)
if ((r0←v7556 == neg0←v11800)) {
SOURCE(19983, 12)
r0←v7556 = 0;
};
SOURCE(19997, 30)
if ((r1←v7584 == neg0←v11800)) {
SOURCE(20015, 12)
r1←v7584 = 0;
};
SOURCE(20029, 114)
if (((word) XRM←BITAND(r0←v7556, nanLow←v11828) == nanLow←v11828) || ((word) XRM←BITAND(r1←v7584, nanLow←v11828) == nanLow←v11828)) {
SOURCE(20102, 25)
{
word var←c22732;
var←c22732 = (word) RaiseFloatError←P1920(1);
};
SOURCE(20129, 14)
return(0);
};
SOURCE(20148, 96)
if (( (int)(word) XRM←BITAND(r0←v7556, r1←v7584) < (int)0)) {
SOURCE(20194, 50)
return(( (int)r0←v7556 >= (int)r1←v7584));
};
SOURCE(20246, 51)
return(( (int)r0←v7556 <= (int)r1←v7584));
}
extern word XR←SignedPwr(base←v7688, exp←v7716)
word base←v7688;
word exp←v7716;
{
word var←c7760;
word p←v11872 = 1;
word b←v11900;
word e←v11928;
/* SignedPwr: */
SOURCE(20303, 528)
SOURCE(20392, 15)
b←v11900 = base←v7688;
SOURCE(20409, 14)
e←v11928 = exp←v7716;
SOURCE(20425, 163)
{
word var←c22764;
var←c22764 = b←v11900;
switch (var←c22764) {
case 0:
SOURCE(20445, 55)
if (( (int)e←v11928 <= (int)0)) {
SOURCE(20460, 40)
return((word) RaiseFloatError←P1920(5));
};
SOURCE(20503, 9)
return(0);
case 1:
SOURCE(20521, 9)
return(1);
case 4294967295:
SOURCE(20538, 50)
if ((0 != (e←v11928 & 1))) {
SOURCE(20563, 16)
return( (word) -1);
}
else {
SOURCE(20579, 9)
return(1);
};
default:
break;
};
};
SOURCE(20607, 23)
if (( (int)e←v11928 < (int)0)) {
SOURCE(20621, 9)
return(0);
};
SOURCE(20632, 176)
lab←L100064: ;
SOURCE(20646, 44)
if ((0 != (e←v11928 & 1))) {
SOURCE(20673, 7)
p←v11872 = IOP2( * , (int)p←v11872, (int)b←v11900);
SOURCE(20683, 7)
e←v11928 = (e←v11928 - 1);
};
SOURCE(20694, 114)
if (( (int)e←v11928 != (int)0)) {
SOURCE(20711, 7)
b←v11900 = IOP2( * , (int)b←v11900, (int)b←v11900);
SOURCE(20721, 7)
e←v11928 = IOP2( / , (int)e←v11928, (int)2);
}
else {
SOURCE(20739, 27)
if (( (int)base←v7688 != (int)0)) {
SOURCE(20757, 9)
return(p←v11872);
};
SOURCE(20768, 40)
return((word) RaiseFloatError←P1920(5));
};
goto lab←L100064;
/* c2c skipped dead code */
}
extern word XR←UnsignedPwr(base←v7820, exp←v7848)
word base←v7820;
word exp←v7848;
{
word var←c7892;
word p←v11972 = 1;
word b←v12000;
word e←v12028;
/* UnsignedPwr: */
SOURCE(20860, 331)
SOURCE(20955, 17)
b←v12000 = base←v7820;
SOURCE(20974, 15)
e←v12028 = exp←v7848;
SOURCE(20991, 177)
lab←L100067: ;
SOURCE(21005, 45)
if ((0 != (e←v12028 & 1))) {
SOURCE(21033, 7)
p←v11972 = (p←v11972 * b←v12000);
SOURCE(21043, 7)
e←v12028 = (e←v12028 - 1);
};
SOURCE(21054, 114)
if ((e←v12028 != 0)) {
SOURCE(21071, 7)
b←v12000 = (b←v12000 * b←v12000);
SOURCE(21081, 7)
e←v12028 = (e←v12028 >> 1);
}
else {
SOURCE(21099, 27)
if ((base←v7820 != 0)) {
SOURCE(21117, 9)
return(p←v11972);
};
SOURCE(21128, 40)
return((word) RaiseFloatError←P1920(5));
};
goto lab←L100067;
/* c2c skipped dead code */
}
extern word XR←RealPwr(base←v7952, exp←v7980)
word base←v7952;
word exp←v7980;
{
register ptr gf←c23116 = (ptr) &globalframe;
word var←c8024;
/* RealPwr: */
SOURCE(21221, 107)
SOURCE(21296, 32)
{
word pd12;
pd12 = (* (( (ptr) (* (( (ptr) gf←c23116)+62)/* var←c22924 */ ))+7) );
return((word) ( *( (fPt) ((* (ptr) pd12 ))))(base←v7952, exp←v7980, pd12));
};
}
static word SetExceptionFlag←P1860(which←v8268)
word which←v8268;
{
word fault←v8312;
/* SetExceptionFlag: */
SOURCE(21476, 335)
SOURCE(21476, 335)
fault←v8312 = 0;
SOURCE(21584, 227)
{
word var←c22956;
var←c22956 = which←v8268;
switch (var←c22956) {
case 0:
break;
case 1:
SOURCE(21623, 30)
fault←v8312 = (fault←v8312 & 4294967287) | (((1)) << 3);
break;
case 2:
SOURCE(21667, 22)
fault←v8312 = (fault←v8312 & 4294967293) | (((1)) << 1);
break;
case 3:
SOURCE(21704, 23)
fault←v8312 = (fault←v8312 & 4294967294) | ((1));
break;
case 4:
SOURCE(21742, 28)
fault←v8312 = (fault←v8312 & 4294967291) | (((1)) << 2);
break;
case 5:
SOURCE(21781, 30)
fault←v8312 = (fault←v8312 & 4294967287) | (((1)) << 3);
break;
default:
SOURCE(21824, 5)
(void) XR←RaiseUnnamedError();
break;
};
};
SOURCE(21476, 335)
return(fault←v8312);
}
static word RaiseFloatError←P1920(kind←v8372)
word kind←v8372;
{
register ptr gf←c23148 = (ptr) &globalframe;
word var←c8416;
word var←c23020;
W2 var←c0289;
word var←c0290;
/* RaiseFloatError: */
SOURCE(21835, 190)
SOURCE(21900, 37)
(* (( (ptr) gf←c23148)+4)/* floatErrorCount←v4120 */ ) = ((* (( (ptr) gf←c23148)+4)/* floatErrorCount←v4120 */ ) + 1);
SOURCE(21939, 63)
var←c23020 = (word) SetExceptionFlag←P1860(kind←v8372);
(* (ptr) (word) &var←c0289 ) = var←c23020;
(* (( (ptr) (word) &var←c0289) + 1) ) = 0;
(void) (XR←RaiseSignal((* (( (ptr) (* (( (ptr) gf←c23148)+63)/* var←c22988 */ ))+11) ), (word) &var←c0290, (word) &var←c0289)
);
if ((0 != var←c0290)) {
SOURCE(22002, 5)
(void) XR←RaiseUnnamedError();
};
SOURCE(22009, 16)
return(0);
}
static word GetStickyFlags←P1980()
{
register ptr gf←c23180 = (ptr) &globalframe;
word var←c8476;
/* GetStickyFlags: */
SOURCE(22031, 79)
SOURCE(22086, 24)
return((* (( (ptr) gf←c23180)+5)/* floatErrorFlags←v4148 */ ));
}
static word SetStickyFlags←P2040(new←v8536)
word new←v8536;
{
register ptr gf←c23212 = (ptr) &globalframe;
word old←v8580;
/* SetStickyFlags: */
SOURCE(22116, 151)
SOURCE(22116, 151)
old←v8580 = 0;
SOURCE(22223, 21)
old←v8580 = (* (( (ptr) gf←c23212)+5)/* floatErrorFlags←v4148 */ );
SOURCE(22246, 21)
(* (( (ptr) gf←c23212)+5)/* floatErrorFlags←v4148 */ ) = new←v8536;
SOURCE(22116, 151)
return(old←v8580);
}
/* file: FloatOpsImpl, module: FloatOpsImpl, compiled at: February 21, 1992 11:53:27 pm PST */
extern void XR←install←FloatOpsImpl() {
NoName←Q5268();
}
extern void XR←run←FloatOpsImpl() { XR←Start(&globalframe); }