633 // Extract poll address from instruction and ucontext. |
633 // Extract poll address from instruction and ucontext. |
634 static address get_poll_address(address instr_loc, void* ucontext); |
634 static address get_poll_address(address instr_loc, void* ucontext); |
635 // Extract poll register from instruction. |
635 // Extract poll register from instruction. |
636 static uint get_poll_register(address instr_loc); |
636 static uint get_poll_register(address instr_loc); |
637 |
637 |
638 // Check if instruction is a write access to the memory serialization page |
|
639 // realized by one of the instructions stw, stwu, stwx, or stwux. |
|
640 static bool is_memory_serialization(int instruction, JavaThread* thread, void* ucontext); |
|
641 |
|
642 // Support for serializing memory accesses between threads. |
|
643 void serialize_memory(Register thread, Register tmp1, Register tmp2); |
|
644 |
|
645 // Check if safepoint requested and if so branch |
638 // Check if safepoint requested and if so branch |
646 void safepoint_poll(Label& slow_path, Register temp_reg); |
639 void safepoint_poll(Label& slow_path, Register temp_reg); |
647 |
640 |
648 // Stack overflow checking |
641 // Stack overflow checking |
649 void bang_stack_with_offset(int offset); |
642 void bang_stack_with_offset(int offset); |