Mercurial > hg > truffle
diff src/share/vm/c1x/c1x_VMExits.cpp @ 1429:abc670a709dc
* -XX:TraceC1X=0...5 controls the native c1x tracing
* -Dc1x.debug=true turns on the logging proxies and lots of log output on the java side
* provide more information about types to the compiler (type hierarchy, etc)
* provide exception handler tables to the compiler
* add exception handlers to the nmethod
* correct implementation of ExceptionObject
* exception handling/unwinding entry points
* modified versions of handle/unwind exception stubs using standard calling conventions
* exception throwing
* implicit null pointer exception, implicit div by 0 exception
* arraystore/classcast/arrayindex exceptions
* checkcast implementation
* newarray, anewarray, multinewarray implementation
* correct new instance initialization
* access to java class mirrors (for ldc)
* unresolved methods
* class resolving - class patching (asssembly prototype copying)
author | Lukas Stadler <lukas.stadler@oracle.com> |
---|---|
date | Tue, 31 Aug 2010 22:13:30 -0700 |
parents | 760213a60e8b |
children | b61a43cd1255 |
line wrap: on
line diff
--- a/src/share/vm/c1x/c1x_VMExits.cpp Thu Aug 19 14:34:52 2010 -0700 +++ b/src/share/vm/c1x/c1x_VMExits.cpp Tue Aug 31 22:13:30 2010 -0700 @@ -75,15 +75,28 @@ _vmExitsObject = Handle(); } -oop VMExits::createRiMethod(jlong vmId, Handle name, TRAPS) { +oop VMExits::createRiMethodResolved(jlong vmId, Handle name, TRAPS) { assert(!name.is_null(), "just checking"); JavaValue result(T_OBJECT); JavaCallArguments args; args.push_oop(instance()); args.push_long(vmId); args.push_oop(name); - JavaCalls::call_interface(&result, vmExitsKlass(), vmSymbols::createRiMethod_name(), vmSymbols::createRiMethod_signature(), &args, THREAD); - check_pending_exception("Error while calling createRiMethod"); + JavaCalls::call_interface(&result, vmExitsKlass(), vmSymbols::createRiMethodResolved_name(), vmSymbols::createRiMethodResolved_signature(), &args, THREAD); + check_pending_exception("Error while calling createRiMethodResolved"); + return (oop)result.get_jobject(); +} + +oop VMExits::createRiMethodUnresolved(Handle name, Handle signature, Handle holder, TRAPS) { + assert(!name.is_null(), "just checking"); + JavaValue result(T_OBJECT); + JavaCallArguments args; + args.push_oop(instance()); + args.push_oop(name); + args.push_oop(signature); + args.push_oop(holder); + JavaCalls::call_interface(&result, vmExitsKlass(), vmSymbols::createRiMethodUnresolved_name(), vmSymbols::createRiMethodUnresolved_signature(), &args, THREAD); + check_pending_exception("Error while calling createRiMethodUnresolved"); return (oop)result.get_jobject(); }