< prev index next >

src/share/vm/jvmci/jvmciCompilerToVM.hpp

Print this page




  80 
  81   static inline Klass* asKlass(jobject jvmci_type) {
  82     return java_lang_Class::as_Klass(HotSpotResolvedObjectTypeImpl::javaClass(jvmci_type));
  83   }
  84 
  85   static inline Klass* asKlass(Handle jvmci_type) {
  86     return java_lang_Class::as_Klass(HotSpotResolvedObjectTypeImpl::javaClass(jvmci_type));
  87   }
  88 
  89   static inline Klass* asKlass(oop jvmci_type) {
  90     return java_lang_Class::as_Klass(HotSpotResolvedObjectTypeImpl::javaClass(jvmci_type));
  91   }
  92 
  93   static inline MethodData* asMethodData(jlong metaspaceMethodData) {
  94     return (MethodData*) (address) metaspaceMethodData;
  95   }
  96 
  97   static oop get_jvmci_method(methodHandle method, TRAPS);
  98 
  99   static oop get_jvmci_type(KlassHandle klass, TRAPS);


 100 };
 101 
 102 class JavaArgumentUnboxer : public SignatureIterator {
 103  protected:
 104   JavaCallArguments*  _jca;
 105   arrayOop _args;
 106   int _index;
 107 
 108   oop next_arg(BasicType expectedType) {
 109     assert(_index < _args->length(), "out of bounds");
 110     oop arg=((objArrayOop) (_args))->obj_at(_index++);
 111     assert(expectedType == T_OBJECT || java_lang_boxing_object::is_instance(arg, expectedType), "arg type mismatch");
 112     return arg;
 113   }
 114 
 115  public:
 116   JavaArgumentUnboxer(Symbol* signature, JavaCallArguments*  jca, arrayOop args, bool is_static) : SignatureIterator(signature) {
 117     this->_return_type = T_ILLEGAL;
 118     _jca = jca;
 119     _index = 0;




  80 
  81   static inline Klass* asKlass(jobject jvmci_type) {
  82     return java_lang_Class::as_Klass(HotSpotResolvedObjectTypeImpl::javaClass(jvmci_type));
  83   }
  84 
  85   static inline Klass* asKlass(Handle jvmci_type) {
  86     return java_lang_Class::as_Klass(HotSpotResolvedObjectTypeImpl::javaClass(jvmci_type));
  87   }
  88 
  89   static inline Klass* asKlass(oop jvmci_type) {
  90     return java_lang_Class::as_Klass(HotSpotResolvedObjectTypeImpl::javaClass(jvmci_type));
  91   }
  92 
  93   static inline MethodData* asMethodData(jlong metaspaceMethodData) {
  94     return (MethodData*) (address) metaspaceMethodData;
  95   }
  96 
  97   static oop get_jvmci_method(methodHandle method, TRAPS);
  98 
  99   static oop get_jvmci_type(KlassHandle klass, TRAPS);
 100 
 101   static void invalidate_installed_code(Handle installedCode, TRAPS);
 102 };
 103 
 104 class JavaArgumentUnboxer : public SignatureIterator {
 105  protected:
 106   JavaCallArguments*  _jca;
 107   arrayOop _args;
 108   int _index;
 109 
 110   oop next_arg(BasicType expectedType) {
 111     assert(_index < _args->length(), "out of bounds");
 112     oop arg=((objArrayOop) (_args))->obj_at(_index++);
 113     assert(expectedType == T_OBJECT || java_lang_boxing_object::is_instance(arg, expectedType), "arg type mismatch");
 114     return arg;
 115   }
 116 
 117  public:
 118   JavaArgumentUnboxer(Symbol* signature, JavaCallArguments*  jca, arrayOop args, bool is_static) : SignatureIterator(signature) {
 119     this->_return_type = T_ILLEGAL;
 120     _jca = jca;
 121     _index = 0;


< prev index next >