[Qemu-devel] [PATCH v2 38/68] target/arm: Convert Unallocated memory hint

Richard Henderson posted 68 patches 6 years, 5 months ago
Maintainers: Peter Maydell <peter.maydell@linaro.org>
There is a newer version of this series
[Qemu-devel] [PATCH v2 38/68] target/arm: Convert Unallocated memory hint
Posted by Richard Henderson 6 years, 5 months ago
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
 target/arm/translate.c       | 8 --------
 target/arm/a32-uncond.decode | 8 ++++++++
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/target/arm/translate.c b/target/arm/translate.c
index a30a9bb4e0..9ec6b25c03 100644
--- a/target/arm/translate.c
+++ b/target/arm/translate.c
@@ -10216,14 +10216,6 @@ static void disas_arm_insn(DisasContext *s, unsigned int insn)
             }
             return;
         }
-        if (((insn & 0x0f700000) == 0x04100000) ||
-            ((insn & 0x0f700010) == 0x06100000)) {
-            if (!arm_dc_feature(s, ARM_FEATURE_V7MP)) {
-                goto illegal_op;
-            }
-            return; /* v7MP: Unallocated memory hint: must NOP */
-        }
-
         if ((insn & 0x0e000f00) == 0x0c000100) {
             if (arm_dc_feature(s, ARM_FEATURE_IWMMXT)) {
                 /* iWMMXt register transfer.  */
diff --git a/target/arm/a32-uncond.decode b/target/arm/a32-uncond.decode
index aed381cb8e..afa95bf7aa 100644
--- a/target/arm/a32-uncond.decode
+++ b/target/arm/a32-uncond.decode
@@ -64,3 +64,11 @@ PLI              1111 0100 -101 ---- 1111 ---- ---- ----    # (imm, lit) 7
 PLD              1111 0111 -101 ---- 1111 ----- -- 0 ----   # (register) 5te
 PLDW             1111 0111 -001 ---- 1111 ----- -- 0 ----   # (register) 7mp
 PLI              1111 0110 -101 ---- 1111 ----- -- 0 ----   # (register) 7
+
+# Unallocated memory hints
+#
+# Since these are v7MP nops, and PLDW is v7MP and implemented as nop,
+# (ab)use the PLDW helper.
+
+PLDW             1111 0100 -001 ---- ---- ---- ---- ----
+PLDW             1111 0110 -001 ---- ---- ---- ---0 ----
-- 
2.17.1


Re: [Qemu-devel] [PATCH v2 38/68] target/arm: Convert Unallocated memory hint
Posted by Philippe Mathieu-Daudé 6 years, 5 months ago
On 8/19/19 11:37 PM, Richard Henderson wrote:
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>

> ---
>  target/arm/translate.c       | 8 --------
>  target/arm/a32-uncond.decode | 8 ++++++++
>  2 files changed, 8 insertions(+), 8 deletions(-)
> 
> diff --git a/target/arm/translate.c b/target/arm/translate.c
> index a30a9bb4e0..9ec6b25c03 100644
> --- a/target/arm/translate.c
> +++ b/target/arm/translate.c
> @@ -10216,14 +10216,6 @@ static void disas_arm_insn(DisasContext *s, unsigned int insn)
>              }
>              return;
>          }
> -        if (((insn & 0x0f700000) == 0x04100000) ||
> -            ((insn & 0x0f700010) == 0x06100000)) {
> -            if (!arm_dc_feature(s, ARM_FEATURE_V7MP)) {
> -                goto illegal_op;
> -            }
> -            return; /* v7MP: Unallocated memory hint: must NOP */
> -        }
> -
>          if ((insn & 0x0e000f00) == 0x0c000100) {
>              if (arm_dc_feature(s, ARM_FEATURE_IWMMXT)) {
>                  /* iWMMXt register transfer.  */
> diff --git a/target/arm/a32-uncond.decode b/target/arm/a32-uncond.decode
> index aed381cb8e..afa95bf7aa 100644
> --- a/target/arm/a32-uncond.decode
> +++ b/target/arm/a32-uncond.decode
> @@ -64,3 +64,11 @@ PLI              1111 0100 -101 ---- 1111 ---- ---- ----    # (imm, lit) 7
>  PLD              1111 0111 -101 ---- 1111 ----- -- 0 ----   # (register) 5te
>  PLDW             1111 0111 -001 ---- 1111 ----- -- 0 ----   # (register) 7mp
>  PLI              1111 0110 -101 ---- 1111 ----- -- 0 ----   # (register) 7
> +
> +# Unallocated memory hints
> +#
> +# Since these are v7MP nops, and PLDW is v7MP and implemented as nop,
> +# (ab)use the PLDW helper.
> +
> +PLDW             1111 0100 -001 ---- ---- ---- ---- ----
> +PLDW             1111 0110 -001 ---- ---- ---- ---0 ----
>