# -------------------------------------------- # 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