Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save HurricanKai/3f6fbf562c22b9f63fe8d9a6a37001c4 to your computer and use it in GitHub Desktop.
Save HurricanKai/3f6fbf562c22b9f63fe8d9a6a37001c4 to your computer and use it in GitHub Desktop.

.NET Core 2.2.0 (CoreCLR 4.6.27110.04, CoreFX 4.6.27110.04), 64bit RyuJIT

; MinecraftNetworkBenchmarks.ReadLongBenchmark.ReadLongPooledSync()
       mov     rcx,qword ptr [rcx+8]
       call    MinecraftNetworkBenchmarks.FullSyncDevNetworkUtils.ReadLong(System.IO.Stream)
       nop
; Total bytes of code 10
; MinecraftNetworkBenchmarks.FullSyncDevNetworkUtils.ReadLong(System.IO.Stream)
       mov     rcx,1FE30D67258h
       mov     rcx,qword ptr [rcx]
       mov     edx,8
       mov     rax,qword ptr [rcx]
       mov     rax,qword ptr [rax+40h]
       call    qword ptr [rax+20h]
       mov     qword ptr [rbp-50h],rax
       lea     rdx,[rbp-20h]
       mov     rcx,qword ptr [rbp-50h]
       mov     r11,7FF9D42F0438h
       mov     rax,7FF9D42F0438h
       cmp     dword ptr [rcx],ecx
       call    qword ptr [rax]
       cmp     dword ptr [rbp-18h],0
       jge     M01_L01
       mov     rdx,qword ptr [rbp-20h]
       mov     rcx,rdx
       test    rcx,rcx
       je      M01_L00
       mov     rax,offset System_Private_CoreLib+0xa81d18
       cmp     qword ptr [rcx],rax
       je      M01_L00
       mov     rcx,rax
       call    coreclr!GC_Initialize+0x41070
       mov     rcx,rax
M01_L00:
       lea     rdx,[rbp-30h]
       mov     rax,qword ptr [rcx]
       mov     rax,qword ptr [rax+40h]
       call    qword ptr [rax+28h]
       mov     edx,dword ptr [rbp-18h]
       and     edx,7FFFFFFFh
       mov     ecx,dword ptr [rbp-14h]
       cmp     edx,dword ptr [rbp-28h]
       ja      M01_L06
       mov     eax,dword ptr [rbp-28h]
       sub     eax,edx
       cmp     eax,ecx
       jb      M01_L06
       mov     rax,qword ptr [rbp-30h]
       movsxd  rdx,edx
       add     rdx,rax
       mov     rdi,rdx
       mov     rdx,rdi
       mov     rdi,rdx
       jmp     M01_L09
M01_L01:
       cmp     qword ptr [rbp-20h],0
       je      M01_L08
       mov     rdx,qword ptr [rbp-20h]
       mov     rcx,offset System_Private_CoreLib+0xf775a
       call    coreclr+0x1ed80
       mov     ecx,dword ptr [rbp-18h]
       mov     edx,dword ptr [rbp-14h]
       and     edx,7FFFFFFFh
       test    rax,rax
       jne     M01_L07
       mov     eax,ecx
       or      eax,edx
       jne     M01_L05
       xor     r8d,r8d
       xor     edx,edx
M01_L02:
       mov     rdi,r8
       mov     ecx,edx
       jmp     M01_L09
M01_L03:
       call    System.ThrowHelper.ThrowArgumentOutOfRangeException()
       int     3
M01_L04:
       call    System.ThrowHelper.ThrowArgumentOutOfRangeException()
       int     3
M01_L05:
       call    System.ThrowHelper.ThrowArgumentOutOfRangeException()
       int     3
M01_L06:
       call    System.ThrowHelper.ThrowArgumentOutOfRangeException()
       int     3
M01_L07:
       cmp     dword ptr [rax+8],ecx
       jb      M01_L03
       mov     r8d,dword ptr [rax+8]
       sub     r8d,ecx
       cmp     r8d,edx
       jb      M01_L03
       add     rax,10h
       movsxd  rcx,ecx
       lea     r8,[rcx+rax]
       jmp     M01_L02
M01_L08:
       lea     rcx,[rbp-30h]
       xorps   xmm0,xmm0
       movdqu  xmmword ptr [rcx],xmm0
       mov     rdi,qword ptr [rbp-30h]
       mov     ecx,dword ptr [rbp-28h]
