8157189: 'iload_w' in shared class is not interpreted correctly.
authorjiangli
Fri, 03 Jun 2016 17:45:03 -0400
changeset 38943 2e5c855d6b1e
parent 38942 a4b3fc1ba095
child 38944 f91311e54b41
child 39207 5c6e88667985
child 39208 2fb442b1e05d
child 39210 178947361a68
child 39259 14a1c9c7f909
8157189: 'iload_w' in shared class is not interpreted correctly. Summary: Don't rewrite 'iload_w' to 'nofast_iload' in shared class. Reviewed-by: ccheung, hseigel
hotspot/src/share/vm/memory/metaspaceShared.cpp
--- a/hotspot/src/share/vm/memory/metaspaceShared.cpp	Fri Jun 03 13:26:43 2016 -0500
+++ b/hotspot/src/share/vm/memory/metaspaceShared.cpp	Fri Jun 03 17:45:03 2016 -0400
@@ -191,7 +191,12 @@
     case Bytecodes::_getfield:      *bcs.bcp() = Bytecodes::_nofast_getfield;      break;
     case Bytecodes::_putfield:      *bcs.bcp() = Bytecodes::_nofast_putfield;      break;
     case Bytecodes::_aload_0:       *bcs.bcp() = Bytecodes::_nofast_aload_0;       break;
-    case Bytecodes::_iload:         *bcs.bcp() = Bytecodes::_nofast_iload;         break;
+    case Bytecodes::_iload: {
+      if (!bcs.is_wide()) {
+        *bcs.bcp() = Bytecodes::_nofast_iload;
+      }
+      break;
+    }
     default: break;
     }
   }