------- Comment #2 from markus at cs dot wisc dot edu 2009-05-10 01:44 ------- `gcc -O1 reverse.c -o reverse -Wall && objdump -d reverse`
[...] 08048470 <reverse>: 8048470: 55 push %ebp 8048471: 89 e5 mov %esp,%ebp 8048473: 53 push %ebx 8048474: 8b 4d 08 mov 0x8(%ebp),%ecx 8048477: 8b 45 0c mov 0xc(%ebp),%eax 804847a: 39 c8 cmp %ecx,%eax 804847c: 75 1a jne 8048498 <reverse+0x28> 804847e: eb 36 jmp 80484b6 <reverse+0x46> 8048480: 8b 11 mov (%ecx),%edx 8048482: 8b 03 mov (%ebx),%eax 8048484: 89 01 mov %eax,(%ecx) 8048486: 89 13 mov %edx,(%ebx) 8048488: 83 c1 04 add $0x4,%ecx 804848b: 39 d9 cmp %ebx,%ecx 804848d: 74 27 je 80484b6 <reverse+0x46> 804848f: 83 eb 04 sub $0x4,%ebx 8048492: 39 d9 cmp %ebx,%ecx 8048494: 75 ea jne 8048480 <reverse+0x10> 8048496: eb 1e jmp 80484b6 <reverse+0x46> 8048498: 8d 58 fc lea -0x4(%eax),%ebx 804849b: 39 d9 cmp %ebx,%ecx 804849d: 8d 76 00 lea 0x0(%esi),%esi 80484a0: 74 14 je 80484b6 <reverse+0x46> 80484a2: 8b 11 mov (%ecx),%edx 80484a4: 8b 03 mov (%ebx),%eax 80484a6: 89 01 mov %eax,(%ecx) 80484a8: 89 13 mov %edx,(%ebx) 80484aa: 83 c1 04 add $0x4,%ecx 80484ad: 39 cb cmp %ecx,%ebx 80484af: 74 05 je 80484b6 <reverse+0x46> 80484b1: 83 eb 04 sub $0x4,%ebx 80484b4: eb dc jmp 8048492 <reverse+0x22> 80484b6: 5b pop %ebx 80484b7: 5d pop %ebp 80484b8: c3 ret [...] `gcc -O2 reverse.c -o reverse -Wall && objdump -d reverse` [...] 08048470 <reverse>: 8048470: 55 push %ebp 8048471: 89 e5 mov %esp,%ebp 8048473: 56 push %esi 8048474: 8b 4d 08 mov 0x8(%ebp),%ecx 8048477: 53 push %ebx 8048478: 8b 5d 0c mov 0xc(%ebp),%ebx 804847b: 39 cb cmp %ecx,%ebx 804847d: 74 37 je 80484b6 <reverse+0x46> 804847f: 8d 73 fc lea -0x4(%ebx),%esi 8048482: 39 f1 cmp %esi,%ecx 8048484: 74 30 je 80484b6 <reverse+0x46> 8048486: 8b 43 fc mov -0x4(%ebx),%eax 8048489: 8b 11 mov (%ecx),%edx 804848b: 89 01 mov %eax,(%ecx) 804848d: 83 c1 04 add $0x4,%ecx 8048490: 39 ce cmp %ecx,%esi 8048492: 89 53 fc mov %edx,-0x4(%ebx) 8048495: 74 1f je 80484b6 <reverse+0x46> 8048497: 83 eb 08 sub $0x8,%ebx 804849a: eb 07 jmp 80484a3 <reverse+0x33> 804849c: 8d 74 26 00 lea 0x0(%esi,%eiz,1),%esi 80484a0: 83 eb 04 sub $0x4,%ebx 80484a3: 39 d9 cmp %ebx,%ecx 80484a5: 74 0f je 80484b6 <reverse+0x46> 80484a7: 8b 03 mov (%ebx),%eax 80484a9: 8b 11 mov (%ecx),%edx 80484ab: 89 01 mov %eax,(%ecx) 80484ad: 83 c1 04 add $0x4,%ecx 80484b0: 39 d9 cmp %ebx,%ecx 80484b2: 89 13 mov %edx,(%ebx) 80484b4: 75 ea jne 80484a0 <reverse+0x30> 80484b6: 5b pop %ebx 80484b7: 5e pop %esi 80484b8: 5d pop %ebp 80484b9: c3 ret 80484ba: 8d b6 00 00 00 00 lea 0x0(%esi),%esi [...] -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40087