hotspot/src/share/vm/runtime/sharedRuntime.hpp
changeset 6176 4d9030fe341f
parent 5547 f4b087cbb361
child 6418 6671edbd230e
equal deleted inserted replaced
6175:86dbf3cacacc 6176:4d9030fe341f
    76 
    76 
    77   // float and double remainder
    77   // float and double remainder
    78   static jfloat  frem(jfloat  x, jfloat  y);
    78   static jfloat  frem(jfloat  x, jfloat  y);
    79   static jdouble drem(jdouble x, jdouble y);
    79   static jdouble drem(jdouble x, jdouble y);
    80 
    80 
       
    81 #ifdef __SOFTFP__
       
    82   static jfloat  fadd(jfloat x, jfloat y);
       
    83   static jfloat  fsub(jfloat x, jfloat y);
       
    84   static jfloat  fmul(jfloat x, jfloat y);
       
    85   static jfloat  fdiv(jfloat x, jfloat y);
       
    86 
       
    87   static jdouble dadd(jdouble x, jdouble y);
       
    88   static jdouble dsub(jdouble x, jdouble y);
       
    89   static jdouble dmul(jdouble x, jdouble y);
       
    90   static jdouble ddiv(jdouble x, jdouble y);
       
    91 #endif // __SOFTFP__
       
    92 
    81   // float conversion (needs to set appropriate rounding mode)
    93   // float conversion (needs to set appropriate rounding mode)
    82   static jint    f2i (jfloat  x);
    94   static jint    f2i (jfloat  x);
    83   static jlong   f2l (jfloat  x);
    95   static jlong   f2l (jfloat  x);
    84   static jint    d2i (jdouble x);
    96   static jint    d2i (jdouble x);
    85   static jlong   d2l (jdouble x);
    97   static jlong   d2l (jdouble x);
    86   static jfloat  d2f (jdouble x);
    98   static jfloat  d2f (jdouble x);
    87   static jfloat  l2f (jlong   x);
    99   static jfloat  l2f (jlong   x);
    88   static jdouble l2d (jlong   x);
   100   static jdouble l2d (jlong   x);
    89 
   101 
       
   102 #ifdef __SOFTFP__
       
   103   static jfloat  i2f (jint    x);
       
   104   static jdouble i2d (jint    x);
       
   105   static jdouble f2d (jfloat  x);
       
   106 #endif // __SOFTFP__
       
   107 
    90   // double trigonometrics and transcendentals
   108   // double trigonometrics and transcendentals
    91   static jdouble dsin(jdouble x);
   109   static jdouble dsin(jdouble x);
    92   static jdouble dcos(jdouble x);
   110   static jdouble dcos(jdouble x);
    93   static jdouble dtan(jdouble x);
   111   static jdouble dtan(jdouble x);
    94   static jdouble dlog(jdouble x);
   112   static jdouble dlog(jdouble x);
    95   static jdouble dlog10(jdouble x);
   113   static jdouble dlog10(jdouble x);
    96   static jdouble dexp(jdouble x);
   114   static jdouble dexp(jdouble x);
    97   static jdouble dpow(jdouble x, jdouble y);
   115   static jdouble dpow(jdouble x, jdouble y);
       
   116 
       
   117 #if defined(__SOFTFP__) || defined(E500V2)
       
   118   static double dabs(double f);
       
   119   static double dsqrt(double f);
       
   120 #endif
       
   121 
       
   122 #ifdef __SOFTFP__
       
   123   // C++ compiler generates soft float instructions as well as passing
       
   124   // float and double in registers.
       
   125   static int  fcmpl(float x, float y);
       
   126   static int  fcmpg(float x, float y);
       
   127   static int  dcmpl(double x, double y);
       
   128   static int  dcmpg(double x, double y);
       
   129 
       
   130   static int unordered_fcmplt(float x, float y);
       
   131   static int unordered_dcmplt(double x, double y);
       
   132   static int unordered_fcmple(float x, float y);
       
   133   static int unordered_dcmple(double x, double y);
       
   134   static int unordered_fcmpge(float x, float y);
       
   135   static int unordered_dcmpge(double x, double y);
       
   136   static int unordered_fcmpgt(float x, float y);
       
   137   static int unordered_dcmpgt(double x, double y);
       
   138 
       
   139   static float  fneg(float f);
       
   140   static double dneg(double f);
       
   141 #endif
    98 
   142 
    99   // exception handling across interpreter/compiler boundaries
   143   // exception handling across interpreter/compiler boundaries
   100   static address raw_exception_handler_for_return_address(JavaThread* thread, address return_address);
   144   static address raw_exception_handler_for_return_address(JavaThread* thread, address return_address);
   101   static address exception_handler_for_return_address(JavaThread* thread, address return_address);
   145   static address exception_handler_for_return_address(JavaThread* thread, address return_address);
   102 
   146 
   583   // Used to verify that code generated for shared adapters is equivalent
   627   // Used to verify that code generated for shared adapters is equivalent
   584   void save_code(unsigned char* code, int length, int total_args_passed, BasicType* sig_bt);
   628   void save_code(unsigned char* code, int length, int total_args_passed, BasicType* sig_bt);
   585   bool compare_code(unsigned char* code, int length, int total_args_passed, BasicType* sig_bt);
   629   bool compare_code(unsigned char* code, int length, int total_args_passed, BasicType* sig_bt);
   586 #endif
   630 #endif
   587 
   631 
   588 #ifndef PRODUCT
       
   589   void print();
   632   void print();
   590 #endif /* PRODUCT */
       
   591 };
   633 };
   592 
   634 
   593 class AdapterHandlerLibrary: public AllStatic {
   635 class AdapterHandlerLibrary: public AllStatic {
   594  private:
   636  private:
   595   static BufferBlob* _buffer; // the temporary code buffer in CodeCache
   637   static BufferBlob* _buffer; // the temporary code buffer in CodeCache
   607 
   649 
   608 #ifdef HAVE_DTRACE_H
   650 #ifdef HAVE_DTRACE_H
   609   static nmethod* create_dtrace_nmethod (methodHandle method);
   651   static nmethod* create_dtrace_nmethod (methodHandle method);
   610 #endif // HAVE_DTRACE_H
   652 #endif // HAVE_DTRACE_H
   611 
   653 
       
   654   static void print_handler(CodeBlob* b) { print_handler_on(tty, b); }
       
   655   static void print_handler_on(outputStream* st, CodeBlob* b);
       
   656   static bool contains(CodeBlob* b);
   612 #ifndef PRODUCT
   657 #ifndef PRODUCT
   613   static void print_handler(CodeBlob* b);
       
   614   static bool contains(CodeBlob* b);
       
   615   static void print_statistics();
   658   static void print_statistics();
   616 #endif /* PRODUCT */
   659 #endif /* PRODUCT */
   617 
   660 
   618 };
   661 };