equal
deleted
inserted
replaced
29 #include "asm/assembler.hpp" |
29 #include "asm/assembler.hpp" |
30 #include "asm/macroAssembler.hpp" |
30 #include "asm/macroAssembler.hpp" |
31 #include "memory/allocation.hpp" |
31 #include "memory/allocation.hpp" |
32 #include "runtime/icache.hpp" |
32 #include "runtime/icache.hpp" |
33 #include "runtime/os.hpp" |
33 #include "runtime/os.hpp" |
|
34 #include "runtime/safepointMechanism.hpp" |
34 |
35 |
35 // We have interfaces for the following instructions: |
36 // We have interfaces for the following instructions: |
36 // |
37 // |
37 // - NativeInstruction |
38 // - NativeInstruction |
38 // - NativeCall |
39 // - NativeCall |
91 } |
92 } |
92 |
93 |
93 bool is_safepoint_poll() { |
94 bool is_safepoint_poll() { |
94 // Is the current instruction a POTENTIAL read access to the polling page? |
95 // Is the current instruction a POTENTIAL read access to the polling page? |
95 // The current arguments of the instruction are not checked! |
96 // The current arguments of the instruction are not checked! |
|
97 if (SafepointMechanism::uses_thread_local_poll() && USE_POLL_BIT_ONLY) { |
|
98 int encoding = SafepointMechanism::poll_bit(); |
|
99 return MacroAssembler::is_tdi(long_at(0), Assembler::traptoGreaterThanUnsigned | Assembler::traptoEqual, |
|
100 -1, encoding); |
|
101 } |
96 return MacroAssembler::is_load_from_polling_page(long_at(0), NULL); |
102 return MacroAssembler::is_load_from_polling_page(long_at(0), NULL); |
97 } |
103 } |
98 |
104 |
99 bool is_memory_serialization(JavaThread *thread, void *ucontext) { |
105 bool is_memory_serialization(JavaThread *thread, void *ucontext) { |
100 // Is the current instruction a write access of thread to the |
106 // Is the current instruction a write access of thread to the |