summaryrefslogtreecommitdiff
path: root/zap/src/mem/streq.S
diff options
context:
space:
mode:
Diffstat (limited to 'zap/src/mem/streq.S')
-rw-r--r--zap/src/mem/streq.S57
1 files changed, 0 insertions, 57 deletions
diff --git a/zap/src/mem/streq.S b/zap/src/mem/streq.S
deleted file mode 100644
index d331e93..0000000
--- a/zap/src/mem/streq.S
+++ /dev/null
@@ -1,57 +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/.
-*/
-
-#include <zap/priv.h>
-
-.globl zap_streq
-
-zap_streq:
-
- /*
- char const * lstr
- char const * rstr
- */
-
-#if defined(__amd64__)
-
- # rdi: Address of the current left character.
- # rsi: Address of the current right character.
- # rax: Current left character.
- # rdx: Current right character.
-
- # Iterate over the strings:
-.loop:
-
- # Copy the characters into registers:
- movb (%rdi),%al
- movb (%rsi),%dl
-
- # Check if the characters are equal:
- cmpb %al,%dl
- jne .neq # If not, the strings also aren't equal.
-
- # Check if we have reached the null-terminator:
- testb %al,%al
- jz .eq # If so, all previous characters have compared equal, and the strings are equal.
-
- # Continue to the next characters:
- incq %rdi
- incq %rsi
- jmp .loop
-
- # The strings have compared equal:
-.eq:
-
- movb $0xFF,%al
- ret
-
- /* The strings have compared unequal: */
-.neq:
-
- movb $0x0,%al
- ret
-
-#endif