diff options
| author | Andreas Kapp Lindquist <alind24@student.sdu.dk> | 2025-09-29 22:11:29 +0200 |
|---|---|---|
| committer | mithe24 <mithe24@student.sdu.dk> | 2025-10-29 13:49:57 +0100 |
| commit | e068a165e039742c1718ccf70020382896d2bf15 (patch) | |
| tree | ffcddf08c368a39bed92ac6d72366a9181919752 /src/sorter.s | |
| parent | 8b3beceff2fea52488e675a04f12649ca248b78a (diff) | |
| download | sorter-e068a165e039742c1718ccf70020382896d2bf15.tar.gz sorter-e068a165e039742c1718ccf70020382896d2bf15.zip | |
refactor(sorting.s): Renamed to sorter.s
Diffstat (limited to 'src/sorter.s')
| -rw-r--r-- | src/sorter.s | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/src/sorter.s b/src/sorter.s new file mode 100644 index 0000000..ba232fe --- /dev/null +++ b/src/sorter.s @@ -0,0 +1,39 @@ +# -------------------------------------------- +# FUNCTION: sorter +# PURPOSE : Sorts array A, with references to arrays A_i, based on the given +# key in A_i, address and size of A, and an address of a sorting algorithm to be +# used +# INPUTS : rdi = address for A +# rsi = length of A in 64 bit chunks +# rdx = index of key to sort by +# rcx = address of sorting algorithm +# OUTPUTS : rax = address for sorted A +# CLOBBERS: none +# NOTES : Preserves all registers +# -------------------------------------------- +.section .text +.globl sorter +.type sorter, @function +sorter: + # Save registers + push %rbx + push %rbp + push %r12 + push %r13 + push %r14 + push %r15 + + # rdi is the addres of a + # rsi is the length of a + # rdx is the index of the key + call *%rcx # Sort the array (* is indirect call) + + # Restore registers + pop %r15 + pop %r14 + pop %r13 + pop %r12 + pop %rbp + pop %rbx + + ret |