Path: utzoo!utgpu!water!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!mailrus!ames!pasteur!ucbvax!decwrl!alverson
From: alverson@decwrl.dec.com (Robert Alverson)
Newsgroups: comp.arch
Subject: Re: separate integer and float registers
Message-ID: <705@bacchus.DEC.COM>
Date: 14 Aug 88 22:38:51 GMT
References: <2724@wright.mips.COM> <56@radix>
Reply-To: alverson@decwrl.UUCP (Robert Alverson)
Organization: Digital Equipment Corporation
Lines: 19

>In article <2724@wright.mips.COM> earl@mips.COM (Earl Killian) asks why
>the Motorola 88100 makes the floating-point and integer registers the
>same.  I can't help there, but I can point out some of the advantages
>found in the Intel 80960 which also has floating-point operations that
>operate on the general (integer) registers.
>
One unfortunate aspect of separate fp and integer registers shows up
with varargs parameter passing.  Given that you want to pass parameters
in registers in optimized code, it seems that any call to a varargs
procedure must be detected, and any fp parameters passed in integer
registers.  In the absence of the ability to detect varargs procedures
(old style C), you may be forced to always pass fp values via integer
registers.

In truth, this is probably a better argument against varargs than for
unified register file.  Unfortunately, varargs are here to stay for
a while, at least.

Bob - alverson@decwrl.dec.com