Mercurial > hg > graal-compiler
comparison src/share/vm/graal/graalRuntime.hpp @ 8506:c3657d00e343
-Merge with tip
author | Christos Kotselidis <christos.kotselidis@oracle.com> |
---|---|
date | Thu, 21 Mar 2013 14:11:13 +0100 |
parents | 86b4965f0c9a 3d41998c30de |
children | ef97193256d0 |
comparison
equal
deleted
inserted
replaced
8505:dee7c8b578c7 | 8506:c3657d00e343 |
---|---|
79 | 79 |
80 // Holds all assembly stubs and VM | 80 // Holds all assembly stubs and VM |
81 // runtime routines needed by code code generated | 81 // runtime routines needed by code code generated |
82 // by Graal. | 82 // by Graal. |
83 #define GRAAL_STUBS(stub, last_entry) \ | 83 #define GRAAL_STUBS(stub, last_entry) \ |
84 stub(graal_register_finalizer) \ | 84 stub(register_finalizer) \ |
85 stub(graal_new_instance) \ | 85 stub(new_instance) \ |
86 stub(graal_new_array) \ | 86 stub(new_array) \ |
87 stub(graal_new_multi_array) \ | 87 stub(new_multi_array) \ |
88 stub(graal_handle_exception_nofpu) /* optimized version that does not preserve fpu registers */ \ | 88 stub(handle_exception_nofpu) /* optimized version that does not preserve fpu registers */ \ |
89 stub(graal_slow_subtype_check) \ | 89 stub(unwind_exception_call) \ |
90 stub(graal_unwind_exception_call) \ | 90 stub(OSR_migration_end) \ |
91 stub(graal_OSR_migration_end) \ | 91 stub(arithmetic_frem) \ |
92 stub(graal_arithmetic_frem) \ | 92 stub(arithmetic_drem) \ |
93 stub(graal_arithmetic_drem) \ | 93 stub(monitorenter) \ |
94 stub(graal_monitorenter) \ | 94 stub(monitorexit) \ |
95 stub(graal_monitorexit) \ | 95 stub(verify_oop) \ |
96 stub(graal_verify_oop) \ | 96 stub(vm_error) \ |
97 stub(graal_vm_error) \ | 97 stub(create_null_pointer_exception) \ |
98 stub(graal_set_deopt_info) \ | 98 stub(create_out_of_bounds_exception) \ |
99 stub(graal_create_null_pointer_exception) \ | 99 stub(log_object) \ |
100 stub(graal_create_out_of_bounds_exception) \ | 100 stub(log_printf) \ |
101 stub(graal_log_object) \ | 101 stub(log_primitive) \ |
102 stub(graal_log_printf) \ | 102 stub(identity_hash_code) \ |
103 stub(graal_log_primitive) \ | 103 stub(thread_is_interrupted) \ |
104 stub(graal_identity_hash_code) \ | 104 stub(wb_pre_call) \ |
105 stub(graal_thread_is_interrupted) \ | 105 stub(wb_post_call) \ |
106 stub(graal_wb_pre_call) \ | 106 last_entry(number_of_ids) |
107 stub(graal_wb_post_call) \ | |
108 last_entry(number_of_ids) | |
109 | 107 |
110 #define DECLARE_STUB_ID(x) x ## _id , | 108 #define DECLARE_STUB_ID(x) x ## _id , |
111 #define DECLARE_LAST_STUB_ID(x) x | 109 #define DECLARE_LAST_STUB_ID(x) x |
112 #define STUB_NAME(x) #x " GraalRuntime stub", | 110 #define STUB_NAME(x) #x " GraalRuntime stub", |
113 #define LAST_STUB_NAME(x) #x " GraalRuntime stub" | 111 #define LAST_STUB_NAME(x) #x " GraalRuntime stub" |
140 | 138 |
141 static void unimplemented_entry(JavaThread* thread, StubID id); | 139 static void unimplemented_entry(JavaThread* thread, StubID id); |
142 | 140 |
143 static address exception_handler_for_pc(JavaThread* thread); | 141 static address exception_handler_for_pc(JavaThread* thread); |
144 | 142 |
145 static void graal_verify_oop(JavaThread* thread, oopDesc* obj); | 143 static void create_null_exception(JavaThread* thread); |
146 static void graal_wb_pre_call(JavaThread* thread, oopDesc* obj); | 144 static void create_out_of_bounds_exception(JavaThread* thread, jint index); |
147 static void graal_wb_post_call(JavaThread* thread, oopDesc* obj,void* obj); | 145 static void monitorenter(JavaThread* thread, oopDesc* obj, BasicLock* lock); |
148 static void graal_create_null_exception(JavaThread* thread); | 146 static void monitorexit (JavaThread* thread, oopDesc* obj, BasicLock* lock); |
149 static void graal_create_out_of_bounds_exception(JavaThread* thread, jint index); | 147 static void vm_error(JavaThread* thread, oop where, oop format, jlong value); |
150 static void graal_monitorenter(JavaThread* thread, oopDesc* obj, BasicLock* lock); | 148 static void log_printf(JavaThread* thread, oop format, jlong v1, jlong v2, jlong v3); |
151 static void graal_monitorexit (JavaThread* thread, oopDesc* obj, BasicLock* lock); | 149 static void log_primitive(JavaThread* thread, jchar typeChar, jlong value, jboolean newline); |
152 static void graal_vm_error(JavaThread* thread, oop where, oop format, jlong value); | 150 static void wb_pre_call(JavaThread* thread, oopDesc* obj); |
153 static void graal_log_printf(JavaThread* thread, oop format, jlong v1, jlong v2, jlong v3); | 151 static void wb_post_call(JavaThread* thread, oopDesc* obj,void* obj); |
154 static void graal_log_primitive(JavaThread* thread, jchar typeChar, jlong value, jboolean newline); | 152 |
155 | 153 static jint identity_hash_code(JavaThread* thread, oopDesc* objd); |
156 static jint graal_identity_hash_code(JavaThread* thread, oopDesc* objd); | 154 static jboolean thread_is_interrupted(JavaThread* thread, oopDesc* obj, jboolean clear_interrupte); |
157 static jboolean graal_thread_is_interrupted(JavaThread* thread, oopDesc* obj, jboolean clear_interrupte); | |
158 | 155 |
159 // Note: Must be kept in sync with constants in com.oracle.graal.snippets.Log | 156 // Note: Must be kept in sync with constants in com.oracle.graal.snippets.Log |
160 enum { | 157 enum { |
161 LOG_OBJECT_NEWLINE = 0x01, | 158 LOG_OBJECT_NEWLINE = 0x01, |
162 LOG_OBJECT_STRING = 0x02, | 159 LOG_OBJECT_STRING = 0x02, |
163 LOG_OBJECT_ADDRESS = 0x04 | 160 LOG_OBJECT_ADDRESS = 0x04 |
164 }; | 161 }; |
165 static void graal_log_object(JavaThread* thread, oop msg, jint flags); | 162 static void log_object(JavaThread* thread, oop msg, jint flags); |
166 | 163 |
167 public: | 164 public: |
168 // initialization | 165 // initialization |
169 static void initialize(BufferBlob* blob); | 166 static void initialize(BufferBlob* blob); |
170 | 167 |