105 features.add(AMD64.CPUFeature.AVX512F); 106 } 107 if ((config.vmVersionFeatures & config.amd64AVX512DQ) != 0) { 108 features.add(AMD64.CPUFeature.AVX512DQ); 109 } 110 if ((config.vmVersionFeatures & config.amd64AVX512PF) != 0) { 111 features.add(AMD64.CPUFeature.AVX512PF); 112 } 113 if ((config.vmVersionFeatures & config.amd64AVX512ER) != 0) { 114 features.add(AMD64.CPUFeature.AVX512ER); 115 } 116 if ((config.vmVersionFeatures & config.amd64AVX512CD) != 0) { 117 features.add(AMD64.CPUFeature.AVX512CD); 118 } 119 if ((config.vmVersionFeatures & config.amd64AVX512BW) != 0) { 120 features.add(AMD64.CPUFeature.AVX512BW); 121 } 122 if ((config.vmVersionFeatures & config.amd64AVX512VL) != 0) { 123 features.add(AMD64.CPUFeature.AVX512VL); 124 } 125 return features; 126 } 127 128 protected EnumSet<AMD64.Flag> computeFlags(HotSpotVMConfig config) { 129 EnumSet<AMD64.Flag> flags = EnumSet.noneOf(AMD64.Flag.class); 130 if (config.useCountLeadingZerosInstruction) { 131 flags.add(AMD64.Flag.UseCountLeadingZerosInstruction); 132 } 133 if (config.useCountTrailingZerosInstruction) { 134 flags.add(AMD64.Flag.UseCountTrailingZerosInstruction); 135 } 136 return flags; 137 } 138 139 protected TargetDescription createTarget(HotSpotVMConfig config) { 140 final int stackFrameAlignment = 16; 141 final int implicitNullCheckLimit = 4096; 142 final boolean inlineObjects = true; 143 Architecture arch = new AMD64(computeFeatures(config), computeFlags(config)); 144 return new TargetDescription(arch, true, stackFrameAlignment, implicitNullCheckLimit, inlineObjects); | 105 features.add(AMD64.CPUFeature.AVX512F); 106 } 107 if ((config.vmVersionFeatures & config.amd64AVX512DQ) != 0) { 108 features.add(AMD64.CPUFeature.AVX512DQ); 109 } 110 if ((config.vmVersionFeatures & config.amd64AVX512PF) != 0) { 111 features.add(AMD64.CPUFeature.AVX512PF); 112 } 113 if ((config.vmVersionFeatures & config.amd64AVX512ER) != 0) { 114 features.add(AMD64.CPUFeature.AVX512ER); 115 } 116 if ((config.vmVersionFeatures & config.amd64AVX512CD) != 0) { 117 features.add(AMD64.CPUFeature.AVX512CD); 118 } 119 if ((config.vmVersionFeatures & config.amd64AVX512BW) != 0) { 120 features.add(AMD64.CPUFeature.AVX512BW); 121 } 122 if ((config.vmVersionFeatures & config.amd64AVX512VL) != 0) { 123 features.add(AMD64.CPUFeature.AVX512VL); 124 } 125 if ((config.vmVersionFeatures & config.amd64SHA) != 0) { 126 features.add(AMD64.CPUFeature.SHA); 127 } 128 return features; 129 } 130 131 protected EnumSet<AMD64.Flag> computeFlags(HotSpotVMConfig config) { 132 EnumSet<AMD64.Flag> flags = EnumSet.noneOf(AMD64.Flag.class); 133 if (config.useCountLeadingZerosInstruction) { 134 flags.add(AMD64.Flag.UseCountLeadingZerosInstruction); 135 } 136 if (config.useCountTrailingZerosInstruction) { 137 flags.add(AMD64.Flag.UseCountTrailingZerosInstruction); 138 } 139 return flags; 140 } 141 142 protected TargetDescription createTarget(HotSpotVMConfig config) { 143 final int stackFrameAlignment = 16; 144 final int implicitNullCheckLimit = 4096; 145 final boolean inlineObjects = true; 146 Architecture arch = new AMD64(computeFeatures(config), computeFlags(config)); 147 return new TargetDescription(arch, true, stackFrameAlignment, implicitNullCheckLimit, inlineObjects); |