Relay-Version: version B 2.10.3 4.3bsd-beta 6/6/85; site seismo.CSS.GOV Posting-Version: version B 2.10.2 9/3/84; site panda.UUCP Path: seismo!harvard!talcott!panda!sources-request From: sources-request@panda.UUCP Newsgroups: mod.sources Subject: G-format compilers for Ultrix/Unix Vaxes (4 of 4) Message-ID: <1087@panda.UUCP> Date: 11 Nov 85 13:23:45 GMT Sender: jpn@panda.UUCP Lines: 1640 Approved: jpn@panda.UUCP Mod.sources: Volume 3, Issue 40 Submitted by: J.D.Aplevich #!/bin/sh # This is a shell archive, meaning: # 1. Remove everything above the #!/bin/sh line. # 2. Save the resulting text in a file. # 3. Execute the file with /bin/sh (not csh) to create the files: # gfloat # This archive created: Wed Oct 30 20:44:40 1985 export PATH; PATH=/bin:$PATH if test ! -d 'gfloat' then mkdir 'gfloat' fi cd 'gfloat' if test ! -d 'f77' then mkdir 'f77' fi cd 'f77' if test ! -d 'src' then mkdir 'src' fi cd 'src' if test ! -d 'f77pass1' then mkdir 'f77pass1' fi cd 'f77pass1' if test -f 'intr.c.diff' then echo shar: over-writing existing file "'intr.c.diff'" fi cat << \SHAR_EOF > 'intr.c.diff' *** ../f77/src/f77pass1/intr.c.orig Tue Oct 29 15:16:01 1985 --- ../f77/src/f77pass1/intr.c Tue Oct 29 15:22:50 1985 *************** *** 237,242 { TYCOMPLEX,TYCOMPLEX,1,"r_cnjg" }, { TYDCOMPLEX,TYDCOMPLEX,1,"d_cnjg" }, { TYREAL,TYREAL,1,"r_sqrt", 1 }, { TYDREAL,TYDREAL,1,"d_sqrt", 1 }, { TYCOMPLEX,TYCOMPLEX,1,"c_sqrt" }, --- 237,243 ----- { TYCOMPLEX,TYCOMPLEX,1,"r_cnjg" }, { TYDCOMPLEX,TYDCOMPLEX,1,"d_cnjg" }, + #ifndef GFLOAT { TYREAL,TYREAL,1,"r_sqrt", 1 }, #else GFLOAT { TYREAL,TYREAL,1,"r_sqrt" }, *************** *** 238,243 { TYDCOMPLEX,TYDCOMPLEX,1,"d_cnjg" }, { TYREAL,TYREAL,1,"r_sqrt", 1 }, { TYDREAL,TYDREAL,1,"d_sqrt", 1 }, { TYCOMPLEX,TYCOMPLEX,1,"c_sqrt" }, { TYDCOMPLEX,TYDCOMPLEX,1,"z_sqrt" }, --- 239,247 ----- #ifndef GFLOAT { TYREAL,TYREAL,1,"r_sqrt", 1 }, + #else GFLOAT + { TYREAL,TYREAL,1,"r_sqrt" }, + #endif GFLOAT { TYDREAL,TYDREAL,1,"d_sqrt", 1 }, { TYCOMPLEX,TYCOMPLEX,1,"c_sqrt" }, { TYDCOMPLEX,TYDCOMPLEX,1,"z_sqrt" }, *************** *** 242,247 { TYCOMPLEX,TYCOMPLEX,1,"c_sqrt" }, { TYDCOMPLEX,TYDCOMPLEX,1,"z_sqrt" }, { TYREAL,TYREAL,1,"r_exp", 2 }, { TYDREAL,TYDREAL,1,"d_exp", 2 }, { TYCOMPLEX,TYCOMPLEX,1,"c_exp" }, --- 246,252 ----- { TYCOMPLEX,TYCOMPLEX,1,"c_sqrt" }, { TYDCOMPLEX,TYDCOMPLEX,1,"z_sqrt" }, + #ifndef GFLOAT { TYREAL,TYREAL,1,"r_exp", 2 }, #else GFLOAT { TYREAL,TYREAL,1,"r_exp" }, *************** *** 243,248 { TYDCOMPLEX,TYDCOMPLEX,1,"z_sqrt" }, { TYREAL,TYREAL,1,"r_exp", 2 }, { TYDREAL,TYDREAL,1,"d_exp", 2 }, { TYCOMPLEX,TYCOMPLEX,1,"c_exp" }, { TYDCOMPLEX,TYDCOMPLEX,1,"z_exp" }, --- 248,256 ----- #ifndef GFLOAT { TYREAL,TYREAL,1,"r_exp", 2 }, + #else GFLOAT + { TYREAL,TYREAL,1,"r_exp" }, + #endif GFLOAT { TYDREAL,TYDREAL,1,"d_exp", 2 }, { TYCOMPLEX,TYCOMPLEX,1,"c_exp" }, { TYDCOMPLEX,TYDCOMPLEX,1,"z_exp" }, *************** *** 247,252 { TYCOMPLEX,TYCOMPLEX,1,"c_exp" }, { TYDCOMPLEX,TYDCOMPLEX,1,"z_exp" }, { TYREAL,TYREAL,1,"r_log", 3 }, { TYDREAL,TYDREAL,1,"d_log", 3 }, { TYCOMPLEX,TYCOMPLEX,1,"c_log" }, --- 255,261 ----- { TYCOMPLEX,TYCOMPLEX,1,"c_exp" }, { TYDCOMPLEX,TYDCOMPLEX,1,"z_exp" }, + #ifndef GFLOAT { TYREAL,TYREAL,1,"r_log", 3 }, #else GFLOAT { TYREAL,TYREAL,1,"r_log" }, *************** *** 248,253 { TYDCOMPLEX,TYDCOMPLEX,1,"z_exp" }, { TYREAL,TYREAL,1,"r_log", 3 }, { TYDREAL,TYDREAL,1,"d_log", 3 }, { TYCOMPLEX,TYCOMPLEX,1,"c_log" }, { TYDCOMPLEX,TYDCOMPLEX,1,"z_log" }, --- 257,265 ----- #ifndef GFLOAT { TYREAL,TYREAL,1,"r_log", 3 }, + #else GFLOAT + { TYREAL,TYREAL,1,"r_log" }, + #endif GFLOAT { TYDREAL,TYDREAL,1,"d_log", 3 }, { TYCOMPLEX,TYCOMPLEX,1,"c_log" }, { TYDCOMPLEX,TYDCOMPLEX,1,"z_log" }, *************** *** 255,260 { TYREAL,TYREAL,1,"r_lg10" }, { TYDREAL,TYDREAL,1,"d_lg10" }, { TYREAL,TYREAL,1,"r_sin", 4 }, { TYDREAL,TYDREAL,1,"d_sin", 4 }, { TYCOMPLEX,TYCOMPLEX,1,"c_sin" }, --- 267,273 ----- { TYREAL,TYREAL,1,"r_lg10" }, { TYDREAL,TYDREAL,1,"d_lg10" }, + #ifndef GFLOAT { TYREAL,TYREAL,1,"r_sin", 4 }, #else GFLOAT { TYREAL,TYREAL,1,"r_sin" }, *************** *** 256,261 { TYDREAL,TYDREAL,1,"d_lg10" }, { TYREAL,TYREAL,1,"r_sin", 4 }, { TYDREAL,TYDREAL,1,"d_sin", 4 }, { TYCOMPLEX,TYCOMPLEX,1,"c_sin" }, { TYDCOMPLEX,TYDCOMPLEX,1,"z_sin" }, --- 269,277 ----- #ifndef GFLOAT { TYREAL,TYREAL,1,"r_sin", 4 }, + #else GFLOAT + { TYREAL,TYREAL,1,"r_sin" }, + #endif GFLOAT { TYDREAL,TYDREAL,1,"d_sin", 4 }, { TYCOMPLEX,TYCOMPLEX,1,"c_sin" }, { TYDCOMPLEX,TYDCOMPLEX,1,"z_sin" }, *************** *** 260,265 { TYCOMPLEX,TYCOMPLEX,1,"c_sin" }, { TYDCOMPLEX,TYDCOMPLEX,1,"z_sin" }, { TYREAL,TYREAL,1,"r_cos", 5 }, { TYDREAL,TYDREAL,1,"d_cos", 5 }, { TYCOMPLEX,TYCOMPLEX,1,"c_cos" }, --- 276,282 ----- { TYCOMPLEX,TYCOMPLEX,1,"c_sin" }, { TYDCOMPLEX,TYDCOMPLEX,1,"z_sin" }, + #ifndef GFLOAT { TYREAL,TYREAL,1,"r_cos", 5 }, #else GFLOAT { TYREAL,TYREAL,1,"r_cos" }, *************** *** 261,266 { TYDCOMPLEX,TYDCOMPLEX,1,"z_sin" }, { TYREAL,TYREAL,1,"r_cos", 5 }, { TYDREAL,TYDREAL,1,"d_cos", 5 }, { TYCOMPLEX,TYCOMPLEX,1,"c_cos" }, { TYDCOMPLEX,TYDCOMPLEX,1,"z_cos" }, --- 278,286 ----- #ifndef GFLOAT { TYREAL,TYREAL,1,"r_cos", 5 }, + #else GFLOAT + { TYREAL,TYREAL,1,"r_cos" }, + #endif GFLOAT { TYDREAL,TYDREAL,1,"d_cos", 5 }, { TYCOMPLEX,TYCOMPLEX,1,"c_cos" }, { TYDCOMPLEX,TYDCOMPLEX,1,"z_cos" }, *************** *** 265,270 { TYCOMPLEX,TYCOMPLEX,1,"c_cos" }, { TYDCOMPLEX,TYDCOMPLEX,1,"z_cos" }, { TYREAL,TYREAL,1,"r_tan", 6 }, { TYDREAL,TYDREAL,1,"d_tan", 6 }, --- 285,291 ----- { TYCOMPLEX,TYCOMPLEX,1,"c_cos" }, { TYDCOMPLEX,TYDCOMPLEX,1,"z_cos" }, + #ifndef GFLOAT { TYREAL,TYREAL,1,"r_tan", 6 }, #else GFLOAT { TYREAL,TYREAL,1,"r_tan" }, *************** *** 266,271 { TYDCOMPLEX,TYDCOMPLEX,1,"z_cos" }, { TYREAL,TYREAL,1,"r_tan", 6 }, { TYDREAL,TYDREAL,1,"d_tan", 6 }, { TYREAL,TYREAL,1,"r_asin", 7 }, --- 287,295 ----- #ifndef GFLOAT { TYREAL,TYREAL,1,"r_tan", 6 }, + #else GFLOAT + { TYREAL,TYREAL,1,"r_tan" }, + #endif GFLOAT { TYDREAL,TYDREAL,1,"d_tan", 6 }, #ifndef GFLOAT *************** *** 268,273 { TYREAL,TYREAL,1,"r_tan", 6 }, { TYDREAL,TYDREAL,1,"d_tan", 6 }, { TYREAL,TYREAL,1,"r_asin", 7 }, { TYDREAL,TYDREAL,1,"d_asin", 7 }, --- 292,298 ----- #endif GFLOAT { TYDREAL,TYDREAL,1,"d_tan", 6 }, + #ifndef GFLOAT { TYREAL,TYREAL,1,"r_asin", 7 }, #else GFLOAT { TYREAL,TYREAL,1,"r_asin" }, *************** *** 269,274 { TYDREAL,TYDREAL,1,"d_tan", 6 }, { TYREAL,TYREAL,1,"r_asin", 7 }, { TYDREAL,TYDREAL,1,"d_asin", 7 }, { TYREAL,TYREAL,1,"r_acos", 8 }, --- 294,302 ----- #ifndef GFLOAT { TYREAL,TYREAL,1,"r_asin", 7 }, + #else GFLOAT + { TYREAL,TYREAL,1,"r_asin" }, + #endif GFLOAT { TYDREAL,TYDREAL,1,"d_asin", 7 }, #ifndef GFLOAT *************** *** 271,276 { TYREAL,TYREAL,1,"r_asin", 7 }, { TYDREAL,TYDREAL,1,"d_asin", 7 }, { TYREAL,TYREAL,1,"r_acos", 8 }, { TYDREAL,TYDREAL,1,"d_acos", 8 }, --- 299,305 ----- #endif GFLOAT { TYDREAL,TYDREAL,1,"d_asin", 7 }, + #ifndef GFLOAT { TYREAL,TYREAL,1,"r_acos", 8 }, #else GFLOAT { TYREAL,TYREAL,1,"r_acos" }, *************** *** 272,277 { TYDREAL,TYDREAL,1,"d_asin", 7 }, { TYREAL,TYREAL,1,"r_acos", 8 }, { TYDREAL,TYDREAL,1,"d_acos", 8 }, { TYREAL,TYREAL,1,"r_atan", 9 }, --- 301,309 ----- #ifndef GFLOAT { TYREAL,TYREAL,1,"r_acos", 8 }, + #else GFLOAT + { TYREAL,TYREAL,1,"r_acos" }, + #endif GFLOAT { TYDREAL,TYDREAL,1,"d_acos", 8 }, #ifndef GFLOAT *************** *** 274,279 { TYREAL,TYREAL,1,"r_acos", 8 }, { TYDREAL,TYDREAL,1,"d_acos", 8 }, { TYREAL,TYREAL,1,"r_atan", 9 }, { TYDREAL,TYDREAL,1,"d_atan", 9 }, --- 306,312 ----- #endif GFLOAT { TYDREAL,TYDREAL,1,"d_acos", 8 }, + #ifndef GFLOAT { TYREAL,TYREAL,1,"r_atan", 9 }, #else GFLOAT { TYREAL,TYREAL,1,"r_atan" }, *************** *** 275,280 { TYDREAL,TYDREAL,1,"d_acos", 8 }, { TYREAL,TYREAL,1,"r_atan", 9 }, { TYDREAL,TYDREAL,1,"d_atan", 9 }, { TYREAL,TYREAL,2,"r_atn2", 10 }, --- 308,316 ----- #ifndef GFLOAT { TYREAL,TYREAL,1,"r_atan", 9 }, + #else GFLOAT + { TYREAL,TYREAL,1,"r_atan" }, + #endif GFLOAT { TYDREAL,TYDREAL,1,"d_atan", 9 }, #ifndef GFLOAT *************** *** 277,282 { TYREAL,TYREAL,1,"r_atan", 9 }, { TYDREAL,TYDREAL,1,"d_atan", 9 }, { TYREAL,TYREAL,2,"r_atn2", 10 }, { TYDREAL,TYDREAL,2,"d_atn2", 10 }, --- 313,319 ----- #endif GFLOAT { TYDREAL,TYDREAL,1,"d_atan", 9 }, + #ifndef GFLOAT { TYREAL,TYREAL,2,"r_atn2", 10 }, #else GFLOAT { TYREAL,TYREAL,2,"r_atn2" }, *************** *** 278,283 { TYDREAL,TYDREAL,1,"d_atan", 9 }, { TYREAL,TYREAL,2,"r_atn2", 10 }, { TYDREAL,TYDREAL,2,"d_atn2", 10 }, { TYREAL,TYREAL,1,"r_sinh", 11 }, --- 315,323 ----- #ifndef GFLOAT { TYREAL,TYREAL,2,"r_atn2", 10 }, + #else GFLOAT + { TYREAL,TYREAL,2,"r_atn2" }, + #endif GFLOAT { TYDREAL,TYDREAL,2,"d_atn2", 10 }, #ifndef GFLOAT *************** *** 280,285 { TYREAL,TYREAL,2,"r_atn2", 10 }, { TYDREAL,TYDREAL,2,"d_atn2", 10 }, { TYREAL,TYREAL,1,"r_sinh", 11 }, { TYDREAL,TYDREAL,1,"d_sinh", 11 }, --- 320,326 ----- #endif GFLOAT { TYDREAL,TYDREAL,2,"d_atn2", 10 }, + #ifndef GFLOAT { TYREAL,TYREAL,1,"r_sinh", 11 }, #else GFLOAT { TYREAL,TYREAL,1,"r_sinh" }, *************** *** 281,286 { TYDREAL,TYDREAL,2,"d_atn2", 10 }, { TYREAL,TYREAL,1,"r_sinh", 11 }, { TYDREAL,TYDREAL,1,"d_sinh", 11 }, { TYREAL,TYREAL,1,"r_cosh", 12 }, --- 322,330 ----- #ifndef GFLOAT { TYREAL,TYREAL,1,"r_sinh", 11 }, + #else GFLOAT + { TYREAL,TYREAL,1,"r_sinh" }, + #endif GFLOAT { TYDREAL,TYDREAL,1,"d_sinh", 11 }, #ifndef GFLOAT *************** *** 283,288 { TYREAL,TYREAL,1,"r_sinh", 11 }, { TYDREAL,TYDREAL,1,"d_sinh", 11 }, { TYREAL,TYREAL,1,"r_cosh", 12 }, { TYDREAL,TYDREAL,1,"d_cosh", 12 }, --- 327,333 ----- #endif GFLOAT { TYDREAL,TYDREAL,1,"d_sinh", 11 }, + #ifndef GFLOAT { TYREAL,TYREAL,1,"r_cosh", 12 }, #else GFLOAT { TYREAL,TYREAL,1,"r_cosh" }, *************** *** 284,289 { TYDREAL,TYDREAL,1,"d_sinh", 11 }, { TYREAL,TYREAL,1,"r_cosh", 12 }, { TYDREAL,TYDREAL,1,"d_cosh", 12 }, { TYREAL,TYREAL,1,"r_tanh", 13 }, --- 329,337 ----- #ifndef GFLOAT { TYREAL,TYREAL,1,"r_cosh", 12 }, + #else GFLOAT + { TYREAL,TYREAL,1,"r_cosh" }, + #endif GFLOAT { TYDREAL,TYDREAL,1,"d_cosh", 12 }, #ifndef GFLOAT *************** *** 286,291 { TYREAL,TYREAL,1,"r_cosh", 12 }, { TYDREAL,TYDREAL,1,"d_cosh", 12 }, { TYREAL,TYREAL,1,"r_tanh", 13 }, { TYDREAL,TYDREAL,1,"d_tanh", 13 }, --- 334,340 ----- #endif GFLOAT { TYDREAL,TYDREAL,1,"d_cosh", 12 }, + #ifndef GFLOAT { TYREAL,TYREAL,1,"r_tanh", 13 }, #else GFLOAT { TYREAL,TYREAL,1,"r_tanh" }, *************** *** 287,292 { TYDREAL,TYDREAL,1,"d_cosh", 12 }, { TYREAL,TYREAL,1,"r_tanh", 13 }, { TYDREAL,TYDREAL,1,"d_tanh", 13 }, { TYCHAR,TYLOGICAL,2,"hl_ge" }, --- 336,344 ----- #ifndef GFLOAT { TYREAL,TYREAL,1,"r_tanh", 13 }, + #else GFLOAT + { TYREAL,TYREAL,1,"r_tanh" }, + #endif GFLOAT { TYDREAL,TYDREAL,1,"d_tanh", 13 }, { TYCHAR,TYLOGICAL,2,"hl_ge" }, *************** *** 306,311 { TYDREAL,TYSHORT,1,"hd_expn" }, { TYDREAL,TYLONG,1,"id_expn" }, { TYREAL,TYREAL,1,"r_absp" }, { TYDREAL,TYDREAL,1,"d_absp" }, --- 358,364 ----- { TYDREAL,TYSHORT,1,"hd_expn" }, { TYDREAL,TYLONG,1,"id_expn" }, + #ifndef GFLOAT { TYREAL,TYREAL,1,"r_absp" }, #else GFLOAT { TYREAL,TYDREAL,1,"r_absp" }, *************** *** 307,312 { TYDREAL,TYLONG,1,"id_expn" }, { TYREAL,TYREAL,1,"r_absp" }, { TYDREAL,TYDREAL,1,"d_absp" }, { TYREAL,TYDREAL,1,"r_rrsp" }, --- 360,368 ----- #ifndef GFLOAT { TYREAL,TYREAL,1,"r_absp" }, + #else GFLOAT + { TYREAL,TYDREAL,1,"r_absp" }, + #endif GFLOAT { TYDREAL,TYDREAL,1,"d_absp" }, { TYREAL,TYDREAL,1,"r_rrsp" }, *************** *** 312,317 { TYREAL,TYDREAL,1,"r_rrsp" }, { TYDREAL,TYDREAL,1,"d_rrsp" }, { TYREAL,TYREAL,1,"r_frac" }, { TYDREAL,TYDREAL,1,"d_frac" }, --- 368,374 ----- { TYREAL,TYDREAL,1,"r_rrsp" }, { TYDREAL,TYDREAL,1,"d_rrsp" }, + #ifndef GFLOAT { TYREAL,TYREAL,1,"r_frac" }, #else GFLOAT { TYREAL,TYDREAL,1,"r_frac" }, *************** *** 313,318 { TYDREAL,TYDREAL,1,"d_rrsp" }, { TYREAL,TYREAL,1,"r_frac" }, { TYDREAL,TYDREAL,1,"d_frac" }, { TYREAL,TYREAL,2,"r_make" }, --- 370,378 ----- #ifndef GFLOAT { TYREAL,TYREAL,1,"r_frac" }, + #else GFLOAT + { TYREAL,TYDREAL,1,"r_frac" }, + #endif GFLOAT { TYDREAL,TYDREAL,1,"d_frac" }, #ifndef GFLOAT *************** *** 315,320 { TYREAL,TYREAL,1,"r_frac" }, { TYDREAL,TYDREAL,1,"d_frac" }, { TYREAL,TYREAL,2,"r_make" }, { TYDREAL,TYDREAL,2,"d_make" }, --- 375,381 ----- #endif GFLOAT { TYDREAL,TYDREAL,1,"d_frac" }, + #ifndef GFLOAT { TYREAL,TYREAL,2,"r_make" }, #else GFLOAT { TYREAL,TYDREAL,2,"r_make" }, *************** *** 316,321 { TYDREAL,TYDREAL,1,"d_frac" }, { TYREAL,TYREAL,2,"r_make" }, { TYDREAL,TYDREAL,2,"d_make" }, { TYREAL,TYREAL,2,"r_scal" }, --- 377,385 ----- #ifndef GFLOAT { TYREAL,TYREAL,2,"r_make" }, + #else GFLOAT + { TYREAL,TYDREAL,2,"r_make" }, + #endif GFLOAT { TYDREAL,TYDREAL,2,"d_make" }, #ifndef GFLOAT *************** *** 318,323 { TYREAL,TYREAL,2,"r_make" }, { TYDREAL,TYDREAL,2,"d_make" }, { TYREAL,TYREAL,2,"r_scal" }, { TYDREAL,TYDREAL,2,"d_scal" } } ; --- 382,388 ----- #endif GFLOAT { TYDREAL,TYDREAL,2,"d_make" }, + #ifndef GFLOAT { TYREAL,TYREAL,2,"r_scal" }, #else GFLOAT { TYREAL,TYDREAL,2,"r_scal" }, *************** *** 319,324 { TYDREAL,TYDREAL,2,"d_make" }, { TYREAL,TYREAL,2,"r_scal" }, { TYDREAL,TYDREAL,2,"d_scal" } } ; --- 384,392 ----- #ifndef GFLOAT { TYREAL,TYREAL,2,"r_scal" }, + #else GFLOAT + { TYREAL,TYDREAL,2,"r_scal" }, + #endif GFLOAT { TYDREAL,TYDREAL,2,"d_scal" } } ; SHAR_EOF chmod +x 'intr.c.diff' if test -f 'optcse.c.diff' then echo shar: over-writing existing file "'optcse.c.diff'" fi cat << \SHAR_EOF > 'optcse.c.diff' *** ../f77/src/f77pass1/optcse.c.orig Tue Oct 29 15:16:07 1985 --- ../f77/src/f77pass1/optcse.c Tue Oct 29 15:22:56 1985 *************** *** 477,483 case TYLONG: if(ap->ci == bp->ci) return(TRUE); break; ! case TYREAL: case TYDREAL: if(ap->cd[0] == bp->cd[0]) return(TRUE); break; --- 477,487 ----- case TYLONG: if(ap->ci == bp->ci) return(TRUE); break; ! case TYREAL: ! #ifdef GFLOAT ! if(ap->cr[0] == bp->cr[0]) return(TRUE); ! break; ! #endif GFLOAT case TYDREAL: if(ap->cd[0] == bp->cd[0]) return(TRUE); break; *************** *** 482,487 if(ap->cd[0] == bp->cd[0]) return(TRUE); break; case TYCOMPLEX: case TYDCOMPLEX: if(ap->cd[0] == bp->cd[0] && ap->cd[1] == bp->cd[1] ) --- 486,497 ----- if(ap->cd[0] == bp->cd[0]) return(TRUE); break; case TYCOMPLEX: + #ifdef GFLOAT + if(ap->cr[0] == bp->cr[0] && + ap->cr[1] == bp->cr[1] ) + return(TRUE); + break; + #endif GFLOAT case TYDCOMPLEX: if(ap->cd[0] == bp->cd[0] && ap->cd[1] == bp->cd[1] ) SHAR_EOF chmod +x 'optcse.c.diff' if test -f 'optloop.c.diff' then echo shar: over-writing existing file "'optloop.c.diff'" fi cat << \SHAR_EOF > 'optloop.c.diff' *** ../f77/src/f77pass1/optloop.c.orig Tue Oct 29 15:16:09 1985 --- ../f77/src/f77pass1/optloop.c Wed Oct 30 20:26:44 1985 *************** *** 660,665 return YES; if (ISREAL(p->constblock.vtype)) if (abs(p->constblock.const.cd[0]) <= 1.0) return YES; --- 660,666 ----- return YES; if (ISREAL(p->constblock.vtype)) + #ifndef GFLOAT if (abs(p->constblock.const.cd[0]) <= 1.0) #else GFLOAT if (p->constblock.vtype==TYREAL) { *************** *** 661,666 if (ISREAL(p->constblock.vtype)) if (abs(p->constblock.const.cd[0]) <= 1.0) return YES; return NO; --- 662,673 ----- if (ISREAL(p->constblock.vtype)) #ifndef GFLOAT if (abs(p->constblock.const.cd[0]) <= 1.0) + #else GFLOAT + if (p->constblock.vtype==TYREAL) { + if (abs(p->constblock.const.cr[0]) <= 1.0) return YES; + } + else if (abs(p->constblock.const.cd[0]) <= 1.0) + #endif GFLOAT return YES; return NO; SHAR_EOF chmod +x 'optloop.c.diff' if test -f 'put.c.diff' then echo shar: over-writing existing file "'put.c.diff'" fi cat << \SHAR_EOF > 'put.c.diff' *** ../f77/src/f77pass1/put.c.orig Tue Oct 29 15:16:12 1985 --- ../f77/src/f77pass1/put.c Tue Oct 29 15:23:07 1985 *************** *** 169,174 if (ISCONST(p)) { if (ISCOMPLEX(p->constblock.vtype)) return(mkrealcon(p->constblock.vtype == TYCOMPLEX ? TYREAL : TYDREAL, --- 169,175 ----- if (ISCONST(p)) { + #ifndef GFLOAT if (ISCOMPLEX(p->constblock.vtype)) return(mkrealcon(p->constblock.vtype == TYCOMPLEX ? TYREAL : TYDREAL, *************** *** 173,178 return(mkrealcon(p->constblock.vtype == TYCOMPLEX ? TYREAL : TYDREAL, p->constblock.const.cd[1])); else if (p->constblock.vtype == TYDREAL) return(mkrealcon(TYDREAL, 0.0)); else --- 174,186 ----- return(mkrealcon(p->constblock.vtype == TYCOMPLEX ? TYREAL : TYDREAL, p->constblock.const.cd[1])); + #else GFLOAT + if (p->constblock.vtype == TYCOMPLEX) + return(mkrealcon( TYREAL, + (double) p->constblock.const.cr[1])); + else if (p->constblock.vtype == TYDCOMPLEX) + return(mkrealcon( TYDREAL, p->constblock.const.cd[1])); + #endif GFLOAT else if (p->constblock.vtype == TYDREAL) return(mkrealcon(TYDREAL, 0.0)); else *************** *** 340,345 k = 2; case TYREAL: type = TYREAL; goto flpt; case TYDCOMPLEX: --- 348,354 ----- k = 2; case TYREAL: type = TYREAL; + #ifndef GFLOAT goto flpt; #else GFLOAT for(i = 0 ; i < k ; ++i) *************** *** 341,346 case TYREAL: type = TYREAL; goto flpt; case TYDCOMPLEX: k = 2; --- 350,360 ----- type = TYREAL; #ifndef GFLOAT goto flpt; + #else GFLOAT + for(i = 0 ; i < k ; ++i) + prconr(asmfile, type, &p->const.cr[i]); + break; + #endif GFLOAT case TYDCOMPLEX: k = 2; *************** *** 346,351 k = 2; case TYDREAL: type = TYDREAL; flpt: for(i = 0 ; i < k ; ++i) --- 360,366 ----- k = 2; case TYDREAL: type = TYDREAL; + #ifndef GFLOAT flpt: #endif GFLOAT *************** *** 348,353 type = TYDREAL; flpt: for(i = 0 ; i < k ; ++i) prconr(asmfile, type, p->const.cd[i]); break; --- 363,369 ----- #ifndef GFLOAT flpt: + #endif GFLOAT for(i = 0 ; i < k ; ++i) #ifndef GFLOAT prconr(asmfile, type, p->const.cd[i]); *************** *** 349,354 flpt: for(i = 0 ; i < k ; ++i) prconr(asmfile, type, p->const.cd[i]); break; --- 365,371 ----- flpt: #endif GFLOAT for(i = 0 ; i < k ; ++i) + #ifndef GFLOAT prconr(asmfile, type, p->const.cd[i]); #else GFLOAT prconr(asmfile, type, &p->const.cd[i]); *************** *** 350,355 flpt: for(i = 0 ; i < k ; ++i) prconr(asmfile, type, p->const.cd[i]); break; case TYCHAR: --- 367,375 ----- for(i = 0 ; i < k ; ++i) #ifndef GFLOAT prconr(asmfile, type, p->const.cd[i]); + #else GFLOAT + prconr(asmfile, type, &p->const.cd[i]); + #endif GFLOAT break; case TYCHAR: SHAR_EOF chmod +x 'put.c.diff' if test -f 'vax.c.diff' then echo shar: over-writing existing file "'vax.c.diff'" fi cat << \SHAR_EOF > 'vax.c.diff' *** ../f77/src/f77pass1/vax.c.orig Tue Oct 29 15:16:18 1985 --- ../f77/src/f77pass1/vax.c Tue Oct 29 15:23:13 1985 *************** *** 69,74 ftnint intcon[14] = { 2, 2, 2, 2, 15, 31, 24, 56, -128, -128, 127, 127, 32767, 2147483647 }; --- 69,75 ----- ftnint intcon[14] = { 2, 2, 2, 2, + #ifndef GFLOAT 15, 31, 24, 56, -128, -128, 127, 127, #else GFLOAT *************** *** 71,76 { 2, 2, 2, 2, 15, 31, 24, 56, -128, -128, 127, 127, 32767, 2147483647 }; #if HERE == VAX --- 72,81 ----- #ifndef GFLOAT 15, 31, 24, 56, -128, -128, 127, 127, + #else GFLOAT + 15, 31, 24, 53, + -128, -1024, 127, 1023, + #endif GFLOAT 32767, 2147483647 }; #if HERE == VAX *************** *** 78,83 long realcon[6][2] = { { 0200, 0 }, { 0200, 0 }, { 037777677777, 0 }, { 037777677777, 037777777777 }, --- 83,89 ----- long realcon[6][2] = { { 0200, 0 }, + #ifndef GFLOAT { 0200, 0 }, #else GFLOAT { 0020, 0 }, *************** *** 79,84 { { 0200, 0 }, { 0200, 0 }, { 037777677777, 0 }, { 037777677777, 037777777777 }, { 032200, 0 }, --- 85,93 ----- { 0200, 0 }, #ifndef GFLOAT { 0200, 0 }, + #else GFLOAT + { 0020, 0 }, + #endif GFLOAT { 037777677777, 0 }, #ifndef GFLOAT { 037777677777, 037777777777 }, *************** *** 80,85 { 0200, 0 }, { 0200, 0 }, { 037777677777, 0 }, { 037777677777, 037777777777 }, { 032200, 0 }, { 022200, 0 } --- 89,95 ----- { 0020, 0 }, #endif GFLOAT { 037777677777, 0 }, + #ifndef GFLOAT { 037777677777, 037777777777 }, #else GFLOAT { 037777677777, 037777777777 }, *************** *** 81,86 { 0200, 0 }, { 037777677777, 0 }, { 037777677777, 037777777777 }, { 032200, 0 }, { 022200, 0 } }; --- 91,99 ----- { 037777677777, 0 }, #ifndef GFLOAT { 037777677777, 037777777777 }, + #else GFLOAT + { 037777677777, 037777777777 }, + #endif GFLOAT { 032200, 0 }, #ifndef GFLOAT { 022200, 0 } *************** *** 82,87 { 037777677777, 0 }, { 037777677777, 037777777777 }, { 032200, 0 }, { 022200, 0 } }; #else --- 95,101 ----- { 037777677777, 037777777777 }, #endif GFLOAT { 032200, 0 }, + #ifndef GFLOAT { 022200, 0 } #else GFLOAT { 036320, 0 } *************** *** 83,88 { 037777677777, 037777777777 }, { 032200, 0 }, { 022200, 0 } }; #else double realcon[6] = --- 97,105 ----- { 032200, 0 }, #ifndef GFLOAT { 022200, 0 } + #else GFLOAT + { 036320, 0 } + #endif GFLOAT }; #else double realcon[6] = *************** *** 197,202 prconr(fp, type, x) FILEP fp; int type; float x; { fprintf(fp, "\t%s\t0f%e\n", (type==TYREAL ? ".float" : ".double"), x); --- 214,220 ----- prconr(fp, type, x) FILEP fp; int type; + #ifndef GFLOAT float x; #else GFLOAT float *x; *************** *** 198,203 FILEP fp; int type; float x; { fprintf(fp, "\t%s\t0f%e\n", (type==TYREAL ? ".float" : ".double"), x); } --- 216,224 ----- int type; #ifndef GFLOAT float x; + #else GFLOAT + float *x; + #endif GFLOAT { #ifndef GFLOAT fprintf(fp, "\t%s\t0f%e\n", (type==TYREAL ? ".float" : ".double"), x); *************** *** 199,204 int type; float x; { fprintf(fp, "\t%s\t0f%e\n", (type==TYREAL ? ".float" : ".double"), x); } #endif --- 220,226 ----- float *x; #endif GFLOAT { + #ifndef GFLOAT fprintf(fp, "\t%s\t0f%e\n", (type==TYREAL ? ".float" : ".double"), x); #else GFLOAT fprintf(fp, "\t%s\t0f%e\n", (type==TYREAL ? ".float" : ".double"), *x); *************** *** 200,205 float x; { fprintf(fp, "\t%s\t0f%e\n", (type==TYREAL ? ".float" : ".double"), x); } #endif --- 222,230 ----- { #ifndef GFLOAT fprintf(fp, "\t%s\t0f%e\n", (type==TYREAL ? ".float" : ".double"), x); + #else GFLOAT + fprintf(fp, "\t%s\t0f%e\n", (type==TYREAL ? ".float" : ".double"), *x); + #endif GFLOAT } #endif *************** *** 207,212 prconr(fp, type, x) FILEP fp; int type; double x; { /* non-portable cheat to preserve bit patterns */ --- 232,238 ----- prconr(fp, type, x) FILEP fp; int type; + #ifndef GFLOAT double x; { /* non-portable cheat to preserve bit patterns */ *************** *** 226,231 fprintf(fp, "\t.long\t0x%X,0x%X\n", cheat.xl[0], cheat.xl[1]); i = SZDOUBLE; } if(fp == initfile) i_offset += i; else --- 252,274 ----- fprintf(fp, "\t.long\t0x%X,0x%X\n", cheat.xl[0], cheat.xl[1]); i = SZDOUBLE; } + #else GFLOAT + /* This assumes two longs make a double */ + long *x; + { + register int i; + + if(type == TYREAL) + { + fprintf(fp, "\t.long\t0x%X\n", *x ); + i = SZFLOAT; + } + else + { + fprintf(fp, "\t.long\t0x%X,0x%X\n", *x, *(x+1) ); + i = SZDOUBLE; + } + #endif GFLOAT if(fp == initfile) i_offset += i; else *************** *** 369,374 else if (type == TYSHORT) p2pass("\ttstw\tr0"); else p2pass("\ttstd\tr0"); p2pi("\tjlss\tL%d", neg); p2pi("\tjeql\tL%d", zer); --- 412,418 ----- else if (type == TYSHORT) p2pass("\ttstw\tr0"); else + #ifndef GFLOAT p2pass("\ttstd\tr0"); #else GFLOAT p2pass("\ttstg\tr0"); *************** *** 370,375 p2pass("\ttstw\tr0"); else p2pass("\ttstd\tr0"); p2pi("\tjlss\tL%d", neg); p2pi("\tjeql\tL%d", zer); p2pi("\tjbr\tL%d", pos); --- 414,422 ----- else #ifndef GFLOAT p2pass("\ttstd\tr0"); + #else GFLOAT + p2pass("\ttstg\tr0"); + #endif GFLOAT p2pi("\tjlss\tL%d", neg); p2pi("\tjeql\tL%d", zer); p2pi("\tjbr\tL%d", pos); SHAR_EOF chmod +x 'vax.c.diff' if test -f 'Makefile.diff' then echo shar: over-writing existing file "'Makefile.diff'" fi cat << \SHAR_EOF > 'Makefile.diff' *** ../f77/src/f77pass1/Makefile.orig Tue Oct 29 15:16:19 1985 --- ../f77/src/f77pass1/Makefile Tue Oct 29 15:23:17 1985 *************** *** 2,8 # CFLAGS = -O -DHERE=VAX -DTARGET=VAX -DFAMILY=PCC -DUCBVAXASM -DUCBPASS2 \ ! -I../../include DEST = $(DESTROOT)/usr/lib --- 2,8 ----- # CFLAGS = -O -DHERE=VAX -DTARGET=VAX -DFAMILY=PCC -DUCBVAXASM -DUCBPASS2 \ ! -DGFLOAT -I../../include DEST = $(DESTROOT)/usr/lib SHAR_EOF chmod +x 'Makefile.diff' if test -f 'conv.h.diff' then echo shar: over-writing existing file "'conv.h.diff'" fi cat << \SHAR_EOF > 'conv.h.diff' *** ../f77/src/f77pass1/conv.h.orig Tue Oct 29 15:15:46 1985 --- ../f77/src/f77pass1/conv.h Tue Oct 29 15:22:26 1985 *************** *** 20,25 #define MINWORD -32768 typedef struct Dreal { unsigned fract1: 7; --- 20,26 ----- #define MINWORD -32768 typedef + #ifndef GFLOAT struct Dreal { unsigned fract1: 7; *************** *** 24,29 { unsigned fract1: 7; unsigned exp: 8; unsigned sign: 1; unsigned fract2: 16; unsigned fract3: 16; --- 25,36 ----- { unsigned fract1: 7; unsigned exp: 8; + #else GFLOAT + struct Greal + { + unsigned fract1: 4; + unsigned exp: 11; + #endif GFLOAT unsigned sign: 1; unsigned fract2: 16; unsigned fract3: 16; *************** *** 29,34 unsigned fract3: 16; unsigned fract4: 16; } dreal; typedef --- 36,42 ----- unsigned fract3: 16; unsigned fract4: 16; } + #ifndef GFLOAT dreal; #else GFLOAT greal; *************** *** 30,35 unsigned fract4: 16; } dreal; typedef struct Quad --- 38,46 ----- } #ifndef GFLOAT dreal; + #else GFLOAT + greal; + #endif GFLOAT typedef struct Quad *************** *** 40,45 quad; typedef union RealValue { double d; --- 51,69 ----- quad; typedef + #ifdef GFLOAT + struct Freal + { + unsigned fract1: 7; + unsigned exp: 8; + unsigned sign: 1; + unsigned fract2: 16; + unsigned fract3: 16; + unsigned fract4: 16; + } + freal; + typedef + #endif GFLOAT union RealValue { double d; *************** *** 44,49 { double d; quad q; dreal f; } realvalue; --- 68,74 ----- { double d; quad q; + #ifndef GFLOAT dreal f; #else GFLOAT freal f; *************** *** 45,49 double d; quad q; dreal f; } realvalue; --- 70,78 ----- quad q; #ifndef GFLOAT dreal f; + #else GFLOAT + freal f; + greal g; + #endif GFLOAT } realvalue; SHAR_EOF chmod +x 'conv.h.diff' chdir .. chdir .. chdir .. if test -f 'modf.s' then echo shar: over-writing existing file "'modf.s'" fi cat << \SHAR_EOF > 'modf.s' /* modf.s 4.1 83/06/27 */ /* NOTE (Apr. 1985): wrtfmt.o calls ecvt in libc.a which calls modf. This is a modified source that works only for G-format. */ /* * double modf (value, iptr) * double value, *iptr; * * Modf returns the fractional part of "value", * and stores the integer part indirectly through "iptr". */ /* #include "DEFS.h" */ #define ENTRY(x) .globl _/**/x; .align 2; _/**/x: .word 0 ENTRY(modf) emodg 4(ap),$0,$0g1.0,r2,r0 jvs 1f # integer overflow cvtlg r2,*12(ap) ret 1: subg3 r0,4(ap),*12(ap) ret SHAR_EOF chmod +x 'modf.s' if test -f 'NOTE' then echo shar: over-writing existing file "'NOTE'" fi cat << \SHAR_EOF > 'NOTE' NOTE (UW, Apr. 1985): wrtfmt.o calls ecvt in libc.a which calls modf. Modf must be replaced by a version corrected for G-format uVaxes. A source that works is included in this directory. The f77 built-in functions (sin(x), etc) use the C math library and are subject to the bugs in it. As a beginning, re-compile sin.c without optimization. SHAR_EOF chmod +x 'NOTE' if test ! -d 'libU77' then mkdir 'libU77' fi cd 'libU77' if test -f 'dtime_.c.diff' then echo shar: over-writing existing file "'dtime_.c.diff'" fi cat << \SHAR_EOF > 'dtime_.c.diff' 29a30,34 > #ifdef GFLOAT > union { double d; > float r[2]; > } res; > #endif GFLOAT 35a41,44 > #ifdef GFLOAT > res.r[0] = (dt->usrtime + dt->systime); > return( res.d ); > #else GFLOAT 36a46 > #endif GFLOAT SHAR_EOF chmod +x 'dtime_.c.diff' if test -f 'Makefile.diff' then echo shar: over-writing existing file "'Makefile.diff'" fi cat << \SHAR_EOF > 'Makefile.diff' 6c6 < CFLAGS = -O --- > CFLAGS = -O -DGFLOAT SHAR_EOF chmod +x 'Makefile.diff' chdir .. if test ! -d 'f77.gfloat' then mkdir 'f77.gfloat' fi cd 'f77.gfloat' if test -f 'Makefile' then echo shar: over-writing existing file "'Makefile'" fi cat << \SHAR_EOF > 'Makefile' PROGRAMS = f77 f77pass1 f1 f2 fpr fsplit libF77.a libI66.a libI77.a \ libU77.a modf.o install: $(PROGRAMS) @echo Installing f77 in /usr/bin install f77 /usr/bin @echo Installing f77pass1 in /usr/lib install f77pass1 /usr/lib @echo Installing f1 in /lib @install f1 /lib @echo Installing f2 in /lib @install f2 /lib @echo Installing fpr in /usr/ucb @install fpr /usr/ucb @echo Installing fsplit in /usr/ucb @install fsplit /usr/ucb @echo Installing libF77.a in /usr/lib install -m 644 libF77.a /usr/lib ranlib /usr/lib/libF77.a @echo Installing libI77.a in /usr/lib install -m 644 libI77.a /usr/lib ranlib /usr/lib/libI77.a @echo Installing libU77.a in /usr/lib install -m 644 libU77.a /usr/lib ranlib /usr/lib/libU77.a @echo Installing libI66.a in /usr/lib install -m 644 libI66.a /usr/lib @echo Fixing modf.o in /lib/libc.a mv modf.o /lib ar r /lib/libc.a /lib/modf.o ranlib /lib/libc.a rm /lib/modf.o collect: cp /usr/bin/f77 . cp /usr/lib/f77pass1 . cp /lib/f1 . cp /lib/f2 . cp /usr/ucb/fpr . cp /usr/ucb/fsplit . cp /usr/lib/libF77.a . cp /usr/lib/libI77.a . cp /usr/lib/libU77.a . cp /usr/lib/libI66.a . ar x /lib/libc.a modf.o SHAR_EOF chmod +x 'Makefile' if test -f 'READ_ME' then echo shar: over-writing existing file "'READ_ME'" fi cat << \SHAR_EOF > 'READ_ME' This directory contains the modified executable code and libraries for f77 to run on a G-float Vax, such as the majority of early microvaxes. It also contains a modified modf.o for /lib/libc.a, which contains a bug in Ultrix 1.0. 1. Log on or su as root, and copy this directory to the G-format machine. 2. Type make install from this directory. 3. Stand well back. 4. NOTE that the contents of this directory will be moved to the appropriate places, and will no longer exist here. 5. NOTE ALSO that the f77 built-in math functions access the C math library, and the bugs therein. SHAR_EOF chmod +x 'READ_ME' chdir .. if test -f 'tog.p' then echo shar: over-writing existing file "'tog.p'" fi cat << \SHAR_EOF > 'tog.p' program torig( input, output ); { This Pascal program will convert #ifdef GFLOAT files to pure g-float files. There is no pretense of efficiency.} const buflen=133; type bufstr=packed array[1..buflen] of char; var buf: bufstr; linlen: integer; procedure rdbuf; begin linlen := 0; if not eof then while not eoln do begin linlen := linlen+1; read( buf[linlen] ) end; if not eof then readln end; procedure wrtbuf; begin if linlen=0 then writeln else writeln( buf:linlen ) end; function match( strng: bufstr; len: integer ): boolean; var ok: boolean; i: integer; begin i := 1; ok := true; while ok and (i<=len) do begin ok := (strng[i]=buf[i]); i := i+1 end; match := ok end; begin { torig } while not eof do begin rdbuf; if match('#ifdef GFLOAT',13) then repeat rdbuf; if match('#else GFLOAT',12) then repeat rdbuf until match('#endif GFLOAT',13) else if not match('#endif GFLOAT',13) then wrtbuf until match('#endif GFLOAT',13) else if match('#ifndef GFLOAT',14) then repeat rdbuf; if match('#else GFLOAT',12) then begin rdbuf; while not match('#endif GFLOAT',13) do begin wrtbuf; rdbuf end end until match('#endif GFLOAT',13) else wrtbuf end end. SHAR_EOF chmod +x 'tog.p' chdir .. # End of shell archive exit 0