< prev index next > src/hotspot/share/code/icBuffer.hpp
#include "asm/codeBuffer.hpp"
#include "code/stubs.hpp"
#include "interpreter/bytecodes.hpp"
#include "memory/allocation.hpp"
#include "utilities/align.hpp"
+#include "utilities/macros.hpp"
//
// For CompiledIC's:
//
// In cases where we do not have MT-safe state transformation,
friend class ICStub;
static int ic_stub_code_size();
static StubQueue* _buffer;
- static ICStub* _next_stub;
static CompiledICHolder* _pending_released;
static int _pending_count;
- static StubQueue* buffer() { return _buffer; }
- static void set_next_stub(ICStub* next_stub) { _next_stub = next_stub; }
- static ICStub* get_next_stub() { return _next_stub; }
+ DEBUG_ONLY(static volatile int _needs_refill;)
- static void init_next_stub();
+ static StubQueue* buffer() { return _buffer; }
static ICStub* new_ic_stub();
-
// Machine-dependent implementation of ICBuffer
static void assemble_ic_buffer_code(address code_begin, void* cached_value, address entry_point);
static address ic_buffer_entry_point (address code_begin);
static void* ic_buffer_cached_value (address code_begin);
// Access
static bool contains(address instruction_address);
// removes the ICStubs after backpatching
static void update_inline_caches();
+ static void refill_ic_stubs();
// for debugging
static bool is_empty();
static void release_pending_icholders();
static void queue_for_release(CompiledICHolder* icholder);
static int pending_icholder_count() { return _pending_count; }
// New interface
- static void create_transition_stub(CompiledIC *ic, void* cached_value, address entry);
+ static bool create_transition_stub(CompiledIC *ic, void* cached_value, address entry);
static address ic_destination_for(CompiledIC *ic);
static void* cached_value_for(CompiledIC *ic);
};
#endif // SHARE_VM_CODE_ICBUFFER_HPP
< prev index next >