comparison src/share/vm/c1x/c1x_VMExits.cpp @ 2296:34354e2e40a3

cleanups and client/server fixes: * explicit init of CompilerImpl * CompilationServer terminates without EOFException * moved C1XOptions initialization code into separate class (static initializer changed to static method) * added ConnectionObserver to CompilationServer
author Lukas Stadler <lukas.stadler@jku.at>
date Wed, 13 Apr 2011 14:40:13 +0200
parents 6190d20bd6d6
children 4e5515d09314
comparison
equal deleted inserted replaced
2295:160aacf936ad 2296:34354e2e40a3
65 _vmExitsPermObject = JNIHandles::make_global((oop) result.get_jobject()); 65 _vmExitsPermObject = JNIHandles::make_global((oop) result.get_jobject());
66 } 66 }
67 return Handle(JNIHandles::resolve_non_null(_vmExitsPermObject)); 67 return Handle(JNIHandles::resolve_non_null(_vmExitsPermObject));
68 } 68 }
69 69
70 void VMExits::initializeCompiler() {
71 KlassHandle compilerImplKlass = SystemDictionary::resolve_or_null(vmSymbols::com_sun_hotspot_c1x_CompilerImpl(), SystemDictionary::java_system_loader(), NULL, Thread::current());
72 check_not_null(compilerImplKlass(), "Couldn't find class com.sun.hotspot.c1x.CompilerImpl");
73
74 JavaValue result(T_VOID);
75 JavaCalls::call_static(&result, compilerImplKlass, vmSymbols::initialize_name(), vmSymbols::void_method_signature(), Thread::current());
76 check_pending_exception("Couldn't initialize compiler");
77 }
78
70 jboolean VMExits::setOption(Handle option) { 79 jboolean VMExits::setOption(Handle option) {
71 assert(!option.is_null(), ""); 80 assert(!option.is_null(), "");
81 KlassHandle compilerKlass = SystemDictionary::resolve_or_null(vmSymbols::com_sun_hotspot_c1x_HotSpotOptions(), SystemDictionary::java_system_loader(), NULL, Thread::current());
82 check_not_null(compilerKlass(), "Couldn't find class com.sun.hotspot.c1x.HotSpotOptions");
83
72 Thread* THREAD = Thread::current(); 84 Thread* THREAD = Thread::current();
73 JavaValue result(T_BOOLEAN); 85 JavaValue result(T_BOOLEAN);
74 JavaCallArguments args; 86 JavaCalls::call_static(&result, compilerKlass, vmSymbols::setOption_name(), vmSymbols::setOption_signature(), option, THREAD);
75 args.push_oop(instance());
76 args.push_oop(option);
77 JavaCalls::call_interface(&result, vmExitsKlass(), vmSymbols::setOption_name(), vmSymbols::setOption_signature(), &args, THREAD);
78 check_pending_exception("Error while calling setOption"); 87 check_pending_exception("Error while calling setOption");
79 return result.get_jboolean(); 88 return result.get_jboolean();
89 }
90
91 void VMExits::setDefaultOptions() {
92 KlassHandle compilerKlass = SystemDictionary::resolve_or_null(vmSymbols::com_sun_hotspot_c1x_HotSpotOptions(), SystemDictionary::java_system_loader(), NULL, Thread::current());
93 check_not_null(compilerKlass(), "Couldn't find class com.sun.hotspot.c1x.HotSpotOptions");
94
95 Thread* THREAD = Thread::current();
96 JavaValue result(T_VOID);
97 JavaCalls::call_static(&result, compilerKlass, vmSymbols::setDefaultOptions_name(), vmSymbols::void_method_signature(), THREAD);
98 check_pending_exception("Error while calling setDefaultOptions");
80 } 99 }
81 100
82 void VMExits::compileMethod(jlong methodVmId, Handle name, int entry_bci) { 101 void VMExits::compileMethod(jlong methodVmId, Handle name, int entry_bci) {
83 assert(!name.is_null(), "just checking"); 102 assert(!name.is_null(), "just checking");
84 Thread* THREAD = Thread::current(); 103 Thread* THREAD = Thread::current();