diff options
Diffstat (limited to 'zap/source/amd64/mem/strcp.S')
-rw-r--r-- | zap/source/amd64/mem/strcp.S | 43 |
1 files changed, 0 insertions, 43 deletions
diff --git a/zap/source/amd64/mem/strcp.S b/zap/source/amd64/mem/strcp.S deleted file mode 100644 index 820ed96..0000000 --- a/zap/source/amd64/mem/strcp.S +++ /dev/null @@ -1,43 +0,0 @@ -# Copyright 2022 Gabriel Jensen. -# This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. -# If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/. - -.globl zap_strcp - -zap_strcp: -# Address of the current input character: -#define iaddr %rax -# Address of the first input character: -#define start %rdi -# Address of the current output character: -#define oaddr %rsi -# Current character: -#define chr %dl - - movq start,iaddr - - # Iterate over the strings: -.loop: - - # Copy character: - movb (iaddr),chr # chr = *iaddr - movb chr,(oaddr) # *oaddr = chr - - # Check if we have reached the null-terminator: - testb chr,chr # if (chr == 0x0) - jz .done # goto done - - # Continue to the next character: - - incq iaddr # ++iaddr - incq oaddr # ++oaddr - jmp .loop # goto loop - - # Finish: -.done: - - # Get the length of the (input) string: - subq start,iaddr # iaddr -= start - decq iaddr # --iaddr // We do not count the null-terminator in the string length. - - ret # return iaddr |