Hi, in CompiledVFrame.createStackValue there is the following code:
// First find address of value
Address valueAddr = loc.isRegister()
// Value was in a callee-save register
? getRegisterMap().getLocation(new VMReg(loc.getRegisterNumber()))
// Else value was directly saved on the stack. The frame's
original stack pointer,
// before any extension by its callee (due to Compiler1
linkage on SPARC), must be used.
: ((Address)fr.getUnextendedSP()).addOffsetTo(loc.getStackOffset());
It appears from what I can make out that for the register case the map
is not updated and so valueAddr is null. The only thing I can see that
calls setLocation is updateMapWithSavedLink. Seems like it should be
possible to return the register value for the frame at the top of the
stack though?
Cheers,
David