comparison src/share/vm/graal/graalRuntime.hpp @ 9590:5f9c41cd3b1e

replaced monitorenter/monitorexit assembler stubs with compiled stubs (GRAAL-81)
author Doug Simon <doug.simon@oracle.com>
date Mon, 06 May 2013 22:37:00 +0200
parents d84ea522800e
children 0381c7937e7a
comparison
equal deleted inserted replaced
9582:7df076e74e8e 9590:5f9c41cd3b1e
76 76
77 // Holds all assembly stubs and VM 77 // Holds all assembly stubs and VM
78 // runtime routines needed by code code generated 78 // runtime routines needed by code code generated
79 // by Graal. 79 // by Graal.
80 #define GRAAL_STUBS(stub, last_entry) \ 80 #define GRAAL_STUBS(stub, last_entry) \
81 stub(monitorenter) \
82 stub(monitorexit) \
83 stub(vm_error) \ 81 stub(vm_error) \
84 stub(create_null_pointer_exception) \ 82 stub(create_null_pointer_exception) \
85 stub(create_out_of_bounds_exception) \ 83 stub(create_out_of_bounds_exception) \
86 stub(log_object) \ 84 stub(log_object) \
87 stub(log_printf) \ 85 stub(log_printf) \
118 // runtime entry points 116 // runtime entry points
119 static void unimplemented_entry(JavaThread* thread, StubID id); 117 static void unimplemented_entry(JavaThread* thread, StubID id);
120 118
121 static void create_null_exception(JavaThread* thread); 119 static void create_null_exception(JavaThread* thread);
122 static void create_out_of_bounds_exception(JavaThread* thread, jint index); 120 static void create_out_of_bounds_exception(JavaThread* thread, jint index);
123 static void monitorenter(JavaThread* thread, oopDesc* obj, BasicLock* lock);
124 static void monitorexit (JavaThread* thread, oopDesc* obj, BasicLock* lock);
125 static void vm_error(JavaThread* thread, oop where, oop format, jlong value); 121 static void vm_error(JavaThread* thread, oop where, oop format, jlong value);
126 static void log_printf(JavaThread* thread, oop format, jlong v1, jlong v2, jlong v3); 122 static void log_printf(JavaThread* thread, oop format, jlong v1, jlong v2, jlong v3);
127 static void log_primitive(JavaThread* thread, jchar typeChar, jlong value, jboolean newline); 123 static void log_primitive(JavaThread* thread, jchar typeChar, jlong value, jboolean newline);
128 static void wb_pre_call(JavaThread* thread, oopDesc* obj); 124 static void wb_pre_call(JavaThread* thread, oopDesc* obj);
129 static void wb_post_call(JavaThread* thread, oopDesc* obj, void* card); 125 static void wb_post_call(JavaThread* thread, oopDesc* obj, void* card);
143 static void new_multi_array(JavaThread* thread, Klass* klass, int rank, jint* dims); 139 static void new_multi_array(JavaThread* thread, Klass* klass, int rank, jint* dims);
144 static jboolean thread_is_interrupted(JavaThread* thread, oopDesc* obj, jboolean clear_interrupte); 140 static jboolean thread_is_interrupted(JavaThread* thread, oopDesc* obj, jboolean clear_interrupte);
145 static void vm_message(jboolean vmError, jlong format, jlong v1, jlong v2, jlong v3); 141 static void vm_message(jboolean vmError, jlong format, jlong v1, jlong v2, jlong v3);
146 static jint identity_hash_code(JavaThread* thread, oopDesc* objd); 142 static jint identity_hash_code(JavaThread* thread, oopDesc* objd);
147 static address exception_handler_for_pc(JavaThread* thread); 143 static address exception_handler_for_pc(JavaThread* thread);
144 static void monitorenter(JavaThread* thread, oopDesc* obj, BasicLock* lock);
145 static void monitorexit (JavaThread* thread, oopDesc* obj, BasicLock* lock);
148 146
149 // initialization 147 // initialization
150 static void initialize(BufferBlob* blob); 148 static void initialize(BufferBlob* blob);
151 149
152 // stubs 150 // stubs