< prev index next >

src/share/vm/runtime/stubRoutines.hpp

Print this page




 189 
 190   static address _sha1_implCompress;
 191   static address _sha1_implCompressMB;
 192   static address _sha256_implCompress;
 193   static address _sha256_implCompressMB;
 194   static address _sha512_implCompress;
 195   static address _sha512_implCompressMB;
 196 
 197   static address _updateBytesCRC32;
 198   static address _crc_table_adr;
 199 
 200   static address _updateBytesCRC32C;
 201   static address _updateBytesAdler32;
 202 
 203   static address _multiplyToLen;
 204   static address _squareToLen;
 205   static address _mulAdd;
 206   static address _montgomeryMultiply;
 207   static address _montgomerySquare;
 208 


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


 356 
 357   static address sha1_implCompress()     { return _sha1_implCompress; }
 358   static address sha1_implCompressMB()   { return _sha1_implCompressMB; }
 359   static address sha256_implCompress()   { return _sha256_implCompress; }
 360   static address sha256_implCompressMB() { return _sha256_implCompressMB; }
 361   static address sha512_implCompress()   { return _sha512_implCompress; }
 362   static address sha512_implCompressMB() { return _sha512_implCompressMB; }
 363 
 364   static address updateBytesCRC32()    { return _updateBytesCRC32; }
 365   static address crc_table_addr()      { return _crc_table_adr; }
 366 
 367   static address updateBytesCRC32C()   { return _updateBytesCRC32C; }
 368   static address updateBytesAdler32()  { return _updateBytesAdler32; }
 369 
 370   static address multiplyToLen()       {return _multiplyToLen; }
 371   static address squareToLen()         {return _squareToLen; }
 372   static address mulAdd()              {return _mulAdd; }
 373   static address montgomeryMultiply()  { return _montgomeryMultiply; }
 374   static address montgomerySquare()    { return _montgomerySquare; }
 375 


 376   static address select_fill_function(BasicType t, bool aligned, const char* &name);
 377 
 378   static address zero_aligned_words()   { return _zero_aligned_words; }
 379 
 380   static double  intrinsic_log(double d) {
 381     assert(_intrinsic_log != NULL, "must be defined");
 382     return _intrinsic_log(d);
 383   }
 384   static double  intrinsic_log10(double d) {
 385     assert(_intrinsic_log != NULL, "must be defined");
 386     return _intrinsic_log10(d);
 387   }
 388   static double  intrinsic_exp(double d) {
 389     assert(_intrinsic_exp != NULL, "must be defined");
 390     return _intrinsic_exp(d);
 391   }
 392   static double  intrinsic_pow(double d, double d2) {
 393     assert(_intrinsic_pow != NULL, "must be defined");
 394     return _intrinsic_pow(d, d2);
 395   }
 396   static double  intrinsic_sin(double d) {
 397     assert(_intrinsic_sin != NULL, "must be defined");
 398     return _intrinsic_sin(d);
 399   }
 400   static double  intrinsic_cos(double d) {
 401     assert(_intrinsic_cos != NULL, "must be defined");
 402     return _intrinsic_cos(d);
 403   }
 404   static double  intrinsic_tan(double d) {
 405     assert(_intrinsic_tan != NULL, "must be defined");
 406     return _intrinsic_tan(d);
 407   }
 408 
 409   //
 410   // Safefetch stub support




 189 
 190   static address _sha1_implCompress;
 191   static address _sha1_implCompressMB;
 192   static address _sha256_implCompress;
 193   static address _sha256_implCompressMB;
 194   static address _sha512_implCompress;
 195   static address _sha512_implCompressMB;
 196 
 197   static address _updateBytesCRC32;
 198   static address _crc_table_adr;
 199 
 200   static address _updateBytesCRC32C;
 201   static address _updateBytesAdler32;
 202 
 203   static address _multiplyToLen;
 204   static address _squareToLen;
 205   static address _mulAdd;
 206   static address _montgomeryMultiply;
 207   static address _montgomerySquare;
 208 
 209   static address _dexp;
 210 
 211   // These are versions of the java.lang.Math methods which perform
 212   // the same operations as the intrinsic version.  They are used for
 213   // constant folding in the compiler to ensure equivalence.  If the
 214   // intrinsic version returns the same result as the strict version
 215   // then they can be set to the appropriate function from
 216   // SharedRuntime.
 217   static double (*_intrinsic_log)(double);
 218   static double (*_intrinsic_log10)(double);

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


 357 
 358   static address sha1_implCompress()     { return _sha1_implCompress; }
 359   static address sha1_implCompressMB()   { return _sha1_implCompressMB; }
 360   static address sha256_implCompress()   { return _sha256_implCompress; }
 361   static address sha256_implCompressMB() { return _sha256_implCompressMB; }
 362   static address sha512_implCompress()   { return _sha512_implCompress; }
 363   static address sha512_implCompressMB() { return _sha512_implCompressMB; }
 364 
 365   static address updateBytesCRC32()    { return _updateBytesCRC32; }
 366   static address crc_table_addr()      { return _crc_table_adr; }
 367 
 368   static address updateBytesCRC32C()   { return _updateBytesCRC32C; }
 369   static address updateBytesAdler32()  { return _updateBytesAdler32; }
 370 
 371   static address multiplyToLen()       {return _multiplyToLen; }
 372   static address squareToLen()         {return _squareToLen; }
 373   static address mulAdd()              {return _mulAdd; }
 374   static address montgomeryMultiply()  { return _montgomeryMultiply; }
 375   static address montgomerySquare()    { return _montgomerySquare; }
 376 
 377   static address dexp()                {return _dexp; }
 378 
 379   static address select_fill_function(BasicType t, bool aligned, const char* &name);
 380 
 381   static address zero_aligned_words()   { return _zero_aligned_words; }
 382 
 383   static double  intrinsic_log(double d) {
 384     assert(_intrinsic_log != NULL, "must be defined");
 385     return _intrinsic_log(d);
 386   }
 387   static double  intrinsic_log10(double d) {
 388     assert(_intrinsic_log != NULL, "must be defined");
 389     return _intrinsic_log10(d);




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


< prev index next >