Where should the type information be 115
+--------------- A machine architecture that has an indirect bit for effective address calculation for all instructions. +---------------
Heh! Yes, I loved the PDP-10 too, Barb! But you forgot to mention that the word pointed to by an indirection could *also* have an indirect bit and an index register (as well as a new direct address), and so on, which led to the Algol compiler at least being able to do multi- dimensional array references with a single instruction! Well, after the subscripts were put into registers, and buttuming the Illiffe vectors for the array had been set up (at compile time). E.g.:
fooa,b,c,d,e := fooa,b,c,d,e + 1;
might be compiled as:
...code to load T0 with a... ...code to load T1 with b... ...code to load T2 with c... ...code to load T3 with d... ...code to load T4 with e...
Where should the type information be 116
John, YES, another GE-Honeybucket jock! Don't forget the Repeat Double instruction that allowed you to construct your own instructions that ran...
Which as Barb knows worked because the "FOO" label pointed not to the actual array, but to a vector of words containing indirect bits and index register fields of "T1" and Y (direct address) fields of the next-level Illiffe vectors, and so on. Only the last-level vectors lacked the indirect bits.
Tha main problem with this was that the register numbers to be used for indexing each level (array dimension) of a given array had to be picked at compile time, which meant that at run time you had to have *exactly* those registers available for the subscripted references to that array. Made register allocation-packing "interesting"...
----- San Mateo, CA 94403 (650)572-2607