Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'newlib/libc/machine/x86_64/memset.S')
-rw-r--r--newlib/libc/machine/x86_64/memset.S88
1 files changed, 0 insertions, 88 deletions
diff --git a/newlib/libc/machine/x86_64/memset.S b/newlib/libc/machine/x86_64/memset.S
deleted file mode 100644
index 4ba53e3c8..000000000
--- a/newlib/libc/machine/x86_64/memset.S
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * ====================================================
- * Copyright (C) 2007 by Ellips BV. All rights reserved.
- *
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
- #include "x86_64mach.h"
-
- .global SYM (memset)
- SOTYPE_FUNCTION(memset)
-
-SYM (memset):
- movq rdi, r9 /* Save return value */
- movq rsi, rax
- movq rdx, rcx
- cmpq $16, rdx
- jb byte_set
-
- movq rdi, r8 /* Align on quad word boundary */
- andq $7, r8
- jz quadword_aligned
- movq $8, rcx
- subq r8, rcx
- subq rcx, rdx
- rep stosb
- movq rdx, rcx
-
-quadword_aligned:
- movabs $0x0101010101010101, r8
- movzbl sil, eax
- imul r8, rax
- cmpq $256, rdx
- jb quadword_set
-
- shrq $7, rcx /* Store 128 bytes at a time with minimum cache polution */
-
- .p2align 4
-loop:
- movntiq rax, (rdi)
- movntiq rax, 8 (rdi)
- movntiq rax, 16 (rdi)
- movntiq rax, 24 (rdi)
- movntiq rax, 32 (rdi)
- movntiq rax, 40 (rdi)
- movntiq rax, 48 (rdi)
- movntiq rax, 56 (rdi)
- movntiq rax, 64 (rdi)
- movntiq rax, 72 (rdi)
- movntiq rax, 80 (rdi)
- movntiq rax, 88 (rdi)
- movntiq rax, 96 (rdi)
- movntiq rax, 104 (rdi)
- movntiq rax, 112 (rdi)
- movntiq rax, 120 (rdi)
-
- leaq 128 (rdi), rdi
-
- dec rcx
- jnz loop
-
- sfence
- movq rdx, rcx
- andq $127, rcx
- rep stosb
- movq r9, rax
- ret
-
-
-byte_set:
- rep stosb
- movq r9, rax
- ret
-
-
-quadword_set:
- shrq $3, rcx
- .p2align 4
- rep stosq
- movq rdx, rcx
- andq $7, rcx
- rep stosb /* Store the remaining bytes */
- movq r9, rax
- ret
-