OpenJDK / aarch32-port / jdk9-arm3264 / hotspot
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