Question regarding "native-compiled frame"
Felix Yang
felix.yang at linaro.org
Wed Sep 6 13:55:52 UTC 2017
Hi,
Can some help explain what is a so called "native-compiled frame" in
hotspot please?
This is mentioned in the frame::sender function which is defined in
file frame_x86.cpp:
----------------------------------------------------------------------------------------------------------
frame frame::sender(RegisterMap* map) const {
// Default is we done have to follow them. The sender_for_xxx will
// update it accordingly
map->set_include_argument_oops(false);
if (is_entry_frame()) return sender_for_entry_frame(map);
if (is_interpreted_frame()) return sender_for_interpreter_frame(map);
assert(_cb == CodeCache::find_blob(pc()),"Must be the same");
if (_cb != NULL) {
return sender_for_compiled_frame(map);
}
// Must be native-compiled frame, i.e. the marshaling code for native
// methods that exists in the core system.
=> return frame(sender_sp(), link(), sender_pc());
}
----------------------------------------------------------------------------------------------------------
I did some experiments and found that the last "return" statement of
the function never gets executed when I do a specjbb2005 & specjbb2015 test.
From the comments in the code, this "return" statement handles the
"native-compiled frame" case.
I am curious about the condition of generating a native-compile frame
in hotspot.
Thanks for your help,
Felix
More information about the hotspot-dev
mailing list