diff src/share/vm/c1/c1_LIRAssembler.cpp @ 6948:e522a00b91aa

Merge with http://hg.openjdk.java.net/hsx/hsx25/hotspot/ after NPG - C++ build works
author Doug Simon <doug.simon@oracle.com>
date Mon, 12 Nov 2012 23:14:12 +0100
parents c38f13903fdf 7eca5de9e0b6
children cefad50507d8
line wrap: on
line diff
--- a/src/share/vm/c1/c1_LIRAssembler.cpp	Mon Nov 12 18:11:17 2012 +0100
+++ b/src/share/vm/c1/c1_LIRAssembler.cpp	Mon Nov 12 23:14:12 2012 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -74,13 +74,19 @@
     }
   } else if (patch->id() == PatchingStub::load_klass_id) {
     switch (code) {
-      case Bytecodes::_putstatic:
-      case Bytecodes::_getstatic:
       case Bytecodes::_new:
       case Bytecodes::_anewarray:
       case Bytecodes::_multianewarray:
       case Bytecodes::_instanceof:
       case Bytecodes::_checkcast:
+        break;
+      default:
+        ShouldNotReachHere();
+    }
+  } else if (patch->id() == PatchingStub::load_mirror_id) {
+    switch (code) {
+      case Bytecodes::_putstatic:
+      case Bytecodes::_getstatic:
       case Bytecodes::_ldc:
       case Bytecodes::_ldc_w:
         break;
@@ -768,6 +774,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;