Mercurial > hg > truffle
diff src/cpu/x86/vm/frame_x86.cpp @ 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 | 1d7922586cf6 |
children | e522a00b91aa 59c790074993 |
line wrap: on
line diff
--- a/src/cpu/x86/vm/frame_x86.cpp Fri Aug 31 16:39:35 2012 -0700 +++ b/src/cpu/x86/vm/frame_x86.cpp Sat Sep 01 13:25:18 2012 -0400 @@ -26,7 +26,7 @@ #include "interpreter/interpreter.hpp" #include "memory/resourceArea.hpp" #include "oops/markOop.hpp" -#include "oops/methodOop.hpp" +#include "oops/method.hpp" #include "oops/oop.inline.hpp" #include "prims/methodHandles.hpp" #include "runtime/frame.inline.hpp" @@ -494,7 +494,7 @@ bool frame::interpreter_frame_equals_unpacked_fp(intptr_t* fp) { assert(is_interpreted_frame(), "must be interpreter frame"); - methodOop method = interpreter_frame_method(); + Method* method = interpreter_frame_method(); // When unpacking an optimized frame the frame pointer is // adjusted with: int diff = (method->max_locals() - method->size_of_parameters()) * @@ -531,7 +531,7 @@ // first the method - methodOop m = *interpreter_frame_method_addr(); + Method* m = *interpreter_frame_method_addr(); // validate the method we'd find in this potential sender if (!Universe::heap()->is_valid_method(m)) return false; @@ -549,13 +549,9 @@ return false; } - // validate constantPoolCacheOop - - constantPoolCacheOop cp = *interpreter_frame_cache_addr(); - - if (cp == NULL || - !Space::is_aligned(cp) || - !Universe::heap()->is_permanent((void*)cp)) return false; + // validate ConstantPoolCache* + ConstantPoolCache* cp = *interpreter_frame_cache_addr(); + if (cp == NULL || !cp->is_metadata()) return false; // validate locals @@ -576,7 +572,7 @@ interpreterState istate = get_interpreterState(); #endif // CC_INTERP assert(is_interpreted_frame(), "interpreted frame expected"); - methodOop method = interpreter_frame_method(); + Method* method = interpreter_frame_method(); BasicType type = method->result_type(); intptr_t* tos_addr;