fuka@parsec.UUCP (10/24/83)
#R:umcp-cs:-313300:parsec:33500001:000:1238 parsec!fuka Oct 21 01:27:00 1983 Well, here's a shot at the solution after 20 minutes study: For 4.1c, add the entry below to /usr/src/lib/pcc/table.c after the rest of the entries which begin with OPFLOAT. Be aware that (1) I haven't tested this on anything other than a couple of variations on your program, and (2) this may change the results of programs which use operations on 'floats'. Let me know if there is a better solution in System III or System 5. table.c: /* 10/21/83 parsec!fuka: Insure that TFLOAT op TFLOAT will be done as double */ OPFLOAT, INAREG|INTAREG|FORCC, SAREG|AWD, TFLOAT, SAREG|AWD, TFLOAT, 2*NAREG|NASR, RESC1|RESCC, " cvtfd AL,A1\n cvtfd AR,A2\n OD2 A2,A1\n", If you want the assignment operators (e.g. +=) done in double-precision for floats, change the second entry in table.c which begins with 'ASG OPFLOAT': /* 10/21/83 parsec!fuka: force TFLOAT op= TFLOAT to be done as double */ ASG OPFLOAT, INAREG|FOREFF|FORCC, SAREG|AWD, TFLOAT, SAREG|AWD, TFLOAT, /* old: 0, RLEFT|RESCC, */ /* new: */ 2*NAREG|NASL, RLEFT|RESCC, /* old: " OF2 AR,AL\n", */ /* new: */ " cvtfd AR,A1\n cvtfd AL,A2\n OF2 A2,A1\n cvtdf A1,AL\n", Kent Fuka Parsec Scientific Computer Corp. {allegra|ihnp4|uiucdcs}!parsec!fuka