157
158 _max_oop_map_stack_offset = (OopMapValue::register_mask - VMRegImpl::stack2reg(0)->value()) * VMRegImpl::stack_slot_size;
159 int max_oop_map_stack_index = _max_oop_map_stack_offset / VMRegImpl::stack_slot_size;
160 assert(OopMapValue::legal_vm_reg_name(VMRegImpl::stack2reg(max_oop_map_stack_index)), "should be valid");
161 assert(!OopMapValue::legal_vm_reg_name(VMRegImpl::stack2reg(max_oop_map_stack_index + 1)), "should be invalid");
162
163 BarrierSet* bs = Universe::heap()->barrier_set();
164 switch (bs->kind()) {
165 case BarrierSet::CardTableModRef:
166 case BarrierSet::CardTableForRS:
167 case BarrierSet::CardTableExtension:
168 case BarrierSet::G1SATBCT:
169 case BarrierSet::G1SATBCTLogging: {
170 jbyte* base = barrier_set_cast<CardTableModRefBS>(bs)->byte_map_base;
171 assert(base != 0, "unexpected byte_map_base");
172 cardtable_start_address = base;
173 cardtable_shift = CardTableModRefBS::card_shift;
174 break;
175 }
176 case BarrierSet::ModRef:
177 cardtable_start_address = 0;
178 cardtable_shift = 0;
179 // No post barriers
180 break;
181 default:
182 ShouldNotReachHere();
183 break;
184 }
185
186 vm_page_size = os::vm_page_size();
187
188 #define SET_TRIGFUNC(name) \
189 if (StubRoutines::name() != NULL) { \
190 name = StubRoutines::name(); \
191 } else { \
192 name = CAST_FROM_FN_PTR(address, SharedRuntime::name); \
193 }
194
195 SET_TRIGFUNC(dsin);
196 SET_TRIGFUNC(dcos);
|
157
158 _max_oop_map_stack_offset = (OopMapValue::register_mask - VMRegImpl::stack2reg(0)->value()) * VMRegImpl::stack_slot_size;
159 int max_oop_map_stack_index = _max_oop_map_stack_offset / VMRegImpl::stack_slot_size;
160 assert(OopMapValue::legal_vm_reg_name(VMRegImpl::stack2reg(max_oop_map_stack_index)), "should be valid");
161 assert(!OopMapValue::legal_vm_reg_name(VMRegImpl::stack2reg(max_oop_map_stack_index + 1)), "should be invalid");
162
163 BarrierSet* bs = Universe::heap()->barrier_set();
164 switch (bs->kind()) {
165 case BarrierSet::CardTableModRef:
166 case BarrierSet::CardTableForRS:
167 case BarrierSet::CardTableExtension:
168 case BarrierSet::G1SATBCT:
169 case BarrierSet::G1SATBCTLogging: {
170 jbyte* base = barrier_set_cast<CardTableModRefBS>(bs)->byte_map_base;
171 assert(base != 0, "unexpected byte_map_base");
172 cardtable_start_address = base;
173 cardtable_shift = CardTableModRefBS::card_shift;
174 break;
175 }
176 case BarrierSet::ModRef:
177 case BarrierSet::Epsilon:
178 cardtable_start_address = 0;
179 cardtable_shift = 0;
180 // No post barriers
181 break;
182 default:
183 ShouldNotReachHere();
184 break;
185 }
186
187 vm_page_size = os::vm_page_size();
188
189 #define SET_TRIGFUNC(name) \
190 if (StubRoutines::name() != NULL) { \
191 name = StubRoutines::name(); \
192 } else { \
193 name = CAST_FROM_FN_PTR(address, SharedRuntime::name); \
194 }
195
196 SET_TRIGFUNC(dsin);
197 SET_TRIGFUNC(dcos);
|