changeset 9453:1650eab95d25

Rename interpreter barriers.
author rkennke
date Thu, 20 Aug 2015 17:52:12 +0200
parents f7786999dcd2
children 1538d2529fb8
files src/cpu/x86/vm/c1_LIRAssembler_x86.cpp src/cpu/x86/vm/interp_masm_x86.cpp src/cpu/x86/vm/jniFastGetField_x86_64.cpp src/cpu/x86/vm/macroAssembler_x86.cpp src/cpu/x86/vm/methodHandles_x86.cpp src/cpu/x86/vm/sharedRuntime_x86_64.cpp src/cpu/x86/vm/shenandoahBarrierSet_x86.cpp src/cpu/x86/vm/templateInterpreter_x86_64.cpp src/cpu/x86/vm/templateTable_x86.cpp src/share/vm/gc/shared/barrierSet.hpp src/share/vm/gc/shenandoah/shenandoahBarrierSet.hpp
diffstat 11 files changed, 82 insertions(+), 92 deletions(-) [+]
line wrap: on
line diff
--- a/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp	Thu Aug 20 12:10:37 2015 +0200
+++ b/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp	Thu Aug 20 17:52:12 2015 +0200
@@ -2036,11 +2036,11 @@
           __ jcc(Assembler::equal, done);
 
           // Resolve the original cmp value.
-          oopDesc::bs()->compile_resolve_oop(masm(), op->tmp1()->as_register());
+          oopDesc::bs()->interpreter_read_barrier(masm(), op->tmp1()->as_register());
           // Resolve the old value at address. We get the old value in cmp/rax
           // when the comparison in cmpxchg failed.
           __ movptr(op->tmp2()->as_register(), cmpval);
-          oopDesc::bs()->compile_resolve_oop(masm(), op->tmp2()->as_register());
+          oopDesc::bs()->interpreter_read_barrier(masm(), op->tmp2()->as_register());
 
           // We're done if the expected/cmp value is not the same as old. It's a valid
           // cmpxchg failure then. Otherwise we need special treatment for Shenandoah
--- a/src/cpu/x86/vm/interp_masm_x86.cpp	Thu Aug 20 12:10:37 2015 +0200
+++ b/src/cpu/x86/vm/interp_masm_x86.cpp	Thu Aug 20 17:52:12 2015 +0200
@@ -1063,7 +1063,7 @@
     movptr(obj_reg, Address(lock_reg, obj_offset));
 
     // Need to preemptively evacuate obj because we CAS the mark word later.
-    oopDesc::bs()->compile_resolve_oop_for_write(this, obj_reg, false, 0, 1, BarrierSet::ss_c_rarg1);
+    oopDesc::bs()->interpreter_write_barrier(this, obj_reg, false, 0, 1, BarrierSet::ss_c_rarg1);
 
     if (UseBiasedLocking) {
       biased_locking_enter(lock_reg, obj_reg, swap_reg, tmp_reg, false, done, &slow_case);
@@ -1161,7 +1161,7 @@
     movptr(obj_reg, Address(lock_reg, BasicObjectLock::obj_offset_in_bytes()));
 
     // Need to preemptively evacuate obj because we CAS the mark word later.
-    oopDesc::bs()->compile_resolve_oop_for_write(this, obj_reg, false, 0, 1, BarrierSet::ss_c_rarg1);
+    oopDesc::bs()->interpreter_write_barrier(this, obj_reg, false, 0, 1, BarrierSet::ss_c_rarg1);
 
     // Free entry
     movptr(Address(lock_reg, BasicObjectLock::obj_offset_in_bytes()), (int32_t)NULL_WORD);
--- a/src/cpu/x86/vm/jniFastGetField_x86_64.cpp	Thu Aug 20 12:10:37 2015 +0200
+++ b/src/cpu/x86/vm/jniFastGetField_x86_64.cpp	Thu Aug 20 17:52:12 2015 +0200
@@ -81,7 +81,7 @@
                                                 // robj is data dependent on rcounter.
   }
   __ movptr(robj, Address(robj, 0));             // *obj
-  oopDesc::bs()->compile_resolve_oop(masm, robj);
+  oopDesc::bs()->interpreter_read_barrier(masm, robj);
   __ mov   (roffset, c_rarg2);
   __ shrptr(roffset, 2);                         // offset
 
@@ -180,7 +180,7 @@
                                                 // robj is data dependent on rcounter.
   }
   __ movptr(robj, Address(robj, 0));             // *obj
-  oopDesc::bs()->compile_resolve_oop(masm, robj);
+  oopDesc::bs()->interpreter_read_barrier(masm, robj);
   __ mov   (roffset, c_rarg2);
   __ shrptr(roffset, 2);                         // offset
 
--- a/src/cpu/x86/vm/macroAssembler_x86.cpp	Thu Aug 20 12:10:37 2015 +0200
+++ b/src/cpu/x86/vm/macroAssembler_x86.cpp	Thu Aug 20 17:52:12 2015 +0200
@@ -3680,7 +3680,7 @@
     // NOTE: cmpl is plenty here to provoke a segv
 
     if (ShenandoahVerifyReadsToFromSpace) {
-      oopDesc::bs()->compile_resolve_oop(this, reg);
+      oopDesc::bs()->interpreter_read_barrier(this, reg);
     }
 
     cmpptr(rax, Address(reg, 0));
