From 30cb625a21bc7ad450fdc45d1f682e2b27c353de Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Mon, 5 Jun 2017 07:58:11 -0700 Subject: x86-64: Update strlen.S to support wcslen/wcsnlen The difference between strlen and wcslen is byte vs int. We can replace pminub and pcmpeqb with pminud and pcmpeqd to turn strlen into wcslen. * sysdeps/x86_64/strlen.S (PMINU): New. (PCMPEQ): Likewise. (SHIFT_RETURN): Likewise. (FIND_ZERO): Replace pcmpeqb with PCMPEQ. (strlen): Add SHIFT_RETURN before ret. Replace pcmpeqb and pminub with PCMPEQ and PMINU. * sysdeps/x86_64/wcsnlen.S: New file. --- sysdeps/x86_64/wcsnlen.S | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 sysdeps/x86_64/wcsnlen.S (limited to 'sysdeps/x86_64/wcsnlen.S') diff --git a/sysdeps/x86_64/wcsnlen.S b/sysdeps/x86_64/wcsnlen.S new file mode 100644 index 0000000000..968bb693b4 --- /dev/null +++ b/sysdeps/x86_64/wcsnlen.S @@ -0,0 +1,7 @@ +#define AS_WCSLEN +#define AS_STRNLEN +#define strlen __wcsnlen + +#include "strlen.S" + +weak_alias(__wcsnlen, wcsnlen) -- cgit 1.4.1