Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!linus!security!genrad!mit-eddie!mit-vax!eagle!mhuxi!houxm!ihnp4!inuxc!pur-ee!uiucdcs!parsec!fuka From: fuka@parsec.UUCP Newsgroups: net.bugs.4bsd Subject: Re: Re: cc flag to prevent type conversi - (nf) Message-ID: <3395@uiucdcs.UUCP> Date: Sun, 23-Oct-83 22:49:32 EDT Article-I.D.: uiucdcs.3395 Posted: Sun Oct 23 22:49:32 1983 Date-Received: Tue, 25-Oct-83 04:01:36 EDT Lines: 38 #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