/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1993 by Xerox Corporation.  All rights reserved. */
/* time: September 3, 1993 1:40:37 pm PDT */
/* C2C version: April 20, 1993 (sun4) */
/* ref-counting: off */
/* file: SignalsImpl, module: SignalsImpl */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [2861308617,621285829] SignalsImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8;
typedef struct {word f0, f1, f2;} W3;
typedef struct {W8 f; W3 r;} W11;
typedef struct {W8 f; word r;} W9;
typedef struct {word f0, f1, f2, f3, f4, f5, f6;} W7;
typedef W7 *W7Pt;
typedef word (*fPt)();
typedef struct {word f0, f1;} W2;
typedef W2 *W2Pt;
typedef struct {word f0, f1, f2, f3, f4;} W5;
typedef W5 *W5Pt;
#define SOURCE(p, l) /* source p, l */
#define SGNCK(i) ((int) (word) (i) < 0 ? XR←RaiseArithmeticFault(): i )
static void NoName←Q1344();
static void SignalsImpl←P0();
static void InformationalSignal←P60();
static word RegisterUncaughtSignalHandler←P120();
static void InitialUCSHandler←P180();
static word RegisterSignalSpy←P240();
static void SignalHandler←P300();
static word NoName←Q1404();
static word NoName←Q1464();
static word Parent←P360();
static word WarmestHandler←P420();
extern void XR←MesaUnwinder();
static word NoName←Q1524();
static word NoName←Q1584();
extern void XR←RaiseError();
extern void XR←RaiseSignal();
extern word XR←RaiseUnnamedError();
extern word XR←RaiseArithmeticFault();
extern word XR←RaiseBoundsFault();
extern void XR←RaiseAbstractionFault();
extern void XR←SetupPushHandler();
extern word XR←PushAllocedHandler();
extern void XR←PopHandler();
static void GetStatistics←P1080();
static void Initialize←P1140();
static void NoName←Q1644();
static void NoName←Q1704();
static void NoName←Q1764();
static void NoName←Q1824();
static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\252\214\032\311\300\045\010\021\305\101\210\000\000"};
static struct {unsigned f; char r[16];} string2 = {851984, "\257\300\252\214\032\311\300\045\010\021\305\101\224\000\000"};
static struct {unsigned f; char r[4];} string3 = {131074, "\003\006\000"};
static struct {unsigned f; char r[16];} string4 = {851984, "\257\300\252\214\032\311\300\045\010\021\305\103\054\000\000"};
static struct {unsigned f; char r[16];} string5 = {851984, "\257\300\252\214\032\311\300\045\010\021\305\101\020\000\000"};
static struct {unsigned f; char r[16];} string6 = {851984, "\257\300\252\214\032\311\300\045\010\021\305\100\164\000\000"};
static struct {unsigned f; char r[12];} string7 = {1383427700, "imeError"};
static struct {unsigned f; char r[16];} string8 = {851984, "\257\300\275\320\070\317\300\004\110\363\366\100\150\000\000"};
static struct {unsigned f; char r[16];} string9 = {851984, "\257\300\152\271\236\047\300\356\300\232\317\100\150\000\000"};
static struct {unsigned f; char r[16];} string10 = {851984, "\257\300\271\157\307\223\300\377\102\316\202\100\150\000\000"};
static struct {
   word f0[18]; 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[3]; 
   } globalframe = {
   {0}, (word) Initialize←P1140, 0, (word) GetStatistics←P1080, 
   0, (word) XR←PopHandler, 0, (word) XR←PushAllocedHandler, 
   0, (word) XR←SetupPushHandler, 0, (word) XR←RaiseAbstractionFault, 
   0, (word) XR←RaiseBoundsFault, 0, (word) XR←RaiseArithmeticFault, 
   0, (word) XR←RaiseUnnamedError, 0, (word) XR←RaiseSignal, 
   0, (word) XR←RaiseError, 0, (word) XR←MesaUnwinder, 
   0, (word) WarmestHandler←P420, 0, (word) Parent←P360, 
   0, (word) SignalHandler←P300, 0, (word) RegisterSignalSpy←P240, 
   0, (word) InitialUCSHandler←P180, 0, (word) RegisterUncaughtSignalHandler←P120, 
   0, (word) InformationalSignal←P60, 0, (word) SignalsImpl←P0, 
   {0}
   };
#include <xr/Threads.h>
typedef struct {fPt p; word c;} ProcDescBody;
extern word XR←Enable(body, handler, context)
   fPt body;
   fPt handler;
   ptr context;
   {
   word rtnCode;
   ptr beforeCall;
   ProcDescBody pdDescBody;
   ProcDescBody unwindDescBody;
   word catchSpace[7];
   struct XR←JmpBufRep jmpBuf;
   word unwindSpace[4];
   pdDescBody.p = handler;
   pdDescBody.c = 1;
   unwindDescBody.p = (fPt) XR←MesaUnwinder;
   unwindDescBody.c = (word) catchSpace;
   beforeCall = (ptr) XR←GetDynamicEnvironment();
   XR←SetupPushHandler(context, &pdDescBody, catchSpace, unwindSpace, &unwindDescBody, &jmpBuf);
   rtnCode = XR←setjmp(&jmpBuf);
   if (rtnCode == 0) rtnCode = body(context);
   {      /* INLINE version of XR←PopHandler, no stats */ 
      ptr curr = (ptr) XR←GetDynamicEnvironment();
      ptr prev = (ptr) *((ptr) *curr);
      if (beforeCall != prev) XR←RaiseError(0,0);
      XR←SetDynamicEnvironment(prev);
      };
   return (rtnCode);
   }
extern word XR←UnwindFrameKey;
static word XR←GetUnwindFrameKey()
   {
   return( XR←UnwindFrameKey );
   }
