Mercurial > hg > graal-jvmci-8
diff src/share/vm/c1x/c1x_Compiler.hpp @ 1422:3483ec571caf
* using reflected objects instead of oops
* removed scratch from allocatable registers
* instanceof xir snippet
* arraylength xir snippet
* exceptionobject xir snippet
* VMEntries and VMExits as interfaces
* calls to VMEntries and VMExits are routet through logging proxies
author | Lukas Stadler <lukas.stadler@oracle.com> |
---|---|
date | Mon, 02 Aug 2010 15:44:38 -0700 |
parents | 6223633ce7dd |
children | 760213a60e8b |
line wrap: on
line diff
--- a/src/share/vm/c1x/c1x_Compiler.hpp Fri Jul 23 15:53:02 2010 -0700 +++ b/src/share/vm/c1x/c1x_Compiler.hpp Mon Aug 02 15:44:38 2010 -0700 @@ -32,33 +32,58 @@ C1XCompiler() { _initialized = false; } - virtual const char* name() { return "C1X"; } + virtual const char* name() { return "C1X"; } - // Native / OSR not supported - virtual bool supports_native() { return false; } - virtual bool supports_osr () { return false; } + // Native / OSR not supported + virtual bool supports_native() { return false; } + virtual bool supports_osr () { return false; } + + // Pretend to be C1 + bool is_c1 () { return true; } + bool is_c2 () { return false; } - // Pretend to be C1 - bool is_c1 () { return true; } - bool is_c2 () { return false; } + // Initialization + virtual void initialize(); + + // Compilation entry point for methods + virtual void compile_method(ciEnv* env, ciMethod* target, int entry_bci); - // Initialization - virtual void initialize(); + // Print compilation timers and statistics + virtual void print_timers(); + + static oop get_RiType(oop klass, klassOop accessingType, TRAPS); + static oop get_RiType(ciType *klass, klassOop accessor, TRAPS); + static oop get_RiField(ciField *ciField, TRAPS); - // Compilation entry point for methods - virtual void compile_method(ciEnv* env, ciMethod* target, int entry_bci); +/* + static oop get_RiMethod(ciMethod *ciMethod, TRAPS); + static oop get_RiType(klassOop klass, TRAPS); + static oop get_RiMethod(methodOop method, TRAPS); + static oop get_unresolved_RiType(oop klass, klassOop accessingType, TRAPS); + static oop get_RiConstantPool(constantPoolOop cpOop, TRAPS); +*/ +}; - // Print compilation timers and statistics - virtual void print_timers(); +class C1XObjects : public AllStatic { - static oop get_RiMethod(ciMethod *ciMethod); - static oop get_RiField(ciField *ciField); - static oop get_RiType(ciType *klass); - static oop get_RiType(klassOop klass); - static oop get_RiMethod(methodOop method); - static oop get_RiType(symbolOop klass, klassOop accessingType); - static oop get_unresolved_RiType(symbolOop klass, klassOop accessingType); - static oop get_RiConstantPool(constantPoolOop cpOop); +public: + static oop getReflectedMethod(methodOop method, TRAPS); + static oop getReflectedClass(klassOop klass); + static oop getReflectedSymbol(symbolOop symbol, TRAPS); + + static methodOop getInternalMethod(oop method); + static klassOop getInternalClass(oop klass); + static symbolOop getInternalSymbol(oop string); + + static methodOop getInternalMethod(jobject method) { + return getInternalMethod(JNIHandles::resolve(method)); + } + static klassOop getInternalClass(jobject klass) { + return getInternalClass(JNIHandles::resolve(klass)); + } + static symbolOop getInternalSymbol(jobject string) { + return getInternalSymbol(JNIHandles::resolve(string)); + } }; // Tracing macros