Mercurial > hg > truffle
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(); |