< prev index next > src/hotspot/cpu/arm/stubGenerator_arm.cpp
Print this page
}
//---------------------------------------------------------------------------
// Initialization
+ void generate_preuniverse_stubs() {
+ // Atomics are used in universe initialization code (e.g. CDS relocation),
+ // therefore we need to generate real stubs very early on.
+ StubRoutines::_atomic_add_entry = generate_atomic_add();
+ StubRoutines::_atomic_xchg_entry = generate_atomic_xchg();
+ StubRoutines::_atomic_cmpxchg_entry = generate_atomic_cmpxchg();
+ StubRoutines::_atomic_cmpxchg_long_entry = generate_atomic_cmpxchg_long();
+ StubRoutines::Arm::_atomic_load_long_entry = generate_atomic_load_long();
+ StubRoutines::Arm::_atomic_store_long_entry = generate_atomic_store_long();
+ }
+
void generate_initial_stubs() {
// Generates all stubs and initializes the entry points
//------------------------------------------------------------------------------------------------------------------------
// entry points that exist in all platforms
UnsafeMemoryAccess::create_table(32 + 4); // 32 for copyMemory; 4 for setMemory
}
// integer division used both by interpreter and compiler
StubRoutines::Arm::_idiv_irem_entry = generate_idiv_irem();
-
- StubRoutines::_atomic_add_entry = generate_atomic_add();
- StubRoutines::_atomic_xchg_entry = generate_atomic_xchg();
- StubRoutines::_atomic_cmpxchg_entry = generate_atomic_cmpxchg();
- StubRoutines::_atomic_cmpxchg_long_entry = generate_atomic_cmpxchg_long();
- StubRoutines::Arm::_atomic_load_long_entry = generate_atomic_load_long();
- StubRoutines::Arm::_atomic_store_long_entry = generate_atomic_store_long();
-
}
void generate_continuation_stubs() {
// Continuation stubs:
StubRoutines::_cont_thaw = generate_cont_thaw();
}
public:
StubGenerator(CodeBuffer* code, StubGenBlobId blob_id) : StubCodeGenerator(code, blob_id) {
switch(blob_id) {
+ case preuniverse_id:
+ generate_preuniverse_stubs();
+ break;
case initial_id:
generate_initial_stubs();
break;
case continuation_id:
generate_continuation_stubs();
< prev index next >