src/share/vm/classfile/vmSymbols.cpp

Print this page




 338   case vmIntrinsics::_intBitsToFloat:
 339   case vmIntrinsics::_doubleToRawLongBits:
 340   case vmIntrinsics::_longBitsToDouble:
 341   case vmIntrinsics::_getClass:
 342   case vmIntrinsics::_isInstance:
 343   case vmIntrinsics::_currentThread:
 344   case vmIntrinsics::_dabs:
 345   case vmIntrinsics::_dsqrt:
 346   case vmIntrinsics::_dsin:
 347   case vmIntrinsics::_dcos:
 348   case vmIntrinsics::_dtan:
 349   case vmIntrinsics::_dlog:
 350   case vmIntrinsics::_dlog10:
 351   case vmIntrinsics::_dexp:
 352   case vmIntrinsics::_dpow:
 353   case vmIntrinsics::_checkIndex:
 354   case vmIntrinsics::_Reference_get:
 355   case vmIntrinsics::_updateCRC32:
 356   case vmIntrinsics::_updateBytesCRC32:
 357   case vmIntrinsics::_updateByteBufferCRC32:

 358     return true;
 359   default:
 360     return false;
 361   }
 362 }
 363 
 364 bool vmIntrinsics::can_trap(vmIntrinsics::ID id) {
 365   assert(id != vmIntrinsics::_none, "must be a VM intrinsic");
 366   switch(id) {
 367 #ifdef TRACE_HAVE_INTRINSICS
 368   case vmIntrinsics::_counterTime:
 369 #endif
 370   case vmIntrinsics::_currentTimeMillis:
 371   case vmIntrinsics::_nanoTime:
 372   case vmIntrinsics::_floatToRawIntBits:
 373   case vmIntrinsics::_intBitsToFloat:
 374   case vmIntrinsics::_doubleToRawLongBits:
 375   case vmIntrinsics::_longBitsToDouble:
 376   case vmIntrinsics::_currentThread:
 377   case vmIntrinsics::_dabs:
 378   case vmIntrinsics::_dsqrt:
 379   case vmIntrinsics::_dsin:
 380   case vmIntrinsics::_dcos:
 381   case vmIntrinsics::_dtan:
 382   case vmIntrinsics::_dlog:
 383   case vmIntrinsics::_dlog10:
 384   case vmIntrinsics::_dexp:
 385   case vmIntrinsics::_dpow:
 386   case vmIntrinsics::_updateCRC32:
 387   case vmIntrinsics::_updateBytesCRC32:
 388   case vmIntrinsics::_updateByteBufferCRC32:

 389     return false;
 390   default:
 391     return true;
 392   }
 393 }
 394 
 395 bool vmIntrinsics::does_virtual_dispatch(vmIntrinsics::ID id) {
 396   assert(id != vmIntrinsics::_none, "must be a VM intrinsic");
 397   switch(id) {
 398   case vmIntrinsics::_hashCode:
 399   case vmIntrinsics::_clone:
 400     return true;
 401     break;
 402   default:
 403     return false;
 404   }
 405 }
 406 
 407 int vmIntrinsics::predicates_needed(vmIntrinsics::ID id) {
 408   assert(id != vmIntrinsics::_none, "must be a VM intrinsic");


 664     if (!SpecialEncodeISOArray) return true;
 665     break;
 666   case vmIntrinsics::_getCallerClass:
 667     if (!InlineReflectionGetCallerClass) return true;
 668     break;
 669   case vmIntrinsics::_multiplyToLen:
 670     if (!UseMultiplyToLenIntrinsic) return true;
 671     break;
 672   case vmIntrinsics::_squareToLen:
 673     if (!UseSquareToLenIntrinsic) return true;
 674     break;
 675   case vmIntrinsics::_mulAdd:
 676     if (!UseMulAddIntrinsic) return true;
 677     break;
 678   case vmIntrinsics::_montgomeryMultiply:
 679     if (!UseMontgomeryMultiplyIntrinsic) return true;
 680     break;
 681   case vmIntrinsics::_montgomerySquare:
 682     if (!UseMontgomerySquareIntrinsic) return true;
 683     break;



 684   case vmIntrinsics::_addExactI:
 685   case vmIntrinsics::_addExactL:
 686   case vmIntrinsics::_decrementExactI:
 687   case vmIntrinsics::_decrementExactL:
 688   case vmIntrinsics::_incrementExactI:
 689   case vmIntrinsics::_incrementExactL:
 690   case vmIntrinsics::_multiplyExactI:
 691   case vmIntrinsics::_multiplyExactL:
 692   case vmIntrinsics::_negateExactI:
 693   case vmIntrinsics::_negateExactL:
 694   case vmIntrinsics::_subtractExactI:
 695   case vmIntrinsics::_subtractExactL:
 696     if (!UseMathExactIntrinsics || !InlineMathNatives) return true;
 697     break;
 698 #endif // COMPILER2
 699   default:
 700     return false;
 701   }
 702 
 703   return false;




 338   case vmIntrinsics::_intBitsToFloat:
 339   case vmIntrinsics::_doubleToRawLongBits:
 340   case vmIntrinsics::_longBitsToDouble:
 341   case vmIntrinsics::_getClass:
 342   case vmIntrinsics::_isInstance:
 343   case vmIntrinsics::_currentThread:
 344   case vmIntrinsics::_dabs:
 345   case vmIntrinsics::_dsqrt:
 346   case vmIntrinsics::_dsin:
 347   case vmIntrinsics::_dcos:
 348   case vmIntrinsics::_dtan:
 349   case vmIntrinsics::_dlog:
 350   case vmIntrinsics::_dlog10:
 351   case vmIntrinsics::_dexp:
 352   case vmIntrinsics::_dpow:
 353   case vmIntrinsics::_checkIndex:
 354   case vmIntrinsics::_Reference_get:
 355   case vmIntrinsics::_updateCRC32:
 356   case vmIntrinsics::_updateBytesCRC32:
 357   case vmIntrinsics::_updateByteBufferCRC32:
 358   case vmIntrinsics::_onSpinWait:
 359     return true;
 360   default:
 361     return false;
 362   }
 363 }
 364 
 365 bool vmIntrinsics::can_trap(vmIntrinsics::ID id) {
 366   assert(id != vmIntrinsics::_none, "must be a VM intrinsic");
 367   switch(id) {
 368 #ifdef TRACE_HAVE_INTRINSICS
 369   case vmIntrinsics::_counterTime:
 370 #endif
 371   case vmIntrinsics::_currentTimeMillis:
 372   case vmIntrinsics::_nanoTime:
 373   case vmIntrinsics::_floatToRawIntBits:
 374   case vmIntrinsics::_intBitsToFloat:
 375   case vmIntrinsics::_doubleToRawLongBits:
 376   case vmIntrinsics::_longBitsToDouble:
 377   case vmIntrinsics::_currentThread:
 378   case vmIntrinsics::_dabs:
 379   case vmIntrinsics::_dsqrt:
 380   case vmIntrinsics::_dsin:
 381   case vmIntrinsics::_dcos:
 382   case vmIntrinsics::_dtan:
 383   case vmIntrinsics::_dlog:
 384   case vmIntrinsics::_dlog10:
 385   case vmIntrinsics::_dexp:
 386   case vmIntrinsics::_dpow:
 387   case vmIntrinsics::_updateCRC32:
 388   case vmIntrinsics::_updateBytesCRC32:
 389   case vmIntrinsics::_updateByteBufferCRC32:
 390   case vmIntrinsics::_onSpinWait:
 391     return false;
 392   default:
 393     return true;
 394   }
 395 }
 396 
 397 bool vmIntrinsics::does_virtual_dispatch(vmIntrinsics::ID id) {
 398   assert(id != vmIntrinsics::_none, "must be a VM intrinsic");
 399   switch(id) {
 400   case vmIntrinsics::_hashCode:
 401   case vmIntrinsics::_clone:
 402     return true;
 403     break;
 404   default:
 405     return false;
 406   }
 407 }
 408 
 409 int vmIntrinsics::predicates_needed(vmIntrinsics::ID id) {
 410   assert(id != vmIntrinsics::_none, "must be a VM intrinsic");


 666     if (!SpecialEncodeISOArray) return true;
 667     break;
 668   case vmIntrinsics::_getCallerClass:
 669     if (!InlineReflectionGetCallerClass) return true;
 670     break;
 671   case vmIntrinsics::_multiplyToLen:
 672     if (!UseMultiplyToLenIntrinsic) return true;
 673     break;
 674   case vmIntrinsics::_squareToLen:
 675     if (!UseSquareToLenIntrinsic) return true;
 676     break;
 677   case vmIntrinsics::_mulAdd:
 678     if (!UseMulAddIntrinsic) return true;
 679     break;
 680   case vmIntrinsics::_montgomeryMultiply:
 681     if (!UseMontgomeryMultiplyIntrinsic) return true;
 682     break;
 683   case vmIntrinsics::_montgomerySquare:
 684     if (!UseMontgomerySquareIntrinsic) return true;
 685     break;
 686   case vmIntrinsics::_onSpinWait:
 687     if (!UseOnSpinWaitIntrinsic) return true;
 688     break;
 689   case vmIntrinsics::_addExactI:
 690   case vmIntrinsics::_addExactL:
 691   case vmIntrinsics::_decrementExactI:
 692   case vmIntrinsics::_decrementExactL:
 693   case vmIntrinsics::_incrementExactI:
 694   case vmIntrinsics::_incrementExactL:
 695   case vmIntrinsics::_multiplyExactI:
 696   case vmIntrinsics::_multiplyExactL:
 697   case vmIntrinsics::_negateExactI:
 698   case vmIntrinsics::_negateExactL:
 699   case vmIntrinsics::_subtractExactI:
 700   case vmIntrinsics::_subtractExactL:
 701     if (!UseMathExactIntrinsics || !InlineMathNatives) return true;
 702     break;
 703 #endif // COMPILER2
 704   default:
 705     return false;
 706   }
 707 
 708   return false;