# HG changeset patch # User Stefan Anzinger # Date 1444910244 -7200 # Node ID 2935e7fbd941d487513c60b875d9fc737674afdd # Parent 5ba5ff0fda9ebb97467026749ca64d4bb0385152 Provide all HotSpot Feature_Flags in JVMCI diff -r 5ba5ff0fda9e -r 2935e7fbd941 jvmci/jdk.vm.ci.hotspot.sparc/src/jdk/vm/ci/hotspot/sparc/SPARCHotSpotJVMCIBackendFactory.java --- a/jvmci/jdk.vm.ci.hotspot.sparc/src/jdk/vm/ci/hotspot/sparc/SPARCHotSpotJVMCIBackendFactory.java Thu Oct 15 11:52:47 2015 +0200 +++ b/jvmci/jdk.vm.ci.hotspot.sparc/src/jdk/vm/ci/hotspot/sparc/SPARCHotSpotJVMCIBackendFactory.java Thu Oct 15 13:57:24 2015 +0200 @@ -72,8 +72,62 @@ if ((config.sparcFeatures & config.cbcondInstructions) != 0) { features.add(CPUFeature.CBCOND); } - if (config.useBlockZeroing) { - features.add(CPUFeature.BLOCK_ZEROING); + if ((config.sparcFeatures & config.v8Instructions) != 0) { + features.add(CPUFeature.V8); + } + if ((config.sparcFeatures & config.hardwareMul32) != 0) { + features.add(CPUFeature.HARDWARE_MUL32); + } + if ((config.sparcFeatures & config.hardwareDiv32) != 0) { + features.add(CPUFeature.HARDWARE_DIV32); + } + if ((config.sparcFeatures & config.hardwareFsmuld) != 0) { + features.add(CPUFeature.HARDWARE_FSMULD); + } + if ((config.sparcFeatures & config.hardwarePopc) != 0) { + features.add(CPUFeature.HARDWARE_POPC); + } + if ((config.sparcFeatures & config.v9Instructions) != 0) { + features.add(CPUFeature.V9); + } + if ((config.sparcFeatures & config.sun4v) != 0) { + features.add(CPUFeature.SUN4V); + } + if ((config.sparcFeatures & config.blkInitInstructions) != 0) { + features.add(CPUFeature.BLK_INIT_INSTRUCTIONS); + } + if ((config.sparcFeatures & config.fmafInstructions) != 0) { + features.add(CPUFeature.FMAF); + } + if ((config.sparcFeatures & config.fmauInstructions) != 0) { + features.add(CPUFeature.FMAU); + } + if ((config.sparcFeatures & config.sparc64Family) != 0) { + features.add(CPUFeature.SPARC64_FAMILY); + } + if ((config.sparcFeatures & config.mFamily) != 0) { + features.add(CPUFeature.M_FAMILY); + } + if ((config.sparcFeatures & config.tFamily) != 0) { + features.add(CPUFeature.T_FAMILY); + } + if ((config.sparcFeatures & config.t1Model) != 0) { + features.add(CPUFeature.T1_MODEL); + } + if ((config.sparcFeatures & config.sparc5Instructions) != 0) { + features.add(CPUFeature.SPARC5); + } + if ((config.sparcFeatures & config.aesInstructions) != 0) { + features.add(CPUFeature.SPARC64_FAMILY); + } + if ((config.sparcFeatures & config.sha1Instruction) != 0) { + features.add(CPUFeature.SHA1); + } + if ((config.sparcFeatures & config.sha256Instruction) != 0) { + features.add(CPUFeature.SHA256); + } + if ((config.sparcFeatures & config.sha512Instruction) != 0) { + features.add(CPUFeature.SHA512); } return features; } diff -r 5ba5ff0fda9e -r 2935e7fbd941 jvmci/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotVMConfig.java --- a/jvmci/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotVMConfig.java Thu Oct 15 11:52:47 2015 +0200 +++ b/jvmci/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotVMConfig.java Thu Oct 15 13:57:24 2015 +0200 @@ -814,6 +814,26 @@ @HotSpotVMConstant(name = "VM_Version::vis2_instructions_m", archs = {"sparc"}) @Stable public int vis2Instructions; @HotSpotVMConstant(name = "VM_Version::vis1_instructions_m", archs = {"sparc"}) @Stable public int vis1Instructions; @HotSpotVMConstant(name = "VM_Version::cbcond_instructions_m", archs = {"sparc"}) @Stable public int cbcondInstructions; + @HotSpotVMConstant(name = "VM_Version::v8_instructions_m", archs = {"sparc"}) @Stable public int v8Instructions; + @HotSpotVMConstant(name = "VM_Version::hardware_mul32_m", archs = {"sparc"}) @Stable public int hardwareMul32; + @HotSpotVMConstant(name = "VM_Version::hardware_div32_m", archs = {"sparc"}) @Stable public int hardwareDiv32; + @HotSpotVMConstant(name = "VM_Version::hardware_fsmuld_m", archs = {"sparc"}) @Stable public int hardwareFsmuld; + @HotSpotVMConstant(name = "VM_Version::hardware_popc_m", archs = {"sparc"}) @Stable public int hardwarePopc; + @HotSpotVMConstant(name = "VM_Version::v9_instructions_m", archs = {"sparc"}) @Stable public int v9Instructions; + @HotSpotVMConstant(name = "VM_Version::sun4v_m", archs = {"sparc"}) @Stable public int sun4v; + @HotSpotVMConstant(name = "VM_Version::blk_init_instructions_m", archs = {"sparc"}) @Stable public int blkInitInstructions; + @HotSpotVMConstant(name = "VM_Version::fmaf_instructions_m", archs = {"sparc"}) @Stable public int fmafInstructions; + @HotSpotVMConstant(name = "VM_Version::fmau_instructions_m", archs = {"sparc"}) @Stable public int fmauInstructions; + @HotSpotVMConstant(name = "VM_Version::sparc64_family_m", archs = {"sparc"}) @Stable public int sparc64Family; + @HotSpotVMConstant(name = "VM_Version::M_family_m", archs = {"sparc"}) @Stable public int mFamily; + @HotSpotVMConstant(name = "VM_Version::T_family_m", archs = {"sparc"}) @Stable public int tFamily; + @HotSpotVMConstant(name = "VM_Version::T1_model_m", archs = {"sparc"}) @Stable public int t1Model; + @HotSpotVMConstant(name = "VM_Version::sparc5_instructions_m", archs = {"sparc"}) @Stable public int sparc5Instructions; + @HotSpotVMConstant(name = "VM_Version::aes_instructions_m", archs = {"sparc"}) @Stable public int aesInstructions; + @HotSpotVMConstant(name = "VM_Version::sha1_instruction_m", archs = {"sparc"}) @Stable public int sha1Instruction; + @HotSpotVMConstant(name = "VM_Version::sha256_instruction_m", archs = {"sparc"}) @Stable public int sha256Instruction; + @HotSpotVMConstant(name = "VM_Version::sha512_instruction_m", archs = {"sparc"}) @Stable public int sha512Instruction; + @HotSpotVMFlag(name = "UseBlockZeroing", archs = {"sparc"}) @Stable public boolean useBlockZeroing; @HotSpotVMFlag(name = "BlockZeroingLowLimit", archs = {"sparc"}) @Stable public int blockZeroingLowLimit; diff -r 5ba5ff0fda9e -r 2935e7fbd941 jvmci/jdk.vm.ci.sparc/src/jdk/vm/ci/sparc/SPARC.java --- a/jvmci/jdk.vm.ci.sparc/src/jdk/vm/ci/sparc/SPARC.java Thu Oct 15 11:52:47 2015 +0200 +++ b/jvmci/jdk.vm.ci.sparc/src/jdk/vm/ci/sparc/SPARC.java Thu Oct 15 13:57:24 2015 +0200 @@ -346,6 +346,24 @@ VIS2, VIS3, CBCOND, - BLOCK_ZEROING + V8, + HARDWARE_MUL32, + HARDWARE_DIV32, + HARDWARE_FSMULD, + HARDWARE_POPC, + V9, + SUN4V, + BLK_INIT_INSTRUCTIONS, + FMAF, + FMAU, + SPARC64_FAMILY, + M_FAMILY, + T_FAMILY, + T1_MODEL, + SPARC5, + AES, + SHA1, + SHA256, + SHA512 } } diff -r 5ba5ff0fda9e -r 2935e7fbd941 src/cpu/sparc/vm/vmStructs_sparc.hpp --- a/src/cpu/sparc/vm/vmStructs_sparc.hpp Thu Oct 15 11:52:47 2015 +0200 +++ b/src/cpu/sparc/vm/vmStructs_sparc.hpp Thu Oct 15 13:57:24 2015 +0200 @@ -83,7 +83,26 @@ declare_constant(VM_Version::vis1_instructions_m) \ declare_constant(VM_Version::vis2_instructions_m) \ declare_constant(VM_Version::vis3_instructions_m) \ - declare_constant(VM_Version::cbcond_instructions_m) + declare_constant(VM_Version::cbcond_instructions_m) \ + declare_constant(VM_Version::v8_instructions_m) \ + declare_constant(VM_Version::hardware_mul32_m) \ + declare_constant(VM_Version::hardware_div32_m) \ + declare_constant(VM_Version::hardware_fsmuld_m) \ + declare_constant(VM_Version::hardware_popc_m) \ + declare_constant(VM_Version::v9_instructions_m) \ + declare_constant(VM_Version::sun4v_m) \ + declare_constant(VM_Version::blk_init_instructions_m) \ + declare_constant(VM_Version::fmaf_instructions_m) \ + declare_constant(VM_Version::fmau_instructions_m) \ + declare_constant(VM_Version::sparc64_family_m) \ + declare_constant(VM_Version::M_family_m) \ + declare_constant(VM_Version::T_family_m) \ + declare_constant(VM_Version::T1_model_m) \ + declare_constant(VM_Version::sparc5_instructions_m) \ + declare_constant(VM_Version::aes_instructions_m) \ + declare_constant(VM_Version::sha1_instruction_m) \ + declare_constant(VM_Version::sha256_instruction_m) \ + declare_constant(VM_Version::sha512_instruction_m) #define VM_LONG_CONSTANTS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant)