# 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 "position1: %d\012position2: %d\012random fill cycles: %lu\012search1 cycles: %lu\012search2 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 my_bsearch2 my_bsearch2: addd $r17 = $r12, 0 addd $r12 = $r12, -16 ;; sd 0[$r12] = $r17 get $r16 = $ra ;; sd 8[$r12] = $r16 ;; make $r5, 0 addw $r4 = $r1, -1 ;; .L105: addw $r9 = $r5, $r4 ;; srlw $r1 = $r9, 1 ;; lws.xs $r7 = $r1[$r0] ;; compw.ne $r32 = $r7, $r2 ;; cb.weqz $r32? .L107 ;; compw.lt $r3 = $r7, $r2 compw.gt $r8 = $r7, $r2 addw $r6 = $r1, 1 addw $r1 = $r1, -1 ;; cmoved.wnez $r3? $r5 = $r6 cmoved.wnez $r8? $r4 = $r1 ;; compw.leu $r32 = $r5, $r4 ;; cb.wnez $r32? .L105 ;; make $r0, -1 ;; .L107: addd $r0 = $r1, 0 ld $r16 = 8[$r12] ;; set $ra = $r16 ;; addd $r12 = $r12, 16 ;; ret ;; .type my_bsearch2, @function .size my_bsearch2, . - my_bsearch2 .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 ;; .L108: compw.geu $r32 = $r6, $r1 ;; cb.wnez $r32? .L109 ;; zxwd $r2 = $r6 andw $r3 = $r7, 1073741824 ;; slld $r4 = $r2, 2 ;; sw $r4[$r0] = $r8 addw $r8 = $r8, 1 cb.weqz $r3? .L110 ;; addw $r8 = $r8, 1 ;; .L110: mulw $r2 = $r7, 97 addw $r6 = $r6, 1 ;; addw $r7 = $r2, 5 goto .L108 ;; .L109: 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, -80 ;; 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 ;; sd 56[$r12] = $r23 make $r23, 1502 ;; sd 64[$r12] = $r24 make $r24, 5000 ;; sd 72[$r12] = $r25 call malloc ;; addd $r19 = $r0, 0 call get_current_cycle ;; addd $r18 = $r0, 0 addd $r1 = $r24, 0 addd $r0 = $r19, 0 call random_ascending_fill ;; call get_current_cycle ;; sbfd $r21 = $r18, $r0 addd $r2 = $r23, 0 addd $r1 = $r24, 0 addd $r0 = $r19, 0 call my_bsearch ;; call get_current_cycle ;; addd $r18 = $r0, 0 addd $r2 = $r23, 0 addd $r1 = $r24, 0 addd $r0 = $r19, 0 call my_bsearch ;; addd $r22 = $r0, 0 call get_current_cycle ;; sbfd $r20 = $r18, $r0 call get_current_cycle ;; addd $r25 = $r0, 0 addd $r2 = $r23, 0 addd $r1 = $r24, 0 addd $r0 = $r19, 0 call my_bsearch2 ;; addd $r18 = $r0, 0 call get_current_cycle ;; sbfd $r5 = $r25, $r0 make $r0 = __stringlit_1 addd $r4 = $r20, 0 addd $r3 = $r21, 0 ;; addd $r2 = $r18, 0 addd $r1 = $r22, 0 call printf ;; addd $r0 = $r19, 0 call free ;; make $r0, 0 ld $r16 = 8[$r12] ;; ld $r18 = 16[$r12] ;; ld $r19 = 24[$r12] ;; ld $r20 = 32[$r12] set $ra = $r16 ;; ld $r21 = 40[$r12] ;; ld $r22 = 48[$r12] ;; ld $r23 = 56[$r12] ;; ld $r24 = 64[$r12] ;; ld $r25 = 72[$r12] ;; addd $r12 = $r12, 80 ;; ret ;; .type main, @function .size main, . - main