/* 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); }