[LispM-Hackers] Help! Confusion about "registers"
Paul Fuqua
pf@ti.com
Tue, 10 Apr 2001 11:30:06 -0500 (CDT)
Date: Tue, 10 Apr 2001 00:08:02 -0400
From: John Morrison <jm@mak.com>
It mentions that call state is kept in the five registers:
M-CALL-INFO
M-ARGUMENT-POINTER
M-LOCAL-POINTER
M-FEF
LOCATION-COUNTER
The first four are M-memory locations. The latter is actually a
hardware register, feeding into the instruction-fetch mechanism.
Inheriting from the old CADR, the Explorer had a 1024-element A memory
and 32-element M memory. The M memory was effectively the register
file. A quirk in the datapath caused writes to the M side to be
reflected in the A side, so you could read the M-memory values from
either side and thus get register-like behavior.
I don't recall them being memory "mapped" as such. While some of the
value cells for important variables are actually A-memory locations, I
don't know if the M side was directly visible. But I could be wrong.
As for restoration, I'm pretty sure the stack-group code explicitly
loads them from the top of the stack when switching to the new stack
group.
I really need to put my Explorer back together and get back into this
stuff.
pf