typedef struct {
  int  *unixTrapHandler;
  unsigned aborted;
  unsigned abstractionFault;
  unsigned arithmeticFault;
  unsigned assignRefCompositeFault;
  unsigned boundsFault;
  unsigned divideCheck;
  unsigned invalidProcess;
  unsigned linkageFault;
  unsigned narrowFault;
  unsigned narrowRefFault;
  unsigned nestedProcFault;
  unsigned nilFault;
  unsigned resumeFault;
  unsigned sendMsg;
  unsigned stackFault;
  unsigned startFault;
  unsigned unboundProcedureFault;
  unsigned uncaught;
  unsigned unnamedError;
  unsigned unnamedSignal;
  unsigned Unwind;
  unsigned unwindFault;
  unsigned zeroDivisor;
  } SignalEnvironmentObject;
typedef SignalEnvironmentObject *SignalEnvironment;
unsigned XR←UnnamedSignal;
unsigned XR←UnnamedError;
unsigned XR←Unwind;
unsigned XR←Aborted;
unsigned XR←Uncaught;
unsigned XR←NarrowFault;
unsigned XR←NarrowRefFault;
unsigned XR←InvalidProcess;
SignalEnvironment XR←SigEnv;
static void XR←SetSignalEnvironment(env)
   SignalEnvironment env;
   {
   XR←SigEnv = env;
   XR←UnnamedError = env-> unnamedError;
   XR←UnnamedSignal = env->unnamedSignal;
   XR←Unwind = env->Unwind;
   XR←Aborted = env->aborted;
   XR←Uncaught = env->uncaught;
   XR←NarrowFault = env->narrowFault;
   XR←NarrowRefFault = env->narrowRefFault;
   XR←InvalidProcess = env->invalidProcess;
   }

static void NoName←Q1344()
   {
   register ptr gf←c0133 =  (ptr) &globalframe;
   word var←c15188;
   (* (( (ptr) gf←c0133)+12) ) = (word) XR←GetTypeIndexS((word) (&string1));
   (* (( (ptr) gf←c0133)+13) ) = (word) XR←GetTypeIndex((word) &string2, 0, (word) &string3);
   (* (( (ptr) gf←c0133)+14) ) = (word) XR←GetTypeIndexS((word) (&string4));
   (* (( (ptr) gf←c0133)+15) ) = (word) XR←GetTypeIndexS((word) (&string5));
   (void) XR←DeclareGlobalFrame((word) "SignalsImpl", &globalframe, (word) XR←GetTypeIndexS((word) (&string6)), (word) (( (bPt) gf←c0133)+224)
      /* var←c14676 */ );
   var←c15188 = (word) XR←ImportInterface((word) &string7, (word) XR←GetTypeIndexS((word) (&string8)), 27);
   (* (( (ptr) gf←c0133)+58)/* var←c14740 */  ) = var←c15188;
   var←c15188 = (word) XR←ExportInterface((word) "PortableCedarRuntimeSupport", (word) XR←GetTypeIndexS((word) (&string9)), 77)
   ;
   (* (( (ptr) gf←c0133)+59)/* var←c15220 */  ) = var←c15188;
   (void) XR←ExportProcS(var←c15188, (word) (( (bPt) gf←c0133)+88)/* var←c14132 */ , 9728, (word) "PopHandler");
   (void) XR←ExportProcS(var←c15188, (word) (( (bPt) gf←c0133)+144)/* var←c14356 */ , 796419, (word) "RaiseSignal");
   (void) XR←ExportProcS(var←c15188, (word) (( (bPt) gf←c0133)+152)/* var←c14388 */ , 534530, (word) "RaiseError");
   (void) XR←ExportProcS(var←c15188, (word) (( (bPt) gf←c0133)+120)/* var←c14260 */ , 67121152, (word) "RaiseBoundsFault");
   (void) XR←ExportProcS(var←c15188, (word) (( (bPt) gf←c0133)+128)/* var←c14292 */ , 67121408, (word) "RaiseArithmeticFault")
   ;
   (void) XR←ExportProcS(var←c15188, (word) (( (bPt) gf←c0133)+112)/* var←c14228 */ , 12800, (word) "RaiseAbstractionFault")
   ;
   var←c15188 = (word) XR←ExportInterface((word) &string7, (word) XR←GetTypeIndexS((word) (&string8)), 27);
   (* (( (ptr) gf←c0133)+59)/* var←c15220 */  ) = var←c15188;
   (void) XR←ExportProcS(var←c15188, (word) (( (bPt) gf←c0133)+208)/* var←c14612 */ , 67377153, (word) "RegisterUncaughtSignalHandler")
   ;
   (void) XR←ExportProcS(var←c15188, (word) (( (bPt) gf←c0133)+216)/* var←c14644 */ , 268545, (word) "InformationalSignal");
   var←c15188 = (word) XR←ExportInterface((word) "SignalStatistics", (word) XR←GetTypeIndexS((word) (&string10)), 2);
   (* (( (ptr) gf←c0133)+59)/* var←c15220 */  ) = var←c15188;
   (void) XR←ExportProcS(var←c15188, (word) (( (bPt) gf←c0133)+80)/* var←c14100 */ , 335544320, (word) "GetStatistics");
   (void) XR←ExportProcS(var←c15188, (word) (( (bPt) gf←c0133)+192)/* var←c14548 */ , 67371265, (word) "RegisterSignalSpy");
   }

static void SignalsImpl←P0(formal←c039, formal←c038)
   word formal←c039;
   word formal←c038;
   {
   register ptr gf←c15252 =  (ptr) &globalframe;
   /* SignalsImpl: */ 
SOURCE(73, 15251)
SOURCE(273, 52)
   (* (( (ptr) gf←c15252)+4)/* ucsHandler←v2524 */  ) = (word) (( (bPt) gf←c15252)+200)/* var←c14580 */ ;
SOURCE(6970, 42)
   (* (( (ptr) gf←c15252)+6)/* UnwindFrameKey←v3168 */  ) = (word) XR←GetUnwindFrameKey();
SOURCE(15312, 12)
   (void) Initialize←P1140();
   }

static void InformationalSignal←P60(signal←v4436)
   word signal←v4436;
   {
   /* InformationalSignal: */ 
SOURCE(424, 104)
SOURCE(491, 37)
   (void) SignalHandler←P300(signal←v4436, 0, 0, 1);
   }