@@ -5657,7 +5657,7 @@
 
 void MacroAssembler::load_klass(Register dst, Register src) {
   if (ShenandoahVerifyReadsToFromSpace) {
-    oopDesc::bs()->compile_resolve_oop(this, src);
+    oopDesc::bs()->interpreter_read_barrier(this, src);
   }
 #ifdef _LP64
   if (UseCompressedClassPointers) {
--- a/src/cpu/x86/vm/methodHandles_x86.cpp	Thu Aug 20 12:10:37 2015 +0200
+++ b/src/cpu/x86/vm/methodHandles_x86.cpp	Thu Aug 20 17:52:12 2015 +0200
@@ -165,10 +165,10 @@
   //NOT_PRODUCT({ FlagSetting fs(TraceMethodHandles, true); trace_method_handle(_masm, "LZMH"); });
 
   // Load the invoker, as MH -> MH.form -> LF.vmentry
-  oopDesc::bs()->compile_resolve_oop(_masm, recv);
+  oopDesc::bs()->interpreter_read_barrier(_masm, recv);
   __ verify_oop(recv);
   __ load_heap_oop(method_temp, Address(recv, NONZERO(java_lang_invoke_MethodHandle::form_offset_in_bytes())));
-  oopDesc::bs()->compile_resolve_oop(_masm, method_temp);
+  oopDesc::bs()->interpreter_read_barrier(_masm, method_temp);
   __ verify_oop(method_temp);
   __ load_heap_oop(method_temp, Address(method_temp, NONZERO(java_lang_invoke_LambdaForm::vmentry_offset_in_bytes())));
   __ verify_oop(method_temp);
@@ -183,7 +183,7 @@
                         sizeof(u2), /*is_signed*/ false);
     // assert(sizeof(u2) == sizeof(Method::_size_of_parameters), "");
     __ movptr(temp2, __ argument_address(temp2, -1));
-    oopDesc::bs()->compile_resolve_oop(_masm, temp2);
+    oopDesc::bs()->interpreter_read_barrier(_masm, temp2);
     Label L;
     __ cmpptr(recv, temp2);
     __ jcc(Assembler::equal, L);
@@ -380,7 +380,7 @@
     //  rsi/r13 - interpreter linkage (if interpreted)
     //  rcx, rdx, rsi, rdi, r8 - compiler arguments (if compiled)
 
-    oopDesc::bs()->compile_resolve_oop(_masm, member_reg);
+    oopDesc::bs()->interpreter_read_barrier(_masm, member_reg);
     Label L_incompatible_class_change_error;
     switch (iid) {
     case vmIntrinsics::_linkToSpecial:
--- a/src/cpu/x86/vm/sharedRuntime_x86_64.cpp	Thu Aug 20 12:10:37 2015 +0200
+++ b/src/cpu/x86/vm/sharedRuntime_x86_64.cpp	Thu Aug 20 17:52:12 2015 +0200
@@ -2446,7 +2446,7 @@
 
     // Load the oop from the handle
     __ movptr(obj_reg, Address(oop_handle_reg, 0));
-    oopDesc::bs()->compile_resolve_oop(masm, obj_reg);
+    oopDesc::bs()->interpreter_read_barrier(masm, obj_reg);
     if (UseBiasedLocking) {
       __ biased_locking_enter(lock_reg, obj_reg, swap_reg, rscratch1, false, lock_done, &slow_path_lock);
     }
@@ -2615,7 +2615,7 @@
 
     // Get locked oop from the handle we passed to jni
     __ movptr(obj_reg, Address(oop_handle_reg, 0));
-    oopDesc::bs()->compile_resolve_oop(masm, obj_reg);
+    oopDesc::bs()->interpreter_read_barrier(masm, obj_reg);
 
     Label done;
 
--- a/src/cpu/x86/vm/shenandoahBarrierSet_x86.cpp	Thu Aug 20 12:10:37 2015 +0200
+++ b/src/cpu/x86/vm/shenandoahBarrierSet_x86.cpp	Thu Aug 20 17:52:12 2015 +0200
@@ -146,18 +146,18 @@
 }
 
 // TODO: The following should really live in an X86 specific subclass.
-void ShenandoahBarrierSet::compile_resolve_oop(MacroAssembler* masm, Register dst) {
+void ShenandoahBarrierSet::interpreter_read_barrier(MacroAssembler* masm, Register dst) {
   if (ShenandoahReadBarrier) {
 
     Label is_null;
     __ testptr(dst, dst);
     __ jcc(Assembler::zero, is_null);
-    compile_resolve_oop_not_null(masm, dst);
+    interpreter_read_barrier_not_null(masm, dst);
     __ bind(is_null);
   }
 }
 
-void ShenandoahBarrierSet::compile_resolve_oop_not_null(MacroAssembler* masm, Register dst) {
+void ShenandoahBarrierSet::interpreter_read_barrier_not_null(MacroAssembler* masm, Register dst) {
   if (ShenandoahReadBarrier) {
     if (ShenandoahVerifyReadsToFromSpace) {
       compile_resolve_oop_runtime(masm, dst);
@@ -167,11 +167,11 @@
   }
 }
 
-void ShenandoahBarrierSet::compile_resolve_oop_for_write(MacroAssembler* masm, Register dst, bool explicit_null_check, int stack_adjust, int num_state_save, ...) {
+void ShenandoahBarrierSet::interpreter_write_barrier(MacroAssembler* masm, Register dst, bool explicit_null_check, int stack_adjust, int num_state_save, ...) {
 
   if (! ShenandoahWriteBarrier) {
     assert(! ShenandoahConcurrentEvacuation, "Can only do this without concurrent evacuation");
-    return compile_resolve_oop(masm, dst);
+    return interpreter_read_barrier(masm, dst);
   }
       
   assert(dst != rscratch1, "different regs");
@@ -193,7 +193,7 @@
   __ cmpb(evacuation_in_progress, 0);
 
   // Now check if evacuation is in progress.
-  compile_resolve_oop_not_null(masm, dst);
+  interpreter_read_barrier_not_null(masm, dst);
 
   __ jcc(Assembler::equal, done);
   __ push(rscratch1);
@@ -337,15 +337,4 @@
   __ bind(done);
 }
 
-/*
-void ShenandoahBarrierSet::compile_resolve_oop_for_write(MacroAssembler* masm, Register dst) {
-
-  Label is_null;
-  __ testptr(dst, dst);
-  __ jcc(Assembler::zero, is_null);
-  compile_resolve_oop_for_write_not_null(masm, dst);
-  __ bind(is_null);
-
-}
-*/
 #endif
--- a/src/cpu/x86/vm/templateInterpreter_x86_64.cpp	Thu Aug 20 12:10:37 2015 +0200
+++ b/src/cpu/x86/vm/templateInterpreter_x86_64.cpp	Thu Aug 20 17:52:12 2015 +0200
@@ -545,7 +545,7 @@
 #endif // ASSERT
 
     __ bind(done);
-    oopDesc::bs()->compile_resolve_oop(_masm, rax);
+    oopDesc::bs()->interpreter_read_barrier(_masm, rax);
   }
 
   // add space for monitor & lock
@@ -649,7 +649,7 @@
     __ testptr(rax, rax);
     __ jcc(Assembler::zero, slow_path);
 
-    oopDesc::bs()->compile_resolve_oop_not_null(_masm, rax);
+    oopDesc::bs()->interpreter_read_barrier_not_null(_masm, rax);
 
     // rax: local 0
     // rbx: method (but can be used as scratch now)
@@ -781,7 +781,7 @@
       __ movl(crc,   Address(rsp, 5*wordSize)); // Initial CRC
     } else {
       __ movptr(buf, Address(rsp, 3*wordSize)); // byte[] array
-      oopDesc::bs()->compile_resolve_oop_not_null(_masm, buf);
+      oopDesc::bs()->interpreter_read_barrier_not_null(_masm, buf);
       __ addptr(buf, arrayOopDesc::base_offset_in_bytes(T_BYTE)); // + header size
       __ movl2ptr(off, Address(rsp, 2*wordSize)); // offset
       __ addq(buf, off); // + offset
--- a/src/cpu/x86/vm/templateTable_x86.cpp	Thu Aug 20 12:10:37 2015 +0200
+++ b/src/cpu/x86/vm/templateTable_x86.cpp	Thu Aug 20 17:52:12 2015 +0200
@@ -191,7 +191,7 @@
             __ movptr(new_val, val);
           }
           // For Shenandoah, make sure we only store refs into to-space.
-          oopDesc::bs()->compile_resolve_oop(_masm, val);
+          oopDesc::bs()->interpreter_read_barrier(_masm, val);
 
           __ store_heap_oop(Address(rdx, 0), val);
           __ g1_write_barrier_post(rdx /* store_adr */,
@@ -689,7 +689,7 @@
   // check array
 
   if (ShenandoahVerifyReadsToFromSpace) {
-    oopDesc::bs()->compile_resolve_oop(_masm, array);
+    oopDesc::bs()->interpreter_read_barrier(_masm, array);
   }
 
   __ null_check(array, arrayOopDesc::length_offset_in_bytes());
@@ -712,7 +712,7 @@
   // rax: index
   // rdx: array
   index_check(rdx, rax); // kills rbx
-  oopDesc::bs()->compile_resolve_oop_not_null(_masm, rdx);
+  oopDesc::bs()->interpreter_read_barrier_not_null(_masm, rdx);
   __ movl(rax, Address(rdx, rax,
                        Address::times_4,
                        arrayOopDesc::base_offset_in_bytes(T_INT)));
@@ -725,7 +725,7 @@
   index_check(rdx, rax); // kills rbx
   NOT_LP64(__ mov(rbx, rax));
   // rbx,: index
-  oopDesc::bs()->compile_resolve_oop_not_null(_masm, rdx);
+  oopDesc::bs()->interpreter_read_barrier_not_null(_masm, rdx);
   __ movptr(rax, Address(rdx, rbx, Address::times_8, arrayOopDesc::base_offset_in_bytes(T_LONG) + 0 * wordSize));
   NOT_LP64(__ movl(rdx, Address(rdx, rbx, Address::times_8, arrayOopDesc::base_offset_in_bytes(T_LONG) + 1 * wordSize)));
 }
@@ -737,7 +737,7 @@
   // rax: index
   // rdx: array
   index_check(rdx, rax); // kills rbx
-  oopDesc::bs()->compile_resolve_oop_not_null(_masm, rdx);
+  oopDesc::bs()->interpreter_read_barrier_not_null(_masm, rdx);
   LP64_ONLY(__ movflt(xmm0, Address(rdx, rax,
                          Address::times_4,
                          arrayOopDesc::base_offset_in_bytes(T_FLOAT))));
@@ -749,7 +749,7 @@
   // rax: index
   // rdx: array
   index_check(rdx, rax); // kills rbx
-  oopDesc::bs()->compile_resolve_oop_not_null(_masm, rdx);
+  oopDesc::bs()->interpreter_read_barrier_not_null(_masm, rdx);
   LP64_ONLY(__ movdbl(xmm0, Address(rdx, rax,
                           Address::times_8,
                           arrayOopDesc::base_offset_in_bytes(T_DOUBLE))));
@@ -761,7 +761,7 @@
   // rax: index
   // rdx: array
   index_check(rdx, rax); // kills rbx
-  oopDesc::bs()->compile_resolve_oop_not_null(_masm, rdx);
+  oopDesc::bs()->interpreter_read_barrier_not_null(_masm, rdx);
   __ load_heap_oop(rax, Address(rdx, rax,
                                 UseCompressedOops ? Address::times_4 : Address::times_ptr,
                                 arrayOopDesc::base_offset_in_bytes(T_OBJECT)));
@@ -772,7 +772,7 @@
   // rax: index
   // rdx: array
   index_check(rdx, rax); // kills rbx
-  oopDesc::bs()->compile_resolve_oop_not_null(_masm, rdx);
+  oopDesc::bs()->interpreter_read_barrier_not_null(_masm, rdx);
   __ load_signed_byte(rax, Address(rdx, rax, Address::times_1, arrayOopDesc::base_offset_in_bytes(T_BYTE)));
 }
 
@@ -781,7 +781,7 @@
   // rax: index
   // rdx: array
   index_check(rdx, rax); // kills rbx
-  oopDesc::bs()->compile_resolve_oop_not_null(_masm, rdx);
+  oopDesc::bs()->interpreter_read_barrier_not_null(_masm, rdx);
   __ load_unsigned_short(rax, Address(rdx, rax, Address::times_2, arrayOopDesc::base_offset_in_bytes(T_CHAR)));
 }
 
@@ -795,7 +795,7 @@
   // rax: index
   // rdx: array
   index_check(rdx, rax); // kills rbx
-  oopDesc::bs()->compile_resolve_oop_not_null(_masm, rdx);
+  oopDesc::bs()->interpreter_read_barrier_not_null(_masm, rdx);
   __ load_unsigned_short(rax,
                          Address(rdx, rax,
                                  Address::times_2,
@@ -808,7 +808,7 @@
   // rax: index
   // rdx: array
   index_check(rdx, rax); // kills rbx
-  oopDesc::bs()->compile_resolve_oop_not_null(_masm, rdx);
+  oopDesc::bs()->interpreter_read_barrier_not_null(_masm, rdx);
   __ load_signed_short(rax, Address(rdx, rax, Address::times_2, arrayOopDesc::base_offset_in_bytes(T_SHORT)));
 }
 
@@ -1007,7 +1007,7 @@
   // rbx: index
   // rdx: array
   index_check(rdx, rbx); // prefer index in rbx
-  oopDesc::bs()->compile_resolve_oop_for_write(_masm, rdx, false, 0, 3, BarrierSet::noreg, BarrierSet::ss_rbx, BarrierSet::ss_rax);
+  oopDesc::bs()->interpreter_write_barrier(_masm, rdx, false, 0, 3, BarrierSet::noreg, BarrierSet::ss_rbx, BarrierSet::ss_rax);
   __ movl(Address(rdx, rbx,
                   Address::times_4,
                   arrayOopDesc::base_offset_in_bytes(T_INT)),
@@ -1022,7 +1022,7 @@
   // rdx: high(value)
   index_check(rcx, rbx);  // prefer index in rbx,
   // rbx,: index
-  oopDesc::bs()->compile_resolve_oop_for_write(_masm, rcx, false, 0, 4, BarrierSet::noreg, BarrierSet::ss_rbx, BarrierSet::ss_rax, BarrierSet::ss_rdx);
+  oopDesc::bs()->interpreter_write_barrier(_masm, rcx, false, 0, 4, BarrierSet::noreg, BarrierSet::ss_rbx, BarrierSet::ss_rax, BarrierSet::ss_rdx);
   __ movptr(Address(rcx, rbx, Address::times_8, arrayOopDesc::base_offset_in_bytes(T_LONG) + 0 * wordSize), rax);
   NOT_LP64(__ movl(Address(rcx, rbx, Address::times_8, arrayOopDesc::base_offset_in_bytes(T_LONG) + 1 * wordSize), rdx));
 }
@@ -1035,7 +1035,7 @@
   // rbx:  index
   // rdx:  array
   index_check(rdx, rbx); // prefer index in rbx
-  oopDesc::bs()->compile_resolve_oop_for_write(_masm, rdx, false, 0, 3, BarrierSet::noreg, BarrierSet::ss_rbx, BarrierSet::ss_ftos);
+  oopDesc::bs()->interpreter_write_barrier(_masm, rdx, false, 0, 3, BarrierSet::noreg, BarrierSet::ss_rbx, BarrierSet::ss_ftos);
   LP64_ONLY(__ movflt(Address(rdx, rbx,
                    Address::times_4,
                    arrayOopDesc::base_offset_in_bytes(T_FLOAT)),
@@ -1050,7 +1050,7 @@
   // rbx:  index
   // rdx:  array
   index_check(rdx, rbx); // prefer index in rbx
-  oopDesc::bs()->compile_resolve_oop_for_write(_masm, rdx, false, 0, 3, BarrierSet::noreg, BarrierSet::ss_rbx, BarrierSet::ss_dtos);
+  oopDesc::bs()->interpreter_write_barrier(_masm, rdx, false, 0, 3, BarrierSet::noreg, BarrierSet::ss_rbx, BarrierSet::ss_dtos);
   LP64_ONLY(__ movdbl(Address(rdx, rbx,
                    Address::times_8,
                    arrayOopDesc::base_offset_in_bytes(T_DOUBLE)),
@@ -1071,7 +1071,7 @@
                           arrayOopDesc::base_offset_in_bytes(T_OBJECT));
 
   index_check_without_pop(rdx, rcx);     // kills rbx
-  oopDesc::bs()->compile_resolve_oop_for_write(_masm, rdx, false, 3, 3, BarrierSet::noreg, BarrierSet::ss_rcx, BarrierSet::ss_rax);
+  oopDesc::bs()->interpreter_write_barrier(_masm, rdx, false, 3, 3, BarrierSet::noreg, BarrierSet::ss_rcx, BarrierSet::ss_rax);
   __ testptr(rax, rax);
   __ jcc(Assembler::zero, is_null);
 
@@ -1120,7 +1120,7 @@
   // rbx: index
   // rdx: array
   index_check(rdx, rbx); // prefer index in rbx
-  oopDesc::bs()->compile_resolve_oop_for_write(_masm, rdx, false, 0, 3, BarrierSet::noreg, BarrierSet::ss_rbx, BarrierSet::ss_rax);
+  oopDesc::bs()->interpreter_write_barrier(_masm, rdx, false, 0, 3, BarrierSet::noreg, BarrierSet::ss_rbx, BarrierSet::ss_rax);
   __ movb(Address(rdx, rbx,
                   Address::times_1,
                   arrayOopDesc::base_offset_in_bytes(T_BYTE)),
@@ -1134,7 +1134,7 @@
   // rbx: index
   // rdx: array
   index_check(rdx, rbx);  // prefer index in rbx
-  oopDesc::bs()->compile_resolve_oop_for_write(_masm, rdx, false, 0, 3, BarrierSet::noreg, BarrierSet::ss_rbx, BarrierSet::ss_rax);
+  oopDesc::bs()->interpreter_write_barrier(_masm, rdx, false, 0, 3, BarrierSet::noreg, BarrierSet::ss_rbx, BarrierSet::ss_rax);
   __ movw(Address(rdx, rbx,
                   Address::times_2,
                   arrayOopDesc::base_offset_in_bytes(T_CHAR)),
@@ -2238,9 +2238,9 @@
   // NOTE: We need to preemptively evacuate the oops here (for Shenandoah GC), because
   // we might get false negatives if both operands are the same, but another
   // thread evacuates between the load of the 1st and 2nd operand.
-  oopDesc::bs()->compile_resolve_oop_for_write(_masm, rax, true, 0, 0);
+  oopDesc::bs()->interpreter_write_barrier(_masm, rax, true, 0, 0);
   __ pop_ptr(rdx);
-  oopDesc::bs()->compile_resolve_oop(_masm, rdx);
+  oopDesc::bs()->interpreter_read_barrier(_masm, rdx);
   __ cmpptr(rdx, rax);
   __ jcc(j_not(cc), not_taken);
   branch(false, false);
@@ -2681,7 +2681,7 @@
   load_field_cp_cache_entry(obj, cache, index, off, flags, is_static);
 
   if (!is_static) pop_and_check_object(obj);
-  oopDesc::bs()->compile_resolve_oop_not_null(_masm, obj);
+  oopDesc::bs()->interpreter_read_barrier_not_null(_masm, obj);
 
   const Address field(obj, off, Address::times_1, 0*wordSize);
   NOT_LP64(const Address hi(obj, off, Address::times_1, 1*wordSize));
@@ -2954,9 +2954,9 @@
     __ pop(btos);
     if (!is_static) {
       pop_and_check_object(obj);
-      oopDesc::bs()->compile_resolve_oop_for_write(_masm, obj, false, 0, 4, BarrierSet::noreg, BarrierSet::ss_rax, BarrierSet::ss_rbx, BarrierSet::ss_rdx);
+      oopDesc::bs()->interpreter_write_barrier(_masm, obj, false, 0, 4, BarrierSet::noreg, BarrierSet::ss_rax, BarrierSet::ss_rbx, BarrierSet::ss_rdx);
     } else {
-      oopDesc::bs()->compile_resolve_oop_for_write(_masm, obj, false, 0, 3, BarrierSet::ss_rax, BarrierSet::ss_rbx, BarrierSet::ss_rdx);
+      oopDesc::bs()->interpreter_write_barrier(_masm, obj, false, 0, 3, BarrierSet::ss_rax, BarrierSet::ss_rbx, BarrierSet::ss_rdx);
     }
     __ movb(field, rax);
     if (!is_static && rc == may_rewrite) {
@@ -2974,9 +2974,9 @@
     __ pop(atos);
     if (!is_static) {
       pop_and_check_object(obj);
-      oopDesc::bs()->compile_resolve_oop_for_write(_masm, obj, false, 0, 4, BarrierSet::noreg, BarrierSet::ss_rax, BarrierSet::ss_rbx, BarrierSet::ss_rdx);
+      oopDesc::bs()->interpreter_write_barrier(_masm, obj, false, 0, 4, BarrierSet::noreg, BarrierSet::ss_rax, BarrierSet::ss_rbx, BarrierSet::ss_rdx);
     } else {
-      oopDesc::bs()->compile_resolve_oop_for_write(_masm, obj, false, 0, 3, BarrierSet::ss_rax, BarrierSet::ss_rbx, BarrierSet::ss_rdx);
+      oopDesc::bs()->interpreter_write_barrier(_masm, obj, false, 0, 3, BarrierSet::ss_rax, BarrierSet::ss_rbx, BarrierSet::ss_rdx);
     }
     // Store into the field
     do_oop_store(_masm, field, rax, _bs->kind(), false);
@@ -2995,9 +2995,9 @@
     __ pop(itos);
     if (!is_static) {
       pop_and_check_object(obj);
-      oopDesc::bs()->compile_resolve_oop_for_write(_masm, obj, false, 0, 4, BarrierSet::noreg, BarrierSet::ss_rax, BarrierSet::ss_rbx, BarrierSet::ss_rdx);
+      oopDesc::bs()->interpreter_write_barrier(_masm, obj, false, 0, 4, BarrierSet::noreg, BarrierSet::ss_rax, BarrierSet::ss_rbx, BarrierSet::ss_rdx);
     } else {
-      oopDesc::bs()->compile_resolve_oop_for_write(_masm, obj, false, 0, 3, BarrierSet::ss_rax, BarrierSet::ss_rbx, BarrierSet::ss_rdx);
+      oopDesc::bs()->interpreter_write_barrier(_masm, obj, false, 0, 3, BarrierSet::ss_rax, BarrierSet::ss_rbx, BarrierSet::ss_rdx);
     }
     __ movl(field, rax);
     if (!is_static && rc == may_rewrite) {
@@ -3015,9 +3015,9 @@
     __ pop(ctos);
     if (!is_static) {
       pop_and_check_object(obj);
-      oopDesc::bs()->compile_resolve_oop_for_write(_masm, obj, false, 0, 4, BarrierSet::noreg, BarrierSet::ss_rax, BarrierSet::ss_rbx, BarrierSet::ss_rdx);
+      oopDesc::bs()->interpreter_write_barrier(_masm, obj, false, 0, 4, BarrierSet::noreg, BarrierSet::ss_rax, BarrierSet::ss_rbx, BarrierSet::ss_rdx);
     } else {
-      oopDesc::bs()->compile_resolve_oop_for_write(_masm, obj, false, 0, 3, BarrierSet::ss_rax, BarrierSet::ss_rbx, BarrierSet::ss_rdx);
+      oopDesc::bs()->interpreter_write_barrier(_masm, obj, false, 0, 3, BarrierSet::ss_rax, BarrierSet::ss_rbx, BarrierSet::ss_rdx);
     }
     __ movw(field, rax);
     if (!is_static && rc == may_rewrite) {
@@ -3035,9 +3035,9 @@
     __ pop(stos);
     if (!is_static) {
       pop_and_check_object(obj);
-      oopDesc::bs()->compile_resolve_oop_for_write(_masm, obj, false, 0, 4, BarrierSet::noreg, BarrierSet::ss_rax, BarrierSet::ss_rbx, BarrierSet::ss_rdx);
+      oopDesc::bs()->interpreter_write_barrier(_masm, obj, false, 0, 4, BarrierSet::noreg, BarrierSet::ss_rax, BarrierSet::ss_rbx, BarrierSet::ss_rdx);
     } else {
-      oopDesc::bs()->compile_resolve_oop_for_write(_masm, obj, false, 0, 3, BarrierSet::ss_rax, BarrierSet::ss_rbx, BarrierSet::ss_rdx);
+      oopDesc::bs()->interpreter_write_barrier(_masm, obj, false, 0, 3, BarrierSet::ss_rax, BarrierSet::ss_rbx, BarrierSet::ss_rdx);
     }
     __ movw(field, rax);
     if (!is_static && rc == may_rewrite) {
@@ -3056,9 +3056,9 @@
     __ pop(ltos);
     if (!is_static) {
       pop_and_check_object(obj);
-      oopDesc::bs()->compile_resolve_oop_for_write(_masm, obj, false, 0, 4, BarrierSet::noreg, BarrierSet::ss_rax, BarrierSet::ss_rbx, BarrierSet::ss_rdx);
+      oopDesc::bs()->interpreter_write_barrier(_masm, obj, false, 0, 4, BarrierSet::noreg, BarrierSet::ss_rax, BarrierSet::ss_rbx, BarrierSet::ss_rdx);
     } else {
-      oopDesc::bs()->compile_resolve_oop_for_write(_masm, obj, false, 0, 3, BarrierSet::ss_rax, BarrierSet::ss_rbx, BarrierSet::ss_rdx);
+      oopDesc::bs()->interpreter_write_barrier(_masm, obj, false, 0, 3, BarrierSet::ss_rax, BarrierSet::ss_rbx, BarrierSet::ss_rdx);
     }
     __ movq(field, rax);
     if (!is_static && rc == may_rewrite) {
@@ -3107,9 +3107,9 @@
     __ pop(ftos);
     if (!is_static) {
       pop_and_check_object(obj);
-      oopDesc::bs()->compile_resolve_oop_for_write(_masm, obj, false, 0, 4, BarrierSet::noreg, BarrierSet::ss_ftos, BarrierSet::ss_rbx, BarrierSet::ss_rdx);
+      oopDesc::bs()->interpreter_write_barrier(_masm, obj, false, 0, 4, BarrierSet::noreg, BarrierSet::ss_ftos, BarrierSet::ss_rbx, BarrierSet::ss_rdx);
     } else {
-      oopDesc::bs()->compile_resolve_oop_for_write(_masm, obj, false, 0, 3, BarrierSet::ss_ftos, BarrierSet::ss_rbx, BarrierSet::ss_rdx);
+      oopDesc::bs()->interpreter_write_barrier(_masm, obj, false, 0, 3, BarrierSet::ss_ftos, BarrierSet::ss_rbx, BarrierSet::ss_rdx);
     }
     NOT_LP64( __ fstp_s(field);)
     LP64_ONLY( __ movflt(field, xmm0);)
@@ -3130,9 +3130,9 @@
     __ pop(dtos);
     if (!is_static) {
       pop_and_check_object(obj);
-      oopDesc::bs()->compile_resolve_oop_for_write(_masm, obj, false, 0, 4, BarrierSet::noreg, BarrierSet::ss_dtos, BarrierSet::ss_rbx, BarrierSet::ss_rdx);
+      oopDesc::bs()->interpreter_write_barrier(_masm, obj, false, 0, 4, BarrierSet::noreg, BarrierSet::ss_dtos, BarrierSet::ss_rbx, BarrierSet::ss_rdx);
     } else {
-      oopDesc::bs()->compile_resolve_oop_for_write(_masm, obj, false, 0, 3, BarrierSet::ss_dtos, BarrierSet::ss_rbx, BarrierSet::ss_rdx);
+      oopDesc::bs()->interpreter_write_barrier(_masm, obj, false, 0, 3, BarrierSet::ss_dtos, BarrierSet::ss_rbx, BarrierSet::ss_rdx);
     }
     NOT_LP64( __ fstp_d(field);)
     LP64_ONLY( __ movdbl(field, xmm0);)
@@ -3261,11 +3261,11 @@
   // access field
   switch (bytecode()) {
   case Bytecodes::_fast_aputfield:
-    oopDesc::bs()->compile_resolve_oop_for_write(_masm, rcx, false, 0, 4, BarrierSet::noreg, BarrierSet::ss_rax, BarrierSet::ss_rbx, BarrierSet::ss_rdx);
+    oopDesc::bs()->interpreter_write_barrier(_masm, rcx, false, 0, 4, BarrierSet::noreg, BarrierSet::ss_rax, BarrierSet::ss_rbx, BarrierSet::ss_rdx);
     do_oop_store(_masm, field, rax, _bs->kind(), false);
     break;
   case Bytecodes::_fast_lputfield:
-    oopDesc::bs()->compile_resolve_oop_for_write(_masm, rcx, false, 0, 4, BarrierSet::noreg, BarrierSet::ss_rax, BarrierSet::ss_rbx, BarrierSet::ss_rdx);
+    oopDesc::bs()->interpreter_write_barrier(_masm, rcx, false, 0, 4, BarrierSet::noreg, BarrierSet::ss_rax, BarrierSet::ss_rbx, BarrierSet::ss_rdx);
 #ifdef _LP64
   __ movq(field, rax);
 #else
@@ -3273,26 +3273,26 @@
 #endif
     break;
   case Bytecodes::_fast_iputfield:
-    oopDesc::bs()->compile_resolve_oop_for_write(_masm, rcx, false, 0, 4, BarrierSet::noreg, BarrierSet::ss_rax, BarrierSet::ss_rbx, BarrierSet::ss_rdx);
+    oopDesc::bs()->interpreter_write_barrier(_masm, rcx, false, 0, 4, BarrierSet::noreg, BarrierSet::ss_rax, BarrierSet::ss_rbx, BarrierSet::ss_rdx);
     __ movl(field, rax);
     break;
   case Bytecodes::_fast_bputfield:
-    oopDesc::bs()->compile_resolve_oop_for_write(_masm, rcx, false, 0, 4, BarrierSet::noreg, BarrierSet::ss_rax, BarrierSet::ss_rbx, BarrierSet::ss_rdx);
+    oopDesc::bs()->interpreter_write_barrier(_masm, rcx, false, 0, 4, BarrierSet::noreg, BarrierSet::ss_rax, BarrierSet::ss_rbx, BarrierSet::ss_rdx);
     __ movb(field, rax);
     break;
   case Bytecodes::_fast_sputfield:
     // fall through
   case Bytecodes::_fast_cputfield:
-    oopDesc::bs()->compile_resolve_oop_for_write(_masm, rcx, false, 0, 4, BarrierSet::noreg, BarrierSet::ss_rax, BarrierSet::ss_rbx, BarrierSet::ss_rdx);
+    oopDesc::bs()->interpreter_write_barrier(_masm, rcx, false, 0, 4, BarrierSet::noreg, BarrierSet::ss_rax, BarrierSet::ss_rbx, BarrierSet::ss_rdx);
     __ movw(field, rax);
     break;
   case Bytecodes::_fast_fputfield:
-    oopDesc::bs()->compile_resolve_oop_for_write(_masm, rcx, false, 0, 4, BarrierSet::noreg, BarrierSet::ss_ftos, BarrierSet::ss_rbx, BarrierSet::ss_rdx);
+    oopDesc::bs()->interpreter_write_barrier(_masm, rcx, false, 0, 4, BarrierSet::noreg, BarrierSet::ss_ftos, BarrierSet::ss_rbx, BarrierSet::ss_rdx);
     NOT_LP64( __ fstp_s(field); )
     LP64_ONLY( __ movflt(field, xmm0);)
     break;
   case Bytecodes::_fast_dputfield:
-    oopDesc::bs()->compile_resolve_oop_for_write(_masm, rcx, false, 0, 4, BarrierSet::noreg, BarrierSet::ss_dtos, BarrierSet::ss_rbx, BarrierSet::ss_rdx);
+    oopDesc::bs()->interpreter_write_barrier(_masm, rcx, false, 0, 4, BarrierSet::noreg, BarrierSet::ss_dtos, BarrierSet::ss_rbx, BarrierSet::ss_rdx);
     NOT_LP64( __ fstp_d(field); )
     LP64_ONLY( __ movdbl(field, xmm0);)
     break;
@@ -3351,7 +3351,7 @@
   // rax: object
   __ verify_oop(rax);
   __ null_check(rax);
-  oopDesc::bs()->compile_resolve_oop_not_null(_masm, rax);
+  oopDesc::bs()->interpreter_read_barrier_not_null(_masm, rax);
   Address field(rax, rbx, Address::times_1);
 
   // access field
@@ -3415,7 +3415,7 @@
   // next instruction)
   __ increment(rbcp);
   __ null_check(rax);
-  oopDesc::bs()->compile_resolve_oop_not_null(_masm, rax);
+  oopDesc::bs()->interpreter_read_barrier_not_null(_masm, rax);
   const Address field = Address(rax, rbx, Address::times_1, 0*wordSize);
   switch (state) {
   case itos:
@@ -3971,7 +3971,7 @@
 void TemplateTable::arraylength() {
   transition(atos, itos);
   if (ShenandoahVerifyReadsToFromSpace) {
-    oopDesc::bs()->compile_resolve_oop(_masm, rax);
+    oopDesc::bs()->interpreter_read_barrier(_masm, rax);
   }
   __ null_check(rax, arrayOopDesc::length_offset_in_bytes());
   __ movl(rax, Address(rax, arrayOopDesc::length_offset_in_bytes()));
@@ -4176,7 +4176,7 @@
   // We need to preemptively evacuate the object, because we later compare
   // it to objects in the BasicObjectLock list, and we might get false negatives
   // if another thread evacuates the object in the meantime. See acmp.
-  oopDesc::bs()->compile_resolve_oop_for_write(_masm, rax, false, 0, 0);
+  oopDesc::bs()->interpreter_write_barrier(_masm, rax, false, 0, 0);
 
   const Address monitor_block_top(
         rbp, frame::interpreter_frame_monitor_block_top_offset * wordSize);
@@ -4213,7 +4213,7 @@
     __ cmovptr(Assembler::equal, rmon, rtop);   // cmov => cmovptr
     // check if current entry is for same object
     __ movptr(rscratch1, Address(rtop, BasicObjectLock::obj_offset_in_bytes()));
-    oopDesc::bs()->compile_resolve_oop(_masm, rscratch1);
+    oopDesc::bs()->interpreter_read_barrier(_masm, rscratch1);
     __ cmpptr(rax, rscratch1);
     // if same object then stop searching
     __ jccb(Assembler::equal, exit);
@@ -4284,7 +4284,7 @@
   // We need to preemptively evacuate the object, because we later compare
   // it to objects in the BasicObjectLock list, and we might get false negatives
   // if another thread evacuates the object in the meantime. See acmp.
-  oopDesc::bs()->compile_resolve_oop_for_write(_masm, rax, false, 0, 0);
+  oopDesc::bs()->interpreter_write_barrier(_masm, rax, false, 0, 0);
 
   const Address monitor_block_top(
         rbp, frame::interpreter_frame_monitor_block_top_offset * wordSize);
@@ -4313,7 +4313,7 @@
     __ bind(loop);
     // check if current entry is for same object
     __ movptr(rscratch1, Address(rtop, BasicObjectLock::obj_offset_in_bytes()));
-    oopDesc::bs()->compile_resolve_oop(_masm, rscratch1);
+    oopDesc::bs()->interpreter_read_barrier(_masm, rscratch1);
     __ cmpptr(rax, rscratch1);
     // if same object then stop searching
     __ jcc(Assembler::equal, found);
--- a/src/share/vm/gc/shared/barrierSet.hpp	Thu Aug 20 12:10:37 2015 +0200
+++ b/src/share/vm/gc/shared/barrierSet.hpp	Thu Aug 20 17:52:12 2015 +0200
@@ -243,17 +243,19 @@
     return src;
   }
 
-  virtual void compile_resolve_oop(MacroAssembler* masm, Register dst) {
+#ifndef CC_INTERP
+  virtual void interpreter_read_barrier(MacroAssembler* masm, Register dst) {
     // Default implementation does nothing.
   }
 
-  virtual void compile_resolve_oop_not_null(MacroAssembler* masm, Register dst) {
+  virtual void interpreter_read_barrier_not_null(MacroAssembler* masm, Register dst) {
     // Default implementation does nothing.
   }
 
-  virtual void compile_resolve_oop_for_write(MacroAssembler* masm, Register dst, bool explicit_null_check, int stack_adjust, int num_save_state, ...) {
+  virtual void interpreter_write_barrier(MacroAssembler* masm, Register dst, bool explicit_null_check, int stack_adjust, int num_save_state, ...) {
     // Default implementation does nothing.
   }
+#endif
 };
 
 template<typename T>
--- a/src/share/vm/gc/shenandoah/shenandoahBarrierSet.hpp	Thu Aug 20 12:10:37 2015 +0200
+++ b/src/share/vm/gc/shenandoah/shenandoahBarrierSet.hpp	Thu Aug 20 17:52:12 2015 +0200
@@ -164,10 +164,9 @@
 
 #ifndef CC_INTERP
 public:
-  // TODO: The following should really live in an X86 specific subclass.
-  virtual void compile_resolve_oop(MacroAssembler* masm, Register dst);
-  virtual void compile_resolve_oop_not_null(MacroAssembler* masm, Register dst);
-  void compile_resolve_oop_for_write(MacroAssembler* masm, Register dst, bool explicit_null_check, int stack_adjust, int num_save_state, ...);
+  virtual void interpreter_read_barrier(MacroAssembler* masm, Register dst);
+  virtual void interpreter_read_barrier_not_null(MacroAssembler* masm, Register dst);
+  void interpreter_write_barrier(MacroAssembler* masm, Register dst, bool explicit_null_check, int stack_adjust, int num_save_state, ...);
 
 private:
   void compile_resolve_oop_runtime(MacroAssembler* masm, Register dst);