/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1992 by Xerox Corporation. All rights reserved. */
/* time: September 24, 1992 12:03:38 pm PDT */
/* C2C version: October 16, 1990 (native) */
/* ref-counting: off */
/* file: BasicsImpl, module: BasicsImpl */
/* switches: bcfhklnouw */
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
#ifdef sparc
#define AssemblyMoveAndFillWordsHelp() 1
#define Basics←MoveWords Basics←MoveWords←Soft
#define Basics←FillWords Basics←FillWords←Soft
#else
#define AssemblyMoveAndFillWordsHelp() 0
#endif
#define XRM←BITLSHIFT(x, y) ((word)(x) << (word)(y))
#define XRM←BITRSHIFT(x, y) ((word)(x) >> (word)(y))
#define XRM←BITAND(x, y) (((word)(x)) & ((word)(y)))
#define XRM←BITXOR(x, y) (((word)(x)) ↑ ((word)(y)))
static char versionStamp[] = "@(#)mob←version [328260979,740860657] BasicsImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef word (*fPt)();
typedef struct {word f0, f1, f2;} W3;
#define SOURCE(p, l) /* source p, l */
#define INEG(x) ( (word) ( - ((int) (word) (x)) ) )
#define MIN(cast, x, y) ( ( cast x) < ( cast y) ? (x) : (y) )
#define MAX(cast, x, y) ( ( cast x) > ( cast y) ? (x) : (y) )
static void NoName←Q6744();
static void BasicsImpl←P0();
extern void Basics←CopyWords();
extern void Basics←MoveWords();
extern void Basics←FillWords();
extern void Basics←CopyBytes();
extern void Basics←MoveBytes();
extern void Basics←FillBytes();
extern void Basics←RegisterLogMisalign();
extern void Basics←CopyBits();
extern void Basics←CopyBitsDecreasing();
extern void Basics←MoveBits();
extern void Basics←FillBits();
extern word Basics←CompareBits();
extern word Basics←BITSHIFT();
extern word Basics←ByteBlt();
static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\023\220\335\163\300\054\050\242\361\100\164\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;
} globalframe = {
{0}, (word) Basics←ByteBlt, 0, (word) Basics←BITSHIFT,
0, (word) Basics←CompareBits, 0, (word) Basics←FillBits,
0, (word) Basics←MoveBits, 0, (word) Basics←CopyBitsDecreasing,
0, (word) Basics←CopyBits, 0, (word) Basics←RegisterLogMisalign,
0, (word) Basics←FillBytes, 0, (word) Basics←MoveBytes,
0, (word) Basics←CopyBytes, 0, (word) Basics←FillWords,
0, (word) Basics←MoveWords, 0, (word) Basics←CopyWords,
0, (word) BasicsImpl←P0, 0
};
static void NoName←Q6744()
{
register ptr gf←c0435 = (ptr) &globalframe;
(void) XR←DeclareGlobalFrame((word) "BasicsImpl", &globalframe, (word) XR←GetTypeIndexS((word) (&string1)), (word) (( (bPt) gf←c0435)+136)
/* var←c17592 */ );
}
static void BasicsImpl←P0(formal←c019, formal←c018)
word formal←c019;
word formal←c018;
{
register ptr gf←c24216 = (ptr) &globalframe;
/* BasicsImpl: */
SOURCE(19, 17807)
SOURCE(717, 59)
(* (( (ptr) gf←c24216)+4)/* assemblyMoveAndFillWords←v2468 */ ) = (word) AssemblyMoveAndFillWordsHelp();
}
extern void Basics←CopyWords(dst←v3964, src←v3992, count←v4020)
word dst←v3964;
word src←v3992;
word count←v4020;
{
/* CopyWords: */
SOURCE(1807, 160)
SOURCE(1908, 59)
{
register word i←v6240 = 0;
register word noName←c17624;
noName←c17624 = count←v4020;
if ((i←v6240 >= noName←c17624)) {
goto lab←L100000;
};
lab←L100003: ;
SOURCE(1949, 18)
SOURCE(1951, 16)
(* (( (ptr) dst←v3964)+i←v6240) ) = (* (( (ptr) src←v3992)+i←v6240) );
i←v6240 = (i←v6240 + 1);
if ((i←v6240 < noName←c17624)) {
goto lab←L100003;
};
lab←L100000: ;
};
}
extern void Basics←MoveWords(dst←v4104, src←v4132, count←v4160)
word dst←v4104;
word src←v4132;
word count←v4160;
{
/* MoveWords: */
SOURCE(1983, 299)
SOURCE(2084, 198)
if ((dst←v4104 < src←v4132)) {
SOURCE(2134, 58)
{
register word i←v6284 = 0;
register word noName←c17656;
noName←c17656 = count←v4160;
if ((i←v6284 >= noName←c17656)) {
goto lab←L100004;
};
lab←L100007: ;
SOURCE(2174, 18)
SOURCE(2176, 16)
(* (( (ptr) dst←v4104)+i←v6284) ) = (* (( (ptr) src←v4132)+i←v6284) );
i←v6284 = (i←v6284 + 1);
if ((i←v6284 < noName←c17656)) {
goto lab←L100007;
};
lab←L100004: ;
};
}
else {
SOURCE(2213, 69)
{
register word i←v6328;
i←v6328 = count←v4160;
if ((0 >= i←v6328)) {
goto lab←L100008;
};
i←v6328 = (i←v6328 - 1);
lab←L100011: ;
SOURCE(2264, 18)
SOURCE(2266, 16)
(* (( (ptr) dst←v4104)+i←v6328) ) = (* (( (ptr) src←v4132)+i←v6328) );
if ((0 >= i←v6328)) {
goto lab←L100008;
};
i←v6328 = (i←v6328 - 1);
goto lab←L100011;
lab←L100008: ;
};
};
}
extern void Basics←FillWords(dst←v4244, count←v4272, value←v4300)
word dst←v4244;
word count←v4272;
word value←v4300;
{
word p←v6372;
/* FillWords: */
SOURCE(2301, 412)
SOURCE(2398, 55)
p←v6372 = dst←v4244;
SOURCE(2455, 129)
lab←L100014: ;
if ((count←v4272 >= 4)) {
}
else {
goto lab←L100012;
};
SOURCE(2475, 12)
(* (ptr) p←v6372 ) = value←v4300;
SOURCE(2489, 12)
(* (( (ptr) p←v6372)+1) ) = value←v4300;
SOURCE(2503, 12)
(* (( (ptr) p←v6372)+2) ) = value←v4300;
SOURCE(2517, 12)
(* (( (ptr) p←v6372)+3) ) = value←v4300;
SOURCE(2531, 34)
p←v6372 = (p←v6372 + 16);
SOURCE(2567, 17)
count←v4272 = (count←v4272 - 4);
goto lab←L100014;
lab←L100012: ;
SOURCE(2595, 24)
if ((count←v4272 == 0)) {
SOURCE(2613, 6)
return;
};
SOURCE(2621, 12)
(* (ptr) p←v6372 ) = value←v4300;
SOURCE(2635, 24)
if ((count←v4272 == 1)) {
SOURCE(2653, 6)
return;
};
SOURCE(2661, 12)
(* (( (ptr) p←v6372)+1) ) = value←v4300;
SOURCE(2675, 24)
if ((count←v4272 == 2)) {
SOURCE(2693, 6)
return;
};
SOURCE(2701, 12)
(* (( (ptr) p←v6372)+2) ) = value←v4300;
}
extern void Basics←CopyBytes(dstBase←v4372, dstStart←v4400, srcBase←v4428, srcStart←v4456, count←v4484)
word dstBase←v4372;
word dstStart←v4400;
word srcBase←v4428;
word srcStart←v4456;
word count←v4484;
{
/* CopyBytes: */
SOURCE(2718, 475)
SOURCE(2867, 53)
if ((count←v4484 > ( (word) -1 - dstStart←v4400))) {
SOURCE(2902, 18)
(void) XR←RaiseBoundsFault();
};
SOURCE(2922, 53)
if ((count←v4484 > ( (word) -1 - srcStart←v4456))) {
SOURCE(2957, 18)
(void) XR←RaiseBoundsFault();
};
SOURCE(2977, 61)
if ((count←v4484 >= 16777216)) {
SOURCE(3020, 18)
(void) XR←RaiseBoundsFault();
};
SOURCE(3040, 153)
(void) Basics←CopyBits(dstBase←v4372, (dstStart←v4400 << 3), srcBase←v4428, (srcStart←v4456 << 3), (count←v4484 << 3));
}
extern void Basics←MoveBytes(dstBase←v4568, dstStart←v4596, srcBase←v4624, srcStart←v4652, count←v4680)
word dstBase←v4568;
word dstStart←v4596;
word srcBase←v4624;
word srcStart←v4652;
word count←v4680;
{
word d0←v6500;
word s0←v6528;
/* MoveBytes: */
SOURCE(3199, 756)
SOURCE(3340, 55)
d0←v6500 = (dstBase←v4568 + dstStart←v4596);
SOURCE(3397, 55)
s0←v6528 = (srcBase←v4624 + srcStart←v4652);
SOURCE(3454, 53)
if ((count←v4680 > ( (word) -1 - dstStart←v4596))) {
SOURCE(3489, 18)
(void) XR←RaiseBoundsFault();
};
SOURCE(3509, 53)
if ((count←v4680 > ( (word) -1 - srcStart←v4652))) {
SOURCE(3544, 18)
(void) XR←RaiseBoundsFault();
};
SOURCE(3564, 61)
if ((count←v4680 >= 16777216)) {
SOURCE(3607, 18)
(void) XR←RaiseBoundsFault();
};
SOURCE(3627, 328)
if ( ( (d0←v6500 > s0←v6528) ? (d0←v6500 < (s0←v6528 + count←v4680)) : 0 ) ) {
SOURCE(3676, 95)
{
register word i←v6572;
i←v6572 = count←v4680;
if ((0 >= i←v6572)) {
goto lab←L100015;
};
i←v6572 = (i←v6572 - 1);
lab←L100018: ;
SOURCE(3727, 44)
SOURCE(3729, 42)
(* (( (bPt) dstBase←v4568)+(dstStart←v4596 + i←v6572)) ) = (word) (* (( (bPt) srcBase←v4624)+(srcStart←v4652 + i←v6572)) );
if ((0 >= i←v6572)) {
goto lab←L100015;
};
i←v6572 = (i←v6572 - 1);
goto lab←L100018;
lab←L100015: ;
};
}
else {
SOURCE(3798, 157)
SOURCE(3800, 153)
(void) Basics←CopyBits(dstBase←v4568, (dstStart←v4596 << 3), srcBase←v4624, (srcStart←v4652 << 3), (count←v4680 << 3));
};
}
extern void Basics←FillBytes(dstBase←v4764, dstStart←v4792, count←v4820, value←v4848)
word dstBase←v4764;
word dstStart←v4792;
word count←v4820;
word value←v4848;
{
word wordValue←v6616;
/* FillBytes: */
SOURCE(3962, 315)
SOURCE(4077, 36)
wordValue←v6616 = (value←v4848 + (value←v4848 << 8));
SOURCE(4115, 36)
wordValue←v6616 = (wordValue←v6616 + (value←v4848 << 16));
SOURCE(4161, 116)
SOURCE(4163, 112)
(void) Basics←FillBits(dstBase←v4764, (dstStart←v4792 << 3), (count←v4820 << 3), wordValue←v6616);
}
extern void Basics←RegisterLogMisalign(p←v4936)
word p←v4936;
{
register ptr gf←c24248 = (ptr) &globalframe;
/* RegisterLogMisalign: */
SOURCE(4308, 55)
SOURCE(4348, 15)
(* (( (ptr) gf←c24248)+5)/* logMisalign←v2916 */ ) = XR←CheckProc(p←v4936);
}
extern void Basics←CopyBits(dstBase←v5012, dstStart←v5040, srcBase←v5068, srcStart←v5096, count←v5124)
word dstBase←v5012;
word dstStart←v5040;
word srcBase←v5068;
word srcStart←v5096;
word count←v5124;
{
register ptr gf←c24280 = (ptr) &globalframe;
word dstCorr←v6660;
word srcCorr←v6688;
/* CopyBits: */
SOURCE(4368, 3505)
SOURCE(4514, 55)
dstCorr←v6660 = (dstBase←v5012 & 3);
SOURCE(4571, 55)
srcCorr←v6688 = (srcBase←v5068 & 3);
SOURCE(4628, 214)
if (((dstCorr←v6660 + srcCorr←v6688) != 0)) {
SOURCE(4656, 188)
{
word p←v6732;
SOURCE(4658, 21)
p←v6732 = (* (( (ptr) gf←c24280)+5)/* logMisalign←v2916 */ );
SOURCE(4681, 19)
if ((p←v6732 != 0)) {
SOURCE(4697, 3)
(void) ( *( (fPt) ((* (ptr) p←v6732 ))))(p←v6732);
};
SOURCE(4702, 27)
dstBase←v5012 = (dstBase←v5012 - dstCorr←v6660);
SOURCE(4731, 40)
dstStart←v5040 = (dstStart←v5040 + (dstCorr←v6660 << 3));
SOURCE(4773, 27)
srcBase←v5068 = (srcBase←v5068 - srcCorr←v6688);
SOURCE(4802, 40)
srcStart←v5096 = (srcStart←v5096 + (srcCorr←v6688 << 3));
};
};
SOURCE(4847, 3026)
if ((count←v5124 != 0)) {
SOURCE(4865, 3016)
{
word dst←v6792;
word dstBit←v6820;
word src←v6848;
word srcBit←v6876;
word ndw←v6904;
word lMask←v6932;
word rMask←v6960;
SOURCE(4867, 58)
{
word base←v12804;
base←v12804 = dstBase←v5012;
SOURCE(1634, 64)
dst←v6792 = (base←v12804 + ((dstStart←v5040 >> 5) << 2));
};
SOURCE(4927, 33)
dstBit←v6820 = (dstStart←v5040 & 037);
SOURCE(4962, 58)
{
word base←v12756;
base←v12756 = srcBase←v5068;
SOURCE(1634, 64)
src←v6848 = (base←v12756 + ((srcStart←v5096 >> 5) << 2));
};
SOURCE(5022, 33)
srcBit←v6876 = (srcStart←v5096 & 037);
SOURCE(5057, 40)
{
word bits←v12084;
bits←v12084 = (dstBit←v6820 + count←v5124);
SOURCE(1262, 32)
ndw←v6904 = ((bits←v12084 + 31) >> 5);
};
SOURCE(5099, 44)
{
word n←v12276;
n←v12276 = (32 - dstBit←v6820);
SOURCE(1363, 45)
lMask←v6932 = (((word) XRM←BITLSHIFT(1, (n←v12276 & 037)) - 1) - (n←v12276 >> 5));
};
SOURCE(5145, 77)
{
word n←v12468;
n←v12468 = (((32 - dstBit←v6820) - count←v5124) & 037);
SOURCE(1476, 43)
rMask←v6960 = INEG((word) XRM←BITRSHIFT(2147483648, (31 - n←v12468)));
};
SOURCE(5224, 2649)
if ((dstBit←v6820 == srcBit←v6876)) {
SOURCE(5277, 809)
{
word var←c17912;
var←c17912 = ndw←v6904;
switch (var←c17912) {
case 1:
SOURCE(5306, 53)
SOURCE(5308, 49)
{
word var←c17944;
{
word var←c17976;
word d←v15340;
word s←v15368;
word mask←v15396;
d←v15340 = (* (ptr) dst←v6792 );
s←v15368 = (* (ptr) src←v6848 );
mask←v15396 = (word) XRM←BITAND(lMask←v6932, rMask←v6960);
SOURCE(1756, 47)
{
/*1*/ word var←c18040;
/*1*/ {
/*1*/ word var←c18072;
/*1*/ var←c18072 = (word) XRM←BITXOR(s←v15368, d←v15340);
/*1*/ var←c18040 = (word) XRM←BITAND(var←c18072, mask←v15396);
/*1*/ };
/*1*/ var←c17976 = (word) XRM←BITXOR(var←c18040, d←v15340);
/*1*/ };
var←c17944 = var←c17976;
};
(* (ptr) dst←v6792 ) = var←c17944;
};
break;
case 2:
SOURCE(5375, 74)
SOURCE(5377, 34)
{
word var←c18104;
{
word var←c18136;
word d←v15264;
word s←v15292;
d←v15264 = (* (ptr) dst←v6792 );
s←v15292 = (* (ptr) src←v6848 );
SOURCE(1756, 47)
{
/*1*/ word var←c18200;
/*1*/ {
/*1*/ word var←c18232;
/*1*/ var←c18232 = (word) XRM←BITXOR(s←v15292, d←v15264);
/*1*/ var←c18200 = (word) XRM←BITAND(var←c18232, lMask←v6932);
/*1*/ };
/*1*/ var←c18136 = (word) XRM←BITXOR(var←c18200, d←v15264);
/*1*/ };
var←c18104 = var←c18136;
};
(* (ptr) dst←v6792 ) = var←c18104;
};
SOURCE(5413, 34)
{
word var←c18264;
{
word var←c18296;
word d←v15188;
word s←v15216;
d←v15188 = (* (( (ptr) dst←v6792)+1) );
s←v15216 = (* (( (ptr) src←v6848)+1) );
SOURCE(1756, 47)
{
/*1*/ word var←c18360;
/*1*/ {
/*1*/ word var←c18392;
/*1*/ var←c18392 = (word) XRM←BITXOR(s←v15216, d←v15188);
/*1*/ var←c18360 = (word) XRM←BITAND(var←c18392, rMask←v6960);
/*1*/ };
/*1*/ var←c18296 = (word) XRM←BITXOR(var←c18360, d←v15188);
/*1*/ };
var←c18264 = var←c18296;
};
(* (( (ptr) dst←v6792)+1) ) = var←c18264;
};
break;
case 3:
SOURCE(5465, 92)
SOURCE(5467, 34)
{
word var←c18424;
{
word var←c18456;
word d←v15112;
word s←v15140;
d←v15112 = (* (ptr) dst←v6792 );
s←v15140 = (* (ptr) src←v6848 );
SOURCE(1756, 47)
{
/*1*/ word var←c18520;
/*1*/ {
/*1*/ word var←c18552;
/*1*/ var←c18552 = (word) XRM←BITXOR(s←v15140, d←v15112);
/*1*/ var←c18520 = (word) XRM←BITAND(var←c18552, lMask←v6932);
/*1*/ };
/*1*/ var←c18456 = (word) XRM←BITXOR(var←c18520, d←v15112);
/*1*/ };
var←c18424 = var←c18456;
};
(* (ptr) dst←v6792 ) = var←c18424;
};
SOURCE(5503, 16)
(* (( (ptr) dst←v6792)+1) ) = (* (( (ptr) src←v6848)+1) );
SOURCE(5521, 34)
{
word var←c18584;
{
word var←c18616;
word d←v15036;
word s←v15064;
d←v15036 = (* (( (ptr) dst←v6792)+2) );
s←v15064 = (* (( (ptr) src←v6848)+2) );
SOURCE(1756, 47)
{
/*1*/ word var←c18680;
/*1*/ {
/*1*/ word var←c18712;
/*1*/ var←c18712 = (word) XRM←BITXOR(s←v15064, d←v15036);
/*1*/ var←c18680 = (word) XRM←BITAND(var←c18712, rMask←v6960);
/*1*/ };
/*1*/ var←c18616 = (word) XRM←BITXOR(var←c18680, d←v15036);
/*1*/ };
var←c18584 = var←c18616;
};
(* (( (ptr) dst←v6792)+2) ) = var←c18584;
};
break;
default:
SOURCE(5579, 509)
{
word nw←v7028;
SOURCE(5581, 32)
nw←v7028 = (ndw←v6904 - 2);
SOURCE(5615, 34)
{
word var←c18744;
{
/*1*/ word var←c18776;
/*1*/ word d←v14960;
/*1*/ word s←v14988;
/*1*/ d←v14960 = (* (ptr) dst←v6792 );
/*1*/ s←v14988 = (* (ptr) src←v6848 );
SOURCE(1756, 47)
/*1*/ {
/*1*/ word var←c18840;
/*1*/ {
/*1*/ word var←c18872;
/*1*/ var←c18872 = (word) XRM←BITXOR(s←v14988, d←v14960);
/*1*/ var←c18840 = (word) XRM←BITAND(var←c18872, lMask←v6932);
/*1*/ };
/*1*/ var←c18776 = (word) XRM←BITXOR(var←c18840, d←v14960);
/*1*/ };
/*1*/ var←c18744 = var←c18776;
/*1*/ };
(* (ptr) dst←v6792 ) = var←c18744;
};
SOURCE(5651, 21)
dst←v6792 = (dst←v6792 + 4);
SOURCE(5674, 21)
src←v6848 = (src←v6848 + 4);
SOURCE(5697, 146)
lab←L100032: ;
if ((nw←v7028 >= 4)) {
}
else {
goto lab←L100030;
};
SOURCE(5714, 15)
(* (ptr) dst←v6792 ) = (* (ptr) src←v6848 );
SOURCE(5731, 15)
(* (( (ptr) dst←v6792)+1) ) = (* (( (ptr) src←v6848)+1) );
SOURCE(5748, 15)
(* (( (ptr) dst←v6792)+2) ) = (* (( (ptr) src←v6848)+2) );
SOURCE(5765, 15)
(* (( (ptr) dst←v6792)+3) ) = (* (( (ptr) src←v6848)+3) );
SOURCE(5782, 23)
dst←v6792 = (dst←v6792 + 16);
SOURCE(5807, 23)
src←v6848 = (src←v6848 + 16);
SOURCE(5832, 11)
nw←v7028 = (nw←v7028 - 4);
goto lab←L100032;
lab←L100030: ;
SOURCE(5854, 111)
if ((nw←v7028 >= 2)) {
SOURCE(5872, 15)
(* (ptr) dst←v6792 ) = (* (ptr) src←v6848 );
SOURCE(5889, 15)
(* (( (ptr) dst←v6792)+1) ) = (* (( (ptr) src←v6848)+1) );
SOURCE(5906, 22)
dst←v6792 = (dst←v6792 + 8);
SOURCE(5930, 22)
src←v6848 = (src←v6848 + 8);
SOURCE(5954, 11)
nw←v7028 = (nw←v7028 - 2);
};
SOURCE(5970, 77)
if ((nw←v7028 != 0)) {
SOURCE(5987, 16)
(* (ptr) dst←v6792 ) = (* (ptr) src←v6848 );
SOURCE(6005, 20)
dst←v6792 = (dst←v6792 + 4);
SOURCE(6027, 20)
src←v6848 = (src←v6848 + 4);
};
SOURCE(6052, 34)
{
word var←c18904;
{
/*1*/ word var←c18936;
/*1*/ word d←v14884;
/*1*/ word s←v14912;
/*1*/ d←v14884 = (* (ptr) dst←v6792 );
/*1*/ s←v14912 = (* (ptr) src←v6848 );
SOURCE(1756, 47)
/*1*/ {
/*1*/ word var←c19000;
/*1*/ {
/*1*/ word var←c19032;
/*1*/ var←c19032 = (word) XRM←BITXOR(s←v14912, d←v14884);
/*1*/ var←c19000 = (word) XRM←BITAND(var←c19032, rMask←v6960);
/*1*/ };
/*1*/ var←c18936 = (word) XRM←BITXOR(var←c19000, d←v14884);
/*1*/ };
/*1*/ var←c18904 = var←c18936;
/*1*/ };
(* (ptr) dst←v6792 ) = var←c18904;
};
};
break;
};
};
}
else {
SOURCE(6098, 1780)
{
word w←v7072 = 0;
word hi←v7100;
word lo←v7128 = 0;
word lSA←v7156;
word rSA←v7184;
word nsw←v7212;
word fetchLastWord←v7240;
SOURCE(6258, 55)
lSA←v7156 = ((srcBit←v6876 - dstBit←v6820) & 037);
SOURCE(6336, 51)
rSA←v7184 = ((32 - lSA←v7156) & 037);
SOURCE(6443, 40)
{
word bits←v12036;
bits←v12036 = (srcBit←v6876 + count←v5124);
SOURCE(1262, 32)
nsw←v7212 = ((bits←v12036 + 31) >> 5);
};
SOURCE(6485, 72)
fetchLastWord←v7240 = ( (srcBit←v6876 >= dstBit←v6820) ? (nsw←v7212 > ndw←v6904) : (nsw←v7212 >= ndw←v6904) ) ;
SOURCE(6971, 36)
if ((srcBit←v6876 >= dstBit←v6820)) {
SOURCE(6996, 11)
SOURCE(6586, 7)
hi←v7100 = lo←v7128;
SOURCE(6603, 12)
SOURCE(6604, 11)
lo←v7128 = (* (ptr) src←v6848 );
SOURCE(6618, 20)
src←v6848 = (src←v6848 + 4);
SOURCE(6640, 42)
w←v7072 = ((word) XRM←BITLSHIFT(hi←v7100, lSA←v7156) + (word) XRM←BITRSHIFT(lo←v7128, rSA←v7184));
};
SOURCE(7009, 864)
{
word var←c19096;
var←c19096 = ndw←v6904;
switch (var←c19096) {
case 1:
SOURCE(7038, 104)
{
word bothMask←v7532;
SOURCE(7040, 37)
bothMask←v7532 = (word) XRM←BITAND(lMask←v6932, rMask←v6960);
SOURCE(7079, 27)
SOURCE(6879, 22)
w←v7072 = (word) XRM←BITLSHIFT(lo←v7128, lSA←v7156);
SOURCE(6903, 62)
if ((0 != fetchLastWord←v7240)) {
SOURCE(6925, 40)
SOURCE(6926, 39)
/*1*/ w←v7072 = (w←v7072 + (word) XRM←BITRSHIFT((* (ptr) src←v6848 ), rSA←v7184));
/*1*/ };
SOURCE(7108, 32)
{
/*1*/ word var←c19128;
/*1*/ {
/*1*/ word var←c19160;
/*1*/ word d←v14808;
/*1*/ word s←v14836;
/*1*/ d←v14808 = (* (ptr) dst←v6792 );
/*1*/ s←v14836 = w←v7072;
SOURCE(1756, 47)
/*1*/ {
/*1*/ word var←c19224;
/*1*/ {
/*1*/ word var←c19256;
/*1*/ var←c19256 = (word) XRM←BITXOR(s←v14836, d←v14808);
/*1*/ var←c19224 = (word) XRM←BITAND(var←c19256, bothMask←v7532);
/*1*/ };
/*1*/ var←c19160 = (word) XRM←BITXOR(var←c19224, d←v14808);
/*1*/ };
/*1*/ var←c19128 = var←c19160;
/*1*/ };
/*1*/ (* (ptr) dst←v6792 ) = var←c19128;
/*1*/ };
};
break;
case 2:
SOURCE(7158, 110)
SOURCE(7160, 15)
SOURCE(6734, 7)
hi←v7100 = lo←v7128;
SOURCE(6751, 21)
SOURCE(6752, 20)
lo←v7128 = (* (ptr) src←v6848 );
SOURCE(6775, 42)
w←v7072 = ((word) XRM←BITLSHIFT(hi←v7100, lSA←v7156) + (word) XRM←BITRSHIFT(lo←v7128, rSA←v7184));
SOURCE(7177, 29)
{
word var←c19288;
{
/*1*/ word var←c19320;
/*1*/ word d←v14732;
/*1*/ word s←v14760;
/*1*/ d←v14732 = (* (ptr) dst←v6792 );
/*1*/ s←v14760 = w←v7072;
SOURCE(1756, 47)
/*1*/ {
/*1*/ word var←c19384;
/*1*/ {
/*1*/ word var←c19416;
/*1*/ var←c19416 = (word) XRM←BITXOR(s←v14760, d←v14732);
/*1*/ var←c19384 = (word) XRM←BITAND(var←c19416, lMask←v6932);
/*1*/ };
/*1*/ var←c19320 = (word) XRM←BITXOR(var←c19384, d←v14732);
/*1*/ };
/*1*/ var←c19288 = var←c19320;
/*1*/ };
(* (ptr) dst←v6792 ) = var←c19288;
};
SOURCE(7208, 27)
SOURCE(6879, 22)
w←v7072 = (word) XRM←BITLSHIFT(lo←v7128, lSA←v7156);
SOURCE(6903, 62)
if ((0 != fetchLastWord←v7240)) {
SOURCE(6925, 40)
SOURCE(6926, 39)
w←v7072 = (w←v7072 + (word) XRM←BITRSHIFT((* (( (ptr) src←v6848)+1) ), rSA←v7184));
};
SOURCE(7237, 29)
{
word var←c19448;
{
/*1*/ word var←c19480;
/*1*/ word d←v14656;
/*1*/ word s←v14684;
/*1*/ d←v14656 = (* (( (ptr) dst←v6792)+1) );
/*1*/ s←v14684 = w←v7072;
SOURCE(1756, 47)
/*1*/ {
/*1*/ word var←c19544;
/*1*/ {
/*1*/ word var←c19576;
/*1*/ var←c19576 = (word) XRM←BITXOR(s←v14684, d←v14656);
/*1*/ var←c19544 = (word) XRM←BITAND(var←c19576, rMask←v6960);
/*1*/ };
/*1*/ var←c19480 = (word) XRM←BITXOR(var←c19544, d←v14656);
/*1*/ };
/*1*/ var←c19448 = var←c19480;
/*1*/ };
(* (( (ptr) dst←v6792)+1) ) = var←c19448;
};
break;
case 3:
SOURCE(7284, 140)
SOURCE(7286, 15)
SOURCE(6734, 7)
hi←v7100 = lo←v7128;
SOURCE(6751, 21)
SOURCE(6752, 20)
lo←v7128 = (* (ptr) src←v6848 );
SOURCE(6775, 42)
w←v7072 = ((word) XRM←BITLSHIFT(hi←v7100, lSA←v7156) + (word) XRM←BITRSHIFT(lo←v7128, rSA←v7184));
SOURCE(7303, 29)
{
word var←c19608;
{
/*1*/ word var←c19640;
/*1*/ word d←v14580;
/*1*/ word s←v14608;
/*1*/ d←v14580 = (* (ptr) dst←v6792 );
/*1*/ s←v14608 = w←v7072;
SOURCE(1756, 47)
/*1*/ {
/*1*/ word var←c19704;
/*1*/ {
/*1*/ word var←c19736;
/*1*/ var←c19736 = (word) XRM←BITXOR(s←v14608, d←v14580);
/*1*/ var←c19704 = (word) XRM←BITAND(var←c19736, lMask←v6932);
/*1*/ };
/*1*/ var←c19640 = (word) XRM←BITXOR(var←c19704, d←v14580);
/*1*/ };
/*1*/ var←c19608 = var←c19640;
/*1*/ };
(* (ptr) dst←v6792 ) = var←c19608;
};
SOURCE(7334, 15)
SOURCE(6734, 7)
hi←v7100 = lo←v7128;
SOURCE(6751, 21)
SOURCE(6752, 20)
lo←v7128 = (* (( (ptr) src←v6848)+1) );
SOURCE(6775, 42)
w←v7072 = ((word) XRM←BITLSHIFT(hi←v7100, lSA←v7156) + (word) XRM←BITRSHIFT(lo←v7128, rSA←v7184));
SOURCE(7351, 11)
(* (( (ptr) dst←v6792)+1) ) = w←v7072;
SOURCE(7364, 27)
SOURCE(6879, 22)
w←v7072 = (word) XRM←BITLSHIFT(lo←v7128, lSA←v7156);
SOURCE(6903, 62)
if ((0 != fetchLastWord←v7240)) {
SOURCE(6925, 40)
SOURCE(6926, 39)
w←v7072 = (w←v7072 + (word) XRM←BITRSHIFT((* (( (ptr) src←v6848)+2) ), rSA←v7184));
};
SOURCE(7393, 29)
{
word var←c19768;
{
/*1*/ word var←c19800;
/*1*/ word d←v14504;
/*1*/ word s←v14532;
/*1*/ d←v14504 = (* (( (ptr) dst←v6792)+2) );
/*1*/ s←v14532 = w←v7072;
SOURCE(1756, 47)
/*1*/ {
/*1*/ word var←c19864;
/*1*/ {
/*1*/ word var←c19896;
/*1*/ var←c19896 = (word) XRM←BITXOR(s←v14532, d←v14504);
/*1*/ var←c19864 = (word) XRM←BITAND(var←c19896, rMask←v6960);
/*1*/ };
/*1*/ var←c19800 = (word) XRM←BITXOR(var←c19864, d←v14504);
/*1*/ };
/*1*/ var←c19768 = var←c19800;
/*1*/ };
(* (( (ptr) dst←v6792)+2) ) = var←c19768;
};
break;
default:
SOURCE(7446, 429)
{
word nw←v7576;
SOURCE(7448, 32)
nw←v7576 = (ndw←v6904 - 2);
SOURCE(7482, 15)
SOURCE(6734, 7)
hi←v7100 = lo←v7128;
SOURCE(6751, 21)
SOURCE(6752, 20)
lo←v7128 = (* (ptr) src←v6848 );
SOURCE(6775, 42)
w←v7072 = ((word) XRM←BITLSHIFT(hi←v7100, lSA←v7156) + (word) XRM←BITRSHIFT(lo←v7128, rSA←v7184));
SOURCE(7499, 29)
{
/*1*/ word var←c19928;
/*1*/ {
/*1*/ word var←c19960;
/*1*/ word d←v14428;
/*1*/ word s←v14456;
/*1*/ d←v14428 = (* (ptr) dst←v6792 );
/*1*/ s←v14456 = w←v7072;
SOURCE(1756, 47)
/*1*/ {
/*1*/ word var←c20024;
/*1*/ {
/*1*/ word var←c20056;
/*1*/ var←c20056 = (word) XRM←BITXOR(s←v14456, d←v14428);
/*1*/ var←c20024 = (word) XRM←BITAND(var←c20056, lMask←v6932);
/*1*/ };
/*1*/ var←c19960 = (word) XRM←BITXOR(var←c20024, d←v14428);
/*1*/ };
/*1*/ var←c19928 = var←c19960;
/*1*/ };
/*1*/ (* (ptr) dst←v6792 ) = var←c19928;
/*1*/ };
SOURCE(7530, 20)
dst←v6792 = (dst←v6792 + 4);
SOURCE(7552, 20)
src←v6848 = (src←v6848 + 4);
SOURCE(7574, 136)
lab←L100043: ;
if ((nw←v7576 >= 2)) {
/*1*/ }
else {
/*1*/ goto lab←L100041;
/*1*/ };
SOURCE(7591, 15)
SOURCE(6734, 7)
hi←v7100 = lo←v7128;
SOURCE(6751, 21)
SOURCE(6752, 20)
lo←v7128 = (* (ptr) src←v6848 );
SOURCE(6775, 42)
w←v7072 = ((word) XRM←BITLSHIFT(hi←v7100, lSA←v7156) + (word) XRM←BITRSHIFT(lo←v7128, rSA←v7184));
SOURCE(7608, 11)
(* (ptr) dst←v6792 ) = w←v7072;
SOURCE(7621, 15)
SOURCE(6734, 7)
hi←v7100 = lo←v7128;
SOURCE(6751, 21)
SOURCE(6752, 20)
lo←v7128 = (* (( (ptr) src←v6848)+1) );
SOURCE(6775, 42)
w←v7072 = ((word) XRM←BITLSHIFT(hi←v7100, lSA←v7156) + (word) XRM←BITRSHIFT(lo←v7128, rSA←v7184));
SOURCE(7638, 11)
(* (( (ptr) dst←v6792)+1) ) = w←v7072;
SOURCE(7651, 22)
dst←v6792 = (dst←v6792 + 8);
SOURCE(7675, 22)
src←v6848 = (src←v6848 + 8);
SOURCE(7699, 11)
nw←v7576 = (nw←v7576 - 2);
goto lab←L100043;
lab←L100041: ;
SOURCE(7721, 89)
if ((nw←v7576 != 0)) {
SOURCE(7738, 15)
SOURCE(6734, 7)
/*1*/ hi←v7100 = lo←v7128;
SOURCE(6751, 21)
SOURCE(6752, 20)
/*1*/ lo←v7128 = (* (ptr) src←v6848 );
SOURCE(6775, 42)
/*1*/ w←v7072 = ((word) XRM←BITLSHIFT(hi←v7100, lSA←v7156) + (word) XRM←BITRSHIFT(lo←v7128, rSA←v7184));
SOURCE(7755, 11)
/*1*/ (* (ptr) dst←v6792 ) = w←v7072;
SOURCE(7768, 20)
/*1*/ dst←v6792 = (dst←v6792 + 4);
SOURCE(7790, 20)
/*1*/ src←v6848 = (src←v6848 + 4);
/*1*/ };
SOURCE(7815, 27)
SOURCE(6879, 22)
w←v7072 = (word) XRM←BITLSHIFT(lo←v7128, lSA←v7156);
SOURCE(6903, 62)
if ((0 != fetchLastWord←v7240)) {
SOURCE(6925, 40)
SOURCE(6926, 39)
/*1*/ w←v7072 = (w←v7072 + (word) XRM←BITRSHIFT((* (ptr) src←v6848 ), rSA←v7184));
/*1*/ };
SOURCE(7844, 29)
{
/*1*/ word var←c20088;
/*1*/ {
/*1*/ word var←c20120;
/*1*/ word d←v14352;
/*1*/ word s←v14380;
/*1*/ d←v14352 = (* (ptr) dst←v6792 );
/*1*/ s←v14380 = w←v7072;
SOURCE(1756, 47)
/*1*/ {
/*1*/ word var←c20184;
/*1*/ {
/*1*/ word var←c20216;
/*1*/ var←c20216 = (word) XRM←BITXOR(s←v14380, d←v14352);
/*1*/ var←c20184 = (word) XRM←BITAND(var←c20216, rMask←v6960);
/*1*/ };
/*1*/ var←c20120 = (word) XRM←BITXOR(var←c20184, d←v14352);
/*1*/ };
/*1*/ var←c20088 = var←c20120;
/*1*/ };
/*1*/ (* (ptr) dst←v6792 ) = var←c20088;
/*1*/ };
};
break;
};
};
};
};
};
};
}
extern void Basics←CopyBitsDecreasing(dstBase←v5208, dstStart←v5236, srcBase←v5264, srcStart←v5292, count←v5320)
word dstBase←v5208;
word dstStart←v5236;
word srcBase←v5264;
word srcStart←v5292;
word count←v5320;
{
register ptr gf←c24312 = (ptr) &globalframe;
word dstCorr←v7620;
word srcCorr←v7648;
/* CopyBitsDecreasing: */
SOURCE(7888, 3414)
SOURCE(8044, 55)
dstCorr←v7620 = (dstBase←v5208 & 3);
SOURCE(8101, 55)
srcCorr←v7648 = (srcBase←v5264 & 3);
SOURCE(8158, 214)
if (((dstCorr←v7620 + srcCorr←v7648) != 0)) {
SOURCE(8186, 188)
{
word p←v7692;
SOURCE(8188, 21)
p←v7692 = (* (( (ptr) gf←c24312)+5)/* logMisalign←v2916 */ );
SOURCE(8211, 19)
if ((p←v7692 != 0)) {
SOURCE(8227, 3)
(void) ( *( (fPt) ((* (ptr) p←v7692 ))))(p←v7692);
};
SOURCE(8232, 27)
dstBase←v5208 = (dstBase←v5208 - dstCorr←v7620);
SOURCE(8261, 40)
dstStart←v5236 = (dstStart←v5236 + (dstCorr←v7620 << 3));
SOURCE(8303, 27)
srcBase←v5264 = (srcBase←v5264 - srcCorr←v7648);
SOURCE(8332, 40)
srcStart←v5292 = (srcStart←v5292 + (srcCorr←v7648 << 3));
};
};
SOURCE(8377, 2925)
if ((count←v5320 != 0)) {
SOURCE(8395, 2915)
{
word dst←v7752;
word dstBit←v7780;
word src←v7808;
word srcBit←v7836;
word ndw←v7864;
word lMask←v7892;
word rMask←v7920;
SOURCE(8397, 58)
{
word base←v12708;
base←v12708 = dstBase←v5208;
SOURCE(1634, 64)
dst←v7752 = (base←v12708 + ((dstStart←v5236 >> 5) << 2));
};
SOURCE(8457, 33)
dstBit←v7780 = (dstStart←v5236 & 037);
SOURCE(8492, 58)
{
word base←v12660;
base←v12660 = srcBase←v5264;
SOURCE(1634, 64)
src←v7808 = (base←v12660 + ((srcStart←v5292 >> 5) << 2));
};
SOURCE(8552, 33)
srcBit←v7836 = (srcStart←v5292 & 037);
SOURCE(8587, 40)
{
word bits←v11988;
bits←v11988 = (dstBit←v7780 + count←v5320);
SOURCE(1262, 32)
ndw←v7864 = ((bits←v11988 + 31) >> 5);
};
SOURCE(8629, 44)
{
word n←v12228;
n←v12228 = (32 - dstBit←v7780);
SOURCE(1363, 45)
lMask←v7892 = (((word) XRM←BITLSHIFT(1, (n←v12228 & 037)) - 1) - (n←v12228 >> 5));
};
SOURCE(8675, 77)
{
word n←v12420;
n←v12420 = (((32 - dstBit←v7780) - count←v5320) & 037);
SOURCE(1476, 43)
rMask←v7920 = INEG((word) XRM←BITRSHIFT(2147483648, (31 - n←v12420)));
};
SOURCE(8754, 2548)
if ((dstBit←v7780 == srcBit←v7836)) {
SOURCE(8807, 894)
{
word var←c20472;
var←c20472 = ndw←v7864;
switch (var←c20472) {
case 1:
SOURCE(8836, 53)
SOURCE(8838, 49)
{
word var←c20504;
{
word var←c20536;
word d←v14248;
word s←v14276;
word mask←v14304;
d←v14248 = (* (ptr) dst←v7752 );
s←v14276 = (* (ptr) src←v7808 );
mask←v14304 = (word) XRM←BITAND(lMask←v7892, rMask←v7920);
SOURCE(1756, 47)
{
/*1*/ word var←c20600;
/*1*/ {
/*1*/ word var←c20632;
/*1*/ var←c20632 = (word) XRM←BITXOR(s←v14276, d←v14248);
/*1*/ var←c20600 = (word) XRM←BITAND(var←c20632, mask←v14304);
/*1*/ };
/*1*/ var←c20536 = (word) XRM←BITXOR(var←c20600, d←v14248);
/*1*/ };
var←c20504 = var←c20536;
};
(* (ptr) dst←v7752 ) = var←c20504;
};
break;
case 2:
SOURCE(8905, 74)
SOURCE(8907, 34)
{
word var←c20664;
{
word var←c20696;
word d←v14172;
word s←v14200;
d←v14172 = (* (( (ptr) dst←v7752)+1) );
s←v14200 = (* (( (ptr) src←v7808)+1) );
SOURCE(1756, 47)
{
/*1*/ word var←c20760;
/*1*/ {
/*1*/ word var←c20792;
/*1*/ var←c20792 = (word) XRM←BITXOR(s←v14200, d←v14172);
/*1*/ var←c20760 = (word) XRM←BITAND(var←c20792, rMask←v7920);
/*1*/ };
/*1*/ var←c20696 = (word) XRM←BITXOR(var←c20760, d←v14172);
/*1*/ };
var←c20664 = var←c20696;
};
(* (( (ptr) dst←v7752)+1) ) = var←c20664;
};
SOURCE(8943, 34)
{
word var←c20824;
{
word var←c20856;
word d←v14096;
word s←v14124;
d←v14096 = (* (ptr) dst←v7752 );
s←v14124 = (* (ptr) src←v7808 );
SOURCE(1756, 47)
{
/*1*/ word var←c20920;
/*1*/ {
/*1*/ word var←c20952;
/*1*/ var←c20952 = (word) XRM←BITXOR(s←v14124, d←v14096);
/*1*/ var←c20920 = (word) XRM←BITAND(var←c20952, lMask←v7892);
/*1*/ };
/*1*/ var←c20856 = (word) XRM←BITXOR(var←c20920, d←v14096);
/*1*/ };
var←c20824 = var←c20856;
};
(* (ptr) dst←v7752 ) = var←c20824;
};
break;
case 3:
SOURCE(8995, 92)
SOURCE(8997, 34)
{
word var←c20984;
{
word var←c21016;
word d←v14020;
word s←v14048;
d←v14020 = (* (( (ptr) dst←v7752)+2) );
s←v14048 = (* (( (ptr) src←v7808)+2) );
SOURCE(1756, 47)
{
/*1*/ word var←c21080;
/*1*/ {
/*1*/ word var←c21112;
/*1*/ var←c21112 = (word) XRM←BITXOR(s←v14048, d←v14020);
/*1*/ var←c21080 = (word) XRM←BITAND(var←c21112, rMask←v7920);
/*1*/ };
/*1*/ var←c21016 = (word) XRM←BITXOR(var←c21080, d←v14020);
/*1*/ };
var←c20984 = var←c21016;
};
(* (( (ptr) dst←v7752)+2) ) = var←c20984;
};
SOURCE(9033, 16)
(* (( (ptr) dst←v7752)+1) ) = (* (( (ptr) src←v7808)+1) );
SOURCE(9051, 34)
{
word var←c21144;
{
word var←c21176;
word d←v13944;
word s←v13972;
d←v13944 = (* (ptr) dst←v7752 );
s←v13972 = (* (ptr) src←v7808 );
SOURCE(1756, 47)
{
/*1*/ word var←c21240;
/*1*/ {
/*1*/ word var←c21272;
/*1*/ var←c21272 = (word) XRM←BITXOR(s←v13972, d←v13944);
/*1*/ var←c21240 = (word) XRM←BITAND(var←c21272, lMask←v7892);
/*1*/ };
/*1*/ var←c21176 = (word) XRM←BITXOR(var←c21240, d←v13944);
/*1*/ };
var←c21144 = var←c21176;
};
(* (ptr) dst←v7752 ) = var←c21144;
};
break;
default:
SOURCE(9109, 594)
{
word nw←v7988;
SOURCE(9111, 32)
nw←v7988 = (ndw←v7864 - 2);
SOURCE(9145, 39)
dst←v7752 = ((dst←v7752 + (ndw←v7864 << 2)) - 4);
SOURCE(9186, 39)
src←v7808 = ((src←v7808 + (ndw←v7864 << 2)) - 4);
SOURCE(9227, 34)
{
word var←c21304;
{
/*1*/ word var←c21336;
/*1*/ word d←v13868;
/*1*/ word s←v13896;
/*1*/ d←v13868 = (* (ptr) dst←v7752 );
/*1*/ s←v13896 = (* (ptr) src←v7808 );
SOURCE(1756, 47)
/*1*/ {
/*1*/ word var←c21400;
/*1*/ {
/*1*/ word var←c21432;
/*1*/ var←c21432 = (word) XRM←BITXOR(s←v13896, d←v13868);
/*1*/ var←c21400 = (word) XRM←BITAND(var←c21432, rMask←v7920);
/*1*/ };
/*1*/ var←c21336 = (word) XRM←BITXOR(var←c21400, d←v13868);
/*1*/ };
/*1*/ var←c21304 = var←c21336;
/*1*/ };
(* (ptr) dst←v7752 ) = var←c21304;
};
SOURCE(9263, 146)
lab←L100058: ;
if ((nw←v7988 >= 4)) {
}
else {
goto lab←L100056;
};
SOURCE(9280, 23)
dst←v7752 = (dst←v7752 - 16);
SOURCE(9305, 23)
src←v7808 = (src←v7808 - 16);
SOURCE(9330, 15)
(* (( (ptr) dst←v7752)+3) ) = (* (( (ptr) src←v7808)+3) );
SOURCE(9347, 15)
(* (( (ptr) dst←v7752)+2) ) = (* (( (ptr) src←v7808)+2) );
SOURCE(9364, 15)
(* (( (ptr) dst←v7752)+1) ) = (* (( (ptr) src←v7808)+1) );
SOURCE(9381, 15)
(* (ptr) dst←v7752 ) = (* (ptr) src←v7808 );
SOURCE(9398, 11)
nw←v7988 = (nw←v7988 - 4);
goto lab←L100058;
lab←L100056: ;
SOURCE(9420, 113)
if ((nw←v7988 >= 2)) {
SOURCE(9438, 23)
dst←v7752 = (dst←v7752 - 8);
SOURCE(9463, 23)
src←v7808 = (src←v7808 - 8);
SOURCE(9488, 15)
(* (( (ptr) dst←v7752)+1) ) = (* (( (ptr) src←v7808)+1) );
SOURCE(9505, 15)
(* (ptr) dst←v7752 ) = (* (ptr) src←v7808 );
SOURCE(9522, 11)
nw←v7988 = (nw←v7988 - 2);
};
SOURCE(9538, 78)
if ((nw←v7988 != 0)) {
SOURCE(9555, 21)
dst←v7752 = (dst←v7752 - 4);
SOURCE(9578, 21)
src←v7808 = (src←v7808 - 4);
SOURCE(9601, 15)
(* (ptr) dst←v7752 ) = (* (ptr) src←v7808 );
};
SOURCE(9621, 21)
dst←v7752 = (dst←v7752 - 4);
SOURCE(9644, 21)
src←v7808 = (src←v7808 - 4);
SOURCE(9667, 34)
{
word var←c21464;
{
/*1*/ word var←c21496;
/*1*/ word d←v13792;
/*1*/ word s←v13820;
/*1*/ d←v13792 = (* (ptr) dst←v7752 );
/*1*/ s←v13820 = (* (ptr) src←v7808 );
SOURCE(1756, 47)
/*1*/ {
/*1*/ word var←c21560;
/*1*/ {
/*1*/ word var←c21592;
/*1*/ var←c21592 = (word) XRM←BITXOR(s←v13820, d←v13792);
/*1*/ var←c21560 = (word) XRM←BITAND(var←c21592, lMask←v7892);
/*1*/ };
/*1*/ var←c21496 = (word) XRM←BITXOR(var←c21560, d←v13792);
/*1*/ };
/*1*/ var←c21464 = var←c21496;
/*1*/ };
(* (ptr) dst←v7752 ) = var←c21464;
};
};
break;
};
};
}
else {
SOURCE(9713, 1594)
{
word w←v8032 = 0;
word hi←v8060 = 0;
word lo←v8088;
word lSA←v8116;
word rSA←v8144;
word nsw←v8172;
word fetchLeftmost←v8200;
word fetchRightmost←v8228;
SOURCE(9873, 55)
lSA←v8116 = ((srcBit←v7836 - dstBit←v7780) & 037);
SOURCE(9951, 51)
rSA←v8144 = ((32 - lSA←v8116) & 037);
SOURCE(10058, 40)
{
word bits←v11940;
bits←v11940 = (srcBit←v7836 + count←v5320);
SOURCE(1262, 32)
nsw←v8172 = ((bits←v11940 + 31) >> 5);
};
SOURCE(10100, 38)
fetchLeftmost←v8200 = (srcBit←v7836 >= dstBit←v7780);
SOURCE(10140, 70)
fetchRightmost←v8228 = ( (0 != fetchLeftmost←v8200) ? (nsw←v8172 > ndw←v7864) : (nsw←v8172 >= ndw←v7864) ) ;
SOURCE(10477, 41)
src←v7808 = ((src←v7808 + (nsw←v8172 << 2)) - 4);
SOURCE(10520, 34)
if ((0 != fetchRightmost←v8228)) {
SOURCE(10543, 11)
SOURCE(10239, 7)
lo←v8088 = hi←v8060;
SOURCE(10256, 12)
SOURCE(10257, 11)
hi←v8060 = (* (ptr) src←v7808 );
SOURCE(10271, 21)
src←v7808 = (src←v7808 - 4);
SOURCE(10294, 42)
w←v8032 = ((word) XRM←BITLSHIFT(hi←v8060, lSA←v8116) + (word) XRM←BITRSHIFT(lo←v8088, rSA←v8144));
};
SOURCE(10556, 746)
{
word var←c21656;
var←c21656 = ndw←v7864;
switch (var←c21656) {
case 1:
SOURCE(10585, 88)
{
word bothMask←v8360;
SOURCE(10587, 37)
bothMask←v8360 = (word) XRM←BITAND(lMask←v7892, rMask←v7920);
SOURCE(10626, 11)
SOURCE(10366, 7)
lo←v8088 = hi←v8060;
SOURCE(10375, 55)
if ((0 != fetchLeftmost←v8200)) {
SOURCE(10405, 12)
SOURCE(10406, 11)
/*1*/ hi←v8060 = (* (ptr) src←v7808 );
/*1*/ }
else {
SOURCE(10424, 6)
/*1*/ hi←v8060 = 0;
/*1*/ };
SOURCE(10432, 42)
w←v8032 = ((word) XRM←BITLSHIFT(hi←v8060, lSA←v8116) + (word) XRM←BITRSHIFT(lo←v8088, rSA←v8144));
SOURCE(10639, 32)
{
/*1*/ word var←c21688;
/*1*/ {
/*1*/ word var←c21720;
/*1*/ word d←v13716;
/*1*/ word s←v13744;
/*1*/ d←v13716 = (* (ptr) dst←v7752 );
/*1*/ s←v13744 = w←v8032;
SOURCE(1756, 47)
/*1*/ {
/*1*/ word var←c21784;
/*1*/ {
/*1*/ word var←c21816;
/*1*/ var←c21816 = (word) XRM←BITXOR(s←v13744, d←v13716);
/*1*/ var←c21784 = (word) XRM←BITAND(var←c21816, bothMask←v8360);
/*1*/ };
/*1*/ var←c21720 = (word) XRM←BITXOR(var←c21784, d←v13716);
/*1*/ };
/*1*/ var←c21688 = var←c21720;
/*1*/ };
/*1*/ (* (ptr) dst←v7752 ) = var←c21688;
/*1*/ };
};
break;
case 2:
SOURCE(10689, 90)
SOURCE(10691, 11)
SOURCE(10239, 7)
lo←v8088 = hi←v8060;
SOURCE(10256, 12)
SOURCE(10257, 11)
hi←v8060 = (* (ptr) src←v7808 );
SOURCE(10271, 21)
src←v7808 = (src←v7808 - 4);
SOURCE(10294, 42)
w←v8032 = ((word) XRM←BITLSHIFT(hi←v8060, lSA←v8116) + (word) XRM←BITRSHIFT(lo←v8088, rSA←v8144));
SOURCE(10704, 29)
{
word var←c21848;
{
/*1*/ word var←c21880;
/*1*/ word d←v13640;
/*1*/ word s←v13668;
/*1*/ d←v13640 = (* (( (ptr) dst←v7752)+1) );
/*1*/ s←v13668 = w←v8032;
SOURCE(1756, 47)
/*1*/ {
/*1*/ word var←c21944;
/*1*/ {
/*1*/ word var←c21976;
/*1*/ var←c21976 = (word) XRM←BITXOR(s←v13668, d←v13640);
/*1*/ var←c21944 = (word) XRM←BITAND(var←c21976, rMask←v7920);
/*1*/ };
/*1*/ var←c21880 = (word) XRM←BITXOR(var←c21944, d←v13640);
/*1*/ };
/*1*/ var←c21848 = var←c21880;
/*1*/ };
(* (( (ptr) dst←v7752)+1) ) = var←c21848;
};
SOURCE(10735, 11)
SOURCE(10366, 7)
lo←v8088 = hi←v8060;
SOURCE(10375, 55)
if ((0 != fetchLeftmost←v8200)) {
SOURCE(10405, 12)
SOURCE(10406, 11)
hi←v8060 = (* (ptr) src←v7808 );
}
else {
SOURCE(10424, 6)
hi←v8060 = 0;
};
SOURCE(10432, 42)
w←v8032 = ((word) XRM←BITLSHIFT(hi←v8060, lSA←v8116) + (word) XRM←BITRSHIFT(lo←v8088, rSA←v8144));
SOURCE(10748, 29)
{
word var←c22008;
{
/*1*/ word var←c22040;
/*1*/ word d←v13564;
/*1*/ word s←v13592;
/*1*/ d←v13564 = (* (ptr) dst←v7752 );
/*1*/ s←v13592 = w←v8032;
SOURCE(1756, 47)
/*1*/ {
/*1*/ word var←c22104;
/*1*/ {
/*1*/ word var←c22136;
/*1*/ var←c22136 = (word) XRM←BITXOR(s←v13592, d←v13564);
/*1*/ var←c22104 = (word) XRM←BITAND(var←c22136, lMask←v7892);
/*1*/ };
/*1*/ var←c22040 = (word) XRM←BITXOR(var←c22104, d←v13564);
/*1*/ };
/*1*/ var←c22008 = var←c22040;
/*1*/ };
(* (ptr) dst←v7752 ) = var←c22008;
};
break;
case 3:
SOURCE(10795, 115)
SOURCE(10797, 11)
SOURCE(10239, 7)
lo←v8088 = hi←v8060;
SOURCE(10256, 12)
SOURCE(10257, 11)
hi←v8060 = (* (ptr) src←v7808 );
SOURCE(10271, 21)
src←v7808 = (src←v7808 - 4);
SOURCE(10294, 42)
w←v8032 = ((word) XRM←BITLSHIFT(hi←v8060, lSA←v8116) + (word) XRM←BITRSHIFT(lo←v8088, rSA←v8144));
SOURCE(10810, 29)
{
word var←c22168;
{
/*1*/ word var←c22200;
/*1*/ word d←v13488;
/*1*/ word s←v13516;
/*1*/ d←v13488 = (* (( (ptr) dst←v7752)+2) );
/*1*/ s←v13516 = w←v8032;
SOURCE(1756, 47)
/*1*/ {
/*1*/ word var←c22264;
/*1*/ {
/*1*/ word var←c22296;
/*1*/ var←c22296 = (word) XRM←BITXOR(s←v13516, d←v13488);
/*1*/ var←c22264 = (word) XRM←BITAND(var←c22296, rMask←v7920);
/*1*/ };
/*1*/ var←c22200 = (word) XRM←BITXOR(var←c22264, d←v13488);
/*1*/ };
/*1*/ var←c22168 = var←c22200;
/*1*/ };
(* (( (ptr) dst←v7752)+2) ) = var←c22168;
};
SOURCE(10841, 11)
SOURCE(10239, 7)
lo←v8088 = hi←v8060;
SOURCE(10256, 12)
SOURCE(10257, 11)
hi←v8060 = (* (ptr) src←v7808 );
SOURCE(10271, 21)
src←v7808 = (src←v7808 - 4);
SOURCE(10294, 42)
w←v8032 = ((word) XRM←BITLSHIFT(hi←v8060, lSA←v8116) + (word) XRM←BITRSHIFT(lo←v8088, rSA←v8144));
SOURCE(10854, 10)
(* (( (ptr) dst←v7752)+1) ) = w←v8032;
SOURCE(10866, 11)
SOURCE(10366, 7)
lo←v8088 = hi←v8060;
SOURCE(10375, 55)
if ((0 != fetchLeftmost←v8200)) {
SOURCE(10405, 12)
SOURCE(10406, 11)
hi←v8060 = (* (ptr) src←v7808 );
}
else {
SOURCE(10424, 6)
hi←v8060 = 0;
};
SOURCE(10432, 42)
w←v8032 = ((word) XRM←BITLSHIFT(hi←v8060, lSA←v8116) + (word) XRM←BITRSHIFT(lo←v8088, rSA←v8144));
SOURCE(10879, 29)
{
word var←c22328;
{
/*1*/ word var←c22360;
/*1*/ word d←v13412;
/*1*/ word s←v13440;
/*1*/ d←v13412 = (* (ptr) dst←v7752 );
/*1*/ s←v13440 = w←v8032;
SOURCE(1756, 47)
/*1*/ {
/*1*/ word var←c22424;
/*1*/ {
/*1*/ word var←c22456;
/*1*/ var←c22456 = (word) XRM←BITXOR(s←v13440, d←v13412);
/*1*/ var←c22424 = (word) XRM←BITAND(var←c22456, lMask←v7892);
/*1*/ };
/*1*/ var←c22360 = (word) XRM←BITXOR(var←c22424, d←v13412);
/*1*/ };
/*1*/ var←c22328 = var←c22360;
/*1*/ };
(* (ptr) dst←v7752 ) = var←c22328;
};
break;
default:
SOURCE(10932, 372)
{
word nw←v8404;
SOURCE(10934, 32)
nw←v8404 = (ndw←v7864 - 2);
SOURCE(10968, 11)
SOURCE(10239, 7)
lo←v8088 = hi←v8060;
SOURCE(10256, 12)
SOURCE(10257, 11)
hi←v8060 = (* (ptr) src←v7808 );
SOURCE(10271, 21)
src←v7808 = (src←v7808 - 4);
SOURCE(10294, 42)
w←v8032 = ((word) XRM←BITLSHIFT(hi←v8060, lSA←v8116) + (word) XRM←BITRSHIFT(lo←v8088, rSA←v8144));
SOURCE(10981, 41)
dst←v7752 = ((dst←v7752 + (ndw←v7864 << 2)) - 4);
SOURCE(11024, 29)
{
/*1*/ word var←c22488;
/*1*/ {
/*1*/ word var←c22520;
/*1*/ word d←v13336;
/*1*/ word s←v13364;
/*1*/ d←v13336 = (* (ptr) dst←v7752 );
/*1*/ s←v13364 = w←v8032;
SOURCE(1756, 47)
/*1*/ {
/*1*/ word var←c22584;
/*1*/ {
/*1*/ word var←c22616;
/*1*/ var←c22616 = (word) XRM←BITXOR(s←v13364, d←v13336);
/*1*/ var←c22584 = (word) XRM←BITAND(var←c22616, rMask←v7920);
/*1*/ };
/*1*/ var←c22520 = (word) XRM←BITXOR(var←c22584, d←v13336);
/*1*/ };
/*1*/ var←c22488 = var←c22520;
/*1*/ };
/*1*/ (* (ptr) dst←v7752 ) = var←c22488;
/*1*/ };
SOURCE(11055, 103)
lab←L100069: ;
if ((nw←v8404 >= 2)) {
/*1*/ }
else {
/*1*/ goto lab←L100067;
/*1*/ };
SOURCE(11072, 23)
dst←v7752 = (dst←v7752 - 8);
SOURCE(11097, 11)
SOURCE(10239, 7)
lo←v8088 = hi←v8060;
SOURCE(10256, 12)
SOURCE(10257, 11)
hi←v8060 = (* (ptr) src←v7808 );
SOURCE(10271, 21)
src←v7808 = (src←v7808 - 4);
SOURCE(10294, 42)
w←v8032 = ((word) XRM←BITLSHIFT(hi←v8060, lSA←v8116) + (word) XRM←BITRSHIFT(lo←v8088, rSA←v8144));
SOURCE(11110, 10)
(* (( (ptr) dst←v7752)+1) ) = w←v8032;
SOURCE(11122, 11)
SOURCE(10239, 7)
lo←v8088 = hi←v8060;
SOURCE(10256, 12)
SOURCE(10257, 11)
hi←v8060 = (* (ptr) src←v7808 );
SOURCE(10271, 21)
src←v7808 = (src←v7808 - 4);
SOURCE(10294, 42)
w←v8032 = ((word) XRM←BITLSHIFT(hi←v8060, lSA←v8116) + (word) XRM←BITRSHIFT(lo←v8088, rSA←v8144));
SOURCE(11135, 10)
(* (ptr) dst←v7752 ) = w←v8032;
SOURCE(11147, 11)
nw←v8404 = (nw←v8404 - 2);
goto lab←L100069;
lab←L100067: ;
SOURCE(11169, 63)
if ((nw←v8404 != 0)) {
SOURCE(11186, 21)
/*1*/ dst←v7752 = (dst←v7752 - 4);
SOURCE(11209, 11)
SOURCE(10239, 7)
/*1*/ lo←v8088 = hi←v8060;
SOURCE(10256, 12)
SOURCE(10257, 11)
/*1*/ hi←v8060 = (* (ptr) src←v7808 );
SOURCE(10271, 21)
/*1*/ src←v7808 = (src←v7808 - 4);
SOURCE(10294, 42)
/*1*/ w←v8032 = ((word) XRM←BITLSHIFT(hi←v8060, lSA←v8116) + (word) XRM←BITRSHIFT(lo←v8088, rSA←v8144));
SOURCE(11222, 10)
/*1*/ (* (ptr) dst←v7752 ) = w←v8032;
/*1*/ };
SOURCE(11237, 21)
dst←v7752 = (dst←v7752 - 4);
SOURCE(11260, 11)
SOURCE(10366, 7)
lo←v8088 = hi←v8060;
SOURCE(10375, 55)
if ((0 != fetchLeftmost←v8200)) {
SOURCE(10405, 12)
SOURCE(10406, 11)
/*1*/ hi←v8060 = (* (ptr) src←v7808 );
/*1*/ }
else {
SOURCE(10424, 6)
/*1*/ hi←v8060 = 0;
/*1*/ };
SOURCE(10432, 42)
w←v8032 = ((word) XRM←BITLSHIFT(hi←v8060, lSA←v8116) + (word) XRM←BITRSHIFT(lo←v8088, rSA←v8144));
SOURCE(11273, 29)
{
/*1*/ word var←c22648;
/*1*/ {
/*1*/ word var←c22680;
/*1*/ word d←v13260;
/*1*/ word s←v13288;
/*1*/ d←v13260 = (* (ptr) dst←v7752 );
/*1*/ s←v13288 = w←v8032;
SOURCE(1756, 47)
/*1*/ {
/*1*/ word var←c22744;
/*1*/ {
/*1*/ word var←c22776;
/*1*/ var←c22776 = (word) XRM←BITXOR(s←v13288, d←v13260);
/*1*/ var←c22744 = (word) XRM←BITAND(var←c22776, lMask←v7892);
/*1*/ };
/*1*/ var←c22680 = (word) XRM←BITXOR(var←c22744, d←v13260);
/*1*/ };
/*1*/ var←c22648 = var←c22680;
/*1*/ };
/*1*/ (* (ptr) dst←v7752 ) = var←c22648;
/*1*/ };
};
break;
};
};
};
};
};
};
}
extern void Basics←MoveBits(dstBase←v5404, dstStart←v5432, srcBase←v5460, srcStart←v5488, count←v5516)
word dstBase←v5404;
word dstStart←v5432;
word srcBase←v5460;
word srcStart←v5488;
word count←v5516;
{
word d0←v8448;
word s0←v8476;
/* MoveBits: */
SOURCE(11317, 572)
SOURCE(11462, 54)
d0←v8448 = ((dstBase←v5404 << 3) + dstStart←v5432);
SOURCE(11518, 54)
s0←v8476 = ((srcBase←v5460 << 3) + srcStart←v5488);
SOURCE(11574, 315)
if ( ( (d0←v8448 > s0←v8476) ? (d0←v8448 < (s0←v8476 + count←v5516)) : 0 ) ) {
SOURCE(11664, 96)
{
register word i←v8520;
i←v8520 = count←v5516;
if ((0 >= i←v8520)) {
goto lab←L100071;
};
i←v8520 = (i←v8520 - 1);
lab←L100074: ;
SOURCE(11716, 44)
SOURCE(11718, 42)
{
word x2;
word x3;
x2 = (word) (( (ptr) dstBase←v5404) + ((dstStart←v5432 + i←v8520) >> 5));
x3 = 32 - (((dstStart←v5432 + i←v8520) & 037)+1);
(* (ptr) x2 ) = ((* (ptr) x2 ) & ( ~ (1 << x3))) | (((((* (ptr) (( (ptr) srcBase←v5460) + ((srcStart←v5488 + i←v8520) >> 5)) ) >> (31 - (((srcStart←v5488 +
i←v8520) & 037)))) & 1)) << x3);
};
if ((0 >= i←v8520)) {
goto lab←L100071;
};
i←v8520 = (i←v8520 - 1);
goto lab←L100074;
lab←L100071: ;
};
}
else {
SOURCE(11787, 102)
SOURCE(11789, 98)
(void) Basics←CopyBits(dstBase←v5404, dstStart←v5432, srcBase←v5460, srcStart←v5488, count←v5516);
};
}
extern void Basics←FillBits(dstBase←v5600, dstStart←v5628, count←v5656, value←v5684)
word dstBase←v5600;
word dstStart←v5628;
word count←v5656;
word value←v5684;
{
register ptr gf←c24344 = (ptr) &globalframe;
word dstCorr←v8564;
/* FillBits: */
SOURCE(11896, 1187)
SOURCE(12008, 55)
dstCorr←v8564 = (dstBase←v5600 & 3);
SOURCE(12065, 135)
if ((dstCorr←v8564 != 0)) {
SOURCE(12085, 117)
{
word p←v8608;
SOURCE(12087, 21)
p←v8608 = (* (( (ptr) gf←c24344)+5)/* logMisalign←v2916 */ );
SOURCE(12110, 19)
if ((p←v8608 != 0)) {
SOURCE(12126, 3)
(void) ( *( (fPt) ((* (ptr) p←v8608 ))))(p←v8608);
};
SOURCE(12131, 27)
dstBase←v5600 = (dstBase←v5600 - dstCorr←v8564);
SOURCE(12160, 40)
dstStart←v5628 = (dstStart←v5628 + (dstCorr←v8564 << 3));
};
};
SOURCE(12205, 878)
if ((count←v5656 != 0)) {
SOURCE(12223, 865)
{
word dst←v8668;
word dstBit←v8696;
word ndw←v8724;
word lMask←v8752;
word rMask←v8780;
SOURCE(12225, 58)
{
word base←v12612;
base←v12612 = dstBase←v5600;
SOURCE(1634, 64)
dst←v8668 = (base←v12612 + ((dstStart←v5628 >> 5) << 2));
};
SOURCE(12285, 33)
dstBit←v8696 = (dstStart←v5628 & 037);
SOURCE(12320, 40)
{
word bits←v11892;
bits←v11892 = (dstBit←v8696 + count←v5656);
SOURCE(1262, 32)
ndw←v8724 = ((bits←v11892 + 31) >> 5);
};
SOURCE(12362, 44)
{
word n←v12180;
n←v12180 = (32 - dstBit←v8696);
SOURCE(1363, 45)
lMask←v8752 = (((word) XRM←BITLSHIFT(1, (n←v12180 & 037)) - 1) - (n←v12180 >> 5));
};
SOURCE(12408, 77)
{
word n←v12372;
n←v12372 = (((32 - dstBit←v8696) - count←v5656) & 037);
SOURCE(1476, 43)
rMask←v8780 = INEG((word) XRM←BITRSHIFT(2147483648, (31 - n←v12372)));
};
SOURCE(12487, 596)
{
word var←c23000;
var←c23000 = ndw←v8724;
if ((var←c23000 == 1)) {
SOURCE(12516, 52)
SOURCE(12518, 48)
{
word var←c23032;
{
word var←c23064;
word d←v13156;
word s←v13184;
word mask←v13212;
d←v13156 = (* (ptr) dst←v8668 );
s←v13184 = value←v5684;
mask←v13212 = (word) XRM←BITAND(lMask←v8752, rMask←v8780);
SOURCE(1756, 47)
{
word var←c23128;
{
word var←c23160;
var←c23160 = (word) XRM←BITXOR(s←v13184, d←v13156);
var←c23128 = (word) XRM←BITAND(var←c23160, mask←v13212);
};
var←c23064 = (word) XRM←BITXOR(var←c23128, d←v13156);
};
var←c23032 = var←c23064;
};
(* (ptr) dst←v8668 ) = var←c23032;
};
}
else {
if ((var←c23000 == 2)) {
SOURCE(12584, 72)
SOURCE(12586, 33)
{
word var←c23192;
{
word var←c23224;
word d←v13080;
word s←v13108;
d←v13080 = (* (ptr) dst←v8668 );
s←v13108 = value←v5684;
SOURCE(1756, 47)
{
word var←c23288;
{
/*1*/ word var←c23320;
/*1*/ var←c23320 = (word) XRM←BITXOR(s←v13108, d←v13080);
/*1*/ var←c23288 = (word) XRM←BITAND(var←c23320, lMask←v8752);
/*1*/ };
var←c23224 = (word) XRM←BITXOR(var←c23288, d←v13080);
};
var←c23192 = var←c23224;
};
(* (ptr) dst←v8668 ) = var←c23192;
};
SOURCE(12621, 33)
{
word var←c23352;
{
word var←c23384;
word d←v13004;
word s←v13032;
d←v13004 = (* (( (ptr) dst←v8668)+1) );
s←v13032 = value←v5684;
SOURCE(1756, 47)
{
word var←c23448;
{
/*1*/ word var←c23480;
/*1*/ var←c23480 = (word) XRM←BITXOR(s←v13032, d←v13004);
/*1*/ var←c23448 = (word) XRM←BITAND(var←c23480, rMask←v8780);
/*1*/ };
var←c23384 = (word) XRM←BITXOR(var←c23448, d←v13004);
};
var←c23352 = var←c23384;
};
(* (( (ptr) dst←v8668)+1) ) = var←c23352;
};
}
else {
SOURCE(12678, 407)
{
word nw←v8836;
SOURCE(12680, 32)
nw←v8836 = (ndw←v8724 - 2);
SOURCE(12714, 33)
{
word var←c23512;
{
word var←c23544;
word d←v12928;
word s←v12956;
d←v12928 = (* (ptr) dst←v8668 );
s←v12956 = value←v5684;
SOURCE(1756, 47)
{
/*1*/ word var←c23608;
/*1*/ {
/*1*/ word var←c23640;
/*1*/ var←c23640 = (word) XRM←BITXOR(s←v12956, d←v12928);
/*1*/ var←c23608 = (word) XRM←BITAND(var←c23640, lMask←v8752);
/*1*/ };
/*1*/ var←c23544 = (word) XRM←BITXOR(var←c23608, d←v12928);
/*1*/ };
var←c23512 = var←c23544;
};
(* (ptr) dst←v8668 ) = var←c23512;
};
SOURCE(12749, 21)
dst←v8668 = (dst←v8668 + 4);
SOURCE(12772, 117)
lab←L100085: ;
if ((nw←v8836 >= 4)) {
}
else {
goto lab←L100083;
};
SOURCE(12789, 14)
(* (ptr) dst←v8668 ) = value←v5684;
SOURCE(12805, 14)
(* (( (ptr) dst←v8668)+1) ) = value←v5684;
SOURCE(12821, 14)
(* (( (ptr) dst←v8668)+2) ) = value←v5684;
SOURCE(12837, 14)
(* (( (ptr) dst←v8668)+3) ) = value←v5684;
SOURCE(12853, 23)
dst←v8668 = (dst←v8668 + 16);
SOURCE(12878, 11)
nw←v8836 = (nw←v8836 - 4);
goto lab←L100085;
lab←L100083: ;
SOURCE(12900, 86)
if ((nw←v8836 >= 2)) {
SOURCE(12918, 14)
(* (ptr) dst←v8668 ) = value←v5684;
SOURCE(12934, 14)
(* (( (ptr) dst←v8668)+1) ) = value←v5684;
SOURCE(12950, 23)
dst←v8668 = (dst←v8668 + 8);
SOURCE(12975, 11)
nw←v8836 = (nw←v8836 - 2);
};
SOURCE(12991, 54)
if ((nw←v8836 != 0)) {
SOURCE(13008, 15)
(* (ptr) dst←v8668 ) = value←v5684;
SOURCE(13025, 20)
dst←v8668 = (dst←v8668 + 4);
};
SOURCE(13050, 33)
{
word var←c23672;
{
word var←c23704;
word d←v12852;
word s←v12880;
d←v12852 = (* (ptr) dst←v8668 );
s←v12880 = value←v5684;
SOURCE(1756, 47)
{
/*1*/ word var←c23768;
/*1*/ {
/*1*/ word var←c23800;
/*1*/ var←c23800 = (word) XRM←BITXOR(s←v12880, d←v12852);
/*1*/ var←c23768 = (word) XRM←BITAND(var←c23800, rMask←v8780);
/*1*/ };
/*1*/ var←c23704 = (word) XRM←BITXOR(var←c23768, d←v12852);
/*1*/ };
var←c23672 = var←c23704;
};
(* (ptr) dst←v8668 ) = var←c23672;
};
};
};
};
};
};
};
}
extern word Basics←CompareBits(aBase←v5756, aStart←v5784, bBase←v5812, bStart←v5840, count←v5868)
word aBase←v5756;
word aStart←v5784;
word bBase←v5812;
word bStart←v5840;
word count←v5868;
{
register ptr gf←c24376 = (ptr) &globalframe;
word var←c5936;
word aCorr←v8880;
word bCorr←v8908;
/* CompareBits: */
SOURCE(13095, 4091)
SOURCE(13256, 51)
aCorr←v8880 = (aBase←v5756 & 3);
SOURCE(13309, 51)
bCorr←v8908 = (aBase←v5756 & 3);
SOURCE(13362, 186)
if (((aCorr←v8880 + bCorr←v8908) != 0)) {
SOURCE(13386, 164)
{
word p←v8952;
SOURCE(13388, 21)
p←v8952 = (* (( (ptr) gf←c24376)+5)/* logMisalign←v2916 */ );
SOURCE(13411, 19)
if ((p←v8952 != 0)) {
SOURCE(13427, 3)
(void) ( *( (fPt) ((* (ptr) p←v8952 ))))(p←v8952);
};
SOURCE(13432, 21)
aBase←v5756 = (aBase←v5756 - aCorr←v8880);
SOURCE(13455, 34)
aStart←v5784 = (aStart←v5784 + (aCorr←v8880 << 3));
SOURCE(13491, 21)
bBase←v5812 = (bBase←v5812 - bCorr←v8908);
SOURCE(13514, 34)
bStart←v5840 = (bStart←v5840 + (bCorr←v8908 << 3));
};
};
SOURCE(13553, 3613)
if ((count←v5868 != 0)) {
SOURCE(13571, 3598)
{
word a←v9012;
word aBit←v9040;
word b←v9068;
word bBit←v9096;
word ndw←v9124;
word lMask←v9152;
word rMask←v9180;
word aWord←v9208 = 0;
word bWord←v9236 = 0;
SOURCE(13573, 52)
{
word base←v12564;
base←v12564 = aBase←v5756;
SOURCE(1634, 64)
a←v9012 = (base←v12564 + ((aStart←v5784 >> 5) << 2));
};
SOURCE(13627, 29)
aBit←v9040 = (aStart←v5784 & 037);
SOURCE(13658, 52)
{
word base←v12516;
base←v12516 = bBase←v5812;
SOURCE(1634, 64)
b←v9068 = (base←v12516 + ((bStart←v5840 >> 5) << 2));
};
SOURCE(13712, 29)
bBit←v9096 = (bStart←v5840 & 037);
SOURCE(13743, 38)
{
word bits←v11844;
bits←v11844 = (aBit←v9040 + count←v5868);
SOURCE(1262, 32)
ndw←v9124 = ((bits←v11844 + 31) >> 5);
};
SOURCE(13783, 42)
{
word n←v12132;
n←v12132 = (32 - aBit←v9040);
SOURCE(1363, 45)
lMask←v9152 = (((word) XRM←BITLSHIFT(1, (n←v12132 & 037)) - 1) - (n←v12132 >> 5));
};
SOURCE(13827, 75)
{
word n←v12324;
n←v12324 = (((32 - aBit←v9040) - count←v5868) & 037);
SOURCE(1476, 43)
rMask←v9180 = INEG((word) XRM←BITRSHIFT(2147483648, (31 - n←v12324)));
};
SOURCE(14084, 3082)
SOURCE(14086, 2984)
if ((aBit←v9040 == bBit←v9096)) {
SOURCE(14135, 899)
{
word var←c24056;
var←c24056 = ndw←v9124;
switch (var←c24056) {
case 1:
SOURCE(14164, 74)
SOURCE(14166, 35)
{
word aW←v16432;
word bW←v16460;
word m←v16488;
aW←v16432 = (* (ptr) a←v9012 );
bW←v16460 = (* (ptr) b←v9068 );
m←v16488 = (word) XRM←BITAND(lMask←v9152, rMask←v9180);
SOURCE(13975, 21)
aWord←v9208 = (word) XRM←BITAND(aW←v16432, m←v16488);
SOURCE(13998, 21)
bWord←v9236 = (word) XRM←BITAND(bW←v16460, m←v16488);
};
SOURCE(14203, 22)
if ((aWord←v9208 != bWord←v9236)) {
SOURCE(14225, 11)
goto lab←L100092;
};
break;
case 2:
SOURCE(14254, 116)
SOURCE(14256, 20)
{
word aW←v16356;
word bW←v16384;
aW←v16356 = (* (ptr) a←v9012 );
bW←v16384 = (* (ptr) b←v9068 );
SOURCE(13975, 21)
aWord←v9208 = (word) XRM←BITAND(aW←v16356, lMask←v9152);
SOURCE(13998, 21)
bWord←v9236 = (word) XRM←BITAND(bW←v16384, lMask←v9152);
};
SOURCE(14278, 22)
if ((aWord←v9208 != bWord←v9236)) {
SOURCE(14300, 11)
goto lab←L100092;
};
SOURCE(14313, 20)
{
word aW←v16280;
word bW←v16308;
aW←v16280 = (* (( (ptr) a←v9012)+1) );
bW←v16308 = (* (( (ptr) b←v9068)+1) );
SOURCE(13975, 21)
aWord←v9208 = (word) XRM←BITAND(aW←v16280, rMask←v9180);
SOURCE(13998, 21)
bWord←v9236 = (word) XRM←BITAND(bW←v16308, rMask←v9180);
};
SOURCE(14335, 22)
if ((aWord←v9208 != bWord←v9236)) {
SOURCE(14357, 11)
goto lab←L100092;
};
break;
case 3:
SOURCE(14386, 166)
SOURCE(14388, 20)
{
word aW←v16204;
word bW←v16232;
aW←v16204 = (* (ptr) a←v9012 );
bW←v16232 = (* (ptr) b←v9068 );
SOURCE(13975, 21)
aWord←v9208 = (word) XRM←BITAND(aW←v16204, lMask←v9152);
SOURCE(13998, 21)
bWord←v9236 = (word) XRM←BITAND(bW←v16232, lMask←v9152);
};
SOURCE(14410, 22)
if ((aWord←v9208 != bWord←v9236)) {
SOURCE(14432, 11)
goto lab←L100092;
};
SOURCE(14445, 13)
{
word aW←v17068;
word bW←v17096;
aW←v17068 = (* (( (ptr) a←v9012)+1) );
bW←v17096 = (* (( (ptr) b←v9068)+1) );
SOURCE(14058, 10)
aWord←v9208 = aW←v17068;
SOURCE(14070, 11)
bWord←v9236 = bW←v17096;
};
SOURCE(14460, 22)
if ((aWord←v9208 != bWord←v9236)) {
SOURCE(14482, 11)
goto lab←L100092;
};
SOURCE(14495, 20)
{
word aW←v16128;
word bW←v16156;
aW←v16128 = (* (( (ptr) a←v9012)+2) );
bW←v16156 = (* (( (ptr) b←v9068)+2) );
SOURCE(13975, 21)
aWord←v9208 = (word) XRM←BITAND(aW←v16128, rMask←v9180);
SOURCE(13998, 21)
bWord←v9236 = (word) XRM←BITAND(bW←v16156, rMask←v9180);
};
SOURCE(14517, 22)
if ((aWord←v9208 != bWord←v9236)) {
SOURCE(14539, 11)
goto lab←L100092;
};
break;
default:
SOURCE(14574, 473)
{
word nw←v9564;
SOURCE(14576, 32)
nw←v9564 = (ndw←v9124 - 2);
SOURCE(14610, 20)
{
word aW←v16052;
word bW←v16080;
aW←v16052 = (* (ptr) a←v9012 );
bW←v16080 = (* (ptr) b←v9068 );
SOURCE(13975, 21)
aWord←v9208 = (word) XRM←BITAND(aW←v16052, lMask←v9152);
SOURCE(13998, 21)
bWord←v9236 = (word) XRM←BITAND(bW←v16080, lMask←v9152);
};
SOURCE(14632, 22)
if ((aWord←v9208 != bWord←v9236)) {
SOURCE(14654, 11)
goto lab←L100092;
};
SOURCE(14667, 17)
a←v9012 = (a←v9012 + 4);
SOURCE(14686, 17)
b←v9068 = (b←v9068 + 4);
SOURCE(14705, 168)
lab←L100095: ;
if ((nw←v9564 >= 2)) {
}
else {
goto lab←L100093;
};
SOURCE(14722, 13)
{
word aW←v16992;
word bW←v17020;
aW←v16992 = (* (ptr) a←v9012 );
bW←v17020 = (* (ptr) b←v9068 );
SOURCE(14058, 10)
aWord←v9208 = aW←v16992;
SOURCE(14070, 11)
bWord←v9236 = bW←v17020;
};
SOURCE(14737, 22)
if ((aWord←v9208 != bWord←v9236)) {
SOURCE(14759, 11)
goto lab←L100092;
};
SOURCE(14772, 13)
{
word aW←v16916;
word bW←v16944;
aW←v16916 = (* (( (ptr) a←v9012)+1) );
bW←v16944 = (* (( (ptr) b←v9068)+1) );
SOURCE(14058, 10)
aWord←v9208 = aW←v16916;
SOURCE(14070, 11)
bWord←v9236 = bW←v16944;
};
SOURCE(14787, 22)
if ((aWord←v9208 != bWord←v9236)) {
SOURCE(14809, 11)
goto lab←L100092;
};
SOURCE(14822, 18)
a←v9012 = (a←v9012 + 8);
SOURCE(14842, 18)
b←v9068 = (b←v9068 + 8);
SOURCE(14862, 11)
nw←v9564 = (nw←v9564 - 2);
goto lab←L100095;
lab←L100093: ;
SOURCE(14884, 101)
if ((nw←v9564 != 0)) {
SOURCE(14901, 13)
{
/*1*/ word aW←v16840;
/*1*/ word bW←v16868;
/*1*/ aW←v16840 = (* (ptr) a←v9012 );
/*1*/ bW←v16868 = (* (ptr) b←v9068 );
SOURCE(14058, 10)
/*1*/ aWord←v9208 = aW←v16840;
SOURCE(14070, 11)
/*1*/ bWord←v9236 = bW←v16868;
/*1*/ };
SOURCE(14916, 22)
if ((aWord←v9208 != bWord←v9236)) {
SOURCE(14938, 11)
/*1*/ goto lab←L100092;
/*1*/ };
SOURCE(14951, 16)
a←v9012 = (a←v9012 + 4);
SOURCE(14969, 16)
b←v9068 = (b←v9068 + 4);
};
SOURCE(14990, 20)
{
word aW←v15976;
word bW←v16004;
aW←v15976 = (* (ptr) a←v9012 );
bW←v16004 = (* (ptr) b←v9068 );
SOURCE(13975, 21)
aWord←v9208 = (word) XRM←BITAND(aW←v15976, rMask←v9180);
SOURCE(13998, 21)
bWord←v9236 = (word) XRM←BITAND(bW←v16004, rMask←v9180);
};
SOURCE(15012, 22)
if ((aWord←v9208 != bWord←v9236)) {
SOURCE(15034, 11)
goto lab←L100092;
};
};
break;
};
};
}
else {
SOURCE(15057, 2029)
{
word w←v9608 = 0;
word hi←v9636;
word lo←v9664 = 0;
word lSA←v9692;
word rSA←v9720;
word nsw←v9748;
word fetchLastWord←v9776;
SOURCE(15217, 51)
lSA←v9692 = ((bBit←v9096 - aBit←v9040) & 037);
SOURCE(15291, 51)
rSA←v9720 = ((32 - lSA←v9692) & 037);
SOURCE(15398, 38)
{
word bits←v11796;
bits←v11796 = (bBit←v9096 + count←v5868);
SOURCE(1262, 32)
nsw←v9748 = ((bits←v11796 + 31) >> 5);
};
SOURCE(15438, 68)
fetchLastWord←v9776 = ( (bBit←v9096 >= aBit←v9040) ? (nsw←v9748 > ndw←v9124) : (nsw←v9748 >= ndw←v9124) ) ;
SOURCE(15910, 32)
if ((bBit←v9096 >= aBit←v9040)) {
SOURCE(15931, 11)
SOURCE(15535, 7)
hi←v9636 = lo←v9664;
SOURCE(15552, 10)
SOURCE(15553, 9)
lo←v9664 = (* (ptr) b←v9068 );
SOURCE(15565, 16)
b←v9068 = (b←v9068 + 4);
SOURCE(15583, 42)
w←v9608 = ((word) XRM←BITLSHIFT(hi←v9636, lSA←v9692) + (word) XRM←BITRSHIFT(lo←v9664, rSA←v9720));
};
SOURCE(15944, 1126)
{
word var←c24120;
var←c24120 = ndw←v9124;
switch (var←c24120) {
case 1:
SOURCE(15973, 127)
{
word bothMask←v10068;
SOURCE(15975, 37)
bothMask←v10068 = (word) XRM←BITAND(lMask←v9152, rMask←v9180);
SOURCE(16014, 27)
SOURCE(15820, 22)
w←v9608 = (word) XRM←BITLSHIFT(lo←v9664, lSA←v9692);
SOURCE(15844, 60)
if ((0 != fetchLastWord←v9776)) {
SOURCE(15866, 38)
SOURCE(15867, 37)
/*1*/ w←v9608 = (w←v9608 + (word) XRM←BITRSHIFT((* (ptr) b←v9068 ), rSA←v9720));
/*1*/ };
SOURCE(16043, 20)
{
/*1*/ word aW←v15900;
/*1*/ word bW←v15928;
/*1*/ aW←v15900 = (* (ptr) a←v9012 );
/*1*/ bW←v15928 = w←v9608;
SOURCE(13975, 21)
/*1*/ aWord←v9208 = (word) XRM←BITAND(aW←v15900, bothMask←v10068);
SOURCE(13998, 21)
/*1*/ bWord←v9236 = (word) XRM←BITAND(bW←v15928, bothMask←v10068);
/*1*/ };
SOURCE(16065, 22)
if ((aWord←v9208 != bWord←v9236)) {
SOURCE(16087, 11)
/*1*/ goto lab←L100092;
/*1*/ };
};
break;
case 2:
SOURCE(16116, 156)
SOURCE(16118, 15)
SOURCE(15677, 7)
hi←v9636 = lo←v9664;
SOURCE(15694, 19)
SOURCE(15695, 18)
lo←v9664 = (* (ptr) b←v9068 );
SOURCE(15716, 42)
w←v9608 = ((word) XRM←BITLSHIFT(hi←v9636, lSA←v9692) + (word) XRM←BITRSHIFT(lo←v9664, rSA←v9720));
SOURCE(16135, 17)
{
word aW←v15824;
word bW←v15852;
aW←v15824 = (* (ptr) a←v9012 );
bW←v15852 = w←v9608;
SOURCE(13975, 21)
aWord←v9208 = (word) XRM←BITAND(aW←v15824, lMask←v9152);
SOURCE(13998, 21)
bWord←v9236 = (word) XRM←BITAND(bW←v15852, lMask←v9152);
};
SOURCE(16154, 22)
if ((aWord←v9208 != bWord←v9236)) {
SOURCE(16176, 11)
goto lab←L100092;
};
SOURCE(16189, 27)
SOURCE(15820, 22)
w←v9608 = (word) XRM←BITLSHIFT(lo←v9664, lSA←v9692);
SOURCE(15844, 60)
if ((0 != fetchLastWord←v9776)) {
SOURCE(15866, 38)
SOURCE(15867, 37)
w←v9608 = (w←v9608 + (word) XRM←BITRSHIFT((* (( (ptr) b←v9068)+1) ), rSA←v9720));
};
SOURCE(16218, 17)
{
word aW←v15748;
word bW←v15776;
aW←v15748 = (* (( (ptr) a←v9012)+1) );
bW←v15776 = w←v9608;
SOURCE(13975, 21)
aWord←v9208 = (word) XRM←BITAND(aW←v15748, rMask←v9180);
SOURCE(13998, 21)
bWord←v9236 = (word) XRM←BITAND(bW←v15776, rMask←v9180);
};
SOURCE(16237, 22)
if ((aWord←v9208 != bWord←v9236)) {
SOURCE(16259, 11)
goto lab←L100092;
};
break;
case 3:
SOURCE(16288, 220)
SOURCE(16290, 15)
SOURCE(15677, 7)
hi←v9636 = lo←v9664;
SOURCE(15694, 19)
SOURCE(15695, 18)
lo←v9664 = (* (ptr) b←v9068 );
SOURCE(15716, 42)
w←v9608 = ((word) XRM←BITLSHIFT(hi←v9636, lSA←v9692) + (word) XRM←BITRSHIFT(lo←v9664, rSA←v9720));
SOURCE(16307, 17)
{
word aW←v15672;
word bW←v15700;
aW←v15672 = (* (ptr) a←v9012 );
bW←v15700 = w←v9608;
SOURCE(13975, 21)
aWord←v9208 = (word) XRM←BITAND(aW←v15672, lMask←v9152);
SOURCE(13998, 21)
bWord←v9236 = (word) XRM←BITAND(bW←v15700, lMask←v9152);
};
SOURCE(16326, 22)
if ((aWord←v9208 != bWord←v9236)) {
SOURCE(16348, 11)
goto lab←L100092;
};
SOURCE(16361, 15)
SOURCE(15677, 7)
hi←v9636 = lo←v9664;
SOURCE(15694, 19)
SOURCE(15695, 18)
lo←v9664 = (* (( (ptr) b←v9068)+1) );
SOURCE(15716, 42)
w←v9608 = ((word) XRM←BITLSHIFT(hi←v9636, lSA←v9692) + (word) XRM←BITRSHIFT(lo←v9664, rSA←v9720));
SOURCE(16378, 10)
{
word aW←v16764;
word bW←v16792;
aW←v16764 = (* (( (ptr) a←v9012)+1) );
bW←v16792 = w←v9608;
SOURCE(14058, 10)
aWord←v9208 = aW←v16764;
SOURCE(14070, 11)
bWord←v9236 = bW←v16792;
};
SOURCE(16390, 22)
if ((aWord←v9208 != bWord←v9236)) {
SOURCE(16412, 11)
goto lab←L100092;
};
SOURCE(16425, 27)
SOURCE(15820, 22)
w←v9608 = (word) XRM←BITLSHIFT(lo←v9664, lSA←v9692);
SOURCE(15844, 60)
if ((0 != fetchLastWord←v9776)) {
SOURCE(15866, 38)
SOURCE(15867, 37)
w←v9608 = (w←v9608 + (word) XRM←BITRSHIFT((* (( (ptr) b←v9068)+2) ), rSA←v9720));
};
SOURCE(16454, 17)
{
word aW←v15596;
word bW←v15624;
aW←v15596 = (* (( (ptr) a←v9012)+2) );
bW←v15624 = w←v9608;
SOURCE(13975, 21)
aWord←v9208 = (word) XRM←BITAND(aW←v15596, rMask←v9180);
SOURCE(13998, 21)
bWord←v9236 = (word) XRM←BITAND(bW←v15624, rMask←v9180);
};
SOURCE(16473, 22)
if ((aWord←v9208 != bWord←v9236)) {
SOURCE(16495, 11)
goto lab←L100092;
};
break;
default:
SOURCE(16530, 553)
{
word nw←v10112;
SOURCE(16532, 32)
nw←v10112 = (ndw←v9124 - 2);
SOURCE(16566, 15)
SOURCE(15677, 7)
hi←v9636 = lo←v9664;
SOURCE(15694, 19)
SOURCE(15695, 18)
lo←v9664 = (* (ptr) b←v9068 );
SOURCE(15716, 42)
w←v9608 = ((word) XRM←BITLSHIFT(hi←v9636, lSA←v9692) + (word) XRM←BITRSHIFT(lo←v9664, rSA←v9720));
SOURCE(16583, 17)
{
/*1*/ word aW←v15520;
/*1*/ word bW←v15548;
/*1*/ aW←v15520 = (* (ptr) a←v9012 );
/*1*/ bW←v15548 = w←v9608;
SOURCE(13975, 21)
/*1*/ aWord←v9208 = (word) XRM←BITAND(aW←v15520, lMask←v9152);
SOURCE(13998, 21)
/*1*/ bWord←v9236 = (word) XRM←BITAND(bW←v15548, lMask←v9152);
/*1*/ };
SOURCE(16602, 22)
if ((aWord←v9208 != bWord←v9236)) {
SOURCE(16624, 11)
/*1*/ goto lab←L100092;
/*1*/ };
SOURCE(16637, 16)
a←v9012 = (a←v9012 + 4);
SOURCE(16655, 16)
b←v9068 = (b←v9068 + 4);
SOURCE(16673, 196)
lab←L100099: ;
if ((nw←v10112 >= 2)) {
/*1*/ }
else {
/*1*/ goto lab←L100097;
/*1*/ };
SOURCE(16690, 15)
SOURCE(15677, 7)
hi←v9636 = lo←v9664;
SOURCE(15694, 19)
SOURCE(15695, 18)
lo←v9664 = (* (ptr) b←v9068 );
SOURCE(15716, 42)
w←v9608 = ((word) XRM←BITLSHIFT(hi←v9636, lSA←v9692) + (word) XRM←BITRSHIFT(lo←v9664, rSA←v9720));
SOURCE(16707, 10)
{
/*1*/ word aW←v16688;
/*1*/ word bW←v16716;
/*1*/ aW←v16688 = (* (ptr) a←v9012 );
/*1*/ bW←v16716 = w←v9608;
SOURCE(14058, 10)
/*1*/ aWord←v9208 = aW←v16688;
SOURCE(14070, 11)
/*1*/ bWord←v9236 = bW←v16716;
/*1*/ };
SOURCE(16719, 22)
if ((aWord←v9208 != bWord←v9236)) {
SOURCE(16741, 11)
/*1*/ goto lab←L100092;
/*1*/ };
SOURCE(16754, 15)
SOURCE(15677, 7)
hi←v9636 = lo←v9664;
SOURCE(15694, 19)
SOURCE(15695, 18)
lo←v9664 = (* (( (ptr) b←v9068)+1) );
SOURCE(15716, 42)
w←v9608 = ((word) XRM←BITLSHIFT(hi←v9636, lSA←v9692) + (word) XRM←BITRSHIFT(lo←v9664, rSA←v9720));
SOURCE(16771, 10)
{
/*1*/ word aW←v16612;
/*1*/ word bW←v16640;
/*1*/ aW←v16612 = (* (( (ptr) a←v9012)+1) );
/*1*/ bW←v16640 = w←v9608;
SOURCE(14058, 10)
/*1*/ aWord←v9208 = aW←v16612;
SOURCE(14070, 11)
/*1*/ bWord←v9236 = bW←v16640;
/*1*/ };
SOURCE(16783, 22)
if ((aWord←v9208 != bWord←v9236)) {
SOURCE(16805, 11)
/*1*/ goto lab←L100092;
/*1*/ };
SOURCE(16818, 18)
a←v9012 = (a←v9012 + 8);
SOURCE(16838, 18)
b←v9068 = (b←v9068 + 8);
SOURCE(16858, 11)
nw←v10112 = (nw←v10112 - 2);
goto lab←L100099;
lab←L100097: ;
SOURCE(16880, 115)
if ((nw←v10112 != 0)) {
SOURCE(16897, 15)
SOURCE(15677, 7)
/*1*/ hi←v9636 = lo←v9664;
SOURCE(15694, 19)
SOURCE(15695, 18)
/*1*/ lo←v9664 = (* (ptr) b←v9068 );
SOURCE(15716, 42)
/*1*/ w←v9608 = ((word) XRM←BITLSHIFT(hi←v9636, lSA←v9692) + (word) XRM←BITRSHIFT(lo←v9664, rSA←v9720));
SOURCE(16914, 10)
/*1*/ {
/*1*/ word aW←v16536;
/*1*/ word bW←v16564;
/*1*/ aW←v16536 = (* (ptr) a←v9012 );
/*1*/ bW←v16564 = w←v9608;
SOURCE(14058, 10)
/*1*/ aWord←v9208 = aW←v16536;
SOURCE(14070, 11)
/*1*/ bWord←v9236 = bW←v16564;
/*1*/ };
SOURCE(16926, 22)
/*1*/ if ((aWord←v9208 != bWord←v9236)) {
SOURCE(16948, 11)
/*1*/ goto lab←L100092;
/*1*/ };
SOURCE(16961, 16)
/*1*/ a←v9012 = (a←v9012 + 4);
SOURCE(16979, 16)
/*1*/ b←v9068 = (b←v9068 + 4);
/*1*/ };
SOURCE(17000, 27)
SOURCE(15820, 22)
w←v9608 = (word) XRM←BITLSHIFT(lo←v9664, lSA←v9692);
SOURCE(15844, 60)
if ((0 != fetchLastWord←v9776)) {
SOURCE(15866, 38)
SOURCE(15867, 37)
/*1*/ w←v9608 = (w←v9608 + (word) XRM←BITRSHIFT((* (ptr) b←v9068 ), rSA←v9720));
/*1*/ };
SOURCE(17029, 17)
{
/*1*/ word aW←v15444;
/*1*/ word bW←v15472;
/*1*/ aW←v15444 = (* (ptr) a←v9012 );
/*1*/ bW←v15472 = w←v9608;
SOURCE(13975, 21)
/*1*/ aWord←v9208 = (word) XRM←BITAND(aW←v15444, rMask←v9180);
SOURCE(13998, 21)
/*1*/ bWord←v9236 = (word) XRM←BITAND(bW←v15472, rMask←v9180);
/*1*/ };
SOURCE(17048, 22)
if ((aWord←v9208 != bWord←v9236)) {
SOURCE(17070, 11)
/*1*/ goto lab←L100092;
/*1*/ };
};
break;
};
};
};
};
goto lab←L100100;
lab←L100092: ;
SOURCE(17106, 57)
if ((aWord←v9208 < bWord←v9236)) {
SOURCE(17128, 19)
return(0);
}
else {
SOURCE(17147, 16)
return(2);
};
lab←L100100: ;
};
};
SOURCE(17172, 14)
return(1);
}
extern word Basics←BITSHIFT(value←v5996, count←v6024)
word value←v5996;
word count←v6024;
{
word var←c6068;
word c←v10156;
/* BITSHIFT: */
SOURCE(17192, 302)
SOURCE(17277, 45)
c←v10156 = (count←v6024 & 037);
SOURCE(17324, 46)
if (( (int)count←v6024 == (int)c←v10156)) {
SOURCE(17342, 28)
return((word) XRM←BITLSHIFT(value←v5996, c←v10156));
};
SOURCE(17372, 14)
count←v6024 = INEG(count←v6024);
SOURCE(17388, 45)
c←v10156 = (count←v6024 & 037);
SOURCE(17435, 46)
if (( (int)count←v6024 == (int)c←v10156)) {
SOURCE(17453, 28)
return((word) XRM←BITRSHIFT(value←v5996, c←v10156));
};
SOURCE(17483, 11)
return(0);
}
extern word Basics←ByteBlt(to←v6128, from←v6156)
W3 to←v6128;
W3 from←v6156;
{
word nBytes←v6200;
/* ByteBlt: */
SOURCE(17497, 307)
SOURCE(17575, 134)
{
word x4;
word x5;
word x6;
word x7;
word x8;
word x9;
nBytes←v6200 = (x6 = ((x4 = to←v6128.f1,
x5 = to←v6128.f2,
MAX( (unsigned) , x4, x5)) - to←v6128.f1),
x9 = ((x7 = from←v6156.f1,
x8 = from←v6156.f2,
MAX( (unsigned) , x7, x8)) - from←v6156.f1),
MIN( (unsigned) , x6, x9));
};
SOURCE(17718, 86)
SOURCE(17719, 85)
(void) Basics←MoveBytes(to←v6128.f0, to←v6128.f1, from←v6156.f0, from←v6156.f1, nBytes←v6200);
SOURCE(17497, 307)
return(nBytes←v6200);
}
/* file: BasicsImpl, module: BasicsImpl, compiled at: September 24, 1992 12:03:36 pm PDT */
extern void XR←install←BasicsImpl() {
NoName←Q6744();
}
extern void XR←run←BasicsImpl() { XR←Start(&globalframe); }