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

Split Close
Expand all
Collapse all
          --- old/src/share/vm/classfile/vmSymbols.cpp
          +++ new/src/share/vm/classfile/vmSymbols.cpp
↓ open down ↓ 290 lines elided ↑ open up ↑
 291  291    return vmIntrinsics::_none;
 292  292  }
 293  293  
 294  294  vmIntrinsics::ID vmIntrinsics::for_boxing(BasicType type) {
 295  295    return wrapper_intrinsic(type, false);
 296  296  }
 297  297  vmIntrinsics::ID vmIntrinsics::for_unboxing(BasicType type) {
 298  298    return wrapper_intrinsic(type, true);
 299  299  }
 300  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 +
 301  315  methodOop vmIntrinsics::method_for(vmIntrinsics::ID id) {
 302  316    if (id == _none)  return NULL;
 303  317    symbolOop cname = vmSymbols::symbol_at(class_for(id));
 304  318    symbolOop mname = vmSymbols::symbol_at(name_for(id));
 305  319    symbolOop msig  = vmSymbols::symbol_at(signature_for(id));
 306  320    if (cname == NULL || mname == NULL || msig == NULL)  return NULL;
 307  321    klassOop k = SystemDictionary::find_well_known_klass(cname);
 308  322    if (k == NULL)  return NULL;
 309  323    return instanceKlass::cast(k)->find_method(mname, msig);
 310  324  }
↓ open down ↓ 214 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX