diff --git a/xen/arch/arm/arm32/lib/memchr.S b/xen/arch/arm/arm32/lib/memchr.S index 7dae4ab6a6..f38374a43e 100644 --- a/xen/arch/arm/arm32/lib/memchr.S +++ b/xen/arch/arm/arm32/lib/memchr.S @@ -14,6 +14,7 @@ .text .align 5 ENTRY(memchr) + and r1, r1, #0xff 1: subs r2, r2, #1 bmi 2f ldrb r3, [r0], #1 diff --git a/xen/arch/arm/arm32/lib/memset.S b/xen/arch/arm/arm32/lib/memset.S index 5a1dadf767..ce82c45910 100644 --- a/xen/arch/arm/arm32/lib/memset.S +++ b/xen/arch/arm/arm32/lib/memset.S @@ -15,6 +15,7 @@ .align 5 ENTRY(memset) + and r1, r1, #0xff ands r3, r0, #3 @ 1 unaligned? mov ip, r0 @ preserve r0 as return value bne 6f @ 1 diff --git a/xen/arch/arm/arm32/lib/strrchr.S b/xen/arch/arm/arm32/lib/strrchr.S index ec4d40de5e..374ce3e59d 100644 --- a/xen/arch/arm/arm32/lib/strrchr.S +++ b/xen/arch/arm/arm32/lib/strrchr.S @@ -14,6 +14,7 @@ .text .align 5 ENTRY(strrchr) + and r1, r1, #0xff mov r3, #0 1: ldrb r2, [r0], #1 teq r2, r1