summaryrefslogtreecommitdiff
path: root/zap/source/amd64/mem/utf8enclen.S
diff options
context:
space:
mode:
Diffstat (limited to 'zap/source/amd64/mem/utf8enclen.S')
-rw-r--r--zap/source/amd64/mem/utf8enclen.S67
1 files changed, 0 insertions, 67 deletions
diff --git a/zap/source/amd64/mem/utf8enclen.S b/zap/source/amd64/mem/utf8enclen.S
deleted file mode 100644
index 2e3b09f..0000000
--- a/zap/source/amd64/mem/utf8enclen.S
+++ /dev/null
@@ -1,67 +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_utf8enclen
-
-zap_utf8enclen:
- # 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