static word RegisterUncaughtSignalHandler←P120(proc←v4512)
   word proc←v4512;
   {
   register ptr gf←c15284 =  (ptr) &globalframe;
   word old←v4556;
   /* RegisterUncaughtSignalHandler: */ 
SOURCE(534, 159)
SOURCE(534, 159)
   old←v4556 = 0;
SOURCE(658, 16)
   old←v4556 = XR←CheckProc(* (( (ptr) gf←c15284)+4)/* ucsHandler←v2524 */  );
SOURCE(676, 17)
   (* (( (ptr) gf←c15284)+4)/* ucsHandler←v2524 */  ) = XR←CheckProc(proc←v4512);
SOURCE(534, 159)
   return(old←v4556);
   }

static void InitialUCSHandler←P180(msg←v11316, signal←v11344, frame←v11372)
   word msg←v11316;
   word signal←v11344;
   word frame←v11372;
   {
   /* InitialUCSHandler: */ 
SOURCE(699, 59)
SOURCE(743, 15)
   (void) XR←CallDebugger(5);
   }

static word RegisterSignalSpy←P240(new←v4632)
   word new←v4632;
   {
   register ptr gf←c15316 =  (ptr) &globalframe;
   word old←v4692;
   /* RegisterSignalSpy: */ 
SOURCE(939, 111)
SOURCE(939, 111)
   old←v4692 = 0;
SOURCE(1018, 15)
   old←v4692 = XR←CheckProc(* (( (ptr) gf←c15316)+5)/* signalSpy←v2748 */  );
SOURCE(1035, 15)
   (* (( (ptr) gf←c15316)+5)/* signalSpy←v2748 */  ) = XR←CheckProc(new←v4632);
SOURCE(939, 111)
   return(old←v4692);
   }

