diff options
Diffstat (limited to 'zap/source/amd64/mem/memfill.S')
-rw-r--r-- | zap/source/amd64/mem/memfill.S | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/zap/source/amd64/mem/memfill.S b/zap/source/amd64/mem/memfill.S new file mode 100644 index 0000000..e563b55 --- /dev/null +++ b/zap/source/amd64/mem/memfill.S @@ -0,0 +1,30 @@ +# 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_memfill + +zap_memfill: + # rdi: Address of the current element. + # rsi: Address of the element after the last element. + # rdx: Byte value. + + addq %rdi,%rsi + + # Iterate over buffer: +.loop: + + # Check if we have reached the final element: + cmpq %rdi,%rsi + je .done # Exit loop if we have. + + # Set the value of the current element: + movb %dl,(%rdi) + + # Continue to next element: + incq %rdi + jmp .loop + + # Finish: +.done: + ret |