393 // Check whether instruction is a read access to the polling page |
393 // Check whether instruction is a read access to the polling page |
394 // which was emitted by load_from_polling_page(..). |
394 // which was emitted by load_from_polling_page(..). |
395 static bool is_load_from_polling_page(int instruction, void* ucontext/*may be NULL*/, |
395 static bool is_load_from_polling_page(int instruction, void* ucontext/*may be NULL*/, |
396 address* polling_address_ptr = NULL); |
396 address* polling_address_ptr = NULL); |
397 |
397 |
398 // Check whether instruction is a write access to the memory |
|
399 // serialization page realized by one of the instructions stw, stwu, |
|
400 // stwx, or stwux. |
|
401 static bool is_memory_serialization(int instruction, JavaThread* thread, void* ucontext); |
|
402 |
|
403 // Support for NULL-checks |
398 // Support for NULL-checks |
404 // |
399 // |
405 // Generates code that causes a NULL OS exception if the content of reg is NULL. |
400 // Generates code that causes a NULL OS exception if the content of reg is NULL. |
406 // If the accessed location is M[reg + offset] and the offset is known, provide the |
401 // If the accessed location is M[reg + offset] and the offset is known, provide the |
407 // offset. No explicit code generation is needed if the offset is within a certain |
402 // offset. No explicit code generation is needed if the offset is within a certain |
642 bool use_rtm = false, bool profile_rtm = false); |
637 bool use_rtm = false, bool profile_rtm = false); |
643 |
638 |
644 void compiler_fast_unlock_object(ConditionRegister flag, Register oop, Register box, |
639 void compiler_fast_unlock_object(ConditionRegister flag, Register oop, Register box, |
645 Register tmp1, Register tmp2, Register tmp3, |
640 Register tmp1, Register tmp2, Register tmp3, |
646 bool try_bias = UseBiasedLocking, bool use_rtm = false); |
641 bool try_bias = UseBiasedLocking, bool use_rtm = false); |
647 |
|
648 // Support for serializing memory accesses between threads |
|
649 void serialize_memory(Register thread, Register tmp1, Register tmp2); |
|
650 |
642 |
651 // Check if safepoint requested and if so branch |
643 // Check if safepoint requested and if so branch |
652 void safepoint_poll(Label& slow_path, Register temp_reg); |
644 void safepoint_poll(Label& slow_path, Register temp_reg); |
653 |
645 |
654 void resolve_jobject(Register value, Register tmp1, Register tmp2, bool needs_frame); |
646 void resolve_jobject(Register value, Register tmp1, Register tmp2, bool needs_frame); |