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