Mercurial > hg > truffle
diff src/share/vm/code/icBuffer.hpp @ 6725:da91efe96a93
6964458: Reimplement class meta-data storage to use native memory
Summary: Remove PermGen, allocate meta-data in metaspace linked to class loaders, rewrite GC walking, rewrite and rename metadata to be C++ classes
Reviewed-by: jmasa, stefank, never, coleenp, kvn, brutisso, mgerdin, dholmes, jrose, twisti, roland
Contributed-by: jmasa <jon.masamitsu@oracle.com>, stefank <stefan.karlsson@oracle.com>, mgerdin <mikael.gerdin@oracle.com>, never <tom.rodriguez@oracle.com>
author | coleenp |
---|---|
date | Sat, 01 Sep 2012 13:25:18 -0400 |
parents | f95d63e2154a |
children | b31471cdc53e |
line wrap: on
line diff
--- a/src/share/vm/code/icBuffer.hpp Fri Aug 31 16:39:35 2012 -0700 +++ b/src/share/vm/code/icBuffer.hpp Sat Sep 01 13:25:18 2012 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2012, 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 @@ -57,7 +57,7 @@ public: // Creation - void set_stub(CompiledIC *ic, oop cached_value, address dest_addr); + void set_stub(CompiledIC *ic, void* cached_value, address dest_addr); // Code info address code_begin() const { return (address)this + round_to(sizeof(ICStub), CodeEntryAlignment); } @@ -70,7 +70,7 @@ // stub info address destination() const; // destination of jump instruction - oop cached_oop() const; // cached_oop for stub + void* cached_value() const; // cached_value for stub // Debugging void verify() PRODUCT_RETURN; @@ -99,6 +99,9 @@ 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; } @@ -109,9 +112,9 @@ // Machine-dependent implementation of ICBuffer - static void assemble_ic_buffer_code(address code_begin, oop cached_oop, address entry_point); + 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 oop ic_buffer_cached_oop (address code_begin); + static void* ic_buffer_cached_value (address code_begin); public: @@ -127,11 +130,14 @@ // 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, oop cached_oop, address entry); + static void create_transition_stub(CompiledIC *ic, void* cached_value, address entry); static address ic_destination_for(CompiledIC *ic); - static oop cached_oop_for(CompiledIC *ic); + static void* cached_value_for(CompiledIC *ic); }; #endif // SHARE_VM_CODE_ICBUFFER_HPP