< prev index next >

src/share/vm/c1/c1_CodeStubs.hpp

Print this page
rev 8802 : G1 performance improvements: card batching, joining, sorting, prefetching and write barrier fence elision and simplification based on a global syncrhonization using handshakes piggybacking on thread-local safepoints.

*** 533,542 **** --- 533,565 ---- #ifndef PRODUCT virtual void print_name(outputStream* out) const { out->print("ArrayCopyStub"); } #endif // PRODUCT }; + class C1ThreadLocalSafepoint: public CodeStub { + private: + address _safepoint_pc; + bool _is_return; + + public: + C1ThreadLocalSafepoint(bool is_return) : _is_return(is_return) { } + + bool is_return() { return _is_return; } + + address safepoint_pc() { return _safepoint_pc; } + void set_safepoint_pc(address pc) { _safepoint_pc = pc; } + + virtual void emit_code(LIR_Assembler* e); + virtual void visit(LIR_OpVisitState* visitor) { + // don't pass in the code emit info since it's processed in the fast path + visitor->do_slow_case(); + } + #ifndef PRODUCT + virtual void print_name(outputStream* out) const { out->print("C1ThreadLocalSafepoint"); } + #endif // PRODUCT + }; + ////////////////////////////////////////////////////////////////////////////////////////// #if INCLUDE_ALL_GCS // Code stubs for Garbage-First barriers. class G1PreBarrierStub: public CodeStub {
< prev index next >