summaryrefslogtreecommitdiff
path: root/zap/src/mem/utf8enclen.S
diff options
context:
space:
mode:
Diffstat (limited to 'zap/src/mem/utf8enclen.S')
-rw-r--r--zap/src/mem/utf8enclen.S80
1 files changed, 0 insertions, 80 deletions
diff --git a/zap/src/mem/utf8enclen.S b/zap/src/mem/utf8enclen.S
deleted file mode 100644
index 1c80e6a..0000000
--- a/zap/src/mem/utf8enclen.S
+++ /dev/null
@@ -1,80 +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_utf8enclen
-
-zap_utf8enclen:
-
- /*
- zap_chr20 const * utf20
- */
-
-#if defined(__amd64__)
-
- # rdi: Address of the current character.
- # rax: Length of the string.
- # rsi: Current character.
-
- movq $0x0,%rax
-
- # Iterate over the input:
-.loop:
-
- movl (%rdi),%esi
-
- # Test if we have reached the null-terminator:
- testl %esi,%esi
- jz .done
-
- cmpl $0xFFFF,%esi
- jg .oct4
-
- cmpl $0x7FF,%esi
- jg .oct3
-
- cmpl $0x7F,%esi
- jg .oct2
-
- # One octet:
-.oct1:
-
- incq %rax
-
- jmp .cnt
-
- # Two octets:
-.oct2:
-
- addq $0x2,%rax
-
- jmp .cnt
-
- # Three octets:
-.oct3:
-
- addq $0x3,%rax
-
- jmp .cnt
-
- # Four octets:
-.oct4:
-
- addq $0x4,%rax
-
- # Continue to the next codepoint:
-.cnt:
-
- addq $0x4,%rdi
- jmp .loop
-
- # Done:
-.done:
-
- ret
-
-#endif