< prev index next >

src/hotspot/cpu/aarch64/vm_version_aarch64.cpp

Print this page

127     if (VM_Version::supports_dcpop()) {
128       _data_cache_line_flush_size = dcache_line;
129     }
130   }
131 
132   // Enable vendor specific features
133 
134   // Ampere eMAG
135   if (_cpu == CPU_AMCC && (_model == CPU_MODEL_EMAG) && (_variant == 0x3)) {
136     if (FLAG_IS_DEFAULT(AvoidUnalignedAccesses)) {
137       FLAG_SET_DEFAULT(AvoidUnalignedAccesses, true);
138     }
139     if (FLAG_IS_DEFAULT(UseSIMDForMemoryOps)) {
140       FLAG_SET_DEFAULT(UseSIMDForMemoryOps, true);
141     }
142     if (FLAG_IS_DEFAULT(UseSIMDForArrayEquals)) {
143       FLAG_SET_DEFAULT(UseSIMDForArrayEquals, !(_revision == 1 || _revision == 2));
144     }
145   }
146 
147   // Ampere CPUs: Ampere-1 and Ampere-1A
148   if (_cpu == CPU_AMPERE && ((_model == CPU_MODEL_AMPERE_1) || (_model == CPU_MODEL_AMPERE_1A))) {


149     if (FLAG_IS_DEFAULT(UseSIMDForMemoryOps)) {
150       FLAG_SET_DEFAULT(UseSIMDForMemoryOps, true);
151     }






152   }
153 
154   // ThunderX
155   if (_cpu == CPU_CAVIUM && (_model == 0xA1)) {
156     guarantee(_variant != 0, "Pre-release hardware no longer supported.");
157     if (FLAG_IS_DEFAULT(AvoidUnalignedAccesses)) {
158       FLAG_SET_DEFAULT(AvoidUnalignedAccesses, true);
159     }
160     if (FLAG_IS_DEFAULT(UseSIMDForMemoryOps)) {
161       FLAG_SET_DEFAULT(UseSIMDForMemoryOps, (_variant > 0));
162     }
163     if (FLAG_IS_DEFAULT(UseSIMDForArrayEquals)) {
164       FLAG_SET_DEFAULT(UseSIMDForArrayEquals, false);
165     }
166   }
167 
168   // ThunderX2
169   if ((_cpu == CPU_CAVIUM && (_model == 0xAF)) ||
170       (_cpu == CPU_BROADCOM && (_model == 0x516))) {
171     if (FLAG_IS_DEFAULT(AvoidUnalignedAccesses)) {

127     if (VM_Version::supports_dcpop()) {
128       _data_cache_line_flush_size = dcache_line;
129     }
130   }
131 
132   // Enable vendor specific features
133 
134   // Ampere eMAG
135   if (_cpu == CPU_AMCC && (_model == CPU_MODEL_EMAG) && (_variant == 0x3)) {
136     if (FLAG_IS_DEFAULT(AvoidUnalignedAccesses)) {
137       FLAG_SET_DEFAULT(AvoidUnalignedAccesses, true);
138     }
139     if (FLAG_IS_DEFAULT(UseSIMDForMemoryOps)) {
140       FLAG_SET_DEFAULT(UseSIMDForMemoryOps, true);
141     }
142     if (FLAG_IS_DEFAULT(UseSIMDForArrayEquals)) {
143       FLAG_SET_DEFAULT(UseSIMDForArrayEquals, !(_revision == 1 || _revision == 2));
144     }
145   }
146 
147   // Ampere CPUs
148   if (_cpu == CPU_AMPERE && ((_model == CPU_MODEL_AMPERE_1)  ||
149                              (_model == CPU_MODEL_AMPERE_1A) ||
150                              (_model == CPU_MODEL_AMPERE_1B))) {
151     if (FLAG_IS_DEFAULT(UseSIMDForMemoryOps)) {
152       FLAG_SET_DEFAULT(UseSIMDForMemoryOps, true);
153     }
154     if (FLAG_IS_DEFAULT(OnSpinWaitInst)) {
155       FLAG_SET_DEFAULT(OnSpinWaitInst, "isb");
156     }
157     if (FLAG_IS_DEFAULT(OnSpinWaitInstCount)) {
158       FLAG_SET_DEFAULT(OnSpinWaitInstCount, 2);
159     }
160   }
161 
162   // ThunderX
163   if (_cpu == CPU_CAVIUM && (_model == 0xA1)) {
164     guarantee(_variant != 0, "Pre-release hardware no longer supported.");
165     if (FLAG_IS_DEFAULT(AvoidUnalignedAccesses)) {
166       FLAG_SET_DEFAULT(AvoidUnalignedAccesses, true);
167     }
168     if (FLAG_IS_DEFAULT(UseSIMDForMemoryOps)) {
169       FLAG_SET_DEFAULT(UseSIMDForMemoryOps, (_variant > 0));
170     }
171     if (FLAG_IS_DEFAULT(UseSIMDForArrayEquals)) {
172       FLAG_SET_DEFAULT(UseSIMDForArrayEquals, false);
173     }
174   }
175 
176   // ThunderX2
177   if ((_cpu == CPU_CAVIUM && (_model == 0xAF)) ||
178       (_cpu == CPU_BROADCOM && (_model == 0x516))) {
179     if (FLAG_IS_DEFAULT(AvoidUnalignedAccesses)) {
< prev index next >