[net.arch] register variables allocation in Pyramids

zben@umd5.UUCP (07/09/85)

In article <2496@topaz.ARPA> vijay@topaz.ARPA (P. Vijay) writes:
>	Pyramid C compiler seems to be taking an easy way out, when
>it comes to allocating register variables. However, I would like to
>point out that Pyramid architecture allows for a large number of
>registers and every invocation of a function results in a new set of
>registers (a la TI994, I think)...

Actually there are TWO subroutine call instructions, one for local
procedures and another for distant procedures, only the second one
gives you another registerset.

This can be done cheaply because the registers actually live in memory!
There is a Workspace Pointer register that points to the base of the
memory used for registers.  This is a BIG lose timewise because every
reference to a REGISTER requires a bus cycle.  Ick.

But there was sort of a win silicon-wise - they saved enough space by
not having registers on the chip to implement an integer multiply AND
integer divide operation!

From the proud owner of a Technico 9900 board with 1k bytes of RAM and
NO disk.  Assembler?  Who has room?  I program in HEX...  (ick)  Not too
bad - A is add, C is compare...   :-)

-- 
Ben Cranston  ...{seismo!umcp-cs,ihnp4!rlgvax}!cvl!umd5!zben  zben@umd2.ARPA