From 178e96f061dd38bc7b2fa44595d0337671b48491 Mon Sep 17 00:00:00 2001 From: Ruben Ayrapetyan Date: Fri, 18 Jul 2025 17:41:31 +0100 Subject: [PATCH] 8365153: AArch64: Set JVM flags for Neoverse N3 and V3 cores For Neoverse N1, N2, V1, and V2, the following JVM flags are set: - UseSIMDForMemoryOps=true - OnSpinWaitInst=isb - OnSpinWaitInstCount=1 - AlwaysMergeDMB=false Additionally, for Neoverse V1 and V2 only, these flags are set: - UseCryptoPmullForCRC32=true - CodeEntryAlignment=32 Set the same flags for Neoverse N3 and V3, respectively. --- src/hotspot/cpu/aarch64/vm_version_aarch64.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/hotspot/cpu/aarch64/vm_version_aarch64.cpp b/src/hotspot/cpu/aarch64/vm_version_aarch64.cpp index 24c771747116b..e33b724daa902 100644 --- a/src/hotspot/cpu/aarch64/vm_version_aarch64.cpp +++ b/src/hotspot/cpu/aarch64/vm_version_aarch64.cpp @@ -1,6 +1,7 @@ /* * Copyright (c) 1997, 2025, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2015, 2020, Red Hat Inc. All rights reserved. + * Copyright 2025 Arm Limited and/or its affiliates. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -222,10 +223,13 @@ void VM_Version::initialize() { // Neoverse // N1: 0xd0c // N2: 0xd49 + // N3: 0xd8e // V1: 0xd40 // V2: 0xd4f + // V3: 0xd84 if (_cpu == CPU_ARM && (model_is(0xd0c) || model_is(0xd49) || - model_is(0xd40) || model_is(0xd4f))) { + model_is(0xd40) || model_is(0xd4f) || + model_is(0xd8e) || model_is(0xd84))) { if (FLAG_IS_DEFAULT(UseSIMDForMemoryOps)) { FLAG_SET_DEFAULT(UseSIMDForMemoryOps, true); } @@ -260,7 +264,9 @@ void VM_Version::initialize() { // Neoverse // V1: 0xd40 // V2: 0xd4f - if (_cpu == CPU_ARM && (model_is(0xd40) || model_is(0xd4f))) { + // V3: 0xd84 + if (_cpu == CPU_ARM && + (model_is(0xd40) || model_is(0xd4f) || model_is(0xd84))) { if (FLAG_IS_DEFAULT(UseCryptoPmullForCRC32)) { FLAG_SET_DEFAULT(UseCryptoPmullForCRC32, true); }