static void SignalHandler←P300(sig←v4768, formal←c0170, formal←c0171, formal←c0172)
   word sig←v4768;
   word formal←c0170;
   word formal←c0171;
   word formal←c0172;
   {
   W11 var←c15348;
   /* declaration of arg←v4796 skipped */ 
   /* declaration of rtns←v4824 skipped */ 
   /* declaration of informational←v4852 skipped */ 
   register ptr gf←c15380 =  (ptr) &globalframe;
   /* declaration of action←v9548 skipped */ 
   /* declaration of catchProc←v9576 skipped */ 
   word warmestHandler←v9604 = 0;
   W9 selfObj←v9632;
   /* declaration of self←v9660 skipped */ 
   /* declaration of exitTo←v9688 skipped */ 
   word spy←v9716;
   (* (( (ptr) &var←c15348)+4)/* arg←v4796 */  ) = formal←c0170;
   (* (( (ptr) &var←c15348)+5)/* rtns←v4824 */  ) = formal←c0171;
   (* (( (ptr) &var←c15348)+6)/* informational←v4852 */  ) = formal←c0172;
   /* SignalHandler: */ 
SOURCE(1056, 2020)
SOURCE(1191, 23)
   (* (( (ptr) &var←c15348)+8)/* catchProc←v9576 */  ) = 0;
SOURCE(1251, 34)
   XR←FillWords(&(* (W7Pt) ((( (ptr) &selfObj←v9632)+1))), 7, 0);
   (*  (ptr) &selfObj←v9632 ) = 4278255360;
   (* (( (ptr) &selfObj←v9632)+8) ) = 4279369489;
SOURCE(1287, 41)
   (* (( (ptr) &var←c15348)+9)/* self←v9660 */  ) = (word) &selfObj←v9632;
SOURCE(1343, 21)
   spy←v9716 = (* (( (ptr) gf←c15380)+5)/* signalSpy←v2748 */  );
SOURCE(1366, 23)
   if ((spy←v9716 != 0)) {
SOURCE(1384, 5)
      (void) ( *( (fPt) ((*  (ptr) spy←v9716 ))))(spy←v9716);
      };
SOURCE(1391, 17)
   (* (( (ptr) (* (( (ptr) &var←c15348)+9)/* self←v9660 */  ))+2) ) = sig←v4768;
SOURCE(1418, 1658)
SOURCE(1418, 1658)
SOURCE(1431, 17)
   (* (( (ptr) (* (( (ptr) &var←c15348)+9)/* self←v9660 */  ))+7) ) = 0;
SOURCE(1450, 33)
   warmestHandler←v9604 = (word) WarmestHandler←P420();
SOURCE(1511, 22)
   (* (( (ptr) (* (( (ptr) &var←c15348)+9)/* self←v9660 */  ))+1) ) = warmestHandler←v9604;
SOURCE(1535, 23)
   (* (( (ptr) (* (( (ptr) &var←c15348)+9)/* self←v9660 */  ))+4) ) = (* (( (ptr) (* (( (ptr) &var←c15348)+9)/* self←v9660 */  ))+1)
    );
SOURCE(1560, 1089)
   lab←L100002: ;
   if ( ( ((* (( (ptr) (* (( (ptr) &var←c15348)+9)/* self←v9660 */  ))+4) ) != (* (( (ptr) (* (( (ptr) &var←c15348)+9)/* self←v9660 */  ))+5)
    )) ? (0 == (* (( (ptr) (* (( (ptr) &var←c15348)+9)/* self←v9660 */  ))+7) )) : 0 ) ) {
      }
   else {
      goto lab←L100000;
      };
   {
      word thisSignaller←v9776 = 0;
SOURCE(1641, 36)
      (* (( (ptr) (* (( (ptr) &var←c15348)+9)/* self←v9660 */  ))+3) ) = (* (( (ptr) (* (( (ptr) &var←c15348)+9)/* self←v9660 */  ))+4)
       );
SOURCE(1679, 49)
      thisSignaller←v9776 = (* (( (ptr) (* (( (ptr) (* (( (ptr) &var←c15348)+9)/* self←v9660 */  ))+3) ))+6) );
SOURCE(1730, 280)
      if ((thisSignaller←v9776 != 0)) {
SOURCE(1760, 144)
         if (((* (( (ptr) (* (( (ptr) &var←c15348)+9)/* self←v9660 */  ))+2) ) != (* (( (ptr) thisSignaller←v9776)+2) ))) {
SOURCE(1802, 44)
            (* (( (ptr) (* (( (ptr) &var←c15348)+9)/* self←v9660 */  ))+4) ) = (word) Parent←P360((* ((( (ptr) (* (( (ptr) &var←c15348)+9)
                  /* self←v9660 */  ))+3)) ));
            }
         else {
SOURCE(1857, 47)
            (* (( (ptr) (* (( (ptr) &var←c15348)+9)/* self←v9660 */  ))+4) ) = (* (( (ptr) thisSignaller←v9776)+4) );
            };
         }
      else {
SOURCE(1966, 44)
         (* (( (ptr) (* (( (ptr) &var←c15348)+9)/* self←v9660 */  ))+4) ) = (word) Parent←P360((* ((( (ptr) (* (( (ptr) &var←c15348)+9)
               /* self←v9660 */  ))+3)) ));
         };
SOURCE(2016, 633)
      (* (( (ptr) &var←c15348)+8)/* catchProc←v9576 */  ) = (* (( (ptr) (* (( (ptr) (* (( (ptr) &var←c15348)+9)/* self←v9660 */  ))+3)
          ))+4) );
      if (((* (( (ptr) &var←c15348)+8)/* catchProc←v9576 */  ) != 0)) {
SOURCE(2075, 574)
         {
            word var←c05;
            {
               word var←c0158;
               var←c0158 = (word) &var←c15348;
               var←c05 = (word) XR←Enable(( ((word)  (fPt) NoName←Q1404) ), ( ((word)  (fPt) NoName←Q1764) ), var←c0158);
               };
            if ((var←c05 == 1)) {
               goto lab←L03;
               };
            };
         };
      };
   goto lab←L100002;
   lab←L100000: ;
   if ((0 != (* (( (ptr) (* (( (ptr) &var←c15348)+9)/* self←v9660 */  ))+7) ))) {
      }
   else {
      if ((0 != (* (( (ptr) &var←c15348)+6)/* informational←v4852 */  )) || ((* (( (ptr) (* (( (ptr) &var←c15348)+9)/* self←v9660 */  ))+2)
       ) == XR←Uncaught)) {
         }
      else {
SOURCE(2777, 181)
SOURCE(2835, 51)
         {
            W2 var←c060;
            (*  (ptr) (word) &var←c060 ) = (* (( (ptr) (* (( (ptr) &var←c15348)+9)/* self←v9660 */  ))+2) );
            (* (( (ptr) (word) &var←c060) + 1) ) = (* (( (ptr) &var←c15348)+4)/* arg←v4796 */  );
            (void) (XR←RaiseSignal(XR←Uncaught, 0, (word) &var←c060));
            };
SOURCE(2896, 59)
SOURCE(2897, 58)
         {
            word pd11;
            pd11 = (* (( (ptr) gf←c15380)+4)/* ucsHandler←v2524 */  );
            (void) ( *( (fPt) ((*  (ptr) pd11 ))))((* (( (ptr) &var←c15348)+4)/* arg←v4796 */  ), (* (( (ptr) (* (( (ptr) &var←c15348)+9)
                  /* self←v9660 */  ))+2) ), 0, pd11);
            };
         };
      };
SOURCE(2962, 111)
   if ((0 != (* (( (ptr) (* (( (ptr) &var←c15348)+9)/* self←v9660 */  ))+7) ))) {
SOURCE(2983, 26)
      (void) XR←UnwindTo((* ((( (ptr) (* (( (ptr) &var←c15348)+9)/* self←v9660 */  ))+5)) ));
SOURCE(3011, 62)
      {
         word var←c14836;
         var←c14836 = (word) XR←GetNextHandlee(0);
         {
            word idx12;
            (void) XR←RestartHandlee(( XR←Thread ) var←c14836, ( XR←JmpBuf ) (* (( (ptr) (* (( (ptr) (* (( (ptr) &var←c15348)+9)/* self←v9660 */  ))+5)
                   ))+3) ), ( unsigned ) (
                  idx12 = (* (( (ptr) &var←c15348)+10)/* exitTo←v9688 */  ),
                  SGNCK(idx12)
                  ));
            };
         };
      };
   lab←L03: ;
   return;
   }

static word NoName←Q1404(formal←c0138)
   word formal←c0138;
   {
   W8 var←c0165;
   var←c0165.f0 = formal←c0138;
SOURCE(2245, 42)
   {
      word hotHandler←v9820;
SOURCE(2245, 42)
      hotHandler←v9820 = (word) WarmestHandler←P420();
SOURCE(2289, 32)
      (* (( (ptr) hotHandler←v9820)+6) ) = (* (( (ptr) formal←c0138)+9) );
SOURCE(2323, 175)
SOURCE(2323, 175)
      {
         W2 var←c14772;
         {
            /* declaration of var←c01 skipped */ 
            /* declaration of var←c02 skipped */ 
            var←c0165.f4/* var←c01 */  = (* (( (ptr) (* (( (ptr) (* (( (ptr) formal←c0138)+9) ))+3) ))+5) );
            var←c0165.f5/* var←c02 */  = (* (( (ptr) (* (( (ptr) formal←c0138)+9) ))+2) );
            {
               /* declaration of var←c03 skipped */ 
               {
                  word var←c04;
                  {
                     word var←c0159;
                     var←c0159 = (word) &var←c0165;
                     var←c04 = (word) XR←Enable(( ((word)  (fPt) NoName←Q1464) ), ( ((word)  (fPt) NoName←Q1824) ), var←c0159);
                     };
                  if ((var←c04 == 2)) {
                     goto lab←L100006;
                     };
                  };
               var←c14772 = (*  (W2Pt) (( (ptr) &var←c0165)+6)/* var←c03 */  );
               };
            };
         (* (( (ptr) formal←c0138)+10) ) = var←c14772.f1;
         (* (( (ptr) formal←c0138)+7) ) = var←c14772.f0;
         };
      lab←L100006: ;
SOURCE(2502, 147)
      {
         word var←c14804;
         var←c14804 = (* (( (ptr) formal←c0138)+7) );
         switch (var←c14804) {
            case 0: 
               break;
            case 1: 
SOURCE(2550, 7)
               return(1);
            case 2: 
SOURCE(2568, 81)
               if ((0 == (* (( (ptr) formal←c0138)+6) ))) {
SOURCE(2593, 27)
                  (* (( (ptr) (* (( (ptr) formal←c0138)+9) ))+5) ) = (* (( (ptr) (* (( (ptr) formal←c0138)+9) ))+3) );
SOURCE(2622, 16)
                  (* (( (ptr) (* (( (ptr) formal←c0138)+9) ))+7) ) = 1;
SOURCE(2640, 9)
                  (* (( (ptr) formal←c0138)+4) ) = 0;
                  };
               break;
            };
         };
      };
   return(0);
   }

