https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=188d5f6c9ad5cbbd6f0fcb9aaf15bc9870597910 commit 188d5f6c9ad5cbbd6f0fcb9aaf15bc9870597910 Author: Corinna Vinschen <corinna@vinschen.de> Date: Mon Aug 8 16:49:52 2022 +0200 Cygwin: x86_64: add wmemset assembler entry point So far, wmemset used the C implemantation from newlib. Let's use the optimized assembler code instead. Signed-off-by: Corinna Vinschen <corinna@vinschen.de> Diff: --- winsup/cygwin/Makefile.am | 6 +++--- winsup/cygwin/x86_64/memset.s | 8 ++++++++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/winsup/cygwin/Makefile.am b/winsup/cygwin/Makefile.am index 6838be99a..b8436226b 100644 --- a/winsup/cygwin/Makefile.am +++ b/winsup/cygwin/Makefile.am @@ -56,7 +56,8 @@ TEST_LIB_NAME=libcygwin0.a if TARGET_X86_64 TARGET_FILES= \ x86_64/memcpy.s \ - x86_64/memset.s + x86_64/memset.s \ + x86_64/mcountFunc.S endif LIB_FILES= \ @@ -357,8 +358,7 @@ MALLOC_FILES= \ GMON_FILES= \ gmon.c \ mcount.c \ - profil.c \ - mcountFunc.S + profil.c GENERATED_FILES= \ sigfe.s diff --git a/winsup/cygwin/x86_64/memset.s b/winsup/cygwin/x86_64/memset.s index ac73b6ace..d3b95ecd2 100644 --- a/winsup/cygwin/x86_64/memset.s +++ b/winsup/cygwin/x86_64/memset.s @@ -67,3 +67,11 @@ L1: rep movq 16(%rsp),%rdi ret .seh_endproc + + .globl wmemset + .seh_proc wmemset +wmemset: + .seh_endprologue + shlq $1,%r8 /* cnt * sizeof (wchar_t) */ + jmp memset + .seh_endproc