This vm features tuning logic is wrapped by _cpu == CPU_AMCC, Ampere Computing owns this product.
Verification will be done on Ampere eMAG platforms.
Suppose no direct impacts on functions at other platforms.
--- old/src/hotspot/cpu/aarch64/vm_version_aarch64.cpp 2019-03-12 14:04:03.162682861 +0800
+++ new/src/hotspot/cpu/aarch64/vm_version_aarch64.cpp 2019-03-12 14:04:02.926683992 +0800
@@ -194,6 +194,19 @@
// Enable vendor specific features
+ // Ampere eMAG
+ if (_cpu == CPU_AMCC && (_model == 0) && (_variant == 0x3)) {
+ if (FLAG_IS_DEFAULT(AvoidUnalignedAccesses)) {
+ FLAG_SET_DEFAULT(AvoidUnalignedAccesses, true);
+ }
+ if (FLAG_IS_DEFAULT(UseSIMDForMemoryOps)) {
+ FLAG_SET_DEFAULT(UseSIMDForMemoryOps, true);
+ }
+ if (FLAG_IS_DEFAULT(UseSIMDForArrayEquals)) {
+ FLAG_SET_DEFAULT(UseSIMDForArrayEquals, !(_revision == 1 || _revision == 2));
+ }
+ }
+
// ThunderX
if (_cpu == CPU_CAVIUM && (_model == 0xA1)) {
if (_variant == 0) _features |= CPU_DMB_ATOMICS;
Verification will be done on Ampere eMAG platforms.
Suppose no direct impacts on functions at other platforms.
--- old/src/hotspot/cpu/aarch64/vm_version_aarch64.cpp 2019-03-12 14:04:03.162682861 +0800
+++ new/src/hotspot/cpu/aarch64/vm_version_aarch64.cpp 2019-03-12 14:04:02.926683992 +0800
@@ -194,6 +194,19 @@
// Enable vendor specific features
+ // Ampere eMAG
+ if (_cpu == CPU_AMCC && (_model == 0) && (_variant == 0x3)) {
+ if (FLAG_IS_DEFAULT(AvoidUnalignedAccesses)) {
+ FLAG_SET_DEFAULT(AvoidUnalignedAccesses, true);
+ }
+ if (FLAG_IS_DEFAULT(UseSIMDForMemoryOps)) {
+ FLAG_SET_DEFAULT(UseSIMDForMemoryOps, true);
+ }
+ if (FLAG_IS_DEFAULT(UseSIMDForArrayEquals)) {
+ FLAG_SET_DEFAULT(UseSIMDForArrayEquals, !(_revision == 1 || _revision == 2));
+ }
+ }
+
// ThunderX
if (_cpu == CPU_CAVIUM && (_model == 0xA1)) {
if (_variant == 0) _features |= CPU_DMB_ATOMICS;