src/share/vm/classfile/vmSymbols.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 6893268 Sdiff src/share/vm/classfile

src/share/vm/classfile/vmSymbols.cpp

Print this page
rev 1023 : [mq]: meth.walker.patch
rev 1026 : imported patch indy.compiler.inline.patch


 281     BASIC_TYPE_CASE(T_BYTE,    _Byte_valueOf,      _byteValue);
 282     BASIC_TYPE_CASE(T_CHAR,    _Character_valueOf, _charValue);
 283     BASIC_TYPE_CASE(T_SHORT,   _Short_valueOf,     _shortValue);
 284     BASIC_TYPE_CASE(T_INT,     _Integer_valueOf,   _intValue);
 285     BASIC_TYPE_CASE(T_LONG,    _Long_valueOf,      _longValue);
 286     BASIC_TYPE_CASE(T_FLOAT,   _Float_valueOf,     _floatValue);
 287     BASIC_TYPE_CASE(T_DOUBLE,  _Double_valueOf,    _doubleValue);
 288 #undef BASIC_TYPE_CASE
 289   }
 290 #undef TYPE2
 291   return vmIntrinsics::_none;
 292 }
 293 
 294 vmIntrinsics::ID vmIntrinsics::for_boxing(BasicType type) {
 295   return wrapper_intrinsic(type, false);
 296 }
 297 vmIntrinsics::ID vmIntrinsics::for_unboxing(BasicType type) {
 298   return wrapper_intrinsic(type, true);
 299 }
 300 














 301 methodOop vmIntrinsics::method_for(vmIntrinsics::ID id) {
 302   if (id == _none)  return NULL;
 303   symbolOop cname = vmSymbols::symbol_at(class_for(id));
 304   symbolOop mname = vmSymbols::symbol_at(name_for(id));
 305   symbolOop msig  = vmSymbols::symbol_at(signature_for(id));
 306   if (cname == NULL || mname == NULL || msig == NULL)  return NULL;
 307   klassOop k = SystemDictionary::find_well_known_klass(cname);
 308   if (k == NULL)  return NULL;
 309   return instanceKlass::cast(k)->find_method(mname, msig);
 310 }
 311 
 312 
 313 #define VM_INTRINSIC_INITIALIZE(id, klass, name, sig, flags) #id "\0"
 314 static const char* vm_intrinsic_name_bodies =
 315   VM_INTRINSICS_DO(VM_INTRINSIC_INITIALIZE,
 316                    VM_SYMBOL_IGNORE, VM_SYMBOL_IGNORE, VM_SYMBOL_IGNORE, VM_ALIAS_IGNORE);
 317 
 318 static const char* vm_intrinsic_name_table[vmIntrinsics::ID_LIMIT];
 319 
 320 const char* vmIntrinsics::name_at(vmIntrinsics::ID id) {




 281     BASIC_TYPE_CASE(T_BYTE,    _Byte_valueOf,      _byteValue);
 282     BASIC_TYPE_CASE(T_CHAR,    _Character_valueOf, _charValue);
 283     BASIC_TYPE_CASE(T_SHORT,   _Short_valueOf,     _shortValue);
 284     BASIC_TYPE_CASE(T_INT,     _Integer_valueOf,   _intValue);
 285     BASIC_TYPE_CASE(T_LONG,    _Long_valueOf,      _longValue);
 286     BASIC_TYPE_CASE(T_FLOAT,   _Float_valueOf,     _floatValue);
 287     BASIC_TYPE_CASE(T_DOUBLE,  _Double_valueOf,    _doubleValue);
 288 #undef BASIC_TYPE_CASE
 289   }
 290 #undef TYPE2
 291   return vmIntrinsics::_none;
 292 }
 293 
 294 vmIntrinsics::ID vmIntrinsics::for_boxing(BasicType type) {
 295   return wrapper_intrinsic(type, false);
 296 }
 297 vmIntrinsics::ID vmIntrinsics::for_unboxing(BasicType type) {
 298   return wrapper_intrinsic(type, true);
 299 }
 300 
 301 vmIntrinsics::ID vmIntrinsics::for_raw_conversion(BasicType src, BasicType dest) {
 302 #define SRC_DEST(s,d) (((int)(s) << 4) + (int)(d))
 303   switch (SRC_DEST(src, dest)) {
 304   case SRC_DEST(T_INT, T_FLOAT):   return vmIntrinsics::_intBitsToFloat;
 305   case SRC_DEST(T_FLOAT, T_INT):   return vmIntrinsics::_floatToRawIntBits;
 306 
 307   case SRC_DEST(T_LONG, T_DOUBLE): return vmIntrinsics::_longBitsToDouble;
 308   case SRC_DEST(T_DOUBLE, T_LONG): return vmIntrinsics::_doubleToRawLongBits;
 309   }
 310 #undef SRC_DEST
 311 
 312   return vmIntrinsics::_none;
 313 }
 314 
 315 methodOop vmIntrinsics::method_for(vmIntrinsics::ID id) {
 316   if (id == _none)  return NULL;
 317   symbolOop cname = vmSymbols::symbol_at(class_for(id));
 318   symbolOop mname = vmSymbols::symbol_at(name_for(id));
 319   symbolOop msig  = vmSymbols::symbol_at(signature_for(id));
 320   if (cname == NULL || mname == NULL || msig == NULL)  return NULL;
 321   klassOop k = SystemDictionary::find_well_known_klass(cname);
 322   if (k == NULL)  return NULL;
 323   return instanceKlass::cast(k)->find_method(mname, msig);
 324 }
 325 
 326 
 327 #define VM_INTRINSIC_INITIALIZE(id, klass, name, sig, flags) #id "\0"
 328 static const char* vm_intrinsic_name_bodies =
 329   VM_INTRINSICS_DO(VM_INTRINSIC_INITIALIZE,
 330                    VM_SYMBOL_IGNORE, VM_SYMBOL_IGNORE, VM_SYMBOL_IGNORE, VM_ALIAS_IGNORE);
 331 
 332 static const char* vm_intrinsic_name_table[vmIntrinsics::ID_LIMIT];
 333 
 334 const char* vmIntrinsics::name_at(vmIntrinsics::ID id) {


src/share/vm/classfile/vmSymbols.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File