< prev index next >

src/hotspot/cpu/s390/c1_MacroAssembler_s390.cpp

Print this page

 52       z_ltgr(receiver, receiver);
 53       z_bre(ic_miss);
 54     }
 55   }
 56 
 57   compare_klass_ptr(iCache, klass_offset, receiver, false);
 58   z_bre(ic_hit);
 59 
 60   // If icache check fails, then jump to runtime routine.
 61   // Note: RECEIVER must still contain the receiver!
 62   load_const_optimized(Z_R1_scratch, AddressLiteral(SharedRuntime::get_ic_miss_stub()));
 63   z_br(Z_R1_scratch);
 64   align(CodeEntryAlignment);
 65   bind(ic_hit);
 66 }
 67 
 68 void C1_MacroAssembler::explicit_null_check(Register base) {
 69   ShouldNotCallThis(); // unused
 70 }
 71 
 72 void C1_MacroAssembler::build_frame(int frame_size_in_bytes, int bang_size_in_bytes) {
 73   assert(bang_size_in_bytes >= frame_size_in_bytes, "stack bang size incorrect");
 74   generate_stack_overflow_check(bang_size_in_bytes);
 75   save_return_pc();
 76   push_frame(frame_size_in_bytes);
 77 
 78   BarrierSetAssembler* bs = BarrierSet::barrier_set()->barrier_set_assembler();
 79   bs->nmethod_entry_barrier(this);
 80 }
 81 
 82 void C1_MacroAssembler::verified_entry(bool breakAtEntry) {
 83   if (breakAtEntry) z_illtrap(0xC1);
 84 }
 85 
 86 void C1_MacroAssembler::lock_object(Register hdr, Register obj, Register disp_hdr, Label& slow_case) {
 87   const int hdr_offset = oopDesc::mark_offset_in_bytes();
 88   assert_different_registers(hdr, obj, disp_hdr);
 89   NearLabel done;
 90 
 91   verify_oop(obj, FILE_AND_LINE);
 92 

 52       z_ltgr(receiver, receiver);
 53       z_bre(ic_miss);
 54     }
 55   }
 56 
 57   compare_klass_ptr(iCache, klass_offset, receiver, false);
 58   z_bre(ic_hit);
 59 
 60   // If icache check fails, then jump to runtime routine.
 61   // Note: RECEIVER must still contain the receiver!
 62   load_const_optimized(Z_R1_scratch, AddressLiteral(SharedRuntime::get_ic_miss_stub()));
 63   z_br(Z_R1_scratch);
 64   align(CodeEntryAlignment);
 65   bind(ic_hit);
 66 }
 67 
 68 void C1_MacroAssembler::explicit_null_check(Register base) {
 69   ShouldNotCallThis(); // unused
 70 }
 71 
 72 void C1_MacroAssembler::build_frame(int frame_size_in_bytes, int bang_size_in_bytes, int max_monitors) {
 73   assert(bang_size_in_bytes >= frame_size_in_bytes, "stack bang size incorrect");
 74   generate_stack_overflow_check(bang_size_in_bytes);
 75   save_return_pc();
 76   push_frame(frame_size_in_bytes);
 77 
 78   BarrierSetAssembler* bs = BarrierSet::barrier_set()->barrier_set_assembler();
 79   bs->nmethod_entry_barrier(this);
 80 }
 81 
 82 void C1_MacroAssembler::verified_entry(bool breakAtEntry) {
 83   if (breakAtEntry) z_illtrap(0xC1);
 84 }
 85 
 86 void C1_MacroAssembler::lock_object(Register hdr, Register obj, Register disp_hdr, Label& slow_case) {
 87   const int hdr_offset = oopDesc::mark_offset_in_bytes();
 88   assert_different_registers(hdr, obj, disp_hdr);
 89   NearLabel done;
 90 
 91   verify_oop(obj, FILE_AND_LINE);
 92 
< prev index next >