Skip to content
Permalink
Browse files

Merge mode_preempt into mode_slow to reduce compilation time

  • Loading branch information
pron committed Feb 4, 2020
1 parent ce6ad9b commit e3a420b0366e6d5e9401ad0498c4dcaf459040fc
Showing with 89 additions and 76 deletions.
  1. +3 −6 src/hotspot/cpu/x86/continuation_x86.inline.hpp
  2. +86 −70 src/hotspot/share/runtime/continuation.cpp
@@ -480,9 +480,6 @@ inline void ContMirror::set_last_frame_pd(const hframe& f) {
set_fp(f.fp());
}

/*
* Here mode_preempt makes the fewest assumptions
*/
template<op_mode mode /* = mode_slow*/> // TODO: add default when switching to C++11+
const hframe ContMirror::last_frame() {
if (is_empty0()) return hframe();
@@ -735,9 +732,9 @@ static inline frame sender_for_compiled_frame(const frame& f) {
// tty->print_cr(">>> slow sender1");
#endif

assert (mode == mode_preempt || !FKind::stub || StubRoutines::cont_doYield_stub()->contains(f.pc()), "must be");
assert (mode == mode_preempt || !FKind::stub || slow_get_cb(f)->frame_size() == 5, "must be");
intptr_t** link_addr = (mode != mode_preempt && FKind::stub) ? noninterpreted_link_address(f.unextended_sp(), 5) : link_address<FKind>(f);
assert (mode == mode_slow || !FKind::stub || StubRoutines::cont_doYield_stub()->contains(f.pc()), "must be");
assert (mode == mode_slow || !FKind::stub || slow_get_cb(f)->frame_size() == 5, "must be");
intptr_t** link_addr = (mode != mode_slow && FKind::stub) ? noninterpreted_link_address(f.unextended_sp(), 5) : link_address<FKind>(f);

intptr_t* sender_sp = (intptr_t*)(link_addr + frame::sender_sp_offset); // f.unextended_sp() + (fsize/wordSize); //
address sender_pc = (address) *(sender_sp-1);

0 comments on commit e3a420b

Please sign in to comment.
You can’t perform that action at this time.