comparison src/share/vm/c1/c1_Runtime1.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 8f37087fc13f
children e522a00b91aa 46f6f063b272
comparison
equal deleted inserted replaced
6724:36d1d483d5d6 6725:da91efe96a93
1 /* 1 /*
2 * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 * 4 *
5 * This code is free software; you can redistribute it and/or modify it 5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as 6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
64 stub(monitorexit) \ 64 stub(monitorexit) \
65 stub(monitorexit_nofpu) /* optimized version that does not preserve fpu registers */ \ 65 stub(monitorexit_nofpu) /* optimized version that does not preserve fpu registers */ \
66 stub(deoptimize) \ 66 stub(deoptimize) \
67 stub(access_field_patching) \ 67 stub(access_field_patching) \
68 stub(load_klass_patching) \ 68 stub(load_klass_patching) \
69 stub(load_mirror_patching) \
69 stub(g1_pre_barrier_slow) \ 70 stub(g1_pre_barrier_slow) \
70 stub(g1_post_barrier_slow) \ 71 stub(g1_post_barrier_slow) \
71 stub(fpu2long_stub) \ 72 stub(fpu2long_stub) \
72 stub(counter_overflow) \ 73 stub(counter_overflow) \
73 last_entry(number_of_ids) 74 last_entry(number_of_ids)
129 130
130 static OopMapSet* generate_stub_call(StubAssembler* sasm, Register result, address entry, 131 static OopMapSet* generate_stub_call(StubAssembler* sasm, Register result, address entry,
131 Register arg1 = noreg, Register arg2 = noreg, Register arg3 = noreg); 132 Register arg1 = noreg, Register arg2 = noreg, Register arg3 = noreg);
132 133
133 // runtime entry points 134 // runtime entry points
134 static void new_instance (JavaThread* thread, klassOopDesc* klass); 135 static void new_instance (JavaThread* thread, Klass* klass);
135 static void new_type_array (JavaThread* thread, klassOopDesc* klass, jint length); 136 static void new_type_array (JavaThread* thread, Klass* klass, jint length);
136 static void new_object_array(JavaThread* thread, klassOopDesc* klass, jint length); 137 static void new_object_array(JavaThread* thread, Klass* klass, jint length);
137 static void new_multi_array (JavaThread* thread, klassOopDesc* klass, int rank, jint* dims); 138 static void new_multi_array (JavaThread* thread, Klass* klass, int rank, jint* dims);
138 139
139 static address counter_overflow(JavaThread* thread, int bci, methodOopDesc* method); 140 static address counter_overflow(JavaThread* thread, int bci, Method* method);
140 141
141 static void unimplemented_entry (JavaThread* thread, StubID id); 142 static void unimplemented_entry (JavaThread* thread, StubID id);
142 143
143 static address exception_handler_for_pc(JavaThread* thread); 144 static address exception_handler_for_pc(JavaThread* thread);
144 145
155 156
156 static void deoptimize(JavaThread* thread); 157 static void deoptimize(JavaThread* thread);
157 158
158 static int access_field_patching(JavaThread* thread); 159 static int access_field_patching(JavaThread* thread);
159 static int move_klass_patching(JavaThread* thread); 160 static int move_klass_patching(JavaThread* thread);
161 static int move_mirror_patching(JavaThread* thread);
160 162
161 static void patch_code(JavaThread* thread, StubID stub_id); 163 static void patch_code(JavaThread* thread, StubID stub_id);
162 164
163 public: 165 public:
164 // initialization 166 // initialization