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:
Jan Beulich authored and Julien Grall committed 2022-08-25 15:35:21 +01:00
1 parent c3bd0b83ea
commit cbb35e7280
3 files changed
+3

No files matched your search

+1
View File
@@ -14,6 +14,7 @@
.text
.align 5
ENTRY(memchr)
and r1, r1, #0xff
1: subs r2, r2, #1
bmi 2f
ldrb r3, [r0], #1
+1
View File
@@ -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
+1
View File
@@ -14,6 +14,7 @@
.text
.align 5
ENTRY(strrchr)
and r1, r1, #0xff
mov r3, #0
1: ldrb r2, [r0], #1
teq r2, r1
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.