.file "sentinel.c" .text .type bound_for, @function bound_for: pushl %ebp xorl %eax, %eax movl %esp, %ebp movl 8(%ebp), %ecx movl (%ecx), %edx jmp .L2 .L4: cmpl $5, 4(%ecx,%eax,4) je .L5 incl %eax .L2: cmpl %edx, %eax jb .L4 .L5: popl %ebp ret .size bound_for, .-bound_for .type bound_while, @function bound_while: pushl %ebp xorl %eax, %eax movl %esp, %ebp movl 8(%ebp), %ecx movl (%ecx), %edx jmp .L7 .L9: incl %eax .L7: cmpl %edx, %eax jae .L10 cmpl $5, 4(%ecx,%eax,4) jne .L9 .L10: popl %ebp ret .size bound_while, .-bound_while .type sentinel, @function sentinel: pushl %ebp orl $-1, %eax movl %esp, %ebp movl 8(%ebp), %edx movl $5, 4194308(%edx) .L12: incl %eax cmpl $5, 4(%edx,%eax,4) jne .L12 popl %ebp ret .size sentinel, .-sentinel .type sentinel_backwards, @function sentinel_backwards: pushl %ebp movl $1048576, %eax movl %esp, %ebp movl 8(%ebp), %edx movl $5, 4(%edx) .L16: decl %eax cmpl $5, 4(%edx,%eax,4) jne .L16 popl %ebp ret .size sentinel_backwards, .-sentinel_backwards .section .rodata.str1.1,"aMS",@progbits,1 .LC0: .string "%20s " .LC4: .string "%9.5f %6.0f%%\n" .text .type speed, @function speed: pushl %ebp movl %esp, %ebp pushl %edi movl %edx, %edi pushl %esi movl %ecx, %esi pushl %ebx movl $-1000, %ebx subl $36, %esp pushl %eax pushl $.LC0 call printf leal -32(%ebp), %eax popl %edx popl %ecx pushl $0 pushl %eax call gettimeofday addl $16, %esp .L20: subl $12, %esp incl %ebx pushl %esi call *%edi addl $16, %esp cmpl $1, %ebx jne .L20 pushl %eax pushl %eax pushl $0 leal -24(%ebp), %eax pushl %eax call gettimeofday imull $1000000, -24(%ebp), %eax addl -20(%ebp), %eax pushl %eax imull $1000000, -32(%ebp), %eax addl -28(%ebp), %eax fildl (%esp) movl %eax, (%esp) fildl (%esp) addl $20, %esp fsubrp %st, %st(1) fdivs .LC1 fldz fldl Orig fucompp fnstsw %ax sahf jne .L21 jp .L21 fstl Orig .L21: fldl Orig subl $28, %esp fdiv %st(1), %st flds .LC3 fmul %st, %st(1) fsubrp %st, %st(1) fstpl 8(%esp) fstpl (%esp) pushl $.LC4 call printf addl $32, %esp leal -12(%ebp), %esp popl %ebx popl %esi popl %edi popl %ebp ret .size speed, .-speed .section .rodata.str1.1 .LC6: .string "speedup" .LC7: .string "time" .LC8: .string "name" .LC9: .string "%20s %9s %5s\n" .LC10: .string "***calibrate***" .LC11: .string "bound_for" .LC12: .string "bound_while" .LC13: .string "sentinel" .LC14: .string "sentinel_backwards" .text .globl main .type main, @function main: leal 4(%esp), %ecx andl $-16, %esp pushl -4(%ecx) pushl %ebp movl %esp, %ebp pushl %edi pushl %ebx pushl %ecx subl $4194332, %esp cld xorl %eax, %eax movl $1048577, %ecx leal -4194320(%ebp), %edi rep stosl leal -4194324(%ebp), %ebx movl $5, -2097168(%ebp) pushl $.LC6 pushl $.LC7 pushl $.LC8 pushl $.LC9 call printf movl %ebx, %ecx movl $bound_for, %edx movl $.LC10, %eax call speed movl %ebx, %ecx movl $bound_for, %edx movl $.LC11, %eax call speed movl %ebx, %ecx movl $bound_while, %edx movl $.LC12, %eax call speed movl %ebx, %ecx movl $sentinel, %edx movl $.LC13, %eax call speed movl %ebx, %ecx movl $.LC14, %eax movl $sentinel_backwards, %edx call speed leal -12(%ebp), %esp xorl %eax, %eax popl %ecx popl %ebx popl %edi popl %ebp leal -4(%ecx), %esp ret .size main, .-main .local Orig .comm Orig,8,8 .section .rodata.cst4,"aM",@progbits,4 .align 4 .LC1: .long 1232348160 .align 4 .LC3: .long 1120403456 .ident "GCC: (Debian 4.3.3-1) 4.3.3" .section .note.GNU-stack,"",@progbits