clarify the purpose of this project
[nyanglibc.git] / stdlib / bsearch.s
blob2738d5343747a39eb35af6ab74544a7b8dfe5332
1 .text
2 .p2align 4,,15
3 .globl bsearch
4 .hidden bsearch
5 .type bsearch, @function
6 bsearch:
7 pushq %r15
8 pushq %r14
9 pushq %r13
10 pushq %r12
11 pushq %rbp
12 pushq %rbx
13 subq $24, %rsp
14 testq %rdx, %rdx
15 movq %rdi, (%rsp)
16 movq %rsi, 8(%rsp)
17 je .L2
18 movq %rdx, %r12
19 movq %rcx, %r13
20 movq %r8, %r14
21 xorl %ebp, %ebp
22 jmp .L5
23 .p2align 4,,10
24 .p2align 3
25 .L16:
26 je .L1
27 leaq 1(%rbx), %rbp
28 cmpq %rbp, %r12
29 jbe .L2
30 .L5:
31 leaq 0(%rbp,%r12), %rbx
32 movq (%rsp), %rdi
33 shrq %rbx
34 movq %rbx, %r15
35 imulq %r13, %r15
36 addq 8(%rsp), %r15
37 movq %r15, %rsi
38 call *%r14
39 testl %eax, %eax
40 jns .L16
41 movq %rbx, %r12
42 cmpq %rbp, %r12
43 ja .L5
44 .L2:
45 xorl %r15d, %r15d
46 .L1:
47 addq $24, %rsp
48 movq %r15, %rax
49 popq %rbx
50 popq %rbp
51 popq %r12
52 popq %r13
53 popq %r14
54 popq %r15
55 ret
56 .size bsearch, .-bsearch