hotspot/src/cpu/zero/vm/frame_zero.cpp
Print this page
*** 1,8 ****
/*
* Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved.
! * Copyright 2007, 2008, 2009 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
--- 1,8 ----
/*
* Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved.
! * Copyright 2007, 2008, 2009, 2010 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*** 42,59 ****
assert(!entry_frame_is_first(), "next Java fp must be non zero");
assert(entry_frame_call_wrapper()->anchor()->last_Java_sp() == sender_sp(),
"sender should be next Java frame");
map->clear();
assert(map->include_argument_oops(), "should be set by clear");
! return frame(sender_sp(), sp() + 1);
}
frame frame::sender_for_nonentry_frame(RegisterMap *map) const {
assert(zeroframe()->is_interpreter_frame() ||
zeroframe()->is_shark_frame() ||
zeroframe()->is_fake_stub_frame(), "wrong type of frame");
! return frame(sender_sp(), sp() + 1);
}
frame frame::sender(RegisterMap* map) const {
// Default is not to follow arguments; the various
// sender_for_xxx methods update this accordingly.
--- 42,59 ----
assert(!entry_frame_is_first(), "next Java fp must be non zero");
assert(entry_frame_call_wrapper()->anchor()->last_Java_sp() == sender_sp(),
"sender should be next Java frame");
map->clear();
assert(map->include_argument_oops(), "should be set by clear");
! return frame(zeroframe()->next(), sender_sp());
}
frame frame::sender_for_nonentry_frame(RegisterMap *map) const {
assert(zeroframe()->is_interpreter_frame() ||
zeroframe()->is_shark_frame() ||
zeroframe()->is_fake_stub_frame(), "wrong type of frame");
! return frame(zeroframe()->next(), sender_sp());
}
frame frame::sender(RegisterMap* map) const {
// Default is not to follow arguments; the various
// sender_for_xxx methods update this accordingly.
*** 170,181 ****
buflen >>= 1;
char *fieldbuf = buf;
char *valuebuf = buf + buflen;
// Print each word of the frame
! for (intptr_t *addr = fp(); addr <= sp(); addr++) {
! int offset = sp() - addr;
// Fill in default values, then try and improve them
snprintf(fieldbuf, buflen, "word[%d]", offset);
snprintf(valuebuf, buflen, PTR_FORMAT, *addr);
zeroframe()->identify_word(frame_index, offset, fieldbuf, valuebuf, buflen);
--- 170,181 ----
buflen >>= 1;
char *fieldbuf = buf;
char *valuebuf = buf + buflen;
// Print each word of the frame
! for (intptr_t *addr = sp(); addr <= fp(); addr++) {
! int offset = fp() - addr;
// Fill in default values, then try and improve them
snprintf(fieldbuf, buflen, "word[%d]", offset);
snprintf(valuebuf, buflen, PTR_FORMAT, *addr);
zeroframe()->identify_word(frame_index, offset, fieldbuf, valuebuf, buflen);