Am 25.03.2014 17:27, schrieb Ard Biesheuvel: > This adds support for the SHA1 and SHA256 instructions that are available > on some v8 implementations of Aarch32. > > Signed-off-by: Ard Biesheuvel <[email protected]> > --- > target-arm/cpu.c | 2 + > target-arm/cpu.h | 2 + > target-arm/crypto_helper.c | 257 > +++++++++++++++++++++++++++++++++++++++++++-- > target-arm/helper.h | 9 ++ > target-arm/translate.c | 81 ++++++++++++++ > 5 files changed, 344 insertions(+), 7 deletions(-) > > diff --git a/target-arm/cpu.c b/target-arm/cpu.c > index c32d8c4855b4..58c4584ac3bc 100644 > --- a/target-arm/cpu.c > +++ b/target-arm/cpu.c > @@ -291,6 +291,8 @@ static void arm_cpu_realizefn(DeviceState *dev, Error > **errp) > set_feature(env, ARM_FEATURE_ARM_DIV); > set_feature(env, ARM_FEATURE_LPAE); > set_feature(env, ARM_FEATURE_V8_AES); > + set_feature(env, ARM_FEATURE_V8_SHA1); > + set_feature(env, ARM_FEATURE_V8_SHA256); > } > if (arm_feature(env, ARM_FEATURE_V7)) { > set_feature(env, ARM_FEATURE_VAPA); > diff --git a/target-arm/cpu.h b/target-arm/cpu.h > index bf37cd60d0a2..f5039d8b0177 100644 > --- a/target-arm/cpu.h > +++ b/target-arm/cpu.h > @@ -630,6 +630,8 @@ enum arm_features { > ARM_FEATURE_V8_AES, /* implements AES part of v8 Crypto Extensions */ > ARM_FEATURE_CBAR, /* has cp15 CBAR */ > ARM_FEATURE_CRC, /* ARMv8 CRC instructions */ > + ARM_FEATURE_V8_SHA1, /* implements SHA1 part of v8 Crypto Extensions */ > + ARM_FEATURE_V8_SHA256, /* implements SHA256 part of v8 Crypto Extensions > */ > };
Do these really need to be separate features? We only have 32 feature bits. Maybe even an ARM_FEATURE_CRYPTO for AES, SHA1, SHA256 would do? Regards, Andreas -- SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
