diff mbox

fix LDRB Thumb2 decoding

Message ID alpine.DEB.2.10.1612131105390.2777@sstabellini-ThinkPad-X260 (mailing list archive)
State New, archived
Headers show

Commit Message

Stefano Stabellini Dec. 13, 2016, 7:08 p.m. UTC
Rt is four bit at offset 12, not three. See see encoding T2 for LDRB
A8.8.70 in ARM DDI 0406C.c

Suggested-by: Julien Grall <julien.grall@arm.com>
Signed-off-by: Stefano Stabellini <sstabellini@kernel.org>

Comments

Julien Grall Dec. 13, 2016, 7:15 p.m. UTC | #1
Hi Stefano,

On 13/12/16 19:08, Stefano Stabellini wrote:
> Rt is four bit at offset 12, not three. See see encoding T2 for LDRB
> A8.8.70 in ARM DDI 0406C.c
>
> Suggested-by: Julien Grall <julien.grall@arm.com>
> Signed-off-by: Stefano Stabellini <sstabellini@kernel.org>

Reviewed-by: Julien Grall <julien.grall@arm.com>

Regards,
diff mbox

Patch

diff --git a/xen/arch/arm/decode.c b/xen/arch/arm/decode.c
index c6f49a5..514b7a2 100644
--- a/xen/arch/arm/decode.c
+++ b/xen/arch/arm/decode.c
@@ -41,7 +41,7 @@  static int decode_thumb2(register_t pc, struct hsr_dabt *dabt, uint16_t hw1)
     if ( raw_copy_from_guest(&hw2, (void *__user)(pc + 2), sizeof (hw2)) )
         return -EFAULT;
 
-    rt = (hw2 >> 12) & 0x7;
+    rt = (hw2 >> 12) & 0xf;
 
     switch ( (hw1 >> 9) & 0xf )
     {