Adds a crypto CPU feature. Off by default.
Signed-off-by: Stian Halseth <[email protected]>
---
target/sparc/cpu-feature.h.inc | 1 +
target/sparc/cpu.c | 3 +++
target/sparc/translate.c | 2 ++
3 files changed, 6 insertions(+)
diff --git a/target/sparc/cpu-feature.h.inc b/target/sparc/cpu-feature.h.inc
index be81005237..4a32f49de4 100644
--- a/target/sparc/cpu-feature.h.inc
+++ b/target/sparc/cpu-feature.h.inc
@@ -16,3 +16,4 @@ FEATURE(FMAF)
FEATURE(VIS3)
FEATURE(IMA)
FEATURE(VIS4)
+FEATURE(CRYPTO)
diff --git a/target/sparc/cpu.c b/target/sparc/cpu.c
index ae9bdca9df..528a9d2bd8 100644
--- a/target/sparc/cpu.c
+++ b/target/sparc/cpu.c
@@ -560,6 +560,7 @@ static const char * const feature_name[] = {
[CPU_FEATURE_BIT_VIS3] = "vis3",
[CPU_FEATURE_BIT_IMA] = "ima",
[CPU_FEATURE_BIT_VIS4] = "vis4",
+ [CPU_FEATURE_BIT_CRYPTO] = "crypto",
#else
[CPU_FEATURE_BIT_MUL] = "mul",
[CPU_FEATURE_BIT_DIV] = "div",
@@ -977,6 +978,8 @@ static const Property sparc_cpu_properties[] = {
CPU_FEATURE_BIT_IMA, false),
DEFINE_PROP_BIT("vis4", SPARCCPU, env.def.features,
CPU_FEATURE_BIT_VIS4, false),
+ DEFINE_PROP_BIT("crypto", SPARCCPU, env.def.features,
+ CPU_FEATURE_BIT_CRYPTO, false),
#else
DEFINE_PROP_BIT("mul", SPARCCPU, env.def.features,
CPU_FEATURE_BIT_MUL, false),
diff --git a/target/sparc/translate.c b/target/sparc/translate.c
index 3156be6a94..b93feb074b 100644
--- a/target/sparc/translate.c
+++ b/target/sparc/translate.c
@@ -2507,6 +2507,7 @@ static int extract_qfpreg(DisasContext *dc, int x)
# define avail_VIS3(C) ((C)->def->features & CPU_FEATURE_VIS3)
# define avail_VIS3B(C) avail_VIS3(C)
# define avail_VIS4(C) ((C)->def->features & CPU_FEATURE_VIS4)
+# define avail_CRYPTO(C) ((C)->def->features & CPU_FEATURE_CRYPTO)
#else
# define avail_32(C) true
# define avail_ASR17(C) ((C)->def->features & CPU_FEATURE_ASR17)
@@ -2524,6 +2525,7 @@ static int extract_qfpreg(DisasContext *dc, int x)
# define avail_VIS3(C) false
# define avail_VIS3B(C) false
# define avail_VIS4(C) false
+# define avail_CRYPTO(C) false
#endif
/*
--
2.43.0