static word NoName←Q1464(formal←c0139)
   word formal←c0139;
   {
SOURCE(2323, 175)
   {
      word pd13;
      pd13 = (* (( (ptr) (*  (ptr) formal←c0139 ))+8) );
      (void) ( *( (fPt) ((*  (ptr) pd13 ))))((word) (( (bPt) formal←c0139)+24), (* (( (ptr) formal←c0139)+4) ), (* (( (ptr) formal←c0139)+5)
          ), (* (( (ptr) (*  (ptr) formal←c0139 ))+5) ), (* (( (ptr) (*  (ptr) formal←c0139 ))+4) ), pd13);
      };
   return(0);
   }

static word Parent←P360(catchPhrase←v4936)
   word catchPhrase←v4936;
   {
   word parent←v4980;
   word env←v10012;
   /* Parent: */ 
SOURCE(3083, 195)
SOURCE(3165, 41)
   env←v10012 = catchPhrase←v4936;
SOURCE(3208, 70)
   return((word) XR←LookupInDynamicEnvironment(1073807360, (*  (ptr) env←v10012 )));
   }

static word WarmestHandler←P420()
   {
   word var←c5040;
   word env←v10056;
   /* WarmestHandler: */ 
SOURCE(3284, 160)
SOURCE(3334, 43)
   env←v10056 = (word) XR←GetDynamicEnvironment();
SOURCE(3379, 65)
   return((word) XR←LookupInDynamicEnvironment(1073807360, env←v10056));
   }

extern void XR←MesaUnwinder(self←v5184)
   word self←v5184;
   {
   W7 var←c15412;
   /* declaration of cp←v10100 skipped */ 
   /* declaration of catchProc←v10128 skipped */ 
   /* declaration of action←v10156 skipped */ 
   /* MesaUnwinder: */ 
SOURCE(3591, 673)
SOURCE(3666, 34)
   var←c15412.f4/* cp←v10100 */  = (* (( (ptr) self←v5184)+1) );
SOURCE(3702, 23)
   var←c15412.f5/* catchProc←v10128 */  = 0;
SOURCE(3755, 509)
   var←c15412.f5/* catchProc←v10128 */  = (* (( (ptr) var←c15412.f4/* cp←v10100 */ )+4) );
   if ((var←c15412.f5/* catchProc←v10128 */  != 0)) {
SOURCE(3804, 460)
SOURCE(3806, 447)
      {
         word var←c0160;
         var←c0160 = (word) &var←c15412;
          (void) (word) XR←Enable(( ((word)  (fPt) NoName←Q1524) ), ( ((word)  (fPt) NoName←Q1644) ), var←c0160);
         };
      };
   }

static word NoName←Q1524(formal←c0141)
   word formal←c0141;
   {
   W7 var←c0169;
   register ptr gf←c0140 =  (ptr) &globalframe;
   var←c0169.f0 = formal←c0141;
SOURCE(3980, 142)
SOURCE(3980, 142)
   {
      W2 var←c14932;
      {
         /* declaration of var←c06 skipped */ 
         var←c0169.f4/* var←c06 */  = (* (( (ptr) (* (( (ptr) formal←c0141)+4) ))+5) );
         {
            /* declaration of var←c07 skipped */ 
            {
               word var←c08;
               {
                  word var←c0161;
                  var←c0161 = (word) &var←c0169;
                  var←c08 = (word) XR←Enable(( ((word)  (fPt) NoName←Q1584) ), ( ((word)  (fPt) NoName←Q1704) ), var←c0161);
                  };
               if ((var←c08 == 3)) {
                  goto lab←L100012;
                  };
               };
            var←c14932 = (*  (W2Pt) (( (ptr) &var←c0169)+5)/* var←c07 */  );
            };
         };
      (* (( (ptr) formal←c0141)+6) ) = var←c14932.f0;
      };
   lab←L100012: ;
SOURCE(4137, 116)
   {
      word var←c14964;
      var←c14964 = (* (( (ptr) formal←c0141)+6) );
      switch (var←c14964) {
         case 0: 
            break;
         case 1: 
SOURCE(4183, 30)
            (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c0140)+58)/* var←c14740 */  ))+15) ), 0);
            break;
         case 2: 
SOURCE(4223, 30)
            (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c0140)+58)/* var←c14740 */  ))+26) ), 0);
            break;
         };
      };
   return(0);
   }

static word NoName←Q1584(formal←c0142)
   word formal←c0142;
   {
SOURCE(3980, 142)
   {
      word pd14;
      pd14 = (* (( (ptr) (*  (ptr) formal←c0142 ))+5) );
      (void) ( *( (fPt) ((*  (ptr) pd14 ))))((word) (( (bPt) formal←c0142)+20), (* (( (ptr) formal←c0142)+4) ), XR←Unwind, 0, 0, pd14)
      ;
      };
   return(0);
   }

