changeset 12355:9ae19f38e120 tip

8170621: aarch3264: arm32/64 post Merge updates of ARM sources Reviewed-by: enevill
author bobv
date Fri, 02 Dec 2016 11:06:52 -0500
parents 436a6eb5a7a3
children
files src/cpu/arm/vm/c1_LIRAssembler_arm.cpp src/cpu/arm/vm/c2_globals_arm.hpp src/cpu/arm/vm/frame_arm.cpp src/cpu/arm/vm/globals_arm.hpp src/cpu/arm/vm/os_arm.inline.hpp src/cpu/arm/vm/vm_version_arm.hpp src/cpu/arm/vm/vm_version_ext_arm.cpp src/cpu/arm/vm/vm_version_ext_arm.hpp
diffstat 8 files changed, 13 insertions(+), 205 deletions(-) [+]
line wrap: on
line diff
--- a/src/cpu/arm/vm/c1_LIRAssembler_arm.cpp	Thu Dec 01 15:00:26 2016 -0500
+++ b/src/cpu/arm/vm/c1_LIRAssembler_arm.cpp	Fri Dec 02 11:06:52 2016 -0500
@@ -2863,7 +2863,7 @@
       __ branch_if_negative_32(dst_pos, *stub->entry());
       break;
     case LIR_OpArrayCopy::length_positive_check:
-      // done below
+      __ branch_if_negative_32(length, *stub->entry());
       break;
     case LIR_OpArrayCopy::src_pos_positive_check | LIR_OpArrayCopy::dst_pos_positive_check:
       __ branch_if_any_negative_32(src_pos, dst_pos, tmp, *stub->entry());
@@ -2895,17 +2895,6 @@
     __ b(*stub->entry(), hi);
   }
 
-  // if length == 0 we can declare victory.
-  if (flags & LIR_OpArrayCopy::length_positive_check) {
-    if ((flags & all_positive_checks) == LIR_OpArrayCopy::length_positive_check) {
-      __ tst_32(length, length);
-      __ b(*stub->entry(), mi);
-      __ b(*stub->continuation(), eq);
-    } else {
-      __ cbz_32(length, *stub->continuation());
-    }
-  }
-
   // Check if src and dst are of the same type
   if (flags & LIR_OpArrayCopy::type_check) {
     // We don't know the array types are compatible
--- a/src/cpu/arm/vm/c2_globals_arm.hpp	Thu Dec 01 15:00:26 2016 -0500
+++ b/src/cpu/arm/vm/c2_globals_arm.hpp	Fri Dec 02 11:06:52 2016 -0500
@@ -81,6 +81,7 @@
 define_pd_global(bool, OptoScheduling,               true);
 define_pd_global(bool, OptoRegScheduling,            false);
 define_pd_global(bool, SuperWordLoopUnrollAnalysis,  false);
+define_pd_global(bool, IdealizeClearArrayNode,       true);
 
 #ifdef _LP64
 // We need to make sure that all generated code is within
--- a/src/cpu/arm/vm/frame_arm.cpp	Thu Dec 01 15:00:26 2016 -0500
+++ b/src/cpu/arm/vm/frame_arm.cpp	Fri Dec 02 11:06:52 2016 -0500
@@ -185,7 +185,13 @@
       // construct the potential sender
 
       frame sender(sender_sp, saved_fp, sender_pc);
-      return sender.is_entry_frame_valid(thread);
+
+      // Validate the JavaCallWrapper an entry frame must have
+      address jcw = (address)sender.entry_frame_call_wrapper();
+
+      bool jcw_safe = (jcw <= thread->stack_base()) && (jcw > (address)sender.fp());
+
+      return jcw_safe;
     }
 
     // If the frame size is 0 something (or less) is bad because every nmethod has a non-zero frame size
--- a/src/cpu/arm/vm/globals_arm.hpp	Thu Dec 01 15:00:26 2016 -0500
+++ b/src/cpu/arm/vm/globals_arm.hpp	Fri Dec 02 11:06:52 2016 -0500
@@ -36,6 +36,7 @@
 define_pd_global(bool,  UncommonNullCast,         true);  // Uncommon-trap NULLs past to check cast
 define_pd_global(bool,  TrapBasedNullChecks,      false); // Not needed
 
+define_pd_global(uintx, CodeCacheSegmentSize, 64 TIERED_ONLY(+64)); // Tiered compilation has large code-entry alignment.
 define_pd_global(intx,  CodeEntryAlignment,       16);
 define_pd_global(intx,  OptoLoopAlignment,        16);
 
--- a/src/cpu/arm/vm/os_arm.inline.hpp	Thu Dec 01 15:00:26 2016 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-/*
- * Copyright (c) 2011, 2013, 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.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- *
- */
-
-#ifndef CPU_ARM_VM_OS_ARM_INLINE_HPP
-#define CPU_ARM_VM_OS_ARM_INLINE_HPP
-
-#include "utilities/macros.hpp"
-#if INCLUDE_TRACE
-#include "runtime/os.hpp"
-
-inline jlong os::init_ft()     { return 0; }
-inline jlong os::get_ft()      { return 0; }
-inline jlong os::get_ft_freq() { return 0; }
-inline bool os::get_platform_is_trusted_for_fast_time() { return false; }
-
-#endif // INCLUDE_TRACE
-
-#endif // CPU_ARM_VM_OS_ARM_INLINE_HPP
--- a/src/cpu/arm/vm/vm_version_arm.hpp	Thu Dec 01 15:00:26 2016 -0500
+++ b/src/cpu/arm/vm/vm_version_arm.hpp	Fri Dec 02 11:06:52 2016 -0500
@@ -22,6 +22,9 @@
  *
  */
 
