Is RegisterMap updated?

David Griffiths david.griffiths at gmail.com
Tue Jan 29 11:24:29 UTC 2019


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


More information about the serviceability-dev mailing list