< prev index next >

src/hotspot/cpu/x86/c1_LIRGenerator_x86.cpp

Print this page

@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2019, 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
  * under the terms of the GNU General Public License version 2 only, as
  * published by the Free Software Foundation.

@@ -269,10 +269,24 @@
   LIR_Opr tmp2 = new_register(objectType);
   LIR_Opr tmp3 = new_register(objectType);
   __ store_check(value, array, tmp1, tmp2, tmp3, store_check_info, profiled_method, profiled_bci);
 }
 
+void LIRGenerator::flattened_array_store_check(LIR_Opr value, ciKlass* element_klass, CodeEmitInfo* store_check_info) {
+  LIR_Opr tmp1 = new_register(T_METADATA);
+  LIR_Opr tmp2 = LIR_OprFact::illegalOpr;
+
+#ifdef _LP64
+  if (!UseCompressedClassPointers) {
+    tmp2 = new_register(T_METADATA);
+    __ metadata2reg(element_klass->constant_encoding(), tmp2);
+  }
+#endif
+
+  __ flattened_store_check(value, element_klass, tmp1, tmp2, store_check_info);
+}
+
 //----------------------------------------------------------------------
 //             visitor functions
 //----------------------------------------------------------------------
 
 void LIRGenerator::do_MonitorEnter(MonitorEnter* x) {
< prev index next >