summaryrefslogtreecommitdiff
path: root/zap/source/amd64/mem/utf20len.S
diff options
context:
space:
mode:
Diffstat (limited to 'zap/source/amd64/mem/utf20len.S')
-rw-r--r--zap/source/amd64/mem/utf20len.S38
1 files changed, 0 insertions, 38 deletions
diff --git a/zap/source/amd64/mem/utf20len.S b/zap/source/amd64/mem/utf20len.S
deleted file mode 100644
index 03f8254..0000000
--- a/zap/source/amd64/mem/utf20len.S
+++ /dev/null
@@ -1,38 +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_utf20len
-
-zap_utf20len:
-# Address of the current character:
-#define addr %rax
-# Address of the first character:
-#define start %rdi
-# Current character:
-#define chr %edx
-
- movq start,addr
-
- # Iterate over the string:
-.loop:
-
- # Move the character into a register:
- movl (addr),chr # chr = *addr
-
- # Check if we have reached the null-terminator:
- testl chr,chr # if (chr == 0x0)
- jz .done # goto done
-
- # Continue to the next character:
- addq $0x4,addr # addr += 0x4
- jmp .loop # goto loop
-
- # Done:
-.done:
-
- # Get the length:
- subq start,addr # addr -= start
- shrq $0x2,addr # addr /= 0x4 // Divide by four to get the number of doublewords rather than bytes.
-
- ret # return addr