< prev index next >

src/share/vm/classfile/vmSymbols.cpp

Print this page




 399     break;
 400   default:
 401     return false;
 402   }
 403 }
 404 
 405 int vmIntrinsics::predicates_needed(vmIntrinsics::ID id) {
 406   assert(id != vmIntrinsics::_none, "must be a VM intrinsic");
 407   switch (id) {
 408   case vmIntrinsics::_cipherBlockChaining_encryptAESCrypt:
 409   case vmIntrinsics::_cipherBlockChaining_decryptAESCrypt:
 410   case vmIntrinsics::_counterMode_AESCrypt:
 411     return 1;
 412   case vmIntrinsics::_digestBase_implCompressMB:
 413     return 3;
 414   default:
 415     return 0;
 416   }
 417 }
 418 
































 419 bool vmIntrinsics::is_disabled_by_flags(const methodHandle& method) {
 420   vmIntrinsics::ID id = method->intrinsic_id();





 421   assert(id != vmIntrinsics::_none, "must be a VM intrinsic");
 422 
 423   // -XX:-InlineNatives disables nearly all intrinsics except the ones listed in
 424   // the following switch statement.
 425   if (!InlineNatives) {
 426     switch (id) {
 427     case vmIntrinsics::_indexOfL:
 428     case vmIntrinsics::_indexOfU:
 429     case vmIntrinsics::_indexOfUL:
 430     case vmIntrinsics::_indexOfIL:
 431     case vmIntrinsics::_indexOfIU:
 432     case vmIntrinsics::_indexOfIUL:
 433     case vmIntrinsics::_indexOfU_char:
 434     case vmIntrinsics::_compareToL:
 435     case vmIntrinsics::_compareToU:
 436     case vmIntrinsics::_compareToLU:
 437     case vmIntrinsics::_compareToUL:
 438     case vmIntrinsics::_equalsL:
 439     case vmIntrinsics::_equalsU:
 440     case vmIntrinsics::_equalsC:




 399     break;
 400   default:
 401     return false;
 402   }
 403 }
 404 
 405 int vmIntrinsics::predicates_needed(vmIntrinsics::ID id) {
 406   assert(id != vmIntrinsics::_none, "must be a VM intrinsic");
 407   switch (id) {
 408   case vmIntrinsics::_cipherBlockChaining_encryptAESCrypt:
 409   case vmIntrinsics::_cipherBlockChaining_decryptAESCrypt:
 410   case vmIntrinsics::_counterMode_AESCrypt:
 411     return 1;
 412   case vmIntrinsics::_digestBase_implCompressMB:
 413     return 3;
 414   default:
 415     return 0;
 416   }
 417 }
 418 
 419 bool vmIntrinsics::is_intrinsic_available(vmIntrinsics::ID id) {
 420   return !vmIntrinsics::is_intrinsic_disabled(id) &&
 421     !vmIntrinsics::is_disabled_by_flags(id);
 422 }
 423 
 424 bool vmIntrinsics::is_intrinsic_disabled(vmIntrinsics::ID id) {
 425   assert(id != vmIntrinsics::_none, "must be a VM intrinsic");
 426 
 427   ResourceMark rm;
 428   ccstr DisableIntrinsicString = DirectiveSet::canonicalize_disableintrinsic(DisableIntrinsic);
 429   // Create a copy of the string that contains the list of disabled
 430   // intrinsics. The copy is created because the string
 431   // will be modified by strtok(). Then, the list is tokenized with
 432   // ',' as a separator.
 433   size_t length = strlen(DisableIntrinsicString);
 434   char* local_list = NEW_RESOURCE_ARRAY(char, length + 1);
 435   strncpy(local_list, DisableIntrinsicString, length + 1);
 436 
 437   char* token = strtok(local_list, ",");
 438   while (token != NULL) {
 439     if (strcmp(token, vmIntrinsics::name_at(id)) == 0) {
 440       return true;
 441     }
 442     else {
 443       token = strtok(NULL, ",");
 444     }
 445   }
 446 
 447   return false;
 448 }
 449 
 450 
 451 bool vmIntrinsics::is_disabled_by_flags(const methodHandle& method) {
 452   vmIntrinsics::ID id = method->intrinsic_id();
 453   assert(id != vmIntrinsics::_none, "must be a VM intrinsic");
 454   return is_disabled_by_flags(id);
 455 }
 456 
 457 bool vmIntrinsics::is_disabled_by_flags(vmIntrinsics::ID id) {
 458   assert(id != vmIntrinsics::_none, "must be a VM intrinsic");
 459 
 460   // -XX:-InlineNatives disables nearly all intrinsics except the ones listed in
 461   // the following switch statement.
 462   if (!InlineNatives) {
 463     switch (id) {
 464     case vmIntrinsics::_indexOfL:
 465     case vmIntrinsics::_indexOfU:
 466     case vmIntrinsics::_indexOfUL:
 467     case vmIntrinsics::_indexOfIL:
 468     case vmIntrinsics::_indexOfIU:
 469     case vmIntrinsics::_indexOfIUL:
 470     case vmIntrinsics::_indexOfU_char:
 471     case vmIntrinsics::_compareToL:
 472     case vmIntrinsics::_compareToU:
 473     case vmIntrinsics::_compareToLU:
 474     case vmIntrinsics::_compareToUL:
 475     case vmIntrinsics::_equalsL:
 476     case vmIntrinsics::_equalsU:
 477     case vmIntrinsics::_equalsC:


< prev index next >