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

src/share/vm/runtime/stubRoutines.hpp

Print this page




 199 
 200   static address _crc32c_table_addr;
 201   static address _updateBytesCRC32C;
 202   static address _updateBytesAdler32;
 203 
 204   static address _multiplyToLen;
 205   static address _squareToLen;
 206   static address _mulAdd;
 207   static address _montgomeryMultiply;
 208   static address _montgomerySquare;
 209 
 210   static address _dexp;
 211   static address _dlog;
 212 
 213   // These are versions of the java.lang.Math methods which perform
 214   // the same operations as the intrinsic version.  They are used for
 215   // constant folding in the compiler to ensure equivalence.  If the
 216   // intrinsic version returns the same result as the strict version
 217   // then they can be set to the appropriate function from
 218   // SharedRuntime.
 219   static double (*_intrinsic_log)(double);
 220   static double (*_intrinsic_log10)(double);
 221   static double (*_intrinsic_pow)(double, double);
 222   static double (*_intrinsic_sin)(double);
 223   static double (*_intrinsic_cos)(double);
 224   static double (*_intrinsic_tan)(double);
 225 
 226   // Safefetch stubs.
 227   static address _safefetch32_entry;
 228   static address _safefetch32_fault_pc;
 229   static address _safefetch32_continuation_pc;
 230   static address _safefetchN_entry;
 231   static address _safefetchN_fault_pc;
 232   static address _safefetchN_continuation_pc;
 233 
 234  public:
 235   // Initialization/Testing
 236   static void    initialize1();                            // must happen before universe::genesis
 237   static void    initialize2();                            // must happen after  universe::genesis
 238 
 239   static bool is_stub_code(address addr)                   { return contains(addr); }


 367   static address updateBytesCRC32()    { return _updateBytesCRC32; }
 368   static address crc_table_addr()      { return _crc_table_adr; }
 369 
 370   static address crc32c_table_addr()   { return _crc32c_table_addr; }
 371   static address updateBytesCRC32C()   { return _updateBytesCRC32C; }
 372   static address updateBytesAdler32()  { return _updateBytesAdler32; }
 373 
 374   static address multiplyToLen()       {return _multiplyToLen; }
 375   static address squareToLen()         {return _squareToLen; }
 376   static address mulAdd()              {return _mulAdd; }
 377   static address montgomeryMultiply()  { return _montgomeryMultiply; }
 378   static address montgomerySquare()    { return _montgomerySquare; }
 379 
 380   static address dexp()                { return _dexp; }
 381   static address dlog()                { return _dlog; }
 382 
 383   static address select_fill_function(BasicType t, bool aligned, const char* &name);
 384 
 385   static address zero_aligned_words()   { return _zero_aligned_words; }
 386 
 387   static double  intrinsic_log(double d) {
 388     assert(_intrinsic_log != NULL, "must be defined");
 389     return _intrinsic_log(d);
 390   }
 391   static double  intrinsic_log10(double d) {
 392     assert(_intrinsic_log != NULL, "must be defined");
 393     return _intrinsic_log10(d);
 394   }
 395   static double  intrinsic_pow(double d, double d2) {
 396     assert(_intrinsic_pow != NULL, "must be defined");
 397     return _intrinsic_pow(d, d2);
 398   }
 399   static double  intrinsic_sin(double d) {
 400     assert(_intrinsic_sin != NULL, "must be defined");
 401     return _intrinsic_sin(d);
 402   }
 403   static double  intrinsic_cos(double d) {
 404     assert(_intrinsic_cos != NULL, "must be defined");
 405     return _intrinsic_cos(d);
 406   }
 407   static double  intrinsic_tan(double d) {
 408     assert(_intrinsic_tan != NULL, "must be defined");
 409     return _intrinsic_tan(d);
 410   }
 411 
 412   //




 199 
 200   static address _crc32c_table_addr;
 201   static address _updateBytesCRC32C;
 202   static address _updateBytesAdler32;
 203 
 204   static address _multiplyToLen;
 205   static address _squareToLen;
 206   static address _mulAdd;
 207   static address _montgomeryMultiply;
 208   static address _montgomerySquare;
 209 
 210   static address _dexp;
 211   static address _dlog;
 212 
 213   // These are versions of the java.lang.Math methods which perform
 214   // the same operations as the intrinsic version.  They are used for
 215   // constant folding in the compiler to ensure equivalence.  If the
 216   // intrinsic version returns the same result as the strict version
 217   // then they can be set to the appropriate function from
 218   // SharedRuntime.

 219   static double (*_intrinsic_log10)(double);
 220   static double (*_intrinsic_pow)(double, double);
 221   static double (*_intrinsic_sin)(double);
 222   static double (*_intrinsic_cos)(double);
 223   static double (*_intrinsic_tan)(double);
 224 
 225   // Safefetch stubs.
 226   static address _safefetch32_entry;
 227   static address _safefetch32_fault_pc;
 228   static address _safefetch32_continuation_pc;
 229   static address _safefetchN_entry;
 230   static address _safefetchN_fault_pc;
 231   static address _safefetchN_continuation_pc;
 232 
 233  public:
 234   // Initialization/Testing
 235   static void    initialize1();                            // must happen before universe::genesis
 236   static void    initialize2();                            // must happen after  universe::genesis
 237 
 238   static bool is_stub_code(address addr)                   { return contains(addr); }


 366   static address updateBytesCRC32()    { return _updateBytesCRC32; }
 367   static address crc_table_addr()      { return _crc_table_adr; }
 368 
 369   static address crc32c_table_addr()   { return _crc32c_table_addr; }
 370   static address updateBytesCRC32C()   { return _updateBytesCRC32C; }
 371   static address updateBytesAdler32()  { return _updateBytesAdler32; }
 372 
 373   static address multiplyToLen()       {return _multiplyToLen; }
 374   static address squareToLen()         {return _squareToLen; }
 375   static address mulAdd()              {return _mulAdd; }
 376   static address montgomeryMultiply()  { return _montgomeryMultiply; }
 377   static address montgomerySquare()    { return _montgomerySquare; }
 378 
 379   static address dexp()                { return _dexp; }
 380   static address dlog()                { return _dlog; }
 381 
 382   static address select_fill_function(BasicType t, bool aligned, const char* &name);
 383 
 384   static address zero_aligned_words()   { return _zero_aligned_words; }
 385 




 386   static double  intrinsic_log10(double d) {
 387     assert(_intrinsic_log10 != NULL, "must be defined");
 388     return _intrinsic_log10(d);
 389   }
 390   static double  intrinsic_pow(double d, double d2) {
 391     assert(_intrinsic_pow != NULL, "must be defined");
 392     return _intrinsic_pow(d, d2);
 393   }
 394   static double  intrinsic_sin(double d) {
 395     assert(_intrinsic_sin != NULL, "must be defined");
 396     return _intrinsic_sin(d);
 397   }
 398   static double  intrinsic_cos(double d) {
 399     assert(_intrinsic_cos != NULL, "must be defined");
 400     return _intrinsic_cos(d);
 401   }
 402   static double  intrinsic_tan(double d) {
 403     assert(_intrinsic_tan != NULL, "must be defined");
 404     return _intrinsic_tan(d);
 405   }
 406 
 407   //


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