< prev index next >

src/cpu/x86/vm/stubGenerator_x86_64.cpp

Print this page




4253       StubRoutines::_ghash_processBlocks = generate_ghash_processBlocks();
4254     }
4255 
4256     // Safefetch stubs.
4257     generate_safefetch("SafeFetch32", sizeof(int),     &StubRoutines::_safefetch32_entry,
4258                                                        &StubRoutines::_safefetch32_fault_pc,
4259                                                        &StubRoutines::_safefetch32_continuation_pc);
4260     generate_safefetch("SafeFetchN", sizeof(intptr_t), &StubRoutines::_safefetchN_entry,
4261                                                        &StubRoutines::_safefetchN_fault_pc,
4262                                                        &StubRoutines::_safefetchN_continuation_pc);
4263 #ifdef COMPILER2
4264     if (UseMultiplyToLenIntrinsic) {
4265       StubRoutines::_multiplyToLen = generate_multiplyToLen();
4266     }
4267     if (UseSquareToLenIntrinsic) {
4268       StubRoutines::_squareToLen = generate_squareToLen();
4269     }
4270     if (UseMulAddIntrinsic) {
4271       StubRoutines::_mulAdd = generate_mulAdd();
4272     }
4273 
4274 #ifndef _WINDOWS

4275     if (UseMontgomeryMultiplyIntrinsic) {
4276       StubRoutines::_montgomeryMultiply
4277         = CAST_FROM_FN_PTR(address, SharedRuntime::montgomery_multiply);
4278     }
4279     if (UseMontgomerySquareIntrinsic) {
4280       StubRoutines::_montgomerySquare
4281         = CAST_FROM_FN_PTR(address, SharedRuntime::montgomery_square);
4282     }
4283 #endif // WINDOWS
4284 #endif // COMPILER2
4285   }
4286 
4287  public:
4288   StubGenerator(CodeBuffer* code, bool all) : StubCodeGenerator(code) {
4289     if (all) {
4290       generate_all();
4291     } else {
4292       generate_initial();
4293     }
4294   }
4295 }; // end class declaration
4296 
4297 void StubGenerator_generate(CodeBuffer* code, bool all) {
4298   StubGenerator g(code, all);
4299 }


4253       StubRoutines::_ghash_processBlocks = generate_ghash_processBlocks();
4254     }
4255 
4256     // Safefetch stubs.
4257     generate_safefetch("SafeFetch32", sizeof(int),     &StubRoutines::_safefetch32_entry,
4258                                                        &StubRoutines::_safefetch32_fault_pc,
4259                                                        &StubRoutines::_safefetch32_continuation_pc);
4260     generate_safefetch("SafeFetchN", sizeof(intptr_t), &StubRoutines::_safefetchN_entry,
4261                                                        &StubRoutines::_safefetchN_fault_pc,
4262                                                        &StubRoutines::_safefetchN_continuation_pc);
4263 #ifdef COMPILER2
4264     if (UseMultiplyToLenIntrinsic) {
4265       StubRoutines::_multiplyToLen = generate_multiplyToLen();
4266     }
4267     if (UseSquareToLenIntrinsic) {
4268       StubRoutines::_squareToLen = generate_squareToLen();
4269     }
4270     if (UseMulAddIntrinsic) {
4271       StubRoutines::_mulAdd = generate_mulAdd();
4272     }
4273     
4274 // Visual Studio 2017 (and higher) has the compiler instrinisics required
4275 #if !(defined(_WINDOWS) && _MSC_VER < 1910)
4276     if (UseMontgomeryMultiplyIntrinsic) {
4277       StubRoutines::_montgomeryMultiply
4278         = CAST_FROM_FN_PTR(address, SharedRuntime::montgomery_multiply);
4279     }
4280     if (UseMontgomerySquareIntrinsic) {
4281       StubRoutines::_montgomerySquare
4282         = CAST_FROM_FN_PTR(address, SharedRuntime::montgomery_square);
4283     }
4284     #endif //! VC++ < 2017
4285 #endif // COMPILER2
4286   }
4287 
4288  public:
4289   StubGenerator(CodeBuffer* code, bool all) : StubCodeGenerator(code) {
4290     if (all) {
4291       generate_all();
4292     } else {
4293       generate_initial();
4294     }
4295   }
4296 }; // end class declaration
4297 
4298 void StubGenerator_generate(CodeBuffer* code, bool all) {
4299   StubGenerator g(code, all);
4300 }
< prev index next >