diff mbox series

[01/13] target/arm: Move constant expanders to translate.h

Message ID 20210413160759.5917-2-peter.maydell@linaro.org
State Superseded
Headers show
Series target/arm: Split translate-*.c.inc into separate compilation units | expand

Commit Message

Peter Maydell April 13, 2021, 4:07 p.m. UTC
Some of the constant expanders defined in translate.c are generically
useful and will be used by the separate C files for VFP and Neon once
they are created; move the expander definitions to translate.h.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

---
 target/arm/translate.h | 24 ++++++++++++++++++++++++
 target/arm/translate.c | 24 ------------------------
 2 files changed, 24 insertions(+), 24 deletions(-)

-- 
2.20.1

Comments

Philippe Mathieu-Daudé April 13, 2021, 4:59 p.m. UTC | #1
On 4/13/21 6:07 PM, Peter Maydell wrote:
> Some of the constant expanders defined in translate.c are generically

> useful and will be used by the separate C files for VFP and Neon once

> they are created; move the expander definitions to translate.h.

> 

> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

> ---

>  target/arm/translate.h | 24 ++++++++++++++++++++++++

>  target/arm/translate.c | 24 ------------------------

>  2 files changed, 24 insertions(+), 24 deletions(-)

> 

> diff --git a/target/arm/translate.h b/target/arm/translate.h

> index 423b0e08df0..4c0b6e8fc42 100644

> --- a/target/arm/translate.h

> +++ b/target/arm/translate.h

> @@ -116,6 +116,30 @@ extern TCGv_i32 cpu_NF, cpu_ZF, cpu_CF, cpu_VF;

>  extern TCGv_i64 cpu_exclusive_addr;

>  extern TCGv_i64 cpu_exclusive_val;

>  

> +/*

> + * Constant expanders for the decoders.

> + */

> +

> +static inline int negate(DisasContext *s, int x)

> +{

> +    return -x;

> +}

> +

> +static inline int plus_2(DisasContext *s, int x)

> +{

> +    return x + 2;

> +}

> +

> +static inline int times_2(DisasContext *s, int x)

> +{

> +    return x * 2;

> +}

> +

> +static inline int times_4(DisasContext *s, int x)

> +{

> +    return x * 4;

> +}


Being static inlined, I wonder if these shouldn't belong
to "exec/translator.h" or another generic helper header
(because I ended using similar helpers in MIPS).

Can be done later tho, so:
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Richard Henderson April 27, 2021, 4:29 p.m. UTC | #2
On 4/13/21 9:07 AM, Peter Maydell wrote:
> Some of the constant expanders defined in translate.c are generically

> useful and will be used by the separate C files for VFP and Neon once

> they are created; move the expander definitions to translate.h.

> 

> Signed-off-by: Peter Maydell<peter.maydell@linaro.org>

> ---

>   target/arm/translate.h | 24 ++++++++++++++++++++++++

>   target/arm/translate.c | 24 ------------------------

>   2 files changed, 24 insertions(+), 24 deletions(-)


Reviewed-by: Richard Henderson <richard.henderson@linaro.org>


r~
diff mbox series

Patch

diff --git a/target/arm/translate.h b/target/arm/translate.h
index 423b0e08df0..4c0b6e8fc42 100644
--- a/target/arm/translate.h
+++ b/target/arm/translate.h
@@ -116,6 +116,30 @@  extern TCGv_i32 cpu_NF, cpu_ZF, cpu_CF, cpu_VF;
 extern TCGv_i64 cpu_exclusive_addr;
 extern TCGv_i64 cpu_exclusive_val;
 
+/*
+ * Constant expanders for the decoders.
+ */
+
+static inline int negate(DisasContext *s, int x)
+{
+    return -x;
+}
+
+static inline int plus_2(DisasContext *s, int x)
+{
+    return x + 2;
+}
+
+static inline int times_2(DisasContext *s, int x)
+{
+    return x * 2;
+}
+
+static inline int times_4(DisasContext *s, int x)
+{
+    return x * 4;
+}
+
 static inline int arm_dc_feature(DisasContext *dc, int feature)
 {
     return (dc->features & (1ULL << feature)) != 0;
diff --git a/target/arm/translate.c b/target/arm/translate.c
index 62b1c2081b6..0e30892d54e 100644
--- a/target/arm/translate.c
+++ b/target/arm/translate.c
@@ -109,30 +109,6 @@  static void arm_gen_condlabel(DisasContext *s)
     }
 }
 
-/*
- * Constant expanders for the decoders.
- */
-
-static int negate(DisasContext *s, int x)
-{
-    return -x;
-}
-
-static int plus_2(DisasContext *s, int x)
-{
-    return x + 2;
-}
-
-static int times_2(DisasContext *s, int x)
-{
-    return x * 2;
-}
-
-static int times_4(DisasContext *s, int x)
-{
-    return x * 4;
-}
-
 /* Flags for the disas_set_da_iss info argument:
  * lower bits hold the Rt register number, higher bits are flags.
  */