extern void XR←RaiseError(which←v11432, args←v11460)
   word which←v11432;
   word args←v11460;
   {
   register ptr gf←c15444 =  (ptr) &globalframe;
   /* RaiseError: */ 
SOURCE(8345, 172)
SOURCE(8408, 43)
   (* (( (ptr) gf←c15444)+10) ) = ((* (( (ptr) gf←c15444)+10) ) + 1);
SOURCE(8453, 31)
   (void) SignalHandler←P300(which←v11432, args←v11460, 0, 0);
SOURCE(8486, 31)
   (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c15444)+58)/* var←c14740 */  ))+15) ), 0);
   }

extern void XR←RaiseSignal(which←v11520, rtns←v11548, args←v11576)
   word which←v11520;
   word rtns←v11548;
   word args←v11576;
   {
   register ptr gf←c15476 =  (ptr) &globalframe;
   /* RaiseSignal: */ 
SOURCE(8521, 146)
SOURCE(8588, 45)
   (* (( (ptr) gf←c15476)+11) ) = ((* (( (ptr) gf←c15476)+11) ) + 1);
SOURCE(8635, 32)
   (void) SignalHandler←P300(which←v11520, args←v11576, rtns←v11548, 0);
   }

extern word XR←RaiseUnnamedError()
   {
   register ptr gf←c15508 =  (ptr) &globalframe;
   word var←c8116;
   /* RaiseUnnamedError: */ 
SOURCE(8673, 128)
SOURCE(8673, 128)
   var←c8116 = 0;
SOURCE(8748, 53)
   (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c15508)+58)/* var←c14740 */  ))+23) ), 0);
SOURCE(8673, 128)
   return(var←c8116);
   }

extern word XR←RaiseArithmeticFault()
   {
   register ptr gf←c15540 =  (ptr) &globalframe;
   word var←c8176;
   /* RaiseArithmeticFault: */ 
SOURCE(8805, 144)
SOURCE(8805, 144)
   var←c8176 = 0;
SOURCE(8893, 56)
   (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c15540)+58)/* var←c14740 */  ))+6) ), 0);
SOURCE(8805, 144)
   return(var←c8176);
   }

extern word XR←RaiseBoundsFault()
   {
   register ptr gf←c15572 =  (ptr) &globalframe;
   word var←c8236;
   /* RaiseBoundsFault: */ 
SOURCE(8953, 132)
SOURCE(8953, 132)
   var←c8236 = 0;
SOURCE(9033, 52)
   (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c15572)+58)/* var←c14740 */  ))+8) ), 0);
SOURCE(8953, 132)
   return(var←c8236);
   }

extern void XR←RaiseAbstractionFault()
   {
   register ptr gf←c15604 =  (ptr) &globalframe;
   /* RaiseAbstractionFault: */ 
SOURCE(9089, 139)
SOURCE(9171, 57)
   (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c15604)+58)/* var←c14740 */  ))+5) ), 0);
   }

extern void XR←SetupPushHandler(context←v8312, proc←v8340, catchPhrase←v8368, unwindFrame←v8396, unwinder←v8424, jmpBufPtr←v8452)
   word context←v8312;
   word proc←v8340;
   word catchPhrase←v8368;
   word unwindFrame←v8396;
   word unwinder←v8424;
   word jmpBufPtr←v8452;
   {
   register ptr gf←c15636 =  (ptr) &globalframe;
   word prevEnv←v10200;
   /* SetupPushHandler: */ 
SOURCE(9232, 682)
SOURCE(9418, 47)
   prevEnv←v10200 = (word) XR←GetDynamicEnvironment();
SOURCE(9467, 53)
   (*  (ptr) catchPhrase←v8368 ) = unwindFrame←v8396;
SOURCE(9522, 45)
   (* (( (ptr) catchPhrase←v8368)+1) ) = 1073807360;
SOURCE(9569, 28)
   (* (( (ptr) catchPhrase←v8368)+4) ) = proc←v8340;
SOURCE(9599, 34)
   (* (( (ptr) catchPhrase←v8368)+5) ) = context←v8312;
SOURCE(9635, 32)
   (* (( (ptr) catchPhrase←v8368)+6) ) = 0;
SOURCE(9669, 33)
   (* (( (ptr) catchPhrase←v8368)+3) ) = jmpBufPtr←v8452;
SOURCE(9704, 26)
   (*  (ptr) unwindFrame←v8396 ) = prevEnv←v10200;
SOURCE(9732, 32)
   (* (( (ptr) unwindFrame←v8396)+1) ) = (* (( (ptr) gf←c15636)+6)/* UnwindFrameKey←v3168 */  );
SOURCE(9766, 31)
   (* (( (ptr) unwindFrame←v8396)+2) ) = unwinder←v8424;
SOURCE(9799, 26)
   (* (( (ptr) unwindFrame←v8396)+3) ) = 0;
SOURCE(9827, 44)
   (void) XR←SetDynamicEnvironment(catchPhrase←v8368);
SOURCE(9873, 41)
   (* (( (ptr) gf←c15636)+8) ) = ((* (( (ptr) gf←c15636)+8) ) + 1);
   }

