Created
April 28, 2017 08:05
-
-
Save alexandrnikitin/c2eaf1086d32c086406849a62f66412d to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
0:006> !U /d 00007fff0d5e04d0 | |
Normal JIT generated code | |
Adform.AdServing.AhoCorasickTree.Benchmarks.ReadingString.TraversalUrolling() | |
Begin 00007fff0d5e04d0, size 126 | |
>>> 00007fff`0d5e04d0 4883ec28 sub rsp,28h | |
00007fff`0d5e04d4 33c0 xor eax,eax | |
00007fff`0d5e04d6 33d2 xor edx,edx | |
00007fff`0d5e04d8 48b978353a4fde010000 mov rcx,1DE4F3A3578h | |
00007fff`0d5e04e2 488b09 mov rcx,qword ptr [rcx] | |
00007fff`0d5e04e5 83790800 cmp dword ptr [rcx+8],0 | |
00007fff`0d5e04e9 0f8efc000000 jle 00007fff`0d5e05eb | |
00007fff`0d5e04ef 48b978353a4fde010000 mov rcx,1DE4F3A3578h | |
00007fff`0d5e04f9 488b09 mov rcx,qword ptr [rcx] | |
00007fff`0d5e04fc 8b4908 mov ecx,dword ptr [rcx+8] | |
00007fff`0d5e04ff 3bd1 cmp edx,ecx | |
00007fff`0d5e0501 0f83e9000000 jae 00007fff`0d5e05f0 | |
00007fff`0d5e0507 48b978353a4fde010000 mov rcx,1DE4F3A3578h | |
00007fff`0d5e0511 488b09 mov rcx,qword ptr [rcx] | |
00007fff`0d5e0514 4c63c2 movsxd r8,edx | |
00007fff`0d5e0517 420fb74c410c movzx ecx,word ptr [rcx+r8*2+0Ch] | |
00007fff`0d5e051d 81e1ffffffff and ecx,0FFFFFFFFh | |
00007fff`0d5e0523 4803c1 add rax,rcx | |
00007fff`0d5e0526 48b978353a4fde010000 mov rcx,1DE4F3A3578h | |
00007fff`0d5e0530 488b09 mov rcx,qword ptr [rcx] | |
00007fff`0d5e0533 8b4908 mov ecx,dword ptr [rcx+8] | |
00007fff`0d5e0536 448d4201 lea r8d,[rdx+1] | |
00007fff`0d5e053a 443bc1 cmp r8d,ecx | |
00007fff`0d5e053d 0f83ad000000 jae 00007fff`0d5e05f0 | |
00007fff`0d5e0543 48b978353a4fde010000 mov rcx,1DE4F3A3578h | |
00007fff`0d5e054d 488b09 mov rcx,qword ptr [rcx] | |
00007fff`0d5e0550 4d63c0 movsxd r8,r8d | |
00007fff`0d5e0553 420fb74c410c movzx ecx,word ptr [rcx+r8*2+0Ch] | |
00007fff`0d5e0559 81e1ffffffff and ecx,0FFFFFFFFh | |
00007fff`0d5e055f 4803c1 add rax,rcx | |
00007fff`0d5e0562 48b978353a4fde010000 mov rcx,1DE4F3A3578h | |
00007fff`0d5e056c 488b09 mov rcx,qword ptr [rcx] | |
00007fff`0d5e056f 8b4908 mov ecx,dword ptr [rcx+8] | |
00007fff`0d5e0572 448d4202 lea r8d,[rdx+2] | |
00007fff`0d5e0576 443bc1 cmp r8d,ecx | |
00007fff`0d5e0579 7375 jae 00007fff`0d5e05f0 | |
00007fff`0d5e057b 48b978353a4fde010000 mov rcx,1DE4F3A3578h | |
00007fff`0d5e0585 488b09 mov rcx,qword ptr [rcx] | |
00007fff`0d5e0588 4d63c0 movsxd r8,r8d | |
00007fff`0d5e058b 420fb74c410c movzx ecx,word ptr [rcx+r8*2+0Ch] | |
00007fff`0d5e0591 81e1ffffffff and ecx,0FFFFFFFFh | |
00007fff`0d5e0597 4803c1 add rax,rcx | |
00007fff`0d5e059a 48b978353a4fde010000 mov rcx,1DE4F3A3578h | |
00007fff`0d5e05a4 488b09 mov rcx,qword ptr [rcx] | |
00007fff`0d5e05a7 8b4908 mov ecx,dword ptr [rcx+8] | |
00007fff`0d5e05aa 448d4203 lea r8d,[rdx+3] | |
00007fff`0d5e05ae 443bc1 cmp r8d,ecx | |
00007fff`0d5e05b1 733d jae 00007fff`0d5e05f0 | |
00007fff`0d5e05b3 48b978353a4fde010000 mov rcx,1DE4F3A3578h | |
00007fff`0d5e05bd 488b09 mov rcx,qword ptr [rcx] | |
00007fff`0d5e05c0 4d63c0 movsxd r8,r8d | |
00007fff`0d5e05c3 420fb74c410c movzx ecx,word ptr [rcx+r8*2+0Ch] | |
00007fff`0d5e05c9 81e1ffffffff and ecx,0FFFFFFFFh | |
00007fff`0d5e05cf 4803c1 add rax,rcx | |
00007fff`0d5e05d2 83c204 add edx,4 | |
00007fff`0d5e05d5 48b978353a4fde010000 mov rcx,1DE4F3A3578h | |
00007fff`0d5e05df 488b09 mov rcx,qword ptr [rcx] | |
00007fff`0d5e05e2 395108 cmp dword ptr [rcx+8],edx | |
00007fff`0d5e05e5 0f8f04ffffff jg 00007fff`0d5e04ef | |
00007fff`0d5e05eb 4883c428 add rsp,28h | |
00007fff`0d5e05ef c3 ret | |
00007fff`0d5e05f0 e87b71aa5f call clr!JIT_RngChkFail (00007fff`6d087770) | |
00007fff`0d5e05f5 cc int 3 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public long TraversalUrolling() | |
{ | |
long sum = 0; | |
for (var i = 0; i < userAgent.Length; i = i + 4) | |
{ | |
sum += userAgent[i]; | |
sum += userAgent[i+1]; | |
sum += userAgent[i+2]; | |
sum += userAgent[i+3]; | |
} | |
return sum; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment