comparison src/share/vm/graal/graalVMToCompiler.cpp @ 13254:42aaf7306707

Teach Graal about Symbol and ConstantPool so we can move more logic into Java. We'll see how that ends...
author twisti
date Thu, 05 Dec 2013 18:13:04 -0800
parents c0b0974dd509
children f13f6dc290c8
comparison
equal deleted inserted replaced
13253:4d1cd29cceb0 13254:42aaf7306707
255 JavaCalls::call_interface(&result, vmToCompilerKlass(), vmSymbols::createResolvedJavaType_name(), vmSymbols::createResolvedJavaType_signature(), &args, THREAD); 255 JavaCalls::call_interface(&result, vmToCompilerKlass(), vmSymbols::createResolvedJavaType_name(), vmSymbols::createResolvedJavaType_signature(), &args, THREAD);
256 check_pending_exception("Error while calling createResolvedJavaType"); 256 check_pending_exception("Error while calling createResolvedJavaType");
257 return (oop) result.get_jobject(); 257 return (oop) result.get_jobject();
258 } 258 }
259 259
260 oop VMToCompiler::createConstant(Handle kind, jlong value, TRAPS) {
261 JavaValue result(T_OBJECT);
262 JavaCallArguments args;
263 args.push_oop(instance());
264 args.push_oop(kind());
265 args.push_long(value);
266 JavaCalls::call_interface(&result, vmToCompilerKlass(), vmSymbols::createConstant_name(), vmSymbols::createConstant_signature(), &args, THREAD);
267 check_pending_exception("Error while calling createConstantFloat");
268 return (oop) result.get_jobject();
269
270 }
271
272 oop VMToCompiler::createConstantFloat(jfloat value, TRAPS) {
273 JavaValue result(T_OBJECT);
274 JavaCallArguments args;
275 args.push_oop(instance());
276 args.push_float(value);
277 JavaCalls::call_interface(&result, vmToCompilerKlass(), vmSymbols::createConstantFloat_name(), vmSymbols::createConstantFloat_signature(), &args, THREAD);
278 check_pending_exception("Error while calling createConstantFloat");
279 return (oop) result.get_jobject();
280
281 }
282
283 oop VMToCompiler::createConstantDouble(jdouble value, TRAPS) {
284 JavaValue result(T_OBJECT);
285 JavaCallArguments args;
286 args.push_oop(instance());
287 args.push_double(value);
288 JavaCalls::call_interface(&result, vmToCompilerKlass(), vmSymbols::createConstantDouble_name(), vmSymbols::createConstantDouble_signature(), &args, THREAD);
289 check_pending_exception("Error while calling createConstantDouble");
290 return (oop) result.get_jobject();
291 }
292
293 oop VMToCompiler::createConstantObject(Handle object, TRAPS) {
294 JavaValue result(T_OBJECT);
295 JavaCallArguments args;
296 KlassHandle klass = loadClass(vmSymbols::com_oracle_graal_api_meta_Constant());
297 JavaCalls::call_static(&result, klass(), vmSymbols::forObject_name(), vmSymbols::createConstantObject_signature(), object, THREAD);
298 check_pending_exception("Error while calling Constant.forObject");
299 return (oop) result.get_jobject();
300 }
301
302 oop VMToCompiler::createLocal(Handle name, Handle typeInfo, int bci_start, int bci_end, int slot, Handle holder, TRAPS) { 260 oop VMToCompiler::createLocal(Handle name, Handle typeInfo, int bci_start, int bci_end, int slot, Handle holder, TRAPS) {
303 JavaValue result(T_OBJECT); 261 JavaValue result(T_OBJECT);
304 JavaCallArguments args; 262 JavaCallArguments args;
305 args.push_oop(instance()); 263 args.push_oop(instance());
306 args.push_oop(name); 264 args.push_oop(name);