/* Generated with C2C (Cedar To C)*/ /* Copyright (C) 1993 by Xerox Corporation. All rights reserved. */ /* time: July 28, 1993 10:28:48 am PDT */ /* C2C version: April 20, 1993 (sun4) */ /* ref-counting: off */ /* file: Vector2Impl, module: Vector2Impl */ /* switches: bcfhklnouw */ #include <cedar/InstallationSupport.h> #include <cedar/CedarExtra.h> static char versionStamp[] = "@(#)mob←version [3774313079,28158533] Vector2Impl"; typedef unsigned word, *ptr; typedef unsigned char byte, *bPt; typedef unsigned short half, *hPt; typedef struct {word f0, f1;} W2; typedef word (*fPt)(); #define SOURCE(p, l) /* source p, l */ static void NoName←Q780(); static void Vector2Impl←P0(); static void Add←P60(); static void Sub←P120(); static void Neg←P180(); static void Mul←P240(); static void Div←P300(); static void MulC←P360(); static void DivC←P420(); static word Dot←P480(); static word Cross←P540(); static word Square←P600(); static word Length←P660(); static void Unit←P720(); static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\340\367\162\167\300\001\255\252\105\100\164\000\000"}; static struct {unsigned f; char r[16];} string2 = {851984, "\257\300\245\247\302\156\300\052\156\325\023\100\150\000\000"}; static struct {unsigned f; char r[16];} string3 = {851984, "\257\300\247\031\224\326\300\123\162\224\023\100\150\000\000"}; static struct { word f0[4]; word f4; word f5; 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[3]; } globalframe = { {0}, (word) Unit←P720, 0, (word) Length←P660, 0, (word) Square←P600, 0, (word) Cross←P540, 0, (word) Dot←P480, 0, (word) DivC←P420, 0, (word) MulC←P360, 0, (word) Div←P300, 0, (word) Mul←P240, 0, (word) Neg←P180, 0, (word) Sub←P120, 0, (word) Add←P60, 0, (word) Vector2Impl←P0, {0} }; static void NoName←Q780() { register ptr gf←c060 = (ptr) &globalframe; word var←c5396; (void) XR←DeclareGlobalFrame((word) "Vector2Impl", &globalframe, (word) XR←GetTypeIndexS((word) (&string1)), (word) (( (bPt) gf←c060)+112) /* var←c5044 */ ); var←c5396 = (word) XR←ImportInterface((word) "RealFns", (word) XR←GetTypeIndexS((word) (&string2)), 36); (* (( (ptr) gf←c060)+30)/* var←c5332 */ ) = var←c5396; (void) XR←ImportProcS(var←c5396, 67372289); var←c5396 = (word) XR←ExportInterface((word) "Vector2", (word) XR←GetTypeIndexS((word) (&string3)), 22); (* (( (ptr) gf←c060)+31)/* var←c5428 */ ) = var←c5396; (void) XR←ExportProcS(var←c5396, (word) (( (bPt) gf←c060)+104)/* var←c5012 */ , 135266306, (word) "Add"); (void) XR←ExportProcS(var←c5396, (word) (( (bPt) gf←c060)+96)/* var←c4980 */ , 135266818, (word) "Sub"); (void) XR←ExportProcS(var←c5396, (word) (( (bPt) gf←c060)+88)/* var←c4948 */ , 134743041, (word) "Neg"); (void) XR←ExportProcS(var←c5396, (word) (( (bPt) gf←c060)+80)/* var←c4916 */ , 135005698, (word) "Mul"); (void) XR←ExportProcS(var←c5396, (word) (( (bPt) gf←c060)+72)/* var←c4884 */ , 135006210, (word) "Div"); (void) XR←ExportProcS(var←c5396, (word) (( (bPt) gf←c060)+64)/* var←c4852 */ , 135268866, (word) "MulC"); (void) XR←ExportProcS(var←c5396, (word) (( (bPt) gf←c060)+56)/* var←c4820 */ , 135269378, (word) "DivC"); (void) XR←ExportProcS(var←c5396, (word) (( (bPt) gf←c060)+48)/* var←c4788 */ , 68161026, (word) "Dot"); (void) XR←ExportProcS(var←c5396, (word) (( (bPt) gf←c060)+40)/* var←c4756 */ , 68161538, (word) "Cross"); (void) XR←ExportProcS(var←c5396, (word) (( (bPt) gf←c060)+32)/* var←c4724 */ , 67637761, (word) "Square"); (void) XR←ExportProcS(var←c5396, (word) (( (bPt) gf←c060)+24)/* var←c4692 */ , 67638273, (word) "Length"); (void) XR←ExportProcS(var←c5396, (word) (( (bPt) gf←c060)+16)/* var←c4660 */ , 134747393, (word) "Unit"); } static void Vector2Impl←P0(formal←c018, formal←c017) word formal←c018; word formal←c017; { /* Vector2Impl: */ } static void Add←P60(formal←c022, v1←v2884, v2←v2912) word formal←c022; W2 v1←v2884; W2 v2←v2912; { word var←c063; word var←c064; /* Add: */ SOURCE(148, 78) /* Return var split */ SOURCE(195, 31) { word x4; word x5; *(float*)&var←c063 = ( x4 = v1←v2884.f0, *(float*)&x4 ) + ( x5 = v2←v2912.f0, *(float*)&x5 ); }; { word x6; word x7; *(float*)&var←c064 = ( x6 = v1←v2884.f1, *(float*)&x6 ) + ( x7 = v2←v2912.f1, *(float*)&x7 ); }; /* removed tail goto */ (* (( (ptr) formal←c022)+1) ) = var←c064; (* (ptr) formal←c022 ) = var←c063; return; } static void Sub←P120(formal←c026, v1←v3016, v2←v3044) word formal←c026; W2 v1←v3016; W2 v2←v3044; { word var←c065; word var←c066; /* Sub: */ SOURCE(230, 78) /* Return var split */ SOURCE(277, 31) { word x8; word x9; *(float*)&var←c065 = ( x8 = v1←v3016.f0, *(float*)&x8 ) - ( x9 = v2←v3044.f0, *(float*)&x9 ); }; { word x10; word x11; *(float*)&var←c066 = ( x10 = v1←v3016.f1, *(float*)&x10 ) - ( x11 = v2←v3044.f1, *(float*)&x11 ); }; /* removed tail goto */ (* (( (ptr) formal←c026)+1) ) = var←c066; (* (ptr) formal←c026 ) = var←c065; return; } static void Neg←P180(formal←c029, v←v3148) word formal←c029; W2 v←v3148; { word var←c067; word var←c068; /* Neg: */ SOURCE(312, 63) /* Return var split */ SOURCE(354, 21) { word x12; *(float*)&var←c067 = - ( x12 = v←v3148.f0, *(float*)&x12 ); }; { word x13; *(float*)&var←c068 = - ( x13 = v←v3148.f1, *(float*)&x13 ); }; /* removed tail goto */ (* (( (ptr) formal←c029)+1) ) = var←c068; (* (ptr) formal←c029 ) = var←c067; return; } static void Mul←P240(formal←c033, v←v3252, s←v3280) word formal←c033; W2 v←v3252; word s←v3280; { word var←c069; word var←c070; /* Mul: */ SOURCE(379, 74) /* Return var split */ SOURCE(430, 23) { word x14; word x15; *(float*)&var←c069 = ( x14 = v←v3252.f0, *(float*)&x14 ) * ( x15 = s←v3280, *(float*)&x15 ); }; { word x16; word x17; *(float*)&var←c070 = ( x16 = v←v3252.f1, *(float*)&x16 ) * ( x17 = s←v3280, *(float*)&x17 ); }; /* removed tail goto */ (* (( (ptr) formal←c033)+1) ) = var←c070; (* (ptr) formal←c033 ) = var←c069; return; } static void Div←P300(formal←c037, v←v3384, s←v3412) word formal←c037; W2 v←v3384; word s←v3412; { word var←c071; word var←c072; /* Div: */ SOURCE(457, 74) /* Return var split */ SOURCE(508, 23) { word x18; word x19; *(float*)&var←c071 = ( x18 = v←v3384.f0, *(float*)&x18 ) / ( x19 = s←v3412, *(float*)&x19 ); }; { word x20; word x21; *(float*)&var←c072 = ( x20 = v←v3384.f1, *(float*)&x20 ) / ( x21 = s←v3412, *(float*)&x21 ); }; /* removed tail goto */ (* (( (ptr) formal←c037)+1) ) = var←c072; (* (ptr) formal←c037 ) = var←c071; return; } static void MulC←P360(formal←c041, v1←v3516, v2←v3544) word formal←c041; W2 v1←v3516; W2 v2←v3544; { word var←c073; word var←c074; /* MulC: */ SOURCE(535, 79) /* Return var split */ SOURCE(583, 31) { word x22; word x23; *(float*)&var←c073 = ( x22 = v1←v3516.f0, *(float*)&x22 ) * ( x23 = v2←v3544.f0, *(float*)&x23 ); }; { word x24; word x25; *(float*)&var←c074 = ( x24 = v1←v3516.f1, *(float*)&x24 ) * ( x25 = v2←v3544.f1, *(float*)&x25 ); }; /* removed tail goto */ (* (( (ptr) formal←c041)+1) ) = var←c074; (* (ptr) formal←c041 ) = var←c073; return; } static void DivC←P420(formal←c045, v1←v3648, v2←v3676) word formal←c045; W2 v1←v3648; W2 v2←v3676; { word var←c075; word var←c076; /* DivC: */ SOURCE(618, 79) /* Return var split */ SOURCE(666, 31) { word x26; word x27; *(float*)&var←c075 = ( x26 = v1←v3648.f0, *(float*)&x26 ) / ( x27 = v2←v3676.f0, *(float*)&x27 ); }; { word x28; word x29; *(float*)&var←c076 = ( x28 = v1←v3648.f1, *(float*)&x28 ) / ( x29 = v2←v3676.f1, *(float*)&x29 ); }; /* removed tail goto */ (* (( (ptr) formal←c045)+1) ) = var←c076; (* (ptr) formal←c045 ) = var←c075; return; } static word Dot←P480(v1←v3780, v2←v3808) W2 v1←v3780; W2 v2←v3808; { word var←c3852; /* Dot: */ SOURCE(701, 76) SOURCE(749, 28) { word x30; word x31; word x32; word x33; float tf34; return(( tf34 = (( x30 = v1←v3780.f0, *(float*)&x30 ) * ( x31 = v2←v3808.f0, *(float*)&x31 )) + (( x32 = v1←v3780.f1, *(float*)&x32 ) * ( x33 = v2←v3808.f1, *(float*)&x33 )), *(word*)&tf34 )); }; } static word Cross←P540(v1←v3912, v2←v3940) W2 v1←v3912; W2 v2←v3940; { word var←c3984; /* Cross: */ SOURCE(781, 78) SOURCE(831, 28) { word x35; word x36; word x37; word x38; float tf39; return(( tf39 = (( x35 = v1←v3912.f0, *(float*)&x35 ) * ( x36 = v2←v3940.f1, *(float*)&x36 )) - (( x37 = v1←v3912.f1, *(float*)&x37 ) * ( x38 = v2←v3940.f0, *(float*)&x38 )), *(word*)&tf39 )); }; } static word Square←P600(v←v4044) W2 v←v4044; { word var←c4088; /* Square: */ SOURCE(863, 70) SOURCE(909, 24) { word x40; word x41; word x42; word x43; float tf44; return(( tf44 = (( x40 = v←v4044.f0, *(float*)&x40 ) * ( x41 = v←v4044.f0, *(float*)&x41 )) + (( x42 = v←v4044.f1, *(float*)&x42 ) * ( x43 = v←v4044.f1, *(float*)&x43 )), *(word*)&tf44 )); }; } static word Length←P660(v←v4148) W2 v←v4148; { register ptr gf←c5460 = (ptr) &globalframe; word var←c4192; /* Length: */ SOURCE(936, 84) SOURCE(982, 38) { word pd45; word x46; word x47; word x48; word x49; float tf50; pd45 = (* (( (ptr) (* (( (ptr) gf←c5460)+30)/* var←c5332 */ ))+9) ); return((word) ( *( (fPt) ((* (ptr) pd45 ))))(( tf50 = (( x46 = v←v4148.f0, *(float*)&x46 ) * ( x47 = v←v4148.f0, *(float*)&x47 )) + (( x48 = v←v4148.f1, *(float*)&x48 ) * ( x49 = v←v4148.f1, *(float*)&x49 )), *(word*)&tf50 ), pd45)); }; } static void Unit←P720(formal←c059, v←v4252) word formal←c059; W2 v←v4252; { register ptr gf←c5492 = (ptr) &globalframe; word var←c077; word var←c078; word m←v4324; /* Unit: */ SOURCE(1023, 107) /* Return var split */ SOURCE(1066, 39) { word pd51; word x52; word x53; word x54; word x55; float tf56; pd51 = (* (( (ptr) (* (( (ptr) gf←c5492)+30)/* var←c5332 */ ))+9) ); m←v4324 = (word) ( *( (fPt) ((* (ptr) pd51 ))))(( tf56 = (( x52 = v←v4252.f0, *(float*)&x52 ) * ( x53 = v←v4252.f0, *(float*)&x53 )) + (( x54 = v←v4252.f1, *(float*)&x54 ) * ( x55 = v←v4252.f1, *(float*)&x55 )), *(word*)&tf56 ), pd51); }; SOURCE(1107, 23) { word x57; word x58; *(float*)&var←c077 = ( x57 = v←v4252.f0, *(float*)&x57 ) / ( x58 = m←v4324, *(float*)&x58 ); }; { word x59; word x60; *(float*)&var←c078 = ( x59 = v←v4252.f1, *(float*)&x59 ) / ( x60 = m←v4324, *(float*)&x60 ); }; /* removed tail goto */ (* (( (ptr) formal←c059)+1) ) = var←c078; (* (ptr) formal←c059 ) = var←c077; return; } /* file: Vector2Impl, module: Vector2Impl, compiled at: July 28, 1993 10:28:48 am PDT */ extern void XR←install←Vector2Impl() { NoName←Q780(); } extern void XR←run←Vector2Impl() { XR←Start(&globalframe); }