[net.bugs.4bsd] cc flag to prevent type conversi

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