Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.1 6/24/83; site isieng.UUCP
Path: utzoo!watmath!clyde!cbosgd!ihnp4!houxm!vax135!cornell!uw-beaver!tektronix!hplabs!pesnta!greipa!decwrl!sun!qubix!wjvax!isieng!wendyt
From: wendyt@isieng.UUCP (Wendy Thrash)
Newsgroups: net.lang.c
Subject: Re: Can C default to float? Are there floating registers?
Message-ID: <157@isieng.UUCP>
Date: Fri, 27-Sep-85 18:21:31 EDT
Article-I.D.: isieng.157
Posted: Fri Sep 27 18:21:31 1985
Date-Received: Wed, 2-Oct-85 07:20:06 EDT
References: <175@mit-bug.UUCP>, <6000006@mirror.UUCP>
Organization: Integrated Solutions, San Jose, CA
Lines: 19

Ken Turkowski @ CADLINC, Menlo Park, CA writes:
> On machines such as the 68000 that have separate address and data
> register sets, the C compiler doesn't normally distinguish between the
> two when allocating them....

Rich $alz at Mirror Systems replies:
> Sorry, Ken.  If the C compiler is based on PCC, as most of them are, then:
>	"The machine is assumed to have a number of
>	registers, of at most two different types:  A and B...."

Vanilla SU numbers and sucomp() do not adequately describe different types of
registers;  resulting schemes for register allocation and evaluation order are
generally either very conservative or very easy to break;  some compilers
(including a couple I've worked on and, I believe, Sun's) extend the SU notion
to ordered n-tuples.  I've found getting register allocation correct to be the
main problem in modifying our compilers for the 68881.

The 4.2 f77 optimizer seems fairly single-minded in its belief that there is
only one kind of register, by the way -- a bigger pain than ccom/f1.