aboutsummaryrefslogtreecommitdiff
path: root/string/aarch64/strncmp-mte.S
diff options
context:
space:
mode:
Diffstat (limited to 'string/aarch64/strncmp-mte.S')
-rw-r--r--string/aarch64/strncmp-mte.S6
1 files changed, 3 insertions, 3 deletions
diff --git a/string/aarch64/strncmp-mte.S b/string/aarch64/strncmp-mte.S
index b7e3914..46765d6 100644
--- a/string/aarch64/strncmp-mte.S
+++ b/string/aarch64/strncmp-mte.S
@@ -167,10 +167,10 @@ L(mutual_align):
neg tmp3, count, lsl #3 /* 64 - bits(bytes beyond align). */
ldr data2, [src2], #8
mov tmp2, #~0
- and count, count, #0x3f
LS_FW tmp2, tmp2, tmp3 /* Shift (count & 63). */
- /* Adjust the limit. Only low 3 bits used, so overflow irrelevant. */
- add limit, limit, count
+ /* Adjust the limit and ensure it doesn't overflow. */
+ adds limit, limit, count
+ csinv limit, limit, xzr, lo
orr data1, data1, tmp2
orr data2, data2, tmp2
b L(start_realigned)