< prev index next >

src/share/vm/runtime/stubRoutines.hpp

Print this page




 188   static address _ghash_processBlocks;
 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 
 202   static address _multiplyToLen;
 203   static address _squareToLen;
 204   static address _mulAdd;
 205   static address _montgomeryMultiply;
 206   static address _montgomerySquare;
 207 


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


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


 374   static address select_fill_function(BasicType t, bool aligned, const char* &name);
 375 
 376   static address zero_aligned_words()   { return _zero_aligned_words; }
 377 
 378   static double  intrinsic_log(double d) {
 379     assert(_intrinsic_log != NULL, "must be defined");
 380     return _intrinsic_log(d);
 381   }
 382   static double  intrinsic_log10(double d) {
 383     assert(_intrinsic_log != NULL, "must be defined");
 384     return _intrinsic_log10(d);
 385   }
 386   static double  intrinsic_exp(double d) {
 387     assert(_intrinsic_exp != NULL, "must be defined");
 388     return _intrinsic_exp(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   //
 408   // Safefetch stub support




 188   static address _ghash_processBlocks;
 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 
 202   static address _multiplyToLen;
 203   static address _squareToLen;
 204   static address _mulAdd;
 205   static address _montgomeryMultiply;
 206   static address _montgomerySquare;
 207 
 208   static address _dexp;
 209 
 210   // These are versions of the java.lang.Math methods which perform
 211   // the same operations as the intrinsic version.  They are used for
 212   // constant folding in the compiler to ensure equivalence.  If the
 213   // intrinsic version returns the same result as the strict version
 214   // then they can be set to the appropriate function from
 215   // SharedRuntime.
 216   static double (*_intrinsic_log)(double);
 217   static double (*_intrinsic_log10)(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 


 355   static address ghash_processBlocks() { return _ghash_processBlocks; }
 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 
 369   static address multiplyToLen()       {return _multiplyToLen; }
 370   static address squareToLen()         {return _squareToLen; }
 371   static address mulAdd()              {return _mulAdd; }
 372   static address montgomeryMultiply()  { return _montgomeryMultiply; }
 373   static address montgomerySquare()    { return _montgomerySquare; }
 374 
 375   static address dexp()                {return _dexp; }
 376 
 377   static address select_fill_function(BasicType t, bool aligned, const char* &name);
 378 
 379   static address zero_aligned_words()   { return _zero_aligned_words; }
 380 
 381   static double  intrinsic_log(double d) {
 382     assert(_intrinsic_log != NULL, "must be defined");
 383     return _intrinsic_log(d);
 384   }
 385   static double  intrinsic_log10(double d) {
 386     assert(_intrinsic_log != NULL, "must be defined");
 387     return _intrinsic_log10(d);




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


< prev index next >