diff src/share/vm/c1/c1_LIRAssembler.cpp @ 6795:7eca5de9e0b6

7023898: Intrinsify AtomicLongFieldUpdater.getAndIncrement() Summary: use shorter instruction sequences for atomic add and atomic exchange when possible. Reviewed-by: kvn, jrose
author roland
date Thu, 20 Sep 2012 16:49:17 +0200
parents da91efe96a93
children e522a00b91aa f98f5d48f511
line wrap: on
line diff
--- a/src/share/vm/c1/c1_LIRAssembler.cpp	Wed Sep 19 16:50:26 2012 -0700
+++ b/src/share/vm/c1/c1_LIRAssembler.cpp	Thu Sep 20 16:49:17 2012 +0200
@@ -773,6 +773,11 @@
       throw_op(op->in_opr1(), op->in_opr2(), op->info());
       break;
 
+    case lir_xadd:
+    case lir_xchg:
+      atomic_op(op->code(), op->in_opr1(), op->in_opr2(), op->result_opr(), op->tmp1_opr());
+      break;
+
     default:
       Unimplemented();
       break;