src/share/vm/classfile/vmSymbols.hpp

Print this page




 625 //
 626 // The name and/or signature might be a "well known" symbol
 627 // like "equal" or "()I", in which case there will be no local
 628 // re-definition of the symbol.
 629 //
 630 // The do_class, do_name, and do_signature calls are all used for the
 631 // same purpose:  Define yet another VM symbol.  They could all be merged
 632 // into a common 'do_symbol' call, but it seems useful to record our
 633 // intentions here about kinds of symbols (class vs. name vs. signature).
 634 //
 635 // The F_xx is one of the Flags enum; see below.
 636 //
 637 // for Emacs: (let ((c-backslash-column 120) (c-backslash-max-column 120)) (c-backslash-region (point) (point-max) nil t))
 638 #define VM_INTRINSICS_DO(do_intrinsic, do_class, do_name, do_signature, do_alias)                                       \
 639   do_intrinsic(_hashCode,                 java_lang_Object,       hashCode_name, void_int_signature,             F_R)   \
 640    do_name(     hashCode_name,                                   "hashCode")                                            \
 641   do_intrinsic(_getClass,                 java_lang_Object,       getClass_name, void_class_signature,           F_R)   \
 642    do_name(     getClass_name,                                   "getClass")                                            \
 643   do_intrinsic(_clone,                    java_lang_Object,       clone_name, void_object_signature,             F_R)   \
 644    do_name(     clone_name,                                      "clone")                                               \




 645                                                                                                                         \
 646   /* Math & StrictMath intrinsics are defined in terms of just a few signatures: */                                     \
 647   do_class(java_lang_Math,                "java/lang/Math")                                                             \
 648   do_class(java_lang_StrictMath,          "java/lang/StrictMath")                                                       \
 649   do_signature(double2_double_signature,  "(DD)D")                                                                      \
 650   do_signature(int2_int_signature,        "(II)I")                                                                      \
 651   do_signature(long2_long_signature,      "(JJ)J")                                                                         \
 652                                                                                                                         \
 653   /* here are the math names, all together: */                                                                          \
 654   do_name(abs_name,"abs")       do_name(sin_name,"sin")         do_name(cos_name,"cos")                                 \
 655   do_name(tan_name,"tan")       do_name(atan2_name,"atan2")     do_name(sqrt_name,"sqrt")                               \
 656   do_name(log_name,"log")       do_name(log10_name,"log10")     do_name(pow_name,"pow")                                 \
 657   do_name(exp_name,"exp")       do_name(min_name,"min")         do_name(max_name,"max")                                 \
 658                                                                                                                         \
 659   do_name(addExact_name,"addExact")                                                                                     \
 660   do_name(decrementExact_name,"decrementExact")                                                                         \
 661   do_name(incrementExact_name,"incrementExact")                                                                         \
 662   do_name(multiplyExact_name,"multiplyExact")                                                                           \
 663   do_name(negateExact_name,"negateExact")                                                                               \
 664   do_name(subtractExact_name,"subtractExact")                                                                           \




 625 //
 626 // The name and/or signature might be a "well known" symbol
 627 // like "equal" or "()I", in which case there will be no local
 628 // re-definition of the symbol.
 629 //
 630 // The do_class, do_name, and do_signature calls are all used for the
 631 // same purpose:  Define yet another VM symbol.  They could all be merged
 632 // into a common 'do_symbol' call, but it seems useful to record our
 633 // intentions here about kinds of symbols (class vs. name vs. signature).
 634 //
 635 // The F_xx is one of the Flags enum; see below.
 636 //
 637 // for Emacs: (let ((c-backslash-column 120) (c-backslash-max-column 120)) (c-backslash-region (point) (point-max) nil t))
 638 #define VM_INTRINSICS_DO(do_intrinsic, do_class, do_name, do_signature, do_alias)                                       \
 639   do_intrinsic(_hashCode,                 java_lang_Object,       hashCode_name, void_int_signature,             F_R)   \
 640    do_name(     hashCode_name,                                   "hashCode")                                            \
 641   do_intrinsic(_getClass,                 java_lang_Object,       getClass_name, void_class_signature,           F_R)   \
 642    do_name(     getClass_name,                                   "getClass")                                            \
 643   do_intrinsic(_clone,                    java_lang_Object,       clone_name, void_object_signature,             F_R)   \
 644    do_name(     clone_name,                                      "clone")                                               \
 645   do_intrinsic(_notify,                   java_lang_Object,       notify_name, void_method_signature,            F_R)   \
 646    do_name(     notify_name,                                     "notify")                                              \
 647   do_intrinsic(_notifyAll,                java_lang_Object,       notifyAll_name, void_method_signature,         F_R)   \
 648    do_name(     notifyAll_name,                                  "notifyAll")                                           \
 649                                                                                                                         \
 650   /* Math & StrictMath intrinsics are defined in terms of just a few signatures: */                                     \
 651   do_class(java_lang_Math,                "java/lang/Math")                                                             \
 652   do_class(java_lang_StrictMath,          "java/lang/StrictMath")                                                       \
 653   do_signature(double2_double_signature,  "(DD)D")                                                                      \
 654   do_signature(int2_int_signature,        "(II)I")                                                                      \
 655   do_signature(long2_long_signature,      "(JJ)J")                                                                         \
 656                                                                                                                         \
 657   /* here are the math names, all together: */                                                                          \
 658   do_name(abs_name,"abs")       do_name(sin_name,"sin")         do_name(cos_name,"cos")                                 \
 659   do_name(tan_name,"tan")       do_name(atan2_name,"atan2")     do_name(sqrt_name,"sqrt")                               \
 660   do_name(log_name,"log")       do_name(log10_name,"log10")     do_name(pow_name,"pow")                                 \
 661   do_name(exp_name,"exp")       do_name(min_name,"min")         do_name(max_name,"max")                                 \
 662                                                                                                                         \
 663   do_name(addExact_name,"addExact")                                                                                     \
 664   do_name(decrementExact_name,"decrementExact")                                                                         \
 665   do_name(incrementExact_name,"incrementExact")                                                                         \
 666   do_name(multiplyExact_name,"multiplyExact")                                                                           \
 667   do_name(negateExact_name,"negateExact")                                                                               \
 668   do_name(subtractExact_name,"subtractExact")                                                                           \