comparison src/share/vm/c1x/c1x_VMExits.hpp @ 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 9e5e83ca2259
comparison
equal deleted inserted replaced
1428:695451afc619 1429:abc670a709dc
32 static KlassHandle& vmExitsKlass(); 32 static KlassHandle& vmExitsKlass();
33 static Handle& instance(); 33 static Handle& instance();
34 34
35 public: 35 public:
36 36
37 // public abstract void compileMethod(HotSpotProxy method, String name, int entry_bci); 37 // public abstract void compileMethod(long vmId, String name, int entry_bci);
38 static void compileMethod(jlong vmId, Handle name, int entry_bci); 38 static void compileMethod(jlong vmId, Handle name, int entry_bci);
39 39
40 // public abstract RiMethod createRiMethod(HotSpotProxy method, String name); 40 // public abstract RiMethod createRiMethodResolved(long vmId, String name);
41 static oop createRiMethod(jlong vmId, Handle name, TRAPS); 41 static oop createRiMethodResolved(jlong vmId, Handle name, TRAPS);
42
43 // public abstract RiMethod createRiMethodUnresolved(String name, String signature, RiType holder);
44 static oop createRiMethodUnresolved(Handle name, Handle signature, Handle holder, TRAPS);
42 45
43 // public abstract RiField createRiField(RiType holder, String name, RiType type, int offset); 46 // public abstract RiField createRiField(RiType holder, String name, RiType type, int offset);
44 static oop createRiField(Handle holder, Handle name, Handle type, int index, TRAPS); 47 static oop createRiField(Handle holder, Handle name, Handle type, int index, TRAPS);
45 48
46 // public abstract RiType createRiType(HotSpotProxy klassOop, String name); 49 // public abstract RiType createRiType(long vmId, String name);
47 static oop createRiType(jlong vmId, Handle name, TRAPS); 50 static oop createRiType(jlong vmId, Handle name, TRAPS);
48 51
49 // public abstract RiConstantPool createRiConstantPool(HotSpotProxy constantPool); 52 // public abstract RiType createRiTypeUnresolved(String name, long accessingClassVmId);
53 static oop createRiTypeUnresolved(Handle name, jlong accessingClassVmId, TRAPS);
54
55 // public abstract RiConstantPool createRiConstantPool(long vmId);
50 static oop createRiConstantPool(jlong vmId, TRAPS); 56 static oop createRiConstantPool(jlong vmId, TRAPS);
51
52 // public abstract RiType createRiTypeUnresolved(String name, HotSpotProxy accessingKlass);
53 static oop createRiTypeUnresolved(Handle name, jlong accessingClassVmId, TRAPS);
54 57
55 // public abstract RiType createRiTypePrimitive(int basicType); 58 // public abstract RiType createRiTypePrimitive(int basicType);
56 static oop createRiTypePrimitive(int basicType, TRAPS); 59 static oop createRiTypePrimitive(int basicType, TRAPS);
57 60
58 // public abstract RiSignature createRiSignature(String signature); 61 // public abstract RiSignature createRiSignature(String signature);
68 static oop createCiConstantFloat(jfloat value, TRAPS); 71 static oop createCiConstantFloat(jfloat value, TRAPS);
69 72
70 // public abstract CiConstant createCiConstantDouble(double value); 73 // public abstract CiConstant createCiConstantDouble(double value);
71 static oop createCiConstantDouble(jdouble value, TRAPS); 74 static oop createCiConstantDouble(jdouble value, TRAPS);
72 75
73 // public abstract CiConstant createCiConstantObject(HotSpotProxy value); 76 // public abstract CiConstant createCiConstantObject(long vmId);
74 static oop createCiConstantObject(jlong vmId, TRAPS); 77 static oop createCiConstantObject(jlong vmId, TRAPS);
75 }; 78 };
76 79
77 inline void check_pending_exception(const char* message) { 80 inline void check_pending_exception(const char* message) {
78 if (Thread::current()->has_pending_exception()) { 81 if (Thread::current()->has_pending_exception()) {