extern word XR←PushAllocedHandler(context←v8552, handler←v8580, jmpBuf←v8608)
   word context←v8552;
   word handler←v8580;
   word jmpBuf←v8608;
   {
   register ptr gf←c15668 =  (ptr) &globalframe;
   word var←c8676;
   word unwindFrame←v10244;
   word catchPhrase←v10272;
   word prevEnv←v10356;
   /* PushAllocedHandler: */ 
SOURCE(9920, 970)
SOURCE(10062, 59)
   unwindFrame←v10244 = XR←NewObject(16, (* (( (ptr) gf←c15668)+12) ));
SOURCE(10123, 59)
   catchPhrase←v10272 = XR←NewObject(28, (* (( (ptr) gf←c15668)+13) ));
SOURCE(10296, 47)
   prevEnv←v10356 = (word) XR←GetDynamicEnvironment();
SOURCE(10345, 53)
   (*  (ptr) catchPhrase←v10272 ) = unwindFrame←v10244;
SOURCE(10400, 45)
   (* (( (ptr) catchPhrase←v10272)+1) ) = 1073807360;
SOURCE(10447, 31)
   (* (( (ptr) catchPhrase←v10272)+4) ) = handler←v8580;
SOURCE(10480, 34)
   (* (( (ptr) catchPhrase←v10272)+5) ) = context←v8552;
SOURCE(10516, 32)
   (* (( (ptr) catchPhrase←v10272)+6) ) = 0;
SOURCE(10550, 30)
   (* (( (ptr) catchPhrase←v10272)+3) ) = jmpBuf←v8608;
SOURCE(10582, 26)
   (* (( (ptr) unwindFrame←v10244)+3) ) = 0;
SOURCE(10610, 26)
   (*  (ptr) unwindFrame←v10244 ) = prevEnv←v10356;
SOURCE(10638, 32)
   (* (( (ptr) unwindFrame←v10244)+1) ) = (* (( (ptr) gf←c15668)+6)/* UnwindFrameKey←v3168 */  );
SOURCE(10672, 124)
   {
      word var←c15060;
      var←c15060 = XR←NewObject(8, (* (( (ptr) gf←c15668)+14) ));
      (*  (ptr) var←c15060 ) = (*  (ptr) (( (bPt) gf←c15668)+160)/* var←c14420 */  );
      (* (( (ptr) var←c15060)+1) ) = catchPhrase←v10272;
      (* (( (ptr) unwindFrame←v10244)+2) ) = var←c15060;
      };
SOURCE(10798, 44)
   (void) XR←SetDynamicEnvironment(catchPhrase←v10272);
SOURCE(10844, 35)
   (* (( (ptr) gf←c15668)+7) ) = ((* (( (ptr) gf←c15668)+7) ) + 1);
SOURCE(10881, 9)
   return(0);
   }

extern void XR←PopHandler()
   {
   register ptr gf←c15700 =  (ptr) &globalframe;
   word env←v10484;
   /* PopHandler: */ 
SOURCE(10896, 254)
SOURCE(10963, 43)
   env←v10484 = (word) XR←GetDynamicEnvironment();
SOURCE(11008, 142)
   if ( ( (((* (( (ptr) env←v10484)+1) ) == 1073807360) || ((* (( (ptr) env←v10484)+1) ) == 1073807361)) ? ((* (( (ptr) (*  (ptr) env←v10484 ))+1)
    ) == (* (( (ptr) gf←c15700)+6)/* UnwindFrameKey←v3168 */  )) : 0 ) ) {
SOURCE(11113, 37)
      (void) XR←SetDynamicEnvironment((*  (ptr) ((*  (ptr) env←v10484 )) ));
      }
   else {
SOURCE(11157, 5)
      (void) XR←RaiseUnnamedError();
      };
   }

static void GetStatistics←P1080(formal←c0104)
   word formal←c0104;
   {
   register ptr gf←c15732 =  (ptr) &globalframe;
   W5 var←c9472;
   /* GetStatistics: */ 
SOURCE(12220, 81)
SOURCE(12287, 14)
   var←c9472 = (*  (W5Pt) (( (ptr) gf←c15732)+7)/* stats←v4092 */  );
   /* removed tail goto */ 
   (*  (W5Pt) formal←c0104 ) = var←c9472;
   return;
   }

static void Initialize←P1140()
   {
   register ptr gf←c15764 =  (ptr) &globalframe;
   /* Initialize: */ 
SOURCE(14204, 1085)
SOURCE(14225, 1024)
   {
      word var←c15124;
      {
         word var←c15156;
         var←c15156 = XR←NewObject(96, (* (( (ptr) gf←c15764)+15) ));
         (* (( (ptr) var←c15156)+1) ) = (* (( (ptr) (* (( (ptr) gf←c15764)+58)/* var←c14740 */  ))+4) );
         (* (( (ptr) var←c15156)+2) ) = (* (( (ptr) (* (( (ptr) gf←c15764)+58)/* var←c14740 */  ))+5) );
         (* (( (ptr) var←c15156)+3) ) = (* (( (ptr) (* (( (ptr) gf←c15764)+58)/* var←c14740 */  ))+6) );
         (* (( (ptr) var←c15156)+4) ) = (* (( (ptr) (* (( (ptr) gf←c15764)+58)/* var←c14740 */  ))+7) );
         (* (( (ptr) var←c15156)+5) ) = (* (( (ptr) (* (( (ptr) gf←c15764)+58)/* var←c14740 */  ))+8) );
         (* (( (ptr) var←c15156)+6) ) = (* (( (ptr) (* (( (ptr) gf←c15764)+58)/* var←c14740 */  ))+9) );
         (* (( (ptr) var←c15156)+7) ) = (* (( (ptr) (* (( (ptr) gf←c15764)+58)/* var←c14740 */  ))+30) );
         (* (( (ptr) var←c15156)+8) ) = (* (( (ptr) (* (( (ptr) gf←c15764)+58)/* var←c14740 */  ))+10) );
         (* (( (ptr) var←c15156)+9) ) = (* (( (ptr) (* (( (ptr) gf←c15764)+58)/* var←c14740 */  ))+11) );
         (* (( (ptr) var←c15156)+10) ) = (* (( (ptr) (* (( (ptr) gf←c15764)+58)/* var←c14740 */  ))+12) );
         (* (( (ptr) var←c15156)+11) ) = (* (( (ptr) (* (( (ptr) gf←c15764)+58)/* var←c14740 */  ))+13) );
         (* (( (ptr) var←c15156)+12) ) = (* (( (ptr) (* (( (ptr) gf←c15764)+58)/* var←c14740 */  ))+14) );
         (* (( (ptr) var←c15156)+13) ) = (* (( (ptr) (* (( (ptr) gf←c15764)+58)/* var←c14740 */  ))+15) );
         (* (( (ptr) var←c15156)+14) ) = (* (( (ptr) (* (( (ptr) gf←c15764)+58)/* var←c14740 */  ))+17) );
         (* (( (ptr) var←c15156)+15) ) = (* (( (ptr) (* (( (ptr) gf←c15764)+58)/* var←c14740 */  ))+18) );
         (* (( (ptr) var←c15156)+16) ) = (* (( (ptr) (* (( (ptr) gf←c15764)+58)/* var←c14740 */  ))+19) );
         (* (( (ptr) var←c15156)+17) ) = (* (( (ptr) (* (( (ptr) gf←c15764)+58)/* var←c14740 */  ))+20) );
         (* (( (ptr) var←c15156)+18) ) = (* (( (ptr) (* (( (ptr) gf←c15764)+58)/* var←c14740 */  ))+21) );
         (* (( (ptr) var←c15156)+19) ) = (* (( (ptr) (* (( (ptr) gf←c15764)+58)/* var←c14740 */  ))+23) );
         (* (( (ptr) var←c15156)+20) ) = (* (( (ptr) (* (( (ptr) gf←c15764)+58)/* var←c14740 */  ))+24) );
         (* (( (ptr) var←c15156)+21) ) = (* (( (ptr) (* (( (ptr) gf←c15764)+58)/* var←c14740 */  ))+25) );
         (* (( (ptr) var←c15156)+22) ) = (* (( (ptr) (* (( (ptr) gf←c15764)+58)/* var←c14740 */  ))+26) );
         (* (( (ptr) var←c15156)+23) ) = (* (( (ptr) (* (( (ptr) gf←c15764)+58)/* var←c14740 */  ))+27) );
         var←c15124 = var←c15156;
         };
      (void) XR←SetSignalEnvironment(var←c15124);
      };
   }

