forked from MihaZupan/runtime-utils
-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[JitDiff X64] [EgorBo] Fix PHI non-null pattern #477
Comments
Top method regressions11 (1.31 % of base) - System.Threading.TimerQueueTimer:get_DisplayString():System.String:this ; Assembly listing for method System.Threading.TimerQueueTimer:get_DisplayString():System.String:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 30 single block inlinees; 10 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T01] ( 9, 8 ) ref -> rbx this class-hnd single-def <System.Threading.TimerQueueTimer>
; V01 loc0 [V01,T08] ( 4, 3.50) ref -> r15 class-hnd <System.String>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V03 tmp1 [V03,T02] ( 4, 6 ) ref -> rax class-hnd single-def "dup spill" <System.Type>
;* V04 tmp2 [V04 ] ( 0, 0 ) ref -> zero-ref single-def
; V05 tmp3 [V05,T17] ( 4, 2.50) ref -> rdi
; V06 tmp4 [V06,T00] ( 12, 24 ) ref -> r14 class-hnd exact single-def "dup spill" <System.String[]>
;* V07 tmp5 [V07 ] ( 0, 0 ) ref -> zero-ref single-def
;* V08 tmp6 [V08 ] ( 0, 0 ) ref -> zero-ref single-def
;* V09 tmp7 [V09 ] ( 0, 0 ) int -> zero-ref
;* V10 tmp8 [V10 ] ( 0, 0 ) ref -> zero-ref
;* V11 tmp9 [V11 ] ( 0, 0 ) ref -> zero-ref
;* V12 tmp10 [V12 ] ( 0, 0 ) int -> zero-ref
-; V13 tmp11 [V13,T09] ( 5, 3 ) ref -> rdi
+; V13 tmp11 [V13,T09] ( 4, 3.50) ref -> rdi
;* V14 tmp12 [V14 ] ( 0, 0 ) ref -> zero-ref single-def
;* V15 tmp13 [V15 ] ( 0, 0 ) ref -> zero-ref single-def
;* V16 tmp14 [V16 ] ( 0, 0 ) int -> zero-ref
;* V17 tmp15 [V17 ] ( 0, 0 ) ref -> zero-ref single-def
;* V18 tmp16 [V18 ] ( 0, 0 ) ref -> zero-ref single-def
;* V19 tmp17 [V19 ] ( 0, 0 ) ref -> zero-ref single-def
;* V20 tmp18 [V20 ] ( 0, 0 ) int -> zero-ref
-; V21 tmp19 [V21,T20] ( 3, 2 ) ref -> rdx
+; V21 tmp19 [V21,T21] ( 2, 2 ) ref -> rdx
;* V22 tmp20 [V22 ] ( 0, 0 ) ref -> zero-ref single-def
;* V23 tmp21 [V23 ] ( 0, 0 ) ref -> zero-ref single-def
;* V24 tmp22 [V24 ] ( 0, 0 ) int -> zero-ref
;* V25 tmp23 [V25 ] ( 0, 0 ) ref -> zero-ref
;* V26 tmp24 [V26 ] ( 0, 0 ) ref -> zero-ref
;* V27 tmp25 [V27 ] ( 0, 0 ) int -> zero-ref
-; V28 tmp26 [V28,T10] ( 5, 3 ) ref -> rdi
+; V28 tmp26 [V28,T10] ( 4, 3.50) ref -> rdi
;* V29 tmp27 [V29 ] ( 0, 0 ) ref -> zero-ref single-def
;* V30 tmp28 [V30 ] ( 0, 0 ) ref -> zero-ref single-def
;* V31 tmp29 [V31 ] ( 0, 0 ) int -> zero-ref
;* V32 tmp30 [V32 ] ( 0, 0 ) ref -> zero-ref single-def
;* V33 tmp31 [V33 ] ( 0, 0 ) ref -> zero-ref single-def
;* V34 tmp32 [V34 ] ( 0, 0 ) ref -> zero-ref single-def
;* V35 tmp33 [V35 ] ( 0, 0 ) int -> zero-ref
-; V36 tmp34 [V36,T21] ( 3, 2 ) ref -> rdx
+; V36 tmp34 [V36,T22] ( 2, 2 ) ref -> rdx
; V37 tmp35 [V37,T03] ( 4, 6 ) ref -> rdi class-hnd single-def "dup spill" <System.Object>
;* V38 tmp36 [V38 ] ( 0, 0 ) ref -> zero-ref single-def
;* V39 tmp37 [V39 ] ( 0, 0 ) ref -> zero-ref single-def
;* V40 tmp38 [V40 ] ( 0, 0 ) int -> zero-ref
;* V41 tmp39 [V41 ] ( 0, 0 ) ref -> zero-ref single-def
;* V42 tmp40 [V42 ] ( 0, 0 ) ref -> zero-ref single-def
;* V43 tmp41 [V43 ] ( 0, 0 ) ref -> zero-ref single-def
;* V44 tmp42 [V44 ] ( 0, 0 ) int -> zero-ref
-; V45 tmp43 [V45,T22] ( 3, 2 ) ref -> rdx
+; V45 tmp43 [V45,T20] ( 3, 2 ) ref -> rdx
;* V46 tmp44 [V46 ] ( 0, 0 ) ref -> zero-ref single-def
;* V47 tmp45 [V47 ] ( 0, 0 ) ref -> zero-ref single-def
;* V48 tmp46 [V48 ] ( 0, 0 ) int -> zero-ref
; V49 tmp47 [V49,T06] ( 5, 5 ) ref -> rdx
; V50 tmp48 [V50,T11] ( 3, 3 ) ref -> rdi class-hnd exact single-def "Single-def Box Helper" <System.TimeSpan>
; V51 tmp49 [V51,T12] ( 3, 3 ) ref -> rdi class-hnd exact single-def "Single-def Box Helper" <System.TimeSpan>
;* V52 tmp50 [V52 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Threading.TimerCallback>
; V53 tmp51 [V53,T13] ( 3, 3 ) long -> rdx "Inlining Arg"
;* V54 tmp52 [V54 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.Int128>
;* V55 tmp53 [V55 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Int128>
;* V56 tmp54 [V56 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Int128>
;* V57 tmp55 [V57 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inline ldloca(s) first use temp"
;* V58 tmp56 [V58 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Int128>
-; V59 tmp57 [V59,T18] ( 4, 2 ) long -> rax ld-addr-op "Inline ldloca(s) first use temp"
+; V59 tmp57 [V59,T18] ( 4, 2 ) long -> r13 ld-addr-op "Inline ldloca(s) first use temp"
;* V60 tmp58 [V60 ] ( 0, 0 ) long -> zero-ref "impAppendStmt"
-; V61 tmp59 [V61 ] ( 2, 1 ) long -> [rbp-0x28] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
-; V62 tmp60 [V62,T23] ( 2, 2 ) long -> rdi "impAppendStmt"
+; V61 tmp59 [V61 ] ( 2, 1 ) long -> [rbp-0x30] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
+; V62 tmp60 [V62,T23] ( 2, 2 ) long -> rsi "impAppendStmt"
;* V63 tmp61 [V63 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V64 tmp62 [V64 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V65 tmp63 [V65 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;* V66 tmp64 [V66 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Int128>
;* V67 tmp65 [V67 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V68 tmp66 [V68 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;* V69 tmp67 [V69 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;* V70 tmp68 [V70 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Int128>
;* V71 tmp69 [V71 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V72 tmp70 [V72 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Int128>
;* V73 tmp71 [V73 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Int128>
;* V74 tmp72 [V74 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;* V75 tmp73 [V75 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Int128>
;* V76 tmp74 [V76 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V77 tmp75 [V77,T27] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V78 tmp76 [V78 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;* V79 tmp77 [V79 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Int128>
;* V80 tmp78 [V80 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V81 tmp79 [V81,T28] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V82 tmp80 [V82 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V83 tmp81 [V83 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.TimeSpan>
; V84 tmp82 [V84,T14] ( 3, 3 ) long -> rdx "Inlining Arg"
;* V85 tmp83 [V85 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.Int128>
;* V86 tmp84 [V86 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Int128>
;* V87 tmp85 [V87 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Int128>
;* V88 tmp86 [V88 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inline ldloca(s) first use temp"
;* V89 tmp87 [V89 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Int128>
-; V90 tmp88 [V90,T19] ( 4, 2 ) long -> rax ld-addr-op "Inline ldloca(s) first use temp"
+; V90 tmp88 [V90,T19] ( 4, 2 ) long -> r12 ld-addr-op "Inline ldloca(s) first use temp"
;* V91 tmp89 [V91 ] ( 0, 0 ) long -> zero-ref "impAppendStmt"
-; V92 tmp90 [V92 ] ( 2, 1 ) long -> [rbp-0x30] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
-; V93 tmp91 [V93,T24] ( 2, 2 ) long -> rdi "impAppendStmt"
+; V92 tmp90 [V92 ] ( 2, 1 ) long -> [rbp-0x38] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
+; V93 tmp91 [V93,T24] ( 2, 2 ) long -> rsi "impAppendStmt"
;* V94 tmp92 [V94 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V95 tmp93 [V95 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V96 tmp94 [V96 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;* V97 tmp95 [V97 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Int128>
;* V98 tmp96 [V98 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V99 tmp97 [V99 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;* V100 tmp98 [V100 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;* V101 tmp99 [V101 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Int128>
;* V102 tmp100 [V102 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V103 tmp101 [V103 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Int128>
;* V104 tmp102 [V104 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Int128>
;* V105 tmp103 [V105 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;* V106 tmp104 [V106 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Int128>
;* V107 tmp105 [V107 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V108 tmp106 [V108,T29] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V109 tmp107 [V109 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;* V110 tmp108 [V110 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Int128>
;* V111 tmp109 [V111 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V112 tmp110 [V112,T30] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V113 tmp111 [V113 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V114 tmp112 [V114 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.TimeSpan>
;* V115 tmp113 [V115 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Threading.TimerCallback>
;* V116 tmp114 [V116 ] ( 0, 0 ) long -> zero-ref "field V54._lower (fldOffset=0x0)" P-INDEP
;* V117 tmp115 [V117 ] ( 0, 0 ) long -> zero-ref "field V54._upper (fldOffset=0x8)" P-INDEP
;* V118 tmp116 [V118 ] ( 0, 0 ) long -> zero-ref "field V55._lower (fldOffset=0x0)" P-INDEP
;* V119 tmp117 [V119 ] ( 0, 0 ) long -> zero-ref "field V55._upper (fldOffset=0x8)" P-INDEP
;* V120 tmp118 [V120 ] ( 0, 0 ) long -> zero-ref "field V56._lower (fldOffset=0x0)" P-INDEP
;* V121 tmp119 [V121 ] ( 0, 0 ) long -> zero-ref "field V56._upper (fldOffset=0x8)" P-INDEP
;* V122 tmp120 [V122 ] ( 0, 0 ) long -> zero-ref "field V58._lower (fldOffset=0x0)" P-INDEP
-; V123 tmp121 [V123,T15] ( 5, 2.50) long -> rdi "field V58._upper (fldOffset=0x8)" P-INDEP
+; V123 tmp121 [V123,T15] ( 5, 2.50) long -> rsi "field V58._upper (fldOffset=0x8)" P-INDEP
;* V124 tmp122 [V124 ] ( 0, 0 ) long -> zero-ref "field V66._lower (fldOffset=0x0)" P-INDEP
;* V125 tmp123 [V125 ] ( 0, 0 ) long -> zero-ref "field V66._upper (fldOffset=0x8)" P-INDEP
;* V126 tmp124 [V126 ] ( 0, 0 ) long -> zero-ref "field V70._lower (fldOffset=0x0)" P-INDEP
;* V127 tmp125 [V127 ] ( 0, 0 ) long -> zero-ref "field V70._upper (fldOffset=0x8)" P-INDEP
;* V128 tmp126 [V128 ] ( 0, 0 ) long -> zero-ref "field V72._lower (fldOffset=0x0)" P-INDEP
;* V129 tmp127 [V129 ] ( 0, 0 ) long -> zero-ref "field V72._upper (fldOffset=0x8)" P-INDEP
;* V130 tmp128 [V130 ] ( 0, 0 ) long -> zero-ref "field V73._lower (fldOffset=0x0)" P-INDEP
;* V131 tmp129 [V131 ] ( 0, 0 ) long -> zero-ref "field V73._upper (fldOffset=0x8)" P-INDEP
;* V132 tmp130 [V132 ] ( 0, 0 ) long -> zero-ref "field V75._lower (fldOffset=0x0)" P-INDEP
;* V133 tmp131 [V133 ] ( 0, 0 ) long -> zero-ref "field V75._upper (fldOffset=0x8)" P-INDEP
;* V134 tmp132 [V134 ] ( 0, 0 ) long -> zero-ref "field V79._lower (fldOffset=0x0)" P-INDEP
;* V135 tmp133 [V135 ] ( 0, 0 ) long -> zero-ref "field V79._upper (fldOffset=0x8)" P-INDEP
-; V136 tmp134 [V136,T25] ( 2, 1 ) long -> r13 "field V83._ticks (fldOffset=0x0)" P-INDEP
+; V136 tmp134 [V136,T25] ( 2, 1 ) long -> r12 "field V83._ticks (fldOffset=0x0)" P-INDEP
;* V137 tmp135 [V137 ] ( 0, 0 ) long -> zero-ref "field V85._lower (fldOffset=0x0)" P-INDEP
;* V138 tmp136 [V138 ] ( 0, 0 ) long -> zero-ref "field V85._upper (fldOffset=0x8)" P-INDEP
;* V139 tmp137 [V139 ] ( 0, 0 ) long -> zero-ref "field V86._lower (fldOffset=0x0)" P-INDEP
;* V140 tmp138 [V140 ] ( 0, 0 ) long -> zero-ref "field V86._upper (fldOffset=0x8)" P-INDEP
;* V141 tmp139 [V141 ] ( 0, 0 ) long -> zero-ref "field V87._lower (fldOffset=0x0)" P-INDEP
;* V142 tmp140 [V142 ] ( 0, 0 ) long -> zero-ref "field V87._upper (fldOffset=0x8)" P-INDEP
;* V143 tmp141 [V143 ] ( 0, 0 ) long -> zero-ref "field V89._lower (fldOffset=0x0)" P-INDEP
-; V144 tmp142 [V144,T16] ( 5, 2.50) long -> rdi "field V89._upper (fldOffset=0x8)" P-INDEP
+; V144 tmp142 [V144,T16] ( 5, 2.50) long -> rsi "field V89._upper (fldOffset=0x8)" P-INDEP
;* V145 tmp143 [V145 ] ( 0, 0 ) long -> zero-ref "field V97._lower (fldOffset=0x0)" P-INDEP
;* V146 tmp144 [V146 ] ( 0, 0 ) long -> zero-ref "field V97._upper (fldOffset=0x8)" P-INDEP
;* V147 tmp145 [V147 ] ( 0, 0 ) long -> zero-ref "field V101._lower (fldOffset=0x0)" P-INDEP
;* V148 tmp146 [V148 ] ( 0, 0 ) long -> zero-ref "field V101._upper (fldOffset=0x8)" P-INDEP
;* V149 tmp147 [V149 ] ( 0, 0 ) long -> zero-ref "field V103._lower (fldOffset=0x0)" P-INDEP
;* V150 tmp148 [V150 ] ( 0, 0 ) long -> zero-ref "field V103._upper (fldOffset=0x8)" P-INDEP
;* V151 tmp149 [V151 ] ( 0, 0 ) long -> zero-ref "field V104._lower (fldOffset=0x0)" P-INDEP
;* V152 tmp150 [V152 ] ( 0, 0 ) long -> zero-ref "field V104._upper (fldOffset=0x8)" P-INDEP
;* V153 tmp151 [V153 ] ( 0, 0 ) long -> zero-ref "field V106._lower (fldOffset=0x0)" P-INDEP
;* V154 tmp152 [V154 ] ( 0, 0 ) long -> zero-ref "field V106._upper (fldOffset=0x8)" P-INDEP
;* V155 tmp153 [V155 ] ( 0, 0 ) long -> zero-ref "field V110._lower (fldOffset=0x0)" P-INDEP
;* V156 tmp154 [V156 ] ( 0, 0 ) long -> zero-ref "field V110._upper (fldOffset=0x8)" P-INDEP
; V157 tmp155 [V157,T26] ( 2, 1 ) long -> r13 "field V114._ticks (fldOffset=0x0)" P-INDEP
; V158 tmp156 [V158,T04] ( 3, 6 ) ref -> rax single-def "argument with side effect"
; V159 tmp157 [V159,T05] ( 3, 6 ) ref -> rax single-def "argument with side effect"
; V160 tmp158 [V160,T07] ( 2, 4 ) ref -> rdx single-def "argument with side effect"
;
-; Lcl frame size = 16
+; Lcl frame size = 24
G_M46469_IG01:
push rbp
push r15
push r14
push r13
+ push r12
push rbx
- sub rsp, 16
- lea rbp, [rsp+0x30]
+ sub rsp, 24
+ lea rbp, [rsp+0x40]
mov rbx, rdi
- ;; size=20 bbWeight=1 PerfScore 6.00
+ ;; size=22 bbWeight=1 PerfScore 7.00
G_M46469_IG02:
mov rdi, gword ptr [rbx+0x20]
mov rax, 0xD1FFAB1E ; code for System.MulticastDelegate:GetMethodImpl():System.Reflection.MethodInfo:this
cmp dword ptr [rdi], edi
call [rax]System.MulticastDelegate:GetMethodImpl():System.Reflection.MethodInfo:this
mov rdi, rax
mov rax, qword ptr [rax]
mov rax, qword ptr [rax+0x40]
call [rax+0x38]System.Reflection.MemberInfo:get_DeclaringType():System.Type:this
test rax, rax
jne SHORT G_M46469_IG04
;; size=36 bbWeight=1 PerfScore 16.75
G_M46469_IG03:
xor rdi, rdi
jmp SHORT G_M46469_IG05
;; size=4 bbWeight=0.50 PerfScore 1.12
G_M46469_IG04:
mov rdi, rax
mov rax, qword ptr [rax]
mov rax, qword ptr [rax+0x50]
call [rax+0x20]System.Type:get_FullName():System.String:this
mov rdi, rax
;; size=16 bbWeight=0.50 PerfScore 3.75
G_M46469_IG05:
mov r15, rdi
test r15, r15
je SHORT G_M46469_IG07
;; size=8 bbWeight=1 PerfScore 1.50
G_M46469_IG06:
mov rsi, 0xD1FFAB1E ; '.'
mov rax, 0xD1FFAB1E ; code for System.String:Concat(System.String,System.String):System.String
call [rax]System.String:Concat(System.String,System.String):System.String
mov r15, rax
;; size=25 bbWeight=0.50 PerfScore 1.88
G_M46469_IG07:
mov rdi, 0xD1FFAB1E ; System.String[]
mov esi, 10
call CORINFO_HELP_NEWARR_1_OBJ
mov r14, rax
mov rdx, 0xD1FFAB1E ; 'DueTime = '
mov gword ptr [r14+0x10], rdx
cmp dword ptr [rbx+0x48], -1
je SHORT G_M46469_IG09
;; size=43 bbWeight=1 PerfScore 7.00
G_M46469_IG08:
mov edx, dword ptr [rbx+0x48]
mov edi, 0x3E8
- lea rax, [rbp-0x28]
- mulx rdi, rcx, rdi
+ lea rax, [rbp-0x30]
+ mulx rsi, rcx, rdi
mov qword ptr [rax], rcx
- mov rax, qword ptr [rbp-0x28]
+ mov r13, qword ptr [rbp-0x30]
sar rdx, 63
and rdx, 0x3E8
- sub rdi, rdx
- test rdi, rdi
- jg G_M46469_IG28
- test rdi, rdi
- jne SHORT G_M46469_IG10
- mov rcx, 0xD1FFAB1E
- cmp rax, rcx
- ja G_M46469_IG28
- jmp SHORT G_M46469_IG10
- ;; size=73 bbWeight=0.50 PerfScore 7.38
+ sub rsi, rdx
+ test rsi, rsi
+ jg G_M46469_IG22
+ test rsi, rsi
+ jne G_M46469_IG12
+ mov rdi, 0xD1FFAB1E
+ cmp r13, rdi
+ ja G_M46469_IG22
+ jmp G_M46469_IG12
+ ;; size=80 bbWeight=0.50 PerfScore 7.38
G_M46469_IG09:
mov rdi, 0xD1FFAB1E ; '(not set)'
- jmp SHORT G_M46469_IG12
- ;; size=12 bbWeight=0.50 PerfScore 1.12
+ ;; size=10 bbWeight=1 PerfScore 0.25
G_M46469_IG10:
- cmp rdi, -1
- jl G_M46469_IG28
- cmp rdi, -1
- jne SHORT G_M46469_IG11
- mov rdi, 0xD1FFAB1E
- cmp rax, rdi
- jb G_M46469_IG28
- ;; size=35 bbWeight=0.50 PerfScore 2.00
-G_M46469_IG11:
- lea r13, [rax+4*rax]
- add r13, r13
- mov rdi, 0xD1FFAB1E ; System.TimeSpan
- call CORINFO_HELP_NEWSFAST
- mov rdi, rax
- mov qword ptr [rdi+0x08], r13
- ;; size=29 bbWeight=0.50 PerfScore 1.62
-G_M46469_IG12:
- test rdi, rdi
- jne SHORT G_M46469_IG14
- ;; size=5 bbWeight=1 PerfScore 1.25
-G_M46469_IG13:
- xor rdx, rdx
- jmp SHORT G_M46469_IG15
- ;; size=4 bbWeight=0.50 PerfScore 1.12
-G_M46469_IG14:
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x40]
call [rax+0x08]System.Object:ToString():System.String:this
mov rdx, rax
- ;; size=13 bbWeight=0.50 PerfScore 3.62
-G_M46469_IG15:
mov rdi, r14
mov esi, 1
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
call [rax]CORINFO_HELP_ARRADDR_ST
mov rdi, r14
mov esi, 2
mov rdx, 0xD1FFAB1E ; ', Period = '
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
call [rax]CORINFO_HELP_ARRADDR_ST
cmp dword ptr [rbx+0x4C], -1
- je SHORT G_M46469_IG17
- ;; size=56 bbWeight=1 PerfScore 11.75
-G_M46469_IG16:
+ je G_M46469_IG14
+ ;; size=73 bbWeight=1 PerfScore 19.00
+G_M46469_IG11:
mov edx, dword ptr [rbx+0x4C]
mov edi, 0x3E8
- lea rax, [rbp-0x30]
- mulx rdi, rcx, rdi
+ lea rax, [rbp-0x38]
+ mulx rsi, rcx, rdi
mov qword ptr [rax], rcx
- mov rax, qword ptr [rbp-0x30]
+ mov r12, qword ptr [rbp-0x38]
sar rdx, 63
and rdx, 0x3E8
- sub rdi, rdx
- test rdi, rdi
- jg G_M46469_IG28
- test rdi, rdi
- jne SHORT G_M46469_IG18
- mov rcx, 0xD1FFAB1E
- cmp rax, rcx
- ja G_M46469_IG28
- jmp SHORT G_M46469_IG18
- ;; size=73 bbWeight=0.50 PerfScore 7.38
-G_M46469_IG17:
- mov rdi, 0xD1FFAB1E ; '(not set)'
- jmp SHORT G_M46469_IG20
- ;; size=12 bbWeight=0.50 PerfScore 1.12
-G_M46469_IG18:
- cmp rdi, -1
- jl G_M46469_IG28
- cmp rdi, -1
- jne SHORT G_M46469_IG19
+ sub rsi, rdx
+ test rsi, rsi
+ jg G_M46469_IG22
+ test rsi, rsi
+ jne G_M46469_IG17
+ mov rdi, 0xD1FFAB1E
+ cmp r12, rdi
+ ja G_M46469_IG22
+ jmp G_M46469_IG17
+ ;; size=80 bbWeight=0.50 PerfScore 7.38
+G_M46469_IG12:
+ cmp rsi, -1
+ jl G_M46469_IG22
+ cmp rsi, -1
+ jne SHORT G_M46469_IG13
mov rdi, 0xD1FFAB1E
- cmp rax, rdi
- jb G_M46469_IG28
+ cmp r13, rdi
+ jb G_M46469_IG22
;; size=35 bbWeight=0.50 PerfScore 2.00
-G_M46469_IG19:
- lea r13, [rax+4*rax]
- add r13, r13
+G_M46469_IG13:
+ lea r12, [r13+4*r13]
+ add r12, r12
mov rdi, 0xD1FFAB1E ; System.TimeSpan
call CORINFO_HELP_NEWSFAST
mov rdi, rax
- mov qword ptr [rdi+0x08], r13
- ;; size=29 bbWeight=0.50 PerfScore 1.62
-G_M46469_IG20:
- test rdi, rdi
- jne SHORT G_M46469_IG22
- ;; size=5 bbWeight=1 PerfScore 1.25
-G_M46469_IG21:
- xor rdx, rdx
- jmp SHORT G_M46469_IG23
- ;; size=4 bbWeight=0.50 PerfScore 1.12
-G_M46469_IG22:
+ mov qword ptr [rdi+0x08], r12
+ jmp G_M46469_IG10
+ ;; size=35 bbWeight=0.50 PerfScore 3.38
+G_M46469_IG14:
+ mov rdi, 0xD1FFAB1E ; '(not set)'
+ ;; size=10 bbWeight=1 PerfScore 0.25
+G_M46469_IG15:
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x40]
call [rax+0x08]System.Object:ToString():System.String:this
mov rdx, rax
- ;; size=13 bbWeight=0.50 PerfScore 3.62
-G_M46469_IG23:
mov rdi, r14
mov esi, 3
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
call [rax]CORINFO_HELP_ARRADDR_ST
mov rdi, r14
mov esi, 4
mov rdx, 0xD1FFAB1E ; ', '
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
call [rax]CORINFO_HELP_ARRADDR_ST
mov rdi, r14
mov rdx, r15
mov esi, 5
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
call [rax]CORINFO_HELP_ARRADDR_ST
mov rdi, gword ptr [rbx+0x20]
mov rax, 0xD1FFAB1E ; code for System.MulticastDelegate:GetMethodImpl():System.Reflection.MethodInfo:this
cmp dword ptr [rdi], edi
call [rax]System.MulticastDelegate:GetMethodImpl():System.Reflection.MethodInfo:this
mov rdi, rax
mov rax, qword ptr [rax]
mov rax, qword ptr [rax+0x40]
call [rax+0x30]System.Reflection.MemberInfo:get_Name():System.String:this
mov rdx, rax
mov rdi, r14
mov esi, 6
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
call [rax]CORINFO_HELP_ARRADDR_ST
mov rdi, r14
mov esi, 7
mov rdx, 0xD1FFAB1E ; '('
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
call [rax]CORINFO_HELP_ARRADDR_ST
mov rdi, gword ptr [rbx+0x28]
test rdi, rdi
- jne SHORT G_M46469_IG25
- ;; size=166 bbWeight=1 PerfScore 38.50
-G_M46469_IG24:
+ jne SHORT G_M46469_IG19
+ ;; size=179 bbWeight=1 PerfScore 45.75
+G_M46469_IG16:
xor rdx, rdx
- jmp SHORT G_M46469_IG26
+ jmp SHORT G_M46469_IG20
;; size=4 bbWeight=0.50 PerfScore 1.12
-G_M46469_IG25:
+G_M46469_IG17:
+ cmp rsi, -1
+ jl G_M46469_IG22
+ cmp rsi, -1
+ jne SHORT G_M46469_IG18
+ mov rdi, 0xD1FFAB1E
+ cmp r12, rdi
+ jb G_M46469_IG22
+ ;; size=35 bbWeight=0.50 PerfScore 2.00
+G_M46469_IG18:
+ lea r13, [r12+4*r12]
+ add r13, r13
+ mov rdi, 0xD1FFAB1E ; System.TimeSpan
+ call CORINFO_HELP_NEWSFAST
+ mov rdi, rax
+ mov qword ptr [rdi+0x08], r13
+ jmp G_M46469_IG15
+ ;; size=34 bbWeight=0.50 PerfScore 2.62
+G_M46469_IG19:
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x40]
call [rax+0x08]System.Object:ToString():System.String:this
mov rdx, rax
;; size=13 bbWeight=0.50 PerfScore 3.62
-G_M46469_IG26:
+G_M46469_IG20:
mov rdi, 0xD1FFAB1E ; 'null'
test rdx, rdx
cmove rdx, rdi
mov rdi, r14
mov esi, 8
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
call [rax]CORINFO_HELP_ARRADDR_ST
mov rdi, r14
mov esi, 9
mov rdx, 0xD1FFAB1E ; ')'
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
call [rax]CORINFO_HELP_ARRADDR_ST
mov rdi, r14
mov rax, 0xD1FFAB1E ; code for System.String:Concat(System.String[]):System.String
call [rax]System.String:Concat(System.String[]):System.String
nop
;; size=83 bbWeight=1 PerfScore 12.25
-G_M46469_IG27:
- add rsp, 16
+G_M46469_IG21:
+ add rsp, 24
pop rbx
+ pop r12
pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=13 bbWeight=1 PerfScore 3.75
-G_M46469_IG28:
+ ;; size=15 bbWeight=1 PerfScore 4.25
+G_M46469_IG22:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRange_TimeSpanTooLong()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRange_TimeSpanTooLong()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-; Total bytes of code 842, prolog size 17, PerfScore 145.25, instruction count 198, allocated bytes for code 842 (MethodHash=7db84a7a) for method System.Threading.TimerQueueTimer:get_DisplayString():System.String:this (FullOpts)
+; Total bytes of code 853, prolog size 19, PerfScore 150.25, instruction count 192, allocated bytes for code 853 (MethodHash=7db84a7a) for method System.Threading.TimerQueueTimer:get_DisplayString():System.String:this (FullOpts) Larger list of diffs: https://gist.github.com/MihuBot/f5886217e57382666ab040e56d8d31a3 |
Top method improvements-74 (-9.01 % of base) - System.Security.Cryptography.X509Certificates.ECDsaX509SignatureGenerator:GetSignatureAlgorithmIdentifier(System.Security.Cryptography.HashAlgorithmName):ubyte[]:this ; Assembly listing for method System.Security.Cryptography.X509Certificates.ECDsaX509SignatureGenerator:GetSignatureAlgorithmIdentifier(System.Security.Cryptography.HashAlgorithmName):ubyte[]:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 49 single block inlinees; 8 inlinees without PGO data
; Final local variable assignments
;
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <System.Security.Cryptography.X509Certificates.ECDsaX509SignatureGenerator>
;* V01 arg1 [V01 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op single-def <System.Security.Cryptography.HashAlgorithmName>
-; V02 loc0 [V02,T03] ( 9, 6 ) ref -> r15 class-hnd <System.String>
+; V02 loc0 [V02,T03] ( 8, 5 ) ref -> r15 class-hnd <System.String>
;* V03 loc1 [V03,T21] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SA] multireg-arg ld-addr-op <System.Nullable`1[System.Formats.Asn1.Asn1Tag]>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V05 tmp1 [V05 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Security.Cryptography.HashAlgorithmName>
;* V06 tmp2 [V06 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Security.Cryptography.HashAlgorithmName>
;* V07 tmp3 [V07 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Security.Cryptography.HashAlgorithmName>
;* V08 tmp4 [V08 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Security.Cryptography.HashAlgorithmName>
;* V09 tmp5 [V09 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Security.Cryptography.HashAlgorithmName>
;* V10 tmp6 [V10 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Security.Cryptography.HashAlgorithmName>
;* V11 tmp7 [V11 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Security.Cryptography.HashAlgorithmName>
;* V12 tmp8 [V12 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Security.Cryptography.HashAlgorithmName>
;* V13 tmp9 [V13 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Security.Cryptography.HashAlgorithmName>
;* V14 tmp10 [V14 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Security.Cryptography.HashAlgorithmName>
;* V15 tmp11 [V15 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Security.Cryptography.HashAlgorithmName>
;* V16 tmp12 [V16 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Security.Cryptography.HashAlgorithmName>
; V17 tmp13 [V17,T30] ( 3, 0 ) ref -> r15 class-hnd exact single-def "Single-def Box Helper" <System.Security.Cryptography.HashAlgorithmName>
-; V18 tmp14 [V18,T33] ( 2, 0 ) ref -> r14 class-hnd exact single-def "impAppendStmt" <System.String>
+; V18 tmp14 [V18,T32] ( 2, 0 ) ref -> r14 class-hnd exact single-def "impAppendStmt" <System.String>
; V19 tmp15 [V19,T31] ( 3, 0 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.ArgumentOutOfRangeException>
; V20 tmp16 [V20,T01] ( 6, 12 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Formats.Asn1.AsnWriter>
; V21 tmp17 [V21,T24] ( 1, 2 ) struct (32) [rbp-0x48] do-not-enreg[HS] must-init hidden-struct-arg "location for address-of(RValue)" <System.Formats.Asn1.AsnWriter+Scope>
;* V22 tmp18 [V22 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Security.Cryptography.HashAlgorithmName>
;* V23 tmp19 [V23 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Security.Cryptography.HashAlgorithmName>
;* V24 tmp20 [V24 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.String>
;* V25 tmp21 [V25 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
; V26 tmp22 [V26,T09] ( 2, 1 ) ubyte -> rax "Inline return value spill temp"
;* V27 tmp23 [V27 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.String>
; V28 tmp24 [V28,T14] ( 2, 2 ) byref -> rdi single-def "impAppendStmt"
;* V29 tmp25 [V29 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Security.Cryptography.HashAlgorithmName>
;* V30 tmp26 [V30 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Security.Cryptography.HashAlgorithmName>
;* V31 tmp27 [V31 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.String>
;* V32 tmp28 [V32 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
; V33 tmp29 [V33,T10] ( 2, 1 ) ubyte -> rax "Inline return value spill temp"
;* V34 tmp30 [V34 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.String>
; V35 tmp31 [V35,T15] ( 2, 2 ) byref -> rdi single-def "impAppendStmt"
;* V36 tmp32 [V36 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Security.Cryptography.HashAlgorithmName>
;* V37 tmp33 [V37 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Security.Cryptography.HashAlgorithmName>
;* V38 tmp34 [V38 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.String>
;* V39 tmp35 [V39 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
; V40 tmp36 [V40,T11] ( 2, 1 ) ubyte -> rax "Inline return value spill temp"
;* V41 tmp37 [V41 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.String>
; V42 tmp38 [V42,T16] ( 2, 2 ) byref -> rdi single-def "impAppendStmt"
;* V43 tmp39 [V43 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Security.Cryptography.HashAlgorithmName>
;* V44 tmp40 [V44 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Security.Cryptography.HashAlgorithmName>
;* V45 tmp41 [V45 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.String>
;* V46 tmp42 [V46 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
; V47 tmp43 [V47,T12] ( 2, 1 ) ubyte -> rax "Inline return value spill temp"
;* V48 tmp44 [V48 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.String>
; V49 tmp45 [V49,T17] ( 2, 2 ) byref -> rdi single-def "impAppendStmt"
;* V50 tmp46 [V50 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Security.Cryptography.HashAlgorithmName>
;* V51 tmp47 [V51 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Security.Cryptography.HashAlgorithmName>
;* V52 tmp48 [V52 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.String>
;* V53 tmp49 [V53 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
; V54 tmp50 [V54,T13] ( 2, 1 ) ubyte -> rax "Inline return value spill temp"
;* V55 tmp51 [V55 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.String>
; V56 tmp52 [V56,T18] ( 2, 2 ) byref -> rdi single-def "impAppendStmt"
;* V57 tmp53 [V57 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Security.Cryptography.HashAlgorithmName>
;* V58 tmp54 [V58 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Security.Cryptography.HashAlgorithmName>
;* V59 tmp55 [V59 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
;* V60 tmp56 [V60 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
;* V61 tmp57 [V61,T25] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SA] multireg-arg "Inlining Arg" <System.Nullable`1[System.Formats.Asn1.Asn1Tag]>
;* V62 tmp58 [V62 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-; V63 tmp59 [V63,T32] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.ArgumentNullException>
+;* V63 tmp59 [V63 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "NewObj constructor temp" <System.ArgumentNullException>
;* V64 tmp60 [V64 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V65 tmp61 [V65 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V66 tmp62 [V66 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
; V67 tmp63 [V67,T06] ( 2, 4 ) byref -> rsi single-def "Inlining Arg"
; V68 tmp64 [V68,T07] ( 2, 4 ) int -> rdx "Inlining Arg"
; V69 tmp65 [V69,T00] ( 24, 12 ) ref -> rbx single-def "field V01._name (fldOffset=0x0)" P-INDEP
;* V70 tmp66 [V70 ] ( 0, 0 ) ref -> zero-ref single-def "field V05._name (fldOffset=0x0)" P-INDEP
;* V71 tmp67 [V71 ] ( 0, 0 ) ref -> zero-ref single-def "field V06._name (fldOffset=0x0)" P-INDEP
;* V72 tmp68 [V72 ] ( 0, 0 ) ref -> zero-ref single-def "field V07._name (fldOffset=0x0)" P-INDEP
;* V73 tmp69 [V73 ] ( 0, 0 ) ref -> zero-ref single-def "field V08._name (fldOffset=0x0)" P-INDEP
;* V74 tmp70 [V74 ] ( 0, 0 ) ref -> zero-ref single-def "field V09._name (fldOffset=0x0)" P-INDEP
;* V75 tmp71 [V75 ] ( 0, 0 ) ref -> zero-ref single-def "field V10._name (fldOffset=0x0)" P-INDEP
;* V76 tmp72 [V76 ] ( 0, 0 ) ref -> zero-ref single-def "field V11._name (fldOffset=0x0)" P-INDEP
;* V77 tmp73 [V77 ] ( 0, 0 ) ref -> zero-ref single-def "field V12._name (fldOffset=0x0)" P-INDEP
;* V78 tmp74 [V78 ] ( 0, 0 ) ref -> zero-ref single-def "field V13._name (fldOffset=0x0)" P-INDEP
;* V79 tmp75 [V79 ] ( 0, 0 ) ref -> zero-ref single-def "field V14._name (fldOffset=0x0)" P-INDEP
;* V80 tmp76 [V80 ] ( 0, 0 ) ref -> zero-ref single-def "field V15._name (fldOffset=0x0)" P-INDEP
;* V81 tmp77 [V81 ] ( 0, 0 ) ref -> zero-ref single-def "field V16._name (fldOffset=0x0)" P-INDEP
;* V82 tmp78 [V82 ] ( 0, 0 ) ref -> zero-ref single-def "field V22._name (fldOffset=0x0)" P-INDEP
;* V83 tmp79 [V83 ] ( 0, 0 ) ref -> zero-ref single-def "field V23._name (fldOffset=0x0)" P-INDEP
;* V84 tmp80 [V84 ] ( 0, 0 ) ref -> zero-ref single-def "field V29._name (fldOffset=0x0)" P-INDEP
;* V85 tmp81 [V85 ] ( 0, 0 ) ref -> zero-ref single-def "field V30._name (fldOffset=0x0)" P-INDEP
;* V86 tmp82 [V86 ] ( 0, 0 ) ref -> zero-ref single-def "field V36._name (fldOffset=0x0)" P-INDEP
;* V87 tmp83 [V87 ] ( 0, 0 ) ref -> zero-ref single-def "field V37._name (fldOffset=0x0)" P-INDEP
;* V88 tmp84 [V88 ] ( 0, 0 ) ref -> zero-ref single-def "field V43._name (fldOffset=0x0)" P-INDEP
;* V89 tmp85 [V89 ] ( 0, 0 ) ref -> zero-ref single-def "field V44._name (fldOffset=0x0)" P-INDEP
;* V90 tmp86 [V90 ] ( 0, 0 ) ref -> zero-ref single-def "field V50._name (fldOffset=0x0)" P-INDEP
;* V91 tmp87 [V91 ] ( 0, 0 ) ref -> zero-ref single-def "field V51._name (fldOffset=0x0)" P-INDEP
;* V92 tmp88 [V92 ] ( 0, 0 ) ref -> zero-ref single-def "field V57._name (fldOffset=0x0)" P-INDEP
;* V93 tmp89 [V93 ] ( 0, 0 ) ref -> zero-ref single-def "field V58._name (fldOffset=0x0)" P-INDEP
;* V94 tmp90 [V94 ] ( 0, 0 ) byref -> zero-ref "field V62._reference (fldOffset=0x0)" P-INDEP
;* V95 tmp91 [V95 ] ( 0, 0 ) int -> zero-ref "field V62._length (fldOffset=0x8)" P-INDEP
; V96 tmp92 [V96,T19] ( 2, 2 ) byref -> rsi single-def "field V64._reference (fldOffset=0x0)" P-INDEP
; V97 tmp93 [V97,T22] ( 2, 2 ) int -> rdx "field V64._length (fldOffset=0x8)" P-INDEP
; V98 tmp94 [V98,T20] ( 2, 2 ) byref -> rsi single-def "field V65._reference (fldOffset=0x0)" P-INDEP
; V99 tmp95 [V99,T23] ( 2, 2 ) int -> rdx "field V65._length (fldOffset=0x8)" P-INDEP
;* V100 tmp96 [V100 ] ( 0, 0 ) byref -> zero-ref "field V66._reference (fldOffset=0x0)" P-INDEP
;* V101 tmp97 [V101 ] ( 0, 0 ) int -> zero-ref "field V66._length (fldOffset=0x8)" P-INDEP
-; V102 tmp98 [V102,T34] ( 2, 0 ) ref -> r12 single-def "argument with side effect"
-; V103 tmp99 [V103,T35] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
-; V104 tmp100 [V104,T36] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
+; V102 tmp98 [V102,T33] ( 2, 0 ) ref -> r12 single-def "argument with side effect"
+; V103 tmp99 [V103,T34] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
+;* V104 tmp100 [V104 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
; V105 cse0 [V105,T02] ( 15, 7.50) int -> r14 multi-def "CSE #02: aggressive"
; V106 cse1 [V106,T04] ( 4, 4 ) long -> rbx "CSE #10: aggressive"
; V107 cse2 [V107,T05] ( 4, 4 ) int -> r13 "CSE #11: aggressive"
; V108 cse3 [V108,T26] ( 3, 1.50) ref -> rsi "CSE #03: conservative"
; V109 cse4 [V109,T27] ( 3, 1.50) ref -> rsi "CSE #07: conservative"
; V110 cse5 [V110,T28] ( 3, 1.50) ref -> rsi "CSE #08: conservative"
; V111 cse6 [V111,T29] ( 3, 1.50) ref -> rsi "CSE #09: conservative"
; V112 cse7 [V112,T08] ( 3, 2.50) ref -> rsi "CSE #01: moderate"
;
; Lcl frame size = 40
G_M12053_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 40
lea rbp, [rsp+0x50]
xor eax, eax
mov qword ptr [rbp-0x48], rax
vxorps xmm8, xmm8, xmm8
vmovdqa xmmword ptr [rbp-0x40], xmm8
mov qword ptr [rbp-0x30], rax
mov rbx, rsi
;; size=42 bbWeight=1 PerfScore 11.58
G_M12053_IG02:
mov rsi, 0xD1FFAB1E ; 'SHA256'
cmp rbx, rsi
jne SHORT G_M12053_IG04
;; size=15 bbWeight=1 PerfScore 1.50
G_M12053_IG03:
mov r15, 0xD1FFAB1E ; '1.2.840.10045.4.3.2'
jmp G_M12053_IG19
;; size=15 bbWeight=0.50 PerfScore 1.12
G_M12053_IG04:
test rbx, rbx
je SHORT G_M12053_IG05
mov r14d, dword ptr [rbx+0x08]
cmp r14d, 6
je SHORT G_M12053_IG07
;; size=15 bbWeight=0.50 PerfScore 2.25
G_M12053_IG05:
mov rsi, 0xD1FFAB1E ; 'SHA384'
cmp rbx, rsi
jne SHORT G_M12053_IG08
;; size=15 bbWeight=0.50 PerfScore 0.75
G_M12053_IG06:
mov r15, 0xD1FFAB1E ; '1.2.840.10045.4.3.3'
jmp G_M12053_IG19
;; size=15 bbWeight=0.50 PerfScore 1.12
G_M12053_IG07:
lea rdi, bword ptr [rbx+0x0C]
add r14d, r14d
mov edx, r14d
add rsi, 12
mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
call [rax]System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
test eax, eax
je SHORT G_M12053_IG05
jmp SHORT G_M12053_IG03
;; size=32 bbWeight=0.50 PerfScore 3.88
G_M12053_IG08:
test rbx, rbx
je SHORT G_M12053_IG09
mov r14d, dword ptr [rbx+0x08]
cmp r14d, 6
je SHORT G_M12053_IG11
;; size=15 bbWeight=0.50 PerfScore 2.25
G_M12053_IG09:
mov rsi, 0xD1FFAB1E ; 'SHA512'
cmp rbx, rsi
jne SHORT G_M12053_IG12
;; size=15 bbWeight=0.50 PerfScore 0.75
G_M12053_IG10:
mov r15, 0xD1FFAB1E ; '1.2.840.10045.4.3.4'
jmp G_M12053_IG19
;; size=15 bbWeight=0.50 PerfScore 1.12
G_M12053_IG11:
lea rdi, bword ptr [rbx+0x0C]
lea edx, [r14+r14]
add rsi, 12
mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
call [rax]System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
test eax, eax
je SHORT G_M12053_IG09
jmp SHORT G_M12053_IG06
;; size=30 bbWeight=0.50 PerfScore 3.88
G_M12053_IG12:
test rbx, rbx
je SHORT G_M12053_IG13
mov r14d, dword ptr [rbx+0x08]
cmp r14d, 6
je SHORT G_M12053_IG15
;; size=15 bbWeight=0.50 PerfScore 2.25
G_M12053_IG13:
mov rsi, 0xD1FFAB1E ; 'SHA3-256'
cmp rbx, rsi
jne SHORT G_M12053_IG16
;; size=15 bbWeight=0.50 PerfScore 0.75
G_M12053_IG14:
mov r15, 0xD1FFAB1E ; '2.16.840.1.101.3.4.3.10'
jmp SHORT G_M12053_IG19
;; size=12 bbWeight=0.50 PerfScore 1.12
G_M12053_IG15:
lea rdi, bword ptr [rbx+0x0C]
lea edx, [r14+r14]
add rsi, 12
mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
call [rax]System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
test eax, eax
je SHORT G_M12053_IG13
jmp SHORT G_M12053_IG10
;; size=30 bbWeight=0.50 PerfScore 3.88
G_M12053_IG16:
test rbx, rbx
je SHORT G_M12053_IG17
mov r14d, dword ptr [rbx+0x08]
cmp r14d, 8
je G_M12053_IG21
;; size=19 bbWeight=0.50 PerfScore 2.25
G_M12053_IG17:
mov rsi, 0xD1FFAB1E ; 'SHA3-384'
cmp rbx, rsi
jne G_M12053_IG22
;; size=19 bbWeight=0.50 PerfScore 0.75
G_M12053_IG18:
mov r15, 0xD1FFAB1E ; '2.16.840.1.101.3.4.3.11'
;; size=10 bbWeight=0.50 PerfScore 0.12
G_M12053_IG19:
mov rdi, 0xD1FFAB1E ; System.Formats.Asn1.AsnWriter
call CORINFO_HELP_NEWSFAST
mov r14, rax
mov dword ptr [r14+0x1C], 2
xor ebx, ebx
mov rdx, rbx
xor r13d, r13d
mov ecx, r13d
lea rsi, [rbp-0x48]
mov rdi, r14
mov rax, 0xD1FFAB1E ; code for System.Formats.Asn1.AsnWriter:PushSequence(System.Nullable`1[System.Formats.Asn1.Asn1Tag]):System.Formats.Asn1.AsnWriter+Scope:this
call [rax]System.Formats.Asn1.AsnWriter:PushSequence(System.Nullable`1[System.Formats.Asn1.Asn1Tag]):System.Formats.Asn1.AsnWriter+Scope:this
- test r15, r15
- je G_M12053_IG26
lea rsi, bword ptr [r15+0x0C]
mov edx, dword ptr [r15+0x08]
mov rcx, rbx
mov r8d, r13d
mov rdi, r14
mov rax, 0xD1FFAB1E ; code for System.Formats.Asn1.AsnWriter:WriteObjectIdentifier(System.ReadOnlySpan`1[ushort],System.Nullable`1[System.Formats.Asn1.Asn1Tag]):this
call [rax]System.Formats.Asn1.AsnWriter:WriteObjectIdentifier(System.ReadOnlySpan`1[ushort],System.Nullable`1[System.Formats.Asn1.Asn1Tag]):this
mov rsi, rbx
mov edx, r13d
mov rdi, r14
mov rax, 0xD1FFAB1E ; code for System.Formats.Asn1.AsnWriter:PopSequence(System.Nullable`1[System.Formats.Asn1.Asn1Tag]):this
call [rax]System.Formats.Asn1.AsnWriter:PopSequence(System.Nullable`1[System.Formats.Asn1.Asn1Tag]):this
mov rdi, r14
mov rax, 0xD1FFAB1E ; code for System.Formats.Asn1.AsnWriter:Encode():ubyte[]:this
call [rax]System.Formats.Asn1.AsnWriter:Encode():ubyte[]:this
nop
- ;; size=131 bbWeight=1 PerfScore 23.00
+ ;; size=122 bbWeight=1 PerfScore 21.75
G_M12053_IG20:
add rsp, 40
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.25
G_M12053_IG21:
lea rdi, bword ptr [rbx+0x0C]
lea edx, [r14+r14]
add rsi, 12
mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
call [rax]System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
test eax, eax
je G_M12053_IG17
jmp G_M12053_IG14
;; size=37 bbWeight=0.50 PerfScore 3.88
G_M12053_IG22:
test rbx, rbx
je SHORT G_M12053_IG23
mov r14d, dword ptr [rbx+0x08]
cmp r14d, 8
je SHORT G_M12053_IG24
;; size=15 bbWeight=0.50 PerfScore 2.25
G_M12053_IG23:
mov rdi, rbx
mov rsi, 0xD1FFAB1E ; 'SHA3-512'
mov rax, 0xD1FFAB1E ; code for System.String:Equals(System.String,System.String):ubyte
call [rax]System.String:Equals(System.String,System.String):ubyte
test eax, eax
je SHORT G_M12053_IG25
mov r15, 0xD1FFAB1E ; '2.16.840.1.101.3.4.3.12'
jmp G_M12053_IG19
;; size=44 bbWeight=0.50 PerfScore 3.62
G_M12053_IG24:
lea rdi, bword ptr [rbx+0x0C]
lea edx, [r14+r14]
add rsi, 12
mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
call [rax]System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
test eax, eax
je SHORT G_M12053_IG23
jmp G_M12053_IG18
;; size=33 bbWeight=0.50 PerfScore 3.88
G_M12053_IG25:
mov rdi, 0xD1FFAB1E ; System.Security.Cryptography.HashAlgorithmName
call CORINFO_HELP_NEWSFAST
mov r15, rax
lea rdi, bword ptr [r15+0x08]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
mov rax, 0xD1FFAB1E ; code for System.SR:get_Cryptography_UnknownHashAlgorithm():System.String
call [rax]System.SR:get_Cryptography_UnknownHashAlgorithm():System.String
mov r14, rax
mov rdi, 0xD1FFAB1E ; System.ArgumentOutOfRangeException
call CORINFO_HELP_NEWSFAST
mov r13, rax
mov edi, 0x41FB
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
mov r12, rax
mov rdi, r14
mov rsi, rbx
mov rax, 0xD1FFAB1E ; code for System.SR:Format(System.String,System.Object):System.String
call [rax]System.SR:Format(System.String,System.Object):System.String
mov rcx, rax
mov rsi, r12
mov rdx, r15
mov rdi, r13
mov rax, 0xD1FFAB1E ; code for System.ArgumentOutOfRangeException:.ctor(System.String,System.Object,System.String):this
call [rax]System.ArgumentOutOfRangeException:.ctor(System.String,System.Object,System.String):this
mov rdi, r13
call CORINFO_HELP_THROW
int3
;; size=137 bbWeight=0 PerfScore 0.00
-G_M12053_IG26:
- mov rdi, 0xD1FFAB1E ; System.ArgumentNullException
- call CORINFO_HELP_NEWSFAST
- mov rbx, rax
- mov edi, 0xBCA
- mov rsi, 0xD1FFAB1E
- call CORINFO_HELP_STRCNS
- mov rsi, rax
- mov rdi, rbx
- mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:.ctor(System.String):this
- call [rax]System.ArgumentNullException:.ctor(System.String):this
- mov rdi, rbx
- call CORINFO_HELP_THROW
- int3
- ;; size=65 bbWeight=0 PerfScore 0.00
-; Total bytes of code 821, prolog size 39, PerfScore 82.21, instruction count 192, allocated bytes for code 821 (MethodHash=167cd0ea) for method System.Security.Cryptography.X509Certificates.ECDsaX509SignatureGenerator:GetSignatureAlgorithmIdentifier(System.Security.Cryptography.HashAlgorithmName):ubyte[]:this (FullOpts)
+; Total bytes of code 747, prolog size 39, PerfScore 80.96, instruction count 177, allocated bytes for code 747 (MethodHash=167cd0ea) for method System.Security.Cryptography.X509Certificates.ECDsaX509SignatureGenerator:GetSignatureAlgorithmIdentifier(System.Security.Cryptography.HashAlgorithmName):ubyte[]:this (FullOpts) -74 (-8.79 % of base) - System.Security.Cryptography.X509Certificates.RSAPkcs1X509SignatureGenerator:GetSignatureAlgorithmIdentifier(System.Security.Cryptography.HashAlgorithmName):ubyte[]:this ; Assembly listing for method System.Security.Cryptography.X509Certificates.RSAPkcs1X509SignatureGenerator:GetSignatureAlgorithmIdentifier(System.Security.Cryptography.HashAlgorithmName):ubyte[]:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 49 single block inlinees; 8 inlinees without PGO data
; Final local variable assignments
;
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <System.Security.Cryptography.X509Certificates.RSAPkcs1X509SignatureGenerator>
;* V01 arg1 [V01 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op single-def <System.Security.Cryptography.HashAlgorithmName>
-; V02 loc0 [V02,T03] ( 9, 6 ) ref -> r15 class-hnd <System.String>
+; V02 loc0 [V02,T03] ( 8, 5 ) ref -> r15 class-hnd <System.String>
;* V03 loc1 [V03,T21] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SA] multireg-arg ld-addr-op <System.Nullable`1[System.Formats.Asn1.Asn1Tag]>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V05 tmp1 [V05 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Security.Cryptography.HashAlgorithmName>
;* V06 tmp2 [V06 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Security.Cryptography.HashAlgorithmName>
;* V07 tmp3 [V07 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Security.Cryptography.HashAlgorithmName>
;* V08 tmp4 [V08 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Security.Cryptography.HashAlgorithmName>
;* V09 tmp5 [V09 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Security.Cryptography.HashAlgorithmName>
;* V10 tmp6 [V10 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Security.Cryptography.HashAlgorithmName>
;* V11 tmp7 [V11 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Security.Cryptography.HashAlgorithmName>
;* V12 tmp8 [V12 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Security.Cryptography.HashAlgorithmName>
;* V13 tmp9 [V13 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Security.Cryptography.HashAlgorithmName>
;* V14 tmp10 [V14 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Security.Cryptography.HashAlgorithmName>
;* V15 tmp11 [V15 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Security.Cryptography.HashAlgorithmName>
;* V16 tmp12 [V16 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Security.Cryptography.HashAlgorithmName>
; V17 tmp13 [V17,T30] ( 3, 0 ) ref -> r15 class-hnd exact single-def "Single-def Box Helper" <System.Security.Cryptography.HashAlgorithmName>
-; V18 tmp14 [V18,T33] ( 2, 0 ) ref -> r14 class-hnd exact single-def "impAppendStmt" <System.String>
+; V18 tmp14 [V18,T32] ( 2, 0 ) ref -> r14 class-hnd exact single-def "impAppendStmt" <System.String>
; V19 tmp15 [V19,T31] ( 3, 0 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.ArgumentOutOfRangeException>
; V20 tmp16 [V20,T01] ( 7, 14 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Formats.Asn1.AsnWriter>
; V21 tmp17 [V21,T24] ( 1, 2 ) struct (32) [rbp-0x48] do-not-enreg[HS] must-init hidden-struct-arg "location for address-of(RValue)" <System.Formats.Asn1.AsnWriter+Scope>
;* V22 tmp18 [V22 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Security.Cryptography.HashAlgorithmName>
;* V23 tmp19 [V23 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Security.Cryptography.HashAlgorithmName>
;* V24 tmp20 [V24 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.String>
;* V25 tmp21 [V25 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
; V26 tmp22 [V26,T09] ( 2, 1 ) ubyte -> rax "Inline return value spill temp"
;* V27 tmp23 [V27 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.String>
; V28 tmp24 [V28,T14] ( 2, 2 ) byref -> rdi single-def "impAppendStmt"
;* V29 tmp25 [V29 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Security.Cryptography.HashAlgorithmName>
;* V30 tmp26 [V30 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Security.Cryptography.HashAlgorithmName>
;* V31 tmp27 [V31 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.String>
;* V32 tmp28 [V32 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
; V33 tmp29 [V33,T10] ( 2, 1 ) ubyte -> rax "Inline return value spill temp"
;* V34 tmp30 [V34 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.String>
; V35 tmp31 [V35,T15] ( 2, 2 ) byref -> rdi single-def "impAppendStmt"
;* V36 tmp32 [V36 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Security.Cryptography.HashAlgorithmName>
;* V37 tmp33 [V37 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Security.Cryptography.HashAlgorithmName>
;* V38 tmp34 [V38 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.String>
;* V39 tmp35 [V39 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
; V40 tmp36 [V40,T11] ( 2, 1 ) ubyte -> rax "Inline return value spill temp"
;* V41 tmp37 [V41 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.String>
; V42 tmp38 [V42,T16] ( 2, 2 ) byref -> rdi single-def "impAppendStmt"
;* V43 tmp39 [V43 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Security.Cryptography.HashAlgorithmName>
;* V44 tmp40 [V44 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Security.Cryptography.HashAlgorithmName>
;* V45 tmp41 [V45 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.String>
;* V46 tmp42 [V46 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
; V47 tmp43 [V47,T12] ( 2, 1 ) ubyte -> rax "Inline return value spill temp"
;* V48 tmp44 [V48 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.String>
; V49 tmp45 [V49,T17] ( 2, 2 ) byref -> rdi single-def "impAppendStmt"
;* V50 tmp46 [V50 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Security.Cryptography.HashAlgorithmName>
;* V51 tmp47 [V51 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Security.Cryptography.HashAlgorithmName>
;* V52 tmp48 [V52 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.String>
;* V53 tmp49 [V53 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
; V54 tmp50 [V54,T13] ( 2, 1 ) ubyte -> rax "Inline return value spill temp"
;* V55 tmp51 [V55 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.String>
; V56 tmp52 [V56,T18] ( 2, 2 ) byref -> rdi single-def "impAppendStmt"
;* V57 tmp53 [V57 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Security.Cryptography.HashAlgorithmName>
;* V58 tmp54 [V58 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Security.Cryptography.HashAlgorithmName>
;* V59 tmp55 [V59 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
;* V60 tmp56 [V60 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
;* V61 tmp57 [V61,T25] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SA] multireg-arg "Inlining Arg" <System.Nullable`1[System.Formats.Asn1.Asn1Tag]>
;* V62 tmp58 [V62 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-; V63 tmp59 [V63,T32] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.ArgumentNullException>
+;* V63 tmp59 [V63 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "NewObj constructor temp" <System.ArgumentNullException>
;* V64 tmp60 [V64 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V65 tmp61 [V65 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V66 tmp62 [V66 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
; V67 tmp63 [V67,T06] ( 2, 4 ) byref -> rsi single-def "Inlining Arg"
; V68 tmp64 [V68,T07] ( 2, 4 ) int -> rdx "Inlining Arg"
; V69 tmp65 [V69,T00] ( 24, 12 ) ref -> rbx single-def "field V01._name (fldOffset=0x0)" P-INDEP
;* V70 tmp66 [V70 ] ( 0, 0 ) ref -> zero-ref single-def "field V05._name (fldOffset=0x0)" P-INDEP
;* V71 tmp67 [V71 ] ( 0, 0 ) ref -> zero-ref single-def "field V06._name (fldOffset=0x0)" P-INDEP
;* V72 tmp68 [V72 ] ( 0, 0 ) ref -> zero-ref single-def "field V07._name (fldOffset=0x0)" P-INDEP
;* V73 tmp69 [V73 ] ( 0, 0 ) ref -> zero-ref single-def "field V08._name (fldOffset=0x0)" P-INDEP
;* V74 tmp70 [V74 ] ( 0, 0 ) ref -> zero-ref single-def "field V09._name (fldOffset=0x0)" P-INDEP
;* V75 tmp71 [V75 ] ( 0, 0 ) ref -> zero-ref single-def "field V10._name (fldOffset=0x0)" P-INDEP
;* V76 tmp72 [V76 ] ( 0, 0 ) ref -> zero-ref single-def "field V11._name (fldOffset=0x0)" P-INDEP
;* V77 tmp73 [V77 ] ( 0, 0 ) ref -> zero-ref single-def "field V12._name (fldOffset=0x0)" P-INDEP
;* V78 tmp74 [V78 ] ( 0, 0 ) ref -> zero-ref single-def "field V13._name (fldOffset=0x0)" P-INDEP
;* V79 tmp75 [V79 ] ( 0, 0 ) ref -> zero-ref single-def "field V14._name (fldOffset=0x0)" P-INDEP
;* V80 tmp76 [V80 ] ( 0, 0 ) ref -> zero-ref single-def "field V15._name (fldOffset=0x0)" P-INDEP
;* V81 tmp77 [V81 ] ( 0, 0 ) ref -> zero-ref single-def "field V16._name (fldOffset=0x0)" P-INDEP
;* V82 tmp78 [V82 ] ( 0, 0 ) ref -> zero-ref single-def "field V22._name (fldOffset=0x0)" P-INDEP
;* V83 tmp79 [V83 ] ( 0, 0 ) ref -> zero-ref single-def "field V23._name (fldOffset=0x0)" P-INDEP
;* V84 tmp80 [V84 ] ( 0, 0 ) ref -> zero-ref single-def "field V29._name (fldOffset=0x0)" P-INDEP
;* V85 tmp81 [V85 ] ( 0, 0 ) ref -> zero-ref single-def "field V30._name (fldOffset=0x0)" P-INDEP
;* V86 tmp82 [V86 ] ( 0, 0 ) ref -> zero-ref single-def "field V36._name (fldOffset=0x0)" P-INDEP
;* V87 tmp83 [V87 ] ( 0, 0 ) ref -> zero-ref single-def "field V37._name (fldOffset=0x0)" P-INDEP
;* V88 tmp84 [V88 ] ( 0, 0 ) ref -> zero-ref single-def "field V43._name (fldOffset=0x0)" P-INDEP
;* V89 tmp85 [V89 ] ( 0, 0 ) ref -> zero-ref single-def "field V44._name (fldOffset=0x0)" P-INDEP
;* V90 tmp86 [V90 ] ( 0, 0 ) ref -> zero-ref single-def "field V50._name (fldOffset=0x0)" P-INDEP
;* V91 tmp87 [V91 ] ( 0, 0 ) ref -> zero-ref single-def "field V51._name (fldOffset=0x0)" P-INDEP
;* V92 tmp88 [V92 ] ( 0, 0 ) ref -> zero-ref single-def "field V57._name (fldOffset=0x0)" P-INDEP
;* V93 tmp89 [V93 ] ( 0, 0 ) ref -> zero-ref single-def "field V58._name (fldOffset=0x0)" P-INDEP
;* V94 tmp90 [V94 ] ( 0, 0 ) byref -> zero-ref "field V62._reference (fldOffset=0x0)" P-INDEP
;* V95 tmp91 [V95 ] ( 0, 0 ) int -> zero-ref "field V62._length (fldOffset=0x8)" P-INDEP
; V96 tmp92 [V96,T19] ( 2, 2 ) byref -> rsi single-def "field V64._reference (fldOffset=0x0)" P-INDEP
; V97 tmp93 [V97,T22] ( 2, 2 ) int -> rdx "field V64._length (fldOffset=0x8)" P-INDEP
; V98 tmp94 [V98,T20] ( 2, 2 ) byref -> rsi single-def "field V65._reference (fldOffset=0x0)" P-INDEP
; V99 tmp95 [V99,T23] ( 2, 2 ) int -> rdx "field V65._length (fldOffset=0x8)" P-INDEP
;* V100 tmp96 [V100 ] ( 0, 0 ) byref -> zero-ref "field V66._reference (fldOffset=0x0)" P-INDEP
;* V101 tmp97 [V101 ] ( 0, 0 ) int -> zero-ref "field V66._length (fldOffset=0x8)" P-INDEP
-; V102 tmp98 [V102,T34] ( 2, 0 ) ref -> r12 single-def "argument with side effect"
-; V103 tmp99 [V103,T35] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
-; V104 tmp100 [V104,T36] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
+; V102 tmp98 [V102,T33] ( 2, 0 ) ref -> r12 single-def "argument with side effect"
+; V103 tmp99 [V103,T34] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
+;* V104 tmp100 [V104 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
; V105 cse0 [V105,T04] ( 5, 5 ) long -> rbx "CSE #10: aggressive"
; V106 cse1 [V106,T05] ( 5, 5 ) int -> r13 "CSE #11: aggressive"
; V107 cse2 [V107,T02] ( 15, 7.50) int -> r14 multi-def "CSE #02: aggressive"
; V108 cse3 [V108,T26] ( 3, 1.50) ref -> rsi "CSE #03: conservative"
; V109 cse4 [V109,T27] ( 3, 1.50) ref -> rsi "CSE #07: conservative"
; V110 cse5 [V110,T28] ( 3, 1.50) ref -> rsi "CSE #08: conservative"
; V111 cse6 [V111,T29] ( 3, 1.50) ref -> rsi "CSE #09: conservative"
; V112 cse7 [V112,T08] ( 3, 2.50) ref -> rsi "CSE #01: moderate"
;
; Lcl frame size = 40
G_M38271_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 40
lea rbp, [rsp+0x50]
xor eax, eax
mov qword ptr [rbp-0x48], rax
vxorps xmm8, xmm8, xmm8
vmovdqa xmmword ptr [rbp-0x40], xmm8
mov qword ptr [rbp-0x30], rax
mov rbx, rsi
;; size=42 bbWeight=1 PerfScore 11.58
G_M38271_IG02:
mov rsi, 0xD1FFAB1E ; 'SHA256'
cmp rbx, rsi
jne SHORT G_M38271_IG04
;; size=15 bbWeight=1 PerfScore 1.50
G_M38271_IG03:
mov r15, 0xD1FFAB1E ; '1.2.840.113549.1.1.11'
jmp G_M38271_IG19
;; size=15 bbWeight=0.50 PerfScore 1.12
G_M38271_IG04:
test rbx, rbx
je SHORT G_M38271_IG05
mov r14d, dword ptr [rbx+0x08]
cmp r14d, 6
je SHORT G_M38271_IG07
;; size=15 bbWeight=0.50 PerfScore 2.25
G_M38271_IG05:
mov rsi, 0xD1FFAB1E ; 'SHA384'
cmp rbx, rsi
jne SHORT G_M38271_IG08
;; size=15 bbWeight=0.50 PerfScore 0.75
G_M38271_IG06:
mov r15, 0xD1FFAB1E ; '1.2.840.113549.1.1.12'
jmp G_M38271_IG19
;; size=15 bbWeight=0.50 PerfScore 1.12
G_M38271_IG07:
lea rdi, bword ptr [rbx+0x0C]
add r14d, r14d
mov edx, r14d
add rsi, 12
mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
call [rax]System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
test eax, eax
je SHORT G_M38271_IG05
jmp SHORT G_M38271_IG03
;; size=32 bbWeight=0.50 PerfScore 3.88
G_M38271_IG08:
test rbx, rbx
je SHORT G_M38271_IG09
mov r14d, dword ptr [rbx+0x08]
cmp r14d, 6
je SHORT G_M38271_IG11
;; size=15 bbWeight=0.50 PerfScore 2.25
G_M38271_IG09:
mov rsi, 0xD1FFAB1E ; 'SHA512'
cmp rbx, rsi
jne SHORT G_M38271_IG12
;; size=15 bbWeight=0.50 PerfScore 0.75
G_M38271_IG10:
mov r15, 0xD1FFAB1E ; '1.2.840.113549.1.1.13'
jmp G_M38271_IG19
;; size=15 bbWeight=0.50 PerfScore 1.12
G_M38271_IG11:
lea rdi, bword ptr [rbx+0x0C]
lea edx, [r14+r14]
add rsi, 12
mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
call [rax]System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
test eax, eax
je SHORT G_M38271_IG09
jmp SHORT G_M38271_IG06
;; size=30 bbWeight=0.50 PerfScore 3.88
G_M38271_IG12:
test rbx, rbx
je SHORT G_M38271_IG13
mov r14d, dword ptr [rbx+0x08]
cmp r14d, 6
je SHORT G_M38271_IG15
;; size=15 bbWeight=0.50 PerfScore 2.25
G_M38271_IG13:
mov rsi, 0xD1FFAB1E ; 'SHA3-256'
cmp rbx, rsi
jne SHORT G_M38271_IG16
;; size=15 bbWeight=0.50 PerfScore 0.75
G_M38271_IG14:
mov r15, 0xD1FFAB1E ; '2.16.840.1.101.3.4.3.14'
jmp SHORT G_M38271_IG19
;; size=12 bbWeight=0.50 PerfScore 1.12
G_M38271_IG15:
lea rdi, bword ptr [rbx+0x0C]
lea edx, [r14+r14]
add rsi, 12
mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
call [rax]System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
test eax, eax
je SHORT G_M38271_IG13
jmp SHORT G_M38271_IG10
;; size=30 bbWeight=0.50 PerfScore 3.88
G_M38271_IG16:
test rbx, rbx
je SHORT G_M38271_IG17
mov r14d, dword ptr [rbx+0x08]
cmp r14d, 8
je G_M38271_IG21
;; size=19 bbWeight=0.50 PerfScore 2.25
G_M38271_IG17:
mov rsi, 0xD1FFAB1E ; 'SHA3-384'
cmp rbx, rsi
jne G_M38271_IG22
;; size=19 bbWeight=0.50 PerfScore 0.75
G_M38271_IG18:
mov r15, 0xD1FFAB1E ; '2.16.840.1.101.3.4.3.15'
;; size=10 bbWeight=0.50 PerfScore 0.12
G_M38271_IG19:
mov rdi, 0xD1FFAB1E ; System.Formats.Asn1.AsnWriter
call CORINFO_HELP_NEWSFAST
mov r14, rax
mov dword ptr [r14+0x1C], 2
xor ebx, ebx
mov rdx, rbx
xor r13d, r13d
mov ecx, r13d
lea rsi, [rbp-0x48]
mov rdi, r14
mov rax, 0xD1FFAB1E ; code for System.Formats.Asn1.AsnWriter:PushSequence(System.Nullable`1[System.Formats.Asn1.Asn1Tag]):System.Formats.Asn1.AsnWriter+Scope:this
call [rax]System.Formats.Asn1.AsnWriter:PushSequence(System.Nullable`1[System.Formats.Asn1.Asn1Tag]):System.Formats.Asn1.AsnWriter+Scope:this
- test r15, r15
- je G_M38271_IG26
lea rsi, bword ptr [r15+0x0C]
mov edx, dword ptr [r15+0x08]
mov rcx, rbx
mov r8d, r13d
mov rdi, r14
mov rax, 0xD1FFAB1E ; code for System.Formats.Asn1.AsnWriter:WriteObjectIdentifier(System.ReadOnlySpan`1[ushort],System.Nullable`1[System.Formats.Asn1.Asn1Tag]):this
call [rax]System.Formats.Asn1.AsnWriter:WriteObjectIdentifier(System.ReadOnlySpan`1[ushort],System.Nullable`1[System.Formats.Asn1.Asn1Tag]):this
mov rsi, rbx
mov edx, r13d
mov rdi, r14
mov rax, 0xD1FFAB1E ; code for System.Formats.Asn1.AsnWriter:WriteNull(System.Nullable`1[System.Formats.Asn1.Asn1Tag]):this
call [rax]System.Formats.Asn1.AsnWriter:WriteNull(System.Nullable`1[System.Formats.Asn1.Asn1Tag]):this
mov rsi, rbx
mov edx, r13d
mov rdi, r14
mov rax, 0xD1FFAB1E ; code for System.Formats.Asn1.AsnWriter:PopSequence(System.Nullable`1[System.Formats.Asn1.Asn1Tag]):this
call [rax]System.Formats.Asn1.AsnWriter:PopSequence(System.Nullable`1[System.Formats.Asn1.Asn1Tag]):this
mov rdi, r14
mov rax, 0xD1FFAB1E ; code for System.Formats.Asn1.AsnWriter:Encode():ubyte[]:this
call [rax]System.Formats.Asn1.AsnWriter:Encode():ubyte[]:this
nop
- ;; size=152 bbWeight=1 PerfScore 27.00
+ ;; size=143 bbWeight=1 PerfScore 25.75
G_M38271_IG20:
add rsp, 40
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.25
G_M38271_IG21:
lea rdi, bword ptr [rbx+0x0C]
lea edx, [r14+r14]
add rsi, 12
mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
call [rax]System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
test eax, eax
je G_M38271_IG17
jmp G_M38271_IG14
;; size=37 bbWeight=0.50 PerfScore 3.88
G_M38271_IG22:
test rbx, rbx
je SHORT G_M38271_IG23
mov r14d, dword ptr [rbx+0x08]
cmp r14d, 8
je SHORT G_M38271_IG24
;; size=15 bbWeight=0.50 PerfScore 2.25
G_M38271_IG23:
mov rdi, rbx
mov rsi, 0xD1FFAB1E ; 'SHA3-512'
mov rax, 0xD1FFAB1E ; code for System.String:Equals(System.String,System.String):ubyte
call [rax]System.String:Equals(System.String,System.String):ubyte
test eax, eax
je SHORT G_M38271_IG25
mov r15, 0xD1FFAB1E ; '2.16.840.1.101.3.4.3.16'
jmp G_M38271_IG19
;; size=44 bbWeight=0.50 PerfScore 3.62
G_M38271_IG24:
lea rdi, bword ptr [rbx+0x0C]
lea edx, [r14+r14]
add rsi, 12
mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
call [rax]System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
test eax, eax
je SHORT G_M38271_IG23
jmp G_M38271_IG18
;; size=33 bbWeight=0.50 PerfScore 3.88
G_M38271_IG25:
mov rdi, 0xD1FFAB1E ; System.Security.Cryptography.HashAlgorithmName
call CORINFO_HELP_NEWSFAST
mov r15, rax
lea rdi, bword ptr [r15+0x08]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
mov rax, 0xD1FFAB1E ; code for System.SR:get_Cryptography_UnknownHashAlgorithm():System.String
call [rax]System.SR:get_Cryptography_UnknownHashAlgorithm():System.String
mov r14, rax
mov rdi, 0xD1FFAB1E ; System.ArgumentOutOfRangeException
call CORINFO_HELP_NEWSFAST
mov r13, rax
mov edi, 0x41FB
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
mov r12, rax
mov rdi, r14
mov rsi, rbx
mov rax, 0xD1FFAB1E ; code for System.SR:Format(System.String,System.Object):System.String
call [rax]System.SR:Format(System.String,System.Object):System.String
mov rcx, rax
mov rsi, r12
mov rdx, r15
mov rdi, r13
mov rax, 0xD1FFAB1E ; code for System.ArgumentOutOfRangeException:.ctor(System.String,System.Object,System.String):this
call [rax]System.ArgumentOutOfRangeException:.ctor(System.String,System.Object,System.String):this
mov rdi, r13
call CORINFO_HELP_THROW
int3
;; size=137 bbWeight=0 PerfScore 0.00
-G_M38271_IG26:
- mov rdi, 0xD1FFAB1E ; System.ArgumentNullException
- call CORINFO_HELP_NEWSFAST
- mov rbx, rax
- mov edi, 0xBCA
- mov rsi, 0xD1FFAB1E
- call CORINFO_HELP_STRCNS
- mov rsi, rax
- mov rdi, rbx
- mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:.ctor(System.String):this
- call [rax]System.ArgumentNullException:.ctor(System.String):this
- mov rdi, rbx
- call CORINFO_HELP_THROW
- int3
- ;; size=65 bbWeight=0 PerfScore 0.00
-; Total bytes of code 842, prolog size 39, PerfScore 86.21, instruction count 197, allocated bytes for code 842 (MethodHash=d7dd6a80) for method System.Security.Cryptography.X509Certificates.RSAPkcs1X509SignatureGenerator:GetSignatureAlgorithmIdentifier(System.Security.Cryptography.HashAlgorithmName):ubyte[]:this (FullOpts)
+; Total bytes of code 768, prolog size 39, PerfScore 84.96, instruction count 182, allocated bytes for code 768 (MethodHash=d7dd6a80) for method System.Security.Cryptography.X509Certificates.RSAPkcs1X509SignatureGenerator:GetSignatureAlgorithmIdentifier(System.Security.Cryptography.HashAlgorithmName):ubyte[]:this (FullOpts) Larger list of diffs: https://gist.github.com/MihuBot/384164dc4be1258945db3909b703932e |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Job completed in 14 minutes.
dotnet/runtime#104493
Diffs
Diffs
Artifacts:
The text was updated successfully, but these errors were encountered: