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 |