src/share/vm/classfile/vmSymbols.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hotspot Sdiff src/share/vm/classfile

src/share/vm/classfile/vmSymbols.hpp

Print this page
rev 5513 : 8026844: Various Math functions needs intrinsification
Reviewed-by: duke


 607 // same purpose:  Define yet another VM symbol.  They could all be merged
 608 // into a common 'do_symbol' call, but it seems useful to record our
 609 // intentions here about kinds of symbols (class vs. name vs. signature).
 610 //
 611 // The F_xx is one of the Flags enum; see below.
 612 //
 613 // for Emacs: (let ((c-backslash-column 120) (c-backslash-max-column 120)) (c-backslash-region (point) (point-max) nil t))
 614 #define VM_INTRINSICS_DO(do_intrinsic, do_class, do_name, do_signature, do_alias)                                       \
 615   do_intrinsic(_hashCode,                 java_lang_Object,       hashCode_name, void_int_signature,             F_R)   \
 616    do_name(     hashCode_name,                                   "hashCode")                                            \
 617   do_intrinsic(_getClass,                 java_lang_Object,       getClass_name, void_class_signature,           F_R)   \
 618    do_name(     getClass_name,                                   "getClass")                                            \
 619   do_intrinsic(_clone,                    java_lang_Object,       clone_name, void_object_signature,             F_R)   \
 620    do_name(     clone_name,                                      "clone")                                               \
 621                                                                                                                         \
 622   /* Math & StrictMath intrinsics are defined in terms of just a few signatures: */                                     \
 623   do_class(java_lang_Math,                "java/lang/Math")                                                             \
 624   do_class(java_lang_StrictMath,          "java/lang/StrictMath")                                                       \
 625   do_signature(double2_double_signature,  "(DD)D")                                                                      \
 626   do_signature(int2_int_signature,        "(II)I")                                                                      \

 627                                                                                                                         \
 628   /* here are the math names, all together: */                                                                          \
 629   do_name(abs_name,"abs")       do_name(sin_name,"sin")         do_name(cos_name,"cos")                                 \
 630   do_name(tan_name,"tan")       do_name(atan2_name,"atan2")     do_name(sqrt_name,"sqrt")                               \
 631   do_name(log_name,"log")       do_name(log10_name,"log10")     do_name(pow_name,"pow")                                 \
 632   do_name(exp_name,"exp")       do_name(min_name,"min")         do_name(max_name,"max")                                 \
 633                                                                                                                         \
 634   do_name(addExact_name,"addExact")                                                                                     \
 635   do_name(subtractExact_name,"subtractExact")                                                                           \

 636   do_name(multiplyExact_name,"multiplyExact")                                                                           \


 637                                                                                                                         \
 638   do_intrinsic(_dabs,                     java_lang_Math,         abs_name,   double_double_signature,           F_S)   \
 639   do_intrinsic(_dsin,                     java_lang_Math,         sin_name,   double_double_signature,           F_S)   \
 640   do_intrinsic(_dcos,                     java_lang_Math,         cos_name,   double_double_signature,           F_S)   \
 641   do_intrinsic(_dtan,                     java_lang_Math,         tan_name,   double_double_signature,           F_S)   \
 642   do_intrinsic(_datan2,                   java_lang_Math,         atan2_name, double2_double_signature,          F_S)   \
 643   do_intrinsic(_dsqrt,                    java_lang_Math,         sqrt_name,  double_double_signature,           F_S)   \
 644   do_intrinsic(_dlog,                     java_lang_Math,         log_name,   double_double_signature,           F_S)   \
 645   do_intrinsic(_dlog10,                   java_lang_Math,         log10_name, double_double_signature,           F_S)   \
 646   do_intrinsic(_dpow,                     java_lang_Math,         pow_name,   double2_double_signature,          F_S)   \
 647   do_intrinsic(_dexp,                     java_lang_Math,         exp_name,   double_double_signature,           F_S)   \
 648   do_intrinsic(_min,                      java_lang_Math,         min_name,   int2_int_signature,                F_S)   \
 649   do_intrinsic(_max,                      java_lang_Math,         max_name,   int2_int_signature,                F_S)   \
 650   do_intrinsic(_addExact,                 java_lang_Math,         addExact_name, int2_int_signature,             F_S)   \











 651                                                                                                                         \
 652   do_intrinsic(_floatToRawIntBits,        java_lang_Float,        floatToRawIntBits_name,   float_int_signature, F_S)   \
 653    do_name(     floatToRawIntBits_name,                          "floatToRawIntBits")                                   \
 654   do_intrinsic(_floatToIntBits,           java_lang_Float,        floatToIntBits_name,      float_int_signature, F_S)   \
 655    do_name(     floatToIntBits_name,                             "floatToIntBits")                                      \
 656   do_intrinsic(_intBitsToFloat,           java_lang_Float,        intBitsToFloat_name,      int_float_signature, F_S)   \
 657    do_name(     intBitsToFloat_name,                             "intBitsToFloat")                                      \
 658   do_intrinsic(_doubleToRawLongBits,      java_lang_Double,       doubleToRawLongBits_name, double_long_signature, F_S) \
 659    do_name(     doubleToRawLongBits_name,                        "doubleToRawLongBits")                                 \
 660   do_intrinsic(_doubleToLongBits,         java_lang_Double,       doubleToLongBits_name,    double_long_signature, F_S) \
 661    do_name(     doubleToLongBits_name,                           "doubleToLongBits")                                    \
 662   do_intrinsic(_longBitsToDouble,         java_lang_Double,       longBitsToDouble_name,    long_double_signature, F_S) \
 663    do_name(     longBitsToDouble_name,                           "longBitsToDouble")                                    \
 664                                                                                                                         \
 665   do_intrinsic(_numberOfLeadingZeros_i,   java_lang_Integer,      numberOfLeadingZeros_name,int_int_signature,   F_S)   \
 666   do_intrinsic(_numberOfLeadingZeros_l,   java_lang_Long,         numberOfLeadingZeros_name,long_int_signature,  F_S)   \
 667                                                                                                                         \
 668   do_intrinsic(_numberOfTrailingZeros_i,  java_lang_Integer,      numberOfTrailingZeros_name,int_int_signature,  F_S)   \
 669   do_intrinsic(_numberOfTrailingZeros_l,  java_lang_Long,         numberOfTrailingZeros_name,long_int_signature, F_S)   \
 670                                                                                                                         \




 607 // same purpose:  Define yet another VM symbol.  They could all be merged
 608 // into a common 'do_symbol' call, but it seems useful to record our
 609 // intentions here about kinds of symbols (class vs. name vs. signature).
 610 //
 611 // The F_xx is one of the Flags enum; see below.
 612 //
 613 // for Emacs: (let ((c-backslash-column 120) (c-backslash-max-column 120)) (c-backslash-region (point) (point-max) nil t))
 614 #define VM_INTRINSICS_DO(do_intrinsic, do_class, do_name, do_signature, do_alias)                                       \
 615   do_intrinsic(_hashCode,                 java_lang_Object,       hashCode_name, void_int_signature,             F_R)   \
 616    do_name(     hashCode_name,                                   "hashCode")                                            \
 617   do_intrinsic(_getClass,                 java_lang_Object,       getClass_name, void_class_signature,           F_R)   \
 618    do_name(     getClass_name,                                   "getClass")                                            \
 619   do_intrinsic(_clone,                    java_lang_Object,       clone_name, void_object_signature,             F_R)   \
 620    do_name(     clone_name,                                      "clone")                                               \
 621                                                                                                                         \
 622   /* Math & StrictMath intrinsics are defined in terms of just a few signatures: */                                     \
 623   do_class(java_lang_Math,                "java/lang/Math")                                                             \
 624   do_class(java_lang_StrictMath,          "java/lang/StrictMath")                                                       \
 625   do_signature(double2_double_signature,  "(DD)D")                                                                      \
 626   do_signature(int2_int_signature,        "(II)I")                                                                      \
 627   do_signature(long2_long_signature,      "(JJ)J")                                                                         \
 628                                                                                                                         \
 629   /* here are the math names, all together: */                                                                          \
 630   do_name(abs_name,"abs")       do_name(sin_name,"sin")         do_name(cos_name,"cos")                                 \
 631   do_name(tan_name,"tan")       do_name(atan2_name,"atan2")     do_name(sqrt_name,"sqrt")                               \
 632   do_name(log_name,"log")       do_name(log10_name,"log10")     do_name(pow_name,"pow")                                 \
 633   do_name(exp_name,"exp")       do_name(min_name,"min")         do_name(max_name,"max")                                 \
 634                                                                                                                         \
 635   do_name(addExact_name,"addExact")                                                                                     \
 636   do_name(decrementExact_name,"decrementExact")                                                                         \
 637   do_name(incrementExact_name,"incrementExact")                                                                         \
 638   do_name(multiplyExact_name,"multiplyExact")                                                                           \
 639   do_name(negateExact_name,"negateExact")                                                                               \
 640   do_name(subtractExact_name,"subtractExact")                                                                           \
 641                                                                                                                         \
 642   do_intrinsic(_dabs,                     java_lang_Math,         abs_name,   double_double_signature,           F_S)   \
 643   do_intrinsic(_dsin,                     java_lang_Math,         sin_name,   double_double_signature,           F_S)   \
 644   do_intrinsic(_dcos,                     java_lang_Math,         cos_name,   double_double_signature,           F_S)   \
 645   do_intrinsic(_dtan,                     java_lang_Math,         tan_name,   double_double_signature,           F_S)   \
 646   do_intrinsic(_datan2,                   java_lang_Math,         atan2_name, double2_double_signature,          F_S)   \
 647   do_intrinsic(_dsqrt,                    java_lang_Math,         sqrt_name,  double_double_signature,           F_S)   \
 648   do_intrinsic(_dlog,                     java_lang_Math,         log_name,   double_double_signature,           F_S)   \
 649   do_intrinsic(_dlog10,                   java_lang_Math,         log10_name, double_double_signature,           F_S)   \
 650   do_intrinsic(_dpow,                     java_lang_Math,         pow_name,   double2_double_signature,          F_S)   \
 651   do_intrinsic(_dexp,                     java_lang_Math,         exp_name,   double_double_signature,           F_S)   \
 652   do_intrinsic(_min,                      java_lang_Math,         min_name,   int2_int_signature,                F_S)   \
 653   do_intrinsic(_max,                      java_lang_Math,         max_name,   int2_int_signature,                F_S)   \
 654   do_intrinsic(_addExactI,                java_lang_Math,         addExact_name, int2_int_signature,             F_S)   \
 655   do_intrinsic(_addExactL,                java_lang_Math,         addExact_name, long2_long_signature,           F_S)   \
 656   do_intrinsic(_decrementExactI,          java_lang_Math,         decrementExact_name, int_int_signature,        F_S)   \
 657   do_intrinsic(_decrementExactL,          java_lang_Math,         decrementExact_name, long2_long_signature,     F_S)   \
 658   do_intrinsic(_incrementExactI,          java_lang_Math,         incrementExact_name, int_int_signature,        F_S)   \
 659   do_intrinsic(_incrementExactL,          java_lang_Math,         incrementExact_name, long2_long_signature,     F_S)   \
 660   do_intrinsic(_multiplyExactI,           java_lang_Math,         multiplyExact_name, int2_int_signature,        F_S)   \
 661   do_intrinsic(_multiplyExactL,           java_lang_Math,         multiplyExact_name, long2_long_signature,      F_S)   \
 662   do_intrinsic(_negateExactI,             java_lang_Math,         negateExact_name, int_int_signature,           F_S)   \
 663   do_intrinsic(_negateExactL,             java_lang_Math,         negateExact_name, long_long_signature,         F_S)   \
 664   do_intrinsic(_subtractExactI,           java_lang_Math,         subtractExact_name, int2_int_signature,        F_S)   \
 665   do_intrinsic(_subtractExactL,           java_lang_Math,         subtractExact_name, long2_long_signature,      F_S)   \
 666                                                                                                                         \
 667   do_intrinsic(_floatToRawIntBits,        java_lang_Float,        floatToRawIntBits_name,   float_int_signature, F_S)   \
 668    do_name(     floatToRawIntBits_name,                          "floatToRawIntBits")                                   \
 669   do_intrinsic(_floatToIntBits,           java_lang_Float,        floatToIntBits_name,      float_int_signature, F_S)   \
 670    do_name(     floatToIntBits_name,                             "floatToIntBits")                                      \
 671   do_intrinsic(_intBitsToFloat,           java_lang_Float,        intBitsToFloat_name,      int_float_signature, F_S)   \
 672    do_name(     intBitsToFloat_name,                             "intBitsToFloat")                                      \
 673   do_intrinsic(_doubleToRawLongBits,      java_lang_Double,       doubleToRawLongBits_name, double_long_signature, F_S) \
 674    do_name(     doubleToRawLongBits_name,                        "doubleToRawLongBits")                                 \
 675   do_intrinsic(_doubleToLongBits,         java_lang_Double,       doubleToLongBits_name,    double_long_signature, F_S) \
 676    do_name(     doubleToLongBits_name,                           "doubleToLongBits")                                    \
 677   do_intrinsic(_longBitsToDouble,         java_lang_Double,       longBitsToDouble_name,    long_double_signature, F_S) \
 678    do_name(     longBitsToDouble_name,                           "longBitsToDouble")                                    \
 679                                                                                                                         \
 680   do_intrinsic(_numberOfLeadingZeros_i,   java_lang_Integer,      numberOfLeadingZeros_name,int_int_signature,   F_S)   \
 681   do_intrinsic(_numberOfLeadingZeros_l,   java_lang_Long,         numberOfLeadingZeros_name,long_int_signature,  F_S)   \
 682                                                                                                                         \
 683   do_intrinsic(_numberOfTrailingZeros_i,  java_lang_Integer,      numberOfTrailingZeros_name,int_int_signature,  F_S)   \
 684   do_intrinsic(_numberOfTrailingZeros_l,  java_lang_Long,         numberOfTrailingZeros_name,long_int_signature, F_S)   \
 685                                                                                                                         \


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