summaryrefslogtreecommitdiff
path: root/sysdeps/x86_64/strrchr.S
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/x86_64/strrchr.S')
-rw-r--r--sysdeps/x86_64/strrchr.S13
1 files changed, 12 insertions, 1 deletions
diff --git a/sysdeps/x86_64/strrchr.S b/sysdeps/x86_64/strrchr.S
index e413b07438..0bd3405b6b 100644
--- a/sysdeps/x86_64/strrchr.S
+++ b/sysdeps/x86_64/strrchr.S
@@ -22,6 +22,10 @@
.text
ENTRY (strrchr)
+# ifdef __CHKP__
+ bndcl (%rdi), %bnd0
+ bndcu (%rdi), %bnd0
+# endif
movd %esi, %xmm1
movq %rdi, %rcx
punpcklbw %xmm1, %xmm1
@@ -46,7 +50,11 @@ ENTRY (strrchr)
orl %ecx, %esi
jnz 1f
-2: movdqa (%rdi), %xmm0
+2:
+# ifdef __CHKP__
+ bndcu (%rdi), %bnd0
+# endif
+ movdqa (%rdi), %xmm0
leaq 16(%rdi), %rdi
movdqa %xmm0, %xmm3
pcmpeqb %xmm1, %xmm0
@@ -73,6 +81,9 @@ ENTRY (strrchr)
bsrl %edx, %edx
jz 4f
leaq -16(%rdi,%rdx), %rax
+# ifdef __CHKP__
+ bndcu (%rax), %bnd0
+# endif
4: ret
END (strrchr)