From: Stefano Stabellini Date: Tue, 13 Dec 2016 19:08:39 +0000 (-0800) Subject: fix LDRB Thumb2 decoding X-Git-Tag: 4.9.0-rc1~920 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=9963caae97ad140fa207c3c61a9442b417afc1e9;p=people%2Fandrewcoop%2Fxen.git 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 --- 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 ) {