< prev index next >

src/hotspot/share/c1/c1_Runtime1.hpp

BarrierSetC1
 /*
- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
  * published by the Free Software Foundation.

@@ -66,22 +66,25 stub(deoptimize) \ stub(access_field_patching) \ 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) \ last_entry(number_of_ids) #define DECLARE_STUB_ID(x) x ## _id , #define DECLARE_LAST_STUB_ID(x) x #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; public:
@@ -119,12 +122,15 private: static CodeBlob* _blobs[number_of_ids]; 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); static OopMapSet* generate_patching(StubAssembler* sasm, address target);
< prev index next >