Mercurial > hg > graal-jvmci-8
diff src/cpu/x86/vm/relocInfo_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 | b40d4fa697bf |
children | cd3d6a6b95d9 |
line wrap: on
line diff
--- a/src/cpu/x86/vm/relocInfo_x86.cpp Fri Aug 31 16:39:35 2012 -0700 +++ b/src/cpu/x86/vm/relocInfo_x86.cpp Sat Sep 01 13:25:18 2012 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 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 @@ -47,12 +47,21 @@ } } else if (which == Assembler::narrow_oop_operand) { address disp = Assembler::locate_operand(addr(), which); + // both compressed oops and compressed classes look the same + if (Universe::heap()->is_in_reserved((oop)x)) { if (verify_only) { assert(*(uint32_t*) disp == oopDesc::encode_heap_oop((oop)x), "instructions must match"); } else { *(int32_t*) disp = oopDesc::encode_heap_oop((oop)x); } } else { + if (verify_only) { + assert(*(uint32_t*) disp == oopDesc::encode_klass((Klass*)x), "instructions must match"); + } else { + *(int32_t*) disp = oopDesc::encode_klass((Klass*)x); + } + } + } else { // Note: Use runtime_call_type relocations for call32_operand. address ip = addr(); address disp = Assembler::locate_operand(ip, which); @@ -239,3 +248,6 @@ } #endif // _LP64 } + +void metadata_Relocation::pd_fix_value(address x) { +}