272 assert(FrameMap::nof_fpu_regs == 32, "double registers not handled here");
273 for (i = 0; i < FrameMap::nof_fpu_regs; i++) {
274 fpu_reg_save_offsets[i] = sp_offset;
275 sp_offset++;
276 }
277 reg_save_size_in_words = sp_offset - frame::memory_parameter_word_sp_offset;
278 // this should match assembler::total_frame_size_in_bytes, which
279 // isn't callable from this context. It's checked by an assert when
280 // it's used though.
281 frame_size_in_bytes = align_up(sp_offset * wordSize, 8);
282 }
283
284
285 OopMapSet* Runtime1::generate_exception_throw(StubAssembler* sasm, address target, bool has_argument) {
286 // make a frame and preserve the caller's caller-save registers
287 OopMap* oop_map = save_live_registers(sasm);
288 int call_offset;
289 if (!has_argument) {
290 call_offset = __ call_RT(noreg, noreg, target);
291 } else {
292 call_offset = __ call_RT(noreg, noreg, target, G4);
293 }
294 OopMapSet* oop_maps = new OopMapSet();
295 oop_maps->add_gc_map(call_offset, oop_map);
296
297 __ should_not_reach_here();
298 return oop_maps;
299 }
300
301
302 OopMapSet* Runtime1::generate_stub_call(StubAssembler* sasm, Register result, address target,
303 Register arg1, Register arg2, Register arg3) {
304 // make a frame and preserve the caller's caller-save registers
305 OopMap* oop_map = save_live_registers(sasm);
306
307 int call_offset;
308 if (arg1 == noreg) {
309 call_offset = __ call_RT(result, noreg, target);
310 } else if (arg2 == noreg) {
311 call_offset = __ call_RT(result, noreg, target, arg1);
312 } else if (arg3 == noreg) {
|
272 assert(FrameMap::nof_fpu_regs == 32, "double registers not handled here");
273 for (i = 0; i < FrameMap::nof_fpu_regs; i++) {
274 fpu_reg_save_offsets[i] = sp_offset;
275 sp_offset++;
276 }
277 reg_save_size_in_words = sp_offset - frame::memory_parameter_word_sp_offset;
278 // this should match assembler::total_frame_size_in_bytes, which
279 // isn't callable from this context. It's checked by an assert when
280 // it's used though.
281 frame_size_in_bytes = align_up(sp_offset * wordSize, 8);
282 }
283
284
285 OopMapSet* Runtime1::generate_exception_throw(StubAssembler* sasm, address target, bool has_argument) {
286 // make a frame and preserve the caller's caller-save registers
287 OopMap* oop_map = save_live_registers(sasm);
288 int call_offset;
289 if (!has_argument) {
290 call_offset = __ call_RT(noreg, noreg, target);
291 } else {
292 call_offset = __ call_RT(noreg, noreg, target, G4, G5);
293 }
294 OopMapSet* oop_maps = new OopMapSet();
295 oop_maps->add_gc_map(call_offset, oop_map);
296
297 __ should_not_reach_here();
298 return oop_maps;
299 }
300
301
302 OopMapSet* Runtime1::generate_stub_call(StubAssembler* sasm, Register result, address target,
303 Register arg1, Register arg2, Register arg3) {
304 // make a frame and preserve the caller's caller-save registers
305 OopMap* oop_map = save_live_registers(sasm);
306
307 int call_offset;
308 if (arg1 == noreg) {
309 call_offset = __ call_RT(result, noreg, target);
310 } else if (arg2 == noreg) {
311 call_offset = __ call_RT(result, noreg, target, arg1);
312 } else if (arg3 == noreg) {
|