# HG changeset patch # User Doug Simon # Date 1339534780 -7200 # Node ID f5cfb62f17b8ee67fdff5019350a75b8e22df9f5 # Parent 8f9c9d372e31e20ee08106fb3bdd4fd5b82ae21f moved platform-independent Graal code from c1_Runtime1_x86.cpp to c1_Runtime1.[hpp,cpp] diff -r 8f9c9d372e31 -r f5cfb62f17b8 src/cpu/x86/vm/c1_Runtime1_x86.cpp --- a/src/cpu/x86/vm/c1_Runtime1_x86.cpp Tue Jun 12 15:01:48 2012 +0200 +++ b/src/cpu/x86/vm/c1_Runtime1_x86.cpp Tue Jun 12 22:59:40 2012 +0200 @@ -990,37 +990,6 @@ return oop_maps; } -#ifdef GRAAL -JRT_ENTRY(void, graal_create_null_exception(JavaThread* thread)) - thread->set_vm_result(Exceptions::new_exception(thread, vmSymbols::java_lang_NullPointerException(), NULL)()); -JRT_END - -JRT_ENTRY(void, graal_create_out_of_bounds_exception(JavaThread* thread, jint index)) - char message[jintAsStringSize]; - sprintf(message, "%d", index); - thread->set_vm_result(Exceptions::new_exception(thread, vmSymbols::java_lang_ArrayIndexOutOfBoundsException(), message)()); -JRT_END - -JRT_ENTRY(void, graal_generic_callback(JavaThread* thread, oop _callback, oop _argument)) - HandleMark hm; - Handle callback(_callback); - Handle argument(_argument); - - KlassHandle klass = SystemDictionary::resolve_or_null(vmSymbols::com_oracle_graal_api_code_GenericCallback(), SystemDictionary::java_system_loader(), NULL, thread); - if (klass.is_null()) { - tty->print_cr("couldn't resolve com_oracle_graal_api_code_GenericCallback"); - } - - JavaValue result(T_OBJECT); - JavaCallArguments args; - args.push_oop(Handle(callback)); - args.push_oop(Handle(argument)); - JavaCalls::call_virtual(&result, klass, vmSymbols::callbackInternal_name(), vmSymbols::callback_signature(), &args, thread); - - thread->set_vm_result((oop) result.get_jobject()); -JRT_END -#endif - OopMapSet* Runtime1::generate_code_for(StubID id, StubAssembler* sasm) { // for better readability diff -r 8f9c9d372e31 -r f5cfb62f17b8 src/share/vm/c1/c1_Runtime1.cpp --- a/src/share/vm/c1/c1_Runtime1.cpp Tue Jun 12 15:01:48 2012 +0200 +++ b/src/share/vm/c1/c1_Runtime1.cpp Tue Jun 12 22:59:40 2012 +0200 @@ -648,6 +648,36 @@ JRT_END #ifdef GRAAL + +JRT_ENTRY(void, Runtime1::graal_create_null_exception(JavaThread* thread)) + thread->set_vm_result(Exceptions::new_exception(thread, vmSymbols::java_lang_NullPointerException(), NULL)()); +JRT_END + +JRT_ENTRY(void, Runtime1::graal_create_out_of_bounds_exception(JavaThread* thread, jint index)) + char message[jintAsStringSize]; + sprintf(message, "%d", index); + thread->set_vm_result(Exceptions::new_exception(thread, vmSymbols::java_lang_ArrayIndexOutOfBoundsException(), message)()); +JRT_END + +JRT_ENTRY(void, Runtime1::graal_generic_callback(JavaThread* thread, oop _callback, oop _argument)) + HandleMark hm; + Handle callback(_callback); + Handle argument(_argument); + + KlassHandle klass = SystemDictionary::resolve_or_null(vmSymbols::com_oracle_graal_api_code_GenericCallback(), SystemDictionary::java_system_loader(), NULL, thread); + if (klass.is_null()) { + tty->print_cr("couldn't resolve com_oracle_graal_api_code_GenericCallback"); + } + + JavaValue result(T_OBJECT); + JavaCallArguments args; + args.push_oop(Handle(callback)); + args.push_oop(Handle(argument)); + JavaCalls::call_virtual(&result, klass, vmSymbols::callbackInternal_name(), vmSymbols::callback_signature(), &args, thread); + + thread->set_vm_result((oop) result.get_jobject()); +JRT_END + JRT_ENTRY_NO_ASYNC(void, Runtime1::graal_monitorenter(JavaThread* thread, oopDesc* obj, BasicLock* lock)) NOT_PRODUCT(_monitorenter_slowcase_cnt++;) #ifdef ASSERT diff -r 8f9c9d372e31 -r f5cfb62f17b8 src/share/vm/c1/c1_Runtime1.hpp --- a/src/share/vm/c1/c1_Runtime1.hpp Tue Jun 12 15:01:48 2012 +0200 +++ b/src/share/vm/c1/c1_Runtime1.hpp Tue Jun 12 22:59:40 2012 +0200 @@ -199,6 +199,9 @@ static void monitorenter(JavaThread* thread, oopDesc* obj, BasicObjectLock* lock); static void monitorexit (JavaThread* thread, BasicObjectLock* lock); #ifdef GRAAL + static void graal_create_null_exception(JavaThread* thread); + static void graal_create_out_of_bounds_exception(JavaThread* thread, jint index); + static void graal_generic_callback(JavaThread* thread, oop _callback, oop _argument); static void graal_monitorenter(JavaThread* thread, oopDesc* obj, BasicLock* lock); static void graal_monitorexit (JavaThread* thread, oopDesc* obj, BasicLock* lock); #endif