M01_L09:
       mov     rdx,rdi
       test    ecx,ecx
       jb      M01_L04
       cmp     ecx,8
       jb      M01_L04
       mov     rdi,rdx
       mov     rdx,rdi
       mov     ecx,8
       mov     rdi,rdx
       lea     rdx,[rbp-48h]
       mov     qword ptr [rdx],rdi
       mov     dword ptr [rdx+8],ecx
       mov     rcx,rsi
       lea     rdx,[rbp-48h]
       mov     rax,qword ptr [rsi]
       mov     rax,qword ptr [rax+60h]
       call    qword ptr [rax+18h]
       mov     rcx,rdi
       mov     rdi,rcx
       mov     rcx,rdi
       mov     rdi,rcx
       mov     rcx,rdi
       mov     rcx,qword ptr [rcx]
       mov     r11d,ecx
       mov     eax,r11d
       and     eax,0FF00FFh
       and     r11d,0FF00FF00h
       rol     eax,18h
       rol     r11d,8
       add     eax,r11d
       mov     r11d,eax
       shl     r11,20h
       shr     rcx,20h
       mov     eax,ecx
       and     eax,0FF00FFh
       and     ecx,0FF00FF00h
       rol     eax,18h
       rol     ecx,8
       add     eax,ecx
       mov     ecx,eax
       add     rcx,r11
       mov     rsi,rcx
       mov     rcx,qword ptr [rbp-50h]
       mov     r11,7FF9D42F0440h
       mov     rax,7FF9D42F0440h
       cmp     dword ptr [rcx],ecx
       call    qword ptr [rax]
       mov     rax,rsi
       lea     rsp,[rbp-10h]
       pop     rsi
       pop     rdi
       pop     rbp
       ret
       push    rbp
       push    rdi
       push    rsi
       sub     rsp,30h
       mov     rbp,qword ptr [rcx+20h]
       mov     qword ptr [rsp+20h],rbp
       lea     rbp,[rbp+80h]
       cmp     qword ptr [rbp-50h],0
       je      M01_L10
       mov     rcx,qword ptr [rbp-50h]
       mov     r11,7FF9D42F0440h
       mov     rax,7FF9D42F0440h
       cmp     dword ptr [rcx],ecx
       call    qword ptr [rax]
M01_L10:
       nop
; Total bytes of code 542
; System.ThrowHelper.ThrowArgumentOutOfRangeException()
       lea     rcx,[System_Private_CoreLib+0xa541b8
       call    System_Private_CoreLib+0x2d4080
       mov     rsi,rax
       mov     rcx,rsi
       call    System.ArgumentOutOfRangeException..ctor()
       mov     rcx,rsi
       call    System_Private_CoreLib+0x2d4098
       int     3
       int     3
       int     3
       int     3
       int     3
       int     3
       int     3
       int     3
       int     3
       int     3
       int     3
       int     3
       push    rsi
       sub     rsp,20h
       lea     rcx,[System_Private_CoreLib+0xa54128
; Total bytes of code 55

No ILOffsetMap found System.IDisposable.Dispose()

.NET Core 2.2.0 (CoreCLR 4.6.27110.04, CoreFX 4.6.27110.04), 64bit RyuJIT

; MinecraftNetworkBenchmarks.ReadLongBenchmark.ReadLongAllocatingSync()
       nop
; Total bytes of code 1
; MinecraftNetworkBenchmarks.FullSyncMasterNetworkUtils.ReadLong(System.IO.Stream)
       mov     rcx,offset System_Private_CoreLib+0xa38d50
       mov     edx,8
       call    coreclr!GC_Initialize+0x42850
       lea     rcx,[rax+10h]
       mov     edi,8
       mov     rbx,rcx
       lea     rcx,[rsp+20h]
       mov     qword ptr [rcx],rbx
       mov     dword ptr [rcx+8],edi
       mov     rcx,rsi
       lea     rdx,[rsp+20h]
       mov     rax,qword ptr [rsi]
       mov     rax,qword ptr [rax+60h]
       call    qword ptr [rax+18h]
       mov     rax,rbx
       mov     rbx,rax
       mov     eax,edi
       mov     rcx,rbx
       mov     edi,eax
       mov     rbx,rcx
       mov     eax,edi
       mov     rcx,rbx
       cmp     eax,8
       jl      00007ff9`d4403754
; Total bytes of code 87
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment