On 1/29/19 11:24 AM, David Griffiths wrote: > 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?
It could be, but we don't do that. The registers in the map are those pushed onto the stack by generated Java code. -- Andrew Haley Java Platform Lead Engineer Red Hat UK Ltd. <https://www.redhat.com> EAC8 43EB D3EF DB98 CC77 2FAD A5CD 6035 332F A671
