RFR, XS, 7120448, Fix FP values for compiled frames in frame::describe

Bertrand Delsart bertrand.delsart at oracle.com
Mon Jan 16 08:06:22 PST 2012


Here is simple review for the first of a series of fixes and
extensions for frame::describe.

http://cr.openjdk.java.net/~bdelsart/7120448/webrev.01/webrev/

This is the first of a series of fixes and extensions for
frame::describe.

frame::describe() was calling the platform dependent frame::fp() to
get the frame pointer. Unfortunately, the semantic of frame::fp() is
not clearly defined. On compiled x86 frames, the value could be
arbitrary.  That could cause frame::describe to dump misleading
information and useless memory slots.

Defined a new frame::real_fp() with a more precise semantic for
portable shared code.

This is the value expected by the platform ABI when it defines a frame
pointer register. It may differ from the effective value of the FP
register when that register is used in the JVM for other purposes
(like compiled frames on some platforms).  On other platforms, it is
defined so that the stack area used by this frame goes from real_fp()
to sp().

By default, the new definition is equivalent to the old frame::fp()
definition. x86 is the only OpenJDK supported platform which required
a different definition.

Bertrand.

-- 
Bertrand Delsart,               bertrand.delsart at oracle.com,
Sun-Oracle France, 180 av. de l'Europe, ZIRST de Montbonnot,
38334 Saint Ismier,                                  FRANCE


More information about the hotspot-compiler-dev mailing list