< 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 >