/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1992 by Xerox Corporation. All rights reserved. */
/* time: February 21, 1992 11:33:32 pm PST */
/* C2C version: October 16, 1990 (native) */
/* ref-counting: off */
/* file: RasterOpGreenbayImpl, module: RasterOpGreenbayImpl */
/* switches: cfhklnouw */
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
#define XRM←BITLSHIFT(x, y) ((word)(x) << (word)(y))
#define XRM←BITAND(x, y) (((word)(x)) & ((word)(y)))
#define XRM←BITOR(x, y) (((word)(x)) | ((word)(y)))
#define XRM←BITRSHIFT(x, y) ((word)(x) >> (word)(y))
static char versionStamp[] = "@(#)mob←version [2546705687,3216475025] RasterOpGreenbayImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef struct {word f0, f1;} W2;
typedef W2 *W2Pt;
#define SOURCE(p, l) /* source p, l */
static void NoName←Q1392();
static void RasterOpGreenbayImpl←P0();
static void Pack←P60();
static void Unpack←P120();
static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\227\313\245\027\300\277\267\203\221\100\164\000\000"};
static struct {unsigned f; char r[16];} string2 = {851984, "\257\300\207\330\332\257\300\255\011\025\200\100\150\000\000"};
static struct {
word f0[4]; word f4; word f5; word f6;
word f7; word f8; word f9[2];
} globalframe = {
{0}, (word) Unpack←P120, 0, (word) Pack←P60,
0, (word) RasterOpGreenbayImpl←P0, {0}
};
static void NoName←Q1392()
{
register ptr gf←c0142 = (ptr) &globalframe;
word var←c9888;
(void) XR←DeclareGlobalFrame((word) "RasterOpGreenbayImpl", &globalframe, (word) XR←GetTypeIndexS((word) (&string1)), (word) (
( (bPt) gf←c0142)+32)/* var←c7296 */ );
var←c9888 = (word) XR←ExportInterface((word) "RasterOp", (word) XR←GetTypeIndexS((word) (&string2)), 8);
(* (( (ptr) gf←c0142)+10)/* var←c9856 */ ) = var←c9888;
(void) XR←ExportProcS(var←c9888, (word) (( (bPt) gf←c0142)+24)/* var←c7264 */ , 1310724);
(void) XR←ExportProcS(var←c9888, (word) (( (bPt) gf←c0142)+16)/* var←c7232 */ , 1310980);
}
static void RasterOpGreenbayImpl←P0(formal←c07, formal←c06)
word formal←c07;
word formal←c06;
{
/* RasterOpGreenbayImpl: */
}
static void Pack←P60(dst←v2604, src←v2632, bitsPerSample←v2660, nSamples←v2688)
W2 dst←v2604;
word src←v2632;
word bitsPerSample←v2660;
word nSamples←v2688;
{
word p←v2884;
word h←v2912;
word g←v2940;
word j←v2968 = 0;
word count←v2996;
word bps←v3024;
word m←v3052;
word bitsPerSample2←v3080;
word bitsPerSample4←v3108;
word bitsPerSample8←v3136;
/* Pack: */
SOURCE(186, 1964)
SOURCE(317, 60)
p←v2884 = dst←v2604.f0;
SOURCE(379, 37)
h←v2912 = (word) Basics←BITSHIFT((* (ptr) p←v2884 ), (dst←v2604.f1 - 32));
SOURCE(418, 21)
g←v2940 = dst←v2604.f1;
SOURCE(503, 26)
count←v2996 = nSamples←v2688;
SOURCE(531, 29)
bps←v3024 = bitsPerSample←v2660;
SOURCE(562, 29)
m←v3052 = ((word) XRM←BITLSHIFT(1, bps←v3024) - 1);
SOURCE(593, 54)
bitsPerSample2←v3080 = (bitsPerSample←v2660 + bitsPerSample←v2660);
SOURCE(649, 56)
bitsPerSample4←v3108 = (bitsPerSample2←v3080 + bitsPerSample2←v3080);
SOURCE(707, 56)
bitsPerSample8←v3136 = (bitsPerSample4←v3108 + bitsPerSample4←v3108);
SOURCE(875, 863)
lab←L100002: ;
if ((count←v2996 >= 8)) {
}
else {
goto lab←L100000;
};
SOURCE(895, 703)
{
word var←c7328;
var←c7328 = (32 - g←v2940);
if ((var←c7328 >= bitsPerSample8←v3136)) {
SOURCE(946, 22)
{
word var←c7360;
word w←v7156;
word s←v7184;
w←v7156 = h←v2912;
s←v7184 = (* (( (ptr) src←v2632)+j←v2968) );
SOURCE(824, 48)
{
word var←c7424;
word var←c7456;
var←c7424 = (word) XRM←BITLSHIFT(w←v7156, bps←v3024);
var←c7456 = (word) XRM←BITAND(s←v7184, m←v3052);
var←c7360 = (word) XRM←BITOR(var←c7424, var←c7456);
};
h←v2912 = var←c7360;
};
SOURCE(970, 24)
{
word var←c7488;
word w←v7080;
word s←v7108;
w←v7080 = h←v2912;
s←v7108 = (* (( (ptr) src←v2632)+(j←v2968 + 1)) );
SOURCE(824, 48)
{
word var←c7552;
word var←c7584;
var←c7552 = (word) XRM←BITLSHIFT(w←v7080, bps←v3024);
var←c7584 = (word) XRM←BITAND(s←v7108, m←v3052);
var←c7488 = (word) XRM←BITOR(var←c7552, var←c7584);
};
h←v2912 = var←c7488;
};
SOURCE(996, 24)
{
word var←c7616;
word w←v7004;
word s←v7032;
w←v7004 = h←v2912;
s←v7032 = (* (( (ptr) src←v2632)+(j←v2968 + 2)) );
SOURCE(824, 48)
{
word var←c7680;
word var←c7712;
var←c7680 = (word) XRM←BITLSHIFT(w←v7004, bps←v3024);
var←c7712 = (word) XRM←BITAND(s←v7032, m←v3052);
var←c7616 = (word) XRM←BITOR(var←c7680, var←c7712);
};
h←v2912 = var←c7616;
};
SOURCE(1022, 24)
{
word var←c7744;
word w←v6928;
word s←v6956;
w←v6928 = h←v2912;
s←v6956 = (* (( (ptr) src←v2632)+(j←v2968 + 3)) );
SOURCE(824, 48)
{
word var←c7808;
word var←c7840;
var←c7808 = (word) XRM←BITLSHIFT(w←v6928, bps←v3024);
var←c7840 = (word) XRM←BITAND(s←v6956, m←v3052);
var←c7744 = (word) XRM←BITOR(var←c7808, var←c7840);
};
h←v2912 = var←c7744;
};
SOURCE(1048, 24)
{
word var←c7872;
word w←v6852;
word s←v6880;
w←v6852 = h←v2912;
s←v6880 = (* (( (ptr) src←v2632)+(j←v2968 + 4)) );
SOURCE(824, 48)
{
word var←c7936;
word var←c7968;
var←c7936 = (word) XRM←BITLSHIFT(w←v6852, bps←v3024);
var←c7968 = (word) XRM←BITAND(s←v6880, m←v3052);
var←c7872 = (word) XRM←BITOR(var←c7936, var←c7968);
};
h←v2912 = var←c7872;
};
SOURCE(1074, 24)
{
word var←c8000;
word w←v6776;
word s←v6804;
w←v6776 = h←v2912;
s←v6804 = (* (( (ptr) src←v2632)+(j←v2968 + 5)) );
SOURCE(824, 48)
{
word var←c8064;
word var←c8096;
var←c8064 = (word) XRM←BITLSHIFT(w←v6776, bps←v3024);
var←c8096 = (word) XRM←BITAND(s←v6804, m←v3052);
var←c8000 = (word) XRM←BITOR(var←c8064, var←c8096);
};
h←v2912 = var←c8000;
};
SOURCE(1100, 24)
{
word var←c8128;
word w←v6700;
word s←v6728;
w←v6700 = h←v2912;
s←v6728 = (* (( (ptr) src←v2632)+(j←v2968 + 6)) );
SOURCE(824, 48)
{
word var←c8192;
word var←c8224;
var←c8192 = (word) XRM←BITLSHIFT(w←v6700, bps←v3024);
var←c8224 = (word) XRM←BITAND(s←v6728, m←v3052);
var←c8128 = (word) XRM←BITOR(var←c8192, var←c8224);
};
h←v2912 = var←c8128;
};
SOURCE(1126, 24)
{
word var←c8256;
word w←v6624;
word s←v6652;
w←v6624 = h←v2912;
s←v6652 = (* (( (ptr) src←v2632)+(j←v2968 + 7)) );
SOURCE(824, 48)
{
word var←c8320;
word var←c8352;
var←c8320 = (word) XRM←BITLSHIFT(w←v6624, bps←v3024);
var←c8352 = (word) XRM←BITAND(s←v6652, m←v3052);
var←c8256 = (word) XRM←BITOR(var←c8320, var←c8352);
};
h←v2912 = var←c8256;
};
SOURCE(1152, 17)
count←v2996 = (count←v2996 - 8);
SOURCE(1171, 9)
j←v2968 = (j←v2968 + 8);
SOURCE(1182, 22)
g←v2940 = (g←v2940 + bitsPerSample8←v3136);
goto endif03;
};
if ((var←c7328 >= bitsPerSample4←v3108)) {
SOURCE(1232, 22)
{
word var←c8384;
word w←v6548;
word s←v6576;
w←v6548 = h←v2912;
s←v6576 = (* (( (ptr) src←v2632)+j←v2968) );
SOURCE(824, 48)
{
word var←c8448;
word var←c8480;
var←c8448 = (word) XRM←BITLSHIFT(w←v6548, bps←v3024);
var←c8480 = (word) XRM←BITAND(s←v6576, m←v3052);
var←c8384 = (word) XRM←BITOR(var←c8448, var←c8480);
};
h←v2912 = var←c8384;
};
SOURCE(1256, 24)
{
word var←c8512;
word w←v6472;
word s←v6500;
w←v6472 = h←v2912;
s←v6500 = (* (( (ptr) src←v2632)+(j←v2968 + 1)) );
SOURCE(824, 48)
{
word var←c8576;
word var←c8608;
var←c8576 = (word) XRM←BITLSHIFT(w←v6472, bps←v3024);
var←c8608 = (word) XRM←BITAND(s←v6500, m←v3052);
var←c8512 = (word) XRM←BITOR(var←c8576, var←c8608);
};
h←v2912 = var←c8512;
};
SOURCE(1282, 24)
{
word var←c8640;
word w←v6396;
word s←v6424;
w←v6396 = h←v2912;
s←v6424 = (* (( (ptr) src←v2632)+(j←v2968 + 2)) );
SOURCE(824, 48)
{
word var←c8704;
word var←c8736;
var←c8704 = (word) XRM←BITLSHIFT(w←v6396, bps←v3024);
var←c8736 = (word) XRM←BITAND(s←v6424, m←v3052);
var←c8640 = (word) XRM←BITOR(var←c8704, var←c8736);
};
h←v2912 = var←c8640;
};
SOURCE(1308, 24)
{
word var←c8768;
word w←v6320;
word s←v6348;
w←v6320 = h←v2912;
s←v6348 = (* (( (ptr) src←v2632)+(j←v2968 + 3)) );
SOURCE(824, 48)
{
word var←c8832;
word var←c8864;
var←c8832 = (word) XRM←BITLSHIFT(w←v6320, bps←v3024);
var←c8864 = (word) XRM←BITAND(s←v6348, m←v3052);
var←c8768 = (word) XRM←BITOR(var←c8832, var←c8864);
};
h←v2912 = var←c8768;
};
SOURCE(1334, 17)
count←v2996 = (count←v2996 - 4);
SOURCE(1353, 9)
j←v2968 = (j←v2968 + 4);
SOURCE(1364, 22)
g←v2940 = (g←v2940 + bitsPerSample4←v3108);
goto endif03;
};
if ((var←c7328 >= bitsPerSample2←v3080)) {
SOURCE(1414, 22)
{
word var←c8896;
word w←v6244;
word s←v6272;
w←v6244 = h←v2912;
s←v6272 = (* (( (ptr) src←v2632)+j←v2968) );
SOURCE(824, 48)
{
word var←c8960;
word var←c8992;
var←c8960 = (word) XRM←BITLSHIFT(w←v6244, bps←v3024);
var←c8992 = (word) XRM←BITAND(s←v6272, m←v3052);
var←c8896 = (word) XRM←BITOR(var←c8960, var←c8992);
};
h←v2912 = var←c8896;
};
SOURCE(1438, 24)
{
word var←c9024;
word w←v6168;
word s←v6196;
w←v6168 = h←v2912;
s←v6196 = (* (( (ptr) src←v2632)+(j←v2968 + 1)) );
SOURCE(824, 48)
{
word var←c9088;
word var←c9120;
var←c9088 = (word) XRM←BITLSHIFT(w←v6168, bps←v3024);
var←c9120 = (word) XRM←BITAND(s←v6196, m←v3052);
var←c9024 = (word) XRM←BITOR(var←c9088, var←c9120);
};
h←v2912 = var←c9024;
};
SOURCE(1464, 17)
count←v2996 = (count←v2996 - 2);
SOURCE(1483, 9)
j←v2968 = (j←v2968 + 2);
SOURCE(1494, 22)
g←v2940 = (g←v2940 + bitsPerSample2←v3080);
goto endif03;
};
if ((var←c7328 >= bps←v3024)) {
SOURCE(1533, 22)
{
word var←c9152;
word w←v6092;
word s←v6120;
w←v6092 = h←v2912;
s←v6120 = (* (( (ptr) src←v2632)+j←v2968) );
SOURCE(824, 48)
{
word var←c9216;
word var←c9248;
var←c9216 = (word) XRM←BITLSHIFT(w←v6092, bps←v3024);
var←c9248 = (word) XRM←BITAND(s←v6120, m←v3052);
var←c9152 = (word) XRM←BITOR(var←c9216, var←c9248);
};
h←v2912 = var←c9152;
};
SOURCE(1557, 17)
count←v2996 = (count←v2996 - 1);
SOURCE(1576, 9)
j←v2968 = (j←v2968 + 1);
SOURCE(1587, 11)
g←v2940 = (g←v2940 + bps←v3024);
goto endif03;
};
SOURCE(1614, 4)
goto lab←L100001;
endif03: ;
};
SOURCE(1685, 53)
if ((g←v2940 == 32)) {
SOURCE(1703, 8)
(* (ptr) p←v2884 ) = h←v2912;
SOURCE(1713, 18)
p←v2884 = (p←v2884 + 4);
SOURCE(1733, 5)
g←v2940 = 0;
};
goto lab←L100002;
lab←L100000: ;
lab←L100001: ;
SOURCE(1752, 309)
lab←L100020: ;
if ((j←v2968 != nSamples←v2688)) {
}
else {
goto lab←L100018;
};
SOURCE(1774, 273)
{
word var←c9280;
var←c9280 = (32 - g←v2940);
if ((var←c9280 >= bps←v3024)) {
SOURCE(1804, 22)
{
word var←c9312;
word w←v6016;
word s←v6044;
w←v6016 = h←v2912;
s←v6044 = (* (( (ptr) src←v2632)+j←v2968) );
SOURCE(824, 48)
{
word var←c9376;
word var←c9408;
var←c9376 = (word) XRM←BITLSHIFT(w←v6016, bps←v3024);
var←c9408 = (word) XRM←BITAND(s←v6044, m←v3052);
var←c9312 = (word) XRM←BITOR(var←c9376, var←c9408);
};
h←v2912 = var←c9312;
};
SOURCE(1828, 11)
g←v2940 = (g←v2940 + bps←v3024);
}
else {
if ((var←c9280 == 0)) {
SOURCE(1853, 8)
(* (ptr) p←v2884 ) = h←v2912;
SOURCE(1863, 18)
p←v2884 = (p←v2884 + 4);
SOURCE(1883, 10)
h←v2912 = (* (( (ptr) src←v2632)+j←v2968) );
SOURCE(1895, 7)
g←v2940 = bps←v3024;
}
else {
SOURCE(1918, 131)
{
word k←v3428;
SOURCE(1920, 27)
k←v3428 = (word) XRM←BITAND((* (( (ptr) src←v2632)+j←v2968) ), m←v3052);
SOURCE(1949, 52)
{
word var←c9440;
var←c9440 = ((word) XRM←BITLSHIFT(h←v2912, (32 - g←v2940)) + (word) XRM←BITRSHIFT(k←v3428, ((bps←v3024 + g←v2940) - 32)));
(* (ptr) p←v2884 ) = var←c9440;
};
SOURCE(2003, 18)
p←v2884 = (p←v2884 + 4);
SOURCE(2023, 5)
h←v2912 = k←v3428;
SOURCE(2030, 17)
g←v2940 = ((g←v2940 + bps←v3024) - 32);
};
};
};
};
SOURCE(2052, 9)
j←v2968 = (j←v2968 + 1);
goto lab←L100020;
lab←L100018: ;
SOURCE(2072, 78)
if ((g←v2940 != 0)) {
SOURCE(2088, 62)
{
word var←c9472;
{
word var←c9504;
word var←c0143;
var←c9504 = ((word) XRM←BITLSHIFT(1, (32 - g←v2940)) - 1);
var←c0143 = (word) XRM←BITAND((* (ptr) p←v2884 ), var←c9504);
var←c9472 = ((word) XRM←BITLSHIFT(h←v2912, (32 - g←v2940)) + var←c0143);
};
(* (ptr) p←v2884 ) = var←c9472;
};
};
}
static void Unpack←P120(dst←v2760, src←v2788, bitsPerSample←v2816, nSamples←v2844)
word dst←v2760;
W2 src←v2788;
word bitsPerSample←v2816;
word nSamples←v2844;
{
/* Unpack: */
SOURCE(2159, 3466)
if ((nSamples←v2844 == 0)) {
}
else {
if ((bitsPerSample←v2816 == 1)) {
SOURCE(2356, 1453)
{
word wordPointer←v3472;
word srcp←v3500;
word bit←v3528;
word word←v3556 = 0;
word count←v3584;
SOURCE(2358, 45)
wordPointer←v3472 = (word) dst←v2760;
SOURCE(2405, 37)
srcp←v3500 = src←v2788.f0;
SOURCE(2444, 23)
bit←v3528 = src←v2788.f1;
SOURCE(2485, 26)
count←v3584 = nSamples←v2844;
SOURCE(2513, 223)
if ((bit←v3528 != 0)) {
SOURCE(2529, 28)
word←v3556 = (word) XRM←BITLSHIFT((* (ptr) srcp←v3500 ), bit←v3528);
SOURCE(2559, 24)
srcp←v3500 = (srcp←v3500 + 4);
SOURCE(2585, 151)
lab←L100024: ;
if ( ( (count←v3584 != 0) ? (bit←v3528 != 32) : 0 ) ) {
}
else {
goto lab←L100022;
};
SOURCE(2614, 37)
(* (ptr) wordPointer←v3472 ) = (word) XRM←BITRSHIFT(word←v3556, 31);
SOURCE(2653, 15)
count←v3584 = (count←v3584 - 1);
SOURCE(2670, 11)
bit←v3528 = (bit←v3528 + 1);
SOURCE(2683, 13)
word←v3556 = (word←v3556 << 1);
SOURCE(2698, 38)
wordPointer←v3472 = (wordPointer←v3472 + 4);
goto lab←L100024;
lab←L100022: ;
};
SOURCE(2750, 9)
bit←v3528 = 32;
SOURCE(2761, 818)
lab←L100027: ;
if ((count←v3584 >= 32)) {
}
else {
goto lab←L100025;
};
{
word a←v3652;
word lp←v3680;
word b←v3708;
SOURCE(2780, 64)
a←v3652 = wordPointer←v3472;
SOURCE(2846, 67)
lp←v3680 = srcp←v3500;
SOURCE(2915, 39)
b←v3708 = (* (ptr) lp←v3680 );
SOURCE(2956, 13)
(* (ptr) a←v3652 ) = ((int)b←v3708<0);
SOURCE(2973, 13)
(* (( (ptr) a←v3652)+1) ) = (((unsigned)b←v3708 << 1) >> 31);
SOURCE(2990, 13)
(* (( (ptr) a←v3652)+2) ) = (((unsigned)b←v3708 << 2) >> 31);
SOURCE(3007, 11)
(* (( (ptr) a←v3652)+3) ) = (((unsigned)b←v3708 << 3) >> 31);
SOURCE(3022, 13)
(* (( (ptr) a←v3652)+4) ) = (((unsigned)b←v3708 << 4) >> 31);
SOURCE(3039, 13)
(* (( (ptr) a←v3652)+5) ) = (((unsigned)b←v3708 << 5) >> 31);
SOURCE(3056, 13)
(* (( (ptr) a←v3652)+6) ) = (((unsigned)b←v3708 << 6) >> 31);
SOURCE(3073, 11)
(* (( (ptr) a←v3652)+7) ) = (((unsigned)b←v3708 << 7) >> 31);
SOURCE(3088, 13)
(* (( (ptr) a←v3652)+8) ) = (((unsigned)b←v3708 << 8) >> 31);
SOURCE(3105, 13)
(* (( (ptr) a←v3652)+9) ) = (((unsigned)b←v3708 << 9) >> 31);
SOURCE(3122, 13)
(* (( (ptr) a←v3652)+10) ) = (((unsigned)b←v3708 << 10) >> 31);
SOURCE(3137, 13)
(* (( (ptr) a←v3652)+11) ) = (((unsigned)b←v3708 << 11) >> 31);
SOURCE(3152, 13)
(* (( (ptr) a←v3652)+12) ) = (((unsigned)b←v3708 << 12) >> 31);
SOURCE(3167, 13)
(* (( (ptr) a←v3652)+13) ) = (((unsigned)b←v3708 << 13) >> 31);
SOURCE(3182, 13)
(* (( (ptr) a←v3652)+14) ) = (((unsigned)b←v3708 << 14) >> 31);
SOURCE(3197, 13)
(* (( (ptr) a←v3652)+15) ) = (((unsigned)b←v3708 << 15) >> 31);
SOURCE(3212, 13)
(* (( (ptr) a←v3652)+16) ) = (((unsigned)b←v3708 << 16) >> 31);
SOURCE(3227, 13)
(* (( (ptr) a←v3652)+17) ) = (((unsigned)b←v3708 << 17) >> 31);
SOURCE(3242, 13)
(* (( (ptr) a←v3652)+18) ) = (((unsigned)b←v3708 << 18) >> 31);
SOURCE(3257, 13)
(* (( (ptr) a←v3652)+19) ) = (((unsigned)b←v3708 << 19) >> 31);
SOURCE(3272, 13)
(* (( (ptr) a←v3652)+20) ) = (((unsigned)b←v3708 << 20) >> 31);
SOURCE(3287, 13)
(* (( (ptr) a←v3652)+21) ) = (((unsigned)b←v3708 << 21) >> 31);
SOURCE(3302, 13)
(* (( (ptr) a←v3652)+22) ) = (((unsigned)b←v3708 << 22) >> 31);
SOURCE(3317, 13)
(* (( (ptr) a←v3652)+23) ) = (((unsigned)b←v3708 << 23) >> 31);
SOURCE(3332, 13)
(* (( (ptr) a←v3652)+24) ) = (((unsigned)b←v3708 << 24) >> 31);
SOURCE(3347, 13)
(* (( (ptr) a←v3652)+25) ) = (((unsigned)b←v3708 << 25) >> 31);
SOURCE(3362, 13)
(* (( (ptr) a←v3652)+26) ) = (((unsigned)b←v3708 << 26) >> 31);
SOURCE(3377, 13)
(* (( (ptr) a←v3652)+27) ) = (((unsigned)b←v3708 << 27) >> 31);
SOURCE(3392, 13)
(* (( (ptr) a←v3652)+28) ) = (((unsigned)b←v3708 << 28) >> 31);
SOURCE(3407, 13)
(* (( (ptr) a←v3652)+29) ) = (((unsigned)b←v3708 << 29) >> 31);
SOURCE(3422, 13)
(* (( (ptr) a←v3652)+30) ) = (((unsigned)b←v3708 << 30) >> 31);
SOURCE(3437, 13)
(* (( (ptr) a←v3652)+31) ) = (b←v3708 & 1);
SOURCE(3452, 55)
wordPointer←v3472 = (wordPointer←v3472 + 128);
SOURCE(3509, 18)
count←v3584 = (count←v3584 - 32);
SOURCE(3529, 50)
srcp←v3500 = (srcp←v3500 + 4);
};
goto lab←L100027;
lab←L100025: ;
SOURCE(3590, 208)
lab←L100030: ;
if ((count←v3584 != 0)) {
}
else {
goto lab←L100028;
};
SOURCE(3607, 66)
if ((bit←v3528 == 32)) {
SOURCE(3626, 7)
bit←v3528 = 0;
SOURCE(3635, 12)
word←v3556 = (* (ptr) srcp←v3500 );
SOURCE(3649, 24)
srcp←v3500 = (srcp←v3500 + 4);
};
SOURCE(3676, 37)
(* (ptr) wordPointer←v3472 ) = (word) XRM←BITRSHIFT(word←v3556, 31);
SOURCE(3715, 15)
count←v3584 = (count←v3584 - 1);
SOURCE(3732, 13)
word←v3556 = (word←v3556 << 1);
SOURCE(3747, 38)
wordPointer←v3472 = (wordPointer←v3472 + 4);
SOURCE(3787, 11)
bit←v3528 = (bit←v3528 + 1);
goto lab←L100030;
lab←L100028: ;
};
}
else {
if ( ( (bitsPerSample←v2816 == 8) ? ((src←v2788.f1 & 7) == 0) : 0 ) ) {
SOURCE(3863, 1113)
{
word wordPointer←v4016;
word srcp←v4072;
word byte←v4100;
word count←v4128;
SOURCE(3865, 45)
wordPointer←v4016 = (word) dst←v2760;
SOURCE(4044, 78)
srcp←v4072 = src←v2788.f0;
SOURCE(4124, 26)
byte←v4100 = (src←v2788.f1 >> 3);
SOURCE(4152, 26)
count←v4128 = nSamples←v2844;
SOURCE(4180, 228)
if ((byte←v4100 != 0)) {
SOURCE(4197, 135)
lab←L100033: ;
if ( ( (count←v4128 != 0) ? (byte←v4100 != 8) : 0 ) ) {
}
else {
goto lab←L100031;
};
SOURCE(4233, 25)
(* (ptr) wordPointer←v4016 ) = (word) (* (( (bPt) srcp←v4072)+byte←v4100) );
SOURCE(4260, 38)
wordPointer←v4016 = (wordPointer←v4016 + 4);
SOURCE(4300, 15)
byte←v4100 = (byte←v4100 + 1);
SOURCE(4317, 15)
count←v4128 = (count←v4128 - 1);
goto lab←L100033;
lab←L100031: ;
SOURCE(4343, 55)
srcp←v4072 = (srcp←v4072 + 8);
SOURCE(4400, 8)
byte←v4100 = 0;
};
SOURCE(4413, 425)
lab←L100036: ;
if ((count←v4128 >= 8)) {
}
else {
goto lab←L100034;
};
{
word a←v4268;
W2 b←v4296;
SOURCE(4439, 71)
a←v4268 = wordPointer←v4016;
SOURCE(4512, 46)
b←v4296 = (* (W2Pt) srcp←v4072 );
SOURCE(4560, 13)
(* (ptr) a←v4268 ) = (* (bPt) &b←v4296 );
SOURCE(4577, 13)
(* (( (ptr) a←v4268)+1) ) = (* (( (bPt) &b←v4296)+1) );
SOURCE(4594, 13)
(* (( (ptr) a←v4268)+2) ) = (* (( (bPt) &b←v4296)+2) );
SOURCE(4611, 11)
(* (( (ptr) a←v4268)+3) ) = (* (( (bPt) &b←v4296)+3) );
SOURCE(4626, 13)
(* (( (ptr) a←v4268)+4) ) = (* (( (bPt) &b←v4296)+4) );
SOURCE(4643, 13)
(* (( (ptr) a←v4268)+5) ) = (* (( (bPt) &b←v4296)+5) );
SOURCE(4660, 13)
(* (( (ptr) a←v4268)+6) ) = (* (( (bPt) &b←v4296)+6) );
SOURCE(4677, 11)
(* (( (ptr) a←v4268)+7) ) = (* (( (bPt) &b←v4296)+7) );
SOURCE(4692, 62)
wordPointer←v4016 = (wordPointer←v4016 + 32);
SOURCE(4756, 25)
count←v4128 = (count←v4128 - 8);
SOURCE(4783, 55)
srcp←v4072 = (srcp←v4072 + 8);
};
goto lab←L100036;
lab←L100034: ;
SOURCE(4849, 116)
lab←L100039: ;
if ((count←v4128 != 0)) {
}
else {
goto lab←L100037;
};
SOURCE(4866, 25)
(* (ptr) wordPointer←v4016 ) = (word) (* (( (bPt) srcp←v4072)+byte←v4100) );
SOURCE(4893, 38)
wordPointer←v4016 = (wordPointer←v4016 + 4);
SOURCE(4933, 15)
byte←v4100 = (byte←v4100 + 1);
SOURCE(4950, 15)
count←v4128 = (count←v4128 - 1);
goto lab←L100039;
lab←L100037: ;
};
}
else {
SOURCE(4990, 649)
{
word m←v4496;
word p←v4524;
word h←v4552;
word g←v4580;
SOURCE(4992, 39)
m←v4496 = ((word) XRM←BITLSHIFT(1, bitsPerSample←v2816) - 1);
SOURCE(5033, 60)
p←v4524 = src←v2788.f0;
SOURCE(5095, 14)
h←v4552 = (* (ptr) p←v4524 );
SOURCE(5111, 24)
g←v4580 = (32 - src←v2788.f1);
SOURCE(5182, 443)
{
register word j←v4672 = 0;
register word noName←c9536;
noName←c9536 = nSamples←v2844;
if ((j←v4672 >= noName←c9536)) {
goto lab←L100040;
};
lab←L100043: ;
SOURCE(5218, 407)
{
word var←c9568;
var←c9568 = g←v4580;
if (( (int)var←c9568 >= (int)bitsPerSample←v2816)) {
SOURCE(5254, 49)
{
word var←c9600;
{
/*1*/ word var←c9632;
/*1*/ var←c9632 = (word) XRM←BITRSHIFT(h←v4552, (g←v4580 - bitsPerSample←v2816));
/*1*/ var←c9600 = (word) XRM←BITAND(m←v4496, var←c9632);
/*1*/ };
(* (( (ptr) dst←v2760)+j←v4672) ) = var←c9600;
};
SOURCE(5305, 21)
g←v4580 = (g←v4580 - bitsPerSample←v2816);
}
else {
if (( (int)var←c9568 == (int)0)) {
SOURCE(5338, 18)
p←v4524 = (p←v4524 + 4);
SOURCE(5358, 8)
h←v4552 = (* (ptr) p←v4524 );
SOURCE(5368, 51)
{
/*1*/ word var←c9664;
/*1*/ {
/*1*/ word var←c9696;
/*1*/ var←c9696 = (word) XRM←BITRSHIFT(h←v4552, (32 - bitsPerSample←v2816));
/*1*/ var←c9664 = (word) XRM←BITAND(m←v4496, var←c9696);
/*1*/ };
/*1*/ (* (( (ptr) dst←v2760)+j←v4672) ) = var←c9664;
/*1*/ };
SOURCE(5421, 23)
g←v4580 = (32 - bitsPerSample←v2816);
}
else {
SOURCE(5460, 167)
{
/*1*/ word k←v4716;
SOURCE(5462, 14)
/*1*/ k←v4716 = (* (( (ptr) p←v4524)+1) );
SOURCE(5478, 91)
/*1*/ {
/*1*/ word var←c9728;
/*1*/ {
/*1*/ word var←c9760;
/*1*/ {
/*1*/ word var←c9792;
/*1*/ word var←c9824;
/*1*/ var←c9792 = (word) XRM←BITLSHIFT(h←v4552, (bitsPerSample←v2816 - g←v4580));
/*1*/ var←c9824 = (word) XRM←BITRSHIFT(k←v4716, ((g←v4580 + 32) - bitsPerSample←v2816));
/*1*/ var←c9760 = (word) XRM←BITOR(var←c9792, var←c9824);
/*1*/ };
/*1*/ var←c9728 = (word) XRM←BITAND(m←v4496, var←c9760);
/*1*/ };
/*1*/ (* (( (ptr) dst←v2760)+j←v4672) ) = var←c9728;
/*1*/ };
SOURCE(5571, 5)
/*1*/ h←v4552 = k←v4716;
SOURCE(5578, 18)
/*1*/ p←v4524 = (p←v4524 + 4);
SOURCE(5598, 27)
/*1*/ g←v4580 = ((g←v4580 + 32) - bitsPerSample←v2816);
/*1*/ };
};
};
};
j←v4672 = (j←v4672 + 1);
if ((j←v4672 < noName←c9536)) {
goto lab←L100043;
};
lab←L100040: ;
};
};
};
};
};
}
/* file: RasterOpGreenbayImpl, module: RasterOpGreenbayImpl, compiled at: February 21, 1992 11:33:32 pm PST */
extern void XR←install←RasterOpGreenbayImpl() {
NoName←Q1392();
}
extern void XR←run←RasterOpGreenbayImpl() { XR←Start(&globalframe); }