Untitled Diff

Creado El diff nunca expira
117 eliminaciones
210 líneas
100 adiciones
196 líneas
; Assembly listing for method Program:Main()
; Assembly listing for method Program:Main()
; Emitting BLENDED_CODE for X64 CPU with AVX - Windows
; Emitting BLENDED_CODE for X64 CPU with AVX - Windows
; optimized code
; optimized code
; rsp based frame
; rsp based frame
; partially interruptible
; partially interruptible
; No PGO data
; No PGO data
; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
; Final local variable assignments
;
;
; V00 loc0 [V00,T06] ( 3, 3 ) struct (24) [rsp+78H] do-not-enreg[SF]
; V00 loc0 [V00 ] ( 3, 3 ) struct (24) [rsp+50H] do-not-enreg[XSF] addr-exposed
; V01 loc1 [V01,T07] ( 2, 2 ) struct (24) [rsp+60H] do-not-enreg[S] ld-addr-op single-def
; V01 loc1 [V01 ] ( 1, 1 ) struct (24) [rsp+38H] do-not-enreg[XS] must-init addr-exposed ld-addr-op
;* V02 loc2 [V02 ] ( 0, 0 ) int -> zero-ref
;* V02 loc2 [V02 ] ( 0, 0 ) int -> zero-ref
;* V03 loc3 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd exact
;* V03 loc3 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd exact
; V04 OutArgs [V04 ] ( 1, 1 ) lclBlk (48) [rsp+00H] "OutgoingArgSpace"
; V04 OutArgs [V04 ] ( 1, 1 ) lclBlk (48) [rsp+00H] "OutgoingArgSpace"
; V05 tmp1 [V05,T00] ( 2, 4 ) ref -> rsi class-hnd exact single-def "NewObj constructor temp"
; V05 tmp1 [V05,T00] ( 2, 4 ) ref -> rsi class-hnd exact single-def "NewObj constructor temp"
;* V06 tmp2 [V06 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[S] "impAppendStmt"
;* V06 tmp2 [V06 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[S] "impAppendStmt"
; V07 tmp3 [V07 ] ( 2, 4 ) struct (24) [rsp+48H] do-not-enreg[XS] addr-exposed "by-value struct argument"
; V07 tmp3 [V07,T02] ( 2, 4 ) int -> rsi "argument with side effect"
; V08 tmp4 [V08 ] ( 2, 4 ) struct (24) [rsp+30H] do-not-enreg[XS] addr-exposed "by-value struct argument"
; V08 tmp4 [V08,T01] ( 2, 4 ) ref -> rdi single-def "argument with side effect"
; V09 tmp5 [V09,T02] ( 2, 4 ) int -> rdi "argument with side effect"
; V09 tmp5 [V09,T03] ( 2, 4 ) int -> rax "argument with side effect"
; V10 tmp6 [V10,T01] ( 2, 4 ) ref -> rbx single-def "argument with side effect"
;* V10 cse0 [V10,T05] ( 0, 0 ) long -> zero-ref "CSE - aggressive"
; V11 tmp7 [V11,T03] ( 2, 4 ) int -> rax "argument with side effect"
; V11 cse1 [V11,T04] ( 3, 3 ) ref -> rcx "CSE - aggressive"
; V12 tmp8 [V12,T04] ( 2, 4 ) int -> rsi "argument with side effect"
;* V13 cse0 [V13,T08] ( 0, 0 ) long -> zero-ref "CSE - aggressive"
; V14 cse1 [V14,T05] ( 3, 3 ) ref -> rcx "CSE - aggressive"
;
;
; Lcl frame size = 144
; Lcl frame size = 104


G_M27646_IG01: ;; offset=0000H
G_M27646_IG01: ;; offset=0000H
57 push rdi
57 push rdi
56 push rsi
56 push rsi
53 push rbx
4883EC68 sub rsp, 104
4881EC90000000 sub rsp, 144
C5F877 vzeroupper
C5F877 vzeroupper
;; size=13 bbWeight=1 PerfScore 4.25
C5D857E4 vxorps xmm4, xmm4
G_M27646_IG02: ;; offset=000DH
C5FA7F642438 vmovdqu xmmword ptr [rsp+38H], xmm4
48B958E88437F97F0000 mov rcx, 0x7FF93784E858 ; Runtime
33C0 xor eax, eax
E8E439895F call CORINFO_HELP_NEWSFAST
4889442448 mov qword ptr [rsp+48H], rax
;; size=26 bbWeight=1 PerfScore 6.83
G_M27646_IG02: ;; offset=001AH
48B958E84637F97F0000 mov rcx, 0x7FF93746E858 ; Runtime
E8C739875F call CORINFO_HELP_NEWSFAST
488BF0 mov rsi, rax
488BF0 mov rsi, rax
48B918186B37F97F0000 mov rcx, 0x7FF9376B1818
48B918182D37F97F0000 mov rcx, 0x7FF9372D1818
BA05000000 mov edx, 5
BA05000000 mov edx, 5
E89D3B895F call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
E8803B875F call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
48B9C81E8024D6010000 mov rcx, 0x1D624801EC8 ; data for Program:s_rt
48B9C81E40DAC7010000 mov rcx, 0x1C7DA401EC8 ; data for Program:s_rt
488BD6 mov rdx, rsi
488BD6 mov rdx, rsi
E86BE6D1FF call CORINFO_HELP_ASSIGN_REF
E85EE6D1FF call CORINFO_HELP_ASSIGN_REF
48B9B81E8024D6010000 mov rcx, 0x1D624801EB8 ; box for Program:s_2
48B9B81E40DAC7010000 mov rcx, 0x1C7DA401EB8 ; box for Program:s_2
488B09 mov rcx, gword ptr [rcx]
488B09 mov rcx, gword ptr [rcx]
C5FA6F4108 vmovdqu xmm0, xmmword ptr [rcx+08H]
C5FA6F4108 vmovdqu xmm0, xmmword ptr [rcx+08H]
C5FA7F442478 vmovdqu xmmword ptr [rsp+78H], xmm0
C5FA7F442450 vmovdqu xmmword ptr [rsp+50H], xmm0
488B5118 mov rdx, qword ptr [rcx+18H]
488B5118 mov rdx, qword ptr [rcx+18H]
4889942488000000 mov qword ptr [rsp+88H], rdx
4889542460 mov qword ptr [rsp+60H], rdx
33D2 xor edx, edx
8B710C mov esi, dword ptr [rcx+0CH]
C5F857C0 vxorps xmm0, xmm0
48B9D8E24637F97F0000 mov rcx, 0x7FF93746E2D8 ; short[]
C5FA7F442460 vmovdqu xmmword ptr [rsp+60H], xmm0
4889542470 mov qword ptr [rsp+70H], rdx
C5FA6F442460 vmovdqu xmm0, xmmword ptr [rsp+60H]
C5FA7F442448 vmovdqu xmmword ptr [rsp+48H], xmm0
488B542470 mov rdx, qword ptr [rsp+70H]
4889542458 mov qword ptr [rsp+58H], rdx
400FB6742478 movzx rsi, byte ptr [rsp+78H]
8B790C mov edi, dword ptr [rcx+0CH]
48B9D8E28437F97F0000 mov rcx, 0x7FF93784E2D8 ; short[]
BA01000000 mov edx, 1
BA01000000 mov edx, 1
E8733A895F call CORINFO_HELP_NEWARR_1_VC
E8863A875F call CORINFO_HELP_NEWARR_1_VC
488BD8 mov rbx, rax
488BF8 mov rdi, rax
C5FA6F442478 vmovdqu xmm0, xmmword ptr [rsp+78H]
488D4C2450 lea rcx, [rsp+50H]
C5FA7F442430 vmovdqu xmmword ptr [rsp+30H], xmm0
488B8C2488000000 mov rcx, qword ptr [rsp+88H]
48894C2440 mov qword ptr [rsp+40H], rcx
488D4C2430 lea rcx, [rsp+30H]
33D2 xor edx, edx
33D2 xor edx, edx
FF1592A05B00 call [Program:M23(S0,ushort):ulong]
FF15CEA01B00 call [Program:M23(S0,ushort):ulong]
480FBEC0 movsx rax, al
480FBEC0 movsx rax, al
C744242801000000 mov dword ptr [rsp+28H], 1
C744242801000000 mov dword ptr [rsp+28H], 1
448BC7 mov r8d, edi
448BC6 mov r8d, esi
4C8BCB mov r9, rbx
4C8BCF mov r9, rdi
89442420 mov dword ptr [rsp+20H], eax
89442420 mov dword ptr [rsp+20H], eax
8BD6 mov edx, esi
488D4C2438 lea rcx, [rsp+38H]
488D4C2448 lea rcx, [rsp+48H]
0FB6542450 movzx rdx, byte ptr [rsp+50H]
FF1587A05B00 call [Program:M24(S1,ubyte,uint,short[],byte,ushort)]
FF15C0A01B00 call [Program:M24(S1,ubyte,uint,short[],byte,ushort)]
90 nop
90 nop
;; size=237 bbWeight=1 PerfScore 44.58
;; size=167 bbWeight=1 PerfScore 29.75
G_M27646_IG03: ;; offset=00FAH
G_M27646_IG03: ;; offset=00C1H
4881C490000000 add rsp, 144
4883C468 add rsp, 104
5B pop rbx
5E pop rsi
5E pop rsi
5F pop rdi
5F pop rdi
C3 ret
C3 ret
;; size=11 bbWeight=1 PerfScore 2.75
;; size=7 bbWeight=1 PerfScore 2.25


; Total bytes of code 261, prolog size 13, PerfScore 77.68, instruction count 55, allocated bytes for code 261 (MethodHash=cb019401) for method Program:Main()
; Total bytes of code 200, prolog size 26, PerfScore 58.83, instruction count 44, allocated bytes for code 200 (MethodHash=cb019401) for method Program:Main()
; ============================================================
; ============================================================


; Assembly listing for method Program:M23(S0,ushort):ulong
; Assembly listing for method Program:M23(S0,ushort):ulong
; Emitting BLENDED_CODE for X64 CPU with AVX - Windows
; Emitting BLENDED_CODE for X64 CPU with AVX - Windows
; optimized code
; optimized code
; rsp based frame
; rsp based frame
; partially interruptible
; partially interruptible
; No PGO data
; No PGO data
; Final local variable assignments
; Final local variable assignments
;
;
; V00 arg0 [V00,T00] ( 5, 10 ) byref -> rcx ld-addr-op single-def
; V00 arg0 [V00,T00] ( 5, 10 ) byref -> rcx ld-addr-op single-def
; V01 arg1 [V01,T01] ( 3, 3 ) ushort -> rsi single-def
; V01 arg1 [V01,T01] ( 3, 3 ) ushort -> rsi single-def
;* V02 loc0 [V02 ] ( 0, 0 ) ubyte -> zero-ref single-def
;* V02 loc0 [V02 ] ( 0, 0 ) ubyte -> zero-ref single-def
; V03 loc1 [V03,T05] ( 2, 2 ) int -> rbx single-def
; V03 loc1 [V03,T05] ( 2, 2 ) int -> rbx single-def
; V04 loc2 [V04,T04] ( 2, 2 ) ref -> r9 class-hnd exact single-def
; V04 loc2 [V04,T04] ( 2, 2 ) ref -> r9 class-hnd exact single-def
; V05 loc3 [V05,T06] ( 2, 2 ) byte -> rcx single-def
; V05 loc3 [V05,T06] ( 2, 2 ) byte -> rcx single-def
; V06 loc4 [V06,T02] ( 3, 3 ) ubyte -> rdi single-def
; V06 loc4 [V06,T02] ( 3, 3 ) ubyte -> rdi single-def
; V07 OutArgs [V07 ] ( 1, 1 ) lclBlk (48) [rsp+00H] "OutgoingArgSpace"
; V07 OutArgs [V07 ] ( 1, 1 ) lclBlk (48) [rsp+00H] "OutgoingArgSpace"
;* V08 tmp1 [V08 ] ( 0, 0 ) byref -> zero-ref single-def "dup spill"
;* V08 tmp1 [V08 ] ( 0, 0 ) byref -> zero-ref single-def "dup spill"
; V09 tmp2 [V09 ] ( 2, 4 ) struct (24) [rsp+30H] do-not-enreg[XS] addr-exposed "by-value struct argument"
; V09 tmp2 [V09 ] ( 2, 4 ) struct (24) [rsp+30H] do-not-enreg[XS] addr-exposed "by-value struct argument"
; V10 cse0 [V10,T03] ( 3, 3 ) long -> rbp "CSE - aggressive"
; V10 cse0 [V10,T03] ( 3, 3 ) long -> rbp "CSE - aggressive"
;
;
; Lcl frame size = 72
; Lcl frame size = 72


G_M47476_IG01: ;; offset=0000H
G_M47476_IG01: ;; offset=0000H
57 push rdi
57 push rdi
56 push rsi
56 push rsi
55 push rbp
55 push rbp
53 push rbx
53 push rbx
4883EC48 sub rsp, 72
4883EC48 sub rsp, 72
C5F877 vzeroupper
C5F877 vzeroupper
8BF2 mov esi, edx
8BF2 mov esi, edx
;; size=13 bbWeight=1 PerfScore 5.50
;; size=13 bbWeight=1 PerfScore 5.50
G_M47476_IG02: ;; offset=000DH
G_M47476_IG02: ;; offset=000DH
400FB639 movzx rdi, byte ptr [rcx]
400FB639 movzx rdi, byte ptr [rcx]
8D57FF lea edx, [rdi-01H]
8D57FF lea edx, [rdi-01H]
8811 mov byte ptr [rcx], dl
8811 mov byte ptr [rcx], dl
8B5914 mov ebx, dword ptr [rcx+14H]
8B5914 mov ebx, dword ptr [rcx+14H]
48B9D8E28437F97F0000 mov rcx, 0x7FF93784E2D8 ; short[]
48B9D8E24637F97F0000 mov rcx, 0x7FF93746E2D8 ; short[]
BA01000000 mov edx, 1
BA01000000 mov edx, 1
E8C339895F call CORINFO_HELP_NEWARR_1_VC
E8033A875F call CORINFO_HELP_NEWARR_1_VC
4C8BC8 mov r9, rax
4C8BC8 mov r9, rax
48BD52186B37F97F0000 mov rbp, 0x7FF9376B1852 ; data for Program:s_1
48BD52182D37F97F0000 mov rbp, 0x7FF9372D1852 ; data for Program:s_1
480FBE4D00 movsx rcx, byte ptr [rbp]
480FBE4D00 movsx rcx, byte ptr [rbp]
48BAC01E8024D6010000 mov rdx, 0x1D624801EC0 ; box for Program:s_15
48BAC01E40DAC7010000 mov rdx, 0x1C7DA401EC0 ; box for Program:s_15
488B12 mov rdx, gword ptr [rdx]
488B12 mov rdx, gword ptr [rdx]
C5FA6F4208 vmovdqu xmm0, xmmword ptr [rdx+08H]
C5FA6F4208 vmovdqu xmm0, xmmword ptr [rdx+08H]