# -------------------------------------------- # 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. # INPUTS : rdi = address for a # rsi = length of a in bytes # rdx = index of key to sort by # rcx = address of sorting algorithm # OUTPUTS : rax = address of sorted a # CLOBBERS: none # NOTES : Preserves all registers except eax # -------------------------------------------- .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 # Restore registers pop %r15 pop %r14 pop %r13 pop %r12 pop %rbp pop %rbx ret