diff options
Diffstat (limited to 'rgo/src/memfill.S')
-rw-r--r-- | rgo/src/memfill.S | 45 |
1 files changed, 0 insertions, 45 deletions
diff --git a/rgo/src/memfill.S b/rgo/src/memfill.S deleted file mode 100644 index f01cd65..0000000 --- a/rgo/src/memfill.S +++ /dev/null @@ -1,45 +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 <rgo.h> - -.global rgo_memfill - -rgo_memfill: - /* - void const * ptr - size_t num - uint8_t val - */ -#if defined(__i386__) - /* eax: Address of the current element. */ - movl 0x4(%esp),%eax - /* ecx: Address of the element after the last element. */ - movl 0x4(%esp),%ecx - addl 0x8(%esp),%ecx - /* rdx: Byte value. */ - movb 0xC(%esp),%dl -.loop: - cmpl %eax,%ecx - je .done /* Exit loop if we have reached the final element. */ - movb %dl,(%eax) - incl %eax - jmp .loop /* Continue to next element. */ -.done: - ret -#elif defined(__x86_64__) - /* rdi: Address of the current element. */ - /* rsi: Address of the element after the last element. */ - addq %rdi,%rsi -.loop: - cmpq %rsi,%rdi - je .done /* Exit loop if we have reached the final element. */ - movb %dl,(%rdi) - incq %rdi - jmp .loop /* Continue to next element. */ -.done: - ret -#endif |