< prev index next >

src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.cpp

Print this page
rev 53399 : Redo: Avoid stub when calling to write-barrier from C2, remove all related code

@@ -39,11 +39,10 @@
 #endif
 
 #define __ masm->
 
 address ShenandoahBarrierSetAssembler::_shenandoah_wb = NULL;
-address ShenandoahBarrierSetAssembler::_shenandoah_wb_C = NULL;
 
 void ShenandoahBarrierSetAssembler::arraycopy_prologue(MacroAssembler* masm, DecoratorSet decorators, bool is_oop,
                                                        Register addr, Register count, RegSet saved_regs) {
   if (is_oop) {
     bool dest_uninitialized = (decorators & IS_DEST_UNINITIALIZED) != 0;

@@ -615,15 +614,10 @@
 address ShenandoahBarrierSetAssembler::shenandoah_wb() {
   assert(_shenandoah_wb != NULL, "need write barrier stub");
   return _shenandoah_wb;
 }
 
-address ShenandoahBarrierSetAssembler::shenandoah_wb_C() {
-  assert(_shenandoah_wb_C != NULL, "need write barrier stub");
-  return _shenandoah_wb_C;
-}
-
 #define __ cgen->assembler()->
 
 // Shenandoah write barrier.
 //
 // Input:

@@ -631,45 +625,35 @@
 //
 // Output:
 //   r0: Pointer to evacuated OOP.
 //
 // Trash rscratch1, rscratch2.  Preserve everything else.
-address ShenandoahBarrierSetAssembler::generate_shenandoah_wb(StubCodeGenerator* cgen, bool c_abi, bool do_cset_test) {
+address ShenandoahBarrierSetAssembler::generate_shenandoah_wb(StubCodeGenerator* cgen) {
 
   __ align(6);
   StubCodeMark mark(cgen, "StubRoutines", "shenandoah_wb");
   address start = __ pc();
 
-  if (do_cset_test) {
     Label work;
     __ mov(rscratch2, ShenandoahHeap::in_cset_fast_test_addr());
     __ lsr(rscratch1, r0, ShenandoahHeapRegion::region_size_bytes_shift_jint());
     __ ldrb(rscratch2, Address(rscratch2, rscratch1));
     __ tbnz(rscratch2, 0, work);
     __ ret(lr);
     __ bind(work);
-  }
 
   Register obj = r0;
 
   __ enter(); // required for proper stackwalking of RuntimeStub frame
 
-  if (!c_abi) {
     __ push_call_clobbered_registers();
-  } else {
-    __ push_call_clobbered_fp_registers();
-  }
 
   __ mov(lr, CAST_FROM_FN_PTR(address, ShenandoahRuntime::write_barrier_JRT));
   __ blrt(lr, 1, 0, MacroAssembler::ret_type_integral);
-  if (!c_abi) {
     __ mov(rscratch1, obj);
     __ pop_call_clobbered_registers();
     __ mov(obj, rscratch1);
-  } else {
-    __ pop_call_clobbered_fp_registers();
-  }
 
   __ leave(); // required for proper stackwalking of RuntimeStub frame
   __ ret(lr);
 
   return start;

@@ -682,9 +666,8 @@
     int stub_code_size = 2048;
     ResourceMark rm;
     BufferBlob* bb = BufferBlob::create("shenandoah_barrier_stubs", stub_code_size);
     CodeBuffer buf(bb);
     StubCodeGenerator cgen(&buf);
-    _shenandoah_wb = generate_shenandoah_wb(&cgen, false, true);
-    _shenandoah_wb_C = generate_shenandoah_wb(&cgen, true, false);
+    _shenandoah_wb = generate_shenandoah_wb(&cgen);
   }
 }
< prev index next >