/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1993 by Xerox Corporation. All rights reserved. */
/* time: July 28, 1993 10:13:34 am PDT */
/* C2C version: April 20, 1993 (sun4) */
/* ref-counting: off */
/* file: FunctionCacheImpl, module: FunctionCacheImpl */
/* switches: bcfhklnouw */
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [374557494,436071096] FunctionCacheImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef struct {word f0, f1, f2, f3;} W4;
typedef W4 *W4Pt;
typedef word (*fPt)();
typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8;
typedef struct {word f0, f1;} W2;
typedef struct {W8 f; W2 r;} W10;
typedef struct {W8 f; word r;} W9;
typedef struct {word f0, f1, f2, f3, f4, f5, f6;} W7;
#define SOURCE(p, l) /* source p, l */
#define IOP2(op, x, y) ( (word) ((x) op (y)) )
static void NoName←Q2880();
static void FunctionCacheImpl←P0();
static word Create←P60();
static word ListCompare←P120();
static word Equal←P180();
static word Eval←P240();
static word refCompare←P1776();
static word fancyCompare←P1836();
static void Insert←P300();
static void Lookup←P360();
static word NoName←Q2940();
static word Any←P420();
static word Obtain←P480();
static word NoName←Q3000();
static void Release←P540();
static void Flush←P600();
static void GetInfo←P660();
static word GetList←P720();
static void SetLimits←P780();
static void SetValueSize←P840();
static void CheckInvariants←P900();
static void EnforceLimits←P1020();
static word GlobalCache←P1080();
static word Example←P1140();
static word compare←P2328();
static void NoName←Q3060();
static void NoName←Q3120();
static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\161\264\233\303\300\026\075\022\161\101\334\000\000"};
static struct {unsigned f; char r[4];} string2 = {131074, "\003\010\000"};
static struct {unsigned f; char r[44];} string3 = {2752556, "\260\006\005\146\151\162\163\164\257\300\161\264\233\303\300\026\075\022\161\101\050\005\004\162\145\163\164\214\257\300\161\264\233\303\300\026\075\022\161\101\050\261\000"};
static struct {unsigned f; char r[4];} string4 = {131074, "\004\027\000"};
static struct {unsigned f; char r[4];} string5 = {65540, "\242\000\000"};
static struct {unsigned f; char r[4];} string6 = {65540, "\256\000\000"};
static struct {unsigned f; char r[4];} string7 = {65540, "\243\000\000"};
static struct {unsigned f; char r[4];} string8 = {65540, "\251\000\000"};
static struct {unsigned f; char r[16];} string9 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\104\304\000\000"};
static struct {unsigned f; char r[24];} string10 = {1376277, "\007\000\001\002\007\020\001\002\000\007\036\002\004\003\002\004\014\016\015\003\001\000\000"};
static struct {unsigned f; char r[20];} string11 = {1179668, "\260\006\005\146\151\162\163\164\217\005\004\162\145\163\164\214\217\261\000"};
static struct {unsigned f; char r[4];} string12 = {131074, "\004\003\000"};
static struct {unsigned f; char r[4];} string13 = {131076, "\216\251\000"};
static struct {unsigned f; char r[4];} string14 = {65537, "\001\000\000"};
static struct {unsigned f; char r[20];} string15 = {1179668, "\260\006\005\146\151\162\163\164\242\005\004\162\145\163\164\214\242\261\000"};
static struct {unsigned f; char r[4];} string16 = {131074, "\003\001\000"};
static struct {unsigned f; char r[16];} string17 = {786448, "SillyExample\000\000\000"};
static struct {unsigned f; char r[16];} string18 = {851984, "\257\300\026\123\113\066\300\031\375\352\270\100\200\000\000"};
static struct {unsigned f; char r[8];} string19 = {458759, "\006\002\034\001@P\001"};
static struct {unsigned f; char r[16];} string20 = {851984, "\257\300\055\153\222\376\300\327\164\352\142\100\150\000\000"};
static struct {unsigned f; char r[16];} string21 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\100\150\000\000"};
static struct {unsigned f; char r[16];} string22 = {851984, "\257\300\161\264\233\303\300\026\075\022\161\100\150\000\000"};
static struct {
word f0[21]; 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[8];
} globalframe = {
{0}, (word) Example←P1140, 0, (word) GlobalCache←P1080,
0, (word) EnforceLimits←P1020, 0, (word) CheckInvariants←P900,
0, (word) SetValueSize←P840, 0, (word) SetLimits←P780,
0, (word) GetList←P720, 0, (word) GetInfo←P660,
0, (word) Flush←P600, 0, (word) Release←P540,
0, (word) Obtain←P480, 0, (word) Any←P420,
0, (word) Lookup←P360, 0, (word) Insert←P300,
0, (word) Eval←P240, 0, (word) Equal←P180,
0, (word) ListCompare←P120, 0, (word) Create←P60,
0, (word) FunctionCacheImpl←P0, {0}
};
static void NoName←Q2880()
{
register ptr gf←c0195 = (ptr) &globalframe;
word var←c16916;
(* (( (ptr) gf←c0195)+9) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
(* (( (ptr) gf←c0195)+10) ) = (word) XR←GetTypeIndex((word) &string3, 0, (word) &string4);
(* (( (ptr) gf←c0195)+12) ) = (word) XR←GetTypeIndexS((word) (&string5));
(* (( (ptr) gf←c0195)+13) ) = (word) XR←GetTypeIndexS((word) (&string6));
(* (( (ptr) gf←c0195)+14) ) = (word) XR←GetTypeIndexS((word) (&string7));
(* (( (ptr) gf←c0195)+15) ) = (word) XR←GetTypeIndexS((word) (&string8));
(* (( (ptr) gf←c0195)+16) ) = (word) XR←GetTypeIndex((word) &string9, 0, (word) &string10);
(* (( (ptr) gf←c0195)+17) ) = (word) XR←GetTypeIndex((word) &string11, 0, (word) &string12);
(* (( (ptr) gf←c0195)+18) ) = (word) XR←GetTypeIndex((word) &string13, 0, (word) &string14);
(* (( (ptr) gf←c0195)+19) ) = (word) XR←GetTypeIndex((word) &string15, 0, (word) &string16);
(* (ptr) (( (bPt) gf←c0195)+80) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0195)+18) ), (word) &string17);
(void) XR←DeclareGlobalFrame((word) "FunctionCacheImpl", &globalframe, (word) XR←GetTypeIndex((word) &string18, 0, (word) &string19)
, (word) (( (bPt) gf←c0195)+228)/* var←c15380 */ );
var←c16916 = (word) XR←ImportInterface((word) "Atom", (word) XR←GetTypeIndexS((word) (&string20)), 16);
(* (( (ptr) gf←c0195)+63)/* var←c15988 */ ) = var←c16916;
(void) XR←ImportProcS(var←c16916, 67372289);
var←c16916 = (word) XR←ImportInterface((word) "Rope", (word) XR←GetTypeIndexS((word) (&string21)), 43);
(* (( (ptr) gf←c0195)+64)/* var←c16052 */ ) = var←c16916;
(void) XR←ImportProcS(var←c16916, 67896323);
var←c16916 = (word) XR←ExportInterface((word) "FunctionCache", (word) XR←GetTypeIndexS((word) (&string22)), 14);
(* (( (ptr) gf←c0195)+65)/* var←c16948 */ ) = var←c16916;
(void) XR←ExportProcS(var←c16916, (word) (( (bPt) gf←c0195)+220)/* var←c15348 */ , 67633154, (word) "Create");
(void) XR←ExportProcS(var←c16916, (word) (( (bPt) gf←c0195)+196)/* var←c15252 */ , 68419845, (word) "Eval");
(void) XR←ExportProcS(var←c16916, (word) (( (bPt) gf←c0195)+188)/* var←c15220 */ , 1311237, (word) "Insert");
(void) XR←ExportProcS(var←c16916, (word) (( (bPt) gf←c0195)+172)/* var←c15156 */ , 67371777, (word) "Any");
(void) XR←ExportProcS(var←c16916, (word) (( (bPt) gf←c0195)+204)/* var←c15284 */ , 67896323, (word) "Equal");
(void) XR←ExportProcS(var←c16916, (word) (( (bPt) gf←c0195)+180)/* var←c15188 */ , 135005443, (word) "Lookup");
(void) XR←ExportProcS(var←c16916, (word) (( (bPt) gf←c0195)+164)/* var←c15124 */ , 68158980, (word) "Obtain");
(void) XR←ExportProcS(var←c16916, (word) (( (bPt) gf←c0195)+156)/* var←c15092 */ , 526082, (word) "Release");
(void) XR←ExportProcS(var←c16916, (word) (( (bPt) gf←c0195)+148)/* var←c15060 */ , 264193, (word) "Flush");
(void) XR←ExportProcS(var←c16916, (word) (( (bPt) gf←c0195)+140)/* var←c15028 */ , 268699905, (word) "GetInfo");
(void) XR←ExportProcS(var←c16916, (word) (( (bPt) gf←c0195)+132)/* var←c14996 */ , 67373569, (word) "GetList");
(void) XR←ExportProcS(var←c16916, (word) (( (bPt) gf←c0195)+124)/* var←c14964 */ , 789251, (word) "SetLimits");
(void) XR←ExportProcS(var←c16916, (word) (( (bPt) gf←c0195)+116)/* var←c14932 */ , 789507, (word) "SetValueSize");
(void) XR←ExportProcS(var←c16916, (word) (( (bPt) gf←c0195)+92)/* var←c14836 */ , 67112192, (word) "GlobalCache");
}
static void FunctionCacheImpl←P0(formal←c035, formal←c034)
word formal←c035;
word formal←c034;
{
register ptr gf←c16980 = (ptr) &globalframe;
/* FunctionCacheImpl: */
SOURCE(197, 6754)
SOURCE(5630, 23)
(* (( (ptr) gf←c16980)+5)/* triggerSize←v3140 */ ) = 8000;
SOURCE(6334, 98)
(* (( (ptr) gf←c16980)+7)/* globalCache←v3252 */ ) = (word) Create←P60(100, 1000000);
}
static word Create←P60(maxEntries←v3360, maxTotalSize←v3388)
word maxEntries←v3360;
word maxTotalSize←v3388;
{
register ptr gf←c17012 = (ptr) &globalframe;
word var←c3432;
/* Create: */
SOURCE(331, 218)
SOURCE(408, 141)
{
word var←c15540;
word var←c15572;
word var←c15508;
word var←c15604;
var←c15540 = XR←NewObject(20, (* (( (ptr) gf←c17012)+10) ));
var←c15572 = var←c15540;
(* (W4Pt) var←c15572 ) = (* (W4Pt) (( (ptr) gf←c17012)+59)/* var←c15444 */ );
var←c15508 = var←c15540;
var←c15604 = XR←NewObject(36, (* (( (ptr) gf←c17012)+9) ));
(* (( (ptr) var←c15604)+5) ) = maxEntries←v3360;
(* (( (ptr) var←c15604)+7) ) = maxTotalSize←v3388;
(* (( (ptr) var←c15604)+8) ) = var←c15508;
return(var←c15604);
};
}
static word ListCompare←P120(a←v3592, b←v3620, match←v3648)
word a←v3592;
word b←v3620;
word match←v3648;
{
word var←c3692;
/* ListCompare: */
SOURCE(610, 213)
SOURCE(674, 126)
lab←L100002: ;
if ( ( (a←v3592 != 0) ? (b←v3620 != 0) : 0 ) ) {
}
else {
goto lab←L100000;
};
SOURCE(698, 102)
if (((* (ptr) a←v3592 ) == (* (ptr) b←v3620 )) || (0 != (word) Equal←P180((* (ptr) a←v3592 ), (* (ptr) b←v3620 ), match←v3648)
)) {
SOURCE(757, 10)
a←v3592 = (* (( (ptr) a←v3592)+1) );
SOURCE(769, 10)
b←v3620 = (* (( (ptr) b←v3620)+1) );
}
else {
SOURCE(786, 14)
return(0);
};
goto lab←L100002;
lab←L100000: ;
SOURCE(811, 12)
return( (unsigned) (a←v3592 == b←v3620));
}
static word Equal←P180(a←v3752, b←v3780, match←v3808)
word a←v3752;
word b←v3780;
word match←v3808;
{
register ptr gf←c17044 = (ptr) &globalframe;
word var←c3852;
/* Equal: */
SOURCE(829, 750)
SOURCE(896, 27)
if ((a←v3752 == b←v3780)) {
SOURCE(910, 13)
return(1);
};
SOURCE(925, 35)
if ((match←v3808 == 0)) {
SOURCE(946, 14)
return(0);
};
SOURCE(962, 583)
{
word var←c15636;
word var←c15668;
var←c15636 = a←v3752;
if ((var←c15636 == 0)) {
goto lab←L100003;
};
var←c15668 = XR←GetReferentType(var←c15636);
{
word tc29;
if (((* (( (ptr) gf←c17044)+12) ) == var←c15668)) {
{
word x←v5912;
x←v5912 = var←c15636;
SOURCE(995, 47)
{
word var←c15700;
var←c15700 = b←v3780;
if ((var←c15700 == 0)) {
goto lab←L100004;
};
if (((* (( (ptr) gf←c17044)+12) ) == XR←GetReferentType(var←c15700))) {
{
word y←v5968;
y←v5968 = var←c15700;
SOURCE(1028, 14)
return( (unsigned) ( (int)(* (ptr) x←v5912 ) == (int)(* (ptr) y←v5968 )));
};
}
else {
lab←L100004: ;
};
};
};
goto endif023;
};
if (((* (( (ptr) gf←c17044)+13) ) == var←c15668)) {
{
word x←v6024;
x←v6024 = var←c15636;
SOURCE(1068, 48)
{
word var←c15732;
var←c15732 = b←v3780;
if ((var←c15732 == 0)) {
goto lab←L100005;
};
if (((* (( (ptr) gf←c17044)+13) ) == XR←GetReferentType(var←c15732))) {
{
word y←v6080;
y←v6080 = var←c15732;
SOURCE(1102, 14)
{
word x24;
word x25;
return( (unsigned) ((
/*1*/ x24 = (* (ptr) x←v6024 ), *(float*)&x24
/*1*/ ) == (
/*1*/ x25 = (* (ptr) y←v6080 ), *(float*)&x25
/*1*/ )));
};
};
}
else {
lab←L100005: ;
};
};
};
goto endif023;
};
if (((* (( (ptr) gf←c17044)+14) ) == var←c15668)) {
{
word x←v6136;
x←v6136 = var←c15636;
SOURCE(1142, 110)
{
word var←c15764;
var←c15764 = b←v3780;
if ((var←c15764 == 0)) {
goto lab←L100006;
};
if (((* (( (ptr) gf←c17044)+14) ) == XR←GetReferentType(var←c15764))) {
{
word y←v6192;
y←v6192 = var←c15764;
SOURCE(1176, 76)
{
word var←c0214;
if ((match←v3808 == 1)) {
/*1*/ var←c0214 = (unsigned) ((* (ptr) x←v6136 ) == (* (ptr) y←v6192 ));
/*1*/ }
else {
/*1*/ {
/*1*/ word var←c15828;
/*1*/ word ch←v14756;
/*1*/ word var←c15860;
/*1*/ word ch←v14708;
/*1*/ ch←v14756 = (* (ptr) x←v6136 );
/*1*/ if (((ch←v14756 - 65) <= 25)) {
/*1*/ var←c15828 = (ch←v14756 + 32);
/*1*/ }
/*1*/ else {
/*1*/ var←c15828 = ch←v14756;
/*1*/ };
/*1*/ ch←v14708 = (* (ptr) y←v6192 );
/*1*/ if (((ch←v14708 - 65) <= 25)) {
/*1*/ var←c15860 = (ch←v14708 + 32);
/*1*/ }
/*1*/ else {
/*1*/ var←c15860 = ch←v14708;
/*1*/ };
/*1*/ var←c0214 = (unsigned) (var←c15828 == var←c15860);
/*1*/ };
/*1*/ };
return(var←c0214);
};
};
}
else {
lab←L100006: ;
};
};
};
goto endif023;
};
if (((* (( (ptr) gf←c17044)+15) ) == var←c15668)) {
{
word x←v6248;
x←v6248 = var←c15636;
SOURCE(1274, 97)
{
word var←c15892;
var←c15892 = b←v3780;
if ((var←c15892 == 0)) {
goto lab←L100009;
};
if (((* (( (ptr) gf←c17044)+15) ) == XR←GetReferentType(var←c15892))) {
{
word y←v6292;
y←v6292 = var←c15892;
SOURCE(1304, 67)
{
word var←c15956;
word var←c16020;
{
/*1*/ word pd26;
/*1*/ pd26 = (* (( (ptr) (* (( (ptr) gf←c17044)+63)/* var←c15988 */ ))+9) );
/*1*/ var←c15956 = (word) ( *( (fPt) ((* (ptr) pd26 ))))(x←v6248, pd26);
/*1*/ };
{
/*1*/ word pd27;
/*1*/ pd27 = (* (( (ptr) (* (( (ptr) gf←c17044)+63)/* var←c15988 */ ))+9) );
/*1*/ var←c16020 = (word) ( *( (fPt) ((* (ptr) pd27 ))))(y←v6292, pd27);
/*1*/ };
{
/*1*/ word pd28;
/*1*/ pd28 = (* (( (ptr) (* (( (ptr) gf←c17044)+64)/* var←c16052 */ ))+8) );
/*1*/ return((word) ( *( (fPt) ((* (ptr) pd28 ))))(var←c15956, var←c16020, (unsigned) (match←v3808 != 2), pd28));
/*1*/ };
};
};
}
else {
lab←L100009: ;
};
};
};
goto endif023;
};
if (((* (( (ptr) gf←c17044)+16) ) == var←c15668)) {
tc29 = (word) ( (unsigned) (*(int*)var←c15636<0) == 0);
}
else {
tc29 = (word) 0;
};
if (tc29) {
{
word x←v6336;
x←v6336 = var←c15636;
SOURCE(1393, 67)
{
word var←c16084;
var←c16084 = b←v3780;
if ((var←c16084 == 0)) {
goto lab←L100010;
};
{
word tc30;
if (((* (( (ptr) gf←c17044)+16) ) == XR←GetReferentType(var←c16084))) {
tc30 = (word) ( (unsigned) (*(int*)var←c16084<0) == 0);
}
else {
tc30 = (word) 0;
};
if (tc30) {
{
word y←v6380;
y←v6380 = var←c16084;
SOURCE(1423, 37)
{
/*1*/ word pd31;
/*1*/ pd31 = (* (( (ptr) (* (( (ptr) gf←c17044)+64)/* var←c16052 */ ))+8) );
/*1*/ return((word) ( *( (fPt) ((* (ptr) pd31 ))))(x←v6336, y←v6380, (unsigned) (match←v3808 != 2), pd31));
/*1*/ };
};
}
else {
lab←L100010: ;
};
};
};
};
goto endif023;
};
if (((* (( (ptr) gf←c17044)+17) ) == var←c15668)) {
{
word x←v6424;
x←v6424 = var←c15636;
SOURCE(1482, 63)
{
word var←c16148;
var←c16148 = b←v3780;
if ((var←c16148 == 0)) {
goto lab←L100011;
};
if (((* (( (ptr) gf←c17044)+17) ) == XR←GetReferentType(var←c16148))) {
{
word y←v6468;
y←v6468 = var←c16148;
SOURCE(1512, 33)
return((word) ListCompare←P120(x←v6424, y←v6468, match←v3808));
};
}
else {
lab←L100011: ;
};
};
};
goto endif023;
};
lab←L100003: ;
goto endif023;
endif023: ;
};
};
SOURCE(1565, 14)
return(0);
}
static word Eval←P240(x←v3912, F←v3940, formal←c0225, formal←c0226, clientID←v4024)
word x←v3912;
word F←v3940;
word formal←c0225;
word formal←c0226;
word clientID←v4024;
{
W10 var←c17076;
/* declaration of arg←v3968 skipped */
/* declaration of match←v3996 skipped */
word value←v4068;
/* declaration of var←c16212 skipped */
/* declaration of var←c16244 skipped */
word ok←v6568;
(* (( (ptr) &var←c17076)+4)/* arg←v3968 */ ) = formal←c0225;
(* (( (ptr) &var←c17076)+5)/* match←v3996 */ ) = formal←c0226;
/* Eval: */
SOURCE(1585, 475)
{
word tmpAddr32;
tmpAddr32 = (word) (( (ptr) &var←c17076)+6)/* var←c16212 */ ;
(* (ptr) tmpAddr32 ) = ( ((word) (fPt) fancyCompare←P1836) );
(* (( (ptr) tmpAddr32) + 1) ) = 1;
};
{
word tmpAddr33;
tmpAddr33 = (word) (( (ptr) &var←c17076)+8)/* var←c16244 */ ;
(* (ptr) tmpAddr33 ) = ( ((word) (fPt) refCompare←P1776) );
(* (( (ptr) tmpAddr33) + 1) ) = 1;
};
SOURCE(1585, 475)
value←v4068 = 0;
SOURCE(1851, 82)
{
W2 var←c16276;
(void) Lookup←P360((word) &var←c16276, x←v3912, ( ((* (( (ptr) &var←c17076)+5)/* match←v3996 */ ) == 0) ? (word) (( (bPt) &var←c17076)+32)
/* var←c16244 */ : (word) (( (bPt) &var←c17076)+24)/* var←c16212 */ ) , clientID←v4024);
ok←v6568 = var←c16276.f1;
value←v4068 = var←c16276.f0;
};
SOURCE(1935, 125)
if ((0 == ok←v6568)) {
SOURCE(1950, 112)
{
word size←v6612;
SOURCE(1963, 22)
{
W2 var←c16308;
(void) ( *( (fPt) ((* (ptr) F←v3940 ))))((word) &var←c16308, (* (( (ptr) &var←c17076)+4)/* arg←v3968 */ ), F←v3940);
size←v6612 = var←c16308.f1;
value←v4068 = var←c16308.f0;
};
SOURCE(1987, 73)
(void) Insert←P300(x←v3912, (* (( (ptr) &var←c17076)+4)/* arg←v3968 */ ), value←v4068, size←v6612, clientID←v4024);
};
};
SOURCE(1585, 475)
return(value←v4068);
}
static word refCompare←P1776(argument←v13864, formal←c17108)
word argument←v13864;
word formal←c17108;
{
word good←v13908;
formal←c17108 = (formal←c17108 - 32);
/* refCompare: */
SOURCE(1707, 48)
SOURCE(1734, 21)
good←v13908 = (unsigned) ((* (( (ptr) formal←c17108)+4) ) == argument←v13864);
SOURCE(1707, 48)
return(good←v13908);
}
static word fancyCompare←P1836(argument←v13968, formal←c17140)
word argument←v13968;
word formal←c17140;
{
word good←v14012;
formal←c17140 = (formal←c17140 - 24);
/* fancyCompare: */
SOURCE(1758, 80)
SOURCE(1787, 51)
if (((* (( (ptr) formal←c17140)+4) ) == argument←v13968)) {
good←v14012 = (unsigned) 1;
}
else {
good←v14012 = (unsigned) (0 != (word) Equal←P180((* (( (ptr) formal←c17140)+4) ), argument←v13968, (* (( (ptr) formal←c17140)+5)
)));
};
SOURCE(1758, 80)
return(good←v14012);
}
static void Insert←P300(x←v4128, argument←v4156, value←v4184, size←v4212, clientID←v4240)
word x←v4128;
word argument←v4156;
word value←v4184;
word size←v4212;
word clientID←v4240;
{
register ptr gf←c17172 = (ptr) &globalframe;
/* Insert: */
SOURCE(2069, 289)
(void) (XR←MonitorEntry(x←v4128));
SOURCE(2173, 109)
{
word var←c16340;
var←c16340 = XR←NewObject(20, (* (( (ptr) gf←c17172)+10) ));
(* (ptr) var←c16340 ) = clientID←v4240;
(* (( (ptr) var←c16340)+1) ) = argument←v4156;
(* (( (ptr) var←c16340)+2) ) = value←v4184;
(* (( (ptr) var←c16340)+3) ) = size←v4212;
(* (( (ptr) var←c16340)+4) ) = (* (( (ptr) (* (( (ptr) x←v4128)+8) ))+4) );
(* (( (ptr) (* (( (ptr) x←v4128)+8) ))+4) ) = var←c16340;
};
SOURCE(2284, 27)
(* (( (ptr) x←v4128)+4) ) = ((* (( (ptr) x←v4128)+4) ) + 1);
SOURCE(2313, 32)
(* (( (ptr) x←v4128)+6) ) = ((* (( (ptr) x←v4128)+6) ) + size←v4212);
SOURCE(2347, 11)
{
word x←v14660;
x←v14660 = x←v4128;
SOURCE(5474, 32)
if ((0 != (* (( (ptr) gf←c17172)+4)/* debug←v3084 */ ))) {
SOURCE(5488, 18)
(void) CheckInvariants←P900(x←v14660);
};
SOURCE(5508, 82)
if (( (int)(* (( (ptr) x←v14660)+4) ) > (int)(* (( (ptr) x←v14660)+5) )) || ( (int)(* (( (ptr) x←v14660)+6) ) > (int)(* (
( (ptr) x←v14660)+7) ))) {
SOURCE(5574, 16)
(void) EnforceLimits←P1020(x←v14660);
};
SOURCE(5592, 32)
if ((0 != (* (( (ptr) gf←c17172)+4)/* debug←v3084 */ ))) {
SOURCE(5606, 18)
(void) CheckInvariants←P900(x←v14660);
};
};
SOURCE(2069, 289)
(void) (XR←MonitorExit(x←v4128));
return;
}
static void Lookup←P360(formal←c0107, formal←c0227, formal←c0228, formal←c0229)
word formal←c0107;
word formal←c0227;
word formal←c0228;
word formal←c0229;
{
W9 var←c17204;
/* declaration of x←v4300 skipped */
/* declaration of compare←v4328 skipped */
/* declaration of clientID←v4356 skipped */
/* declaration of value←v4400 skipped */
/* declaration of ok←v4428 skipped */
(* (( (ptr) &var←c17204)+4)/* x←v4300 */ ) = formal←c0227;
(* (( (ptr) &var←c17204)+5)/* compare←v4328 */ ) = formal←c0228;
(* (( (ptr) &var←c17204)+6)/* clientID←v4356 */ ) = formal←c0229;
/* Lookup: */
SOURCE(2364, 619)
(void) (XR←MonitorEntry(* (( (ptr) &var←c17204)+4)/* x←v4300 */ ));
SOURCE(2364, 619)
(* (( (ptr) &var←c17204)+7)/* value←v4400 */ ) = 0;
SOURCE(2486, 497)
{
word var←c01;
{
word var←c0215;
var←c0215 = (word) &var←c17204;
var←c01 = (word) XR←Enable(( ((word) (fPt) NoName←Q2940) ), ( ((word) (fPt) NoName←Q3120) ), var←c0215);
};
/* removed trivial cond node */
};
(void) (XR←MonitorExit(* (( (ptr) &var←c17204)+4)/* x←v4300 */ ));
(* (ptr) formal←c0107 ) = (* (( (ptr) &var←c17204)+7)/* value←v4400 */ );
(* (( (ptr) formal←c0107)+1) ) = (* (( (ptr) &var←c17204)+8)/* ok←v4428 */ );
return;
}
static word NoName←Q2940(formal←c0202)
word formal←c0202;
{
SOURCE(2509, 6)
{
word prev←v6656;
word p←v6684;
SOURCE(2509, 6)
prev←v6656 = (* (( (ptr) (* (( (ptr) formal←c0202)+4) ))+8) );
SOURCE(2549, 3)
p←v6684 = (* (( (ptr) prev←v6656)+4) );
SOURCE(2584, 133)
if ((p←v6684 != 0)) {
SOURCE(2602, 105)
{
word tc34;
word pd35;
if (((* (ptr) p←v6684 ) == (* (( (ptr) formal←c0202)+6) ))) {
pd35 = (* (( (ptr) formal←c0202)+5) );
tc34 = (word) (0 != (word) ( *( (fPt) ((* (ptr) pd35 ))))((* ((( (ptr) p←v6684)+1)) ), pd35));
}
else {
tc34 = (word) 0;
};
if (tc34) {
SOURCE(2668, 39)
(* (( (ptr) formal←c0202)+7) ) = (* (( (ptr) p←v6684)+2) );
(* (( (ptr) formal←c0202)+8) ) = 1;
return(2);
};
};
SOURCE(2709, 8)
prev←v6656 = p←v6684;
};
SOURCE(2722, 220)
lab←L100018: ;
p←v6684 = (* (( (ptr) prev←v6656)+4) );
if ((p←v6684 != 0)) {
}
else {
goto lab←L100016;
};
SOURCE(2753, 176)
{
word tc36;
word pd37;
if (((* (ptr) p←v6684 ) == (* (( (ptr) formal←c0202)+6) ))) {
pd37 = (* (( (ptr) formal←c0202)+5) );
tc36 = (word) (0 != (word) ( *( (fPt) ((* (ptr) pd37 ))))((* ((( (ptr) p←v6684)+1)) ), pd37));
}
else {
tc36 = (word) 0;
};
if (tc36) {
SOURCE(2821, 18)
(* (( (ptr) prev←v6656)+4) ) = (* (( (ptr) p←v6684)+4) );
SOURCE(2841, 25)
(* (( (ptr) p←v6684)+4) ) = (* (( (ptr) (* (( (ptr) (* (( (ptr) formal←c0202)+4) ))+8) ))+4) );
SOURCE(2868, 20)
(* (( (ptr) (* (( (ptr) (* (( (ptr) formal←c0202)+4) ))+8) ))+4) ) = p←v6684;
SOURCE(2890, 39)
(* (( (ptr) formal←c0202)+7) ) = (* (( (ptr) p←v6684)+2) );
(* (( (ptr) formal←c0202)+8) ) = 1;
return(2);
};
};
SOURCE(2934, 8)
prev←v6656 = p←v6684;
goto lab←L100018;
lab←L100016: ;
SOURCE(2953, 30)
(* (( (ptr) formal←c0202)+7) ) = 0;
(* (( (ptr) formal←c0202)+8) ) = 0;
return(2);
};
/* c2c skipped dead code */
}
static word Any←P420(argument←v10844)
word argument←v10844;
{
word good←v10888;
/* Any: */
SOURCE(2989, 40)
SOURCE(3016, 13)
return(1);
}
static word Obtain←P480(formal←c0230, formal←c0231, formal←c0232, formal←c0233)
word formal←c0230;
word formal←c0231;
word formal←c0232;
word formal←c0233;
{
W9 var←c17236;
/* declaration of x←v4488 skipped */
/* declaration of compare←v4516 skipped */
/* declaration of limit←v4544 skipped */
/* declaration of clientID←v4572 skipped */
/* declaration of var←c02 skipped */
word var←c4616;
(* (( (ptr) &var←c17236)+4)/* x←v4488 */ ) = formal←c0230;
(* (( (ptr) &var←c17236)+5)/* compare←v4516 */ ) = formal←c0231;
(* (( (ptr) &var←c17236)+6)/* limit←v4544 */ ) = formal←c0232;
(* (( (ptr) &var←c17236)+7)/* clientID←v4572 */ ) = formal←c0233;
/* Obtain: */
SOURCE(3033, 666)
(void) (XR←MonitorEntry(* (( (ptr) &var←c17236)+4)/* x←v4488 */ ));
SOURCE(3157, 542)
{
word var←c03;
{
word var←c0216;
var←c0216 = (word) &var←c17236;
var←c03 = (word) XR←Enable(( ((word) (fPt) NoName←Q3000) ), ( ((word) (fPt) NoName←Q3060) ), var←c0216);
};
/* removed trivial cond node */
};
return((* (( (ptr) &var←c17236)+8)/* var←c02 */ ));
}
static word NoName←Q3000(formal←c0204)
word formal←c0204;
{
register ptr gf←c0203 = (ptr) &globalframe;
SOURCE(3180, 6)
{
word list←v6896 = 0;
word end←v6924 = 0;
word prev←v6952;
word p←v6980;
SOURCE(3243, 6)
prev←v6952 = (* (( (ptr) (* (( (ptr) formal←c0204)+4) ))+8) );
SOURCE(3283, 3)
p←v6980 = (* (( (ptr) prev←v6952)+4) );
SOURCE(3318, 323)
lab←L100023: ;
if ( ( ( (int)(* (( (ptr) formal←c0204)+6) ) != (int)0) ? (p←v6980 != 0) : 0 ) ) {
}
else {
goto lab←L100021;
};
SOURCE(3348, 293)
{
word tc38;
word pd39;
if (((* (ptr) p←v6980 ) == (* (( (ptr) formal←c0204)+7) ))) {
pd39 = (* (( (ptr) formal←c0204)+5) );
tc38 = (word) (0 != (word) ( *( (fPt) ((* (ptr) pd39 ))))((* ((( (ptr) p←v6980)+1)) ), pd39));
}
else {
tc38 = (word) 0;
};
if (tc38) {
SOURCE(3416, 27)
(* (( (ptr) (* (( (ptr) formal←c0204)+4) ))+4) ) = ((* (( (ptr) (* (( (ptr) formal←c0204)+4) ))+4) ) - 1);
SOURCE(3445, 40)
(* (( (ptr) (* (( (ptr) formal←c0204)+4) ))+6) ) = ((* (( (ptr) (* (( (ptr) formal←c0204)+4) ))+6) ) - (* (( (ptr) p←v6980)+3)
));
SOURCE(3487, 62)
if ((end←v6924 == 0)) {
SOURCE(3506, 14)
list←v6896 = p←v6980;
end←v6924 = p←v6980;
}
else {
SOURCE(3528, 12)
(* (( (ptr) end←v6924)+4) ) = p←v6980;
SOURCE(3542, 7)
end←v6924 = p←v6980;
};
SOURCE(3552, 22)
{
word var←c16468;
var←c16468 = (* (( (ptr) p←v6980)+4) );
(* (( (ptr) prev←v6952)+4) ) = var←c16468;
p←v6980 = var←c16468;
};
SOURCE(3576, 14)
(* (( (ptr) end←v6924)+4) ) = 0;
SOURCE(3592, 15)
(* (( (ptr) formal←c0204)+6) ) = ((* (( (ptr) formal←c0204)+6) ) - 1);
}
else {
SOURCE(3618, 8)
prev←v6952 = p←v6980;
SOURCE(3628, 13)
p←v6980 = (* (( (ptr) prev←v6952)+4) );
};
};
goto lab←L100023;
lab←L100021: ;
SOURCE(3655, 28)
if ((list←v6896 != 0)) {
SOURCE(3672, 11)
{
word x←v14612;
x←v14612 = (* (( (ptr) formal←c0204)+4) );
SOURCE(5474, 32)
if ((0 != (* (( (ptr) gf←c0203)+4)/* debug←v3084 */ ))) {
SOURCE(5488, 18)
(void) CheckInvariants←P900(x←v14612);
};
SOURCE(5508, 82)
if (( (int)(* (( (ptr) x←v14612)+4) ) > (int)(* (( (ptr) x←v14612)+5) )) || ( (int)(* (( (ptr) x←v14612)+6) ) > (int)(* (
( (ptr) x←v14612)+7) ))) {
SOURCE(5574, 16)
(void) EnforceLimits←P1020(x←v14612);
};
SOURCE(5592, 32)
if ((0 != (* (( (ptr) gf←c0203)+4)/* debug←v3084 */ ))) {
SOURCE(5606, 18)
(void) CheckInvariants←P900(x←v14612);
};
};
};
SOURCE(3685, 14)
(void) (XR←MonitorExit(* (( (ptr) formal←c0204)+4) ));
(* (( (ptr) formal←c0204)+8) ) = list←v6896;
return(1);
};
/* c2c skipped dead code */
}
static void Release←P540(x←v4760, list←v4788)
word x←v4760;
word list←v4788;
{
register ptr gf←c17268 = (ptr) &globalframe;
/* Release: */
SOURCE(3703, 304)
(void) (XR←MonitorEntry(x←v4760));
SOURCE(3771, 236)
if ((list←v4788 != 0)) {
SOURCE(3790, 219)
{
word p←v7360;
SOURCE(3792, 3)
p←v7360 = list←v4788;
SOURCE(3822, 111)
lab←L100026: ;
SOURCE(3825, 27)
(* (( (ptr) x←v4760)+4) ) = ((* (( (ptr) x←v4760)+4) ) + 1);
SOURCE(3854, 40)
(* (( (ptr) x←v4760)+6) ) = ((* (( (ptr) x←v4760)+6) ) + (* (( (ptr) p←v7360)+3) ));
SOURCE(3896, 21)
if (((* (( (ptr) p←v7360)+4) ) == 0)) {
SOURCE(3917, 4)
goto lab←L100025;
};
SOURCE(3923, 10)
p←v7360 = (* (( (ptr) p←v7360)+4) );
goto lab←L100026;
lab←L100025: ;
SOURCE(3944, 25)
(* (( (ptr) p←v7360)+4) ) = (* (( (ptr) (* (( (ptr) x←v4760)+8) ))+4) );
SOURCE(3971, 23)
(* (( (ptr) (* (( (ptr) x←v4760)+8) ))+4) ) = list←v4788;
SOURCE(3996, 11)
{
word x←v14564;
x←v14564 = x←v4760;
SOURCE(5474, 32)
if ((0 != (* (( (ptr) gf←c17268)+4)/* debug←v3084 */ ))) {
SOURCE(5488, 18)
(void) CheckInvariants←P900(x←v14564);
};
SOURCE(5508, 82)
if (( (int)(* (( (ptr) x←v14564)+4) ) > (int)(* (( (ptr) x←v14564)+5) )) || ( (int)(* (( (ptr) x←v14564)+6) ) > (int)(* (
( (ptr) x←v14564)+7) ))) {
SOURCE(5574, 16)
(void) EnforceLimits←P1020(x←v14564);
};
SOURCE(5592, 32)
if ((0 != (* (( (ptr) gf←c17268)+4)/* debug←v3084 */ ))) {
SOURCE(5606, 18)
(void) CheckInvariants←P900(x←v14564);
};
};
};
};
SOURCE(3703, 304)
(void) (XR←MonitorExit(x←v4760));
return;
}
static void Flush←P600(x←v4932)
word x←v4932;
{
word entries←v7488;
/* Flush: */
SOURCE(4016, 243)
(void) (XR←MonitorEntry(x←v4932));
SOURCE(4056, 9)
entries←v7488 = (* (( (ptr) (* (( (ptr) x←v4932)+8) ))+4) );
SOURCE(4104, 14)
(* (( (ptr) x←v4932)+4) ) = 0;
SOURCE(4120, 15)
(* (( (ptr) x←v4932)+6) ) = 0;
SOURCE(4137, 22)
(* (( (ptr) (* (( (ptr) x←v4932)+8) ))+4) ) = 0;
SOURCE(4161, 98)
lab←L100029: ;
if ((entries←v7488 != 0)) {
}
else {
goto lab←L100027;
};
{
word rest←v7616;
SOURCE(4184, 6)
rest←v7616 = (* (( (ptr) entries←v7488)+4) );
SOURCE(4225, 18)
(* (( (ptr) entries←v7488)+4) ) = 0;
SOURCE(4245, 14)
entries←v7488 = rest←v7616;
};
goto lab←L100029;
lab←L100027: ;
SOURCE(4016, 243)
(void) (XR←MonitorExit(x←v4932));
return;
}
static void GetInfo←P660(formal←c0137, x←v4992)
word formal←c0137;
word x←v4992;
{
word var←c0235;
word var←c0236;
word var←c0237;
word var←c0238;
/* GetInfo: */
SOURCE(4274, 174)
/* Return var split */
(void) (XR←MonitorEntry(x←v4992));
SOURCE(4336, 112)
var←c0235 = (* (( (ptr) x←v4992)+4) );
var←c0236 = (* (( (ptr) x←v4992)+5) );
var←c0237 = (* (( (ptr) x←v4992)+6) );
var←c0238 = (* (( (ptr) x←v4992)+7) );
/* removed tail goto */
(void) (XR←MonitorExit(x←v4992));
(* (( (ptr) formal←c0137)+3) ) = var←c0238;
(* (( (ptr) formal←c0137)+2) ) = var←c0237;
(* (( (ptr) formal←c0137)+1) ) = var←c0236;
(* (ptr) formal←c0137 ) = var←c0235;
return;
}
static word GetList←P720(x←v5096)
word x←v5096;
{
register ptr gf←c17300 = (ptr) &globalframe;
word list←v5140;
word end←v7744 = 0;
/* GetList: */
SOURCE(4452, 264)
(void) (XR←MonitorEntry(x←v5096));
SOURCE(4452, 264)
list←v5140 = 0;
SOURCE(4560, 156)
{
register word p←v7872;
p←v7872 = (* (( (ptr) x←v5096)+8) );
lab←L100035: ;
if ((p←v7872 != 0)) {
}
else {
goto lab←L100032;
};
SOURCE(4623, 93)
if ((end←v7744 == 0)) {
SOURCE(4642, 26)
{
word var←c16564;
{
word var←c16596;
word var←c16628;
var←c16596 = XR←NewObject(20, (* (( (ptr) gf←c17300)+10) ));
var←c16628 = var←c16596;
(* (W4Pt) var←c16628 ) = (* (W4Pt) p←v7872 );
var←c16564 = var←c16596;
};
end←v7744 = var←c16564;
list←v5140 = var←c16564;
};
}
else {
SOURCE(4676, 24)
{
word var←c16660;
word var←c16692;
var←c16660 = XR←NewObject(20, (* (( (ptr) gf←c17300)+10) ));
var←c16692 = var←c16660;
(* (W4Pt) var←c16692 ) = (* (W4Pt) p←v7872 );
(* (( (ptr) end←v7744)+4) ) = var←c16660;
};
SOURCE(4702, 14)
end←v7744 = (* (( (ptr) end←v7744)+4) );
};
p←v7872 = (* (( (ptr) p←v7872)+4) );
goto lab←L100035;
lab←L100032: ;
};
SOURCE(4452, 264)
(void) (XR←MonitorExit(x←v5096));
return(list←v5140);
}
static void SetLimits←P780(x←v5284, maxEntries←v5312, maxTotalSize←v5340)
word x←v5284;
word maxEntries←v5312;
word maxTotalSize←v5340;
{
register ptr gf←c17332 = (ptr) &globalframe;
/* SetLimits: */
SOURCE(4732, 149)
(void) (XR←MonitorEntry(x←v5284));
SOURCE(4812, 25)
(* (( (ptr) x←v5284)+5) ) = maxEntries←v5312;
SOURCE(4839, 29)
(* (( (ptr) x←v5284)+7) ) = maxTotalSize←v5340;
SOURCE(4870, 11)
{
word x←v14516;
x←v14516 = x←v5284;
SOURCE(5474, 32)
if ((0 != (* (( (ptr) gf←c17332)+4)/* debug←v3084 */ ))) {
SOURCE(5488, 18)
(void) CheckInvariants←P900(x←v14516);
};
SOURCE(5508, 82)
if (( (int)(* (( (ptr) x←v14516)+4) ) > (int)(* (( (ptr) x←v14516)+5) )) || ( (int)(* (( (ptr) x←v14516)+6) ) > (int)(* (
( (ptr) x←v14516)+7) ))) {
SOURCE(5574, 16)
(void) EnforceLimits←P1020(x←v14516);
};
SOURCE(5592, 32)
if ((0 != (* (( (ptr) gf←c17332)+4)/* debug←v3084 */ ))) {
SOURCE(5606, 18)
(void) CheckInvariants←P900(x←v14516);
};
};
SOURCE(4732, 149)
(void) (XR←MonitorExit(x←v5284));
return;
}
static void SetValueSize←P840(x←v5400, value←v5428, size←v5456)
word x←v5400;
word value←v5428;
word size←v5456;
{
register ptr gf←c17364 = (ptr) &globalframe;
/* SetValueSize: */
SOURCE(4887, 267)
(void) (XR←MonitorEntry(x←v5400));
SOURCE(4959, 170)
{
register word p←v8000;
p←v8000 = (* (( (ptr) (* (( (ptr) x←v5400)+8) ))+4) );
lab←L100039: ;
if ((p←v8000 != 0)) {
}
else {
goto lab←L100036;
};
SOURCE(5029, 100)
if (((* (( (ptr) p←v8000)+2) ) == value←v5428)) {
SOURCE(5061, 47)
(* (( (ptr) x←v5400)+6) ) = (((* (( (ptr) x←v5400)+6) ) - (* (( (ptr) p←v8000)+3) )) + size←v5456);
SOURCE(5110, 19)
(* (( (ptr) p←v8000)+3) ) = size←v5456;
};
p←v8000 = (* (( (ptr) p←v8000)+4) );
goto lab←L100039;
lab←L100036: ;
};
SOURCE(5143, 11)
{
word x←v14468;
x←v14468 = x←v5400;
SOURCE(5474, 32)
if ((0 != (* (( (ptr) gf←c17364)+4)/* debug←v3084 */ ))) {
SOURCE(5488, 18)
(void) CheckInvariants←P900(x←v14468);
};
SOURCE(5508, 82)
if (( (int)(* (( (ptr) x←v14468)+4) ) > (int)(* (( (ptr) x←v14468)+5) )) || ( (int)(* (( (ptr) x←v14468)+6) ) > (int)(* (
( (ptr) x←v14468)+7) ))) {
SOURCE(5574, 16)
(void) EnforceLimits←P1020(x←v14468);
};
SOURCE(5592, 32)
if ((0 != (* (( (ptr) gf←c17364)+4)/* debug←v3084 */ ))) {
SOURCE(5606, 18)
(void) CheckInvariants←P900(x←v14468);
};
};
SOURCE(4887, 267)
(void) (XR←MonitorExit(x←v5400));
return;
}
static void CheckInvariants←P900(x←v5516)
word x←v5516;
{
word n←v8128 = 0;
word s←v8156 = 0;
/* CheckInvariants: */
SOURCE(5160, 236)
SOURCE(5230, 101)
{
register word p←v8200;
p←v8200 = (* (( (ptr) (* (( (ptr) x←v5516)+8) ))+4) );
lab←L100043: ;
if ((p←v8200 != 0)) {
}
else {
goto lab←L100040;
};
SOURCE(5300, 9)
n←v8128 = (n←v8128 + 1);
SOURCE(5311, 20)
s←v8156 = (s←v8156 + (* (( (ptr) p←v8200)+3) ));
p←v8200 = (* (( (ptr) p←v8200)+4) );
goto lab←L100043;
lab←L100040: ;
};
SOURCE(5342, 23)
if (( (int)n←v8128 != (int)(* (( (ptr) x←v5516)+4) ))) {
SOURCE(5365, 5)
(void) XR←RaiseUnnamedError();
};
SOURCE(5372, 24)
if (( (int)s←v8156 != (int)(* (( (ptr) x←v5516)+6) ))) {
SOURCE(5396, 5)
(void) XR←RaiseUnnamedError();
};
}
static void EnforceLimits←P1020(x←v5636)
word x←v5636;
{
register ptr gf←c17396 = (ptr) &globalframe;
word e←v8328 = 0;
word s←v8356 = 0;
word emax←v8384;
word smax←v8412;
word last←v8440;
word p←v8468 = 0;
/* EnforceLimits: */
SOURCE(5678, 577)
SOURCE(5746, 24)
emax←v8384 = (* (( (ptr) x←v5636)+5) );
SOURCE(5772, 26)
smax←v8412 = (* (( (ptr) x←v5636)+7) );
SOURCE(5800, 6)
last←v8440 = (* (( (ptr) x←v5636)+8) );
SOURCE(5863, 111)
lab←L100046: ;
{
word tc40;
word tc41;
p←v8468 = (* (( (ptr) last←v8440)+4) );
if ((p←v8468 != 0)) {
tc41 = (word) ( (int)(e←v8328 + 1) <= (int)emax←v8384);
}
else {
tc41 = (word) 0;
};
if (tc41) {
tc40 = (word) ( (int)(s←v8356 + (* (( (ptr) p←v8468)+3) )) <= (int)smax←v8412);
}
else {
tc40 = (word) 0;
};
if (tc40) {
}
else {
goto lab←L100044;
};
};
SOURCE(5933, 9)
e←v8328 = (e←v8328 + 1);
SOURCE(5944, 20)
s←v8356 = (s←v8356 + (* (( (ptr) p←v8468)+3) ));
SOURCE(5966, 8)
last←v8440 = p←v8468;
goto lab←L100046;
lab←L100044: ;
SOURCE(5985, 43)
(* (( (ptr) gf←c17396)+6)/* trimmedSize←v3168 */ ) = (((* (( (ptr) x←v5636)+6) ) - s←v8356) + (* (( (ptr) gf←c17396)+6)/* trimmedSize←v3168 */ ));
SOURCE(6030, 15)
(* (( (ptr) last←v8440)+4) ) = 0;
SOURCE(6047, 14)
(* (( (ptr) x←v5636)+4) ) = e←v8328;
SOURCE(6063, 15)
(* (( (ptr) x←v5636)+6) ) = s←v8356;
SOURCE(6080, 113)
lab←L100049: ;
if ((p←v8468 != 0)) {
}
else {
goto lab←L100047;
};
{
word t←v8680;
SOURCE(6097, 3)
t←v8680 = (* (( (ptr) p←v8468)+4) );
SOURCE(6129, 22)
(* (( (ptr) p←v8468)+1) ) = 0;
SOURCE(6153, 19)
(* (( (ptr) p←v8468)+2) ) = 0;
SOURCE(6174, 12)
(* (( (ptr) p←v8468)+4) ) = 0;
SOURCE(6188, 5)
p←v8468 = t←v8680;
};
goto lab←L100049;
lab←L100047: ;
SOURCE(6204, 51)
if (( (int)(* (( (ptr) gf←c17396)+6)/* trimmedSize←v3168 */ ) > (int)(* (( (ptr) gf←c17396)+5)/* triggerSize←v3140 */ ))) {
SOURCE(6240, 15)
(* (( (ptr) gf←c17396)+6)/* trimmedSize←v3168 */ ) = 0;
};
}
static word GlobalCache←P1080()
{
register ptr gf←c17428 = (ptr) &globalframe;
word var←c5696;
/* GlobalCache: */
SOURCE(6264, 66)
SOURCE(6309, 21)
return((* (( (ptr) gf←c17428)+7)/* globalCache←v3252 */ ));
}
static word Example←P1140(formal←c0234)
word formal←c0234;
{
W7 var←c17460;
/* declaration of n←v5756 skipped */
register ptr gf←c17492 = (ptr) &globalframe;
word result←v5800;
/* declaration of var←c16724 skipped */
word cache←v8808;
word val←v8864 = 0;
word ok←v8892;
var←c17460.f4/* n←v5756 */ = formal←c0234;
/* Example: */
SOURCE(6435, 516)
{
word tmpAddr42;
tmpAddr42 = (word) (( (ptr) &var←c17460)+5)/* var←c16724 */ ;
(* (ptr) tmpAddr42 ) = ( ((word) (fPt) compare←P2328) );
(* (( (ptr) tmpAddr42) + 1) ) = 1;
};
SOURCE(6435, 516)
result←v5800 = 0;
SOURCE(6492, 28)
cache←v8808 = (word) GlobalCache←P1080();
SOURCE(6661, 49)
{
W2 var←c16756;
(void) Lookup←P360((word) &var←c16756, cache←v8808, (word) (( (bPt) &var←c17460)+20)/* var←c16724 */ , (* (( (ptr) gf←c17492)+20)
));
ok←v8892 = var←c16756.f1;
val←v8864 = var←c16756.f0;
};
SOURCE(6712, 239)
if ((0 != ok←v8892)) {
SOURCE(6723, 26)
result←v5800 = XR←Narrow(val←v8864, (* (( (ptr) gf←c17492)+19) ));
}
else {
SOURCE(6751, 15)
result←v5800 = 0;
SOURCE(6768, 59)
{
register word i←v8948;
i←v8948 = var←c17460.f4/* n←v5756 */ ;
if (( (int)1 > (int)i←v8948)) {
goto lab←L100050;
};
lab←L100053: ;
SOURCE(6803, 24)
{
word var←c16788;
var←c16788 = XR←NewObject(8, (* (( (ptr) gf←c17492)+19) ));
(* (ptr) var←c16788 ) = i←v8948;
(* (( (ptr) var←c16788)+1) ) = result←v5800;
result←v5800 = var←c16788;
};
if (( (int)1 >= (int)i←v8948)) {
goto lab←L100050;
};
i←v8948 = (i←v8948 - 1);
goto lab←L100053;
lab←L100050: ;
};
SOURCE(6838, 113)
{
word var←c16820;
{
word var←c16852;
var←c16852 = XR←NewObject(4, (* (( (ptr) gf←c17492)+12) ));
(* (ptr) var←c16852 ) = var←c17460.f4/* n←v5756 */ ;
var←c16820 = var←c16852;
};
(void) Insert←P300(cache←v8808, var←c16820, result←v5800, IOP2( * , (int)var←c17460.f4/* n←v5756 */ , (int)10), (* (( (ptr) gf←c17492)+20)
));
};
};
SOURCE(6435, 516)
return(result←v5800);
}
static word compare←P2328(argument←v14232, formal←c17556)
word argument←v14232;
word formal←c17556;
{
register ptr gf←c17524 = (ptr) &globalframe;
word good←v14276;
formal←c17556 = (formal←c17556 - 20);
/* compare: */
SOURCE(6522, 105)
SOURCE(6547, 12)
good←v14276 = 0;
SOURCE(6561, 66)
{
word var←c16884;
var←c16884 = argument←v14232;
if ((var←c16884 == 0)) {
goto lab←L100054;
};
if (((* (( (ptr) gf←c17524)+12) ) == XR←GetReferentType(var←c16884))) {
{
word i←v9004;
i←v9004 = var←c16884;
SOURCE(6601, 26)
if (( (int)(* (ptr) i←v9004 ) == (int)(* (( (ptr) formal←c17556)+4) ))) {
SOURCE(6616, 11)
good←v14276 = 1;
};
};
}
else {
lab←L100054: ;
};
};
SOURCE(6522, 105)
return(good←v14276);
}
static void NoName←Q3060(formal←c0189, formal←c200004, formal←c200005, formal←c200006, formal←c200007)
word formal←c0189;
word formal←c200004;
word formal←c200005;
word formal←c200006;
word formal←c200007;
{
if ((formal←c200005 == XR←Unwind)) {
(void) (XR←MonitorExit(* (( (ptr) formal←c200004)+4) ));
};
(* (ptr) formal←c0189 ) = 0;
(* (( (ptr) formal←c0189)+1) ) = 0;
return;
}
static void NoName←Q3120(formal←c0194, formal←c200000, formal←c200001, formal←c200002, formal←c200003)
word formal←c0194;
word formal←c200000;
word formal←c200001;
word formal←c200002;
word formal←c200003;
{
if ((formal←c200001 == XR←Unwind)) {
(void) (XR←MonitorExit(* (( (ptr) formal←c200000)+4) ));
};
(* (ptr) formal←c0194 ) = 0;
(* (( (ptr) formal←c0194)+1) ) = 0;
return;
}
/* file: FunctionCacheImpl, module: FunctionCacheImpl, compiled at: July 28, 1993 10:13:34 am PDT */
extern void XR←install←FunctionCacheImpl() {
NoName←Q2880();
}
extern void XR←run←FunctionCacheImpl() { XR←Start(&globalframe); }