56 57 // If icache check fails, then jump to runtime routine. 58 // Note: RECEIVER must still contain the receiver! 59 load_const_optimized(Z_R1_scratch, AddressLiteral(SharedRuntime::get_ic_miss_stub())); 60 z_br(Z_R1_scratch); 61 align(CodeEntryAlignment); 62 bind(ic_hit); 63 } 64 65 void C1_MacroAssembler::explicit_null_check(Register base) { 66 ShouldNotCallThis(); // unused 67 } 68 69 void C1_MacroAssembler::build_frame(int frame_size_in_bytes, int bang_size_in_bytes) { 70 assert(bang_size_in_bytes >= frame_size_in_bytes, "stack bang size incorrect"); 71 generate_stack_overflow_check(bang_size_in_bytes); 72 save_return_pc(); 73 push_frame(frame_size_in_bytes); 74 } 75 76 void C1_MacroAssembler::unverified_entry(Register receiver, Register ic_klass) { 77 ShouldNotCallThis(); // unused 78 } 79 80 void C1_MacroAssembler::verified_entry() { 81 if (C1Breakpoint) z_illtrap(0xC1); 82 } 83 84 void C1_MacroAssembler::lock_object(Register hdr, Register obj, Register disp_hdr, Label& slow_case) { 85 const int hdr_offset = oopDesc::mark_offset_in_bytes(); 86 assert_different_registers(hdr, obj, disp_hdr); 87 NearLabel done; 88 89 verify_oop(obj); 90 91 // Load object header. 92 z_lg(hdr, Address(obj, hdr_offset)); 93 94 // Save object being locked into the BasicObjectLock... 95 z_stg(obj, Address(disp_hdr, BasicObjectLock::obj_offset_in_bytes())); 96 97 if (UseBiasedLocking) { 98 biased_locking_enter(obj, hdr, Z_R1_scratch, Z_R0_scratch, done, &slow_case); 99 } | 56 57 // If icache check fails, then jump to runtime routine. 58 // Note: RECEIVER must still contain the receiver! 59 load_const_optimized(Z_R1_scratch, AddressLiteral(SharedRuntime::get_ic_miss_stub())); 60 z_br(Z_R1_scratch); 61 align(CodeEntryAlignment); 62 bind(ic_hit); 63 } 64 65 void C1_MacroAssembler::explicit_null_check(Register base) { 66 ShouldNotCallThis(); // unused 67 } 68 69 void C1_MacroAssembler::build_frame(int frame_size_in_bytes, int bang_size_in_bytes) { 70 assert(bang_size_in_bytes >= frame_size_in_bytes, "stack bang size incorrect"); 71 generate_stack_overflow_check(bang_size_in_bytes); 72 save_return_pc(); 73 push_frame(frame_size_in_bytes); 74 } 75 76 void C1_MacroAssembler::verified_entry() { 77 if (C1Breakpoint) z_illtrap(0xC1); 78 } 79 80 void C1_MacroAssembler::lock_object(Register hdr, Register obj, Register disp_hdr, Label& slow_case) { 81 const int hdr_offset = oopDesc::mark_offset_in_bytes(); 82 assert_different_registers(hdr, obj, disp_hdr); 83 NearLabel done; 84 85 verify_oop(obj); 86 87 // Load object header. 88 z_lg(hdr, Address(obj, hdr_offset)); 89 90 // Save object being locked into the BasicObjectLock... 91 z_stg(obj, Address(disp_hdr, BasicObjectLock::obj_offset_in_bytes())); 92 93 if (UseBiasedLocking) { 94 biased_locking_enter(obj, hdr, Z_R1_scratch, Z_R0_scratch, done, &slow_case); 95 } |