hotspot/src/share/vm/opto/library_call.cpp
changeset 26412 80741eb33ba2
parent 26180 2fbed11af70e
child 26442 2944daffe62a
equal deleted inserted replaced
26408:d6defe172e25 26412:80741eb33ba2
   834   case vmIntrinsics::_getModifiers:
   834   case vmIntrinsics::_getModifiers:
   835   case vmIntrinsics::_isInterface:
   835   case vmIntrinsics::_isInterface:
   836   case vmIntrinsics::_isArray:
   836   case vmIntrinsics::_isArray:
   837   case vmIntrinsics::_isPrimitive:
   837   case vmIntrinsics::_isPrimitive:
   838   case vmIntrinsics::_getSuperclass:
   838   case vmIntrinsics::_getSuperclass:
   839   case vmIntrinsics::_getComponentType:
       
   840   case vmIntrinsics::_getClassAccessFlags:      return inline_native_Class_query(intrinsic_id());
   839   case vmIntrinsics::_getClassAccessFlags:      return inline_native_Class_query(intrinsic_id());
   841 
   840 
   842   case vmIntrinsics::_floatToRawIntBits:
   841   case vmIntrinsics::_floatToRawIntBits:
   843   case vmIntrinsics::_floatToIntBits:
   842   case vmIntrinsics::_floatToIntBits:
   844   case vmIntrinsics::_intBitsToFloat:
   843   case vmIntrinsics::_intBitsToFloat:
  3398     break;
  3397     break;
  3399   case vmIntrinsics::_getSuperclass:
  3398   case vmIntrinsics::_getSuperclass:
  3400     prim_return_value = null();
  3399     prim_return_value = null();
  3401     return_type = TypeInstPtr::MIRROR->cast_to_ptr_type(TypePtr::BotPTR);
  3400     return_type = TypeInstPtr::MIRROR->cast_to_ptr_type(TypePtr::BotPTR);
  3402     break;
  3401     break;
  3403   case vmIntrinsics::_getComponentType:
       
  3404     prim_return_value = null();
       
  3405     return_type = TypeInstPtr::MIRROR->cast_to_ptr_type(TypePtr::BotPTR);
       
  3406     break;
       
  3407   case vmIntrinsics::_getClassAccessFlags:
  3402   case vmIntrinsics::_getClassAccessFlags:
  3408     prim_return_value = intcon(JVM_ACC_ABSTRACT | JVM_ACC_FINAL | JVM_ACC_PUBLIC);
  3403     prim_return_value = intcon(JVM_ACC_ABSTRACT | JVM_ACC_FINAL | JVM_ACC_PUBLIC);
  3409     return_type = TypeInt::INT;  // not bool!  6297094
  3404     return_type = TypeInt::INT;  // not bool!  6297094
  3410     break;
  3405     break;
  3411   default:
  3406   default:
  3516       phi   ->add_req(null());
  3511       phi   ->add_req(null());
  3517     }
  3512     }
  3518     if (!stopped()) {
  3513     if (!stopped()) {
  3519       query_value = load_mirror_from_klass(kls);
  3514       query_value = load_mirror_from_klass(kls);
  3520     }
  3515     }
  3521     break;
       
  3522 
       
  3523   case vmIntrinsics::_getComponentType:
       
  3524     if (generate_array_guard(kls, region) != NULL) {
       
  3525       // Be sure to pin the oop load to the guard edge just created:
       
  3526       Node* is_array_ctrl = region->in(region->req()-1);
       
  3527       Node* cma = basic_plus_adr(kls, in_bytes(ArrayKlass::component_mirror_offset()));
       
  3528       Node* cmo = make_load(is_array_ctrl, cma, TypeInstPtr::MIRROR, T_OBJECT, MemNode::unordered);
       
  3529       phi->add_req(cmo);
       
  3530     }
       
  3531     query_value = null();  // non-array case is null
       
  3532     break;
  3516     break;
  3533 
  3517 
  3534   case vmIntrinsics::_getClassAccessFlags:
  3518   case vmIntrinsics::_getClassAccessFlags:
  3535     p = basic_plus_adr(kls, in_bytes(Klass::access_flags_offset()));
  3519     p = basic_plus_adr(kls, in_bytes(Klass::access_flags_offset()));
  3536     query_value = make_load(NULL, p, TypeInt::INT, T_INT, MemNode::unordered);
  3520     query_value = make_load(NULL, p, TypeInt::INT, T_INT, MemNode::unordered);