240
241 void Runtime1::initialize_pd() {
242 int i;
243 int sp_offset = frame::native_abi_reg_args_size;
244
245 for (i = 0; i < FrameMap::nof_cpu_regs; i++) {
246 Register r = as_Register(i);
247 if (FrameMap::reg_needs_save(r)) {
248 cpu_reg_save_offsets[i] = sp_offset;
249 sp_offset += BytesPerWord;
250 }
251 }
252
253 for (i = 0; i < FrameMap::nof_fpu_regs; i++) {
254 fpu_reg_save_offsets[i] = sp_offset;
255 sp_offset += BytesPerWord;
256 }
257 frame_size_in_bytes = align_up(sp_offset, frame::alignment_in_bytes);
258 }
259
260
261 OopMapSet* Runtime1::generate_exception_throw(StubAssembler* sasm, address target, bool has_argument) {
262 // Make a frame and preserve the caller's caller-save registers.
263 OopMap* oop_map = save_live_registers(sasm);
264
265 int call_offset;
266 if (!has_argument) {
267 call_offset = __ call_RT(noreg, noreg, target);
268 } else {
269 call_offset = __ call_RT(noreg, noreg, target, R4_ARG2);
270 }
271 OopMapSet* oop_maps = new OopMapSet();
272 oop_maps->add_gc_map(call_offset, oop_map);
273
274 __ should_not_reach_here();
275 return oop_maps;
276 }
277
278 static OopMapSet* generate_exception_throw_with_stack_parms(StubAssembler* sasm, address target,
279 int stack_parms) {
|
240
241 void Runtime1::initialize_pd() {
242 int i;
243 int sp_offset = frame::native_abi_reg_args_size;
244
245 for (i = 0; i < FrameMap::nof_cpu_regs; i++) {
246 Register r = as_Register(i);
247 if (FrameMap::reg_needs_save(r)) {
248 cpu_reg_save_offsets[i] = sp_offset;
249 sp_offset += BytesPerWord;
250 }
251 }
252
253 for (i = 0; i < FrameMap::nof_fpu_regs; i++) {
254 fpu_reg_save_offsets[i] = sp_offset;
255 sp_offset += BytesPerWord;
256 }
257 frame_size_in_bytes = align_up(sp_offset, frame::alignment_in_bytes);
258 }
259
260 uint Runtime1::runtime_blob_current_thread_offset(frame f) {
261 Unimplemented();
262 return 0;
263 }
264
265 OopMapSet* Runtime1::generate_exception_throw(StubAssembler* sasm, address target, bool has_argument) {
266 // Make a frame and preserve the caller's caller-save registers.
267 OopMap* oop_map = save_live_registers(sasm);
268
269 int call_offset;
270 if (!has_argument) {
271 call_offset = __ call_RT(noreg, noreg, target);
272 } else {
273 call_offset = __ call_RT(noreg, noreg, target, R4_ARG2);
274 }
275 OopMapSet* oop_maps = new OopMapSet();
276 oop_maps->add_gc_map(call_offset, oop_map);
277
278 __ should_not_reach_here();
279 return oop_maps;
280 }
281
282 static OopMapSet* generate_exception_throw_with_stack_parms(StubAssembler* sasm, address target,
283 int stack_parms) {
|