/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1992 by Xerox Corporation.  All rights reserved. */
/* time: February 21, 1992 9:06:32 pm PST */
/* C2C version: October 16, 1990 (native) */
/* ref-counting: off */
/* file: FloatingPointSoftImpl, module: FloatingPointSoftImpl */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [20138444,369228289] FloatingPointSoftImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
#define SOURCE(p, l) /* source p, l */
static void NoName←Q420();
static void FloatingPointSoftImpl←P0();
static word SetState←P60();
static void FloatingSignalHandler←P120();
static word SupportedExceptionErrors←P180();
static word SupportedStickyFlags←P240();
static word GetStickyFlags←P300();
static word SetStickyFlags←P360();
static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\001\063\111\314\300\026\001\372\001\100\150\000\000"};
static struct {unsigned f; char r[16];} string2 = {851984, "\257\300\150\261\123\070\300\276\161\220\062\100\150\000\000"};
static struct {unsigned f; char r[16];} string3 = {851984, "\257\300\161\243\131\157\300\276\230\231\046\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[2]; 
   } globalframe = {
   {0}, (word) SetStickyFlags←P360, 0, (word) GetStickyFlags←P300, 
   0, (word) SupportedStickyFlags←P240, 0, (word) SupportedExceptionErrors←P180, 
   0, (word) FloatingSignalHandler←P120, 0, (word) SetState←P60, 
   0, (word) FloatingPointSoftImpl←P0, {0}
   };

static void NoName←Q420()
   {
   register ptr gf←c024 =  (ptr) &globalframe;
   word var←c3976;
   (void) XR←DeclareGlobalFrame((word) "FloatingPointSoftImpl", &globalframe, (word) XR←GetTypeIndexS((word) (&string1)), (word) (
         ( (bPt) gf←c024)+72)/* var←c3912 */ );
   var←c3976 = (word) XR←ExportInterface((word) "FloatingPointCommon", (word) XR←GetTypeIndexS((word) (&string2)), 5);
   (* (( (ptr) gf←c024)+20)/* var←c3944 */  ) = var←c3976;
   (void) XR←ExportVar(var←c3976, 0, (word) (( (bPt) gf←c024)+20)/* var←c3688 */ );
   (void) XR←ExportProcS(var←c3976, (word) (( (bPt) gf←c024)+48)/* var←c3816 */ , 67109120);
   (void) XR←ExportProcS(var←c3976, (word) (( (bPt) gf←c024)+40)/* var←c3784 */ , 67109376);
   (void) XR←ExportProcS(var←c3976, (word) (( (bPt) gf←c024)+32)/* var←c3752 */ , 67109632);
   (void) XR←ExportProcS(var←c3976, (word) (( (bPt) gf←c024)+24)/* var←c3720 */ , 67372033);
   var←c3976 = (word) XR←ExportInterface((word) "FloatingPointPrivate", (word) XR←GetTypeIndexS((word) (&string3)), 2);
   (* (( (ptr) gf←c024)+20)/* var←c3944 */  ) = var←c3976;
   (void) XR←ExportVar(var←c3976, 0, (word) (( (bPt) gf←c024)+16)/* currentState←v2436 */ );
   (void) XR←ExportProcS(var←c3976, (word) (( (bPt) gf←c024)+64)/* var←c3880 */ , 67371265);
   }

static void FloatingPointSoftImpl←P0(formal←c013, formal←c012)
   word formal←c013;
   word formal←c012;
   {
   /* FloatingPointSoftImpl: */ 
   }

static word SetState←P60(new←v2740)
   word new←v2740;
   {
   register ptr gf←c4008 =  (ptr) &globalframe;
   word old←v2784;
   /* SetState: */ 
SOURCE(244, 118)
SOURCE(320, 18)
   old←v2784 = (* (( (ptr) gf←c4008)+4)/* currentState←v2436 */  );
SOURCE(340, 22)
   (* (( (ptr) gf←c4008)+4)/* currentState←v2436 */  ) = 0;
SOURCE(244, 118)
   return(old←v2784);
   }

static void FloatingSignalHandler←P120(code←v3516)
   word code←v3516;
   {
   register ptr gf←c4040 =  (ptr) &globalframe;
   /* FloatingSignalHandler: */ 
SOURCE(430, 73)
SOURCE(486, 17)
   {
      word var←c017;
      var←c017 = code←v3516;
      (void) XR←RaiseError((word) (( (bPt) gf←c4040)+20)/* var←c3688 */ , (word) &var←c017);
      };
   }

static word SupportedExceptionErrors←P180()
   {
   register ptr gf←c4072 =  (ptr) &globalframe;
   word var←c2964;
   word flags←v3216 = 0;
   /* SupportedExceptionErrors: */ 
SOURCE(554, 241)
SOURCE(659, 117)
   if (((* (( (ptr) gf←c4072)+4)/* currentState←v2436 */  ) != 0)) {
SOURCE(692, 30)
      flags←v3216 = (flags←v3216 & 4294967263) | (((1)) << 5);
SOURCE(724, 22)
      flags←v3216 = (flags←v3216 & 4294967279) | (((1)) << 4);
SOURCE(748, 28)
      flags←v3216 = (flags←v3216 & 4294967287) | (((1)) << 3);
      };
SOURCE(781, 14)
   return(flags←v3216);
   }

static word SupportedStickyFlags←P240()
   {
   word var←c3024;
   /* SupportedStickyFlags: */ 
SOURCE(800, 84)
SOURCE(863, 21)
   return(0);
   }

static word GetStickyFlags←P300()
   {
   word var←c3084;
   /* GetStickyFlags: */ 
SOURCE(890, 78)
SOURCE(947, 21)
   return(0);
   }

static word SetStickyFlags←P360(new←v3144)
   word new←v3144;
   {
   word old←v3188;
   /* SetStickyFlags: */ 
SOURCE(974, 120)
SOURCE(974, 120)
   old←v3188 = 0;
SOURCE(1073, 21)
   return(0);
   }

/* file: FloatingPointSoftImpl, module: FloatingPointSoftImpl, compiled at: February 21, 1992 9:06:32 pm PST */ 
extern void XR←install←FloatingPointSoftImpl() {
   NoName←Q420();
   }
extern void XR←run←FloatingPointSoftImpl() { XR←Start(&globalframe); }