# File generated by CompCert 3.5 # Command line: -O3 -Wall -Wno-c11-extensions -fno-unprototyped -S binary_search.c -o binary_search.ccomp.k1c.s .section .rodata .balign 1 __stringlit_1: .ascii "position: %d\012random fill cycles: %lu\012search cycles: %lu\012\000" .type __stringlit_1, @object .size __stringlit_1, . - __stringlit_1 .text .balign 2 .globl my_bsearch my_bsearch: addd $r17 = $r12, 0 addd $r12 = $r12, -16 ;; sd 0[$r12] = $r17 ;; ;; get $r16 = $ra ;; sd 8[$r12] = $r16 ;; make $r4, 0 addw $r6 = $r1, -1 ;; .L100: addw $r5 = $r4, $r6 ;; srlw $r3 = $r5, 1 ;; zxwd $r5 = $r3 ;; slld $r8 = $r5, 2 ;; lws $r1 = $r8[$r0] ;; compw.eq $r32 = $r1, $r2 ;; cb.wnez $r32? .L101 ;; compw.lt $r32 = $r1, $r2 ;; cb.wnez $r32? .L102 ;; addw $r6 = $r3, -1 goto .L103 ;; .L102: addw $r4 = $r3, 1 ;; .L103: compw.leu $r32 = $r4, $r6 ;; cb.wnez $r32? .L100 ;; make $r0, -1 goto .L104 ;; .L101: addd $r0 = $r3, 0 ;; .L104: ld $r16 = 8[$r12] ;; set $ra = $r16 ;; addd $r12 = $r12, 16 ;; ret ;; .type my_bsearch, @function .size my_bsearch, . - my_bsearch .text .balign 2 .globl random_ascending_fill random_ascending_fill: addd $r17 = $r12, 0 addd $r12 = $r12, -16 ;; sd 0[$r12] = $r17 ;; ;; get $r16 = $ra ;; sd 8[$r12] = $r16 ;; make $r7, 41 make $r8, 0 make $r6, 0 ;; .L105: compw.geu $r32 = $r6, $r1 ;; cb.wnez $r32? .L106 ;; zxwd $r2 = $r6 andw $r3 = $r7, 1073741824 ;; slld $r4 = $r2, 2 ;; sw $r4[$r0] = $r8 addw $r8 = $r8, 1 cb.weqz $r3? .L107 ;; addw $r8 = $r8, 1 ;; .L107: mulw $r2 = $r7, 97 addw $r6 = $r6, 1 ;; addw $r7 = $r2, 5 goto .L105 ;; .L106: ld $r16 = 8[$r12] ;; set $ra = $r16 ;; addd $r12 = $r12, 16 ;; ret ;; .type random_ascending_fill, @function .size random_ascending_fill, . - random_ascending_fill .text .balign 2 .globl main main: addd $r17 = $r12, 0 addd $r12 = $r12, -64 ;; sd 0[$r12] = $r17 ;; ;; get $r16 = $ra ;; sd 8[$r12] = $r16 ;; sd 16[$r12] = $r18 make $r0, 20000 ;; sd 24[$r12] = $r19 ;; sd 32[$r12] = $r20 ;; sd 40[$r12] = $r21 ;; sd 48[$r12] = $r22 make $r22, 5000 call malloc ;; addd $r21 = $r0, 0 call get_current_cycle ;; addd $r18 = $r0, 0 addd $r1 = $r22, 0 addd $r0 = $r21, 0 call random_ascending_fill ;; call get_current_cycle ;; sbfd $r19 = $r18, $r0 call get_current_cycle ;; addd $r20 = $r0, 0 make $r2, 1502 addd $r1 = $r22, 0 addd $r0 = $r21, 0 call my_bsearch ;; addd $r18 = $r0, 0 call get_current_cycle ;; sbfd $r3 = $r20, $r0 make $r0 = __stringlit_1 addd $r2 = $r19, 0 addd $r1 = $r18, 0 call printf ;; addd $r0 = $r21, 0 call free ;; make $r0, 0 ;; ld $r18 = 16[$r12] ;; ld $r19 = 24[$r12] ;; ld $r20 = 32[$r12] ;; ld $r21 = 40[$r12] ;; ld $r22 = 48[$r12] ;; ld $r16 = 8[$r12] ;; set $ra = $r16 ;; addd $r12 = $r12, 64 ;; ret ;; .type main, @function .size main, . - main