# HG changeset patch # User twisti # Date 1273231256 25200 # Node ID 6cfbdb113e5212adc724955315e8c2c85ee8c6bb # Parent 348346af66765f1bfb2e5a0b13f72e7152fe455f 6950617: Zero/Shark interface updates Summary: Zero needs a couple of new methods to allow Shark to access the new frame anchor field. Reviewed-by: twisti Contributed-by: Gary Benson diff -r 348346af6676 -r 6cfbdb113e52 src/cpu/zero/vm/frame_zero.cpp --- a/src/cpu/zero/vm/frame_zero.cpp Thu May 06 02:09:18 2010 -0700 +++ b/src/cpu/zero/vm/frame_zero.cpp Fri May 07 04:20:56 2010 -0700 @@ -36,6 +36,10 @@ return zeroframe()->is_interpreter_frame(); } +bool frame::is_fake_stub_frame() const { + return zeroframe()->is_fake_stub_frame(); +} + frame frame::sender_for_entry_frame(RegisterMap *map) const { assert(zeroframe()->is_entry_frame(), "wrong type of frame"); assert(map != NULL, "map must be set"); diff -r 348346af6676 -r 6cfbdb113e52 src/cpu/zero/vm/frame_zero.hpp --- a/src/cpu/zero/vm/frame_zero.hpp Thu May 06 02:09:18 2010 -0700 +++ b/src/cpu/zero/vm/frame_zero.hpp Fri May 07 04:20:56 2010 -0700 @@ -62,6 +62,9 @@ } public: + bool is_fake_stub_frame() const; + + public: frame sender_for_nonentry_frame(RegisterMap* map) const; public: diff -r 348346af6676 -r 6cfbdb113e52 src/cpu/zero/vm/javaFrameAnchor_zero.hpp --- a/src/cpu/zero/vm/javaFrameAnchor_zero.hpp Thu May 06 02:09:18 2010 -0700 +++ b/src/cpu/zero/vm/javaFrameAnchor_zero.hpp Fri May 07 04:20:56 2010 -0700 @@ -81,3 +81,7 @@ ZeroFrame* last_Java_fp() const { return _last_Java_fp; } + + static ByteSize last_Java_fp_offset() { + return byte_offset_of(JavaFrameAnchor, _last_Java_fp); + } diff -r 348346af6676 -r 6cfbdb113e52 src/os_cpu/linux_zero/vm/thread_linux_zero.hpp --- a/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp Thu May 06 02:09:18 2010 -0700 +++ b/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp Fri May 07 04:20:56 2010 -0700 @@ -89,6 +89,12 @@ } public: + static ByteSize last_Java_fp_offset() { + return byte_offset_of(JavaThread, _anchor) + + JavaFrameAnchor::last_Java_fp_offset(); + } + + public: // Check for pending suspend requests and pending asynchronous // exceptions. There are separate accessors for these, but // _suspend_flags is volatile so using them would be unsafe.