Skip to content

Instantly share code, notes, and snippets.

@ice799
Created November 10, 2009 06:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ice799/230705 to your computer and use it in GitHub Desktop.
Save ice799/230705 to your computer and use it in GitHub Desktop.
;
; branch predictor on with -O2
;
0000000000000000 <st_lookup>:
0: 48 89 5c 24 d8 mov %rbx,-0x28(%rsp)
5: 48 89 6c 24 e0 mov %rbp,-0x20(%rsp)
a: 48 89 fd mov %rdi,%rbp
d: 4c 89 64 24 e8 mov %r12,-0x18(%rsp)
12: 4c 89 6c 24 f0 mov %r13,-0x10(%rsp)
17: 31 c0 xor %eax,%eax
19: 4c 89 74 24 f8 mov %r14,-0x8(%rsp)
1e: 48 83 ec 28 sub $0x28,%rsp
22: 49 89 d6 mov %rdx,%r14
25: 48 8b 17 mov (%rdi),%rdx
28: 49 89 f5 mov %rsi,%r13
2b: 48 89 f7 mov %rsi,%rdi
2e: ff 52 08 callq *0x8(%rdx)
31: 31 d2 xor %edx,%edx
33: 41 89 c4 mov %eax,%r12d
36: f7 75 08 divl 0x8(%rbp)
39: 48 8b 45 10 mov 0x10(%rbp),%rax
3d: 89 d2 mov %edx,%edx
3f: 48 8b 1c d0 mov (%rax,%rdx,8),%rbx
43: 48 85 db test %rbx,%rbx
46: 75 25 jne 6d <st_lookup+0x6d>
48: 31 c0 xor %eax,%eax
4a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1)
50: 48 8b 1c 24 mov (%rsp),%rbx
54: 48 8b 6c 24 08 mov 0x8(%rsp),%rbp
59: 4c 8b 64 24 10 mov 0x10(%rsp),%r12
5e: 4c 8b 6c 24 18 mov 0x18(%rsp),%r13
63: 4c 8b 74 24 20 mov 0x20(%rsp),%r14
68: 48 83 c4 28 add $0x28,%rsp
6c: c3 retq
6d: 44 39 23 cmp %r12d,(%rbx)
70: 75 30 jne a2 <st_lookup+0xa2>
72: 48 8b 73 08 mov 0x8(%rbx),%rsi
76: 4c 39 ee cmp %r13,%rsi
79: 75 18 jne 93 <st_lookup+0x93>
7b: 4d 85 f6 test %r14,%r14
7e: b8 01 00 00 00 mov $0x1,%eax
83: 74 cb je 50 <st_lookup+0x50>
85: 48 8b 43 10 mov 0x10(%rbx),%rax
89: 49 89 06 mov %rax,(%r14)
8c: b8 01 00 00 00 mov $0x1,%eax
91: eb bd jmp 50 <st_lookup+0x50>
93: 48 8b 55 00 mov 0x0(%rbp),%rdx
97: 31 c0 xor %eax,%eax
99: 4c 89 ef mov %r13,%rdi
9c: ff 12 callq *(%rdx)
9e: 85 c0 test %eax,%eax
a0: 74 d9 je 7b <st_lookup+0x7b>
a2: 48 8b 43 18 mov 0x18(%rbx),%rax
a6: 48 85 c0 test %rax,%rax
a9: 75 19 jne c4 <st_lookup+0xc4>
ab: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1)
b0: eb 96 jmp 48 <st_lookup+0x48>
b2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1)
b8: 48 89 c3 mov %rax,%rbx
bb: 48 8b 40 18 mov 0x18(%rax),%rax
bf: 48 85 c0 test %rax,%rax
c2: 74 84 je 48 <st_lookup+0x48>
c4: 44 39 20 cmp %r12d,(%rax)
c7: 90 nop
c8: 75 ee jne b8 <st_lookup+0xb8>
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; just O2
;
0000000000000000 <st_lookup>:
0: 41 56 push %r14
2: 49 89 d6 mov %rdx,%r14
5: 31 c0 xor %eax,%eax
7: 41 55 push %r13
9: 49 89 fd mov %rdi,%r13
c: 41 54 push %r12
e: 49 89 f4 mov %rsi,%r12
11: 55 push %rbp
12: 53 push %rbx
13: 48 8b 17 mov (%rdi),%rdx
16: 48 89 f7 mov %rsi,%rdi
19: ff 52 08 callq *0x8(%rdx)
1c: 31 d2 xor %edx,%edx
1e: 89 c5 mov %eax,%ebp
20: 41 f7 75 08 divl 0x8(%r13)
24: 49 8b 45 10 mov 0x10(%r13),%rax
28: 89 d2 mov %edx,%edx
2a: 48 8b 1c d0 mov (%rax,%rdx,8),%rbx
2e: 48 85 db test %rbx,%rbx
31: 0f 84 81 00 00 00 je b8 <st_lookup+0xb8>
37: 39 2b cmp %ebp,(%rbx)
39: 74 45 je 80 <st_lookup+0x80>
3b: 48 8b 43 18 mov 0x18(%rbx),%rax
3f: 48 85 c0 test %rax,%rax
42: 75 18 jne 5c <st_lookup+0x5c>
44: 0f 1f 40 00 nopl 0x0(%rax)
48: eb 6e jmp b8 <st_lookup+0xb8>
4a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1)
50: 48 89 c3 mov %rax,%rbx
53: 48 8b 40 18 mov 0x18(%rax),%rax
57: 48 85 c0 test %rax,%rax
5a: 74 5c je b8 <st_lookup+0xb8>
5c: 39 28 cmp %ebp,(%rax)
5e: 66 90 xchg %ax,%ax
60: 75 ee jne 50 <st_lookup+0x50>
62: 48 8b 70 08 mov 0x8(%rax),%rsi
66: 4c 39 e6 cmp %r12,%rsi
69: 74 42 je ad <st_lookup+0xad>
6b: 49 8b 55 00 mov 0x0(%r13),%rdx
6f: 31 c0 xor %eax,%eax
71: 4c 89 e7 mov %r12,%rdi
74: ff 12 callq *(%rdx)
76: 85 c0 test %eax,%eax
78: 74 2f je a9 <st_lookup+0xa9>
7a: 48 8b 43 18 mov 0x18(%rbx),%rax
7e: eb d0 jmp 50 <st_lookup+0x50>
80: 48 8b 73 08 mov 0x8(%rbx),%rsi
84: 4c 39 e6 cmp %r12,%rsi
87: 90 nop
88: 75 39 jne c3 <st_lookup+0xc3>
8a: 4d 85 f6 test %r14,%r14
8d: b8 01 00 00 00 mov $0x1,%eax
92: 74 0c je a0 <st_lookup+0xa0>
94: 48 8b 43 10 mov 0x10(%rbx),%rax
98: 49 89 06 mov %rax,(%r14)
9b: b8 01 00 00 00 mov $0x1,%eax
a0: 5b pop %rbx
a1: 5d pop %rbp
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment