ice799 (owner)

Revisions

gist: 230705 Download_button fork
public
Public Clone URL: git://gist.github.com/230705.git
Embed All Files: show embed
branch predictor #
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
;
; 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