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