|
; Assembly listing for method System.HashCode:Test_1():int |
|
; Emitting BLENDED_CODE for X64 CPU with AVX |
|
; optimized code |
|
; rsp based frame |
|
; partially interruptible |
|
; Final local variable assignments |
|
; |
|
; V00 loc0 [V00 ] ( 29, 11 ) struct (32) [rsp+0x30] do-not-enreg[XSFB] must-init addr-exposed ld-addr-op |
|
; V01 tmp0 [V01,T00] ( 3, 6 ) int -> rcx |
|
; V02 tmp1 [V02,T08] ( 5, 2 ) int -> rcx |
|
; V03 tmp2 [V03,T07] ( 5, 2.75) int -> rax |
|
; V04 tmp3 [V04,T01] ( 8, 4 ) int -> rax ld-addr-op |
|
; V05 tmp4 [V05,T09] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V06 tmp5 [V06 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V07 tmp6 [V07,T02] ( 8, 4 ) int -> rax ld-addr-op |
|
; V08 tmp7 [V08,T10] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V09 tmp8 [V09 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V10 tmp9 [V10,T03] ( 8, 4 ) int -> rax ld-addr-op |
|
; V11 tmp10 [V11,T11] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V12 tmp11 [V12 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V13 tmp12 [V13,T04] ( 8, 4 ) int -> rax ld-addr-op |
|
;* V14 tmp13 [V14 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V15 OutArgs [V15 ] ( 1, 1 ) lclBlk (32) [rsp+0x00] |
|
; V16 cse0 [V16,T06] ( 12, 3 ) int -> rax |
|
; V17 cse1 [V17,T05] ( 3, 2.25) long -> [rsp+0x28] |
|
; |
|
; Lcl frame size = 80 |
|
|
|
G_M18625_IG01: |
|
57 push rdi |
|
4883EC50 sub rsp, 80 |
|
C5F877 vzeroupper |
|
488D7C2430 lea rdi, [rsp+30H] |
|
B908000000 mov ecx, 8 |
|
33C0 xor rax, rax |
|
F3AB rep stosd |
|
|
|
G_M18625_IG02: |
|
488D4C2430 lea rcx, bword ptr [rsp+30H] |
|
C4E17957C0 vxorpd xmm0, xmm0 |
|
C4E17A7F01 vmovdqu qword ptr [rcx], xmm0 |
|
C4E17A7F4110 vmovdqu qword ptr [rcx+16], xmm0 |
|
48B958560C9FFB7F0000 mov rcx, 0x7FFB9F0C5658 |
|
BA02000000 mov edx, 2 |
|
E8A11A165F call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE |
|
8B0D6B49EEFF mov ecx, dword ptr [reloc classVar[0x9f0c65d0]] |
|
8B44244C mov eax, dword ptr [rsp+4CH] |
|
83E003 and eax, 3 |
|
85C0 test eax, eax |
|
7509 jne SHORT G_M18625_IG03 |
|
894C2440 mov dword ptr [rsp+40H], ecx |
|
E9B9000000 jmp G_M18625_IG07 |
|
|
|
G_M18625_IG03: |
|
83F801 cmp eax, 1 |
|
7509 jne SHORT G_M18625_IG04 |
|
894C2444 mov dword ptr [rsp+44H], ecx |
|
E9AB000000 jmp G_M18625_IG07 |
|
|
|
G_M18625_IG04: |
|
83F802 cmp eax, 2 |
|
7509 jne SHORT G_M18625_IG05 |
|
894C2448 mov dword ptr [rsp+48H], ecx |
|
E99D000000 jmp G_M18625_IG07 |
|
|
|
G_M18625_IG05: |
|
3344244C xor eax, dword ptr [rsp+4CH] |
|
7527 jne SHORT G_M18625_IG06 |
|
8B052B49EEFF mov eax, dword ptr [reloc classVar[0x9f0c65b0]] |
|
8D9028442324 lea edx, [rax+24234428H] |
|
89542430 mov dword ptr [rsp+30H], edx |
|
8D9077CAEB85 lea edx, [rax85EBCA77H] |
|
89542434 mov dword ptr [rsp+34H], edx |
|
89442438 mov dword ptr [rsp+38H], eax |
|
054F86C861 add eax, 0x61C8864F |
|
8944243C mov dword ptr [rsp+3CH], eax |
|
|
|
G_M18625_IG06: |
|
8B442430 mov eax, dword ptr [rsp+30H] |
|
8B542440 mov edx, dword ptr [rsp+40H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442430 mov dword ptr [rsp+30H], eax |
|
8B442434 mov eax, dword ptr [rsp+34H] |
|
8B542444 mov edx, dword ptr [rsp+44H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442434 mov dword ptr [rsp+34H], eax |
|
8B442438 mov eax, dword ptr [rsp+38H] |
|
8B542448 mov edx, dword ptr [rsp+48H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442438 mov dword ptr [rsp+38H], eax |
|
8B44243C mov eax, dword ptr [rsp+3CH] |
|
69C977CAEB85 imul ecx, ecx, 0xFFFFFFFF85EBCA77 |
|
03C1 add eax, ecx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
8944243C mov dword ptr [rsp+3CH], eax |
|
|
|
G_M18625_IG07: |
|
8B4C244C mov ecx, dword ptr [rsp+4CH] |
|
83C101 add ecx, 1 |
|
7215 jb SHORT G_M18625_IG09 |
|
894C244C mov dword ptr [rsp+4CH], ecx |
|
488D4C2430 lea rcx, bword ptr [rsp+30H] |
|
E867FBFFFF call System.HashCode:ToHashCode():int:this |
|
90 nop |
|
|
|
G_M18625_IG08: |
|
4883C450 add rsp, 80 |
|
5F pop rdi |
|
C3 ret |
|
|
|
G_M18625_IG09: |
|
E8BB80C05E call CORINFO_HELP_OVERFLOW |
|
CC int3 |
|
|
|
; Total bytes of code 310, prolog size 22 for method System.HashCode:Test_1():int |
|
; ============================================================ |
|
; Assembly listing for method System.HashCode:Test_2():int |
|
; Emitting BLENDED_CODE for X64 CPU with AVX |
|
; optimized code |
|
; rsp based frame |
|
; partially interruptible |
|
; Final local variable assignments |
|
; |
|
; V00 loc0 [V00 ] ( 46, 17.50) struct (32) [rsp+0x20] do-not-enreg[XSFB] must-init addr-exposed ld-addr-op |
|
; V01 tmp0 [V01,T08] ( 2, 4 ) int -> rcx |
|
; V02 tmp1 [V02,T12] ( 5, 2 ) int -> rcx |
|
; V03 tmp2 [V03,T10] ( 5, 2.75) int -> rax |
|
; V04 tmp3 [V04,T00] ( 8, 4 ) int -> rax ld-addr-op |
|
; V05 tmp4 [V05,T14] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V06 tmp5 [V06 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V07 tmp6 [V07,T01] ( 8, 4 ) int -> rax ld-addr-op |
|
; V08 tmp7 [V08,T15] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V09 tmp8 [V09 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V10 tmp9 [V10,T02] ( 8, 4 ) int -> rax ld-addr-op |
|
; V11 tmp10 [V11,T16] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V12 tmp11 [V12 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V13 tmp12 [V13,T03] ( 8, 4 ) int -> rax ld-addr-op |
|
;* V14 tmp13 [V14 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V15 tmp14 [V15,T09] ( 2, 4 ) int -> rcx |
|
; V16 tmp15 [V16,T13] ( 5, 2 ) int -> rcx |
|
; V17 tmp16 [V17,T11] ( 5, 2.75) int -> rax |
|
; V18 tmp17 [V18,T04] ( 8, 4 ) int -> rax ld-addr-op |
|
; V19 tmp18 [V19,T17] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V20 tmp19 [V20 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V21 tmp20 [V21,T05] ( 8, 4 ) int -> rax ld-addr-op |
|
; V22 tmp21 [V22,T18] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V23 tmp22 [V23 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V24 tmp23 [V24,T06] ( 8, 4 ) int -> rax ld-addr-op |
|
; V25 tmp24 [V25,T19] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V26 tmp25 [V26 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V27 tmp26 [V27,T07] ( 8, 4 ) int -> rax ld-addr-op |
|
;* V28 tmp27 [V28 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V29 OutArgs [V29 ] ( 1, 1 ) lclBlk (32) [rsp+0x00] |
|
; |
|
; Lcl frame size = 64 |
|
|
|
G_M18632_IG01: |
|
57 push rdi |
|
4883EC40 sub rsp, 64 |
|
C5F877 vzeroupper |
|
488D7C2420 lea rdi, [rsp+20H] |
|
B908000000 mov ecx, 8 |
|
33C0 xor rax, rax |
|
F3AB rep stosd |
|
|
|
G_M18632_IG02: |
|
488D4C2420 lea rcx, bword ptr [rsp+20H] |
|
C4E17957C0 vxorpd xmm0, xmm0 |
|
C4E17A7F01 vmovdqu qword ptr [rcx], xmm0 |
|
C4E17A7F4110 vmovdqu qword ptr [rcx+16], xmm0 |
|
8B0D3F47EEFF mov ecx, dword ptr [reloc classVar[0x9f0c65d0]] |
|
8B44243C mov eax, dword ptr [rsp+3CH] |
|
83E003 and eax, 3 |
|
85C0 test eax, eax |
|
7509 jne SHORT G_M18632_IG03 |
|
894C2430 mov dword ptr [rsp+30H], ecx |
|
E9B0000000 jmp G_M18632_IG07 |
|
|
|
G_M18632_IG03: |
|
83F801 cmp eax, 1 |
|
7509 jne SHORT G_M18632_IG04 |
|
894C2434 mov dword ptr [rsp+34H], ecx |
|
E9A2000000 jmp G_M18632_IG07 |
|
|
|
G_M18632_IG04: |
|
83F802 cmp eax, 2 |
|
7509 jne SHORT G_M18632_IG05 |
|
894C2438 mov dword ptr [rsp+38H], ecx |
|
E994000000 jmp G_M18632_IG07 |
|
|
|
G_M18632_IG05: |
|
3344243C xor eax, dword ptr [rsp+3CH] |
|
751E jne SHORT G_M18632_IG06 |
|
C744242028442324 mov dword ptr [rsp+20H], 0x24234428 |
|
C744242477CAEB85 mov dword ptr [rsp+24H], 0xFFFFFFFF85EBCA77 |
|
33C0 xor eax, eax |
|
89442428 mov dword ptr [rsp+28H], eax |
|
C744242C4F86C861 mov dword ptr [rsp+2CH], 0x61C8864F |
|
|
|
G_M18632_IG06: |
|
8B442420 mov eax, dword ptr [rsp+20H] |
|
8B542430 mov edx, dword ptr [rsp+30H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442420 mov dword ptr [rsp+20H], eax |
|
8B442424 mov eax, dword ptr [rsp+24H] |
|
8B542434 mov edx, dword ptr [rsp+34H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442424 mov dword ptr [rsp+24H], eax |
|
8B442428 mov eax, dword ptr [rsp+28H] |
|
8B542438 mov edx, dword ptr [rsp+38H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442428 mov dword ptr [rsp+28H], eax |
|
8B44242C mov eax, dword ptr [rsp+2CH] |
|
69C977CAEB85 imul ecx, ecx, 0xFFFFFFFF85EBCA77 |
|
03C1 add eax, ecx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
8944242C mov dword ptr [rsp+2CH], eax |
|
|
|
G_M18632_IG07: |
|
8B4C243C mov ecx, dword ptr [rsp+3CH] |
|
83C101 add ecx, 1 |
|
0F82EC000000 jb G_M18632_IG14 |
|
894C243C mov dword ptr [rsp+3CH], ecx |
|
8B0D6446EEFF mov ecx, dword ptr [reloc classVar[0x9f0c65d0]] |
|
8B44243C mov eax, dword ptr [rsp+3CH] |
|
83E003 and eax, 3 |
|
85C0 test eax, eax |
|
7509 jne SHORT G_M18632_IG08 |
|
894C2430 mov dword ptr [rsp+30H], ecx |
|
E9B0000000 jmp G_M18632_IG12 |
|
|
|
G_M18632_IG08: |
|
83F801 cmp eax, 1 |
|
7509 jne SHORT G_M18632_IG09 |
|
894C2434 mov dword ptr [rsp+34H], ecx |
|
E9A2000000 jmp G_M18632_IG12 |
|
|
|
G_M18632_IG09: |
|
83F802 cmp eax, 2 |
|
7509 jne SHORT G_M18632_IG10 |
|
894C2438 mov dword ptr [rsp+38H], ecx |
|
E994000000 jmp G_M18632_IG12 |
|
|
|
G_M18632_IG10: |
|
3344243C xor eax, dword ptr [rsp+3CH] |
|
751E jne SHORT G_M18632_IG11 |
|
C744242028442324 mov dword ptr [rsp+20H], 0x24234428 |
|
C744242477CAEB85 mov dword ptr [rsp+24H], 0xFFFFFFFF85EBCA77 |
|
33C0 xor eax, eax |
|
89442428 mov dword ptr [rsp+28H], eax |
|
C744242C4F86C861 mov dword ptr [rsp+2CH], 0x61C8864F |
|
|
|
G_M18632_IG11: |
|
8B442420 mov eax, dword ptr [rsp+20H] |
|
8B542430 mov edx, dword ptr [rsp+30H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442420 mov dword ptr [rsp+20H], eax |
|
8B442424 mov eax, dword ptr [rsp+24H] |
|
8B542434 mov edx, dword ptr [rsp+34H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442424 mov dword ptr [rsp+24H], eax |
|
8B442428 mov eax, dword ptr [rsp+28H] |
|
8B542438 mov edx, dword ptr [rsp+38H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442428 mov dword ptr [rsp+28H], eax |
|
8B44242C mov eax, dword ptr [rsp+2CH] |
|
69C977CAEB85 imul ecx, ecx, 0xFFFFFFFF85EBCA77 |
|
03C1 add eax, ecx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
8944242C mov dword ptr [rsp+2CH], eax |
|
|
|
G_M18632_IG12: |
|
8B4C243C mov ecx, dword ptr [rsp+3CH] |
|
83C101 add ecx, 1 |
|
7215 jb SHORT G_M18632_IG14 |
|
894C243C mov dword ptr [rsp+3CH], ecx |
|
488D4C2420 lea rcx, bword ptr [rsp+20H] |
|
E849FDFFFF call System.HashCode:ToHashCode():int:this |
|
90 nop |
|
|
|
G_M18632_IG13: |
|
4883C440 add rsp, 64 |
|
5F pop rdi |
|
C3 ret |
|
|
|
G_M18632_IG14: |
|
E8BD7DC05E call CORINFO_HELP_OVERFLOW |
|
CC int3 |
|
|
|
; Total bytes of code 500, prolog size 22 for method System.HashCode:Test_2():int |
|
; ============================================================ |
|
; Assembly listing for method System.HashCode:Test_3():int |
|
; Emitting BLENDED_CODE for X64 CPU with AVX |
|
; optimized code |
|
; rsp based frame |
|
; partially interruptible |
|
; Final local variable assignments |
|
; |
|
; V00 loc0 [V00 ] ( 68, 25.25) struct (32) [rsp+0x20] do-not-enreg[XSFB] must-init addr-exposed ld-addr-op |
|
; V01 tmp0 [V01,T12] ( 2, 4 ) int -> rcx |
|
; V02 tmp1 [V02,T18] ( 5, 2 ) int -> rcx |
|
; V03 tmp2 [V03,T15] ( 5, 2.75) int -> rax |
|
; V04 tmp3 [V04,T00] ( 8, 4 ) int -> rax ld-addr-op |
|
; V05 tmp4 [V05,T21] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V06 tmp5 [V06 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V07 tmp6 [V07,T01] ( 8, 4 ) int -> rax ld-addr-op |
|
; V08 tmp7 [V08,T22] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V09 tmp8 [V09 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V10 tmp9 [V10,T02] ( 8, 4 ) int -> rax ld-addr-op |
|
; V11 tmp10 [V11,T23] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V12 tmp11 [V12 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V13 tmp12 [V13,T03] ( 8, 4 ) int -> rax ld-addr-op |
|
;* V14 tmp13 [V14 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V15 tmp14 [V15,T13] ( 2, 4 ) int -> rcx |
|
; V16 tmp15 [V16,T19] ( 5, 2 ) int -> rcx |
|
; V17 tmp16 [V17,T16] ( 5, 2.75) int -> rax |
|
; V18 tmp17 [V18,T04] ( 8, 4 ) int -> rax ld-addr-op |
|
; V19 tmp18 [V19,T24] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V20 tmp19 [V20 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V21 tmp20 [V21,T05] ( 8, 4 ) int -> rax ld-addr-op |
|
; V22 tmp21 [V22,T25] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V23 tmp22 [V23 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V24 tmp23 [V24,T06] ( 8, 4 ) int -> rax ld-addr-op |
|
; V25 tmp24 [V25,T26] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V26 tmp25 [V26 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V27 tmp26 [V27,T07] ( 8, 4 ) int -> rax ld-addr-op |
|
;* V28 tmp27 [V28 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V29 tmp28 [V29,T14] ( 2, 4 ) int -> rcx |
|
; V30 tmp29 [V30,T20] ( 5, 2 ) int -> rcx |
|
; V31 tmp30 [V31,T17] ( 5, 2.75) int -> rax |
|
; V32 tmp31 [V32,T08] ( 8, 4 ) int -> rax ld-addr-op |
|
; V33 tmp32 [V33,T27] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V34 tmp33 [V34 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V35 tmp34 [V35,T09] ( 8, 4 ) int -> rax ld-addr-op |
|
; V36 tmp35 [V36,T28] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V37 tmp36 [V37 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V38 tmp37 [V38,T10] ( 8, 4 ) int -> rax ld-addr-op |
|
; V39 tmp38 [V39,T29] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V40 tmp39 [V40 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V41 tmp40 [V41,T11] ( 8, 4 ) int -> rax ld-addr-op |
|
;* V42 tmp41 [V42 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V43 OutArgs [V43 ] ( 1, 1 ) lclBlk (32) [rsp+0x00] |
|
; |
|
; Lcl frame size = 64 |
|
|
|
G_M18643_IG01: |
|
57 push rdi |
|
4883EC40 sub rsp, 64 |
|
C5F877 vzeroupper |
|
488D7C2420 lea rdi, [rsp+20H] |
|
B908000000 mov ecx, 8 |
|
33C0 xor rax, rax |
|
F3AB rep stosd |
|
|
|
G_M18643_IG02: |
|
488D4C2420 lea rcx, bword ptr [rsp+20H] |
|
C4E17957C0 vxorpd xmm0, xmm0 |
|
C4E17A7F01 vmovdqu qword ptr [rcx], xmm0 |
|
C4E17A7F4110 vmovdqu qword ptr [rcx+16], xmm0 |
|
8B0D2F45EEFF mov ecx, dword ptr [reloc classVar[0x9f0c65d0]] |
|
8B44243C mov eax, dword ptr [rsp+3CH] |
|
83E003 and eax, 3 |
|
85C0 test eax, eax |
|
7509 jne SHORT G_M18643_IG03 |
|
894C2430 mov dword ptr [rsp+30H], ecx |
|
E9B0000000 jmp G_M18643_IG07 |
|
|
|
G_M18643_IG03: |
|
83F801 cmp eax, 1 |
|
7509 jne SHORT G_M18643_IG04 |
|
894C2434 mov dword ptr [rsp+34H], ecx |
|
E9A2000000 jmp G_M18643_IG07 |
|
|
|
G_M18643_IG04: |
|
83F802 cmp eax, 2 |
|
7509 jne SHORT G_M18643_IG05 |
|
894C2438 mov dword ptr [rsp+38H], ecx |
|
E994000000 jmp G_M18643_IG07 |
|
|
|
G_M18643_IG05: |
|
3344243C xor eax, dword ptr [rsp+3CH] |
|
751E jne SHORT G_M18643_IG06 |
|
C744242028442324 mov dword ptr [rsp+20H], 0x24234428 |
|
C744242477CAEB85 mov dword ptr [rsp+24H], 0xFFFFFFFF85EBCA77 |
|
33C0 xor eax, eax |
|
89442428 mov dword ptr [rsp+28H], eax |
|
C744242C4F86C861 mov dword ptr [rsp+2CH], 0x61C8864F |
|
|
|
G_M18643_IG06: |
|
8B442420 mov eax, dword ptr [rsp+20H] |
|
8B542430 mov edx, dword ptr [rsp+30H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442420 mov dword ptr [rsp+20H], eax |
|
8B442424 mov eax, dword ptr [rsp+24H] |
|
8B542434 mov edx, dword ptr [rsp+34H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442424 mov dword ptr [rsp+24H], eax |
|
8B442428 mov eax, dword ptr [rsp+28H] |
|
8B542438 mov edx, dword ptr [rsp+38H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442428 mov dword ptr [rsp+28H], eax |
|
8B44242C mov eax, dword ptr [rsp+2CH] |
|
69C977CAEB85 imul ecx, ecx, 0xFFFFFFFF85EBCA77 |
|
03C1 add eax, ecx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
8944242C mov dword ptr [rsp+2CH], eax |
|
|
|
G_M18643_IG07: |
|
8B4C243C mov ecx, dword ptr [rsp+3CH] |
|
83C101 add ecx, 1 |
|
0F82C7010000 jb G_M18643_IG19 |
|
894C243C mov dword ptr [rsp+3CH], ecx |
|
8B0D5444EEFF mov ecx, dword ptr [reloc classVar[0x9f0c65d0]] |
|
8B44243C mov eax, dword ptr [rsp+3CH] |
|
83E003 and eax, 3 |
|
85C0 test eax, eax |
|
7509 jne SHORT G_M18643_IG08 |
|
894C2430 mov dword ptr [rsp+30H], ecx |
|
E9B0000000 jmp G_M18643_IG12 |
|
|
|
G_M18643_IG08: |
|
83F801 cmp eax, 1 |
|
7509 jne SHORT G_M18643_IG09 |
|
894C2434 mov dword ptr [rsp+34H], ecx |
|
E9A2000000 jmp G_M18643_IG12 |
|
|
|
G_M18643_IG09: |
|
83F802 cmp eax, 2 |
|
7509 jne SHORT G_M18643_IG10 |
|
894C2438 mov dword ptr [rsp+38H], ecx |
|
E994000000 jmp G_M18643_IG12 |
|
|
|
G_M18643_IG10: |
|
3344243C xor eax, dword ptr [rsp+3CH] |
|
751E jne SHORT G_M18643_IG11 |
|
C744242028442324 mov dword ptr [rsp+20H], 0x24234428 |
|
C744242477CAEB85 mov dword ptr [rsp+24H], 0xFFFFFFFF85EBCA77 |
|
33C0 xor eax, eax |
|
89442428 mov dword ptr [rsp+28H], eax |
|
C744242C4F86C861 mov dword ptr [rsp+2CH], 0x61C8864F |
|
|
|
G_M18643_IG11: |
|
8B442420 mov eax, dword ptr [rsp+20H] |
|
8B542430 mov edx, dword ptr [rsp+30H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442420 mov dword ptr [rsp+20H], eax |
|
8B442424 mov eax, dword ptr [rsp+24H] |
|
8B542434 mov edx, dword ptr [rsp+34H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442424 mov dword ptr [rsp+24H], eax |
|
8B442428 mov eax, dword ptr [rsp+28H] |
|
8B542438 mov edx, dword ptr [rsp+38H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442428 mov dword ptr [rsp+28H], eax |
|
8B44242C mov eax, dword ptr [rsp+2CH] |
|
69C977CAEB85 imul ecx, ecx, 0xFFFFFFFF85EBCA77 |
|
03C1 add eax, ecx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
8944242C mov dword ptr [rsp+2CH], eax |
|
|
|
G_M18643_IG12: |
|
8B4C243C mov ecx, dword ptr [rsp+3CH] |
|
83C101 add ecx, 1 |
|
0F82EC000000 jb G_M18643_IG19 |
|
894C243C mov dword ptr [rsp+3CH], ecx |
|
8B0D7943EEFF mov ecx, dword ptr [reloc classVar[0x9f0c65d0]] |
|
8B44243C mov eax, dword ptr [rsp+3CH] |
|
83E003 and eax, 3 |
|
85C0 test eax, eax |
|
7509 jne SHORT G_M18643_IG13 |
|
894C2430 mov dword ptr [rsp+30H], ecx |
|
E9B0000000 jmp G_M18643_IG17 |
|
|
|
G_M18643_IG13: |
|
83F801 cmp eax, 1 |
|
7509 jne SHORT G_M18643_IG14 |
|
894C2434 mov dword ptr [rsp+34H], ecx |
|
E9A2000000 jmp G_M18643_IG17 |
|
|
|
G_M18643_IG14: |
|
83F802 cmp eax, 2 |
|
7509 jne SHORT G_M18643_IG15 |
|
894C2438 mov dword ptr [rsp+38H], ecx |
|
E994000000 jmp G_M18643_IG17 |
|
|
|
G_M18643_IG15: |
|
3344243C xor eax, dword ptr [rsp+3CH] |
|
751E jne SHORT G_M18643_IG16 |
|
C744242028442324 mov dword ptr [rsp+20H], 0x24234428 |
|
C744242477CAEB85 mov dword ptr [rsp+24H], 0xFFFFFFFF85EBCA77 |
|
33C0 xor eax, eax |
|
89442428 mov dword ptr [rsp+28H], eax |
|
C744242C4F86C861 mov dword ptr [rsp+2CH], 0x61C8864F |
|
|
|
G_M18643_IG16: |
|
8B442420 mov eax, dword ptr [rsp+20H] |
|
8B542430 mov edx, dword ptr [rsp+30H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442420 mov dword ptr [rsp+20H], eax |
|
8B442424 mov eax, dword ptr [rsp+24H] |
|
8B542434 mov edx, dword ptr [rsp+34H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442424 mov dword ptr [rsp+24H], eax |
|
8B442428 mov eax, dword ptr [rsp+28H] |
|
8B542438 mov edx, dword ptr [rsp+38H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442428 mov dword ptr [rsp+28H], eax |
|
8B44242C mov eax, dword ptr [rsp+2CH] |
|
69C977CAEB85 imul ecx, ecx, 0xFFFFFFFF85EBCA77 |
|
03C1 add eax, ecx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
8944242C mov dword ptr [rsp+2CH], eax |
|
|
|
G_M18643_IG17: |
|
8B4C243C mov ecx, dword ptr [rsp+3CH] |
|
83C101 add ecx, 1 |
|
7215 jb SHORT G_M18643_IG19 |
|
894C243C mov dword ptr [rsp+3CH], ecx |
|
488D4C2420 lea rcx, bword ptr [rsp+20H] |
|
E85EFAFFFF call System.HashCode:ToHashCode():int:this |
|
90 nop |
|
|
|
G_M18643_IG18: |
|
4883C440 add rsp, 64 |
|
5F pop rdi |
|
C3 ret |
|
|
|
G_M18643_IG19: |
|
E8D27AC05E call CORINFO_HELP_OVERFLOW |
|
CC int3 |
|
|
|
; Total bytes of code 719, prolog size 22 for method System.HashCode:Test_3():int |
|
; ============================================================ |
|
; Assembly listing for method System.HashCode:Test_4():int |
|
; Emitting BLENDED_CODE for X64 CPU with AVX |
|
; optimized code |
|
; rsp based frame |
|
; partially interruptible |
|
; Final local variable assignments |
|
; |
|
; V00 loc0 [V00 ] ( 90, 33 ) struct (32) [rsp+0x20] do-not-enreg[XSFB] must-init addr-exposed ld-addr-op |
|
; V01 tmp0 [V01,T16] ( 2, 4 ) int -> rcx |
|
; V02 tmp1 [V02,T24] ( 5, 2 ) int -> rcx |
|
; V03 tmp2 [V03,T20] ( 5, 2.75) int -> rax |
|
; V04 tmp3 [V04,T00] ( 8, 4 ) int -> rax ld-addr-op |
|
; V05 tmp4 [V05,T28] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V06 tmp5 [V06 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V07 tmp6 [V07,T01] ( 8, 4 ) int -> rax ld-addr-op |
|
; V08 tmp7 [V08,T29] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V09 tmp8 [V09 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V10 tmp9 [V10,T02] ( 8, 4 ) int -> rax ld-addr-op |
|
; V11 tmp10 [V11,T30] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V12 tmp11 [V12 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V13 tmp12 [V13,T03] ( 8, 4 ) int -> rax ld-addr-op |
|
;* V14 tmp13 [V14 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V15 tmp14 [V15,T17] ( 2, 4 ) int -> rcx |
|
; V16 tmp15 [V16,T25] ( 5, 2 ) int -> rcx |
|
; V17 tmp16 [V17,T21] ( 5, 2.75) int -> rax |
|
; V18 tmp17 [V18,T04] ( 8, 4 ) int -> rax ld-addr-op |
|
; V19 tmp18 [V19,T31] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V20 tmp19 [V20 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V21 tmp20 [V21,T05] ( 8, 4 ) int -> rax ld-addr-op |
|
; V22 tmp21 [V22,T32] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V23 tmp22 [V23 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V24 tmp23 [V24,T06] ( 8, 4 ) int -> rax ld-addr-op |
|
; V25 tmp24 [V25,T33] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V26 tmp25 [V26 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V27 tmp26 [V27,T07] ( 8, 4 ) int -> rax ld-addr-op |
|
;* V28 tmp27 [V28 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V29 tmp28 [V29,T18] ( 2, 4 ) int -> rcx |
|
; V30 tmp29 [V30,T26] ( 5, 2 ) int -> rcx |
|
; V31 tmp30 [V31,T22] ( 5, 2.75) int -> rax |
|
; V32 tmp31 [V32,T08] ( 8, 4 ) int -> rax ld-addr-op |
|
; V33 tmp32 [V33,T34] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V34 tmp33 [V34 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V35 tmp34 [V35,T09] ( 8, 4 ) int -> rax ld-addr-op |
|
; V36 tmp35 [V36,T35] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V37 tmp36 [V37 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V38 tmp37 [V38,T10] ( 8, 4 ) int -> rax ld-addr-op |
|
; V39 tmp38 [V39,T36] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V40 tmp39 [V40 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V41 tmp40 [V41,T11] ( 8, 4 ) int -> rax ld-addr-op |
|
;* V42 tmp41 [V42 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V43 tmp42 [V43,T19] ( 2, 4 ) int -> rcx |
|
; V44 tmp43 [V44,T27] ( 5, 2 ) int -> rcx |
|
; V45 tmp44 [V45,T23] ( 5, 2.75) int -> rax |
|
; V46 tmp45 [V46,T12] ( 8, 4 ) int -> rax ld-addr-op |
|
; V47 tmp46 [V47,T37] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V48 tmp47 [V48 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V49 tmp48 [V49,T13] ( 8, 4 ) int -> rax ld-addr-op |
|
; V50 tmp49 [V50,T38] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V51 tmp50 [V51 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V52 tmp51 [V52,T14] ( 8, 4 ) int -> rax ld-addr-op |
|
; V53 tmp52 [V53,T39] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V54 tmp53 [V54 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V55 tmp54 [V55,T15] ( 8, 4 ) int -> rax ld-addr-op |
|
;* V56 tmp55 [V56 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V57 OutArgs [V57 ] ( 1, 1 ) lclBlk (32) [rsp+0x00] |
|
; |
|
; Lcl frame size = 64 |
|
|
|
G_M18650_IG01: |
|
57 push rdi |
|
4883EC40 sub rsp, 64 |
|
C5F877 vzeroupper |
|
488D7C2420 lea rdi, [rsp+20H] |
|
B908000000 mov ecx, 8 |
|
33C0 xor rax, rax |
|
F3AB rep stosd |
|
|
|
G_M18650_IG02: |
|
488D4C2420 lea rcx, bword ptr [rsp+20H] |
|
C4E17957C0 vxorpd xmm0, xmm0 |
|
C4E17A7F01 vmovdqu qword ptr [rcx], xmm0 |
|
C4E17A7F4110 vmovdqu qword ptr [rcx+16], xmm0 |
|
8B0D3F42EEFF mov ecx, dword ptr [reloc classVar[0x9f0c65d0]] |
|
8B44243C mov eax, dword ptr [rsp+3CH] |
|
83E003 and eax, 3 |
|
85C0 test eax, eax |
|
7509 jne SHORT G_M18650_IG03 |
|
894C2430 mov dword ptr [rsp+30H], ecx |
|
E9B0000000 jmp G_M18650_IG07 |
|
|
|
G_M18650_IG03: |
|
83F801 cmp eax, 1 |
|
7509 jne SHORT G_M18650_IG04 |
|
894C2434 mov dword ptr [rsp+34H], ecx |
|
E9A2000000 jmp G_M18650_IG07 |
|
|
|
G_M18650_IG04: |
|
83F802 cmp eax, 2 |
|
7509 jne SHORT G_M18650_IG05 |
|
894C2438 mov dword ptr [rsp+38H], ecx |
|
E994000000 jmp G_M18650_IG07 |
|
|
|
G_M18650_IG05: |
|
3344243C xor eax, dword ptr [rsp+3CH] |
|
751E jne SHORT G_M18650_IG06 |
|
C744242028442324 mov dword ptr [rsp+20H], 0x24234428 |
|
C744242477CAEB85 mov dword ptr [rsp+24H], 0xFFFFFFFF85EBCA77 |
|
33C0 xor eax, eax |
|
89442428 mov dword ptr [rsp+28H], eax |
|
C744242C4F86C861 mov dword ptr [rsp+2CH], 0x61C8864F |
|
|
|
G_M18650_IG06: |
|
8B442420 mov eax, dword ptr [rsp+20H] |
|
8B542430 mov edx, dword ptr [rsp+30H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442420 mov dword ptr [rsp+20H], eax |
|
8B442424 mov eax, dword ptr [rsp+24H] |
|
8B542434 mov edx, dword ptr [rsp+34H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442424 mov dword ptr [rsp+24H], eax |
|
8B442428 mov eax, dword ptr [rsp+28H] |
|
8B542438 mov edx, dword ptr [rsp+38H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442428 mov dword ptr [rsp+28H], eax |
|
8B44242C mov eax, dword ptr [rsp+2CH] |
|
69C977CAEB85 imul ecx, ecx, 0xFFFFFFFF85EBCA77 |
|
03C1 add eax, ecx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
8944242C mov dword ptr [rsp+2CH], eax |
|
|
|
G_M18650_IG07: |
|
8B4C243C mov ecx, dword ptr [rsp+3CH] |
|
83C101 add ecx, 1 |
|
0F82A2020000 jb G_M18650_IG24 |
|
894C243C mov dword ptr [rsp+3CH], ecx |
|
8B0D6441EEFF mov ecx, dword ptr [reloc classVar[0x9f0c65d0]] |
|
8B44243C mov eax, dword ptr [rsp+3CH] |
|
83E003 and eax, 3 |
|
85C0 test eax, eax |
|
7509 jne SHORT G_M18650_IG08 |
|
894C2430 mov dword ptr [rsp+30H], ecx |
|
E9B0000000 jmp G_M18650_IG12 |
|
|
|
G_M18650_IG08: |
|
83F801 cmp eax, 1 |
|
7509 jne SHORT G_M18650_IG09 |
|
894C2434 mov dword ptr [rsp+34H], ecx |
|
E9A2000000 jmp G_M18650_IG12 |
|
|
|
G_M18650_IG09: |
|
83F802 cmp eax, 2 |
|
7509 jne SHORT G_M18650_IG10 |
|
894C2438 mov dword ptr [rsp+38H], ecx |
|
E994000000 jmp G_M18650_IG12 |
|
|
|
G_M18650_IG10: |
|
3344243C xor eax, dword ptr [rsp+3CH] |
|
751E jne SHORT G_M18650_IG11 |
|
C744242028442324 mov dword ptr [rsp+20H], 0x24234428 |
|
C744242477CAEB85 mov dword ptr [rsp+24H], 0xFFFFFFFF85EBCA77 |
|
33C0 xor eax, eax |
|
89442428 mov dword ptr [rsp+28H], eax |
|
C744242C4F86C861 mov dword ptr [rsp+2CH], 0x61C8864F |
|
|
|
G_M18650_IG11: |
|
8B442420 mov eax, dword ptr [rsp+20H] |
|
8B542430 mov edx, dword ptr [rsp+30H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442420 mov dword ptr [rsp+20H], eax |
|
8B442424 mov eax, dword ptr [rsp+24H] |
|
8B542434 mov edx, dword ptr [rsp+34H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442424 mov dword ptr [rsp+24H], eax |
|
8B442428 mov eax, dword ptr [rsp+28H] |
|
8B542438 mov edx, dword ptr [rsp+38H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442428 mov dword ptr [rsp+28H], eax |
|
8B44242C mov eax, dword ptr [rsp+2CH] |
|
69C977CAEB85 imul ecx, ecx, 0xFFFFFFFF85EBCA77 |
|
03C1 add eax, ecx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
8944242C mov dword ptr [rsp+2CH], eax |
|
|
|
G_M18650_IG12: |
|
8B4C243C mov ecx, dword ptr [rsp+3CH] |
|
83C101 add ecx, 1 |
|
0F82C7010000 jb G_M18650_IG24 |
|
894C243C mov dword ptr [rsp+3CH], ecx |
|
8B0D8940EEFF mov ecx, dword ptr [reloc classVar[0x9f0c65d0]] |
|
8B44243C mov eax, dword ptr [rsp+3CH] |
|
83E003 and eax, 3 |
|
85C0 test eax, eax |
|
7509 jne SHORT G_M18650_IG13 |
|
894C2430 mov dword ptr [rsp+30H], ecx |
|
E9B0000000 jmp G_M18650_IG17 |
|
|
|
G_M18650_IG13: |
|
83F801 cmp eax, 1 |
|
7509 jne SHORT G_M18650_IG14 |
|
894C2434 mov dword ptr [rsp+34H], ecx |
|
E9A2000000 jmp G_M18650_IG17 |
|
|
|
G_M18650_IG14: |
|
83F802 cmp eax, 2 |
|
7509 jne SHORT G_M18650_IG15 |
|
894C2438 mov dword ptr [rsp+38H], ecx |
|
E994000000 jmp G_M18650_IG17 |
|
|
|
G_M18650_IG15: |
|
3344243C xor eax, dword ptr [rsp+3CH] |
|
751E jne SHORT G_M18650_IG16 |
|
C744242028442324 mov dword ptr [rsp+20H], 0x24234428 |
|
C744242477CAEB85 mov dword ptr [rsp+24H], 0xFFFFFFFF85EBCA77 |
|
33C0 xor eax, eax |
|
89442428 mov dword ptr [rsp+28H], eax |
|
C744242C4F86C861 mov dword ptr [rsp+2CH], 0x61C8864F |
|
|
|
G_M18650_IG16: |
|
8B442420 mov eax, dword ptr [rsp+20H] |
|
8B542430 mov edx, dword ptr [rsp+30H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442420 mov dword ptr [rsp+20H], eax |
|
8B442424 mov eax, dword ptr [rsp+24H] |
|
8B542434 mov edx, dword ptr [rsp+34H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442424 mov dword ptr [rsp+24H], eax |
|
8B442428 mov eax, dword ptr [rsp+28H] |
|
8B542438 mov edx, dword ptr [rsp+38H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442428 mov dword ptr [rsp+28H], eax |
|
8B44242C mov eax, dword ptr [rsp+2CH] |
|
69C977CAEB85 imul ecx, ecx, 0xFFFFFFFF85EBCA77 |
|
03C1 add eax, ecx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
8944242C mov dword ptr [rsp+2CH], eax |
|
|
|
G_M18650_IG17: |
|
8B4C243C mov ecx, dword ptr [rsp+3CH] |
|
83C101 add ecx, 1 |
|
0F82EC000000 jb G_M18650_IG24 |
|
894C243C mov dword ptr [rsp+3CH], ecx |
|
8B0DAE3FEEFF mov ecx, dword ptr [reloc classVar[0x9f0c65d0]] |
|
8B44243C mov eax, dword ptr [rsp+3CH] |
|
83E003 and eax, 3 |
|
85C0 test eax, eax |
|
7509 jne SHORT G_M18650_IG18 |
|
894C2430 mov dword ptr [rsp+30H], ecx |
|
E9B0000000 jmp G_M18650_IG22 |
|
|
|
G_M18650_IG18: |
|
83F801 cmp eax, 1 |
|
7509 jne SHORT G_M18650_IG19 |
|
894C2434 mov dword ptr [rsp+34H], ecx |
|
E9A2000000 jmp G_M18650_IG22 |
|
|
|
G_M18650_IG19: |
|
83F802 cmp eax, 2 |
|
7509 jne SHORT G_M18650_IG20 |
|
894C2438 mov dword ptr [rsp+38H], ecx |
|
E994000000 jmp G_M18650_IG22 |
|
|
|
G_M18650_IG20: |
|
3344243C xor eax, dword ptr [rsp+3CH] |
|
751E jne SHORT G_M18650_IG21 |
|
C744242028442324 mov dword ptr [rsp+20H], 0x24234428 |
|
C744242477CAEB85 mov dword ptr [rsp+24H], 0xFFFFFFFF85EBCA77 |
|
33C0 xor eax, eax |
|
89442428 mov dword ptr [rsp+28H], eax |
|
C744242C4F86C861 mov dword ptr [rsp+2CH], 0x61C8864F |
|
|
|
G_M18650_IG21: |
|
8B442420 mov eax, dword ptr [rsp+20H] |
|
8B542430 mov edx, dword ptr [rsp+30H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442420 mov dword ptr [rsp+20H], eax |
|
8B442424 mov eax, dword ptr [rsp+24H] |
|
8B542434 mov edx, dword ptr [rsp+34H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442424 mov dword ptr [rsp+24H], eax |
|
8B442428 mov eax, dword ptr [rsp+28H] |
|
8B542438 mov edx, dword ptr [rsp+38H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442428 mov dword ptr [rsp+28H], eax |
|
8B44242C mov eax, dword ptr [rsp+2CH] |
|
69C977CAEB85 imul ecx, ecx, 0xFFFFFFFF85EBCA77 |
|
03C1 add eax, ecx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
8944242C mov dword ptr [rsp+2CH], eax |
|
|
|
G_M18650_IG22: |
|
8B4C243C mov ecx, dword ptr [rsp+3CH] |
|
83C101 add ecx, 1 |
|
7215 jb SHORT G_M18650_IG24 |
|
894C243C mov dword ptr [rsp+3CH], ecx |
|
488D4C2420 lea rcx, bword ptr [rsp+20H] |
|
E893F6FFFF call System.HashCode:ToHashCode():int:this |
|
90 nop |
|
|
|
G_M18650_IG23: |
|
4883C440 add rsp, 64 |
|
5F pop rdi |
|
C3 ret |
|
|
|
G_M18650_IG24: |
|
E80777C05E call CORINFO_HELP_OVERFLOW |
|
CC int3 |
|
|
|
; Total bytes of code 938, prolog size 22 for method System.HashCode:Test_4():int |
|
; ============================================================ |
|
; Assembly listing for method System.HashCode:Test_5():int |
|
; Emitting BLENDED_CODE for X64 CPU with AVX |
|
; optimized code |
|
; rsp based frame |
|
; partially interruptible |
|
; Final local variable assignments |
|
; |
|
; V00 loc0 [V00 ] (112, 40.75) struct (32) [rsp+0x20] do-not-enreg[XSFB] must-init addr-exposed ld-addr-op |
|
; V01 tmp0 [V01,T20] ( 2, 4 ) int -> rcx |
|
; V02 tmp1 [V02,T30] ( 5, 2 ) int -> rcx |
|
; V03 tmp2 [V03,T25] ( 5, 2.75) int -> rax |
|
; V04 tmp3 [V04,T00] ( 8, 4 ) int -> rax ld-addr-op |
|
; V05 tmp4 [V05,T35] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V06 tmp5 [V06 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V07 tmp6 [V07,T01] ( 8, 4 ) int -> rax ld-addr-op |
|
; V08 tmp7 [V08,T36] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V09 tmp8 [V09 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V10 tmp9 [V10,T02] ( 8, 4 ) int -> rax ld-addr-op |
|
; V11 tmp10 [V11,T37] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V12 tmp11 [V12 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V13 tmp12 [V13,T03] ( 8, 4 ) int -> rax ld-addr-op |
|
;* V14 tmp13 [V14 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V15 tmp14 [V15,T21] ( 2, 4 ) int -> rcx |
|
; V16 tmp15 [V16,T31] ( 5, 2 ) int -> rcx |
|
; V17 tmp16 [V17,T26] ( 5, 2.75) int -> rax |
|
; V18 tmp17 [V18,T04] ( 8, 4 ) int -> rax ld-addr-op |
|
; V19 tmp18 [V19,T38] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V20 tmp19 [V20 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V21 tmp20 [V21,T05] ( 8, 4 ) int -> rax ld-addr-op |
|
; V22 tmp21 [V22,T39] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V23 tmp22 [V23 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V24 tmp23 [V24,T06] ( 8, 4 ) int -> rax ld-addr-op |
|
; V25 tmp24 [V25,T40] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V26 tmp25 [V26 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V27 tmp26 [V27,T07] ( 8, 4 ) int -> rax ld-addr-op |
|
;* V28 tmp27 [V28 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V29 tmp28 [V29,T22] ( 2, 4 ) int -> rcx |
|
; V30 tmp29 [V30,T32] ( 5, 2 ) int -> rcx |
|
; V31 tmp30 [V31,T27] ( 5, 2.75) int -> rax |
|
; V32 tmp31 [V32,T08] ( 8, 4 ) int -> rax ld-addr-op |
|
; V33 tmp32 [V33,T41] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V34 tmp33 [V34 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V35 tmp34 [V35,T09] ( 8, 4 ) int -> rax ld-addr-op |
|
; V36 tmp35 [V36,T42] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V37 tmp36 [V37 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V38 tmp37 [V38,T10] ( 8, 4 ) int -> rax ld-addr-op |
|
; V39 tmp38 [V39,T43] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V40 tmp39 [V40 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V41 tmp40 [V41,T11] ( 8, 4 ) int -> rax ld-addr-op |
|
;* V42 tmp41 [V42 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V43 tmp42 [V43,T23] ( 2, 4 ) int -> rcx |
|
; V44 tmp43 [V44,T33] ( 5, 2 ) int -> rcx |
|
; V45 tmp44 [V45,T28] ( 5, 2.75) int -> rax |
|
; V46 tmp45 [V46,T12] ( 8, 4 ) int -> rax ld-addr-op |
|
; V47 tmp46 [V47,T44] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V48 tmp47 [V48 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V49 tmp48 [V49,T13] ( 8, 4 ) int -> rax ld-addr-op |
|
; V50 tmp49 [V50,T45] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V51 tmp50 [V51 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V52 tmp51 [V52,T14] ( 8, 4 ) int -> rax ld-addr-op |
|
; V53 tmp52 [V53,T46] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V54 tmp53 [V54 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V55 tmp54 [V55,T15] ( 8, 4 ) int -> rax ld-addr-op |
|
;* V56 tmp55 [V56 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V57 tmp56 [V57,T24] ( 2, 4 ) int -> rcx |
|
; V58 tmp57 [V58,T34] ( 5, 2 ) int -> rcx |
|
; V59 tmp58 [V59,T29] ( 5, 2.75) int -> rax |
|
; V60 tmp59 [V60,T16] ( 8, 4 ) int -> rax ld-addr-op |
|
; V61 tmp60 [V61,T47] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V62 tmp61 [V62 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V63 tmp62 [V63,T17] ( 8, 4 ) int -> rax ld-addr-op |
|
; V64 tmp63 [V64,T48] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V65 tmp64 [V65 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V66 tmp65 [V66,T18] ( 8, 4 ) int -> rax ld-addr-op |
|
; V67 tmp66 [V67,T49] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V68 tmp67 [V68 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V69 tmp68 [V69,T19] ( 8, 4 ) int -> rax ld-addr-op |
|
;* V70 tmp69 [V70 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V71 OutArgs [V71 ] ( 1, 1 ) lclBlk (32) [rsp+0x00] |
|
; |
|
; Lcl frame size = 64 |
|
|
|
G_M18661_IG01: |
|
57 push rdi |
|
4883EC40 sub rsp, 64 |
|
C5F877 vzeroupper |
|
488D7C2420 lea rdi, [rsp+20H] |
|
B908000000 mov ecx, 8 |
|
33C0 xor rax, rax |
|
F3AB rep stosd |
|
|
|
G_M18661_IG02: |
|
488D4C2420 lea rcx, bword ptr [rsp+20H] |
|
C4E17957C0 vxorpd xmm0, xmm0 |
|
C4E17A7F01 vmovdqu qword ptr [rcx], xmm0 |
|
C4E17A7F4110 vmovdqu qword ptr [rcx+16], xmm0 |
|
8B0D7F3EEEFF mov ecx, dword ptr [reloc classVar[0x9f0c65d0]] |
|
8B44243C mov eax, dword ptr [rsp+3CH] |
|
83E003 and eax, 3 |
|
85C0 test eax, eax |
|
7509 jne SHORT G_M18661_IG03 |
|
894C2430 mov dword ptr [rsp+30H], ecx |
|
E9B0000000 jmp G_M18661_IG07 |
|
|
|
G_M18661_IG03: |
|
83F801 cmp eax, 1 |
|
7509 jne SHORT G_M18661_IG04 |
|
894C2434 mov dword ptr [rsp+34H], ecx |
|
E9A2000000 jmp G_M18661_IG07 |
|
|
|
G_M18661_IG04: |
|
83F802 cmp eax, 2 |
|
7509 jne SHORT G_M18661_IG05 |
|
894C2438 mov dword ptr [rsp+38H], ecx |
|
E994000000 jmp G_M18661_IG07 |
|
|
|
G_M18661_IG05: |
|
3344243C xor eax, dword ptr [rsp+3CH] |
|
751E jne SHORT G_M18661_IG06 |
|
C744242028442324 mov dword ptr [rsp+20H], 0x24234428 |
|
C744242477CAEB85 mov dword ptr [rsp+24H], 0xFFFFFFFF85EBCA77 |
|
33C0 xor eax, eax |
|
89442428 mov dword ptr [rsp+28H], eax |
|
C744242C4F86C861 mov dword ptr [rsp+2CH], 0x61C8864F |
|
|
|
G_M18661_IG06: |
|
8B442420 mov eax, dword ptr [rsp+20H] |
|
8B542430 mov edx, dword ptr [rsp+30H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442420 mov dword ptr [rsp+20H], eax |
|
8B442424 mov eax, dword ptr [rsp+24H] |
|
8B542434 mov edx, dword ptr [rsp+34H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442424 mov dword ptr [rsp+24H], eax |
|
8B442428 mov eax, dword ptr [rsp+28H] |
|
8B542438 mov edx, dword ptr [rsp+38H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442428 mov dword ptr [rsp+28H], eax |
|
8B44242C mov eax, dword ptr [rsp+2CH] |
|
69C977CAEB85 imul ecx, ecx, 0xFFFFFFFF85EBCA77 |
|
03C1 add eax, ecx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
8944242C mov dword ptr [rsp+2CH], eax |
|
|
|
G_M18661_IG07: |
|
8B4C243C mov ecx, dword ptr [rsp+3CH] |
|
83C101 add ecx, 1 |
|
0F827D030000 jb G_M18661_IG29 |
|
894C243C mov dword ptr [rsp+3CH], ecx |
|
8B0DA43DEEFF mov ecx, dword ptr [reloc classVar[0x9f0c65d0]] |
|
8B44243C mov eax, dword ptr [rsp+3CH] |
|
83E003 and eax, 3 |
|
85C0 test eax, eax |
|
7509 jne SHORT G_M18661_IG08 |
|
894C2430 mov dword ptr [rsp+30H], ecx |
|
E9B0000000 jmp G_M18661_IG12 |
|
|
|
G_M18661_IG08: |
|
83F801 cmp eax, 1 |
|
7509 jne SHORT G_M18661_IG09 |
|
894C2434 mov dword ptr [rsp+34H], ecx |
|
E9A2000000 jmp G_M18661_IG12 |
|
|
|
G_M18661_IG09: |
|
83F802 cmp eax, 2 |
|
7509 jne SHORT G_M18661_IG10 |
|
894C2438 mov dword ptr [rsp+38H], ecx |
|
E994000000 jmp G_M18661_IG12 |
|
|
|
G_M18661_IG10: |
|
3344243C xor eax, dword ptr [rsp+3CH] |
|
751E jne SHORT G_M18661_IG11 |
|
C744242028442324 mov dword ptr [rsp+20H], 0x24234428 |
|
C744242477CAEB85 mov dword ptr [rsp+24H], 0xFFFFFFFF85EBCA77 |
|
33C0 xor eax, eax |
|
89442428 mov dword ptr [rsp+28H], eax |
|
C744242C4F86C861 mov dword ptr [rsp+2CH], 0x61C8864F |
|
|
|
G_M18661_IG11: |
|
8B442420 mov eax, dword ptr [rsp+20H] |
|
8B542430 mov edx, dword ptr [rsp+30H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442420 mov dword ptr [rsp+20H], eax |
|
8B442424 mov eax, dword ptr [rsp+24H] |
|
8B542434 mov edx, dword ptr [rsp+34H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442424 mov dword ptr [rsp+24H], eax |
|
8B442428 mov eax, dword ptr [rsp+28H] |
|
8B542438 mov edx, dword ptr [rsp+38H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442428 mov dword ptr [rsp+28H], eax |
|
8B44242C mov eax, dword ptr [rsp+2CH] |
|
69C977CAEB85 imul ecx, ecx, 0xFFFFFFFF85EBCA77 |
|
03C1 add eax, ecx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
8944242C mov dword ptr [rsp+2CH], eax |
|
|
|
G_M18661_IG12: |
|
8B4C243C mov ecx, dword ptr [rsp+3CH] |
|
83C101 add ecx, 1 |
|
0F82A2020000 jb G_M18661_IG29 |
|
894C243C mov dword ptr [rsp+3CH], ecx |
|
8B0DC93CEEFF mov ecx, dword ptr [reloc classVar[0x9f0c65d0]] |
|
8B44243C mov eax, dword ptr [rsp+3CH] |
|
83E003 and eax, 3 |
|
85C0 test eax, eax |
|
7509 jne SHORT G_M18661_IG13 |
|
894C2430 mov dword ptr [rsp+30H], ecx |
|
E9B0000000 jmp G_M18661_IG17 |
|
|
|
G_M18661_IG13: |
|
83F801 cmp eax, 1 |
|
7509 jne SHORT G_M18661_IG14 |
|
894C2434 mov dword ptr [rsp+34H], ecx |
|
E9A2000000 jmp G_M18661_IG17 |
|
|
|
G_M18661_IG14: |
|
83F802 cmp eax, 2 |
|
7509 jne SHORT G_M18661_IG15 |
|
894C2438 mov dword ptr [rsp+38H], ecx |
|
E994000000 jmp G_M18661_IG17 |
|
|
|
G_M18661_IG15: |
|
3344243C xor eax, dword ptr [rsp+3CH] |
|
751E jne SHORT G_M18661_IG16 |
|
C744242028442324 mov dword ptr [rsp+20H], 0x24234428 |
|
C744242477CAEB85 mov dword ptr [rsp+24H], 0xFFFFFFFF85EBCA77 |
|
33C0 xor eax, eax |
|
89442428 mov dword ptr [rsp+28H], eax |
|
C744242C4F86C861 mov dword ptr [rsp+2CH], 0x61C8864F |
|
|
|
G_M18661_IG16: |
|
8B442420 mov eax, dword ptr [rsp+20H] |
|
8B542430 mov edx, dword ptr [rsp+30H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442420 mov dword ptr [rsp+20H], eax |
|
8B442424 mov eax, dword ptr [rsp+24H] |
|
8B542434 mov edx, dword ptr [rsp+34H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442424 mov dword ptr [rsp+24H], eax |
|
8B442428 mov eax, dword ptr [rsp+28H] |
|
8B542438 mov edx, dword ptr [rsp+38H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442428 mov dword ptr [rsp+28H], eax |
|
8B44242C mov eax, dword ptr [rsp+2CH] |
|
69C977CAEB85 imul ecx, ecx, 0xFFFFFFFF85EBCA77 |
|
03C1 add eax, ecx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
8944242C mov dword ptr [rsp+2CH], eax |
|
|
|
G_M18661_IG17: |
|
8B4C243C mov ecx, dword ptr [rsp+3CH] |
|
83C101 add ecx, 1 |
|
0F82C7010000 jb G_M18661_IG29 |
|
894C243C mov dword ptr [rsp+3CH], ecx |
|
8B0DEE3BEEFF mov ecx, dword ptr [reloc classVar[0x9f0c65d0]] |
|
8B44243C mov eax, dword ptr [rsp+3CH] |
|
83E003 and eax, 3 |
|
85C0 test eax, eax |
|
7509 jne SHORT G_M18661_IG18 |
|
894C2430 mov dword ptr [rsp+30H], ecx |
|
E9B0000000 jmp G_M18661_IG22 |
|
|
|
G_M18661_IG18: |
|
83F801 cmp eax, 1 |
|
7509 jne SHORT G_M18661_IG19 |
|
894C2434 mov dword ptr [rsp+34H], ecx |
|
E9A2000000 jmp G_M18661_IG22 |
|
|
|
G_M18661_IG19: |
|
83F802 cmp eax, 2 |
|
7509 jne SHORT G_M18661_IG20 |
|
894C2438 mov dword ptr [rsp+38H], ecx |
|
E994000000 jmp G_M18661_IG22 |
|
|
|
G_M18661_IG20: |
|
3344243C xor eax, dword ptr [rsp+3CH] |
|
751E jne SHORT G_M18661_IG21 |
|
C744242028442324 mov dword ptr [rsp+20H], 0x24234428 |
|
C744242477CAEB85 mov dword ptr [rsp+24H], 0xFFFFFFFF85EBCA77 |
|
33C0 xor eax, eax |
|
89442428 mov dword ptr [rsp+28H], eax |
|
C744242C4F86C861 mov dword ptr [rsp+2CH], 0x61C8864F |
|
|
|
G_M18661_IG21: |
|
8B442420 mov eax, dword ptr [rsp+20H] |
|
8B542430 mov edx, dword ptr [rsp+30H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442420 mov dword ptr [rsp+20H], eax |
|
8B442424 mov eax, dword ptr [rsp+24H] |
|
8B542434 mov edx, dword ptr [rsp+34H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442424 mov dword ptr [rsp+24H], eax |
|
8B442428 mov eax, dword ptr [rsp+28H] |
|
8B542438 mov edx, dword ptr [rsp+38H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442428 mov dword ptr [rsp+28H], eax |
|
8B44242C mov eax, dword ptr [rsp+2CH] |
|
69C977CAEB85 imul ecx, ecx, 0xFFFFFFFF85EBCA77 |
|
03C1 add eax, ecx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
8944242C mov dword ptr [rsp+2CH], eax |
|
|
|
G_M18661_IG22: |
|
8B4C243C mov ecx, dword ptr [rsp+3CH] |
|
83C101 add ecx, 1 |
|
0F82EC000000 jb G_M18661_IG29 |
|
894C243C mov dword ptr [rsp+3CH], ecx |
|
8B0D133BEEFF mov ecx, dword ptr [reloc classVar[0x9f0c65d0]] |
|
8B44243C mov eax, dword ptr [rsp+3CH] |
|
83E003 and eax, 3 |
|
85C0 test eax, eax |
|
7509 jne SHORT G_M18661_IG23 |
|
894C2430 mov dword ptr [rsp+30H], ecx |
|
E9B0000000 jmp G_M18661_IG27 |
|
|
|
G_M18661_IG23: |
|
83F801 cmp eax, 1 |
|
7509 jne SHORT G_M18661_IG24 |
|
894C2434 mov dword ptr [rsp+34H], ecx |
|
E9A2000000 jmp G_M18661_IG27 |
|
|
|
G_M18661_IG24: |
|
83F802 cmp eax, 2 |
|
7509 jne SHORT G_M18661_IG25 |
|
894C2438 mov dword ptr [rsp+38H], ecx |
|
E994000000 jmp G_M18661_IG27 |
|
|
|
G_M18661_IG25: |
|
3344243C xor eax, dword ptr [rsp+3CH] |
|
751E jne SHORT G_M18661_IG26 |
|
C744242028442324 mov dword ptr [rsp+20H], 0x24234428 |
|
C744242477CAEB85 mov dword ptr [rsp+24H], 0xFFFFFFFF85EBCA77 |
|
33C0 xor eax, eax |
|
89442428 mov dword ptr [rsp+28H], eax |
|
C744242C4F86C861 mov dword ptr [rsp+2CH], 0x61C8864F |
|
|
|
G_M18661_IG26: |
|
8B442420 mov eax, dword ptr [rsp+20H] |
|
8B542430 mov edx, dword ptr [rsp+30H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442420 mov dword ptr [rsp+20H], eax |
|
8B442424 mov eax, dword ptr [rsp+24H] |
|
8B542434 mov edx, dword ptr [rsp+34H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442424 mov dword ptr [rsp+24H], eax |
|
8B442428 mov eax, dword ptr [rsp+28H] |
|
8B542438 mov edx, dword ptr [rsp+38H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442428 mov dword ptr [rsp+28H], eax |
|
8B44242C mov eax, dword ptr [rsp+2CH] |
|
69C977CAEB85 imul ecx, ecx, 0xFFFFFFFF85EBCA77 |
|
03C1 add eax, ecx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
8944242C mov dword ptr [rsp+2CH], eax |
|
|
|
G_M18661_IG27: |
|
8B4C243C mov ecx, dword ptr [rsp+3CH] |
|
83C101 add ecx, 1 |
|
7215 jb SHORT G_M18661_IG29 |
|
894C243C mov dword ptr [rsp+3CH], ecx |
|
488D4C2420 lea rcx, bword ptr [rsp+20H] |
|
E8F8F1FFFF call System.HashCode:ToHashCode():int:this |
|
90 nop |
|
|
|
G_M18661_IG28: |
|
4883C440 add rsp, 64 |
|
5F pop rdi |
|
C3 ret |
|
|
|
G_M18661_IG29: |
|
E86C72C05E call CORINFO_HELP_OVERFLOW |
|
CC int3 |
|
|
|
; Total bytes of code 1157, prolog size 22 for method System.HashCode:Test_5():int |
|
; ============================================================ |
|
; Assembly listing for method System.HashCode:Test_6():int |
|
; Emitting BLENDED_CODE for X64 CPU with AVX |
|
; optimized code |
|
; rsp based frame |
|
; partially interruptible |
|
; Final local variable assignments |
|
; |
|
; V00 loc0 [V00 ] (134, 48.50) struct (32) [rsp+0x20] do-not-enreg[XSFB] must-init addr-exposed ld-addr-op |
|
; V01 tmp0 [V01,T24] ( 2, 4 ) int -> rcx |
|
; V02 tmp1 [V02,T36] ( 5, 2 ) int -> rcx |
|
; V03 tmp2 [V03,T30] ( 5, 2.75) int -> rax |
|
; V04 tmp3 [V04,T00] ( 8, 4 ) int -> rax ld-addr-op |
|
; V05 tmp4 [V05,T42] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V06 tmp5 [V06 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V07 tmp6 [V07,T01] ( 8, 4 ) int -> rax ld-addr-op |
|
; V08 tmp7 [V08,T43] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V09 tmp8 [V09 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V10 tmp9 [V10,T02] ( 8, 4 ) int -> rax ld-addr-op |
|
; V11 tmp10 [V11,T44] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V12 tmp11 [V12 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V13 tmp12 [V13,T03] ( 8, 4 ) int -> rax ld-addr-op |
|
;* V14 tmp13 [V14 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V15 tmp14 [V15,T25] ( 2, 4 ) int -> rcx |
|
; V16 tmp15 [V16,T37] ( 5, 2 ) int -> rcx |
|
; V17 tmp16 [V17,T31] ( 5, 2.75) int -> rax |
|
; V18 tmp17 [V18,T04] ( 8, 4 ) int -> rax ld-addr-op |
|
; V19 tmp18 [V19,T45] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V20 tmp19 [V20 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V21 tmp20 [V21,T05] ( 8, 4 ) int -> rax ld-addr-op |
|
; V22 tmp21 [V22,T46] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V23 tmp22 [V23 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V24 tmp23 [V24,T06] ( 8, 4 ) int -> rax ld-addr-op |
|
; V25 tmp24 [V25,T47] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V26 tmp25 [V26 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V27 tmp26 [V27,T07] ( 8, 4 ) int -> rax ld-addr-op |
|
;* V28 tmp27 [V28 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V29 tmp28 [V29,T26] ( 2, 4 ) int -> rcx |
|
; V30 tmp29 [V30,T38] ( 5, 2 ) int -> rcx |
|
; V31 tmp30 [V31,T32] ( 5, 2.75) int -> rax |
|
; V32 tmp31 [V32,T08] ( 8, 4 ) int -> rax ld-addr-op |
|
; V33 tmp32 [V33,T48] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V34 tmp33 [V34 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V35 tmp34 [V35,T09] ( 8, 4 ) int -> rax ld-addr-op |
|
; V36 tmp35 [V36,T49] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V37 tmp36 [V37 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V38 tmp37 [V38,T10] ( 8, 4 ) int -> rax ld-addr-op |
|
; V39 tmp38 [V39,T50] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V40 tmp39 [V40 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V41 tmp40 [V41,T11] ( 8, 4 ) int -> rax ld-addr-op |
|
;* V42 tmp41 [V42 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V43 tmp42 [V43,T27] ( 2, 4 ) int -> rcx |
|
; V44 tmp43 [V44,T39] ( 5, 2 ) int -> rcx |
|
; V45 tmp44 [V45,T33] ( 5, 2.75) int -> rax |
|
; V46 tmp45 [V46,T12] ( 8, 4 ) int -> rax ld-addr-op |
|
; V47 tmp46 [V47,T51] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V48 tmp47 [V48 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V49 tmp48 [V49,T13] ( 8, 4 ) int -> rax ld-addr-op |
|
; V50 tmp49 [V50,T52] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V51 tmp50 [V51 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V52 tmp51 [V52,T14] ( 8, 4 ) int -> rax ld-addr-op |
|
; V53 tmp52 [V53,T53] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V54 tmp53 [V54 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V55 tmp54 [V55,T15] ( 8, 4 ) int -> rax ld-addr-op |
|
;* V56 tmp55 [V56 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V57 tmp56 [V57,T28] ( 2, 4 ) int -> rcx |
|
; V58 tmp57 [V58,T40] ( 5, 2 ) int -> rcx |
|
; V59 tmp58 [V59,T34] ( 5, 2.75) int -> rax |
|
; V60 tmp59 [V60,T16] ( 8, 4 ) int -> rax ld-addr-op |
|
; V61 tmp60 [V61,T54] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V62 tmp61 [V62 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V63 tmp62 [V63,T17] ( 8, 4 ) int -> rax ld-addr-op |
|
; V64 tmp63 [V64,T55] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V65 tmp64 [V65 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V66 tmp65 [V66,T18] ( 8, 4 ) int -> rax ld-addr-op |
|
; V67 tmp66 [V67,T56] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V68 tmp67 [V68 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V69 tmp68 [V69,T19] ( 8, 4 ) int -> rax ld-addr-op |
|
;* V70 tmp69 [V70 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V71 tmp70 [V71,T29] ( 2, 4 ) int -> rcx |
|
; V72 tmp71 [V72,T41] ( 5, 2 ) int -> rcx |
|
; V73 tmp72 [V73,T35] ( 5, 2.75) int -> rax |
|
; V74 tmp73 [V74,T20] ( 8, 4 ) int -> rax ld-addr-op |
|
; V75 tmp74 [V75,T57] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V76 tmp75 [V76 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V77 tmp76 [V77,T21] ( 8, 4 ) int -> rax ld-addr-op |
|
; V78 tmp77 [V78,T58] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V79 tmp78 [V79 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V80 tmp79 [V80,T22] ( 8, 4 ) int -> rax ld-addr-op |
|
; V81 tmp80 [V81,T59] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V82 tmp81 [V82 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V83 tmp82 [V83,T23] ( 8, 4 ) int -> rax ld-addr-op |
|
;* V84 tmp83 [V84 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V85 OutArgs [V85 ] ( 1, 1 ) lclBlk (32) [rsp+0x00] |
|
; |
|
; Lcl frame size = 64 |
|
|
|
G_M18668_IG01: |
|
57 push rdi |
|
4883EC40 sub rsp, 64 |
|
C5F877 vzeroupper |
|
488D7C2420 lea rdi, [rsp+20H] |
|
B908000000 mov ecx, 8 |
|
33C0 xor rax, rax |
|
F3AB rep stosd |
|
|
|
G_M18668_IG02: |
|
488D4C2420 lea rcx, bword ptr [rsp+20H] |
|
C4E17957C0 vxorpd xmm0, xmm0 |
|
C4E17A7F01 vmovdqu qword ptr [rcx], xmm0 |
|
C4E17A7F4110 vmovdqu qword ptr [rcx+16], xmm0 |
|
8B0DDF39EEFF mov ecx, dword ptr [reloc classVar[0x9f0c65d0]] |
|
8B44243C mov eax, dword ptr [rsp+3CH] |
|
83E003 and eax, 3 |
|
85C0 test eax, eax |
|
7509 jne SHORT G_M18668_IG03 |
|
894C2430 mov dword ptr [rsp+30H], ecx |
|
E9B0000000 jmp G_M18668_IG07 |
|
|
|
G_M18668_IG03: |
|
83F801 cmp eax, 1 |
|
7509 jne SHORT G_M18668_IG04 |
|
894C2434 mov dword ptr [rsp+34H], ecx |
|
E9A2000000 jmp G_M18668_IG07 |
|
|
|
G_M18668_IG04: |
|
83F802 cmp eax, 2 |
|
7509 jne SHORT G_M18668_IG05 |
|
894C2438 mov dword ptr [rsp+38H], ecx |
|
E994000000 jmp G_M18668_IG07 |
|
|
|
G_M18668_IG05: |
|
3344243C xor eax, dword ptr [rsp+3CH] |
|
751E jne SHORT G_M18668_IG06 |
|
C744242028442324 mov dword ptr [rsp+20H], 0x24234428 |
|
C744242477CAEB85 mov dword ptr [rsp+24H], 0xFFFFFFFF85EBCA77 |
|
33C0 xor eax, eax |
|
89442428 mov dword ptr [rsp+28H], eax |
|
C744242C4F86C861 mov dword ptr [rsp+2CH], 0x61C8864F |
|
|
|
G_M18668_IG06: |
|
8B442420 mov eax, dword ptr [rsp+20H] |
|
8B542430 mov edx, dword ptr [rsp+30H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442420 mov dword ptr [rsp+20H], eax |
|
8B442424 mov eax, dword ptr [rsp+24H] |
|
8B542434 mov edx, dword ptr [rsp+34H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442424 mov dword ptr [rsp+24H], eax |
|
8B442428 mov eax, dword ptr [rsp+28H] |
|
8B542438 mov edx, dword ptr [rsp+38H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442428 mov dword ptr [rsp+28H], eax |
|
8B44242C mov eax, dword ptr [rsp+2CH] |
|
69C977CAEB85 imul ecx, ecx, 0xFFFFFFFF85EBCA77 |
|
03C1 add eax, ecx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
8944242C mov dword ptr [rsp+2CH], eax |
|
|
|
G_M18668_IG07: |
|
8B4C243C mov ecx, dword ptr [rsp+3CH] |
|
83C101 add ecx, 1 |
|
0F8258040000 jb G_M18668_IG34 |
|
894C243C mov dword ptr [rsp+3CH], ecx |
|
8B0D0439EEFF mov ecx, dword ptr [reloc classVar[0x9f0c65d0]] |
|
8B44243C mov eax, dword ptr [rsp+3CH] |
|
83E003 and eax, 3 |
|
85C0 test eax, eax |
|
7509 jne SHORT G_M18668_IG08 |
|
894C2430 mov dword ptr [rsp+30H], ecx |
|
E9B0000000 jmp G_M18668_IG12 |
|
|
|
G_M18668_IG08: |
|
83F801 cmp eax, 1 |
|
7509 jne SHORT G_M18668_IG09 |
|
894C2434 mov dword ptr [rsp+34H], ecx |
|
E9A2000000 jmp G_M18668_IG12 |
|
|
|
G_M18668_IG09: |
|
83F802 cmp eax, 2 |
|
7509 jne SHORT G_M18668_IG10 |
|
894C2438 mov dword ptr [rsp+38H], ecx |
|
E994000000 jmp G_M18668_IG12 |
|
|
|
G_M18668_IG10: |
|
3344243C xor eax, dword ptr [rsp+3CH] |
|
751E jne SHORT G_M18668_IG11 |
|
C744242028442324 mov dword ptr [rsp+20H], 0x24234428 |
|
C744242477CAEB85 mov dword ptr [rsp+24H], 0xFFFFFFFF85EBCA77 |
|
33C0 xor eax, eax |
|
89442428 mov dword ptr [rsp+28H], eax |
|
C744242C4F86C861 mov dword ptr [rsp+2CH], 0x61C8864F |
|
|
|
G_M18668_IG11: |
|
8B442420 mov eax, dword ptr [rsp+20H] |
|
8B542430 mov edx, dword ptr [rsp+30H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442420 mov dword ptr [rsp+20H], eax |
|
8B442424 mov eax, dword ptr [rsp+24H] |
|
8B542434 mov edx, dword ptr [rsp+34H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442424 mov dword ptr [rsp+24H], eax |
|
8B442428 mov eax, dword ptr [rsp+28H] |
|
8B542438 mov edx, dword ptr [rsp+38H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442428 mov dword ptr [rsp+28H], eax |
|
8B44242C mov eax, dword ptr [rsp+2CH] |
|
69C977CAEB85 imul ecx, ecx, 0xFFFFFFFF85EBCA77 |
|
03C1 add eax, ecx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
8944242C mov dword ptr [rsp+2CH], eax |
|
|
|
G_M18668_IG12: |
|
8B4C243C mov ecx, dword ptr [rsp+3CH] |
|
83C101 add ecx, 1 |
|
0F827D030000 jb G_M18668_IG34 |
|
894C243C mov dword ptr [rsp+3CH], ecx |
|
8B0D2938EEFF mov ecx, dword ptr [reloc classVar[0x9f0c65d0]] |
|
8B44243C mov eax, dword ptr [rsp+3CH] |
|
83E003 and eax, 3 |
|
85C0 test eax, eax |
|
7509 jne SHORT G_M18668_IG13 |
|
894C2430 mov dword ptr [rsp+30H], ecx |
|
E9B0000000 jmp G_M18668_IG17 |
|
|
|
G_M18668_IG13: |
|
83F801 cmp eax, 1 |
|
7509 jne SHORT G_M18668_IG14 |
|
894C2434 mov dword ptr [rsp+34H], ecx |
|
E9A2000000 jmp G_M18668_IG17 |
|
|
|
G_M18668_IG14: |
|
83F802 cmp eax, 2 |
|
7509 jne SHORT G_M18668_IG15 |
|
894C2438 mov dword ptr [rsp+38H], ecx |
|
E994000000 jmp G_M18668_IG17 |
|
|
|
G_M18668_IG15: |
|
3344243C xor eax, dword ptr [rsp+3CH] |
|
751E jne SHORT G_M18668_IG16 |
|
C744242028442324 mov dword ptr [rsp+20H], 0x24234428 |
|
C744242477CAEB85 mov dword ptr [rsp+24H], 0xFFFFFFFF85EBCA77 |
|
33C0 xor eax, eax |
|
89442428 mov dword ptr [rsp+28H], eax |
|
C744242C4F86C861 mov dword ptr [rsp+2CH], 0x61C8864F |
|
|
|
G_M18668_IG16: |
|
8B442420 mov eax, dword ptr [rsp+20H] |
|
8B542430 mov edx, dword ptr [rsp+30H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442420 mov dword ptr [rsp+20H], eax |
|
8B442424 mov eax, dword ptr [rsp+24H] |
|
8B542434 mov edx, dword ptr [rsp+34H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442424 mov dword ptr [rsp+24H], eax |
|
8B442428 mov eax, dword ptr [rsp+28H] |
|
8B542438 mov edx, dword ptr [rsp+38H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442428 mov dword ptr [rsp+28H], eax |
|
8B44242C mov eax, dword ptr [rsp+2CH] |
|
69C977CAEB85 imul ecx, ecx, 0xFFFFFFFF85EBCA77 |
|
03C1 add eax, ecx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
8944242C mov dword ptr [rsp+2CH], eax |
|
|
|
G_M18668_IG17: |
|
8B4C243C mov ecx, dword ptr [rsp+3CH] |
|
83C101 add ecx, 1 |
|
0F82A2020000 jb G_M18668_IG34 |
|
894C243C mov dword ptr [rsp+3CH], ecx |
|
8B0D4E37EEFF mov ecx, dword ptr [reloc classVar[0x9f0c65d0]] |
|
8B44243C mov eax, dword ptr [rsp+3CH] |
|
83E003 and eax, 3 |
|
85C0 test eax, eax |
|
7509 jne SHORT G_M18668_IG18 |
|
894C2430 mov dword ptr [rsp+30H], ecx |
|
E9B0000000 jmp G_M18668_IG22 |
|
|
|
G_M18668_IG18: |
|
83F801 cmp eax, 1 |
|
7509 jne SHORT G_M18668_IG19 |
|
894C2434 mov dword ptr [rsp+34H], ecx |
|
E9A2000000 jmp G_M18668_IG22 |
|
|
|
G_M18668_IG19: |
|
83F802 cmp eax, 2 |
|
7509 jne SHORT G_M18668_IG20 |
|
894C2438 mov dword ptr [rsp+38H], ecx |
|
E994000000 jmp G_M18668_IG22 |
|
|
|
G_M18668_IG20: |
|
3344243C xor eax, dword ptr [rsp+3CH] |
|
751E jne SHORT G_M18668_IG21 |
|
C744242028442324 mov dword ptr [rsp+20H], 0x24234428 |
|
C744242477CAEB85 mov dword ptr [rsp+24H], 0xFFFFFFFF85EBCA77 |
|
33C0 xor eax, eax |
|
89442428 mov dword ptr [rsp+28H], eax |
|
C744242C4F86C861 mov dword ptr [rsp+2CH], 0x61C8864F |
|
|
|
G_M18668_IG21: |
|
8B442420 mov eax, dword ptr [rsp+20H] |
|
8B542430 mov edx, dword ptr [rsp+30H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442420 mov dword ptr [rsp+20H], eax |
|
8B442424 mov eax, dword ptr [rsp+24H] |
|
8B542434 mov edx, dword ptr [rsp+34H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442424 mov dword ptr [rsp+24H], eax |
|
8B442428 mov eax, dword ptr [rsp+28H] |
|
8B542438 mov edx, dword ptr [rsp+38H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442428 mov dword ptr [rsp+28H], eax |
|
8B44242C mov eax, dword ptr [rsp+2CH] |
|
69C977CAEB85 imul ecx, ecx, 0xFFFFFFFF85EBCA77 |
|
03C1 add eax, ecx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
8944242C mov dword ptr [rsp+2CH], eax |
|
|
|
G_M18668_IG22: |
|
8B4C243C mov ecx, dword ptr [rsp+3CH] |
|
83C101 add ecx, 1 |
|
0F82C7010000 jb G_M18668_IG34 |
|
894C243C mov dword ptr [rsp+3CH], ecx |
|
8B0D7336EEFF mov ecx, dword ptr [reloc classVar[0x9f0c65d0]] |
|
8B44243C mov eax, dword ptr [rsp+3CH] |
|
83E003 and eax, 3 |
|
85C0 test eax, eax |
|
7509 jne SHORT G_M18668_IG23 |
|
894C2430 mov dword ptr [rsp+30H], ecx |
|
E9B0000000 jmp G_M18668_IG27 |
|
|
|
G_M18668_IG23: |
|
83F801 cmp eax, 1 |
|
7509 jne SHORT G_M18668_IG24 |
|
894C2434 mov dword ptr [rsp+34H], ecx |
|
E9A2000000 jmp G_M18668_IG27 |
|
|
|
G_M18668_IG24: |
|
83F802 cmp eax, 2 |
|
7509 jne SHORT G_M18668_IG25 |
|
894C2438 mov dword ptr [rsp+38H], ecx |
|
E994000000 jmp G_M18668_IG27 |
|
|
|
G_M18668_IG25: |
|
3344243C xor eax, dword ptr [rsp+3CH] |
|
751E jne SHORT G_M18668_IG26 |
|
C744242028442324 mov dword ptr [rsp+20H], 0x24234428 |
|
C744242477CAEB85 mov dword ptr [rsp+24H], 0xFFFFFFFF85EBCA77 |
|
33C0 xor eax, eax |
|
89442428 mov dword ptr [rsp+28H], eax |
|
C744242C4F86C861 mov dword ptr [rsp+2CH], 0x61C8864F |
|
|
|
G_M18668_IG26: |
|
8B442420 mov eax, dword ptr [rsp+20H] |
|
8B542430 mov edx, dword ptr [rsp+30H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442420 mov dword ptr [rsp+20H], eax |
|
8B442424 mov eax, dword ptr [rsp+24H] |
|
8B542434 mov edx, dword ptr [rsp+34H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442424 mov dword ptr [rsp+24H], eax |
|
8B442428 mov eax, dword ptr [rsp+28H] |
|
8B542438 mov edx, dword ptr [rsp+38H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442428 mov dword ptr [rsp+28H], eax |
|
8B44242C mov eax, dword ptr [rsp+2CH] |
|
69C977CAEB85 imul ecx, ecx, 0xFFFFFFFF85EBCA77 |
|
03C1 add eax, ecx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
8944242C mov dword ptr [rsp+2CH], eax |
|
|
|
G_M18668_IG27: |
|
8B4C243C mov ecx, dword ptr [rsp+3CH] |
|
83C101 add ecx, 1 |
|
0F82EC000000 jb G_M18668_IG34 |
|
894C243C mov dword ptr [rsp+3CH], ecx |
|
8B0D9835EEFF mov ecx, dword ptr [reloc classVar[0x9f0c65d0]] |
|
8B44243C mov eax, dword ptr [rsp+3CH] |
|
83E003 and eax, 3 |
|
85C0 test eax, eax |
|
7509 jne SHORT G_M18668_IG28 |
|
894C2430 mov dword ptr [rsp+30H], ecx |
|
E9B0000000 jmp G_M18668_IG32 |
|
|
|
G_M18668_IG28: |
|
83F801 cmp eax, 1 |
|
7509 jne SHORT G_M18668_IG29 |
|
894C2434 mov dword ptr [rsp+34H], ecx |
|
E9A2000000 jmp G_M18668_IG32 |
|
|
|
G_M18668_IG29: |
|
83F802 cmp eax, 2 |
|
7509 jne SHORT G_M18668_IG30 |
|
894C2438 mov dword ptr [rsp+38H], ecx |
|
E994000000 jmp G_M18668_IG32 |
|
|
|
G_M18668_IG30: |
|
3344243C xor eax, dword ptr [rsp+3CH] |
|
751E jne SHORT G_M18668_IG31 |
|
C744242028442324 mov dword ptr [rsp+20H], 0x24234428 |
|
C744242477CAEB85 mov dword ptr [rsp+24H], 0xFFFFFFFF85EBCA77 |
|
33C0 xor eax, eax |
|
89442428 mov dword ptr [rsp+28H], eax |
|
C744242C4F86C861 mov dword ptr [rsp+2CH], 0x61C8864F |
|
|
|
G_M18668_IG31: |
|
8B442420 mov eax, dword ptr [rsp+20H] |
|
8B542430 mov edx, dword ptr [rsp+30H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442420 mov dword ptr [rsp+20H], eax |
|
8B442424 mov eax, dword ptr [rsp+24H] |
|
8B542434 mov edx, dword ptr [rsp+34H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442424 mov dword ptr [rsp+24H], eax |
|
8B442428 mov eax, dword ptr [rsp+28H] |
|
8B542438 mov edx, dword ptr [rsp+38H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442428 mov dword ptr [rsp+28H], eax |
|
8B44242C mov eax, dword ptr [rsp+2CH] |
|
69C977CAEB85 imul ecx, ecx, 0xFFFFFFFF85EBCA77 |
|
03C1 add eax, ecx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
8944242C mov dword ptr [rsp+2CH], eax |
|
|
|
G_M18668_IG32: |
|
8B4C243C mov ecx, dword ptr [rsp+3CH] |
|
83C101 add ecx, 1 |
|
7215 jb SHORT G_M18668_IG34 |
|
894C243C mov dword ptr [rsp+3CH], ecx |
|
488D4C2420 lea rcx, bword ptr [rsp+20H] |
|
E87DECFFFF call System.HashCode:ToHashCode():int:this |
|
90 nop |
|
|
|
G_M18668_IG33: |
|
4883C440 add rsp, 64 |
|
5F pop rdi |
|
C3 ret |
|
|
|
G_M18668_IG34: |
|
E8F16CC05E call CORINFO_HELP_OVERFLOW |
|
CC int3 |
|
|
|
; Total bytes of code 1376, prolog size 22 for method System.HashCode:Test_6():int |
|
; ============================================================ |
|
; Assembly listing for method System.HashCode:Test_7():int |
|
; Emitting BLENDED_CODE for X64 CPU with AVX |
|
; optimized code |
|
; rsp based frame |
|
; partially interruptible |
|
; Final local variable assignments |
|
; |
|
; V00 loc0 [V00 ] (156, 56.25) struct (32) [rsp+0x20] do-not-enreg[XSFB] must-init addr-exposed ld-addr-op |
|
; V01 tmp0 [V01,T28] ( 2, 4 ) int -> rcx |
|
; V02 tmp1 [V02,T42] ( 5, 2 ) int -> rcx |
|
; V03 tmp2 [V03,T35] ( 5, 2.75) int -> rax |
|
; V04 tmp3 [V04,T00] ( 8, 4 ) int -> rax ld-addr-op |
|
; V05 tmp4 [V05,T49] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V06 tmp5 [V06 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V07 tmp6 [V07,T01] ( 8, 4 ) int -> rax ld-addr-op |
|
; V08 tmp7 [V08,T50] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V09 tmp8 [V09 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V10 tmp9 [V10,T02] ( 8, 4 ) int -> rax ld-addr-op |
|
; V11 tmp10 [V11,T51] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V12 tmp11 [V12 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V13 tmp12 [V13,T03] ( 8, 4 ) int -> rax ld-addr-op |
|
;* V14 tmp13 [V14 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V15 tmp14 [V15,T29] ( 2, 4 ) int -> rcx |
|
; V16 tmp15 [V16,T43] ( 5, 2 ) int -> rcx |
|
; V17 tmp16 [V17,T36] ( 5, 2.75) int -> rax |
|
; V18 tmp17 [V18,T04] ( 8, 4 ) int -> rax ld-addr-op |
|
; V19 tmp18 [V19,T52] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V20 tmp19 [V20 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V21 tmp20 [V21,T05] ( 8, 4 ) int -> rax ld-addr-op |
|
; V22 tmp21 [V22,T53] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V23 tmp22 [V23 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V24 tmp23 [V24,T06] ( 8, 4 ) int -> rax ld-addr-op |
|
; V25 tmp24 [V25,T54] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V26 tmp25 [V26 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V27 tmp26 [V27,T07] ( 8, 4 ) int -> rax ld-addr-op |
|
;* V28 tmp27 [V28 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V29 tmp28 [V29,T30] ( 2, 4 ) int -> rcx |
|
; V30 tmp29 [V30,T44] ( 5, 2 ) int -> rcx |
|
; V31 tmp30 [V31,T37] ( 5, 2.75) int -> rax |
|
; V32 tmp31 [V32,T08] ( 8, 4 ) int -> rax ld-addr-op |
|
; V33 tmp32 [V33,T55] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V34 tmp33 [V34 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V35 tmp34 [V35,T09] ( 8, 4 ) int -> rax ld-addr-op |
|
; V36 tmp35 [V36,T56] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V37 tmp36 [V37 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V38 tmp37 [V38,T10] ( 8, 4 ) int -> rax ld-addr-op |
|
; V39 tmp38 [V39,T57] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V40 tmp39 [V40 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V41 tmp40 [V41,T11] ( 8, 4 ) int -> rax ld-addr-op |
|
;* V42 tmp41 [V42 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V43 tmp42 [V43,T31] ( 2, 4 ) int -> rcx |
|
; V44 tmp43 [V44,T45] ( 5, 2 ) int -> rcx |
|
; V45 tmp44 [V45,T38] ( 5, 2.75) int -> rax |
|
; V46 tmp45 [V46,T12] ( 8, 4 ) int -> rax ld-addr-op |
|
; V47 tmp46 [V47,T58] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V48 tmp47 [V48 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V49 tmp48 [V49,T13] ( 8, 4 ) int -> rax ld-addr-op |
|
; V50 tmp49 [V50,T59] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V51 tmp50 [V51 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V52 tmp51 [V52,T14] ( 8, 4 ) int -> rax ld-addr-op |
|
; V53 tmp52 [V53,T60] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V54 tmp53 [V54 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V55 tmp54 [V55,T15] ( 8, 4 ) int -> rax ld-addr-op |
|
;* V56 tmp55 [V56 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V57 tmp56 [V57,T32] ( 2, 4 ) int -> rcx |
|
; V58 tmp57 [V58,T46] ( 5, 2 ) int -> rcx |
|
; V59 tmp58 [V59,T39] ( 5, 2.75) int -> rax |
|
; V60 tmp59 [V60,T16] ( 8, 4 ) int -> rax ld-addr-op |
|
; V61 tmp60 [V61,T61] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V62 tmp61 [V62 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V63 tmp62 [V63,T17] ( 8, 4 ) int -> rax ld-addr-op |
|
; V64 tmp63 [V64,T62] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V65 tmp64 [V65 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V66 tmp65 [V66,T18] ( 8, 4 ) int -> rax ld-addr-op |
|
; V67 tmp66 [V67,T63] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V68 tmp67 [V68 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V69 tmp68 [V69,T19] ( 8, 4 ) int -> rax ld-addr-op |
|
;* V70 tmp69 [V70 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V71 tmp70 [V71,T33] ( 2, 4 ) int -> rcx |
|
; V72 tmp71 [V72,T47] ( 5, 2 ) int -> rcx |
|
; V73 tmp72 [V73,T40] ( 5, 2.75) int -> rax |
|
; V74 tmp73 [V74,T20] ( 8, 4 ) int -> rax ld-addr-op |
|
; V75 tmp74 [V75,T64] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V76 tmp75 [V76 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V77 tmp76 [V77,T21] ( 8, 4 ) int -> rax ld-addr-op |
|
; V78 tmp77 [V78,T65] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V79 tmp78 [V79 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V80 tmp79 [V80,T22] ( 8, 4 ) int -> rax ld-addr-op |
|
; V81 tmp80 [V81,T66] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V82 tmp81 [V82 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V83 tmp82 [V83,T23] ( 8, 4 ) int -> rax ld-addr-op |
|
;* V84 tmp83 [V84 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V85 tmp84 [V85,T34] ( 2, 4 ) int -> rcx |
|
; V86 tmp85 [V86,T48] ( 5, 2 ) int -> rcx |
|
; V87 tmp86 [V87,T41] ( 5, 2.75) int -> rax |
|
; V88 tmp87 [V88,T24] ( 8, 4 ) int -> rax ld-addr-op |
|
; V89 tmp88 [V89,T67] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V90 tmp89 [V90 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V91 tmp90 [V91,T25] ( 8, 4 ) int -> rax ld-addr-op |
|
; V92 tmp91 [V92,T68] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V93 tmp92 [V93 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V94 tmp93 [V94,T26] ( 8, 4 ) int -> rax ld-addr-op |
|
; V95 tmp94 [V95,T69] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V96 tmp95 [V96 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V97 tmp96 [V97,T27] ( 8, 4 ) int -> rax ld-addr-op |
|
;* V98 tmp97 [V98 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V99 OutArgs [V99 ] ( 1, 1 ) lclBlk (32) [rsp+0x00] |
|
; |
|
; Lcl frame size = 64 |
|
|
|
G_M18679_IG01: |
|
57 push rdi |
|
4883EC40 sub rsp, 64 |
|
C5F877 vzeroupper |
|
488D7C2420 lea rdi, [rsp+20H] |
|
B908000000 mov ecx, 8 |
|
33C0 xor rax, rax |
|
F3AB rep stosd |
|
|
|
G_M18679_IG02: |
|
488D4C2420 lea rcx, bword ptr [rsp+20H] |
|
C4E17957C0 vxorpd xmm0, xmm0 |
|
C4E17A7F01 vmovdqu qword ptr [rcx], xmm0 |
|
C4E17A7F4110 vmovdqu qword ptr [rcx+16], xmm0 |
|
8B0D5F34EEFF mov ecx, dword ptr [reloc classVar[0x9f0c65d0]] |
|
8B44243C mov eax, dword ptr [rsp+3CH] |
|
83E003 and eax, 3 |
|
85C0 test eax, eax |
|
7509 jne SHORT G_M18679_IG03 |
|
894C2430 mov dword ptr [rsp+30H], ecx |
|
E9B0000000 jmp G_M18679_IG07 |
|
|
|
G_M18679_IG03: |
|
83F801 cmp eax, 1 |
|
7509 jne SHORT G_M18679_IG04 |
|
894C2434 mov dword ptr [rsp+34H], ecx |
|
E9A2000000 jmp G_M18679_IG07 |
|
|
|
G_M18679_IG04: |
|
83F802 cmp eax, 2 |
|
7509 jne SHORT G_M18679_IG05 |
|
894C2438 mov dword ptr [rsp+38H], ecx |
|
E994000000 jmp G_M18679_IG07 |
|
|
|
G_M18679_IG05: |
|
3344243C xor eax, dword ptr [rsp+3CH] |
|
751E jne SHORT G_M18679_IG06 |
|
C744242028442324 mov dword ptr [rsp+20H], 0x24234428 |
|
C744242477CAEB85 mov dword ptr [rsp+24H], 0xFFFFFFFF85EBCA77 |
|
33C0 xor eax, eax |
|
89442428 mov dword ptr [rsp+28H], eax |
|
C744242C4F86C861 mov dword ptr [rsp+2CH], 0x61C8864F |
|
|
|
G_M18679_IG06: |
|
8B442420 mov eax, dword ptr [rsp+20H] |
|
8B542430 mov edx, dword ptr [rsp+30H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442420 mov dword ptr [rsp+20H], eax |
|
8B442424 mov eax, dword ptr [rsp+24H] |
|
8B542434 mov edx, dword ptr [rsp+34H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442424 mov dword ptr [rsp+24H], eax |
|
8B442428 mov eax, dword ptr [rsp+28H] |
|
8B542438 mov edx, dword ptr [rsp+38H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442428 mov dword ptr [rsp+28H], eax |
|
8B44242C mov eax, dword ptr [rsp+2CH] |
|
69C977CAEB85 imul ecx, ecx, 0xFFFFFFFF85EBCA77 |
|
03C1 add eax, ecx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
8944242C mov dword ptr [rsp+2CH], eax |
|
|
|
G_M18679_IG07: |
|
8B4C243C mov ecx, dword ptr [rsp+3CH] |
|
83C101 add ecx, 1 |
|
0F8233050000 jb G_M18679_IG39 |
|
894C243C mov dword ptr [rsp+3CH], ecx |
|
8B0D8433EEFF mov ecx, dword ptr [reloc classVar[0x9f0c65d0]] |
|
8B44243C mov eax, dword ptr [rsp+3CH] |
|
83E003 and eax, 3 |
|
85C0 test eax, eax |
|
7509 jne SHORT G_M18679_IG08 |
|
894C2430 mov dword ptr [rsp+30H], ecx |
|
E9B0000000 jmp G_M18679_IG12 |
|
|
|
G_M18679_IG08: |
|
83F801 cmp eax, 1 |
|
7509 jne SHORT G_M18679_IG09 |
|
894C2434 mov dword ptr [rsp+34H], ecx |
|
E9A2000000 jmp G_M18679_IG12 |
|
|
|
G_M18679_IG09: |
|
83F802 cmp eax, 2 |
|
7509 jne SHORT G_M18679_IG10 |
|
894C2438 mov dword ptr [rsp+38H], ecx |
|
E994000000 jmp G_M18679_IG12 |
|
|
|
G_M18679_IG10: |
|
3344243C xor eax, dword ptr [rsp+3CH] |
|
751E jne SHORT G_M18679_IG11 |
|
C744242028442324 mov dword ptr [rsp+20H], 0x24234428 |
|
C744242477CAEB85 mov dword ptr [rsp+24H], 0xFFFFFFFF85EBCA77 |
|
33C0 xor eax, eax |
|
89442428 mov dword ptr [rsp+28H], eax |
|
C744242C4F86C861 mov dword ptr [rsp+2CH], 0x61C8864F |
|
|
|
G_M18679_IG11: |
|
8B442420 mov eax, dword ptr [rsp+20H] |
|
8B542430 mov edx, dword ptr [rsp+30H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442420 mov dword ptr [rsp+20H], eax |
|
8B442424 mov eax, dword ptr [rsp+24H] |
|
8B542434 mov edx, dword ptr [rsp+34H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442424 mov dword ptr [rsp+24H], eax |
|
8B442428 mov eax, dword ptr [rsp+28H] |
|
8B542438 mov edx, dword ptr [rsp+38H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442428 mov dword ptr [rsp+28H], eax |
|
8B44242C mov eax, dword ptr [rsp+2CH] |
|
69C977CAEB85 imul ecx, ecx, 0xFFFFFFFF85EBCA77 |
|
03C1 add eax, ecx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
8944242C mov dword ptr [rsp+2CH], eax |
|
|
|
G_M18679_IG12: |
|
8B4C243C mov ecx, dword ptr [rsp+3CH] |
|
83C101 add ecx, 1 |
|
0F8258040000 jb G_M18679_IG39 |
|
894C243C mov dword ptr [rsp+3CH], ecx |
|
8B0DA932EEFF mov ecx, dword ptr [reloc classVar[0x9f0c65d0]] |
|
8B44243C mov eax, dword ptr [rsp+3CH] |
|
83E003 and eax, 3 |
|
85C0 test eax, eax |
|
7509 jne SHORT G_M18679_IG13 |
|
894C2430 mov dword ptr [rsp+30H], ecx |
|
E9B0000000 jmp G_M18679_IG17 |
|
|
|
G_M18679_IG13: |
|
83F801 cmp eax, 1 |
|
7509 jne SHORT G_M18679_IG14 |
|
894C2434 mov dword ptr [rsp+34H], ecx |
|
E9A2000000 jmp G_M18679_IG17 |
|
|
|
G_M18679_IG14: |
|
83F802 cmp eax, 2 |
|
7509 jne SHORT G_M18679_IG15 |
|
894C2438 mov dword ptr [rsp+38H], ecx |
|
E994000000 jmp G_M18679_IG17 |
|
|
|
G_M18679_IG15: |
|
3344243C xor eax, dword ptr [rsp+3CH] |
|
751E jne SHORT G_M18679_IG16 |
|
C744242028442324 mov dword ptr [rsp+20H], 0x24234428 |
|
C744242477CAEB85 mov dword ptr [rsp+24H], 0xFFFFFFFF85EBCA77 |
|
33C0 xor eax, eax |
|
89442428 mov dword ptr [rsp+28H], eax |
|
C744242C4F86C861 mov dword ptr [rsp+2CH], 0x61C8864F |
|
|
|
G_M18679_IG16: |
|
8B442420 mov eax, dword ptr [rsp+20H] |
|
8B542430 mov edx, dword ptr [rsp+30H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442420 mov dword ptr [rsp+20H], eax |
|
8B442424 mov eax, dword ptr [rsp+24H] |
|
8B542434 mov edx, dword ptr [rsp+34H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442424 mov dword ptr [rsp+24H], eax |
|
8B442428 mov eax, dword ptr [rsp+28H] |
|
8B542438 mov edx, dword ptr [rsp+38H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442428 mov dword ptr [rsp+28H], eax |
|
8B44242C mov eax, dword ptr [rsp+2CH] |
|
69C977CAEB85 imul ecx, ecx, 0xFFFFFFFF85EBCA77 |
|
03C1 add eax, ecx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
8944242C mov dword ptr [rsp+2CH], eax |
|
|
|
G_M18679_IG17: |
|
8B4C243C mov ecx, dword ptr [rsp+3CH] |
|
83C101 add ecx, 1 |
|
0F827D030000 jb G_M18679_IG39 |
|
894C243C mov dword ptr [rsp+3CH], ecx |
|
8B0DCE31EEFF mov ecx, dword ptr [reloc classVar[0x9f0c65d0]] |
|
8B44243C mov eax, dword ptr [rsp+3CH] |
|
83E003 and eax, 3 |
|
85C0 test eax, eax |
|
7509 jne SHORT G_M18679_IG18 |
|
894C2430 mov dword ptr [rsp+30H], ecx |
|
E9B0000000 jmp G_M18679_IG22 |
|
|
|
G_M18679_IG18: |
|
83F801 cmp eax, 1 |
|
7509 jne SHORT G_M18679_IG19 |
|
894C2434 mov dword ptr [rsp+34H], ecx |
|
E9A2000000 jmp G_M18679_IG22 |
|
|
|
G_M18679_IG19: |
|
83F802 cmp eax, 2 |
|
7509 jne SHORT G_M18679_IG20 |
|
894C2438 mov dword ptr [rsp+38H], ecx |
|
E994000000 jmp G_M18679_IG22 |
|
|
|
G_M18679_IG20: |
|
3344243C xor eax, dword ptr [rsp+3CH] |
|
751E jne SHORT G_M18679_IG21 |
|
C744242028442324 mov dword ptr [rsp+20H], 0x24234428 |
|
C744242477CAEB85 mov dword ptr [rsp+24H], 0xFFFFFFFF85EBCA77 |
|
33C0 xor eax, eax |
|
89442428 mov dword ptr [rsp+28H], eax |
|
C744242C4F86C861 mov dword ptr [rsp+2CH], 0x61C8864F |
|
|
|
G_M18679_IG21: |
|
8B442420 mov eax, dword ptr [rsp+20H] |
|
8B542430 mov edx, dword ptr [rsp+30H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442420 mov dword ptr [rsp+20H], eax |
|
8B442424 mov eax, dword ptr [rsp+24H] |
|
8B542434 mov edx, dword ptr [rsp+34H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442424 mov dword ptr [rsp+24H], eax |
|
8B442428 mov eax, dword ptr [rsp+28H] |
|
8B542438 mov edx, dword ptr [rsp+38H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442428 mov dword ptr [rsp+28H], eax |
|
8B44242C mov eax, dword ptr [rsp+2CH] |
|
69C977CAEB85 imul ecx, ecx, 0xFFFFFFFF85EBCA77 |
|
03C1 add eax, ecx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
8944242C mov dword ptr [rsp+2CH], eax |
|
|
|
G_M18679_IG22: |
|
8B4C243C mov ecx, dword ptr [rsp+3CH] |
|
83C101 add ecx, 1 |
|
0F82A2020000 jb G_M18679_IG39 |
|
894C243C mov dword ptr [rsp+3CH], ecx |
|
8B0DF330EEFF mov ecx, dword ptr [reloc classVar[0x9f0c65d0]] |
|
8B44243C mov eax, dword ptr [rsp+3CH] |
|
83E003 and eax, 3 |
|
85C0 test eax, eax |
|
7509 jne SHORT G_M18679_IG23 |
|
894C2430 mov dword ptr [rsp+30H], ecx |
|
E9B0000000 jmp G_M18679_IG27 |
|
|
|
G_M18679_IG23: |
|
83F801 cmp eax, 1 |
|
7509 jne SHORT G_M18679_IG24 |
|
894C2434 mov dword ptr [rsp+34H], ecx |
|
E9A2000000 jmp G_M18679_IG27 |
|
|
|
G_M18679_IG24: |
|
83F802 cmp eax, 2 |
|
7509 jne SHORT G_M18679_IG25 |
|
894C2438 mov dword ptr [rsp+38H], ecx |
|
E994000000 jmp G_M18679_IG27 |
|
|
|
G_M18679_IG25: |
|
3344243C xor eax, dword ptr [rsp+3CH] |
|
751E jne SHORT G_M18679_IG26 |
|
C744242028442324 mov dword ptr [rsp+20H], 0x24234428 |
|
C744242477CAEB85 mov dword ptr [rsp+24H], 0xFFFFFFFF85EBCA77 |
|
33C0 xor eax, eax |
|
89442428 mov dword ptr [rsp+28H], eax |
|
C744242C4F86C861 mov dword ptr [rsp+2CH], 0x61C8864F |
|
|
|
G_M18679_IG26: |
|
8B442420 mov eax, dword ptr [rsp+20H] |
|
8B542430 mov edx, dword ptr [rsp+30H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442420 mov dword ptr [rsp+20H], eax |
|
8B442424 mov eax, dword ptr [rsp+24H] |
|
8B542434 mov edx, dword ptr [rsp+34H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442424 mov dword ptr [rsp+24H], eax |
|
8B442428 mov eax, dword ptr [rsp+28H] |
|
8B542438 mov edx, dword ptr [rsp+38H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442428 mov dword ptr [rsp+28H], eax |
|
8B44242C mov eax, dword ptr [rsp+2CH] |
|
69C977CAEB85 imul ecx, ecx, 0xFFFFFFFF85EBCA77 |
|
03C1 add eax, ecx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
8944242C mov dword ptr [rsp+2CH], eax |
|
|
|
G_M18679_IG27: |
|
8B4C243C mov ecx, dword ptr [rsp+3CH] |
|
83C101 add ecx, 1 |
|
0F82C7010000 jb G_M18679_IG39 |
|
894C243C mov dword ptr [rsp+3CH], ecx |
|
8B0D1830EEFF mov ecx, dword ptr [reloc classVar[0x9f0c65d0]] |
|
8B44243C mov eax, dword ptr [rsp+3CH] |
|
83E003 and eax, 3 |
|
85C0 test eax, eax |
|
7509 jne SHORT G_M18679_IG28 |
|
894C2430 mov dword ptr [rsp+30H], ecx |
|
E9B0000000 jmp G_M18679_IG32 |
|
|
|
G_M18679_IG28: |
|
83F801 cmp eax, 1 |
|
7509 jne SHORT G_M18679_IG29 |
|
894C2434 mov dword ptr [rsp+34H], ecx |
|
E9A2000000 jmp G_M18679_IG32 |
|
|
|
G_M18679_IG29: |
|
83F802 cmp eax, 2 |
|
7509 jne SHORT G_M18679_IG30 |
|
894C2438 mov dword ptr [rsp+38H], ecx |
|
E994000000 jmp G_M18679_IG32 |
|
|
|
G_M18679_IG30: |
|
3344243C xor eax, dword ptr [rsp+3CH] |
|
751E jne SHORT G_M18679_IG31 |
|
C744242028442324 mov dword ptr [rsp+20H], 0x24234428 |
|
C744242477CAEB85 mov dword ptr [rsp+24H], 0xFFFFFFFF85EBCA77 |
|
33C0 xor eax, eax |
|
89442428 mov dword ptr [rsp+28H], eax |
|
C744242C4F86C861 mov dword ptr [rsp+2CH], 0x61C8864F |
|
|
|
G_M18679_IG31: |
|
8B442420 mov eax, dword ptr [rsp+20H] |
|
8B542430 mov edx, dword ptr [rsp+30H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442420 mov dword ptr [rsp+20H], eax |
|
8B442424 mov eax, dword ptr [rsp+24H] |
|
8B542434 mov edx, dword ptr [rsp+34H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442424 mov dword ptr [rsp+24H], eax |
|
8B442428 mov eax, dword ptr [rsp+28H] |
|
8B542438 mov edx, dword ptr [rsp+38H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442428 mov dword ptr [rsp+28H], eax |
|
8B44242C mov eax, dword ptr [rsp+2CH] |
|
69C977CAEB85 imul ecx, ecx, 0xFFFFFFFF85EBCA77 |
|
03C1 add eax, ecx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
8944242C mov dword ptr [rsp+2CH], eax |
|
|
|
G_M18679_IG32: |
|
8B4C243C mov ecx, dword ptr [rsp+3CH] |
|
83C101 add ecx, 1 |
|
0F82EC000000 jb G_M18679_IG39 |
|
894C243C mov dword ptr [rsp+3CH], ecx |
|
8B0D3D2FEEFF mov ecx, dword ptr [reloc classVar[0x9f0c65d0]] |
|
8B44243C mov eax, dword ptr [rsp+3CH] |
|
83E003 and eax, 3 |
|
85C0 test eax, eax |
|
7509 jne SHORT G_M18679_IG33 |
|
894C2430 mov dword ptr [rsp+30H], ecx |
|
E9B0000000 jmp G_M18679_IG37 |
|
|
|
G_M18679_IG33: |
|
83F801 cmp eax, 1 |
|
7509 jne SHORT G_M18679_IG34 |
|
894C2434 mov dword ptr [rsp+34H], ecx |
|
E9A2000000 jmp G_M18679_IG37 |
|
|
|
G_M18679_IG34: |
|
83F802 cmp eax, 2 |
|
7509 jne SHORT G_M18679_IG35 |
|
894C2438 mov dword ptr [rsp+38H], ecx |
|
E994000000 jmp G_M18679_IG37 |
|
|
|
G_M18679_IG35: |
|
3344243C xor eax, dword ptr [rsp+3CH] |
|
751E jne SHORT G_M18679_IG36 |
|
C744242028442324 mov dword ptr [rsp+20H], 0x24234428 |
|
C744242477CAEB85 mov dword ptr [rsp+24H], 0xFFFFFFFF85EBCA77 |
|
33C0 xor eax, eax |
|
89442428 mov dword ptr [rsp+28H], eax |
|
C744242C4F86C861 mov dword ptr [rsp+2CH], 0x61C8864F |
|
|
|
G_M18679_IG36: |
|
8B442420 mov eax, dword ptr [rsp+20H] |
|
8B542430 mov edx, dword ptr [rsp+30H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442420 mov dword ptr [rsp+20H], eax |
|
8B442424 mov eax, dword ptr [rsp+24H] |
|
8B542434 mov edx, dword ptr [rsp+34H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442424 mov dword ptr [rsp+24H], eax |
|
8B442428 mov eax, dword ptr [rsp+28H] |
|
8B542438 mov edx, dword ptr [rsp+38H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442428 mov dword ptr [rsp+28H], eax |
|
8B44242C mov eax, dword ptr [rsp+2CH] |
|
69C977CAEB85 imul ecx, ecx, 0xFFFFFFFF85EBCA77 |
|
03C1 add eax, ecx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
8944242C mov dword ptr [rsp+2CH], eax |
|
|
|
G_M18679_IG37: |
|
8B4C243C mov ecx, dword ptr [rsp+3CH] |
|
83C101 add ecx, 1 |
|
7215 jb SHORT G_M18679_IG39 |
|
894C243C mov dword ptr [rsp+3CH], ecx |
|
488D4C2420 lea rcx, bword ptr [rsp+20H] |
|
E822E6FFFF call System.HashCode:ToHashCode():int:this |
|
90 nop |
|
|
|
G_M18679_IG38: |
|
4883C440 add rsp, 64 |
|
5F pop rdi |
|
C3 ret |
|
|
|
G_M18679_IG39: |
|
E89666C05E call CORINFO_HELP_OVERFLOW |
|
CC int3 |
|
|
|
; Total bytes of code 1595, prolog size 22 for method System.HashCode:Test_7():int |
|
; ============================================================ |
|
; Assembly listing for method System.HashCode:Test_8():int |
|
; Emitting BLENDED_CODE for X64 CPU with AVX |
|
; optimized code |
|
; rsp based frame |
|
; partially interruptible |
|
; Final local variable assignments |
|
; |
|
; V00 loc0 [V00 ] (178, 64 ) struct (32) [rsp+0x20] do-not-enreg[XSFB] must-init addr-exposed ld-addr-op |
|
; V01 tmp0 [V01,T32] ( 2, 4 ) int -> rcx |
|
; V02 tmp1 [V02,T48] ( 5, 2 ) int -> rcx |
|
; V03 tmp2 [V03,T40] ( 5, 2.75) int -> rax |
|
; V04 tmp3 [V04,T00] ( 8, 4 ) int -> rax ld-addr-op |
|
; V05 tmp4 [V05,T56] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V06 tmp5 [V06 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V07 tmp6 [V07,T01] ( 8, 4 ) int -> rax ld-addr-op |
|
; V08 tmp7 [V08,T57] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V09 tmp8 [V09 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V10 tmp9 [V10,T02] ( 8, 4 ) int -> rax ld-addr-op |
|
; V11 tmp10 [V11,T58] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V12 tmp11 [V12 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V13 tmp12 [V13,T03] ( 8, 4 ) int -> rax ld-addr-op |
|
;* V14 tmp13 [V14 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V15 tmp14 [V15,T33] ( 2, 4 ) int -> rcx |
|
; V16 tmp15 [V16,T49] ( 5, 2 ) int -> rcx |
|
; V17 tmp16 [V17,T41] ( 5, 2.75) int -> rax |
|
; V18 tmp17 [V18,T04] ( 8, 4 ) int -> rax ld-addr-op |
|
; V19 tmp18 [V19,T59] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V20 tmp19 [V20 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V21 tmp20 [V21,T05] ( 8, 4 ) int -> rax ld-addr-op |
|
; V22 tmp21 [V22,T60] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V23 tmp22 [V23 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V24 tmp23 [V24,T06] ( 8, 4 ) int -> rax ld-addr-op |
|
; V25 tmp24 [V25,T61] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V26 tmp25 [V26 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V27 tmp26 [V27,T07] ( 8, 4 ) int -> rax ld-addr-op |
|
;* V28 tmp27 [V28 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V29 tmp28 [V29,T34] ( 2, 4 ) int -> rcx |
|
; V30 tmp29 [V30,T50] ( 5, 2 ) int -> rcx |
|
; V31 tmp30 [V31,T42] ( 5, 2.75) int -> rax |
|
; V32 tmp31 [V32,T08] ( 8, 4 ) int -> rax ld-addr-op |
|
; V33 tmp32 [V33,T62] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V34 tmp33 [V34 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V35 tmp34 [V35,T09] ( 8, 4 ) int -> rax ld-addr-op |
|
; V36 tmp35 [V36,T63] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V37 tmp36 [V37 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V38 tmp37 [V38,T10] ( 8, 4 ) int -> rax ld-addr-op |
|
; V39 tmp38 [V39,T64] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V40 tmp39 [V40 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V41 tmp40 [V41,T11] ( 8, 4 ) int -> rax ld-addr-op |
|
;* V42 tmp41 [V42 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V43 tmp42 [V43,T35] ( 2, 4 ) int -> rcx |
|
; V44 tmp43 [V44,T51] ( 5, 2 ) int -> rcx |
|
; V45 tmp44 [V45,T43] ( 5, 2.75) int -> rax |
|
; V46 tmp45 [V46,T12] ( 8, 4 ) int -> rax ld-addr-op |
|
; V47 tmp46 [V47,T65] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V48 tmp47 [V48 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V49 tmp48 [V49,T13] ( 8, 4 ) int -> rax ld-addr-op |
|
; V50 tmp49 [V50,T66] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V51 tmp50 [V51 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V52 tmp51 [V52,T14] ( 8, 4 ) int -> rax ld-addr-op |
|
; V53 tmp52 [V53,T67] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V54 tmp53 [V54 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V55 tmp54 [V55,T15] ( 8, 4 ) int -> rax ld-addr-op |
|
;* V56 tmp55 [V56 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V57 tmp56 [V57,T36] ( 2, 4 ) int -> rcx |
|
; V58 tmp57 [V58,T52] ( 5, 2 ) int -> rcx |
|
; V59 tmp58 [V59,T44] ( 5, 2.75) int -> rax |
|
; V60 tmp59 [V60,T16] ( 8, 4 ) int -> rax ld-addr-op |
|
; V61 tmp60 [V61,T68] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V62 tmp61 [V62 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V63 tmp62 [V63,T17] ( 8, 4 ) int -> rax ld-addr-op |
|
; V64 tmp63 [V64,T69] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V65 tmp64 [V65 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V66 tmp65 [V66,T18] ( 8, 4 ) int -> rax ld-addr-op |
|
; V67 tmp66 [V67,T70] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V68 tmp67 [V68 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V69 tmp68 [V69,T19] ( 8, 4 ) int -> rax ld-addr-op |
|
;* V70 tmp69 [V70 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V71 tmp70 [V71,T37] ( 2, 4 ) int -> rcx |
|
; V72 tmp71 [V72,T53] ( 5, 2 ) int -> rcx |
|
; V73 tmp72 [V73,T45] ( 5, 2.75) int -> rax |
|
; V74 tmp73 [V74,T20] ( 8, 4 ) int -> rax ld-addr-op |
|
; V75 tmp74 [V75,T71] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V76 tmp75 [V76 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V77 tmp76 [V77,T21] ( 8, 4 ) int -> rax ld-addr-op |
|
; V78 tmp77 [V78,T72] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V79 tmp78 [V79 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V80 tmp79 [V80,T22] ( 8, 4 ) int -> rax ld-addr-op |
|
; V81 tmp80 [V81,T73] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V82 tmp81 [V82 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V83 tmp82 [V83,T23] ( 8, 4 ) int -> rax ld-addr-op |
|
;* V84 tmp83 [V84 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V85 tmp84 [V85,T38] ( 2, 4 ) int -> rcx |
|
; V86 tmp85 [V86,T54] ( 5, 2 ) int -> rcx |
|
; V87 tmp86 [V87,T46] ( 5, 2.75) int -> rax |
|
; V88 tmp87 [V88,T24] ( 8, 4 ) int -> rax ld-addr-op |
|
; V89 tmp88 [V89,T74] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V90 tmp89 [V90 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V91 tmp90 [V91,T25] ( 8, 4 ) int -> rax ld-addr-op |
|
; V92 tmp91 [V92,T75] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V93 tmp92 [V93 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V94 tmp93 [V94,T26] ( 8, 4 ) int -> rax ld-addr-op |
|
; V95 tmp94 [V95,T76] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V96 tmp95 [V96 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V97 tmp96 [V97,T27] ( 8, 4 ) int -> rax ld-addr-op |
|
;* V98 tmp97 [V98 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V99 tmp98 [V99,T39] ( 2, 4 ) int -> rcx |
|
; V100 tmp99 [V100,T55] ( 5, 2 ) int -> rcx |
|
; V101 tmp100 [V101,T47] ( 5, 2.75) int -> rax |
|
; V102 tmp101 [V102,T28] ( 8, 4 ) int -> rax ld-addr-op |
|
; V103 tmp102 [V103,T77] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V104 tmp103 [V104 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V105 tmp104 [V105,T29] ( 8, 4 ) int -> rax ld-addr-op |
|
; V106 tmp105 [V106,T78] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V107 tmp106 [V107 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V108 tmp107 [V108,T30] ( 8, 4 ) int -> rax ld-addr-op |
|
; V109 tmp108 [V109,T79] ( 2, 1 ) int -> rdx ld-addr-op |
|
;* V110 tmp109 [V110 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V111 tmp110 [V111,T31] ( 8, 4 ) int -> rax ld-addr-op |
|
;* V112 tmp111 [V112 ] ( 0, 0 ) int -> zero-ref ld-addr-op |
|
; V113 OutArgs [V113 ] ( 1, 1 ) lclBlk (32) [rsp+0x00] |
|
; |
|
; Lcl frame size = 64 |
|
|
|
G_M18702_IG01: |
|
57 push rdi |
|
4883EC40 sub rsp, 64 |
|
C5F877 vzeroupper |
|
488D7C2420 lea rdi, [rsp+20H] |
|
B908000000 mov ecx, 8 |
|
33C0 xor rax, rax |
|
F3AB rep stosd |
|
|
|
G_M18702_IG02: |
|
488D4C2420 lea rcx, bword ptr [rsp+20H] |
|
C4E17957C0 vxorpd xmm0, xmm0 |
|
C4E17A7F01 vmovdqu qword ptr [rcx], xmm0 |
|
C4E17A7F4110 vmovdqu qword ptr [rcx+16], xmm0 |
|
8B0D0F2EEEFF mov ecx, dword ptr [reloc classVar[0x9f0c65d0]] |
|
8B44243C mov eax, dword ptr [rsp+3CH] |
|
83E003 and eax, 3 |
|
85C0 test eax, eax |
|
7509 jne SHORT G_M18702_IG03 |
|
894C2430 mov dword ptr [rsp+30H], ecx |
|
E9B0000000 jmp G_M18702_IG07 |
|
|
|
G_M18702_IG03: |
|
83F801 cmp eax, 1 |
|
7509 jne SHORT G_M18702_IG04 |
|
894C2434 mov dword ptr [rsp+34H], ecx |
|
E9A2000000 jmp G_M18702_IG07 |
|
|
|
G_M18702_IG04: |
|
83F802 cmp eax, 2 |
|
7509 jne SHORT G_M18702_IG05 |
|
894C2438 mov dword ptr [rsp+38H], ecx |
|
E994000000 jmp G_M18702_IG07 |
|
|
|
G_M18702_IG05: |
|
3344243C xor eax, dword ptr [rsp+3CH] |
|
751E jne SHORT G_M18702_IG06 |
|
C744242028442324 mov dword ptr [rsp+20H], 0x24234428 |
|
C744242477CAEB85 mov dword ptr [rsp+24H], 0xFFFFFFFF85EBCA77 |
|
33C0 xor eax, eax |
|
89442428 mov dword ptr [rsp+28H], eax |
|
C744242C4F86C861 mov dword ptr [rsp+2CH], 0x61C8864F |
|
|
|
G_M18702_IG06: |
|
8B442420 mov eax, dword ptr [rsp+20H] |
|
8B542430 mov edx, dword ptr [rsp+30H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442420 mov dword ptr [rsp+20H], eax |
|
8B442424 mov eax, dword ptr [rsp+24H] |
|
8B542434 mov edx, dword ptr [rsp+34H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442424 mov dword ptr [rsp+24H], eax |
|
8B442428 mov eax, dword ptr [rsp+28H] |
|
8B542438 mov edx, dword ptr [rsp+38H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442428 mov dword ptr [rsp+28H], eax |
|
8B44242C mov eax, dword ptr [rsp+2CH] |
|
69C977CAEB85 imul ecx, ecx, 0xFFFFFFFF85EBCA77 |
|
03C1 add eax, ecx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
8944242C mov dword ptr [rsp+2CH], eax |
|
|
|
G_M18702_IG07: |
|
8B4C243C mov ecx, dword ptr [rsp+3CH] |
|
83C101 add ecx, 1 |
|
0F820E060000 jb G_M18702_IG44 |
|
894C243C mov dword ptr [rsp+3CH], ecx |
|
8B0D342DEEFF mov ecx, dword ptr [reloc classVar[0x9f0c65d0]] |
|
8B44243C mov eax, dword ptr [rsp+3CH] |
|
83E003 and eax, 3 |
|
85C0 test eax, eax |
|
7509 jne SHORT G_M18702_IG08 |
|
894C2430 mov dword ptr [rsp+30H], ecx |
|
E9B0000000 jmp G_M18702_IG12 |
|
|
|
G_M18702_IG08: |
|
83F801 cmp eax, 1 |
|
7509 jne SHORT G_M18702_IG09 |
|
894C2434 mov dword ptr [rsp+34H], ecx |
|
E9A2000000 jmp G_M18702_IG12 |
|
|
|
G_M18702_IG09: |
|
83F802 cmp eax, 2 |
|
7509 jne SHORT G_M18702_IG10 |
|
894C2438 mov dword ptr [rsp+38H], ecx |
|
E994000000 jmp G_M18702_IG12 |
|
|
|
G_M18702_IG10: |
|
3344243C xor eax, dword ptr [rsp+3CH] |
|
751E jne SHORT G_M18702_IG11 |
|
C744242028442324 mov dword ptr [rsp+20H], 0x24234428 |
|
C744242477CAEB85 mov dword ptr [rsp+24H], 0xFFFFFFFF85EBCA77 |
|
33C0 xor eax, eax |
|
89442428 mov dword ptr [rsp+28H], eax |
|
C744242C4F86C861 mov dword ptr [rsp+2CH], 0x61C8864F |
|
|
|
G_M18702_IG11: |
|
8B442420 mov eax, dword ptr [rsp+20H] |
|
8B542430 mov edx, dword ptr [rsp+30H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442420 mov dword ptr [rsp+20H], eax |
|
8B442424 mov eax, dword ptr [rsp+24H] |
|
8B542434 mov edx, dword ptr [rsp+34H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442424 mov dword ptr [rsp+24H], eax |
|
8B442428 mov eax, dword ptr [rsp+28H] |
|
8B542438 mov edx, dword ptr [rsp+38H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442428 mov dword ptr [rsp+28H], eax |
|
8B44242C mov eax, dword ptr [rsp+2CH] |
|
69C977CAEB85 imul ecx, ecx, 0xFFFFFFFF85EBCA77 |
|
03C1 add eax, ecx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
8944242C mov dword ptr [rsp+2CH], eax |
|
|
|
G_M18702_IG12: |
|
8B4C243C mov ecx, dword ptr [rsp+3CH] |
|
83C101 add ecx, 1 |
|
0F8233050000 jb G_M18702_IG44 |
|
894C243C mov dword ptr [rsp+3CH], ecx |
|
8B0D592CEEFF mov ecx, dword ptr [reloc classVar[0x9f0c65d0]] |
|
8B44243C mov eax, dword ptr [rsp+3CH] |
|
83E003 and eax, 3 |
|
85C0 test eax, eax |
|
7509 jne SHORT G_M18702_IG13 |
|
894C2430 mov dword ptr [rsp+30H], ecx |
|
E9B0000000 jmp G_M18702_IG17 |
|
|
|
G_M18702_IG13: |
|
83F801 cmp eax, 1 |
|
7509 jne SHORT G_M18702_IG14 |
|
894C2434 mov dword ptr [rsp+34H], ecx |
|
E9A2000000 jmp G_M18702_IG17 |
|
|
|
G_M18702_IG14: |
|
83F802 cmp eax, 2 |
|
7509 jne SHORT G_M18702_IG15 |
|
894C2438 mov dword ptr [rsp+38H], ecx |
|
E994000000 jmp G_M18702_IG17 |
|
|
|
G_M18702_IG15: |
|
3344243C xor eax, dword ptr [rsp+3CH] |
|
751E jne SHORT G_M18702_IG16 |
|
C744242028442324 mov dword ptr [rsp+20H], 0x24234428 |
|
C744242477CAEB85 mov dword ptr [rsp+24H], 0xFFFFFFFF85EBCA77 |
|
33C0 xor eax, eax |
|
89442428 mov dword ptr [rsp+28H], eax |
|
C744242C4F86C861 mov dword ptr [rsp+2CH], 0x61C8864F |
|
|
|
G_M18702_IG16: |
|
8B442420 mov eax, dword ptr [rsp+20H] |
|
8B542430 mov edx, dword ptr [rsp+30H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442420 mov dword ptr [rsp+20H], eax |
|
8B442424 mov eax, dword ptr [rsp+24H] |
|
8B542434 mov edx, dword ptr [rsp+34H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442424 mov dword ptr [rsp+24H], eax |
|
8B442428 mov eax, dword ptr [rsp+28H] |
|
8B542438 mov edx, dword ptr [rsp+38H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442428 mov dword ptr [rsp+28H], eax |
|
8B44242C mov eax, dword ptr [rsp+2CH] |
|
69C977CAEB85 imul ecx, ecx, 0xFFFFFFFF85EBCA77 |
|
03C1 add eax, ecx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
8944242C mov dword ptr [rsp+2CH], eax |
|
|
|
G_M18702_IG17: |
|
8B4C243C mov ecx, dword ptr [rsp+3CH] |
|
83C101 add ecx, 1 |
|
0F8258040000 jb G_M18702_IG44 |
|
894C243C mov dword ptr [rsp+3CH], ecx |
|
8B0D7E2BEEFF mov ecx, dword ptr [reloc classVar[0x9f0c65d0]] |
|
8B44243C mov eax, dword ptr [rsp+3CH] |
|
83E003 and eax, 3 |
|
85C0 test eax, eax |
|
7509 jne SHORT G_M18702_IG18 |
|
894C2430 mov dword ptr [rsp+30H], ecx |
|
E9B0000000 jmp G_M18702_IG22 |
|
|
|
G_M18702_IG18: |
|
83F801 cmp eax, 1 |
|
7509 jne SHORT G_M18702_IG19 |
|
894C2434 mov dword ptr [rsp+34H], ecx |
|
E9A2000000 jmp G_M18702_IG22 |
|
|
|
G_M18702_IG19: |
|
83F802 cmp eax, 2 |
|
7509 jne SHORT G_M18702_IG20 |
|
894C2438 mov dword ptr [rsp+38H], ecx |
|
E994000000 jmp G_M18702_IG22 |
|
|
|
G_M18702_IG20: |
|
3344243C xor eax, dword ptr [rsp+3CH] |
|
751E jne SHORT G_M18702_IG21 |
|
C744242028442324 mov dword ptr [rsp+20H], 0x24234428 |
|
C744242477CAEB85 mov dword ptr [rsp+24H], 0xFFFFFFFF85EBCA77 |
|
33C0 xor eax, eax |
|
89442428 mov dword ptr [rsp+28H], eax |
|
C744242C4F86C861 mov dword ptr [rsp+2CH], 0x61C8864F |
|
|
|
G_M18702_IG21: |
|
8B442420 mov eax, dword ptr [rsp+20H] |
|
8B542430 mov edx, dword ptr [rsp+30H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442420 mov dword ptr [rsp+20H], eax |
|
8B442424 mov eax, dword ptr [rsp+24H] |
|
8B542434 mov edx, dword ptr [rsp+34H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442424 mov dword ptr [rsp+24H], eax |
|
8B442428 mov eax, dword ptr [rsp+28H] |
|
8B542438 mov edx, dword ptr [rsp+38H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442428 mov dword ptr [rsp+28H], eax |
|
8B44242C mov eax, dword ptr [rsp+2CH] |
|
69C977CAEB85 imul ecx, ecx, 0xFFFFFFFF85EBCA77 |
|
03C1 add eax, ecx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
8944242C mov dword ptr [rsp+2CH], eax |
|
|
|
G_M18702_IG22: |
|
8B4C243C mov ecx, dword ptr [rsp+3CH] |
|
83C101 add ecx, 1 |
|
0F827D030000 jb G_M18702_IG44 |
|
894C243C mov dword ptr [rsp+3CH], ecx |
|
8B0DA32AEEFF mov ecx, dword ptr [reloc classVar[0x9f0c65d0]] |
|
8B44243C mov eax, dword ptr [rsp+3CH] |
|
83E003 and eax, 3 |
|
85C0 test eax, eax |
|
7509 jne SHORT G_M18702_IG23 |
|
894C2430 mov dword ptr [rsp+30H], ecx |
|
E9B0000000 jmp G_M18702_IG27 |
|
|
|
G_M18702_IG23: |
|
83F801 cmp eax, 1 |
|
7509 jne SHORT G_M18702_IG24 |
|
894C2434 mov dword ptr [rsp+34H], ecx |
|
E9A2000000 jmp G_M18702_IG27 |
|
|
|
G_M18702_IG24: |
|
83F802 cmp eax, 2 |
|
7509 jne SHORT G_M18702_IG25 |
|
894C2438 mov dword ptr [rsp+38H], ecx |
|
E994000000 jmp G_M18702_IG27 |
|
|
|
G_M18702_IG25: |
|
3344243C xor eax, dword ptr [rsp+3CH] |
|
751E jne SHORT G_M18702_IG26 |
|
C744242028442324 mov dword ptr [rsp+20H], 0x24234428 |
|
C744242477CAEB85 mov dword ptr [rsp+24H], 0xFFFFFFFF85EBCA77 |
|
33C0 xor eax, eax |
|
89442428 mov dword ptr [rsp+28H], eax |
|
C744242C4F86C861 mov dword ptr [rsp+2CH], 0x61C8864F |
|
|
|
G_M18702_IG26: |
|
8B442420 mov eax, dword ptr [rsp+20H] |
|
8B542430 mov edx, dword ptr [rsp+30H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442420 mov dword ptr [rsp+20H], eax |
|
8B442424 mov eax, dword ptr [rsp+24H] |
|
8B542434 mov edx, dword ptr [rsp+34H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442424 mov dword ptr [rsp+24H], eax |
|
8B442428 mov eax, dword ptr [rsp+28H] |
|
8B542438 mov edx, dword ptr [rsp+38H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442428 mov dword ptr [rsp+28H], eax |
|
8B44242C mov eax, dword ptr [rsp+2CH] |
|
69C977CAEB85 imul ecx, ecx, 0xFFFFFFFF85EBCA77 |
|
03C1 add eax, ecx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
8944242C mov dword ptr [rsp+2CH], eax |
|
|
|
G_M18702_IG27: |
|
8B4C243C mov ecx, dword ptr [rsp+3CH] |
|
83C101 add ecx, 1 |
|
0F82A2020000 jb G_M18702_IG44 |
|
894C243C mov dword ptr [rsp+3CH], ecx |
|
8B0DC829EEFF mov ecx, dword ptr [reloc classVar[0x9f0c65d0]] |
|
8B44243C mov eax, dword ptr [rsp+3CH] |
|
83E003 and eax, 3 |
|
85C0 test eax, eax |
|
7509 jne SHORT G_M18702_IG28 |
|
894C2430 mov dword ptr [rsp+30H], ecx |
|
E9B0000000 jmp G_M18702_IG32 |
|
|
|
G_M18702_IG28: |
|
83F801 cmp eax, 1 |
|
7509 jne SHORT G_M18702_IG29 |
|
894C2434 mov dword ptr [rsp+34H], ecx |
|
E9A2000000 jmp G_M18702_IG32 |
|
|
|
G_M18702_IG29: |
|
83F802 cmp eax, 2 |
|
7509 jne SHORT G_M18702_IG30 |
|
894C2438 mov dword ptr [rsp+38H], ecx |
|
E994000000 jmp G_M18702_IG32 |
|
|
|
G_M18702_IG30: |
|
3344243C xor eax, dword ptr [rsp+3CH] |
|
751E jne SHORT G_M18702_IG31 |
|
C744242028442324 mov dword ptr [rsp+20H], 0x24234428 |
|
C744242477CAEB85 mov dword ptr [rsp+24H], 0xFFFFFFFF85EBCA77 |
|
33C0 xor eax, eax |
|
89442428 mov dword ptr [rsp+28H], eax |
|
C744242C4F86C861 mov dword ptr [rsp+2CH], 0x61C8864F |
|
|
|
G_M18702_IG31: |
|
8B442420 mov eax, dword ptr [rsp+20H] |
|
8B542430 mov edx, dword ptr [rsp+30H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442420 mov dword ptr [rsp+20H], eax |
|
8B442424 mov eax, dword ptr [rsp+24H] |
|
8B542434 mov edx, dword ptr [rsp+34H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442424 mov dword ptr [rsp+24H], eax |
|
8B442428 mov eax, dword ptr [rsp+28H] |
|
8B542438 mov edx, dword ptr [rsp+38H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442428 mov dword ptr [rsp+28H], eax |
|
8B44242C mov eax, dword ptr [rsp+2CH] |
|
69C977CAEB85 imul ecx, ecx, 0xFFFFFFFF85EBCA77 |
|
03C1 add eax, ecx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
8944242C mov dword ptr [rsp+2CH], eax |
|
|
|
G_M18702_IG32: |
|
8B4C243C mov ecx, dword ptr [rsp+3CH] |
|
83C101 add ecx, 1 |
|
0F82C7010000 jb G_M18702_IG44 |
|
894C243C mov dword ptr [rsp+3CH], ecx |
|
8B0DED28EEFF mov ecx, dword ptr [reloc classVar[0x9f0c65d0]] |
|
8B44243C mov eax, dword ptr [rsp+3CH] |
|
83E003 and eax, 3 |
|
85C0 test eax, eax |
|
7509 jne SHORT G_M18702_IG33 |
|
894C2430 mov dword ptr [rsp+30H], ecx |
|
E9B0000000 jmp G_M18702_IG37 |
|
|
|
G_M18702_IG33: |
|
83F801 cmp eax, 1 |
|
7509 jne SHORT G_M18702_IG34 |
|
894C2434 mov dword ptr [rsp+34H], ecx |
|
E9A2000000 jmp G_M18702_IG37 |
|
|
|
G_M18702_IG34: |
|
83F802 cmp eax, 2 |
|
7509 jne SHORT G_M18702_IG35 |
|
894C2438 mov dword ptr [rsp+38H], ecx |
|
E994000000 jmp G_M18702_IG37 |
|
|
|
G_M18702_IG35: |
|
3344243C xor eax, dword ptr [rsp+3CH] |
|
751E jne SHORT G_M18702_IG36 |
|
C744242028442324 mov dword ptr [rsp+20H], 0x24234428 |
|
C744242477CAEB85 mov dword ptr [rsp+24H], 0xFFFFFFFF85EBCA77 |
|
33C0 xor eax, eax |
|
89442428 mov dword ptr [rsp+28H], eax |
|
C744242C4F86C861 mov dword ptr [rsp+2CH], 0x61C8864F |
|
|
|
G_M18702_IG36: |
|
8B442420 mov eax, dword ptr [rsp+20H] |
|
8B542430 mov edx, dword ptr [rsp+30H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442420 mov dword ptr [rsp+20H], eax |
|
8B442424 mov eax, dword ptr [rsp+24H] |
|
8B542434 mov edx, dword ptr [rsp+34H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442424 mov dword ptr [rsp+24H], eax |
|
8B442428 mov eax, dword ptr [rsp+28H] |
|
8B542438 mov edx, dword ptr [rsp+38H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442428 mov dword ptr [rsp+28H], eax |
|
8B44242C mov eax, dword ptr [rsp+2CH] |
|
69C977CAEB85 imul ecx, ecx, 0xFFFFFFFF85EBCA77 |
|
03C1 add eax, ecx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
8944242C mov dword ptr [rsp+2CH], eax |
|
|
|
G_M18702_IG37: |
|
8B4C243C mov ecx, dword ptr [rsp+3CH] |
|
83C101 add ecx, 1 |
|
0F82EC000000 jb G_M18702_IG44 |
|
894C243C mov dword ptr [rsp+3CH], ecx |
|
8B0D1228EEFF mov ecx, dword ptr [reloc classVar[0x9f0c65d0]] |
|
8B44243C mov eax, dword ptr [rsp+3CH] |
|
83E003 and eax, 3 |
|
85C0 test eax, eax |
|
7509 jne SHORT G_M18702_IG38 |
|
894C2430 mov dword ptr [rsp+30H], ecx |
|
E9B0000000 jmp G_M18702_IG42 |
|
|
|
G_M18702_IG38: |
|
83F801 cmp eax, 1 |
|
7509 jne SHORT G_M18702_IG39 |
|
894C2434 mov dword ptr [rsp+34H], ecx |
|
E9A2000000 jmp G_M18702_IG42 |
|
|
|
G_M18702_IG39: |
|
83F802 cmp eax, 2 |
|
7509 jne SHORT G_M18702_IG40 |
|
894C2438 mov dword ptr [rsp+38H], ecx |
|
E994000000 jmp G_M18702_IG42 |
|
|
|
G_M18702_IG40: |
|
3344243C xor eax, dword ptr [rsp+3CH] |
|
751E jne SHORT G_M18702_IG41 |
|
C744242028442324 mov dword ptr [rsp+20H], 0x24234428 |
|
C744242477CAEB85 mov dword ptr [rsp+24H], 0xFFFFFFFF85EBCA77 |
|
33C0 xor eax, eax |
|
89442428 mov dword ptr [rsp+28H], eax |
|
C744242C4F86C861 mov dword ptr [rsp+2CH], 0x61C8864F |
|
|
|
G_M18702_IG41: |
|
8B442420 mov eax, dword ptr [rsp+20H] |
|
8B542430 mov edx, dword ptr [rsp+30H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442420 mov dword ptr [rsp+20H], eax |
|
8B442424 mov eax, dword ptr [rsp+24H] |
|
8B542434 mov edx, dword ptr [rsp+34H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442424 mov dword ptr [rsp+24H], eax |
|
8B442428 mov eax, dword ptr [rsp+28H] |
|
8B542438 mov edx, dword ptr [rsp+38H] |
|
69D277CAEB85 imul edx, edx, 0xFFFFFFFF85EBCA77 |
|
03C2 add eax, edx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
89442428 mov dword ptr [rsp+28H], eax |
|
8B44242C mov eax, dword ptr [rsp+2CH] |
|
69C977CAEB85 imul ecx, ecx, 0xFFFFFFFF85EBCA77 |
|
03C1 add eax, ecx |
|
C1C00D rol eax, 13 |
|
69C0B179379E imul eax, eax, 0xFFFFFFFF9E3779B1 |
|
8944242C mov dword ptr [rsp+2CH], eax |
|
|
|
G_M18702_IG42: |
|
8B4C243C mov ecx, dword ptr [rsp+3CH] |
|
83C101 add ecx, 1 |
|
7215 jb SHORT G_M18702_IG44 |
|
894C243C mov dword ptr [rsp+3CH], ecx |
|
488D4C2420 lea rcx, bword ptr [rsp+20H] |
|
E8F7DEFFFF call System.HashCode:ToHashCode():int:this |
|
90 nop |
|
|
|
G_M18702_IG43: |
|
4883C440 add rsp, 64 |
|
5F pop rdi |
|
C3 ret |
|
|
|
G_M18702_IG44: |
|
E86B5FC05E call CORINFO_HELP_OVERFLOW |
|
CC int3 |
|
|
|
; Total bytes of code 1814, prolog size 22 for method System.HashCode:Test_8():int |
|
; ============================================================ |
TL;DR - Inlining should not be used for any HashCode public interface method.
RyuJIT Rant
I've noticed that jumps are still present in the Add() code. They shouldn't be: there is enough information to eliminate them entirely. These results might look very different if RyuJIT is improved - possibly exactly like the Combine() code. Changing
_length & 0x3
to_length % 3
doesn't change the code (so it's not bit twiddling sorcery tripping up the jitter).This is the offending C#:
If
hc
were a field on a heap object I'd totally understand why no optimization can occur (another thread might access it); however, in this case it is absolutely known that all the code exists 100% in the stack (apart from astatic readonly
read). At the very least, the jumps could be eliminated. I'm guessing some constraint must be loosened?/RyuJIT Rant
Combine.asm
contains calls to all Combine().Add.asm
contains increasing amounts of calls of Add() (up to 8).8 adds are used to simulate when you'd use Add(): when there is no Combine() overload.