Mercurial > hg > truffle
comparison src/share/vm/classfile/javaClasses.hpp @ 1507:cd5dbf694d45
6939134: JSR 292 adjustments to method handle invocation
Summary: split MethodHandle.invoke into invokeExact and invokeGeneric; also clean up JVM-to-Java interfaces
Reviewed-by: twisti
author | jrose |
---|---|
date | Sat, 01 May 2010 02:42:18 -0700 |
parents | 4ce7240d622c |
children | c18cbe5936b8 |
comparison
equal
deleted
inserted
replaced
1506:2338d41fbd81 | 1507:cd5dbf694d45 |
---|---|
1066 | 1066 |
1067 class java_dyn_CallSite: AllStatic { | 1067 class java_dyn_CallSite: AllStatic { |
1068 friend class JavaClasses; | 1068 friend class JavaClasses; |
1069 | 1069 |
1070 private: | 1070 private: |
1071 static int _type_offset; | |
1072 static int _target_offset; | 1071 static int _target_offset; |
1073 static int _vmmethod_offset; | 1072 static int _caller_method_offset; |
1073 static int _caller_bci_offset; | |
1074 | 1074 |
1075 static void compute_offsets(); | 1075 static void compute_offsets(); |
1076 | 1076 |
1077 public: | 1077 public: |
1078 // Accessors | 1078 // Accessors |
1079 static oop type(oop site); | |
1080 | |
1081 static oop target(oop site); | 1079 static oop target(oop site); |
1082 static void set_target(oop site, oop target); | 1080 static void set_target(oop site, oop target); |
1083 | 1081 |
1084 static oop vmmethod(oop site); | 1082 static oop caller_method(oop site); |
1085 static void set_vmmethod(oop site, oop ref); | 1083 static void set_caller_method(oop site, oop ref); |
1084 | |
1085 static jint caller_bci(oop site); | |
1086 static void set_caller_bci(oop site, jint bci); | |
1086 | 1087 |
1087 // Testers | 1088 // Testers |
1088 static bool is_subclass(klassOop klass) { | 1089 static bool is_subclass(klassOop klass) { |
1089 return Klass::cast(klass)->is_subclass_of(SystemDictionary::CallSite_klass()); | 1090 return Klass::cast(klass)->is_subclass_of(SystemDictionary::CallSite_klass()); |
1090 } | 1091 } |
1092 return obj != NULL && is_subclass(obj->klass()); | 1093 return obj != NULL && is_subclass(obj->klass()); |
1093 } | 1094 } |
1094 | 1095 |
1095 // Accessors for code generation: | 1096 // Accessors for code generation: |
1096 static int target_offset_in_bytes() { return _target_offset; } | 1097 static int target_offset_in_bytes() { return _target_offset; } |
1097 static int type_offset_in_bytes() { return _type_offset; } | 1098 static int caller_method_offset_in_bytes() { return _caller_method_offset; } |
1098 static int vmmethod_offset_in_bytes() { return _vmmethod_offset; } | 1099 static int caller_bci_offset_in_bytes() { return _caller_bci_offset; } |
1099 }; | 1100 }; |
1100 | 1101 |
1101 | 1102 |
1102 // Interface to java.security.AccessControlContext objects | 1103 // Interface to java.security.AccessControlContext objects |
1103 | 1104 |