/* 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); }