--- old/src/share/vm/c1/c1_Runtime1.hpp 2017-04-25 16:44:05.711176213 +0200 +++ new/src/share/vm/c1/c1_Runtime1.hpp 2017-04-25 16:44:05.567176218 +0200 @@ -68,8 +68,6 @@ stub(load_klass_patching) \ stub(load_mirror_patching) \ stub(load_appendix_patching) \ - stub(g1_pre_barrier_slow) \ - stub(g1_post_barrier_slow) \ stub(fpu2long_stub) \ stub(counter_overflow) \ stub(predicate_failed_trap) \ @@ -80,6 +78,11 @@ #define STUB_NAME(x) #x " Runtime1 stub", #define LAST_STUB_NAME(x) #x " Runtime1 stub" +class StubAssemblerCodeGenClosure: public Closure { + public: + virtual OopMapSet* generate_code(StubAssembler* sasm) = 0; +}; + class Runtime1: public AllStatic { friend class VMStructs; friend class ArrayCopyStub; @@ -96,7 +99,6 @@ static int _ic_miss_cnt; static int _generic_arraycopy_cnt; static int _primitive_arraycopy_cnt; - static int _oop_arraycopy_cnt; static int _generic_arraycopystub_cnt; static int _arraycopy_slowcase_cnt; static int _arraycopy_checkcast_cnt; @@ -123,8 +125,11 @@ static const char* _blob_names[]; // stub generation + public: + static CodeBlob* generate_blob(BufferBlob* buffer_blob, int stub_id, const char* name, bool expect_oop_map, StubAssemblerCodeGenClosure *cl); static void generate_blob_for(BufferBlob* blob, StubID id); static OopMapSet* generate_code_for(StubID id, StubAssembler* sasm); + private: static OopMapSet* generate_exception_throw(StubAssembler* sasm, address target, bool has_argument); static OopMapSet* generate_handle_exception(StubID id, StubAssembler* sasm); static void generate_unwind_exception(StubAssembler *sasm); @@ -190,7 +195,6 @@ // directly accessible leaf routine static int arraycopy(oopDesc* src, int src_pos, oopDesc* dst, int dst_pos, int length); static void primitive_arraycopy(HeapWord* src, HeapWord* dst, int length); - static void oop_arraycopy(HeapWord* src, HeapWord* dst, int length); static int is_instance_of(oopDesc* mirror, oopDesc* obj); static void predicate_failed_trap(JavaThread* thread);