]> xenbits.xensource.com Git - people/andrewcoop/xen.git/commitdiff
fix LDRB Thumb2 decoding
authorStefano Stabellini <sstabellini@kernel.org>
Tue, 13 Dec 2016 19:08:39 +0000 (11:08 -0800)
committerStefano Stabellini <sstabellini@kernel.org>
Tue, 13 Dec 2016 19:16:50 +0000 (11:16 -0800)
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>
xen/arch/arm/decode.c

index c6f49a5139c196f945be2c1111233ae25ba6fc34..514b7a21a593719f30c34da3b533e5dfbb880603 100644 (file)
@@ -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 )
     {