190 }
191
192 #ifdef COMPILER2
193 if (has_fast_rdpc() && FLAG_IS_DEFAULT(UseRDPCForConstantTableBase)) {
194 FLAG_SET_DEFAULT(UseRDPCForConstantTableBase, true);
195 }
196
197 // Currently not supported anywhere.
198 FLAG_SET_DEFAULT(UseFPUForSpilling, false);
199
200 MaxVectorSize = 8;
201
202 assert((InteriorEntryAlignment % relocInfo::addr_unit()) == 0, "alignment is not a multiple of NOP size");
203 #endif
204
205 assert((CodeEntryAlignment % relocInfo::addr_unit()) == 0, "alignment is not a multiple of NOP size");
206 assert((OptoLoopAlignment % relocInfo::addr_unit()) == 0, "alignment is not a multiple of NOP size");
207
208 char buf[512];
209 jio_snprintf(buf, sizeof(buf),
210 "%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s",
211 (has_v9() ? "v9" : ""),
212 (has_popc() ? ", popc" : ""),
213 (has_vis1() ? ", vis1" : ""),
214 (has_vis2() ? ", vis2" : ""),
215 (has_blk_init() ? ", blk_init" : ""),
216 (has_fmaf() ? ", fmaf" : ""),
217 (has_hpc() ? ", hpc" : ""),
218 (has_ima() ? ", ima" : ""),
219 (has_aes() ? ", aes" : ""),
220 (has_des() ? ", des" : ""),
221 (has_kasumi() ? ", kas" : ""),
222 (has_camellia() ? ", cam" : ""),
223 (has_md5() ? ", md5" : ""),
224 (has_sha1() ? ", sha1" : ""),
225 (has_sha256() ? ", sha256" : ""),
226 (has_sha512() ? ", sha512" : ""),
227 (has_mpmul() ? ", mpmul" : ""),
228 (has_mont() ? ", mont" : ""),
229 (has_pause() ? ", pause" : ""),
230 (has_cbcond() ? ", cbcond" : ""),
231 (has_crc32c() ? ", crc32c" : ""),
232
233 (has_athena_plus() ? ", athena_plus" : ""),
234 (has_vis3b() ? ", vis3b" : ""),
235 (has_adi() ? ", adi" : ""),
236 (has_sparc5() ? ", sparc5" : ""),
237 (has_mwait() ? ", mwait" : ""),
238 (has_xmpmul() ? ", xmpmul" : ""),
239 (has_xmont() ? ", xmont" : ""),
240 (has_pause_nsec() ? ", pause_nsec" : ""),
241 (has_vamask() ? ", vamask" : ""),
242
243 (has_fast_idiv() ? ", *idiv" : ""),
244 (has_fast_rdpc() ? ", *rdpc" : ""),
245 (has_fast_bis() ? ", *bis" : ""),
246 (has_fast_ld() ? ", *ld" : ""),
247 (has_fast_cmove() ? ", *cmove" : ""),
248 (has_fast_ind_br() ? ", *ind_br" : ""),
249 (has_blk_zeroing() ? ", *blk_zeroing" : ""));
250
251 assert(strlen(buf) >= 2, "must be");
252
253 _features_string = os::strdup(buf);
254
255 log_info(os, cpu)("SPARC features detected: %s", _features_string);
256
257 // UseVIS is set to the smallest of what hardware supports and what the command
258 // line requires, i.e. you cannot set UseVIS to 3 on older UltraSparc which do
259 // not support it.
260
261 if (UseVIS > 3) UseVIS = 3;
262 if (UseVIS < 0) UseVIS = 0;
|
190 }
191
192 #ifdef COMPILER2
193 if (has_fast_rdpc() && FLAG_IS_DEFAULT(UseRDPCForConstantTableBase)) {
194 FLAG_SET_DEFAULT(UseRDPCForConstantTableBase, true);
195 }
196
197 // Currently not supported anywhere.
198 FLAG_SET_DEFAULT(UseFPUForSpilling, false);
199
200 MaxVectorSize = 8;
201
202 assert((InteriorEntryAlignment % relocInfo::addr_unit()) == 0, "alignment is not a multiple of NOP size");
203 #endif
204
205 assert((CodeEntryAlignment % relocInfo::addr_unit()) == 0, "alignment is not a multiple of NOP size");
206 assert((OptoLoopAlignment % relocInfo::addr_unit()) == 0, "alignment is not a multiple of NOP size");
207
208 char buf[512];
209 jio_snprintf(buf, sizeof(buf),
210 "%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s"
211 "%s%s%s%s%s%s%s%s%s" "%s%s%s%s%s%s%s%s%s"
212 "%s%s%s%s%s%s%s",
213 (has_v9() ? "v9" : ""),
214 (has_popc() ? ", popc" : ""),
215 (has_vis1() ? ", vis1" : ""),
216 (has_vis2() ? ", vis2" : ""),
217 (has_blk_init() ? ", blk_init" : ""),
218 (has_fmaf() ? ", fmaf" : ""),
219 (has_hpc() ? ", hpc" : ""),
220 (has_ima() ? ", ima" : ""),
221 (has_aes() ? ", aes" : ""),
222 (has_des() ? ", des" : ""),
223 (has_kasumi() ? ", kas" : ""),
224 (has_camellia() ? ", cam" : ""),
225 (has_md5() ? ", md5" : ""),
226 (has_sha1() ? ", sha1" : ""),
227 (has_sha256() ? ", sha256" : ""),
228 (has_sha512() ? ", sha512" : ""),
229 (has_mpmul() ? ", mpmul" : ""),
230 (has_mont() ? ", mont" : ""),
231 (has_pause() ? ", pause" : ""),
232 (has_cbcond() ? ", cbcond" : ""),
233 (has_crc32c() ? ", crc32c" : ""),
234
235 (has_athena_plus() ? ", athena_plus" : ""),
236 (has_vis3b() ? ", vis3b" : ""),
237 (has_adi() ? ", adi" : ""),
238 (has_sparc5() ? ", sparc5" : ""),
239 (has_mwait() ? ", mwait" : ""),
240 (has_xmpmul() ? ", xmpmul" : ""),
241 (has_xmont() ? ", xmont" : ""),
242 (has_pause_nsec() ? ", pause_nsec" : ""),
243 (has_vamask() ? ", vamask" : ""),
244
245 (has_sparc6() ? ", sparc6" : ""),
246 (has_dictunp() ? ", dictunp" : ""),
247 (has_fpcmpshl() ? ", fpcmpshl" : ""),
248 (has_rle() ? ", rle" : ""),
249 (has_sha3() ? ", sha3" : ""),
250 (has_athena_plus2()? ", athena_plus2" : ""),
251 (has_vis3c() ? ", vis3c" : ""),
252 (has_sparc5b() ? ", sparc5b" : ""),
253 (has_mme() ? ", mme" : ""),
254
255 (has_fast_idiv() ? ", *idiv" : ""),
256 (has_fast_rdpc() ? ", *rdpc" : ""),
257 (has_fast_bis() ? ", *bis" : ""),
258 (has_fast_ld() ? ", *ld" : ""),
259 (has_fast_cmove() ? ", *cmove" : ""),
260 (has_fast_ind_br() ? ", *ind_br" : ""),
261 (has_blk_zeroing() ? ", *blk_zeroing" : ""));
262
263 assert(strlen(buf) >= 2, "must be");
264
265 _features_string = os::strdup(buf);
266
267 log_info(os, cpu)("SPARC features detected: %s", _features_string);
268
269 // UseVIS is set to the smallest of what hardware supports and what the command
270 // line requires, i.e. you cannot set UseVIS to 3 on older UltraSparc which do
271 // not support it.
272
273 if (UseVIS > 3) UseVIS = 3;
274 if (UseVIS < 0) UseVIS = 0;
|