comparison src/share/vm/c1x/c1x_VMExits.hpp @ 1423:760213a60e8b

* rewrite of the code installation * partial support for safepoints * macro-based CiTargetMethod interface * code stub support
author Lukas Stadler <lukas.stadler@oracle.com>
date Mon, 16 Aug 2010 18:59:36 -0700
parents 3483ec571caf
children abc670a709dc
comparison
equal deleted inserted replaced
1422:3483ec571caf 1423:760213a60e8b
19 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, 19 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
20 * CA 95054 USA or visit www.sun.com if you need additional information or 20 * CA 95054 USA or visit www.sun.com if you need additional information or
21 * have any questions. 21 * have any questions.
22 * 22 *
23 */ 23 */
24 /*
25 class OopCache : public AllStatic {
26 24
27 private:
28 static Handle* handles;
29 static Handle* mirrors;
30 static int capacity;
31 static int used;
32
33 public:
34 static void initialize();
35 static Handle mirror(oop internal_object);
36 static Handle resolve(oop mirror);
37
38 };
39 */
40 class VMExits : public AllStatic { 25 class VMExits : public AllStatic {
41 26
42 private: 27 private:
43
44 static KlassHandle _vmExitsKlass; 28 static KlassHandle _vmExitsKlass;
45 static Handle _vmExitsObject; 29 static Handle _vmExitsObject;
46 30 static jobject _vmExitsPermObject;
47 public:
48 31
49 static KlassHandle& vmExitsKlass(); 32 static KlassHandle& vmExitsKlass();
50 static Handle& instance(); 33 static Handle& instance();
51 34
35 public:
52 36
53 static void compileMethod(methodOop method, int entry_bci); 37 // public abstract void compileMethod(HotSpotProxy method, String name, int entry_bci);
38 static void compileMethod(jlong vmId, Handle name, int entry_bci);
54 39
55 static oop createRiMethod(methodOop method, TRAPS); 40 // public abstract RiMethod createRiMethod(HotSpotProxy method, String name);
56 static oop createRiField(oop field_holder, symbolOop field_name, oop field_type, int index, TRAPS); 41 static oop createRiMethod(jlong vmId, Handle name, TRAPS);
57 static oop createRiType(klassOop k, TRAPS); 42
58 static oop createRiConstantPool(constantPoolOop cp, TRAPS); 43 // public abstract RiField createRiField(RiType holder, String name, RiType type, int offset);
59 static oop createRiTypeUnresolved(symbolOop name, klassOop accessor, TRAPS); 44 static oop createRiField(Handle holder, Handle name, Handle type, int index, TRAPS);
60 static oop createRiSignature(symbolOop name, TRAPS); 45
46 // public abstract RiType createRiType(HotSpotProxy klassOop, String name);
47 static oop createRiType(jlong vmId, Handle name, TRAPS);
48
49 // public abstract RiConstantPool createRiConstantPool(HotSpotProxy constantPool);
50 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
55 // public abstract RiType createRiTypePrimitive(int basicType);
56 static oop createRiTypePrimitive(int basicType, TRAPS);
57
58 // public abstract RiSignature createRiSignature(String signature);
59 static oop createRiSignature(Handle name, TRAPS);
60
61 // public abstract CiConstant createCiConstantInt(int value);
61 static oop createCiConstantInt(jint value, TRAPS); 62 static oop createCiConstantInt(jint value, TRAPS);
63
64 // public abstract CiConstant createCiConstantLong(long value);
62 static oop createCiConstantLong(jlong value, TRAPS); 65 static oop createCiConstantLong(jlong value, TRAPS);
66
67 // public abstract CiConstant createCiConstantFloat(float value);
63 static oop createCiConstantFloat(jfloat value, TRAPS); 68 static oop createCiConstantFloat(jfloat value, TRAPS);
69
70 // public abstract CiConstant createCiConstantDouble(double value);
64 static oop createCiConstantDouble(jdouble value, TRAPS); 71 static oop createCiConstantDouble(jdouble value, TRAPS);
65 static oop createCiConstantObject(oop value, TRAPS); 72
66 static oop createRiTypePrimitive(int basic_type, TRAPS); 73 // public abstract CiConstant createCiConstantObject(HotSpotProxy value);
74 static oop createCiConstantObject(jlong vmId, TRAPS);
67 }; 75 };
68 76
69 inline void check_pending_exception(const char* message) { 77 inline void check_pending_exception(const char* message) {
70 if (Thread::current()->has_pending_exception()) { 78 if (Thread::current()->has_pending_exception()) {
71 Thread::current()->pending_exception()->print(); 79 Thread::current()->pending_exception()->print();