static void NoName←Q1644(formal←c0114, formal←c200008, formal←c200009, formal←c200010, formal←c200011)
   word formal←c0114;
   word formal←c200008;
   word formal←c200009;
   word formal←c200010;
   word formal←c200011;
   {
   register ptr gf←c0154 =  (ptr) &globalframe;
   if ((formal←c200009 == (* (( (ptr) (* (( (ptr) gf←c0154)+58)/* var←c14740 */  ))+17) ))) {
      {
         word signal←v12280;
         word args←v12308;
         word results←v12336;
         signal←v12280 = 0;
SOURCE(3840, 34)
         {
            word tmpAddr15;
            tmpAddr15 = (word) formal←c200010;
            (*  (ptr) tmpAddr15 ) = XR←Unwind;
            (* (( (ptr) tmpAddr15) + 1) ) = 0;
            (* (( (ptr) tmpAddr15) + 2) ) = 0;
            };
         (*  (ptr) formal←c0114 ) = 1;
         (* (( (ptr) formal←c0114)+1) ) = 0;
         return;
         };
      };
   (*  (ptr) formal←c0114 ) = 0;
   (* (( (ptr) formal←c0114)+1) ) = 0;
   return;
   }

static void NoName←Q1704(formal←c0119, formal←c200012, formal←c200013, formal←c200014, formal←c200015)
   word formal←c0119;
   word formal←c200012;
   word formal←c200013;
   word formal←c200014;
   word formal←c200015;
   {
   register ptr gf←c0155 =  (ptr) &globalframe;
   if ((formal←c200013 == (* (( (ptr) (* (( (ptr) gf←c0155)+58)/* var←c14740 */  ))+16) ))) {
SOURCE(4107, 15)
      (* (( (ptr) (*  (ptr) formal←c200012 ))+6) ) = 1;
SOURCE(4124, 9)
      (*  (ptr) formal←c0119 ) = 2;
      (* (( (ptr) formal←c0119)+1) ) = 3;
      return;
      };
   (*  (ptr) formal←c0119 ) = 0;
   (* (( (ptr) formal←c0119)+1) ) = 0;
   return;
   }

static void NoName←Q1764(formal←c0127, formal←c200000, formal←c200001, formal←c200002, formal←c200003)
   word formal←c0127;
   word formal←c200000;
   word formal←c200001;
   word formal←c200002;
   word formal←c200003;
   {
   register ptr gf←c0156 =  (ptr) &globalframe;
   if ((formal←c200001 == (* (( (ptr) (* (( (ptr) gf←c0156)+58)/* var←c14740 */  ))+17) ))) {
      {
         word signal←v12004;
         word args←v12032;
         word results←v12060;
         signal←v12004 = 0;
SOURCE(2109, 30)
         {
            word tmpAddr16;
            tmpAddr16 = (word) formal←c200002;
            (*  (ptr) tmpAddr16 ) = (* (( (ptr) (* (( (ptr) formal←c200000)+9) ))+2) );
            (* (( (ptr) tmpAddr16) + 1) ) = (* (( (ptr) formal←c200000)+4) );
            (* (( (ptr) tmpAddr16) + 2) ) = (* (( (ptr) formal←c200000)+5) );
            };
         (*  (ptr) formal←c0127 ) = 1;
         (* (( (ptr) formal←c0127)+1) ) = 0;
         return;
         };
      };
   (*  (ptr) formal←c0127 ) = 0;
   (* (( (ptr) formal←c0127)+1) ) = 0;
   return;
   }

static void NoName←Q1824(formal←c0132, formal←c200004, formal←c200005, formal←c200006, formal←c200007)
   word formal←c0132;
   word formal←c200004;
   word formal←c200005;
   word formal←c200006;
   word formal←c200007;
   {
   register ptr gf←c0157 =  (ptr) &globalframe;
   if ((formal←c200005 == (* (( (ptr) (* (( (ptr) gf←c0157)+58)/* var←c14740 */  ))+16) ))) {
SOURCE(2470, 28)
SOURCE(2472, 15)
      (* (( (ptr) (*  (ptr) formal←c200004 ))+7) ) = 1;
SOURCE(2489, 9)
      (*  (ptr) formal←c0132 ) = 2;
      (* (( (ptr) formal←c0132)+1) ) = 2;
      return;
      };
   (*  (ptr) formal←c0132 ) = 0;
   (* (( (ptr) formal←c0132)+1) ) = 0;
   return;
   }

/* file: SignalsImpl, module: SignalsImpl, compiled at: September 3, 1993 1:40:34 pm PDT */ 
extern void XR←install←SignalsImpl() {
   NoName←Q1344();
   }
extern void XR←run←SignalsImpl() { XR←Start(&globalframe); }