+/* ARM sources Merged up to hotspot/src/closed  changeset 2389:b6273c37efea */
+/*                          hotspot/make/closed changeset 542:fff0e7e51b36 */
+
 #ifndef CPU_ARM_VM_VM_VERSION_ARM_HPP
 #define CPU_ARM_VM_VM_VERSION_ARM_HPP
 
--- a/src/cpu/arm/vm/vm_version_ext_arm.cpp	Thu Dec 01 15:00:26 2016 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,94 +0,0 @@
-/*
- * Copyright (c) 2013, 2015, 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.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- *
- */
-
-#include "memory/allocation.hpp"
-#include "memory/allocation.inline.hpp"
-#include "runtime/os.inline.hpp"
-#include "vm_version_ext_arm.hpp"
-
-// VM_Version_Ext statics
-int VM_Version_Ext::_no_of_threads = 0;
-int VM_Version_Ext::_no_of_cores = 0;
-int VM_Version_Ext::_no_of_sockets = 0;
-bool VM_Version_Ext::_initialized = false;
-char VM_Version_Ext::_cpu_name[CPU_TYPE_DESC_BUF_SIZE] = {0};
-char VM_Version_Ext::_cpu_desc[CPU_DETAILED_DESC_BUF_SIZE] = {0};
-
-void VM_Version_Ext::initialize_cpu_information(void) {
-  // do nothing if cpu info has been initialized
-  if (_initialized) {
-    return;
-  }
-
-  int core_id = -1;
-  int chip_id = -1;
-  int len = 0;
-  char* src_string = NULL;
-
-  _no_of_cores  = os::processor_count();
-  _no_of_threads = _no_of_cores;
-  _no_of_sockets = _no_of_cores;
-#ifdef AARCH64
-  snprintf(_cpu_name, CPU_TYPE_DESC_BUF_SIZE - 1, "AArch64");
-#else
-  snprintf(_cpu_name, CPU_TYPE_DESC_BUF_SIZE - 1, "ARM%d", _arm_arch);
-#endif
-  snprintf(_cpu_desc, CPU_DETAILED_DESC_BUF_SIZE, "%s", _features_string);
-  _initialized = true;
-}
-
-int VM_Version_Ext::number_of_threads(void) {
-  initialize_cpu_information();
-  return _no_of_threads;
-}
-
-int VM_Version_Ext::number_of_cores(void) {
-  initialize_cpu_information();
-  return _no_of_cores;
-}
-
-int VM_Version_Ext::number_of_sockets(void) {
-  initialize_cpu_information();
-  return _no_of_sockets;
-}
-
-const char* VM_Version_Ext::cpu_name(void) {
-  initialize_cpu_information();
-  char* tmp = NEW_C_HEAP_ARRAY_RETURN_NULL(char, CPU_TYPE_DESC_BUF_SIZE, mtTracing);
-  if (NULL == tmp) {
-    return NULL;
-  }
-  strncpy(tmp, _cpu_name, CPU_TYPE_DESC_BUF_SIZE);
-  return tmp;
-}
-
-const char* VM_Version_Ext::cpu_description(void) {
-  initialize_cpu_information();
-  char* tmp = NEW_C_HEAP_ARRAY_RETURN_NULL(char, CPU_DETAILED_DESC_BUF_SIZE, mtTracing);
-  if (NULL == tmp) {
-    return NULL;
-  }
-  strncpy(tmp, _cpu_desc, CPU_DETAILED_DESC_BUF_SIZE);
-  return tmp;
-}
--- a/src/cpu/arm/vm/vm_version_ext_arm.hpp	Thu Dec 01 15:00:26 2016 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +0,0 @@
-/*
- * Copyright (c) 2013, 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.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- *
- */
-
-/* ARM sources Merged up to hotspot/src/closed  changeset 2374:a7e1339e4594 */
-/*                          hotspot/make/closed changeset 539:11ed5b132ece */
-
-#ifndef CPU_ARM_VM_VM_VERSION_EXT_ARM_HPP
-#define CPU_ARM_VM_VM_VERSION_EXT_ARM_HPP
-
-#include "utilities/macros.hpp"
-#if INCLUDE_TRACE
-#include "vm_version_arm.hpp"
-
-class VM_Version_Ext : public VM_Version {
- private:
-  static const size_t      CPU_TYPE_DESC_BUF_SIZE = 256;
-  static const size_t      CPU_DETAILED_DESC_BUF_SIZE = 4096;
-
-  static int               _no_of_threads;
-  static int               _no_of_cores;
-  static int               _no_of_sockets;
-  static bool              _initialized;
-  static char              _cpu_name[CPU_TYPE_DESC_BUF_SIZE];
-  static char              _cpu_desc[CPU_DETAILED_DESC_BUF_SIZE];
-
- public:
-  static int number_of_threads(void);
-  static int number_of_cores(void);
-  static int number_of_sockets(void);
-
-  static const char* cpu_name(void);
-  static const char* cpu_description(void);
-  static void initialize_cpu_information(void);
-
-};
-
-#endif // INCLUDE_TRACE
-#endif // CPU_ARM_VM_VM_VERSION_EXT_ARM_HPP