From 9963caae97ad140fa207c3c61a9442b417afc1e9 Mon Sep 17 00:00:00 2001 From: Stefano Stabellini Date: Tue, 13 Dec 2016 11:08:39 -0800 Subject: [PATCH] fix LDRB Thumb2 decoding 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 Signed-off-by: Stefano Stabellini Reviewed-by: Julien Grall --- xen/arch/arm/decode.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xen/arch/arm/decode.c b/xen/arch/arm/decode.c index c6f49a5139..514b7a21a5 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 ) { -- 2.30.2