91 public final boolean useTLAB = getFlag("UseTLAB", Boolean.class);
92 public final boolean useBiasedLocking = getFlag("UseBiasedLocking", Boolean.class);
93 public final boolean usePopCountInstruction = getFlag("UsePopCountInstruction", Boolean.class);
94 public final boolean useAESIntrinsics = getFlag("UseAESIntrinsics", Boolean.class);
95 public final boolean useAESCTRIntrinsics = getFlag("UseAESCTRIntrinsics", Boolean.class, false);
96 public final boolean useCRC32Intrinsics = getFlag("UseCRC32Intrinsics", Boolean.class);
97 public final boolean useCRC32CIntrinsics = versioned.useCRC32CIntrinsics;
98 public final boolean threadLocalHandshakes = getFlag("ThreadLocalHandshakes", Boolean.class, false);
99
100 private final boolean useMultiplyToLenIntrinsic = getFlag("UseMultiplyToLenIntrinsic", Boolean.class);
101 private final boolean useSHA1Intrinsics = getFlag("UseSHA1Intrinsics", Boolean.class);
102 private final boolean useSHA256Intrinsics = getFlag("UseSHA256Intrinsics", Boolean.class);
103 private final boolean useSHA512Intrinsics = getFlag("UseSHA512Intrinsics", Boolean.class);
104 private final boolean useGHASHIntrinsics = getFlag("UseGHASHIntrinsics", Boolean.class, false);
105 private final boolean useBase64Intrinsics = getFlag("UseBASE64Intrinsics", Boolean.class, false);
106 private final boolean useMontgomeryMultiplyIntrinsic = getFlag("UseMontgomeryMultiplyIntrinsic", Boolean.class, false);
107 private final boolean useMontgomerySquareIntrinsic = getFlag("UseMontgomerySquareIntrinsic", Boolean.class, false);
108 private final boolean useMulAddIntrinsic = getFlag("UseMulAddIntrinsic", Boolean.class, false);
109 private final boolean useSquareToLenIntrinsic = getFlag("UseSquareToLenIntrinsic", Boolean.class, false);
110 public final boolean useVectorizedMismatchIntrinsic = getFlag("UseVectorizedMismatchIntrinsic", Boolean.class, false);
111
112 /*
113 * These are methods because in some JDKs the flags are visible but the stubs themselves haven't
114 * been exported so we have to check both if the flag is on and if we have the stub.
115 */
116 public boolean useMultiplyToLenIntrinsic() {
117 return useMultiplyToLenIntrinsic && multiplyToLen != 0;
118 }
119
120 public boolean useSHA1Intrinsics() {
121 return useSHA1Intrinsics && sha1ImplCompress != 0 && sha1ImplCompressMultiBlock != 0;
122 }
123
124 public boolean useSHA256Intrinsics() {
125 return useSHA256Intrinsics && sha256ImplCompress != 0 && sha256ImplCompressMultiBlock != 0;
126 }
127
128 public boolean useSHA512Intrinsics() {
129 return useSHA512Intrinsics && sha512ImplCompress != 0 && sha512ImplCompressMultiBlock != 0;
130 }
|
91 public final boolean useTLAB = getFlag("UseTLAB", Boolean.class);
92 public final boolean useBiasedLocking = getFlag("UseBiasedLocking", Boolean.class);
93 public final boolean usePopCountInstruction = getFlag("UsePopCountInstruction", Boolean.class);
94 public final boolean useAESIntrinsics = getFlag("UseAESIntrinsics", Boolean.class);
95 public final boolean useAESCTRIntrinsics = getFlag("UseAESCTRIntrinsics", Boolean.class, false);
96 public final boolean useCRC32Intrinsics = getFlag("UseCRC32Intrinsics", Boolean.class);
97 public final boolean useCRC32CIntrinsics = versioned.useCRC32CIntrinsics;
98 public final boolean threadLocalHandshakes = getFlag("ThreadLocalHandshakes", Boolean.class, false);
99
100 private final boolean useMultiplyToLenIntrinsic = getFlag("UseMultiplyToLenIntrinsic", Boolean.class);
101 private final boolean useSHA1Intrinsics = getFlag("UseSHA1Intrinsics", Boolean.class);
102 private final boolean useSHA256Intrinsics = getFlag("UseSHA256Intrinsics", Boolean.class);
103 private final boolean useSHA512Intrinsics = getFlag("UseSHA512Intrinsics", Boolean.class);
104 private final boolean useGHASHIntrinsics = getFlag("UseGHASHIntrinsics", Boolean.class, false);
105 private final boolean useBase64Intrinsics = getFlag("UseBASE64Intrinsics", Boolean.class, false);
106 private final boolean useMontgomeryMultiplyIntrinsic = getFlag("UseMontgomeryMultiplyIntrinsic", Boolean.class, false);
107 private final boolean useMontgomerySquareIntrinsic = getFlag("UseMontgomerySquareIntrinsic", Boolean.class, false);
108 private final boolean useMulAddIntrinsic = getFlag("UseMulAddIntrinsic", Boolean.class, false);
109 private final boolean useSquareToLenIntrinsic = getFlag("UseSquareToLenIntrinsic", Boolean.class, false);
110 public final boolean useVectorizedMismatchIntrinsic = getFlag("UseVectorizedMismatchIntrinsic", Boolean.class, false);
111 public final boolean useFMAIntrinsics = getFlag("UseFMA", Boolean.class, false);
112
113 /*
114 * These are methods because in some JDKs the flags are visible but the stubs themselves haven't
115 * been exported so we have to check both if the flag is on and if we have the stub.
116 */
117 public boolean useMultiplyToLenIntrinsic() {
118 return useMultiplyToLenIntrinsic && multiplyToLen != 0;
119 }
120
121 public boolean useSHA1Intrinsics() {
122 return useSHA1Intrinsics && sha1ImplCompress != 0 && sha1ImplCompressMultiBlock != 0;
123 }
124
125 public boolean useSHA256Intrinsics() {
126 return useSHA256Intrinsics && sha256ImplCompress != 0 && sha256ImplCompressMultiBlock != 0;
127 }
128
129 public boolean useSHA512Intrinsics() {
130 return useSHA512Intrinsics && sha512ImplCompress != 0 && sha512ImplCompressMultiBlock != 0;
131 }
|