Patchwork target-arm/translate.c: Fix slightly misleading comment in Thumb decoder

login
register
mail settings
Submitter Peter Maydell
Date Nov. 24, 2011, 6:33 p.m.
Message ID <1322159611-3484-1-git-send-email-peter.maydell@linaro.org>
Download mbox | patch
Permalink /patch/127602/
State New
Headers show

Comments

Peter Maydell - Nov. 24, 2011, 6:33 p.m.
Clarify some slightly misleading comments in the Thumb decoder's
handling of the memory hint space -- in particular one code path
marked as 'UNPREDICTABLE or unallocated hint' also includes some
legitimate preload instructions.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
 target-arm/translate.c |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)
andrzej zaborowski - Dec. 5, 2011, 8:22 p.m.
On 24 November 2011 19:33, Peter Maydell <peter.maydell@linaro.org> wrote:
> Clarify some slightly misleading comments in the Thumb decoder's
> handling of the memory hint space -- in particular one code path
> marked as 'UNPREDICTABLE or unallocated hint' also includes some
> legitimate preload instructions.

Thanks, applied this patch.

Cheers

Patch

diff --git a/target-arm/translate.c b/target-arm/translate.c
index 0f35b60..f91553a 100644
--- a/target-arm/translate.c
+++ b/target-arm/translate.c
@@ -9025,14 +9025,16 @@  static int disas_thumb2_insn(CPUState *env, DisasContext *s, uint16_t insn_hw1)
                     goto illegal_op;
                 }
                 if (rn == 15) {
-                    /* UNPREDICTABLE or unallocated hint */
+                    /* UNPREDICTABLE, unallocated hint or
+                     * PLD/PLDW/PLI (literal)
+                     */
                     return 0;
                 }
                 if (op1 & 1) {
-                    return 0; /* PLD* or unallocated hint */
+                    return 0; /* PLD/PLDW/PLI or unallocated hint */
                 }
                 if ((op2 == 0) || ((op2 & 0x3c) == 0x30)) {
-                    return 0; /* PLD* or unallocated hint */
+                    return 0; /* PLD/PLDW/PLI or unallocated hint */
                 }
                 /* UNDEF space, or an UNPREDICTABLE */
                 return 1;