Mercurial > hg > truffle
changeset 1512:6cfbdb113e52
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 <gbenson@redhat.com>
author | twisti |
---|---|
date | Fri, 07 May 2010 04:20:56 -0700 |
parents | 348346af6676 |
children | df736661d0c8 |
files | src/cpu/zero/vm/frame_zero.cpp src/cpu/zero/vm/frame_zero.hpp src/cpu/zero/vm/javaFrameAnchor_zero.hpp src/os_cpu/linux_zero/vm/thread_linux_zero.hpp |
diffstat | 4 files changed, 17 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- 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");
--- 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:
--- 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); + }
--- 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.