mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 10:40:03 +01:00
Arm32: correct string.h functions for "int" -> "unsigned char" conversion
While Arm64 does so uniformly, for Arm32 only strchr() currently handles this properly. Add the necessary conversion also to strrchr(), memchr(), and memset(). As to the placement in memset(): Putting the new insn at the beginning of the function is apparently deemed more "obvious". It could be placed later, as the code reachable without ever making it to the "1" label only ever does byte stores. Signed-off-by: Jan Beulich <jbeulich@suse.com> Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com>
This commit is contained in:
1 parent
c3bd0b83ea
commit
cbb35e7280
3 files changed
+3
No files matched your search
@@ -14,6 +14,7 @@
|
||||
.text
|
||||
.align 5
|
||||
ENTRY(memchr)
|
||||
and r1, r1, #0xff
|
||||
1: subs r2, r2, #1
|
||||
bmi 2f
|
||||
ldrb r3, [r0], #1
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
.text
|
||||
.align 5
|
||||
ENTRY(strrchr)
|
||||
and r1, r1, #0xff
|
||||
mov r3, #0
|
||||
1: ldrb r2, [r0], #1
|
||||
teq r2, r1
|
||||
|
||||