8182279: Updating SPARC feature/capability detection to support Core C5
Renamed Core Sx to Core Cx (C3, C4, C5, according to name change). Reviewed-by: kvn, dholmes
This commit is contained in:
parent
b125aebb91
commit
d801fa5d9d
src
hotspot
cpu/sparc
os_cpu/solaris_sparc
share/jvmci
jdk.internal.vm.ci/share/classes
jdk.vm.ci.hotspot.sparc/src/jdk/vm/ci/hotspot/sparc
jdk.vm.ci.sparc/src/jdk/vm/ci/sparc
@ -101,6 +101,14 @@
|
||||
declare_constant(VM_Version::ISA_XMONT) \
|
||||
declare_constant(VM_Version::ISA_PAUSE_NSEC) \
|
||||
declare_constant(VM_Version::ISA_VAMASK) \
|
||||
declare_constant(VM_Version::ISA_SPARC6) \
|
||||
declare_constant(VM_Version::ISA_DICTUNP) \
|
||||
declare_constant(VM_Version::ISA_FPCMPSHL) \
|
||||
declare_constant(VM_Version::ISA_RLE) \
|
||||
declare_constant(VM_Version::ISA_SHA3) \
|
||||
declare_constant(VM_Version::ISA_VIS3C) \
|
||||
declare_constant(VM_Version::ISA_SPARC5B) \
|
||||
declare_constant(VM_Version::ISA_MME) \
|
||||
declare_constant(VM_Version::CPU_FAST_IDIV) \
|
||||
declare_constant(VM_Version::CPU_FAST_RDPC) \
|
||||
declare_constant(VM_Version::CPU_FAST_BIS) \
|
||||
|
@ -103,7 +103,7 @@ void VM_Version::initialize() {
|
||||
FLAG_SET_DEFAULT(AllocatePrefetchInstr, 1);
|
||||
}
|
||||
else if (has_sparc5()) {
|
||||
// Use prefetch instruction to avoid partial RAW issue on Core S4 processors,
|
||||
// Use prefetch instruction to avoid partial RAW issue on Core C4 processors,
|
||||
// also use prefetch style 3.
|
||||
FLAG_SET_DEFAULT(AllocatePrefetchInstr, 0);
|
||||
if (FLAG_IS_DEFAULT(AllocatePrefetchStyle)) {
|
||||
@ -128,7 +128,7 @@ void VM_Version::initialize() {
|
||||
|
||||
// We increase the number of prefetched cache lines, to use just a bit more
|
||||
// aggressive approach, when the L2-cache line size is small (32 bytes), or
|
||||
// when running on newer processor implementations, such as the Core S4.
|
||||
// when running on newer processor implementations, such as the Core C4.
|
||||
bool inc_prefetch = cache_line_size > 0 && (cache_line_size < 64 || has_sparc5());
|
||||
|
||||
if (inc_prefetch) {
|
||||
@ -218,7 +218,9 @@ void VM_Version::initialize() {
|
||||
|
||||
char buf[512];
|
||||
jio_snprintf(buf, sizeof(buf),
|
||||
"%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",
|
||||
"%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%s%s"
|
||||
"%s%s%s%s%s%s%s",
|
||||
(has_v9() ? "v9" : ""),
|
||||
(has_popc() ? ", popc" : ""),
|
||||
(has_vis1() ? ", vis1" : ""),
|
||||
@ -251,6 +253,16 @@ void VM_Version::initialize() {
|
||||
(has_pause_nsec() ? ", pause_nsec" : ""),
|
||||
(has_vamask() ? ", vamask" : ""),
|
||||
|
||||
(has_sparc6() ? ", sparc6" : ""),
|
||||
(has_dictunp() ? ", dictunp" : ""),
|
||||
(has_fpcmpshl() ? ", fpcmpshl" : ""),
|
||||
(has_rle() ? ", rle" : ""),
|
||||
(has_sha3() ? ", sha3" : ""),
|
||||
(has_athena_plus2()? ", athena_plus2" : ""),
|
||||
(has_vis3c() ? ", vis3c" : ""),
|
||||
(has_sparc5b() ? ", sparc5b" : ""),
|
||||
(has_mme() ? ", mme" : ""),
|
||||
|
||||
(has_fast_idiv() ? ", *idiv" : ""),
|
||||
(has_fast_rdpc() ? ", *rdpc" : ""),
|
||||
(has_fast_bis() ? ", *bis" : ""),
|
||||
|
@ -67,6 +67,16 @@ protected:
|
||||
ISA_PAUSE_NSEC,
|
||||
ISA_VAMASK,
|
||||
|
||||
ISA_SPARC6,
|
||||
ISA_DICTUNP,
|
||||
ISA_FPCMPSHL,
|
||||
ISA_RLE,
|
||||
ISA_SHA3,
|
||||
ISA_FJATHPLUS2,
|
||||
ISA_VIS3C,
|
||||
ISA_SPARC5B,
|
||||
ISA_MME,
|
||||
|
||||
// Synthesised properties:
|
||||
|
||||
CPU_FAST_IDIV,
|
||||
@ -79,7 +89,7 @@ protected:
|
||||
};
|
||||
|
||||
private:
|
||||
enum { ISA_last_feature = ISA_VAMASK,
|
||||
enum { ISA_last_feature = ISA_MME,
|
||||
CPU_last_feature = CPU_BLK_ZEROING };
|
||||
|
||||
enum {
|
||||
@ -119,6 +129,16 @@ private:
|
||||
ISA_pause_nsec_msk = UINT64_C(1) << ISA_PAUSE_NSEC,
|
||||
ISA_vamask_msk = UINT64_C(1) << ISA_VAMASK,
|
||||
|
||||
ISA_sparc6_msk = UINT64_C(1) << ISA_SPARC6,
|
||||
ISA_dictunp_msk = UINT64_C(1) << ISA_DICTUNP,
|
||||
ISA_fpcmpshl_msk = UINT64_C(1) << ISA_FPCMPSHL,
|
||||
ISA_rle_msk = UINT64_C(1) << ISA_RLE,
|
||||
ISA_sha3_msk = UINT64_C(1) << ISA_SHA3,
|
||||
ISA_fjathplus2_msk = UINT64_C(1) << ISA_FJATHPLUS2,
|
||||
ISA_vis3c_msk = UINT64_C(1) << ISA_VIS3C,
|
||||
ISA_sparc5b_msk = UINT64_C(1) << ISA_SPARC5B,
|
||||
ISA_mme_msk = UINT64_C(1) << ISA_MME,
|
||||
|
||||
CPU_fast_idiv_msk = UINT64_C(1) << CPU_FAST_IDIV,
|
||||
CPU_fast_rdpc_msk = UINT64_C(1) << CPU_FAST_RDPC,
|
||||
CPU_fast_bis_msk = UINT64_C(1) << CPU_FAST_BIS,
|
||||
@ -153,40 +173,51 @@ private:
|
||||
* UltraSPARC T2+: (Victoria Falls, etc.)
|
||||
* SPARC-V9, VIS, VIS2, ASI_BIS, POPC (Crypto/hash in SPU)
|
||||
*
|
||||
* UltraSPARC T3: (Rainbow Falls/S2)
|
||||
* UltraSPARC T3: (Rainbow Falls/C2)
|
||||
* SPARC-V9, VIS, VIS2, ASI_BIS, POPC (Crypto/hash in SPU)
|
||||
*
|
||||
* Oracle SPARC T4/T5/M5: (Core S3)
|
||||
* Oracle SPARC T4/T5/M5: (Core C3)
|
||||
* SPARC-V9, VIS, VIS2, VIS3, ASI_BIS, HPC, POPC, FMAF, IMA, PAUSE, CBCOND,
|
||||
* AES, DES, Kasumi, Camellia, MD5, SHA1, SHA256, SHA512, CRC32C, MONT, MPMUL
|
||||
*
|
||||
* Oracle SPARC M7: (Core S4)
|
||||
* Oracle SPARC M7: (Core C4)
|
||||
* SPARC-V9, VIS, VIS2, VIS3, ASI_BIS, HPC, POPC, FMAF, IMA, PAUSE, CBCOND,
|
||||
* AES, DES, Camellia, MD5, SHA1, SHA256, SHA512, CRC32C, MONT, MPMUL, VIS3b,
|
||||
* ADI, SPARC5, MWAIT, XMPMUL, XMONT, PAUSE_NSEC, VAMASK
|
||||
*
|
||||
* Oracle SPARC M8: (Core C5)
|
||||
* SPARC-V9, VIS, VIS2, VIS3, ASI_BIS, HPC, POPC, FMAF, IMA, PAUSE, CBCOND,
|
||||
* AES, DES, Camellia, MD5, SHA1, SHA256, SHA512, CRC32C, MONT, MPMUL, VIS3b,
|
||||
* ADI, SPARC5, MWAIT, XMPMUL, XMONT, PAUSE_NSEC, VAMASK, SPARC6, FPCMPSHL,
|
||||
* DICTUNP, RLE, SHA3, MME
|
||||
*
|
||||
* NOTE: Oracle Number support ignored.
|
||||
*/
|
||||
enum {
|
||||
niagara1_msk = ISA_v9_msk | ISA_vis1_msk | ISA_blk_init_msk,
|
||||
niagara2_msk = niagara1_msk | ISA_popc_msk,
|
||||
|
||||
core_S2_msk = niagara2_msk | ISA_vis2_msk,
|
||||
core_C2_msk = niagara2_msk | ISA_vis2_msk,
|
||||
|
||||
core_S3_msk = core_S2_msk | ISA_fmaf_msk | ISA_vis3_msk | ISA_hpc_msk |
|
||||
core_C3_msk = core_C2_msk | ISA_fmaf_msk | ISA_vis3_msk | ISA_hpc_msk |
|
||||
ISA_ima_msk | ISA_aes_msk | ISA_des_msk | ISA_kasumi_msk |
|
||||
ISA_camellia_msk | ISA_md5_msk | ISA_sha1_msk | ISA_sha256_msk |
|
||||
ISA_sha512_msk | ISA_mpmul_msk | ISA_mont_msk | ISA_pause_msk |
|
||||
ISA_cbcond_msk | ISA_crc32c_msk,
|
||||
|
||||
core_S4_msk = core_S3_msk - ISA_kasumi_msk |
|
||||
core_C4_msk = core_C3_msk - ISA_kasumi_msk |
|
||||
ISA_vis3b_msk | ISA_adi_msk | ISA_sparc5_msk | ISA_mwait_msk |
|
||||
ISA_xmpmul_msk | ISA_xmont_msk | ISA_pause_nsec_msk | ISA_vamask_msk,
|
||||
|
||||
core_C5_msk = core_C4_msk | ISA_sparc6_msk | ISA_dictunp_msk |
|
||||
ISA_fpcmpshl_msk | ISA_rle_msk | ISA_sha3_msk | ISA_mme_msk,
|
||||
|
||||
ultra_sparc_t1_msk = niagara1_msk,
|
||||
ultra_sparc_t2_msk = niagara2_msk,
|
||||
ultra_sparc_t3_msk = core_S2_msk,
|
||||
ultra_sparc_m5_msk = core_S3_msk, // NOTE: First out-of-order pipeline.
|
||||
ultra_sparc_m7_msk = core_S4_msk
|
||||
ultra_sparc_t3_msk = core_C2_msk,
|
||||
ultra_sparc_m5_msk = core_C3_msk, // NOTE: First out-of-order pipeline.
|
||||
ultra_sparc_m7_msk = core_C4_msk,
|
||||
ultra_sparc_m8_msk = core_C5_msk
|
||||
};
|
||||
|
||||
static uint _L2_data_cache_line_size;
|
||||
@ -247,6 +278,16 @@ public:
|
||||
static bool has_pause_nsec() { return (_features & ISA_pause_nsec_msk) != 0; }
|
||||
static bool has_vamask() { return (_features & ISA_vamask_msk) != 0; }
|
||||
|
||||
static bool has_sparc6() { return (_features & ISA_sparc6_msk) != 0; }
|
||||
static bool has_dictunp() { return (_features & ISA_dictunp_msk) != 0; }
|
||||
static bool has_fpcmpshl() { return (_features & ISA_fpcmpshl_msk) != 0; }
|
||||
static bool has_rle() { return (_features & ISA_rle_msk) != 0; }
|
||||
static bool has_sha3() { return (_features & ISA_sha3_msk) != 0; }
|
||||
static bool has_athena_plus2() { return (_features & ISA_fjathplus2_msk) != 0; }
|
||||
static bool has_vis3c() { return (_features & ISA_vis3c_msk) != 0; }
|
||||
static bool has_sparc5b() { return (_features & ISA_sparc5b_msk) != 0; }
|
||||
static bool has_mme() { return (_features & ISA_mme_msk) != 0; }
|
||||
|
||||
static bool has_fast_idiv() { return (_features & CPU_fast_idiv_msk) != 0; }
|
||||
static bool has_fast_rdpc() { return (_features & CPU_fast_rdpc_msk) != 0; }
|
||||
static bool has_fast_bis() { return (_features & CPU_fast_bis_msk) != 0; }
|
||||
|
@ -380,7 +380,7 @@ void VM_Version::platform_features() {
|
||||
if (av & AV_SPARC_CRC32C) features |= ISA_crc32c_msk;
|
||||
|
||||
#ifndef AV2_SPARC_FJATHPLUS
|
||||
#define AV2_SPARC_FJATHPLUS 0x00000001 // Fujitsu Athena+
|
||||
#define AV2_SPARC_FJATHPLUS 0x00000001 // Fujitsu Athena+ insns
|
||||
#endif
|
||||
#ifndef AV2_SPARC_VIS3B
|
||||
#define AV2_SPARC_VIS3B 0x00000002 // VIS3 present on multiple chips
|
||||
@ -405,6 +405,34 @@ void VM_Version::platform_features() {
|
||||
#endif
|
||||
#ifndef AV2_SPARC_VAMASK
|
||||
#define AV2_SPARC_VAMASK 0x00000100 // Virtual Address masking
|
||||
#endif
|
||||
|
||||
#ifndef AV2_SPARC_SPARC6
|
||||
#define AV2_SPARC_SPARC6 0x00000200 // REVB*, FPSLL*, RDENTROPY, LDM* and STM*
|
||||
#endif
|
||||
#ifndef AV2_SPARC_DICTUNP
|
||||
#define AV2_SPARC_DICTUNP 0x00002000 // Dictionary unpack instruction
|
||||
#endif
|
||||
#ifndef AV2_SPARC_FPCMPSHL
|
||||
#define AV2_SPARC_FPCMPSHL 0x00004000 // Partition compare with shifted result
|
||||
#endif
|
||||
#ifndef AV2_SPARC_RLE
|
||||
#define AV2_SPARC_RLE 0x00008000 // Run-length encoded burst and length
|
||||
#endif
|
||||
#ifndef AV2_SPARC_SHA3
|
||||
#define AV2_SPARC_SHA3 0x00010000 // SHA3 instructions
|
||||
#endif
|
||||
#ifndef AV2_SPARC_FJATHPLUS2
|
||||
#define AV2_SPARC_FJATHPLUS2 0x00020000 // Fujitsu Athena++ insns
|
||||
#endif
|
||||
#ifndef AV2_SPARC_VIS3C
|
||||
#define AV2_SPARC_VIS3C 0x00040000 // Subset of VIS3 insns provided by Athena++
|
||||
#endif
|
||||
#ifndef AV2_SPARC_SPARC5B
|
||||
#define AV2_SPARC_SPARC5B 0x00080000 // subset of SPARC5 insns (fpadd8, fpsub8)
|
||||
#endif
|
||||
#ifndef AV2_SPARC_MME
|
||||
#define AV2_SPARC_MME 0x00100000 // Misaligned Mitigation Enable
|
||||
#endif
|
||||
|
||||
if (avn > 1) {
|
||||
@ -419,19 +447,30 @@ void VM_Version::platform_features() {
|
||||
if (av2 & AV2_SPARC_XMONT) features |= ISA_xmont_msk;
|
||||
if (av2 & AV2_SPARC_PAUSE_NSEC) features |= ISA_pause_nsec_msk;
|
||||
if (av2 & AV2_SPARC_VAMASK) features |= ISA_vamask_msk;
|
||||
|
||||
if (av2 & AV2_SPARC_SPARC6) features |= ISA_sparc6_msk;
|
||||
if (av2 & AV2_SPARC_DICTUNP) features |= ISA_dictunp_msk;
|
||||
if (av2 & AV2_SPARC_FPCMPSHL) features |= ISA_fpcmpshl_msk;
|
||||
if (av2 & AV2_SPARC_RLE) features |= ISA_rle_msk;
|
||||
if (av2 & AV2_SPARC_SHA3) features |= ISA_sha3_msk;
|
||||
if (av2 & AV2_SPARC_FJATHPLUS2) features |= ISA_fjathplus2_msk;
|
||||
if (av2 & AV2_SPARC_VIS3C) features |= ISA_vis3c_msk;
|
||||
if (av2 & AV2_SPARC_SPARC5B) features |= ISA_sparc5b_msk;
|
||||
if (av2 & AV2_SPARC_MME) features |= ISA_mme_msk;
|
||||
}
|
||||
|
||||
_features = features; // ISA feature set completed, update state.
|
||||
|
||||
Sysinfo machine(SI_MACHINE);
|
||||
|
||||
bool is_sun4v = machine.match("sun4v"); // All Oracle SPARC + Fujitsu Athena+
|
||||
bool is_sun4v = machine.match("sun4v"); // All Oracle SPARC + Fujitsu Athena+/++
|
||||
bool is_sun4u = machine.match("sun4u"); // All other Fujitsu
|
||||
|
||||
// Handle Athena+ conservatively (simply because we are lacking info.).
|
||||
// Handle Athena+/++ conservatively (simply because we are lacking info.).
|
||||
|
||||
bool do_sun4v = is_sun4v && !has_athena_plus();
|
||||
bool do_sun4u = is_sun4u || has_athena_plus();
|
||||
bool an_athena = has_athena_plus() || has_athena_plus2();
|
||||
bool do_sun4v = is_sun4v && !an_athena;
|
||||
bool do_sun4u = is_sun4u || an_athena;
|
||||
|
||||
uint64_t synthetic = 0;
|
||||
|
||||
@ -441,16 +480,16 @@ void VM_Version::platform_features() {
|
||||
// Fast IDIV, BIS and LD available on Niagara Plus.
|
||||
if (has_vis2()) {
|
||||
synthetic |= (CPU_fast_idiv_msk | CPU_fast_ld_msk);
|
||||
// ...on Core S4 however, we prefer not to use BIS.
|
||||
// ...on Core C4 however, we prefer not to use BIS.
|
||||
if (!has_sparc5()) {
|
||||
synthetic |= CPU_fast_bis_msk;
|
||||
}
|
||||
}
|
||||
// Niagara Core S3 supports fast RDPC and block zeroing.
|
||||
// SPARC Core C3 supports fast RDPC and block zeroing.
|
||||
if (has_ima()) {
|
||||
synthetic |= (CPU_fast_rdpc_msk | CPU_blk_zeroing_msk);
|
||||
}
|
||||
// Niagara Core S3 and S4 have slow CMOVE.
|
||||
// SPARC Core C3 and C4 have slow CMOVE.
|
||||
if (!has_ima()) {
|
||||
synthetic |= CPU_fast_cmove_msk;
|
||||
}
|
||||
|
@ -761,6 +761,14 @@
|
||||
declare_constant(VM_Version::ISA_XMONT) \
|
||||
declare_constant(VM_Version::ISA_PAUSE_NSEC) \
|
||||
declare_constant(VM_Version::ISA_VAMASK) \
|
||||
declare_constant(VM_Version::ISA_SPARC6) \
|
||||
declare_constant(VM_Version::ISA_DICTUNP) \
|
||||
declare_constant(VM_Version::ISA_FPCMPSHL) \
|
||||
declare_constant(VM_Version::ISA_RLE) \
|
||||
declare_constant(VM_Version::ISA_SHA3) \
|
||||
declare_constant(VM_Version::ISA_VIS3C) \
|
||||
declare_constant(VM_Version::ISA_SPARC5B) \
|
||||
declare_constant(VM_Version::ISA_MME) \
|
||||
declare_constant(VM_Version::CPU_FAST_IDIV) \
|
||||
declare_constant(VM_Version::CPU_FAST_RDPC) \
|
||||
declare_constant(VM_Version::CPU_FAST_BIS) \
|
||||
|
@ -79,9 +79,15 @@ public class SPARCHotSpotJVMCIBackendFactory implements HotSpotJVMCIBackendFacto
|
||||
if ((config.vmVersionFeatures & 1L << config.sparc_DES) != 0) {
|
||||
features.add(CPUFeature.DES);
|
||||
}
|
||||
if ((config.vmVersionFeatures & 1L << config.sparc_DICTUNP) != 0) {
|
||||
features.add(CPUFeature.DICTUNP);
|
||||
}
|
||||
if ((config.vmVersionFeatures & 1L << config.sparc_FMAF) != 0) {
|
||||
features.add(CPUFeature.FMAF);
|
||||
}
|
||||
if ((config.vmVersionFeatures & 1L << config.sparc_FPCMPSHL) != 0) {
|
||||
features.add(CPUFeature.FPCMPSHL);
|
||||
}
|
||||
if ((config.vmVersionFeatures & 1L << config.sparc_HPC) != 0) {
|
||||
features.add(CPUFeature.HPC);
|
||||
}
|
||||
@ -94,6 +100,9 @@ public class SPARCHotSpotJVMCIBackendFactory implements HotSpotJVMCIBackendFacto
|
||||
if ((config.vmVersionFeatures & 1L << config.sparc_MD5) != 0) {
|
||||
features.add(CPUFeature.MD5);
|
||||
}
|
||||
if ((config.vmVersionFeatures & 1L << config.sparc_MME) != 0) {
|
||||
features.add(CPUFeature.MME);
|
||||
}
|
||||
if ((config.vmVersionFeatures & 1L << config.sparc_MONT) != 0) {
|
||||
features.add(CPUFeature.MONT);
|
||||
}
|
||||
@ -112,18 +121,30 @@ public class SPARCHotSpotJVMCIBackendFactory implements HotSpotJVMCIBackendFacto
|
||||
if ((config.vmVersionFeatures & 1L << config.sparc_POPC) != 0) {
|
||||
features.add(CPUFeature.POPC);
|
||||
}
|
||||
if ((config.vmVersionFeatures & 1L << config.sparc_RLE) != 0) {
|
||||
features.add(CPUFeature.RLE);
|
||||
}
|
||||
if ((config.vmVersionFeatures & 1L << config.sparc_SHA1) != 0) {
|
||||
features.add(CPUFeature.SHA1);
|
||||
}
|
||||
if ((config.vmVersionFeatures & 1L << config.sparc_SHA256) != 0) {
|
||||
features.add(CPUFeature.SHA256);
|
||||
}
|
||||
if ((config.vmVersionFeatures & 1L << config.sparc_SHA3) != 0) {
|
||||
features.add(CPUFeature.SHA3);
|
||||
}
|
||||
if ((config.vmVersionFeatures & 1L << config.sparc_SHA512) != 0) {
|
||||
features.add(CPUFeature.SHA512);
|
||||
}
|
||||
if ((config.vmVersionFeatures & 1L << config.sparc_SPARC5) != 0) {
|
||||
features.add(CPUFeature.SPARC5);
|
||||
}
|
||||
if ((config.vmVersionFeatures & 1L << config.sparc_SPARC5B) != 0) {
|
||||
features.add(CPUFeature.SPARC5B);
|
||||
}
|
||||
if ((config.vmVersionFeatures & 1L << config.sparc_SPARC6) != 0) {
|
||||
features.add(CPUFeature.SPARC6);
|
||||
}
|
||||
if ((config.vmVersionFeatures & 1L << config.sparc_V9) != 0) {
|
||||
features.add(CPUFeature.V9);
|
||||
}
|
||||
@ -142,6 +163,9 @@ public class SPARCHotSpotJVMCIBackendFactory implements HotSpotJVMCIBackendFacto
|
||||
if ((config.vmVersionFeatures & 1L << config.sparc_VIS3B) != 0) {
|
||||
features.add(CPUFeature.VIS3B);
|
||||
}
|
||||
if ((config.vmVersionFeatures & 1L << config.sparc_VIS3C) != 0) {
|
||||
features.add(CPUFeature.VIS3C);
|
||||
}
|
||||
if ((config.vmVersionFeatures & 1L << config.sparc_XMONT) != 0) {
|
||||
features.add(CPUFeature.XMONT);
|
||||
}
|
||||
|
@ -55,27 +55,35 @@ class SPARCHotSpotVMConfig extends HotSpotVMConfigAccess {
|
||||
final int sparc_CBCOND = getConstant("VM_Version::ISA_CBCOND", Integer.class);
|
||||
final int sparc_CRC32C = getConstant("VM_Version::ISA_CRC32C", Integer.class);
|
||||
final int sparc_DES = getConstant("VM_Version::ISA_DES", Integer.class);
|
||||
final int sparc_DICTUNP = getConstant("VM_Version::ISA_DICTUNP", Integer.class);
|
||||
final int sparc_FMAF = getConstant("VM_Version::ISA_FMAF", Integer.class);
|
||||
final int sparc_FPCMPSHL = getConstant("VM_Version::ISA_FPCMPSHL", Integer.class);
|
||||
final int sparc_HPC = getConstant("VM_Version::ISA_HPC", Integer.class);
|
||||
final int sparc_IMA = getConstant("VM_Version::ISA_IMA", Integer.class);
|
||||
final int sparc_KASUMI = getConstant("VM_Version::ISA_KASUMI", Integer.class);
|
||||
final int sparc_MD5 = getConstant("VM_Version::ISA_MD5", Integer.class);
|
||||
final int sparc_MME = getConstant("VM_Version::ISA_MME", Integer.class);
|
||||
final int sparc_MONT = getConstant("VM_Version::ISA_MONT", Integer.class);
|
||||
final int sparc_MPMUL = getConstant("VM_Version::ISA_MPMUL", Integer.class);
|
||||
final int sparc_MWAIT = getConstant("VM_Version::ISA_MWAIT", Integer.class);
|
||||
final int sparc_PAUSE = getConstant("VM_Version::ISA_PAUSE", Integer.class);
|
||||
final int sparc_PAUSE_NSEC = getConstant("VM_Version::ISA_PAUSE_NSEC", Integer.class);
|
||||
final int sparc_POPC = getConstant("VM_Version::ISA_POPC", Integer.class);
|
||||
final int sparc_RLE = getConstant("VM_Version::ISA_RLE", Integer.class);
|
||||
final int sparc_SHA1 = getConstant("VM_Version::ISA_SHA1", Integer.class);
|
||||
final int sparc_SHA256 = getConstant("VM_Version::ISA_SHA256", Integer.class);
|
||||
final int sparc_SHA3 = getConstant("VM_Version::ISA_SHA3", Integer.class);
|
||||
final int sparc_SHA512 = getConstant("VM_Version::ISA_SHA512", Integer.class);
|
||||
final int sparc_SPARC5 = getConstant("VM_Version::ISA_SPARC5", Integer.class);
|
||||
final int sparc_SPARC5B = getConstant("VM_Version::ISA_SPARC5B", Integer.class);
|
||||
final int sparc_SPARC6 = getConstant("VM_Version::ISA_SPARC6", Integer.class);
|
||||
final int sparc_V9 = getConstant("VM_Version::ISA_V9", Integer.class);
|
||||
final int sparc_VAMASK = getConstant("VM_Version::ISA_VAMASK", Integer.class);
|
||||
final int sparc_VIS1 = getConstant("VM_Version::ISA_VIS1", Integer.class);
|
||||
final int sparc_VIS2 = getConstant("VM_Version::ISA_VIS2", Integer.class);
|
||||
final int sparc_VIS3 = getConstant("VM_Version::ISA_VIS3", Integer.class);
|
||||
final int sparc_VIS3B = getConstant("VM_Version::ISA_VIS3B", Integer.class);
|
||||
final int sparc_VIS3C = getConstant("VM_Version::ISA_VIS3C", Integer.class);
|
||||
final int sparc_XMONT = getConstant("VM_Version::ISA_XMONT", Integer.class);
|
||||
final int sparc_XMPMUL = getConstant("VM_Version::ISA_XMPMUL", Integer.class);
|
||||
|
||||
|
@ -344,27 +344,35 @@ public class SPARC extends Architecture {
|
||||
CBCOND,
|
||||
CRC32C,
|
||||
DES,
|
||||
DICTUNP,
|
||||
FMAF,
|
||||
FPCMPSHL,
|
||||
HPC,
|
||||
IMA,
|
||||
KASUMI,
|
||||
MD5,
|
||||
MME,
|
||||
MONT,
|
||||
MPMUL,
|
||||
MWAIT,
|
||||
PAUSE,
|
||||
PAUSE_NSEC,
|
||||
POPC,
|
||||
RLE,
|
||||
SHA1,
|
||||
SHA256,
|
||||
SHA3,
|
||||
SHA512,
|
||||
SPARC5,
|
||||
SPARC5B,
|
||||
SPARC6,
|
||||
V9,
|
||||
VAMASK,
|
||||
VIS1,
|
||||
VIS2,
|
||||
VIS3,
|
||||
VIS3B,
|
||||
VIS3C,
|
||||
XMONT,
|
||||
XMPMUL,
|
||||
// Synthesised CPU properties:
|
||||
|
Loading…
x
Reference in New Issue
Block a user