comparison src/share/vm/c1/c1_Runtime1.cpp @ 5573:f5cfb62f17b8

moved platform-independent Graal code from c1_Runtime1_x86.cpp to c1_Runtime1.[hpp,cpp]
author Doug Simon <doug.simon@oracle.com>
date Tue, 12 Jun 2012 22:59:40 +0200
parents 0ebca2e35ca5
children 69358a2182a3
comparison
equal deleted inserted replaced
5572:8f9c9d372e31 5573:f5cfb62f17b8
646 ResourceMark rm(thread); 646 ResourceMark rm(thread);
647 SharedRuntime::throw_and_post_jvmti_exception(thread, vmSymbols::java_lang_IncompatibleClassChangeError()); 647 SharedRuntime::throw_and_post_jvmti_exception(thread, vmSymbols::java_lang_IncompatibleClassChangeError());
648 JRT_END 648 JRT_END
649 649
650 #ifdef GRAAL 650 #ifdef GRAAL
651
652 JRT_ENTRY(void, Runtime1::graal_create_null_exception(JavaThread* thread))
653 thread->set_vm_result(Exceptions::new_exception(thread, vmSymbols::java_lang_NullPointerException(), NULL)());
654 JRT_END
655
656 JRT_ENTRY(void, Runtime1::graal_create_out_of_bounds_exception(JavaThread* thread, jint index))
657 char message[jintAsStringSize];
658 sprintf(message, "%d", index);
659 thread->set_vm_result(Exceptions::new_exception(thread, vmSymbols::java_lang_ArrayIndexOutOfBoundsException(), message)());
660 JRT_END
661
662 JRT_ENTRY(void, Runtime1::graal_generic_callback(JavaThread* thread, oop _callback, oop _argument))
663 HandleMark hm;
664 Handle callback(_callback);
665 Handle argument(_argument);
666
667 KlassHandle klass = SystemDictionary::resolve_or_null(vmSymbols::com_oracle_graal_api_code_GenericCallback(), SystemDictionary::java_system_loader(), NULL, thread);
668 if (klass.is_null()) {
669 tty->print_cr("couldn't resolve com_oracle_graal_api_code_GenericCallback");
670 }
671
672 JavaValue result(T_OBJECT);
673 JavaCallArguments args;
674 args.push_oop(Handle(callback));
675 args.push_oop(Handle(argument));
676 JavaCalls::call_virtual(&result, klass, vmSymbols::callbackInternal_name(), vmSymbols::callback_signature(), &args, thread);
677
678 thread->set_vm_result((oop) result.get_jobject());
679 JRT_END
680
651 JRT_ENTRY_NO_ASYNC(void, Runtime1::graal_monitorenter(JavaThread* thread, oopDesc* obj, BasicLock* lock)) 681 JRT_ENTRY_NO_ASYNC(void, Runtime1::graal_monitorenter(JavaThread* thread, oopDesc* obj, BasicLock* lock))
652 NOT_PRODUCT(_monitorenter_slowcase_cnt++;) 682 NOT_PRODUCT(_monitorenter_slowcase_cnt++;)
653 #ifdef ASSERT 683 #ifdef ASSERT
654 if (TraceGraal >= 3) { 684 if (TraceGraal >= 3) {
655 tty->print_cr("entered locking slow case with obj=" INTPTR_FORMAT " and lock= " INTPTR_FORMAT, obj, lock); 685 tty->print_cr("entered locking slow case with obj=" INTPTR_FORMAT " and lock= " INTPTR_FORMAT, obj, lock);