|
69 | 69 | //#define BIND(label) bind(label); BLOCK_COMMENT(#label ":") |
70 | 70 | const int MXCSR_MASK = 0xFFC0; // Mask out any pending exceptions |
71 | 71 |
|
72 | | -OopMap* continuation_enter_setup(MacroAssembler* masm, int& stack_slots); |
73 | | -void fill_continuation_entry(MacroAssembler* masm); |
74 | | -void continuation_enter_cleanup(MacroAssembler* masm); |
75 | | - |
76 | 72 | // Stub Code definitions |
77 | 73 |
|
78 | 74 | class StubGenerator: public StubCodeGenerator { |
@@ -5585,76 +5581,3 @@ void StubGenerator_generate(CodeBuffer* code, int phase) { |
5585 | 5581 | } |
5586 | 5582 | StubGenerator g(code, phase); |
5587 | 5583 | } |
5588 | | - |
5589 | | -#undef __ |
5590 | | -#define __ masm-> |
5591 | | - |
5592 | | -// on exit, sp points to the ContinuationEntry |
5593 | | -OopMap* continuation_enter_setup(MacroAssembler* masm, int& stack_slots) { |
5594 | | - assert(ContinuationEntry::size() % VMRegImpl::stack_slot_size == 0, ""); |
5595 | | - assert(in_bytes(ContinuationEntry::cont_offset()) % VMRegImpl::stack_slot_size == 0, ""); |
5596 | | - assert(in_bytes(ContinuationEntry::chunk_offset()) % VMRegImpl::stack_slot_size == 0, ""); |
5597 | | - |
5598 | | - stack_slots += checked_cast<int>(ContinuationEntry::size()) / wordSize; |
5599 | | - __ li(AT, checked_cast<int>(ContinuationEntry::size())); |
5600 | | - __ sub_d(SP, SP, AT); |
5601 | | - |
5602 | | - OopMap* map = new OopMap(((int)ContinuationEntry::size() + wordSize) / VMRegImpl::stack_slot_size, 0 /* arg_slots*/); |
5603 | | - ContinuationEntry::setup_oopmap(map); |
5604 | | - |
5605 | | - __ ld_d(AT, Address(TREG, JavaThread::cont_entry_offset())); |
5606 | | - __ st_d(AT, Address(SP, ContinuationEntry::parent_offset())); |
5607 | | - __ st_d(SP, Address(TREG, JavaThread::cont_entry_offset())); |
5608 | | - |
5609 | | - return map; |
5610 | | -} |
5611 | | - |
5612 | | -// on entry j_rarg0 points to the continuation |
5613 | | -// SP points to ContinuationEntry |
5614 | | -// j_rarg2 -- isVirtualThread |
5615 | | -void fill_continuation_entry(MacroAssembler* masm) { |
5616 | | -#ifdef ASSERT |
5617 | | - __ li(AT, ContinuationEntry::cookie_value()); |
5618 | | - __ st_w(AT, Address(SP, ContinuationEntry::cookie_offset())); |
5619 | | -#endif |
5620 | | - |
5621 | | - __ st_d(j_rarg0, Address(SP, ContinuationEntry::cont_offset())); |
5622 | | - __ st_w(j_rarg2, Address(SP, ContinuationEntry::flags_offset())); |
5623 | | - __ st_d(R0, Address(SP, ContinuationEntry::chunk_offset())); |
5624 | | - __ st_w(R0, Address(SP, ContinuationEntry::argsize_offset())); |
5625 | | - __ st_w(R0, Address(SP, ContinuationEntry::pin_count_offset())); |
5626 | | - |
5627 | | - __ ld_d(AT, Address(TREG, JavaThread::cont_fastpath_offset())); |
5628 | | - __ st_d(AT, Address(SP, ContinuationEntry::parent_cont_fastpath_offset())); |
5629 | | - __ ld_d(AT, Address(TREG, JavaThread::held_monitor_count_offset())); |
5630 | | - __ st_d(AT, Address(SP, ContinuationEntry::parent_held_monitor_count_offset())); |
5631 | | - |
5632 | | - __ st_d(R0, Address(TREG, JavaThread::cont_fastpath_offset())); |
5633 | | - __ st_d(R0, Address(TREG, JavaThread::held_monitor_count_offset())); |
5634 | | -} |
5635 | | - |
5636 | | -// on entry, sp points to the ContinuationEntry |
5637 | | -// on exit, fp points to the spilled fp + 2 * wordSize in the entry frame |
5638 | | -void continuation_enter_cleanup(MacroAssembler* masm) { |
5639 | | -#ifndef PRODUCT |
5640 | | - Label OK; |
5641 | | - __ ld_d(AT, Address(TREG, JavaThread::cont_entry_offset())); |
5642 | | - __ beq(SP, AT, OK); |
5643 | | - __ stop("incorrect sp for cleanup"); |
5644 | | - __ bind(OK); |
5645 | | -#endif |
5646 | | - |
5647 | | - __ ld_d(AT, Address(SP, ContinuationEntry::parent_cont_fastpath_offset())); |
5648 | | - __ st_d(AT, Address(TREG, JavaThread::cont_fastpath_offset())); |
5649 | | - __ ld_d(AT, Address(SP, ContinuationEntry::parent_held_monitor_count_offset())); |
5650 | | - __ st_d(AT, Address(TREG, JavaThread::held_monitor_count_offset())); |
5651 | | - |
5652 | | - __ ld_d(AT, Address(SP, ContinuationEntry::parent_offset())); |
5653 | | - __ st_d(AT, Address(TREG, JavaThread::cont_entry_offset())); |
5654 | | - |
5655 | | - // add 2 extra words to match up with leave() |
5656 | | - __ li(AT, (int)ContinuationEntry::size() + 2 * wordSize); |
5657 | | - __ add_d(FP, SP, AT); |
5658 | | -} |
5659 | | - |
5660 | | -#undef __ |
0 commit comments