summaryrefslogtreecommitdiff
path: root/zap/source/amd64/mem/strfnd.S
diff options
context:
space:
mode:
Diffstat (limited to 'zap/source/amd64/mem/strfnd.S')
-rw-r--r--zap/source/amd64/mem/strfnd.S48
1 files changed, 0 insertions, 48 deletions
diff --git a/zap/source/amd64/mem/strfnd.S b/zap/source/amd64/mem/strfnd.S
deleted file mode 100644
index f2f94fa..0000000
--- a/zap/source/amd64/mem/strfnd.S
+++ /dev/null
@@ -1,48 +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_strfnd
-
-zap_strfnd:
-# Address of the first character:
-#define start %rdi
-# Character to be found:
-#define cmp %sil
-# Address of the current character:
-#define addr %rax
-# Current character:
-#define chr %dl
-
- movq start,addr # addr = start
-
- # Iterate over the string:
-.loop:
-
- # Copy the character into a register:
- movb (addr),chr # chr = *addr
-
- # Check if we have found the character:
- cmpb chr,cmp # if (chr == cmp)
- je .fnd # goto fnd
-
- # Check if we have found the null-terminator:
- testb chr,chr # if (chr == 0x0)
- jz .nfnd # goto nfnd
-
- # Continue to the next character:
- incq addr # ++addr
- jmp .loop # goto loop
-
- # Found:
-.fnd:
-
- # Get the offset of the character:
- subq start,addr # addr -= start
- ret # return addr
-
- # Not found:
-.nfnd:
-
- movq $0xFFFFFFFFFFFFFFFF,addr # addr = 0xFFFFFFFFFFFFFFFF
- ret # return addr