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

@@ -98,24 +99,20 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);
@@ -127,20 +124,21 // 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 >