Mercurial > hg > truffle
diff src/cpu/x86/vm/vtableStubs_x86_64.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 | 8e47bac5643a |
line wrap: on
line diff
--- a/src/cpu/x86/vm/vtableStubs_x86_64.cpp Fri Aug 31 16:39:35 2012 -0700 +++ b/src/cpu/x86/vm/vtableStubs_x86_64.cpp Sat Sep 01 13:25:18 2012 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 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 @@ -73,7 +73,7 @@ if (DebugVtables) { Label L; // check offset vs vtable length - __ cmpl(Address(rax, instanceKlass::vtable_length_offset() * wordSize), + __ cmpl(Address(rax, InstanceKlass::vtable_length_offset() * wordSize), vtable_index * vtableEntry::size()); __ jcc(Assembler::greater, L); __ movl(rbx, vtable_index); @@ -83,7 +83,7 @@ } #endif // PRODUCT - // load methodOop and target address + // load Method* and target address const Register method = rbx; __ lookup_virtual_method(rax, vtable_index, method); @@ -92,16 +92,16 @@ Label L; __ cmpptr(method, (int32_t)NULL_WORD); __ jcc(Assembler::equal, L); - __ cmpptr(Address(method, methodOopDesc::from_compiled_offset()), (int32_t)NULL_WORD); + __ cmpptr(Address(method, Method::from_compiled_offset()), (int32_t)NULL_WORD); __ jcc(Assembler::notZero, L); __ stop("Vtable entry is NULL"); __ bind(L); } // rax: receiver klass - // rbx: methodOop + // rbx: Method* // rcx: receiver address ame_addr = __ pc(); - __ jmp( Address(rbx, methodOopDesc::from_compiled_offset())); + __ jmp( Address(rbx, Method::from_compiled_offset())); __ flush(); @@ -161,14 +161,14 @@ const Register method = rbx; Label throw_icce; - // Get methodOop and entrypoint for compiler + // Get Method* and entrypoint for compiler __ lookup_interface_method(// inputs: rec. class, interface, itable index r10, rax, itable_index, // outputs: method, scan temp. reg method, r11, throw_icce); - // method (rbx): methodOop + // method (rbx): Method* // j_rarg0: receiver #ifdef ASSERT @@ -176,17 +176,17 @@ Label L2; __ cmpptr(method, (int32_t)NULL_WORD); __ jcc(Assembler::equal, L2); - __ cmpptr(Address(method, methodOopDesc::from_compiled_offset()), (int32_t)NULL_WORD); + __ cmpptr(Address(method, Method::from_compiled_offset()), (int32_t)NULL_WORD); __ jcc(Assembler::notZero, L2); __ stop("compiler entrypoint is null"); __ bind(L2); } #endif // ASSERT - // rbx: methodOop + // rbx: Method* // j_rarg0: receiver address ame_addr = __ pc(); - __ jmp(Address(method, methodOopDesc::from_compiled_offset())); + __ jmp(Address(method, Method::from_compiled_offset())); __ bind(throw_icce); __ jump(RuntimeAddress(StubRoutines::throw_IncompatibleClassChangeError_entry()));