< prev index next >

src/hotspot/cpu/s390/c1_MacroAssembler_s390.cpp

Print this page




  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   }


< prev index next >