Path: utzoo!utgpu!water!watmath!clyde!att!rutgers!gatech!purdue!i.cc.purdue.edu!k.cc.purdue.edu!l.cc.purdue.edu!cik
From: cik@l.cc.purdue.edu (Herman Rubin)
Newsgroups: comp.arch
Subject: Re: separate integer and float register
Summary: Any convention is bad.
Message-ID: <879@l.cc.purdue.edu>
Date: 17 Aug 88 17:44:52 GMT
References: <2724@wright.mips.COM> <6800002@modcomp> <1241@garth.UUCP>
Organization: Purdue University Statistics Department
Lines: 29

In article <1241@garth.UUCP>, walter@garth.UUCP (Walter Bays) writes:
> In article <6800002@modcomp> joe@modcomp.UUCP writes:
> >Special floating point registers also slow down context switching, due
> >to the extra time needed to save/restore them.
> 
> More registers slow down context switching, whether integer or floating
> point, windowed or conventional.  The net effect depends on the
> workload; as you point out, some real-time applications may have a very
> high context switch rate.  In choosing/designing a real-time executive
> for such an application on a machine with many registers I might adopt
> register usage conventions that treated most registers as volatile.

If good arithmetic is involved, any convention is bad is not too rare 
situations.  Treating registers as volatile is bad if there are conditional
subroutine calls or even conditional branches where the condition is rare.
Also, it is a nuisance to have separate integer and floating point registers.
I am frequently doing arithmetic which uses both simultaneously, and I would
suggest that pack and unpack instructions be part of the general set.
Since loads and stores are undesirable, the sets of registers should be
available simultaneously.

Unless there is a big time improvement in having separate register sets,
one gains from the ability to trade off between registers used for integers
and floating point registers.  I doubt that enough can be gained by having
separate register sets to compensate for the losses.
-- 
Herman Rubin, Dept. of Statistics, Purdue Univ., West Lafayette IN47907
Phone: (317)494-6054
hrubin@l.cc.purdue.edu (Internet, bitnet, UUCP)