< prev index next >

src/cpu/x86/vm/stubGenerator_x86_64.cpp

Print this page
rev 8502 : 8046943: Leverage CPU Instructions for GHASH and RSA
Summary: Add montgomeryMultiply intrinsics
Reviewed-by: kvn


4120       StubRoutines::_cipherBlockChaining_decryptAESCrypt = generate_cipherBlockChaining_decryptAESCrypt_Parallel();
4121     }
4122 
4123     // Safefetch stubs.
4124     generate_safefetch("SafeFetch32", sizeof(int),     &StubRoutines::_safefetch32_entry,
4125                                                        &StubRoutines::_safefetch32_fault_pc,
4126                                                        &StubRoutines::_safefetch32_continuation_pc);
4127     generate_safefetch("SafeFetchN", sizeof(intptr_t), &StubRoutines::_safefetchN_entry,
4128                                                        &StubRoutines::_safefetchN_fault_pc,
4129                                                        &StubRoutines::_safefetchN_continuation_pc);
4130 #ifdef COMPILER2
4131     if (UseMultiplyToLenIntrinsic) {
4132       StubRoutines::_multiplyToLen = generate_multiplyToLen();
4133     }
4134     if (UseSquareToLenIntrinsic) {
4135       StubRoutines::_squareToLen = generate_squareToLen();
4136     }
4137     if (UseMulAddIntrinsic) {
4138       StubRoutines::_mulAdd = generate_mulAdd();
4139     }
4140 #endif









4141   }
4142 
4143  public:
4144   StubGenerator(CodeBuffer* code, bool all) : StubCodeGenerator(code) {
4145     if (all) {
4146       generate_all();
4147     } else {
4148       generate_initial();
4149     }
4150   }
4151 }; // end class declaration
4152 
4153 void StubGenerator_generate(CodeBuffer* code, bool all) {
4154   StubGenerator g(code, all);
4155 }


4120       StubRoutines::_cipherBlockChaining_decryptAESCrypt = generate_cipherBlockChaining_decryptAESCrypt_Parallel();
4121     }
4122 
4123     // Safefetch stubs.
4124     generate_safefetch("SafeFetch32", sizeof(int),     &StubRoutines::_safefetch32_entry,
4125                                                        &StubRoutines::_safefetch32_fault_pc,
4126                                                        &StubRoutines::_safefetch32_continuation_pc);
4127     generate_safefetch("SafeFetchN", sizeof(intptr_t), &StubRoutines::_safefetchN_entry,
4128                                                        &StubRoutines::_safefetchN_fault_pc,
4129                                                        &StubRoutines::_safefetchN_continuation_pc);
4130 #ifdef COMPILER2
4131     if (UseMultiplyToLenIntrinsic) {
4132       StubRoutines::_multiplyToLen = generate_multiplyToLen();
4133     }
4134     if (UseSquareToLenIntrinsic) {
4135       StubRoutines::_squareToLen = generate_squareToLen();
4136     }
4137     if (UseMulAddIntrinsic) {
4138       StubRoutines::_mulAdd = generate_mulAdd();
4139     }
4140 
4141     if (UseMontgomeryMultiplyIntrinsic) {
4142       StubRoutines::_montgomeryMultiply
4143         = CAST_FROM_FN_PTR(address, SharedRuntime::montgomery_multiply);
4144     }
4145     if (UseMontgomerySquareIntrinsic) {
4146       StubRoutines::_montgomerySquare
4147         = CAST_FROM_FN_PTR(address, SharedRuntime::montgomery_square);
4148     }
4149 #endif // COMPILER2
4150   }
4151 
4152  public:
4153   StubGenerator(CodeBuffer* code, bool all) : StubCodeGenerator(code) {
4154     if (all) {
4155       generate_all();
4156     } else {
4157       generate_initial();
4158     }
4159   }
4160 }; // end class declaration
4161 
4162 void StubGenerator_generate(CodeBuffer* code, bool all) {
4163   StubGenerator g(code, all);
4164 }
< prev index next >