< prev index next >

src/hotspot/cpu/aarch64/c1_LIRGenerator_aarch64.cpp

Print this page
rev 51408 : [mq]: cleanup-c1.patch

@@ -341,17 +341,11 @@
     info_for_exception = state_for(x);
   }
   // this CodeEmitInfo must not have the xhandlers because here the
   // object is already locked (xhandlers expect object to be unlocked)
   CodeEmitInfo* info = state_for(x, x->state(), true);
-  LIR_Opr obj_opr = obj.result();
-  DecoratorSet decorators = IN_HEAP;
-  if (!x->needs_null_check()) {
-    decorators |= IS_NOT_NULL;
-  }
-  obj_opr = access_resolve_for_write(decorators, obj_opr, state_for(x));
-  monitor_enter(obj_opr, lock, syncTempOpr(), scratch,
+  monitor_enter(obj.result(), lock, syncTempOpr(), scratch,
                         x->monitor_no(), info_for_exception, info);
 }
 
 
 void LIRGenerator::do_MonitorExit(MonitorExit* x) {

@@ -876,23 +870,10 @@
   LIRItem src_pos(x->argument_at(1), this);
   LIRItem dst(x->argument_at(2), this);
   LIRItem dst_pos(x->argument_at(3), this);
   LIRItem length(x->argument_at(4), this);
 
-  LIR_Opr dst_op = dst.result();
-  LIR_Opr src_op = src.result();
-  DecoratorSet decorators = IN_HEAP;
-  if (!x->arg_needs_null_check(2)) {
-    decorators |= IS_NOT_NULL;
-  }
-  dst_op = access_resolve_for_write(decorators, dst_op, info);
-  decorators = IN_HEAP;
-  if (!x->arg_needs_null_check(0)) {
-    decorators |= IS_NOT_NULL;
-  }
-  src_op = access_resolve_for_read(decorators, src_op, info);
-
   // operands for arraycopy must use fixed registers, otherwise
   // LinearScan will fail allocation (because arraycopy always needs a
   // call)
 
   // The java calling convention will give us enough registers

@@ -901,13 +882,13 @@
   // positions are not similar enough to pick one as the best.
   // Also because the java calling convention is a "shifted" version
   // of the C convention we can process the java args trivially into C
   // args without worry of overwriting during the xfer
 
-  src_op = force_opr_to(src_op, FrameMap::as_oop_opr(j_rarg0));
+  src.load_item_force     (FrameMap::as_oop_opr(j_rarg0));
   src_pos.load_item_force (FrameMap::as_opr(j_rarg1));
-  dst_op = force_opr_to(dst_op, FrameMap::as_oop_opr(j_rarg2));
+  dst.load_item_force     (FrameMap::as_oop_opr(j_rarg2));
   dst_pos.load_item_force (FrameMap::as_opr(j_rarg3));
   length.load_item_force  (FrameMap::as_opr(j_rarg4));
 
   LIR_Opr tmp =           FrameMap::as_opr(j_rarg5);
 

@@ -915,11 +896,11 @@
 
   int flags;
   ciArrayKlass* expected_type;
   arraycopy_helper(x, &flags, &expected_type);
 
-  __ arraycopy(src_op, src_pos.result(), dst_op, dst_pos.result(), length.result(), tmp, expected_type, flags, info); // does add_safepoint
+  __ arraycopy(src.result(), src_pos.result(), dst.result(), dst_pos.result(), length.result(), tmp, expected_type, flags, info); // does add_safepoint
 }
 
 void LIRGenerator::do_update_CRC32(Intrinsic* x) {
   assert(UseCRC32Intrinsics, "why are we here?");
   // Make all state_for calls early since they can emit code
< prev index next >