-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)
-68 (-4.08 % of base) - System.IO.File+d__101:MoveNext():this
; Assembly listing for method System.IO.File+<InternalReadAllBytesUnknownLengthAsync>d__101:MoveNext():this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
; 0 inlinees with PGO data; 34 single block inlinees; 17 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 36, 77 ) byref -> [rbp-0x48] this EH-live single-def
; V01 loc0 [V01,T33] ( 7, 7 ) int -> [rbp-0x2C] do-not-enreg[Z] EH-live
;* V02 loc1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd <ubyte[]>
;* V03 loc2 [V03 ] ( 0, 0 ) int -> zero-ref
; V04 loc3 [V04,T12] ( 4, 16 ) int -> rax
; V05 loc4 [V05,T18] ( 3, 12 ) ref -> rbx class-hnd <ubyte[]>
; V06 loc5 [V06,T29] ( 2, 8 ) ref -> r15 class-hnd <ubyte[]>
; V07 loc6 [V07 ] ( 12, 43 ) struct (16) [rbp-0x40] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[int]>
;* V08 loc7 [V08 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.Threading.Tasks.ValueTask`1[int]>
;* V09 loc8 [V09 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] ld-addr-op <System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1[int]>
;* V10 loc9 [V10 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.Span`1[ubyte]>
;* V11 loc10 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Exception>
; V12 OutArgs [V12 ] ( 1, 1 ) struct ( 8) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V13 tmp1 [V13 ] ( 0, 0 ) int -> zero-ref "dup spill"
; V14 tmp2 [V14,T06] ( 3, 24 ) ref -> rbx class-hnd exact "impAppendStmt" <Microsoft.Win32.SafeHandles.SafeFileHandle>
;* V15 tmp3 [V15 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Memory`1[ubyte]>
; V16 tmp4 [V16,T49] ( 2, 0 ) ref -> rdx class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
; V17 tmp5 [V17,T21] ( 3, 12 ) int -> rax "Inline return value spill temp"
; V18 tmp6 [V18,T08] ( 3, 24 ) int -> rax "Inlining Arg"
; V19 tmp7 [V19,T02] ( 4, 32 ) ref -> r15 class-hnd "Inlining Arg" <ubyte[]>
; V20 tmp8 [V20,T03] ( 4, 32 ) int -> r14 "Inlining Arg"
;* V21 tmp9 [V21 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Memory`1[ubyte]>
; V22 tmp10 [V22,T15] ( 2, 16 ) long -> r12 "Inlining Arg"
;* V23 tmp11 [V23 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Threading.CancellationToken>
; V24 tmp12 [V24,T14] ( 2, 16 ) ref -> rcx class-hnd "dup spill" <System.__Canon>
; V25 tmp13 [V25,T01] ( 15, 60 ) ref -> [rbp-0x50]
; V26 tmp14 [V26,T07] ( 3, 24 ) ref -> [rbp-0x58] class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.Win32.SafeHandles.SafeFileHandle+ThreadPoolValueTaskSource>
;* V27 tmp15 [V27 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask`1[int]>
;* V28 tmp16 [V28 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Memory`1[ubyte]>
;* V29 tmp17 [V29 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
; V30 tmp18 [V30,T16] ( 2, 16 ) short -> rsi "Inlining Arg"
;* V31 tmp19 [V31 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask`1[int]>
;* V32 tmp20 [V32 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] ld-addr-op "Inline stloc first use temp" <System.Threading.Tasks.ValueTask`1[int]>
;* V33 tmp21 [V33 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1[int]>
;* V34 tmp22 [V34 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Object>
;* V35 tmp23 [V35 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V36 tmp24 [V36 ] ( 0, 0 ) short -> zero-ref "Inlining Arg"
;* V37 tmp25 [V37 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[int]>
;* V38 tmp26 [V38,T40] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V39 tmp27 [V39,T10] ( 4, 16 ) ref -> rbx class-hnd "Inline stloc first use temp" <System.Object>
; V40 tmp28 [V40,T19] ( 3, 12 ) ref -> rax class-hnd "Inline stloc first use temp" <System.Threading.Tasks.Task`1[int]>
;* V41 tmp29 [V41 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <System.Threading.Tasks.Sources.IValueTaskSource`1[int]>
;* V42 tmp30 [V42 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V43 tmp31 [V43 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V44 tmp32 [V44 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V45 tmp33 [V45 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Runtime.CompilerServices.IAsyncStateMachineBox>
; V46 tmp34 [V46,T04] ( 5, 28 ) int -> r14 "Inline return value spill temp"
; V47 tmp35 [V47,T05] ( 4, 24 ) ref -> r15 class-hnd "Inline stloc first use temp" <System.Object>
; V48 tmp36 [V48,T09] ( 5, 20 ) ref -> r14 class-hnd "Inline stloc first use temp" <System.Threading.Tasks.Task`1[int]>
;* V49 tmp37 [V49 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <System.Threading.Tasks.Sources.IValueTaskSource`1[int]>
; V50 tmp38 [V50,T25] ( 4, 8 ) ref -> rbx class-hnd "Inlining Arg" <ubyte[]>
; V51 tmp39 [V51,T28] ( 4, 8 ) int -> r15 "Inlining Arg"
;* V52 tmp40 [V52 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
-; V53 tmp41 [V53,T36] ( 5, 5 ) ref -> rbx class-hnd "Inline return value spill temp" <ubyte[]>
+; V53 tmp41 [V53,T37] ( 4, 4 ) ref -> rbx class-hnd "Inline return value spill temp" <ubyte[]>
; V54 tmp42 [V54,T34] ( 3, 6 ) ref -> rbx class-hnd exact "dup spill" <ubyte[]>
;* V55 tmp43 [V55 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V56 tmp44 [V56 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V57 tmp45 [V57 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
; V58 tmp46 [V58,T26] ( 4, 8 ) byref -> r15 single-def "Inlining Arg"
-; V59 tmp47 [V59,T43] ( 3, 3 ) ref -> rsi class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task`1[ubyte[]]>
+; V59 tmp47 [V59,T46] ( 2, 2 ) ref -> rsi class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task`1[ubyte[]]>
;* V60 tmp48 [V60 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd single-def "Inlining Arg" <ubyte[]>
; V61 tmp49 [V61,T27] ( 4, 8 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task`1[ubyte[]]>
;* V62 tmp50 [V62 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
;* V63 tmp51 [V63 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inlining Arg" <ubyte[]>
;* V64 tmp52 [V64 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V65 tmp53 [V65,T35] ( 3, 6 ) ref -> r15 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task`1[System.__Canon]>
; V66 tmp54 [V66,T17] ( 6, 12 ) ref -> r14 class-hnd exact single-def "impAppendStmt" <System.Threading.Tasks.TplEventSource>
;* V67 tmp55 [V67 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Threading.Tasks.TplEventSource>
; V68 tmp56 [V68,T39] ( 2, 4 ) int -> r13 "Inlining Arg"
;* V69 tmp57 [V69,T47] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V70 tmp58 [V70 ] ( 0, 0 ) ref -> zero-ref "field V08._obj (fldOffset=0x0)" P-INDEP
;* V71 tmp59 [V71 ] ( 0, 0 ) int -> zero-ref "field V08._result (fldOffset=0x8)" P-INDEP
;* V72 tmp60 [V72 ] ( 0, 0 ) short -> zero-ref "field V08._token (fldOffset=0xc)" P-INDEP
;* V73 tmp61 [V73 ] ( 0, 0 ) ubyte -> zero-ref "field V08._continueOnCapturedContext (fldOffset=0xe)" P-INDEP
;* V74 tmp62 [V74 ] ( 0, 0 ) byref -> zero-ref "field V10._reference (fldOffset=0x0)" P-INDEP
;* V75 tmp63 [V75 ] ( 0, 0 ) int -> zero-ref "field V10._length (fldOffset=0x8)" P-INDEP
;* V76 tmp64 [V76 ] ( 0, 0 ) ref -> zero-ref "field V15._object (fldOffset=0x0)" P-INDEP
;* V77 tmp65 [V77 ] ( 0, 0 ) int -> zero-ref "field V15._index (fldOffset=0x8)" P-INDEP
;* V78 tmp66 [V78 ] ( 0, 0 ) int -> zero-ref "field V15._length (fldOffset=0xc)" P-INDEP
; V79 tmp67 [V79,T20] ( 3, 12 ) ref -> r15 "field V21._object (fldOffset=0x0)" P-INDEP
; V80 tmp68 [V80,T13] ( 4, 16 ) int -> r14 "field V21._index (fldOffset=0x8)" P-INDEP
; V81 tmp69 [V81,T22] ( 3, 12 ) int -> r13 "field V21._length (fldOffset=0xc)" P-INDEP
; V82 tmp70 [V82,T30] ( 2, 8 ) ref -> [rbp-0x60] spill-single-def "field V23._source (fldOffset=0x0)" P-INDEP
;* V83 tmp71 [V83 ] ( 0, 0 ) ref -> zero-ref "field V27._obj (fldOffset=0x0)" P-INDEP
;* V84 tmp72 [V84 ] ( 0, 0 ) int -> zero-ref "field V27._result (fldOffset=0x8)" P-INDEP
;* V85 tmp73 [V85 ] ( 0, 0 ) short -> zero-ref "field V27._token (fldOffset=0xc)" P-INDEP
;* V86 tmp74 [V86 ] ( 0, 0 ) ubyte -> zero-ref "field V27._continueOnCapturedContext (fldOffset=0xe)" P-INDEP
;* V87 tmp75 [V87 ] ( 0, 0 ) ref -> zero-ref "field V28._object (fldOffset=0x0)" P-INDEP
;* V88 tmp76 [V88 ] ( 0, 0 ) int -> zero-ref "field V28._index (fldOffset=0x8)" P-INDEP
;* V89 tmp77 [V89 ] ( 0, 0 ) int -> zero-ref "field V28._length (fldOffset=0xc)" P-INDEP
; V90 tmp78 [V90,T31] ( 2, 8 ) ref -> rbx "field V31._obj (fldOffset=0x0)" P-INDEP
;* V91 tmp79 [V91,T41] ( 0, 0 ) int -> zero-ref "field V31._result (fldOffset=0x8)" P-INDEP
; V92 tmp80 [V92,T32] ( 2, 8 ) short -> rsi "field V31._token (fldOffset=0xc)" P-INDEP
;* V93 tmp81 [V93,T42] ( 0, 0 ) ubyte -> zero-ref "field V31._continueOnCapturedContext (fldOffset=0xe)" P-INDEP
-; V94 tmp82 [V94,T44] ( 3, 3 ) byref -> r14 "field V52._reference (fldOffset=0x0)" P-INDEP
-; V95 tmp83 [V95,T37] ( 5, 5 ) int -> r15 "field V52._length (fldOffset=0x8)" P-INDEP
+; V94 tmp82 [V94,T43] ( 3, 3 ) byref -> r14 "field V52._reference (fldOffset=0x0)" P-INDEP
+; V95 tmp83 [V95,T36] ( 5, 5 ) int -> r15 "field V52._length (fldOffset=0x8)" P-INDEP
;* V96 tmp84 [V96 ] ( 0, 0 ) ref -> zero-ref "field V62._source (fldOffset=0x0)" P-INDEP
; V97 tmp85 [V97,T38] ( 2, 4 ) ref -> rdx "argument with side effect"
; V98 PSPSym [V98,T48] ( 1, 1 ) long -> [rbp-0x68] do-not-enreg[V] "PSPSym"
-; V99 cse0 [V99,T45] ( 3, 3 ) ref -> r14 "CSE #10: conservative"
-; V100 cse1 [V100,T46] ( 3, 3 ) int -> rsi "CSE #11: conservative"
+; V99 cse0 [V99,T44] ( 3, 3 ) ref -> r14 "CSE #10: conservative"
+; V100 cse1 [V100,T45] ( 3, 3 ) int -> rsi "CSE #11: conservative"
; V101 cse2 [V101,T11] ( 4, 16 ) ref -> rsi "CSE #01: moderate"
; V102 cse3 [V102,T23] ( 3, 12 ) int -> rdi "CSE #04: moderate"
; V103 cse4 [V103,T24] ( 3, 12 ) int -> r13 "CSE #03: moderate"
;
; Lcl frame size = 72
G_M15884_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 72
lea rbp, [rsp+0x70]
xor eax, eax
mov qword ptr [rbp-0x40], rax
mov qword ptr [rbp-0x68], rsp
mov bword ptr [rbp-0x48], rdi
mov rdx, rdi
;; size=36 bbWeight=1 PerfScore 10.25
G_M15884_IG02:
mov edi, dword ptr [rdx+0x10]
mov dword ptr [rbp-0x2C], edi
;; size=6 bbWeight=1 PerfScore 3.00
G_M15884_IG03:
cmp dword ptr [rbp-0x2C], 0
je SHORT G_M15884_IG04
mov rdi, 0xD1FFAB1E ; const ptr
mov rdi, gword ptr [rdi]
mov esi, 512
mov rax, 0xD1FFAB1E ; code for System.Buffers.SharedArrayPool`1[ubyte]:Rent(int):ubyte[]:this
call [rax]System.Buffers.SharedArrayPool`1[ubyte]:Rent(int):ubyte[]:this
mov rdx, bword ptr [rbp-0x48]
lea rdi, bword ptr [rdx+0x08]
mov rsi, rax
call CORINFO_HELP_CHECKED_ASSIGN_REF
nop
;; size=53 bbWeight=1 PerfScore 11.75
G_M15884_IG04:
cmp dword ptr [rbp-0x2C], 0
je SHORT G_M15884_IG07
xor edi, edi
mov rdx, bword ptr [rbp-0x48]
mov dword ptr [rdx+0x14], edi
jmp SHORT G_M15884_IG06
;; size=17 bbWeight=1 PerfScore 7.25
G_M15884_IG05:
mov rsi, bword ptr [rbp-0x48]
add dword ptr [rsi+0x14], r14d
mov rdx, rsi
;; size=11 bbWeight=8 PerfScore 34.00
G_M15884_IG06:
mov edi, dword ptr [rdx+0x14]
mov rsi, gword ptr [rdx+0x08]
cmp edi, dword ptr [rsi+0x08]
jne G_M15884_IG11
mov edi, dword ptr [rsi+0x08]
add edi, edi
mov eax, edi
cmp eax, 0xD1FFAB1E
jbe SHORT G_M15884_IG10
mov eax, dword ptr [rsi+0x08]
inc eax
cmp eax, 0xD1FFAB1E
jle SHORT G_M15884_IG09
jmp SHORT G_M15884_IG10
;; size=44 bbWeight=4 PerfScore 69.00
G_M15884_IG07:
mov rdx, bword ptr [rbp-0x48]
vmovdqu xmm0, xmmword ptr [rdx+0x28]
vmovdqu xmmword ptr [rbp-0x40], xmm0
;; size=14 bbWeight=1 PerfScore 6.00
G_M15884_IG08:
xor eax, eax
mov qword ptr [rdx+0x28], rax
mov qword ptr [rdx+0x30], rax
mov dword ptr [rbp-0x2C], -1
mov dword ptr [rdx+0x10], -1
jmp G_M15884_IG16
;; size=29 bbWeight=1 PerfScore 6.25
G_M15884_IG09:
mov eax, 0xD1FFAB1E
;; size=5 bbWeight=4 PerfScore 1.00
G_M15884_IG10:
mov rdi, 0xD1FFAB1E ; const ptr
mov rdi, gword ptr [rdi]
mov esi, eax
mov rax, 0xD1FFAB1E ; code for System.Buffers.SharedArrayPool`1[ubyte]:Rent(int):ubyte[]:this
call [rax]System.Buffers.SharedArrayPool`1[ubyte]:Rent(int):ubyte[]:this
mov rbx, rax
mov rdx, bword ptr [rbp-0x48]
mov rdi, gword ptr [rdx+0x08]
mov r8d, dword ptr [rdx+0x14]
mov rdx, rbx
xor esi, esi
xor ecx, ecx
mov rax, 0xD1FFAB1E ; code for System.Buffer:BlockCopy(System.Array,int,System.Array,int,int)
call [rax]System.Buffer:BlockCopy(System.Array,int,System.Array,int,int)
mov rdx, bword ptr [rbp-0x48]
mov r15, gword ptr [rdx+0x08]
lea rdi, bword ptr [rdx+0x08]
mov rsi, rbx
call CORINFO_HELP_CHECKED_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; const ptr
mov rdi, gword ptr [rdi]
mov rsi, r15
xor edx, edx
mov rax, 0xD1FFAB1E ; code for System.Buffers.SharedArrayPool`1[ubyte]:Return(ubyte[],ubyte):this
call [rax]System.Buffers.SharedArrayPool`1[ubyte]:Return(ubyte[],ubyte):this
mov rdx, bword ptr [rbp-0x48]
;; size=115 bbWeight=4 PerfScore 107.00
G_M15884_IG11:
mov rbx, gword ptr [rdx]
mov r15, gword ptr [rdx+0x08]
mov edi, dword ptr [rdx+0x14]
mov r14d, edi
test r15, r15
jne SHORT G_M15884_IG12
test r14d, r14d
je SHORT G_M15884_IG13
jmp G_M15884_IG31
;; size=28 bbWeight=4 PerfScore 43.00
G_M15884_IG12:
mov r13d, dword ptr [r15+0x08]
cmp r13d, r14d
jb G_M15884_IG31
sub r13d, r14d
jmp SHORT G_M15884_IG14
;; size=18 bbWeight=4 PerfScore 22.00
G_M15884_IG13:
xor r15, r15
xor r14d, r14d
xor r13d, r13d
;; size=9 bbWeight=4 PerfScore 3.00
G_M15884_IG14:
movsxd r12, edi
mov rax, gword ptr [rdx+0x20]
mov gword ptr [rbp-0x60], rax
lea rdi, bword ptr [rbx+0x20]
xor rcx, rcx
xchg gword ptr [rdi], rcx
test rcx, rcx
jne SHORT G_M15884_IG15
mov rdi, 0xD1FFAB1E ; Microsoft.Win32.SafeHandles.SafeFileHandle+ThreadPoolValueTaskSource
call CORINFO_HELP_NEWSFAST
mov rcx, rax
mov gword ptr [rbp-0x58], rcx
lea rdi, bword ptr [rcx+0x08]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
mov rbx, gword ptr [rbp-0x58]
mov rcx, rbx
;; size=66 bbWeight=4 PerfScore 123.00
G_M15884_IG15:
mov byte ptr [rcx+0x38], 1
mov gword ptr [rbp-0x50], rcx
lea rdi, bword ptr [rcx+0x78]
mov rsi, r15
call CORINFO_HELP_ASSIGN_REF
mov rbx, gword ptr [rbp-0x50]
mov dword ptr [rbx+0x80], r14d
mov dword ptr [rbx+0x84], r13d
mov qword ptr [rbx+0x30], r12
lea rdi, bword ptr [rbx+0x70]
mov rsi, gword ptr [rbp-0x60]
call CORINFO_HELP_ASSIGN_REF
xor rax, rax
mov gword ptr [rbx+0x18], rax
mov rax, 0xD1FFAB1E ; code for System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext
call [rax]System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext
lea rdi, bword ptr [rbx+0x10]
mov rsi, rax
call CORINFO_HELP_ASSIGN_REF
mov rsi, rbx
mov rdi, 0xD1FFAB1E ; System.Threading.Tasks.Task
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
test rax, rax
jne G_M15884_IG30
mov rdi, 0xD1FFAB1E ; const ptr
mov rdi, gword ptr [rdi]
mov rsi, rbx
xor edx, edx
mov rax, 0xD1FFAB1E ; code for System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this
call [rax]System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this
movsx rsi, word ptr [rbx+0x68]
mov gword ptr [rbp-0x40], rbx
xor edi, edi
mov dword ptr [rbp-0x38], edi
mov word ptr [rbp-0x34], si
mov byte ptr [rbp-0x32], 0
mov rbx, gword ptr [rbp-0x40]
test rbx, rbx
jne SHORT G_M15884_IG18
;; size=180 bbWeight=4 PerfScore 152.00
G_M15884_IG16:
mov r15, gword ptr [rbp-0x40]
test r15, r15
jne G_M15884_IG22
;; size=13 bbWeight=8 PerfScore 18.00
G_M15884_IG17:
mov r14d, dword ptr [rbp-0x38]
jmp G_M15884_IG25
;; size=9 bbWeight=4 PerfScore 12.00
G_M15884_IG18:
mov rsi, rbx
mov rdi, 0xD1FFAB1E ; System.Threading.Tasks.Task`1[int]
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
test rax, rax
je SHORT G_M15884_IG19
test dword ptr [rax+0x34], 0xD1FFAB1E
jne SHORT G_M15884_IG16
jmp SHORT G_M15884_IG20
;; size=41 bbWeight=4 PerfScore 44.00
G_M15884_IG19:
mov rdi, rbx
movsx rsi, word ptr [rbp-0x34]
mov r11, 0xD1FFAB1E ; code for System.Threading.Tasks.Sources.IValueTaskSource`1[int]:GetStatus(short):int:this
call [r11]System.Threading.Tasks.Sources.IValueTaskSource`1[int]:GetStatus(short):int:this
test eax, eax
jne SHORT G_M15884_IG16
;; size=25 bbWeight=4 PerfScore 31.00
G_M15884_IG20:
xor edi, edi
mov dword ptr [rbp-0x2C], edi
;; size=5 bbWeight=1 PerfScore 1.25
G_M15884_IG21:
mov rdx, bword ptr [rbp-0x48]
mov dword ptr [rdx+0x10], edi
lea rdi, bword ptr [rdx+0x28]
lea rsi, bword ptr [rbp-0x40]
call CORINFO_HELP_ASSIGN_BYREF
movsq
add rdx, 24
mov rsi, bword ptr [rbp-0x48]
mov rdi, 0xD1FFAB1E ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[ubyte[]]:GetStateMachineBox[System.IO.File+<InternalReadAllBytesUnknownLengthAsync>d__101](byref,byref):System.Runtime.CompilerServices.IAsyncStateMachineBox
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[System.__Canon]:GetStateMachineBox[System.IO.File+<InternalReadAllBytesUnknownLengthAsync>d__101](byref,byref):System.Runtime.CompilerServices.IAsyncStateMachineBox
call [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[System.__Canon]:GetStateMachineBox[System.IO.File+<InternalReadAllBytesUnknownLengthAsync>d__101](byref,byref):System.Runtime.CompilerServices.IAsyncStateMachineBox
mov rdx, rax
lea rsi, [rbp-0x40]
mov rdi, 0xD1FFAB1E ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[ubyte[]]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[int]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[int]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)
call [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[int]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)
jmp G_M15884_IG33
;; size=86 bbWeight=1 PerfScore 16.00
G_M15884_IG22:
mov rsi, r15
mov rdi, 0xD1FFAB1E ; System.Threading.Tasks.Task`1[int]
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
mov r14, rax
test r14, r14
je SHORT G_M15884_IG24
mov edi, dword ptr [r14+0x34]
and edi, 0xD1FFAB1E
cmp edi, 0xD1FFAB1E
je SHORT G_M15884_IG23
mov rdi, r14
xor esi, esi
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.TaskAwaiter:HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task,int)
call [rax]System.Runtime.CompilerServices.TaskAwaiter:HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task,int)
;; size=68 bbWeight=4 PerfScore 50.00
G_M15884_IG23:
mov r14d, dword ptr [r14+0x38]
jmp SHORT G_M15884_IG25
;; size=6 bbWeight=4 PerfScore 16.00
G_M15884_IG24:
mov rdi, r15
movsx rsi, word ptr [rbp-0x34]
mov r11, 0xD1FFAB1E ; code for System.Threading.Tasks.Sources.IValueTaskSource`1[int]:GetResult(short):int:this
call [r11]System.Threading.Tasks.Sources.IValueTaskSource`1[int]:GetResult(short):int:this
mov r14d, eax
;; size=24 bbWeight=4 PerfScore 27.00
G_M15884_IG25:
test r14d, r14d
jne G_M15884_IG05
;; size=9 bbWeight=8 PerfScore 10.00
G_M15884_IG26:
mov rsi, bword ptr [rbp-0x48]
mov rbx, gword ptr [rsi+0x08]
mov r15d, dword ptr [rsi+0x14]
test rbx, rbx
jne SHORT G_M15884_IG27
test r15d, r15d
jne SHORT G_M15884_IG31
xor r14, r14
xor r15d, r15d
jmp SHORT G_M15884_IG28
;; size=30 bbWeight=1 PerfScore 10.00
G_M15884_IG27:
cmp dword ptr [rbx+0x08], r15d
jb SHORT G_M15884_IG31
lea r14, bword ptr [rbx+0x10]
;; size=10 bbWeight=1 PerfScore 4.50
G_M15884_IG28:
test r15d, r15d
jne SHORT G_M15884_IG29
mov rbx, 0xD1FFAB1E ; 'System.Byte[]'
jmp SHORT G_M15884_IG32
;; size=17 bbWeight=1 PerfScore 3.50
G_M15884_IG29:
mov esi, r15d
mov rdi, 0xD1FFAB1E ; ubyte[]
call CORINFO_HELP_NEWARR_1_VC
mov rbx, rax
mov edx, r15d
lea rdi, bword ptr [rbx+0x10]
mov rsi, r14
mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
call [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
jmp SHORT G_M15884_IG32
;; size=45 bbWeight=1 PerfScore 8.00
G_M15884_IG30:
mov edi, 44
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
int3
;; size=18 bbWeight=0 PerfScore 0.00
G_M15884_IG31:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
G_M15884_IG32:
cmp dword ptr [rbp-0x2C], 0
jge SHORT G_M15884_IG35
mov rsi, bword ptr [rbp-0x48]
mov rdi, gword ptr [rsi]
mov rax, 0xD1FFAB1E ; code for System.Runtime.InteropServices.SafeHandle:Dispose():this
cmp dword ptr [rdi], edi
call [rax]System.Runtime.InteropServices.SafeHandle:Dispose():this
mov rsi, bword ptr [rbp-0x48]
mov rsi, gword ptr [rsi+0x08]
mov rdi, 0xD1FFAB1E ; const ptr
mov rdi, gword ptr [rdi]
xor edx, edx
mov rax, 0xD1FFAB1E ; code for System.Buffers.SharedArrayPool`1[ubyte]:Return(ubyte[],ubyte):this
call [rax]System.Buffers.SharedArrayPool`1[ubyte]:Return(ubyte[],ubyte):this
jmp SHORT G_M15884_IG35
;; size=64 bbWeight=1 PerfScore 23.00
G_M15884_IG33:
mov rdi, rsp
;; size=3 bbWeight=1 PerfScore 0.25
G_M15884_IG34:
- call G_M15884_IG45
- jmp SHORT G_M15884_IG38
+ call G_M15884_IG41
+ jmp SHORT G_M15884_IG36
;; size=7 bbWeight=1 PerfScore 3.00
G_M15884_IG35:
mov rsi, bword ptr [rbp-0x48]
mov dword ptr [rsi+0x10], -2
xor rdi, rdi
mov gword ptr [rsi+0x08], rdi
lea r15, bword ptr [rsi+0x18]
cmp gword ptr [r15], 0
- jne SHORT G_M15884_IG40
- test rbx, rbx
- jne G_M15884_IG42
- mov rdi, 0xD1FFAB1E ; global ptr
- test byte ptr [rdi], 1
- je G_M15884_IG44
- ;; size=55 bbWeight=1 PerfScore 13.25
-G_M15884_IG36:
- mov rdi, 0xD1FFAB1E ; data for System.Threading.Tasks.Task`1[ubyte[]]:s_defaultResultTask
- mov rsi, gword ptr [rdi]
- ;; size=13 bbWeight=1 PerfScore 2.25
-G_M15884_IG37:
+ jne SHORT G_M15884_IG38
+ mov rdi, 0xD1FFAB1E ; System.Threading.Tasks.Task`1[ubyte[]]
+ call CORINFO_HELP_NEWSFAST
+ mov r14, rax
+ mov dword ptr [r14+0x34], 0xD1FFAB1E
+ lea rdi, bword ptr [r14+0x38]
+ mov rsi, rbx
+ call CORINFO_HELP_ASSIGN_REF
+ mov rsi, r14
mov rdi, r15
call CORINFO_HELP_CHECKED_ASSIGN_REF
- ;; size=8 bbWeight=1 PerfScore 1.25
-G_M15884_IG38:
+ ;; size=76 bbWeight=1 PerfScore 13.50
+G_M15884_IG36:
nop
;; size=1 bbWeight=1 PerfScore 0.25
-G_M15884_IG39:
+G_M15884_IG37:
add rsp, 72
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.25
-G_M15884_IG40:
+G_M15884_IG38:
mov r15, gword ptr [r15]
mov rdi, 0xD1FFAB1E ; const ptr
mov r14, gword ptr [rdi]
cmp byte ptr [r14+0x9D], 0
- je SHORT G_M15884_IG41
+ je SHORT G_M15884_IG39
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task:get_Id():int:this
cmp dword ptr [rdi], edi
call [rax]System.Threading.Tasks.Task:get_Id():int:this
mov r13d, eax
movzx rsi, byte ptr [r14+0x9D]
test esi, esi
- je SHORT G_M15884_IG41
+ je SHORT G_M15884_IG39
xor ecx, ecx
mov dword ptr [rsp], ecx
mov rcx, qword ptr [r14+0x80]
mov edx, dword ptr [r14+0x98]
mov rdi, r14
mov r8d, 4
mov r9d, 8
mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.EventSource:IsEnabledCommon(ubyte,int,long,int,long,ubyte):ubyte:this
call [rax]System.Diagnostics.Tracing.EventSource:IsEnabledCommon(ubyte,int,long,int,long,ubyte):ubyte:this
test eax, eax
- je SHORT G_M15884_IG41
+ je SHORT G_M15884_IG39
mov rdi, r14
mov edx, r13d
mov esi, 15
mov ecx, 1
mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,int,int):this
call [rax]System.Diagnostics.Tracing.EventSource:WriteEvent(int,int,int):this
;; size=136 bbWeight=1 PerfScore 33.00
-G_M15884_IG41:
+G_M15884_IG39:
mov rdi, r15
mov rsi, rbx
mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task`1[System.__Canon]:TrySetResult(System.__Canon):ubyte:this
cmp dword ptr [rdi], edi
call [rax]System.Threading.Tasks.Task`1[System.__Canon]:TrySetResult(System.__Canon):ubyte:this
test eax, eax
- jne G_M15884_IG38
- jmp SHORT G_M15884_IG43
- ;; size=30 bbWeight=1 PerfScore 10.00
-G_M15884_IG42:
- mov rdi, 0xD1FFAB1E ; System.Threading.Tasks.Task`1[ubyte[]]
- call CORINFO_HELP_NEWSFAST
- mov r14, rax
- mov dword ptr [r14+0x34], 0xD1FFAB1E
- lea rdi, bword ptr [r14+0x38]
- mov rsi, rbx
- call CORINFO_HELP_ASSIGN_REF
- mov rsi, r14
- jmp G_M15884_IG37
- ;; size=46 bbWeight=1 PerfScore 6.50
-G_M15884_IG43:
+ jne G_M15884_IG36
+ ;; size=28 bbWeight=1 PerfScore 8.00
+G_M15884_IG40:
mov edi, 24
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowInvalidOperationException(int)
call [rax]System.ThrowHelper:ThrowInvalidOperationException(int)
int3
;; size=18 bbWeight=0 PerfScore 0.00
-G_M15884_IG44:
- mov rdi, 0xD1FFAB1E ; System.Threading.Tasks.Task`1[ubyte[]]
- call CORINFO_HELP_GET_GCSTATIC_BASE
- jmp G_M15884_IG36
- ;; size=20 bbWeight=0 PerfScore 0.00
-G_M15884_IG45:
+G_M15884_IG41:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 24
mov rbp, qword ptr [rdi+0x08]
mov qword ptr [rsp+0x08], rbp
lea rbp, [rbp+0x70]
;; size=27 bbWeight=1 PerfScore 9.75
-G_M15884_IG46:
+G_M15884_IG42:
cmp dword ptr [rbp-0x2C], 0
- jge SHORT G_M15884_IG47
+ jge SHORT G_M15884_IG43
mov rsi, bword ptr [rbp-0x48]
mov rdi, gword ptr [rsi]
mov rax, 0xD1FFAB1E ; code for System.Runtime.InteropServices.SafeHandle:Dispose():this
cmp dword ptr [rdi], edi
call [rax]System.Runtime.InteropServices.SafeHandle:Dispose():this
mov r15, bword ptr [rbp-0x48]
mov rsi, gword ptr [r15+0x08]
mov rdi, 0xD1FFAB1E ; const ptr
mov rdi, gword ptr [rdi]
xor edx, edx
mov rax, 0xD1FFAB1E ; code for System.Buffers.SharedArrayPool`1[ubyte]:Return(ubyte[],ubyte):this
call [rax]System.Buffers.SharedArrayPool`1[ubyte]:Return(ubyte[],ubyte):this
;; size=62 bbWeight=1 PerfScore 21.00
-G_M15884_IG47:
+G_M15884_IG43:
nop
;; size=1 bbWeight=1 PerfScore 0.25
-G_M15884_IG48:
+G_M15884_IG44:
add rsp, 24
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.25
-G_M15884_IG49:
+G_M15884_IG45:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 24
mov rbp, qword ptr [rdi+0x08]
mov qword ptr [rsp+0x08], rbp
lea rbp, [rbp+0x70]
;; size=27 bbWeight=0 PerfScore 0.00
-G_M15884_IG50:
+G_M15884_IG46:
mov rdx, rsi
mov r15, bword ptr [rbp-0x48]
mov dword ptr [r15+0x10], -2
xor rdi, rdi
mov gword ptr [r15+0x08], rdi
lea rdi, bword ptr [r15+0x18]
mov rsi, 0xD1FFAB1E ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[ubyte[]]
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[System.__Canon]:SetException(System.Exception):this
call [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[System.__Canon]:SetException(System.Exception):this
- lea rax, G_M15884_IG38
+ lea rax, G_M15884_IG36
;; size=54 bbWeight=0 PerfScore 0.00
-G_M15884_IG51:
+G_M15884_IG47:
add rsp, 24
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1667, prolog size 36, PerfScore 982.00, instruction count 415, allocated bytes for code 1667 (MethodHash=007cc1f3) for method System.IO.File+<InternalReadAllBytesUnknownLengthAsync>d__101:MoveNext():this (FullOpts)
+; Total bytes of code 1599, prolog size 36, PerfScore 970.25, instruction count 403, allocated bytes for code 1599 (MethodHash=007cc1f3) for method System.IO.File+<InternalReadAllBytesUnknownLengthAsync>d__101:MoveNext():this (FullOpts)
-50 (-10.66 % of base) - ILCompiler.Reflection.ReadyToRun.Amd64.GcTransition:GetSlotState(ILCompiler.Reflection.ReadyToRun.Amd64.GcSlotTable,ushort):System.String:this
; Assembly listing for method ILCompiler.Reflection.ReadyToRun.Amd64.GcTransition:GetSlotState(ILCompiler.Reflection.ReadyToRun.Amd64.GcSlotTable,ushort):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; 8 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T01] ( 4, 4 ) ref -> rbx this class-hnd single-def <ILCompiler.Reflection.ReadyToRun.Amd64.GcTransition>
; V01 arg1 [V01,T04] ( 3, 3 ) ref -> rsi class-hnd single-def <ILCompiler.Reflection.ReadyToRun.Amd64.GcSlotTable>
; V02 arg2 [V02,T05] ( 3, 2.50) ushort -> rdx single-def
; V03 loc0 [V03,T09] ( 4, 3 ) ref -> r15 class-hnd single-def <ILCompiler.Reflection.ReadyToRun.Amd64.GcSlotTable+GcSlot>
; V04 loc1 [V04,T12] ( 3, 2 ) ref -> rax class-hnd <System.String>
-; V05 loc2 [V05,T07] ( 4, 4 ) ref -> rdx class-hnd <System.String>
-; V06 loc3 [V06,T06] ( 8, 4 ) ref -> r13 class-hnd <System.Type>
+; V05 loc2 [V05,T06] ( 4, 4 ) ref -> rdx class-hnd <System.String>
+; V06 loc3 [V06,T07] ( 7, 3.50) ref -> r13 class-hnd <System.Type>
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V08 tmp1 [V08,T02] ( 3, 6 ) ref -> rdi class-hnd single-def "impAppendStmt" <System.Collections.Generic.List`1[ILCompiler.Reflection.ReadyToRun.Amd64.GcSlotTable+GcSlot]>
; V09 tmp2 [V09,T10] ( 3, 3 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" <System.Int32>
; V10 tmp3 [V10,T11] ( 3, 3 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" <System.Int32>
; V11 tmp4 [V11,T14] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.NotImplementedException>
; V12 tmp5 [V12,T00] ( 4, 8 ) int -> rax "Inlining Arg"
;* V13 tmp6 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Int32>
; V14 tmp7 [V14,T13] ( 2, 2 ) ref -> r14 class-hnd single-def "Inlining Arg" <ILCompiler.Reflection.ReadyToRun.GcStackSlot>
; V15 tmp8 [V15,T03] ( 3, 6 ) ref -> rdi single-def "arr expr"
; V16 cse0 [V16,T08] ( 7, 3.50) int -> r14 "CSE #01: moderate"
;
; Lcl frame size = 0
G_M8802_IG01:
push rbp
push r15
push r14
push r13
push rbx
lea rbp, [rsp+0x20]
mov rbx, rdi
;; size=16 bbWeight=1 PerfScore 5.75
G_M8802_IG02:
mov rdi, gword ptr [rsi+0x08]
mov eax, dword ptr [rbx+0x0C]
cmp eax, dword ptr [rdi+0x10]
- jae G_M8802_IG15
+ jae G_M8802_IG13
mov rdi, gword ptr [rdi+0x08]
cmp eax, dword ptr [rdi+0x08]
- jae G_M8802_IG16
+ jae G_M8802_IG14
mov r15, gword ptr [rdi+8*rax+0x10]
cmp gword ptr [r15+0x08], 0
- jne SHORT G_M8802_IG05
- ;; size=41 bbWeight=1 PerfScore 20.00
+ jne G_M8802_IG07
+ ;; size=45 bbWeight=1 PerfScore 20.00
G_M8802_IG03:
movzx r14, dx
cmp r14d, 0x5064
- ja G_M8802_IG06
+ ja G_M8802_IG08
cmp r14d, 452
- je G_M8802_IG09
+ je G_M8802_IG11
cmp r14d, 0x5064
- jne G_M8802_IG13
+ jne G_M8802_IG12
mov r13, 0xD1FFAB1E ; 'ILCompiler.Reflection.ReadyToRun.RiscV64.Registers'
;; size=53 bbWeight=0.50 PerfScore 2.12
G_M8802_IG04:
mov rdi, 0xD1FFAB1E ; System.Int32
call CORINFO_HELP_NEWSFAST
- mov edi, dword ptr [r15+0x14]
- mov dword ptr [rax+0x08], edi
- test r13, r13
- jne G_M8802_IG10
- jmp G_M8802_IG14
- ;; size=36 bbWeight=0.50 PerfScore 3.75
+ mov esi, dword ptr [r15+0x14]
+ mov dword ptr [rax+0x08], esi
+ mov rsi, rax
+ mov rdi, r13
+ mov rax, qword ptr [r13]
+ mov rax, qword ptr [rax+0xA8]
+ call [rax+0x28]System.Type:GetEnumName(System.Object):System.String:this
+ ;; size=42 bbWeight=0.50 PerfScore 5.88
G_M8802_IG05:
+ mov rdx, 0xD1FFAB1E ; 'live'
+ mov rdi, 0xD1FFAB1E ; 'dead'
+ cmp byte ptr [rbx+0x1C], 0
+ cmove rdx, rdi
+ mov rdi, rax
+ mov rsi, 0xD1FFAB1E ; ' is '
+ mov rax, 0xD1FFAB1E ; code for System.String:Concat(System.String,System.String,System.String):System.String
+ ;; size=51 bbWeight=1 PerfScore 4.50
+G_M8802_IG06:
+ pop rbx
+ pop r13
+ pop r14
+ pop r15
+ pop rbp
+ tail.jmp [rax]System.String:Concat(System.String,System.String,System.String):System.String
+ ;; size=11 bbWeight=1 PerfScore 4.50
+G_M8802_IG07:
mov r14, gword ptr [r15+0x08]
mov rdi, 0xD1FFAB1E ; System.Int32
call CORINFO_HELP_NEWSFAST
mov esi, dword ptr [r14+0x08]
mov dword ptr [rax+0x08], esi
mov rsi, rax
mov rdi, 0xD1FFAB1E ; 'sp{0:+#;-#;+0}'
mov rax, 0xD1FFAB1E ; code for System.String:Format(System.String,System.Object):System.String
call [rax]System.String:Format(System.String,System.Object):System.String
- jmp SHORT G_M8802_IG11
+ jmp SHORT G_M8802_IG05
;; size=53 bbWeight=0.50 PerfScore 6.00
-G_M8802_IG06:
+G_M8802_IG08:
cmp r14d, 0x6264
- je SHORT G_M8802_IG07
+ je SHORT G_M8802_IG09
cmp r14d, 0x8664
- je SHORT G_M8802_IG08
+ je SHORT G_M8802_IG10
cmp r14d, 0xAA64
- jne G_M8802_IG13
+ jne SHORT G_M8802_IG12
mov r13, 0xD1FFAB1E ; 'ILCompiler.Reflection.ReadyToRun.Arm64.Registers'
jmp G_M8802_IG04
- ;; size=46 bbWeight=0.50 PerfScore 3.00
-G_M8802_IG07:
+ ;; size=42 bbWeight=0.50 PerfScore 3.00
+G_M8802_IG09:
mov r13, 0xD1FFAB1E ; 'ILCompiler.Reflection.ReadyToRun.LoongArch64.Registers'
jmp G_M8802_IG04
;; size=15 bbWeight=0.50 PerfScore 1.12
-G_M8802_IG08:
+G_M8802_IG10:
mov r13, 0xD1FFAB1E ; 'ILCompiler.Reflection.ReadyToRun.Amd64.Registers'
jmp G_M8802_IG04
;; size=15 bbWeight=0.50 PerfScore 1.12
-G_M8802_IG09:
+G_M8802_IG11:
mov r13, 0xD1FFAB1E ; 'ILCompiler.Reflection.ReadyToRun.Arm.Registers'
jmp G_M8802_IG04
;; size=15 bbWeight=0.50 PerfScore 1.12
-G_M8802_IG10:
- mov rsi, rax
- mov rdi, r13
- mov rax, qword ptr [r13]
- mov rax, qword ptr [rax+0xA8]
- call [rax+0x28]System.Type:GetEnumName(System.Object):System.String:this
- ;; size=20 bbWeight=0.50 PerfScore 3.75
-G_M8802_IG11:
- mov rdx, 0xD1FFAB1E ; 'live'
- mov rdi, 0xD1FFAB1E ; 'dead'
- cmp byte ptr [rbx+0x1C], 0
- cmove rdx, rdi
- mov rdi, rax
- mov rsi, 0xD1FFAB1E ; ' is '
- mov rax, 0xD1FFAB1E ; code for System.String:Concat(System.String,System.String,System.String):System.String
- ;; size=51 bbWeight=1 PerfScore 4.50
G_M8802_IG12:
- pop rbx
- pop r13
- pop r14
- pop r15
- pop rbp
- tail.jmp [rax]System.String:Concat(System.String,System.String,System.String):System.String
- ;; size=11 bbWeight=1 PerfScore 4.50
-G_M8802_IG13:
mov rdi, 0xD1FFAB1E ; System.NotImplementedException
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.NotImplementedException:.ctor():this
call [rax]System.NotImplementedException:.ctor():this
mov rdi, rbx
call CORINFO_HELP_THROW
int3
;; size=42 bbWeight=0 PerfScore 0.00
-G_M8802_IG14:
- mov edi, 0x4C5
- mov rsi, 0xD1FFAB1E
- call CORINFO_HELP_STRCNS
- mov rdi, rax
- mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:Throw(System.String)
- call [rax]System.ArgumentNullException:Throw(System.String)
- int3
- ;; size=36 bbWeight=0 PerfScore 0.00
-G_M8802_IG15:
+G_M8802_IG13:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M8802_IG16:
+G_M8802_IG14:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 469, prolog size 13, PerfScore 56.75, instruction count 95, allocated bytes for code 469 (MethodHash=34a3dd9d) for method ILCompiler.Reflection.ReadyToRun.Amd64.GcTransition:GetSlotState(ILCompiler.Reflection.ReadyToRun.Amd64.GcSlotTable,ushort):System.String:this (FullOpts)
+; Total bytes of code 419, prolog size 13, PerfScore 55.12, instruction count 85, allocated bytes for code 419 (MethodHash=34a3dd9d) for method ILCompiler.Reflection.ReadyToRun.Amd64.GcTransition:GetSlotState(ILCompiler.Reflection.ReadyToRun.Amd64.GcSlotTable,ushort):System.String:this (FullOpts)
-47 (-13.35 % of base) - System.Security.Cryptography.LiteHashProvider:CreateKmac(System.String,System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],ubyte):System.Security.Cryptography.LiteKmac
; Assembly listing for method System.Security.Cryptography.LiteHashProvider:CreateKmac(System.String,System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],ubyte):System.Security.Cryptography.LiteKmac (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; 5 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
; V00 arg0 [V00,T00] ( 9, 4 ) ref -> rdi class-hnd single-def <System.String>
;* V01 arg1 [V01 ] ( 0, 0 ) struct (16) zero-ref multireg-arg single-def <System.ReadOnlySpan`1[ubyte]>
;* V02 arg2 [V02 ] ( 0, 0 ) struct (16) zero-ref multireg-arg single-def <System.ReadOnlySpan`1[ubyte]>
; V03 arg3 [V03,T01] ( 3, 3 ) ubyte -> rbx single-def
-; V04 loc0 [V04,T06] ( 4, 3 ) ref -> rdi class-hnd <Microsoft.Win32.SafeHandles.SafeEvpMacHandle>
+; V04 loc0 [V04,T07] ( 3, 2.50) ref -> rdi class-hnd <Microsoft.Win32.SafeHandles.SafeEvpMacHandle>
; V05 OutArgs [V05 ] ( 1, 1 ) struct (16) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V06 tmp1 [V06 ] ( 0, 0 ) ref -> zero-ref single-def
;* V07 tmp2 [V07 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Security.Cryptography.LiteKmac>
-; V08 tmp3 [V08,T09] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.Diagnostics.UnreachableException>
-; V09 tmp4 [V09,T10] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.Security.Cryptography.CryptographicException>
+;* V08 tmp3 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "NewObj constructor temp" <System.Diagnostics.UnreachableException>
+; V09 tmp4 [V09,T09] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.Security.Cryptography.CryptographicException>
;* V10 tmp5 [V10 ] ( 0, 0 ) ref -> zero-ref single-def "spilling varStr"
;* V11 tmp6 [V11,T08] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
;* V12 tmp7 [V12 ] ( 0, 0 ) ref -> zero-ref single-def "spilling varStr"
-;* V13 tmp8 [V13,T11] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
+;* V13 tmp8 [V13,T10] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
;* V14 tmp9 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <Microsoft.Win32.SafeHandles.SafeEvpMacCtxHandle>
;* V15 tmp10 [V15 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V16 tmp11 [V16 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
; V17 tmp12 [V17,T04] ( 2, 2 ) byref -> r13 single-def "field V01._reference (fldOffset=0x0)" P-INDEP
; V18 tmp13 [V18,T02] ( 3, 3 ) int -> r15 single-def "field V01._length (fldOffset=0x8)" P-INDEP
; V19 tmp14 [V19,T05] ( 2, 2 ) byref -> r12 single-def "field V02._reference (fldOffset=0x0)" P-INDEP
; V20 tmp15 [V20,T03] ( 3, 3 ) int -> r14 single-def "field V02._length (fldOffset=0x8)" P-INDEP
-; V21 tmp16 [V21,T07] ( 3, 3 ) ref -> [rbp-0x30] spill-single-def "field V07._ctx (fldOffset=0x0)" P-INDEP
+; V21 tmp16 [V21,T06] ( 3, 3 ) ref -> [rbp-0x30] spill-single-def "field V07._ctx (fldOffset=0x0)" P-INDEP
;* V22 tmp17 [V22 ] ( 0, 0 ) byref -> zero-ref single-def "field V15._reference (fldOffset=0x0)" P-INDEP
;* V23 tmp18 [V23 ] ( 0, 0 ) int -> zero-ref "field V15._length (fldOffset=0x8)" P-INDEP
;* V24 tmp19 [V24 ] ( 0, 0 ) byref -> zero-ref single-def "field V16._reference (fldOffset=0x0)" P-INDEP
;* V25 tmp20 [V25 ] ( 0, 0 ) int -> zero-ref "field V16._length (fldOffset=0x8)" P-INDEP
;
; Lcl frame size = 24
G_M55457_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 24
lea rbp, [rsp+0x40]
mov r13, rsi
mov r15d, edx
mov r12, rcx
mov r14d, r8d
mov ebx, r9d
;; size=34 bbWeight=1 PerfScore 8.00
G_M55457_IG02:
test rdi, rdi
- je G_M55457_IG13
+ je G_M55457_IG12
;; size=9 bbWeight=1 PerfScore 1.25
G_M55457_IG03:
cmp dword ptr [rdi+0x08], 7
jne SHORT G_M55457_IG05
;; size=6 bbWeight=0.25 PerfScore 1.00
G_M55457_IG04:
mov rax, 0xD1FFAB1E
xor rax, qword ptr [rdi+0x0C]
mov rcx, 0xD1FFAB1E
xor rcx, qword ptr [rdi+0x12]
or rax, rcx
je SHORT G_M55457_IG07
;; size=33 bbWeight=0.12 PerfScore 0.97
G_M55457_IG05:
cmp dword ptr [rdi+0x08], 7
- jne G_M55457_IG13
+ jne G_M55457_IG12
;; size=10 bbWeight=0.25 PerfScore 1.00
G_M55457_IG06:
mov rax, 0xD1FFAB1E
xor rax, qword ptr [rdi+0x0C]
mov rcx, 0xD1FFAB1E
xor rcx, qword ptr [rdi+0x12]
or rax, rcx
je SHORT G_M55457_IG08
- jmp G_M55457_IG13
+ jmp G_M55457_IG12
;; size=38 bbWeight=0.12 PerfScore 1.22
G_M55457_IG07:
mov rdi, 0xD1FFAB1E ; const ptr
mov rdi, gword ptr [rdi]
jmp SHORT G_M55457_IG09
;; size=15 bbWeight=0.50 PerfScore 2.12
G_M55457_IG08:
mov rdi, 0xD1FFAB1E ; const ptr
mov rdi, gword ptr [rdi]
- ;; size=13 bbWeight=0.50 PerfScore 1.12
+ ;; size=13 bbWeight=1 PerfScore 2.25
G_M55457_IG09:
- test rdi, rdi
- je SHORT G_M55457_IG12
mov rax, 0xD1FFAB1E ; code for Interop+Crypto:EvpMacCtxNew(Microsoft.Win32.SafeHandles.SafeEvpMacHandle):Microsoft.Win32.SafeHandles.SafeEvpMacCtxHandle
call [rax]Interop+Crypto:EvpMacCtxNew(Microsoft.Win32.SafeHandles.SafeEvpMacHandle):Microsoft.Win32.SafeHandles.SafeEvpMacCtxHandle
mov gword ptr [rbp-0x30], rax
mov dword ptr [rsp], r14d
movzx r8, bl
mov dword ptr [rsp+0x08], r8d
mov r8, r12
mov r9d, r14d
mov rsi, r13
mov edx, r15d
mov rdi, rax
mov ecx, r15d
mov r10, 0xD1FFAB1E ; code for Interop+Crypto:CryptoNative_EvpMacInit(Microsoft.Win32.SafeHandles.SafeEvpMacCtxHandle,System.ReadOnlySpan`1[ubyte],int,System.ReadOnlySpan`1[ubyte],int,ubyte):int
call [r10]Interop+Crypto:CryptoNative_EvpMacInit(Microsoft.Win32.SafeHandles.SafeEvpMacCtxHandle,System.ReadOnlySpan`1[ubyte],int,System.ReadOnlySpan`1[ubyte],int,ubyte):int
cmp eax, 1
jne SHORT G_M55457_IG11
mov rax, gword ptr [rbp-0x30]
- ;; size=74 bbWeight=1 PerfScore 14.75
+ ;; size=69 bbWeight=1 PerfScore 13.50
G_M55457_IG10:
add rsp, 24
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.25
G_M55457_IG11:
mov rax, 0xD1FFAB1E ; code for Interop+Crypto:CreateOpenSslCryptographicException():System.Exception
call [rax]Interop+Crypto:CreateOpenSslCryptographicException():System.Exception
mov rdi, rax
call CORINFO_HELP_THROW
int3
;; size=21 bbWeight=0 PerfScore 0.00
G_M55457_IG12:
- mov rdi, 0xD1FFAB1E ; System.Diagnostics.UnreachableException
- call CORINFO_HELP_NEWSFAST
- mov rbx, rax
- mov rdi, rbx
- mov rax, 0xD1FFAB1E ; code for System.Diagnostics.UnreachableException:.ctor():this
- call [rax]System.Diagnostics.UnreachableException:.ctor():this
- mov rdi, rbx
- call CORINFO_HELP_THROW
- int3
- ;; size=42 bbWeight=0 PerfScore 0.00
-G_M55457_IG13:
mov rdi, 0xD1FFAB1E ; System.Security.Cryptography.CryptographicException
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Security.Cryptography.CryptographicException:.ctor():this
call [rax]System.Security.Cryptography.CryptographicException:.ctor():this
mov rdi, rbx
call CORINFO_HELP_THROW
int3
;; size=42 bbWeight=0 PerfScore 0.00
-; Total bytes of code 352, prolog size 19, PerfScore 35.69, instruction count 87, allocated bytes for code 352 (MethodHash=f366275e) for method System.Security.Cryptography.LiteHashProvider:CreateKmac(System.String,System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],ubyte):System.Security.Cryptography.LiteKmac (FullOpts)
+; Total bytes of code 305, prolog size 19, PerfScore 35.56, instruction count 76, allocated bytes for code 305 (MethodHash=f366275e) for method System.Security.Cryptography.LiteHashProvider:CreateKmac(System.String,System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],ubyte):System.Security.Cryptography.LiteKmac (FullOpts)
-40 (-8.62 % of base) - System.Net.NetworkInformation.UnixCommandLinePing:GetPingUtilityPath(ubyte):System.String
; Assembly listing for method System.Net.NetworkInformation.UnixCommandLinePing:GetPingUtilityPath(ubyte):System.String (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; 14 single block inlinees; 13 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T14] ( 3, 3 ) ubyte -> rdi single-def
-; V01 loc0 [V01,T05] ( 3, 9 ) ref -> rbx class-hnd single-def <System.String>
-; V02 loc1 [V02,T10] ( 3, 6 ) ref -> r15 class-hnd exact single-def <System.String[]>
+; V00 arg0 [V00,T13] ( 3, 3 ) ubyte -> rdi single-def
+; V01 loc0 [V01,T14] ( 2, 5 ) ref -> rbx class-hnd single-def <System.String>
+; V02 loc1 [V02,T09] ( 3, 6 ) ref -> r15 class-hnd exact single-def <System.String[]>
;* V03 loc2 [V03,T24] ( 0, 0 ) int -> zero-ref
;* V04 loc3 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.String>
-; V05 loc4 [V05,T06] ( 3, 8.50) ref -> r12 class-hnd exact <System.String>
+; V05 loc4 [V05,T05] ( 3, 8.50) ref -> r12 class-hnd exact <System.String>
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V07 tmp1 [V07,T19] ( 2, 2 ) ref -> rbx
; V08 tmp2 [V08,T00] ( 6, 40 ) ref -> r12 class-hnd exact "dup spill" <System.String>
; V09 tmp3 [V09,T02] ( 4, 14.50) ref -> [rbp-0x30] class-hnd "Inline return value spill temp" <System.String>
;* V10 tmp4 [V10 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V11 tmp5 [V11 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
;* V12 tmp6 [V12 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V13 tmp7 [V13 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V14 tmp8 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V15 tmp9 [V15 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V16 tmp10 [V16 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V17 tmp11 [V17 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V18 tmp12 [V18,T21] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V19 tmp13 [V19 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V20 tmp14 [V20 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inline stloc first use temp"
;* V21 tmp15 [V21 ] ( 0, 0 ) byref -> zero-ref
;* V22 tmp16 [V22 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V23 tmp17 [V23 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V24 tmp18 [V24,T08] ( 2, 8 ) byref -> rdi "Inlining Arg"
-; V25 tmp19 [V25,T09] ( 2, 8 ) int -> rsi "Inlining Arg"
+; V24 tmp18 [V24,T07] ( 2, 8 ) byref -> rdi "Inlining Arg"
+; V25 tmp19 [V25,T08] ( 2, 8 ) int -> rsi "Inlining Arg"
;* V26 tmp20 [V26 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V27 tmp21 [V27 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V28 tmp22 [V28 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V29 tmp23 [V29,T11] ( 3, 6 ) ref -> rax class-hnd "Inline return value spill temp" <System.String>
+; V29 tmp23 [V29,T10] ( 3, 6 ) ref -> rax class-hnd "Inline return value spill temp" <System.String>
;* V30 tmp24 [V30 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
; V31 tmp25 [V31,T03] ( 3, 12 ) int -> rdx "Span.get_Item index"
;* V32 tmp26 [V32,T17] ( 0, 0 ) int -> zero-ref
;* V33 tmp27 [V33 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V34 tmp28 [V34 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
;* V35 tmp29 [V35 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V36 tmp30 [V36 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V37 tmp31 [V37 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V38 tmp32 [V38 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V39 tmp33 [V39 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V40 tmp34 [V40 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V41 tmp35 [V41 ] ( 0, 0 ) byref -> zero-ref "field V10._reference (fldOffset=0x0)" P-INDEP
;* V42 tmp36 [V42 ] ( 0, 0 ) int -> zero-ref "field V10._length (fldOffset=0x8)" P-INDEP
-; V43 tmp37 [V43,T07] ( 4, 8 ) byref -> rdi "field V11._reference (fldOffset=0x0)" P-INDEP
+; V43 tmp37 [V43,T06] ( 4, 8 ) byref -> rdi "field V11._reference (fldOffset=0x0)" P-INDEP
; V44 tmp38 [V44,T04] ( 5, 10 ) int -> rsi "field V11._length (fldOffset=0x8)" P-INDEP
;* V45 tmp39 [V45 ] ( 0, 0 ) byref -> zero-ref "field V12._reference (fldOffset=0x0)" P-INDEP
;* V46 tmp40 [V46 ] ( 0, 0 ) int -> zero-ref "field V12._length (fldOffset=0x8)" P-INDEP
;* V47 tmp41 [V47 ] ( 0, 0 ) byref -> zero-ref "field V15._reference (fldOffset=0x0)" P-INDEP
;* V48 tmp42 [V48 ] ( 0, 0 ) int -> zero-ref "field V15._length (fldOffset=0x8)" P-INDEP
;* V49 tmp43 [V49,T20] ( 0, 0 ) byref -> zero-ref "field V16._reference (fldOffset=0x0)" P-INDEP
;* V50 tmp44 [V50 ] ( 0, 0 ) int -> zero-ref "field V16._length (fldOffset=0x8)" P-INDEP
;* V51 tmp45 [V51 ] ( 0, 0 ) byref -> zero-ref "field V19._reference (fldOffset=0x0)" P-INDEP
;* V52 tmp46 [V52 ] ( 0, 0 ) int -> zero-ref "field V19._length (fldOffset=0x8)" P-INDEP
; V53 tmp47 [V53,T15] ( 2, 4 ) byref -> rdi "field V22._reference (fldOffset=0x0)" P-INDEP
; V54 tmp48 [V54,T18] ( 2, 4 ) int -> rsi "field V22._length (fldOffset=0x8)" P-INDEP
;* V55 tmp49 [V55 ] ( 0, 0 ) byref -> zero-ref "field V23._reference (fldOffset=0x0)" P-INDEP
;* V56 tmp50 [V56 ] ( 0, 0 ) int -> zero-ref "field V23._length (fldOffset=0x8)" P-INDEP
;* V57 tmp51 [V57 ] ( 0, 0 ) byref -> zero-ref "field V26._reference (fldOffset=0x0)" P-INDEP
;* V58 tmp52 [V58 ] ( 0, 0 ) int -> zero-ref "field V26._length (fldOffset=0x8)" P-INDEP
-; V59 tmp53 [V59,T12] ( 3, 6 ) byref -> r8 "field V27._reference (fldOffset=0x0)" P-INDEP
+; V59 tmp53 [V59,T11] ( 3, 6 ) byref -> r8 "field V27._reference (fldOffset=0x0)" P-INDEP
;* V60 tmp54 [V60,T22] ( 0, 0 ) int -> zero-ref "field V27._length (fldOffset=0x8)" P-INDEP
;* V61 tmp55 [V61 ] ( 0, 0 ) byref -> zero-ref "field V30._reference (fldOffset=0x0)" P-INDEP
;* V62 tmp56 [V62 ] ( 0, 0 ) int -> zero-ref "field V30._length (fldOffset=0x8)" P-INDEP
;* V63 tmp57 [V63 ] ( 0, 0 ) byref -> zero-ref "field V33._reference (fldOffset=0x0)" P-INDEP
;* V64 tmp58 [V64 ] ( 0, 0 ) int -> zero-ref "field V33._length (fldOffset=0x8)" P-INDEP
;* V65 tmp59 [V65 ] ( 0, 0 ) byref -> zero-ref "field V34._reference (fldOffset=0x0)" P-INDEP
;* V66 tmp60 [V66 ] ( 0, 0 ) int -> zero-ref "field V34._length (fldOffset=0x8)" P-INDEP
;* V67 tmp61 [V67 ] ( 0, 0 ) byref -> zero-ref "field V35._reference (fldOffset=0x0)" P-INDEP
;* V68 tmp62 [V68 ] ( 0, 0 ) int -> zero-ref "field V35._length (fldOffset=0x8)" P-INDEP
;* V69 tmp63 [V69 ] ( 0, 0 ) byref -> zero-ref "field V38._reference (fldOffset=0x0)" P-INDEP
;* V70 tmp64 [V70 ] ( 0, 0 ) int -> zero-ref "field V38._length (fldOffset=0x8)" P-INDEP
; V71 tmp65 [V71,T16] ( 2, 4 ) byref -> rdx "field V39._reference (fldOffset=0x0)" P-INDEP
;* V72 tmp66 [V72,T23] ( 0, 0 ) int -> zero-ref "field V39._length (fldOffset=0x8)" P-INDEP
-; V73 cse0 [V73,T13] ( 3, 6 ) int -> r13 "CSE #04: moderate"
+; V73 cse0 [V73,T12] ( 3, 6 ) int -> r13 "CSE #04: moderate"
; V74 rat0 [V74,T01] ( 5, 17 ) long -> r14 "Widened IV V03"
;
; Lcl frame size = 8
G_M14532_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
push rax
lea rbp, [rsp+0x30]
;; size=16 bbWeight=1 PerfScore 7.50
G_M14532_IG02:
mov rbx, 0xD1FFAB1E ; 'ping4'
mov rsi, 0xD1FFAB1E ; 'ping6'
test dil, dil
cmove rbx, rsi
mov rdi, 0xD1FFAB1E ; global ptr
test byte ptr [rdi], 1
- je G_M14532_IG19
+ je G_M14532_IG18
;; size=46 bbWeight=1 PerfScore 5.25
G_M14532_IG03:
mov rdi, 0xD1FFAB1E ; data for System.Net.NetworkInformation.UnixCommandLinePing:s_binFolders
mov r15, gword ptr [rdi]
xor r14d, r14d
mov r13d, dword ptr [r15+0x08]
test r13d, r13d
- jle G_M14532_IG17
+ jle G_M14532_IG16
;; size=29 bbWeight=1 PerfScore 5.75
G_M14532_IG04:
mov r12, gword ptr [r15+8*r14+0x10]
test r12, r12
- je G_M14532_IG21
+ je G_M14532_IG19
cmp dword ptr [r12+0x08], 0
- jne SHORT G_M14532_IG07
+ jne SHORT G_M14532_IG09
;; size=22 bbWeight=4 PerfScore 29.00
G_M14532_IG05:
mov rax, 0xD1FFAB1E ; 'ping'
- ;; size=10 bbWeight=8 PerfScore 2.00
+ mov gword ptr [rbp-0x30], rax
+ ;; size=14 bbWeight=8 PerfScore 10.00
G_M14532_IG06:
- test rbx, rbx
- jne SHORT G_M14532_IG10
- jmp G_M14532_IG20
- ;; size=10 bbWeight=4 PerfScore 13.00
+ mov rdi, r12
+ mov rsi, rbx
+ mov rcx, 0xD1FFAB1E ; code for System.IO.Path:CombineInternal(System.String,System.String):System.String
+ call [rcx]System.IO.Path:CombineInternal(System.String,System.String):System.String
+ mov r12, rax
+ mov rdi, r12
+ mov rax, 0xD1FFAB1E ; code for System.IO.File:Exists(System.String):ubyte
+ call [rax]System.IO.File:Exists(System.String):ubyte
+ test eax, eax
+ je SHORT G_M14532_IG12
+ ;; size=40 bbWeight=4 PerfScore 35.00
G_M14532_IG07:
+ mov rax, r12
+ ;; size=3 bbWeight=0.50 PerfScore 0.12
+G_M14532_IG08:
+ add rsp, 8
+ pop rbx
+ pop r12
+ pop r13
+ pop r14
+ pop r15
+ pop rbp
+ ret
+ ;; size=15 bbWeight=0.50 PerfScore 2.12
+G_M14532_IG09:
lea rdi, bword ptr [r12+0x0C]
mov esi, dword ptr [r12+0x08]
mov r8, 0xD1FFAB1E
lea edx, [rsi-0x01]
cmp edx, esi
- jae G_M14532_IG22
+ jae G_M14532_IG20
cmp word ptr [rdi+2*rdx], 47
- je SHORT G_M14532_IG08
+ je SHORT G_M14532_IG10
mov rdx, 0xD1FFAB1E
mov ecx, 1
mov r9d, 4
mov rax, 0xD1FFAB1E ; code for System.String:Concat(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):System.String
call [rax]System.String:Concat(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):System.String
- jmp SHORT G_M14532_IG09
+ jmp SHORT G_M14532_IG11
;; size=73 bbWeight=2 PerfScore 29.00
-G_M14532_IG08:
+G_M14532_IG10:
mov rdx, r8
mov ecx, 4
mov rax, 0xD1FFAB1E ; code for System.String:Concat(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):System.String
call [rax]System.String:Concat(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):System.String
;; size=20 bbWeight=2 PerfScore 7.50
-G_M14532_IG09:
+G_M14532_IG11:
mov gword ptr [rbp-0x30], rax
+ jmp G_M14532_IG06
+ ;; size=9 bbWeight=2 PerfScore 6.00
+G_M14532_IG12:
mov rax, gword ptr [rbp-0x30]
- jmp SHORT G_M14532_IG06
- ;; size=10 bbWeight=2 PerfScore 8.00
-G_M14532_IG10:
mov gword ptr [rbp-0x30], rax
- mov rdi, r12
- mov rsi, rbx
- mov rcx, 0xD1FFAB1E ; code for System.IO.Path:CombineInternal(System.String,System.String):System.String
- call [rcx]System.IO.Path:CombineInternal(System.String,System.String):System.String
- mov r12, rax
- mov rdi, r12
- mov rax, 0xD1FFAB1E ; code for System.IO.File:Exists(System.String):ubyte
- call [rax]System.IO.File:Exists(System.String):ubyte
+ mov rdi, rax
+ mov rcx, 0xD1FFAB1E ; code for System.IO.File:Exists(System.String):ubyte
+ call [rcx]System.IO.File:Exists(System.String):ubyte
test eax, eax
- je SHORT G_M14532_IG13
- ;; size=44 bbWeight=4 PerfScore 39.00
-G_M14532_IG11:
- mov rax, r12
- ;; size=3 bbWeight=0.50 PerfScore 0.12
-G_M14532_IG12:
- add rsp, 8
- pop rbx
- pop r12
- pop r13
- pop r14
- pop r15
- pop rbp
- ret
- ;; size=15 bbWeight=0.50 PerfScore 2.12
+ je SHORT G_M14532_IG15
+ ;; size=27 bbWeight=4 PerfScore 27.00
G_M14532_IG13:
- mov rdi, gword ptr [rbp-0x30]
- mov rax, 0xD1FFAB1E ; code for System.IO.File:Exists(System.String):ubyte
- call [rax]System.IO.File:Exists(System.String):ubyte
- test eax, eax
- je SHORT G_M14532_IG16
- ;; size=20 bbWeight=4 PerfScore 22.00
-G_M14532_IG14:
mov rax, gword ptr [rbp-0x30]
;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M14532_IG15:
+G_M14532_IG14:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M14532_IG16:
+G_M14532_IG15:
inc r14d
cmp r13d, r14d
jg G_M14532_IG04
;; size=12 bbWeight=4 PerfScore 6.00
-G_M14532_IG17:
+G_M14532_IG16:
xor rax, rax
;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M14532_IG18:
+G_M14532_IG17:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M14532_IG19:
+G_M14532_IG18:
mov rdi, 0xD1FFAB1E ; System.Net.NetworkInformation.UnixCommandLinePing
call CORINFO_HELP_GET_GCSTATIC_BASE
jmp G_M14532_IG03
;; size=20 bbWeight=0 PerfScore 0.00
-G_M14532_IG20:
- mov edi, 0x1AEB8
- mov rsi, 0xD1FFAB1E
- call CORINFO_HELP_STRCNS
- mov rdi, rax
- mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:Throw(System.String)
- call [rax]System.ArgumentNullException:Throw(System.String)
- int3
- ;; size=36 bbWeight=0 PerfScore 0.00
-G_M14532_IG21:
+G_M14532_IG19:
mov edi, 0x1AEAC
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
mov rdi, rax
mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:Throw(System.String)
call [rax]System.ArgumentNullException:Throw(System.String)
int3
;; size=36 bbWeight=0 PerfScore 0.00
-G_M14532_IG22:
+G_M14532_IG20:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 464, prolog size 16, PerfScore 181.12, instruction count 116, allocated bytes for code 464 (MethodHash=0ddec73b) for method System.Net.NetworkInformation.UnixCommandLinePing:GetPingUtilityPath(ubyte):System.String (FullOpts)
+; Total bytes of code 424, prolog size 16, PerfScore 175.12, instruction count 107, allocated bytes for code 424 (MethodHash=0ddec73b) for method System.Net.NetworkInformation.UnixCommandLinePing:GetPingUtilityPath(ubyte):System.String (FullOpts)
-40 (-1.84 % of base) - System.Security.Cryptography.X509Certificates.X509AuthorityKeyIdentifierExtension:Decode(System.ReadOnlySpan`1[ubyte]):this
; Assembly listing for method System.Security.Cryptography.X509Certificates.X509AuthorityKeyIdentifierExtension:Decode(System.ReadOnlySpan`1[ubyte]):this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
; 0 inlinees with PGO data; 68 single block inlinees; 27 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T06] ( 12, 12.50) ref -> rbx this class-hnd single-def <System.Security.Cryptography.X509Certificates.X509AuthorityKeyIdentifierExtension>
;* V01 arg1 [V01 ] ( 0, 0 ) struct (16) zero-ref multireg-arg single-def <System.ReadOnlySpan`1[ubyte]>
; V02 loc0 [V02,T37] ( 4, 4 ) struct (24) [rbp-0x40] do-not-enreg[SF] must-init ld-addr-op <System.Formats.Asn1.AsnValueReader>
; V03 loc1 [V03 ] ( 35, 20 ) struct (24) [rbp-0x58] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Formats.Asn1.AsnValueReader>
;* V04 loc2 [V04 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.Formats.Asn1.Asn1Tag>
; V05 loc3 [V05,T54] ( 2, 2 ) struct (16) [rbp-0x68] do-not-enreg[S] ld-addr-op <System.Nullable`1[System.Formats.Asn1.Asn1Tag]>
-; V06 loc4 [V06,T10] ( 7, 10 ) ref -> r12 class-hnd single-def <ubyte[]>
+; V06 loc4 [V06,T10] ( 5, 9.50) ref -> r12 class-hnd single-def <ubyte[]>
; V07 loc5 [V07 ] ( 4, 9 ) struct (24) [rbp-0x80] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Formats.Asn1.AsnValueReader>
; V08 loc6 [V08,T36] ( 3, 4.50) ubyte -> r13
;* V09 loc7 [V09 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.ReadOnlySpan`1[ubyte]>
; V10 loc8 [V10 ] ( 5, 14 ) struct (264) [rbp-0x188] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Security.Cryptography.Asn1.GeneralNameAsn>
;* V11 loc9 [V11 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.ReadOnlyMemory`1[ubyte]>
;* V12 loc10 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Formats.Asn1.AsnContentException>
; V13 OutArgs [V13 ] ( 1, 1 ) struct (16) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V14 tmp1 [V14 ] ( 0, 0 ) struct ( 8) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Formats.Asn1.Asn1Tag>
;* V15 tmp2 [V15 ] ( 0, 0 ) struct ( 8) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Formats.Asn1.Asn1Tag>
;* V16 tmp3 [V16 ] ( 0, 0 ) struct ( 8) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Formats.Asn1.Asn1Tag>
; V17 tmp4 [V17,T14] ( 6, 6 ) struct (16) [rbp-0x198] do-not-enreg[SFA] multireg-arg ld-addr-op "NewObj constructor temp" <System.Nullable`1[System.Formats.Asn1.Asn1Tag]>
;* V18 tmp5 [V18 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Nullable`1[System.ReadOnlyMemory`1[ubyte]]>
;* V19 tmp6 [V19 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlyMemory`1[ubyte]>
;* V20 tmp7 [V20 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Nullable`1[System.ReadOnlyMemory`1[ubyte]]>
;* V21 tmp8 [V21 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlyMemory`1[ubyte]>
; V22 tmp9 [V22,T15] ( 6, 6 ) struct (16) [rbp-0x1A8] do-not-enreg[SFA] multireg-arg ld-addr-op "NewObj constructor temp" <System.Nullable`1[System.Formats.Asn1.Asn1Tag]>
;* V23 tmp10 [V23 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlyMemory`1[ubyte]>
; V24 tmp11 [V24,T05] ( 4, 16 ) ref -> [rbp-0x250] class-hnd exact spill-single-def "NewObj constructor temp" <System.Security.Cryptography.X509Certificates.X500DistinguishedName>
;* V25 tmp12 [V25 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
; V26 tmp13 [V26,T33] ( 5, 5 ) struct (16) [rbp-0x1B8] do-not-enreg[SFA] multireg-arg ld-addr-op "NewObj constructor temp" <System.Nullable`1[System.Formats.Asn1.Asn1Tag]>
;* V27 tmp14 [V27 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Nullable`1[System.ReadOnlyMemory`1[ubyte]]>
;* V28 tmp15 [V28 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlyMemory`1[ubyte]>
; V29 tmp16 [V29,T80] ( 2, 0 ) ref -> rbx class-hnd single-def "impSpillSpecialSideEff" <System.Formats.Asn1.AsnContentException>
; V30 tmp17 [V30,T76] ( 3, 0 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Security.Cryptography.CryptographicException>
; V31 tmp18 [V31 ] ( 2, 2 ) int -> [rbp-0x1C0] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
; V32 tmp19 [V32 ] ( 2, 2 ) int -> [rbp-0x1C8] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
; V33 tmp20 [V33 ] ( 2, 2 ) int -> [rbp-0x1D0] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
;* V34 tmp21 [V34 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] "Inlining Arg" <System.Nullable`1[System.Formats.Asn1.Asn1Tag]>
;* V35 tmp22 [V35 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.ReadOnlySpan`1[ubyte]>
;* V36 tmp23 [V36 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Formats.Asn1.AsnValueReader>
; V37 tmp24 [V37,T17] ( 3, 6 ) int -> rdi "Inlining Arg"
; V38 tmp25 [V38,T18] ( 3, 6 ) int -> rax "Inlining Arg"
;* V39 tmp26 [V39 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V40 tmp27 [V40 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
; V41 tmp28 [V41,T19] ( 3, 6 ) int -> rcx "Inlining Arg"
;* V42 tmp29 [V42 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V43 tmp30 [V43 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
; V44 tmp31 [V44,T41] ( 2, 4 ) int -> r15 "Inlining Arg"
;* V45 tmp32 [V45 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V46 tmp33 [V46 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Formats.Asn1.AsnReaderOptions>
;* V47 tmp34 [V47 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.ReadOnlyMemory`1[ubyte]>
;* V48 tmp35 [V48 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
; V49 tmp36 [V49,T12] ( 7, 7 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Formats.Asn1.AsnReader>
; V50 tmp37 [V50,T44] ( 3, 3 ) ref -> r15 class-hnd single-def "Inlining Arg" <ubyte[]>
;* V51 tmp38 [V51 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ubyte]>
;* V52 tmp39 [V52 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Formats.Asn1.AsnReaderOptions>
; V53 tmp40 [V53 ] ( 1, 0.50) int -> [rbp-0x1D8] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
;* V54 tmp41 [V54 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
; V55 tmp42 [V55 ] ( 3, 1.50) struct ( 8) [rbp-0x1E0] do-not-enreg[XS] addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.Formats.Asn1.Asn1Tag>
; V56 tmp43 [V56,T77] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.Formats.Asn1.AsnContentException>
;* V57 tmp44 [V57 ] ( 0, 0 ) byref -> zero-ref
;* V58 tmp45 [V58 ] ( 0, 0 ) int -> zero-ref
;* V59 tmp46 [V59 ] ( 0, 0 ) byref -> zero-ref
;* V60 tmp47 [V60 ] ( 0, 0 ) int -> zero-ref
;* V61 tmp48 [V61 ] ( 0, 0 ) int -> zero-ref
;* V62 tmp49 [V62 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V63 tmp50 [V63,T73] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V64 tmp51 [V64 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Formats.Asn1.Asn1Tag>
;* V65 tmp52 [V65 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V66 tmp53 [V66 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V67 tmp54 [V67 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Formats.Asn1.Asn1Tag>
; V68 tmp55 [V68 ] ( 2, 1 ) int -> [rbp-0x1E8] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
;* V69 tmp56 [V69 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] "Inlining Arg" <System.Nullable`1[System.Formats.Asn1.Asn1Tag]>
; V70 tmp57 [V70,T45] ( 3, 3 ) ref -> rsi class-hnd single-def "impAppendStmt" <ubyte[]>
; V71 tmp58 [V71,T38] ( 4, 4 ) int -> rdi "Inlining Arg"
;* V72 tmp59 [V72 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
; V73 tmp60 [V73,T51] ( 2, 2 ) byref -> rax single-def "Inlining Arg"
; V74 tmp61 [V74,T55] ( 2, 2 ) int -> rcx "Inlining Arg"
;* V75 tmp62 [V75 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ubyte]>
; V76 tmp63 [V76 ] ( 1, 0.50) int -> [rbp-0x1F0] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
;* V77 tmp64 [V77 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
; V78 tmp65 [V78 ] ( 3, 1.50) struct ( 8) [rbp-0x1F8] do-not-enreg[XS] addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.Formats.Asn1.Asn1Tag>
; V79 tmp66 [V79,T78] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.Formats.Asn1.AsnContentException>
;* V80 tmp67 [V80 ] ( 0, 0 ) byref -> zero-ref
;* V81 tmp68 [V81 ] ( 0, 0 ) int -> zero-ref
;* V82 tmp69 [V82 ] ( 0, 0 ) byref -> zero-ref
;* V83 tmp70 [V83 ] ( 0, 0 ) int -> zero-ref
;* V84 tmp71 [V84 ] ( 0, 0 ) int -> zero-ref
;* V85 tmp72 [V85 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V86 tmp73 [V86,T74] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V87 tmp74 [V87 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Formats.Asn1.Asn1Tag>
;* V88 tmp75 [V88 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V89 tmp76 [V89 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
; V90 tmp77 [V90 ] ( 1, 0.50) int -> [rbp-0x200] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
; V91 tmp78 [V91 ] ( 1, 0.50) int -> [rbp-0x208] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
; V92 tmp79 [V92 ] ( 2, 1 ) int -> [rbp-0x210] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
;* V93 tmp80 [V93 ] ( 0, 0 ) struct ( 8) zero-ref "location for address-of(RValue)" <System.Formats.Asn1.Asn1Tag>
; V94 tmp81 [V94,T34] ( 5, 5 ) int -> r13 "Inlining Arg"
;* V95 tmp82 [V95 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V96 tmp83 [V96 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
; V97 tmp84 [V97,T57] ( 3, 1.50) ref -> r12 class-hnd "Inline return value spill temp" <ubyte[]>
; V98 tmp85 [V98,T46] ( 3, 3 ) ref -> [rbp-0x258] class-hnd exact spill-single-def "dup spill" <ubyte[]>
;* V99 tmp86 [V99 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V100 tmp87 [V100 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V101 tmp88 [V101 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V102 tmp89 [V102 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ubyte]>
;* V103 tmp90 [V103 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Formats.Asn1.Asn1Tag>
-; V104 tmp91 [V104 ] ( 8, 40 ) struct (16) [rbp-0x220] do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ubyte]>
+; V104 tmp91 [V104 ] ( 5, 40 ) struct (16) [rbp-0x220] do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ubyte]>
;* V105 tmp92 [V105 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ubyte]>
; V106 tmp93 [V106,T08] ( 6, 12 ) byref -> [rbp-0x260] "Inline stloc first use temp"
; V107 tmp94 [V107,T04] ( 8, 16 ) int -> [rbp-0x224] "Inline stloc first use temp"
;* V108 tmp95 [V108 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Object>
;* V109 tmp96 [V109 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V110 tmp97 [V110 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <System.Buffers.MemoryManager`1[ubyte]>
;* V111 tmp98 [V111 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Span`1[ubyte]>
;* V112 tmp99 [V112 ] ( 0, 0 ) struct (16) zero-ref multireg-ret ld-addr-op "Inline stloc first use temp" <System.Span`1[ubyte]>
; V113 tmp100 [V113,T20] ( 3, 6 ) long -> rdi "Inline stloc first use temp"
;* V114 tmp101 [V114 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V115 tmp102 [V115 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <ubyte[]>
;* V116 tmp103 [V116 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <ubyte[]>
; V117 tmp104 [V117,T11] ( 2, 8 ) byref -> rdx "Inlining Arg"
;* V118 tmp105 [V118 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
; V119 tmp106 [V119,T00] ( 5, 20 ) ref -> rax class-hnd exact "NewObj constructor temp" <System.Security.Cryptography.Oid>
;* V120 tmp107 [V120 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
; V121 tmp108 [V121,T16] ( 3, 6 ) ref -> rsi class-hnd "Inline return value spill temp" <ubyte[]>
; V122 tmp109 [V122,T09] ( 3, 12 ) ref -> [rbp-0x268] class-hnd exact spill-single-def "dup spill" <ubyte[]>
;* V123 tmp110 [V123 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V124 tmp111 [V124 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V125 tmp112 [V125 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
; V126 tmp113 [V126 ] ( 1, 0.50) int -> [rbp-0x230] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
;* V127 tmp114 [V127 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
; V128 tmp115 [V128 ] ( 3, 1.50) struct ( 8) [rbp-0x238] do-not-enreg[XS] addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.Formats.Asn1.Asn1Tag>
; V129 tmp116 [V129,T79] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.Formats.Asn1.AsnContentException>
;* V130 tmp117 [V130 ] ( 0, 0 ) byref -> zero-ref
;* V131 tmp118 [V131 ] ( 0, 0 ) int -> zero-ref
;* V132 tmp119 [V132 ] ( 0, 0 ) byref -> zero-ref
;* V133 tmp120 [V133 ] ( 0, 0 ) int -> zero-ref
;* V134 tmp121 [V134 ] ( 0, 0 ) int -> zero-ref
;* V135 tmp122 [V135 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V136 tmp123 [V136,T75] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V137 tmp124 [V137 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Formats.Asn1.Asn1Tag>
;* V138 tmp125 [V138 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V139 tmp126 [V139 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V140 tmp127 [V140 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Formats.Asn1.Asn1Tag>
; V141 tmp128 [V141 ] ( 2, 1 ) int -> [rbp-0x240] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
;* V142 tmp129 [V142 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] "Inlining Arg" <System.Nullable`1[System.Formats.Asn1.Asn1Tag]>
;* V143 tmp130 [V143 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "Return value temp for multireg return" <System.ReadOnlySpan`1[ubyte]>
; V144 tmp131 [V144,T39] ( 4, 4 ) int -> rsi "Inlining Arg"
;* V145 tmp132 [V145 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
; V146 tmp133 [V146,T52] ( 2, 2 ) byref -> rdi single-def "Inlining Arg"
; V147 tmp134 [V147,T56] ( 2, 2 ) int -> rax "Inlining Arg"
; V148 tmp135 [V148,T58] ( 3, 1.50) ref -> rsi class-hnd "Inline return value spill temp" <ubyte[]>
; V149 tmp136 [V149,T47] ( 3, 3 ) ref -> r13 class-hnd exact single-def "dup spill" <ubyte[]>
;* V150 tmp137 [V150 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V151 tmp138 [V151 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V152 tmp139 [V152 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V153 tmp140 [V153 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ubyte]>
; V154 tmp141 [V154,T35] ( 3, 3 ) byref -> r14 single-def "field V01._reference (fldOffset=0x0)" P-INDEP
; V155 tmp142 [V155,T13] ( 5, 5 ) int -> r15 single-def "field V01._length (fldOffset=0x8)" P-INDEP
; V156 tmp143 [V156,T28] ( 10, 5.50) ubyte -> r15 "field V04._controlFlags (fldOffset=0x0)" P-INDEP
; V157 tmp144 [V157,T29] ( 7, 5.50) int -> r14 "field V04.<TagValue>k__BackingField (fldOffset=0x4)" P-INDEP
;* V158 tmp145 [V158 ] ( 0, 0 ) byref -> zero-ref "field V09._reference (fldOffset=0x0)" P-INDEP
;* V159 tmp146 [V159 ] ( 0, 0 ) int -> zero-ref "field V09._length (fldOffset=0x8)" P-INDEP
; V160 tmp147 [V160,T07] ( 7, 14 ) ref -> rdi "field V11._object (fldOffset=0x0)" P-INDEP
; V161 tmp148 [V161,T42] ( 2, 4 ) int -> [rbp-0x244] spill-single-def "field V11._index (fldOffset=0x8)" P-INDEP
; V162 tmp149 [V162,T21] ( 3, 6 ) int -> [rbp-0x248] spill-single-def "field V11._length (fldOffset=0xc)" P-INDEP
;* V163 tmp150 [V163,T22] ( 0, 0 ) ubyte -> zero-ref do-not-enreg[] "field V14._controlFlags (fldOffset=0x0)" P-DEP
;* V164 tmp151 [V164,T23] ( 0, 0 ) int -> zero-ref do-not-enreg[] "field V14.<TagValue>k__BackingField (fldOffset=0x4)" P-DEP
;* V165 tmp152 [V165,T24] ( 0, 0 ) ubyte -> zero-ref do-not-enreg[] "field V15._controlFlags (fldOffset=0x0)" P-DEP
;* V166 tmp153 [V166,T25] ( 0, 0 ) int -> zero-ref do-not-enreg[] "field V15.<TagValue>k__BackingField (fldOffset=0x4)" P-DEP
;* V167 tmp154 [V167,T26] ( 0, 0 ) ubyte -> zero-ref do-not-enreg[] "field V16._controlFlags (fldOffset=0x0)" P-DEP
;* V168 tmp155 [V168,T27] ( 0, 0 ) int -> zero-ref do-not-enreg[] "field V16.<TagValue>k__BackingField (fldOffset=0x4)" P-DEP
;* V169 tmp156 [V169 ] ( 0, 0 ) ref -> zero-ref "field V19._object (fldOffset=0x0)" P-INDEP
;* V170 tmp157 [V170 ] ( 0, 0 ) int -> zero-ref "field V19._index (fldOffset=0x8)" P-INDEP
;* V171 tmp158 [V171 ] ( 0, 0 ) int -> zero-ref "field V19._length (fldOffset=0xc)" P-INDEP
;* V172 tmp159 [V172 ] ( 0, 0 ) ref -> zero-ref "field V21._object (fldOffset=0x0)" P-INDEP
;* V173 tmp160 [V173 ] ( 0, 0 ) int -> zero-ref "field V21._index (fldOffset=0x8)" P-INDEP
;* V174 tmp161 [V174 ] ( 0, 0 ) int -> zero-ref "field V21._length (fldOffset=0xc)" P-INDEP
;* V175 tmp162 [V175 ] ( 0, 0 ) ref -> zero-ref "field V23._object (fldOffset=0x0)" P-INDEP
;* V176 tmp163 [V176 ] ( 0, 0 ) int -> zero-ref "field V23._index (fldOffset=0x8)" P-INDEP
;* V177 tmp164 [V177 ] ( 0, 0 ) int -> zero-ref "field V23._length (fldOffset=0xc)" P-INDEP
;* V178 tmp165 [V178 ] ( 0, 0 ) byref -> zero-ref "field V25._reference (fldOffset=0x0)" P-INDEP
;* V179 tmp166 [V179 ] ( 0, 0 ) int -> zero-ref "field V25._length (fldOffset=0x8)" P-INDEP
;* V180 tmp167 [V180 ] ( 0, 0 ) ref -> zero-ref "field V28._object (fldOffset=0x0)" P-INDEP
;* V181 tmp168 [V181 ] ( 0, 0 ) int -> zero-ref "field V28._index (fldOffset=0x8)" P-INDEP
;* V182 tmp169 [V182 ] ( 0, 0 ) int -> zero-ref "field V28._length (fldOffset=0xc)" P-INDEP
;* V183 tmp170 [V183 ] ( 0, 0 ) byref -> zero-ref single-def "field V35._reference (fldOffset=0x0)" P-INDEP
;* V184 tmp171 [V184 ] ( 0, 0 ) int -> zero-ref "field V35._length (fldOffset=0x8)" P-INDEP
; V185 tmp172 [V185,T53] ( 2, 2 ) byref -> rdi single-def "field V39._reference (fldOffset=0x0)" P-INDEP
;* V186 tmp173 [V186 ] ( 0, 0 ) int -> zero-ref "field V39._length (fldOffset=0x8)" P-INDEP
;* V187 tmp174 [V187 ] ( 0, 0 ) byref -> zero-ref single-def "field V42._reference (fldOffset=0x0)" P-INDEP
;* V188 tmp175 [V188 ] ( 0, 0 ) int -> zero-ref "field V42._length (fldOffset=0x8)" P-INDEP
;* V189 tmp176 [V189 ] ( 0, 0 ) ushort -> zero-ref "field V46._twoDigitYearMax (fldOffset=0x0)" P-INDEP
;* V190 tmp177 [V190 ] ( 0, 0 ) ubyte -> zero-ref "field V46.<SkipSetSortOrderVerification>k__BackingField (fldOffset=0x2)" P-INDEP
;* V191 tmp178 [V191 ] ( 0, 0 ) ref -> zero-ref single-def "field V47._object (fldOffset=0x0)" P-INDEP
;* V192 tmp179 [V192 ] ( 0, 0 ) int -> zero-ref "field V47._index (fldOffset=0x8)" P-INDEP
;* V193 tmp180 [V193 ] ( 0, 0 ) int -> zero-ref "field V47._length (fldOffset=0xc)" P-INDEP
; V194 tmp181 [V194,T48] ( 4, 2 ) ref -> r14 "field V51._object (fldOffset=0x0)" P-INDEP
-;* V195 tmp182 [V195,T68] ( 0, 0 ) int -> zero-ref "field V51._index (fldOffset=0x8)" P-INDEP
-; V196 tmp183 [V196,T61] ( 3, 1.50) int -> r13 "field V51._length (fldOffset=0xc)" P-INDEP
+;* V195 tmp182 [V195,T67] ( 0, 0 ) int -> zero-ref "field V51._index (fldOffset=0x8)" P-INDEP
+; V196 tmp183 [V196,T60] ( 3, 1.50) int -> r13 "field V51._length (fldOffset=0xc)" P-INDEP
;* V197 tmp184 [V197 ] ( 0, 0 ) ushort -> zero-ref "field V52._twoDigitYearMax (fldOffset=0x0)" P-INDEP
;* V198 tmp185 [V198 ] ( 0, 0 ) ubyte -> zero-ref "field V52.<SkipSetSortOrderVerification>k__BackingField (fldOffset=0x2)" P-INDEP
;* V199 tmp186 [V199 ] ( 0, 0 ) byref -> zero-ref "field V54._reference (fldOffset=0x0)" P-INDEP
;* V200 tmp187 [V200 ] ( 0, 0 ) int -> zero-ref "field V54._length (fldOffset=0x8)" P-INDEP
; V201 tmp188 [V201 ] ( 2, 1 ) ubyte -> [rbp-0x1E0] do-not-enreg[X] addr-exposed "field V55._controlFlags (fldOffset=0x0)" P-DEP
; V202 tmp189 [V202 ] ( 2, 1 ) int -> [rbp-0x1DC] do-not-enreg[X] addr-exposed "field V55.<TagValue>k__BackingField (fldOffset=0x4)" P-DEP
;* V203 tmp190 [V203 ] ( 0, 0 ) ubyte -> zero-ref "field V64._controlFlags (fldOffset=0x0)" P-INDEP
;* V204 tmp191 [V204 ] ( 0, 0 ) int -> zero-ref "field V64.<TagValue>k__BackingField (fldOffset=0x4)" P-INDEP
;* V205 tmp192 [V205 ] ( 0, 0 ) ubyte -> zero-ref "field V67._controlFlags (fldOffset=0x0)" P-INDEP
;* V206 tmp193 [V206 ] ( 0, 0 ) int -> zero-ref "field V67.<TagValue>k__BackingField (fldOffset=0x4)" P-INDEP
-; V207 tmp194 [V207,T64] ( 2, 1 ) byref -> rax single-def "field V72._reference (fldOffset=0x0)" P-INDEP
-; V208 tmp195 [V208,T69] ( 2, 1 ) int -> rcx "field V72._length (fldOffset=0x8)" P-INDEP
+; V207 tmp194 [V207,T62] ( 2, 1 ) byref -> rax single-def "field V72._reference (fldOffset=0x0)" P-INDEP
+; V208 tmp195 [V208,T68] ( 2, 1 ) int -> rcx "field V72._length (fldOffset=0x8)" P-INDEP
; V209 tmp196 [V209,T49] ( 4, 2 ) ref -> rsi "field V75._object (fldOffset=0x0)" P-INDEP
;* V210 tmp197 [V210 ] ( 0, 0 ) int -> zero-ref "field V75._index (fldOffset=0x8)" P-INDEP
-; V211 tmp198 [V211,T62] ( 3, 1.50) int -> r13 "field V75._length (fldOffset=0xc)" P-INDEP
+; V211 tmp198 [V211,T61] ( 3, 1.50) int -> r13 "field V75._length (fldOffset=0xc)" P-INDEP
;* V212 tmp199 [V212 ] ( 0, 0 ) byref -> zero-ref "field V77._reference (fldOffset=0x0)" P-INDEP
;* V213 tmp200 [V213 ] ( 0, 0 ) int -> zero-ref "field V77._length (fldOffset=0x8)" P-INDEP
; V214 tmp201 [V214 ] ( 2, 1 ) ubyte -> [rbp-0x1F8] do-not-enreg[X] addr-exposed "field V78._controlFlags (fldOffset=0x0)" P-DEP
; V215 tmp202 [V215 ] ( 2, 1 ) int -> [rbp-0x1F4] do-not-enreg[X] addr-exposed "field V78.<TagValue>k__BackingField (fldOffset=0x4)" P-DEP
;* V216 tmp203 [V216 ] ( 0, 0 ) ubyte -> zero-ref "field V87._controlFlags (fldOffset=0x0)" P-INDEP
;* V217 tmp204 [V217 ] ( 0, 0 ) int -> zero-ref "field V87.<TagValue>k__BackingField (fldOffset=0x4)" P-INDEP
;* V218 tmp205 [V218 ] ( 0, 0 ) ubyte -> zero-ref "field V93._controlFlags (fldOffset=0x0)" P-INDEP
;* V219 tmp206 [V219 ] ( 0, 0 ) int -> zero-ref "field V93.<TagValue>k__BackingField (fldOffset=0x4)" P-INDEP
-; V220 tmp207 [V220,T65] ( 2, 1 ) byref -> r12 single-def "field V95._reference (fldOffset=0x0)" P-INDEP
+; V220 tmp207 [V220,T63] ( 2, 1 ) byref -> r12 single-def "field V95._reference (fldOffset=0x0)" P-INDEP
;* V221 tmp208 [V221 ] ( 0, 0 ) int -> zero-ref "field V95._length (fldOffset=0x8)" P-INDEP
-; V222 tmp209 [V222,T59] ( 3, 1.50) ref -> rsi "field V102._object (fldOffset=0x0)" P-INDEP
+; V222 tmp209 [V222,T64] ( 2, 1 ) ref -> rsi "field V102._object (fldOffset=0x0)" P-INDEP
;* V223 tmp210 [V223 ] ( 0, 0 ) int -> zero-ref "field V102._index (fldOffset=0x8)" P-INDEP
-; V224 tmp211 [V224,T63] ( 3, 1.50) int -> r13 "field V102._length (fldOffset=0xc)" P-INDEP
+; V224 tmp211 [V224,T69] ( 2, 1 ) int -> r13 "field V102._length (fldOffset=0xc)" P-INDEP
;* V225 tmp212 [V225 ] ( 0, 0 ) ubyte -> zero-ref "field V103._controlFlags (fldOffset=0x0)" P-INDEP
;* V226 tmp213 [V226 ] ( 0, 0 ) int -> zero-ref "field V103.<TagValue>k__BackingField (fldOffset=0x4)" P-INDEP
-; V227 tmp214 [V227,T01] ( 4, 20 ) ref -> [rbp-0x220] do-not-enreg[] "field V104._object (fldOffset=0x0)" P-DEP
-; V228 tmp215 [V228,T02] ( 4, 20 ) int -> [rbp-0x218] do-not-enreg[] "field V104._index (fldOffset=0x8)" P-DEP
-; V229 tmp216 [V229,T03] ( 4, 20 ) int -> [rbp-0x214] do-not-enreg[] "field V104._length (fldOffset=0xc)" P-DEP
+; V227 tmp214 [V227,T01] ( 3, 20 ) ref -> [rbp-0x220] do-not-enreg[] "field V104._object (fldOffset=0x0)" P-DEP
+; V228 tmp215 [V228,T02] ( 3, 20 ) int -> [rbp-0x218] do-not-enreg[] "field V104._index (fldOffset=0x8)" P-DEP
+; V229 tmp216 [V229,T03] ( 3, 20 ) int -> [rbp-0x214] do-not-enreg[] "field V104._length (fldOffset=0xc)" P-DEP
;* V230 tmp217 [V230 ] ( 0, 0 ) byref -> zero-ref "field V105._reference (fldOffset=0x0)" P-INDEP
;* V231 tmp218 [V231 ] ( 0, 0 ) int -> zero-ref "field V105._length (fldOffset=0x8)" P-INDEP
;* V232 tmp219 [V232 ] ( 0, 0 ) byref -> zero-ref "field V109._reference (fldOffset=0x0)" P-INDEP
;* V233 tmp220 [V233 ] ( 0, 0 ) int -> zero-ref "field V109._length (fldOffset=0x8)" P-INDEP
;* V234 tmp221 [V234 ] ( 0, 0 ) byref -> zero-ref "field V111._reference (fldOffset=0x0)" P-DEP
;* V235 tmp222 [V235 ] ( 0, 0 ) int -> zero-ref "field V111._length (fldOffset=0x8)" P-DEP
; V236 tmp223 [V236,T40] ( 2, 4 ) byref -> rax "field V112._reference (fldOffset=0x0)" P-INDEP
; V237 tmp224 [V237,T43] ( 2, 4 ) int -> rsi "field V112._length (fldOffset=0x8)" P-INDEP
;* V238 tmp225 [V238 ] ( 0, 0 ) byref -> zero-ref "field V118._reference (fldOffset=0x0)" P-INDEP
;* V239 tmp226 [V239 ] ( 0, 0 ) int -> zero-ref "field V118._length (fldOffset=0x8)" P-INDEP
;* V240 tmp227 [V240 ] ( 0, 0 ) byref -> zero-ref "field V120._reference (fldOffset=0x0)" P-INDEP
;* V241 tmp228 [V241 ] ( 0, 0 ) int -> zero-ref "field V120._length (fldOffset=0x8)" P-INDEP
;* V242 tmp229 [V242 ] ( 0, 0 ) byref -> zero-ref "field V127._reference (fldOffset=0x0)" P-INDEP
;* V243 tmp230 [V243 ] ( 0, 0 ) int -> zero-ref "field V127._length (fldOffset=0x8)" P-INDEP
; V244 tmp231 [V244 ] ( 2, 1 ) ubyte -> [rbp-0x238] do-not-enreg[X] addr-exposed "field V128._controlFlags (fldOffset=0x0)" P-DEP
; V245 tmp232 [V245 ] ( 2, 1 ) int -> [rbp-0x234] do-not-enreg[X] addr-exposed "field V128.<TagValue>k__BackingField (fldOffset=0x4)" P-DEP
;* V246 tmp233 [V246 ] ( 0, 0 ) ubyte -> zero-ref "field V137._controlFlags (fldOffset=0x0)" P-INDEP
;* V247 tmp234 [V247 ] ( 0, 0 ) int -> zero-ref "field V137.<TagValue>k__BackingField (fldOffset=0x4)" P-INDEP
;* V248 tmp235 [V248 ] ( 0, 0 ) ubyte -> zero-ref "field V140._controlFlags (fldOffset=0x0)" P-INDEP
;* V249 tmp236 [V249 ] ( 0, 0 ) int -> zero-ref "field V140.<TagValue>k__BackingField (fldOffset=0x4)" P-INDEP
-; V250 tmp237 [V250,T66] ( 2, 1 ) byref -> r15 "field V143._reference (fldOffset=0x0)" P-INDEP
+; V250 tmp237 [V250,T65] ( 2, 1 ) byref -> r15 "field V143._reference (fldOffset=0x0)" P-INDEP
; V251 tmp238 [V251,T50] ( 4, 2 ) int -> r14 "field V143._length (fldOffset=0x8)" P-INDEP
-; V252 tmp239 [V252,T67] ( 2, 1 ) byref -> rdi single-def "field V145._reference (fldOffset=0x0)" P-INDEP
+; V252 tmp239 [V252,T66] ( 2, 1 ) byref -> rdi single-def "field V145._reference (fldOffset=0x0)" P-INDEP
; V253 tmp240 [V253,T70] ( 2, 1 ) int -> rax "field V145._length (fldOffset=0x8)" P-INDEP
-; V254 tmp241 [V254,T60] ( 3, 1.50) ref -> rsi "field V153._object (fldOffset=0x0)" P-INDEP
+; V254 tmp241 [V254,T59] ( 3, 1.50) ref -> rsi "field V153._object (fldOffset=0x0)" P-INDEP
;* V255 tmp242 [V255 ] ( 0, 0 ) int -> zero-ref "field V153._index (fldOffset=0x8)" P-INDEP
; V256 tmp243 [V256,T71] ( 2, 1 ) int -> r15 "field V153._length (fldOffset=0xc)" P-INDEP
;* V257 tmp244 [V257 ] ( 0, 0 ) byref -> zero-ref single-def "V02.[000..008)"
;* V258 tmp245 [V258 ] ( 0, 0 ) int -> zero-ref "V02.[008..012)"
;* V259 tmp246 [V259 ] ( 0, 0 ) int -> zero-ref "V02.[016..020)"
;* V260 tmp247 [V260 ] ( 0, 0 ) ubyte -> zero-ref "V18.[000..001)"
;* V261 tmp248 [V261 ] ( 0, 0 ) ref -> zero-ref single-def "V18.[008..016)"
;* V262 tmp249 [V262 ] ( 0, 0 ) int -> zero-ref "V18.[016..020)"
;* V263 tmp250 [V263 ] ( 0, 0 ) int -> zero-ref "V18.[020..024)"
;* V264 tmp251 [V264 ] ( 0, 0 ) ubyte -> zero-ref "V20.[000..001)"
;* V265 tmp252 [V265 ] ( 0, 0 ) ref -> zero-ref single-def "V20.[008..016)"
;* V266 tmp253 [V266 ] ( 0, 0 ) int -> zero-ref "V20.[016..020)"
;* V267 tmp254 [V267 ] ( 0, 0 ) int -> zero-ref "V20.[020..024)"
;* V268 tmp255 [V268 ] ( 0, 0 ) ubyte -> zero-ref "V27.[000..001)"
;* V269 tmp256 [V269 ] ( 0, 0 ) ref -> zero-ref single-def "V27.[008..016)"
;* V270 tmp257 [V270 ] ( 0, 0 ) int -> zero-ref "V27.[016..020)"
;* V271 tmp258 [V271 ] ( 0, 0 ) int -> zero-ref "V27.[020..024)"
;* V272 tmp259 [V272 ] ( 0, 0 ) byref -> zero-ref single-def "V36.[000..008)"
;* V273 tmp260 [V273 ] ( 0, 0 ) int -> zero-ref "V36.[008..012)"
;* V274 tmp261 [V274 ] ( 0, 0 ) int -> zero-ref "V36.[016..020)"
; V275 tmp262 [V275,T30] ( 5, 5 ) byref -> r12 single-def "Spilling address for field-by-field copy"
; V276 tmp263 [V276,T31] ( 5, 5 ) byref -> [rbp-0x270] spill-single-def "Spilling address for field-by-field copy"
; V277 tmp264 [V277,T32] ( 5, 5 ) byref -> r14 single-def "Spilling address for field-by-field copy"
; V278 tmp265 [V278,T81] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
; V279 tmp266 [V279,T82] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
; V280 tmp267 [V280,T83] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
; V281 tmp268 [V281,T84] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
; V282 PSPSym [V282,T72] ( 1, 1 ) long -> [rbp-0x280] do-not-enreg[V] "PSPSym"
;
; Lcl frame size = 616
G_M54503_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 616
lea rbp, [rsp+0x290]
vxorps xmm8, xmm8, xmm8
vmovdqa xmmword ptr [rbp-0x220], xmm8
mov rax, -480
vmovdqa xmmword ptr [rbp+rax-0x30], xmm8
vmovdqa xmmword ptr [rbp+rax-0x20], xmm8
vmovdqa xmmword ptr [rbp+rax-0x10], xmm8
add rax, 48
jne SHORT -5 instr
mov qword ptr [rbp-0x30], rax
mov qword ptr [rbp-0x280], rsp
mov rbx, rdi
mov r14, rsi
mov r15d, edx
;; size=92 bbWeight=1 PerfScore 19.33
G_M54503_IG02:
xor edi, edi
mov qword ptr [rbx+0x28], rdi
mov qword ptr [rbx+0x30], rdi
mov qword ptr [rbx+0x38], rdi
;; size=14 bbWeight=1 PerfScore 3.25
G_M54503_IG03:
mov gword ptr [rbx+0x20], rdi
;; size=4 bbWeight=1 PerfScore 1.00
G_M54503_IG04:
mov qword ptr [rbx+0x40], rdi
mov qword ptr [rbx+0x48], rdi
mov qword ptr [rbx+0x50], rdi
;; size=12 bbWeight=1 PerfScore 3.00
G_M54503_IG05:
mov qword ptr [rbx+0x58], rdi
mov qword ptr [rbx+0x60], rdi
mov qword ptr [rbx+0x68], rdi
;; size=12 bbWeight=1 PerfScore 3.00
G_M54503_IG06:
xor edi, edi
mov qword ptr [rbp-0x68], rdi
mov dword ptr [rbp-0x60], edi
mov bword ptr [rbp-0x40], r14
mov dword ptr [rbp-0x38], r15d
vmovdqu xmm0, xmmword ptr [rbp-0x68]
vmovdqu xmmword ptr [rsp], xmm0
mov rdi, bword ptr [rbp-0x40]
mov rsi, qword ptr [rbp-0x38]
lea rcx, [rbp-0x1C0]
lea r8, [rbp-0x1C8]
lea r9, [rbp-0x1D0]
mov edx, 2
mov rax, 0xD1FFAB1E ; code for System.Formats.Asn1.AsnDecoder:ReadSequence(System.ReadOnlySpan`1[ubyte],int,byref,byref,byref,System.Nullable`1[System.Formats.Asn1.Asn1Tag])
call [rax]System.Formats.Asn1.AsnDecoder:ReadSequence(System.ReadOnlySpan`1[ubyte],int,byref,byref,byref,System.Nullable`1[System.Formats.Asn1.Asn1Tag])
mov edi, dword ptr [rbp-0x1C0]
mov eax, dword ptr [rbp-0x1C8]
mov ecx, edi
mov edx, eax
add rcx, rdx
mov edx, r15d
cmp rcx, rdx
- ja G_M54503_IG50
+ ja G_M54503_IG43
add rdi, r14
mov ecx, dword ptr [rbp-0x1D0]
cmp ecx, r15d
- ja G_M54503_IG50
+ ja G_M54503_IG43
sub r15d, ecx
mov bword ptr [rbp-0x58], rdi
mov dword ptr [rbp-0x50], eax
mov dword ptr [rbp-0x48], 2
test r15d, r15d
je G_M54503_IG12
;; size=148 bbWeight=1 PerfScore 26.50
G_M54503_IG07:
mov rdi, 0xD1FFAB1E ; global ptr
test byte ptr [rdi], 1
- je G_M54503_IG46
+ je G_M54503_IG39
;; size=19 bbWeight=0.50 PerfScore 2.12
G_M54503_IG08:
mov rdi, 0xD1FFAB1E ; data for System.Formats.Asn1.AsnValueReader:s_singleByte
mov r15, gword ptr [rdi]
test r15, r15
jne SHORT G_M54503_IG09
xor r14, r14
xor r13d, r13d
jmp SHORT G_M54503_IG10
;; size=26 bbWeight=0.50 PerfScore 3.00
G_M54503_IG09:
mov r14, r15
mov r13d, dword ptr [r14+0x08]
;; size=7 bbWeight=0.50 PerfScore 1.12
G_M54503_IG10:
mov rdi, 0xD1FFAB1E ; System.Formats.Asn1.AsnReader
call CORINFO_HELP_NEWSFAST
mov r15, rax
mov edi, 2
mov rax, 0xD1FFAB1E ; code for System.Formats.Asn1.AsnDecoder:CheckEncodingRules(int)
call [rax]System.Formats.Asn1.AsnDecoder:CheckEncodingRules(int)
lea rdi, bword ptr [r15+0x10]
mov rsi, r14
call CORINFO_HELP_ASSIGN_REF
xor edi, edi
mov dword ptr [r15+0x18], edi
mov dword ptr [r15+0x1C], r13d
mov dword ptr [r15+0x08], 2
;; size=65 bbWeight=0.50 PerfScore 5.00
G_M54503_IG11:
mov dword ptr [r15+0x20], edi
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Formats.Asn1.AsnReader:ThrowIfNotEmpty():this
call [rax]System.Formats.Asn1.AsnReader:ThrowIfNotEmpty():this
;; size=19 bbWeight=0.50 PerfScore 2.25
G_M54503_IG12:
xor r15d, r15d
xor r14d, r14d
cmp dword ptr [rbp-0x50], 0
je SHORT G_M54503_IG14
;; size=12 bbWeight=1 PerfScore 3.50
G_M54503_IG13:
mov rdi, bword ptr [rbp-0x58]
mov rsi, qword ptr [rbp-0x50]
lea rdx, [rbp-0x1E0]
lea rcx, [rbp-0x1D8]
mov rax, 0xD1FFAB1E ; code for System.Formats.Asn1.Asn1Tag:TryDecode(System.ReadOnlySpan`1[ubyte],byref,byref):ubyte
call [rax]System.Formats.Asn1.Asn1Tag:TryDecode(System.ReadOnlySpan`1[ubyte],byref,byref):ubyte
test eax, eax
- je G_M54503_IG49
+ je G_M54503_IG42
movzx r15, byte ptr [rbp-0x1E0]
mov r14d, dword ptr [rbp-0x1DC]
;; size=57 bbWeight=0.50 PerfScore 4.75
G_M54503_IG14:
test r14d, r14d
jne G_M54503_IG18
;; size=9 bbWeight=1 PerfScore 1.25
G_M54503_IG15:
movzx rdi, r15b
and edi, 192
cmp edi, 128
jne G_M54503_IG18
xor edi, edi
mov qword ptr [rbp-0x1B8], rdi
mov dword ptr [rbp-0x1B0], edi
mov byte ptr [rbp-0x1B4], r15b
mov byte ptr [rbp-0x1B8], 1
mov rdi, bword ptr [rbp-0x58]
mov rsi, qword ptr [rbp-0x50]
mov r8, qword ptr [rbp-0x1B8]
mov r9d, dword ptr [rbp-0x1B0]
lea rcx, [rbp-0x1E8]
mov edx, dword ptr [rbp-0x48]
mov rax, 0xD1FFAB1E ; code for System.Formats.Asn1.AsnDecoder:ReadOctetString(System.ReadOnlySpan`1[ubyte],int,byref,System.Nullable`1[System.Formats.Asn1.Asn1Tag]):ubyte[]
call [rax]System.Formats.Asn1.AsnDecoder:ReadOctetString(System.ReadOnlySpan`1[ubyte],int,byref,System.Nullable`1[System.Formats.Asn1.Asn1Tag]):ubyte[]
mov rsi, rax
mov edi, dword ptr [rbp-0x1E8]
cmp edi, dword ptr [rbp-0x50]
- ja G_M54503_IG50
+ ja G_M54503_IG43
mov eax, edi
add rax, bword ptr [rbp-0x58]
mov ecx, dword ptr [rbp-0x50]
sub ecx, edi
mov bword ptr [rbp-0x58], rax
mov dword ptr [rbp-0x50], ecx
test rsi, rsi
jne SHORT G_M54503_IG16
xor rsi, rsi
xor r13d, r13d
jmp SHORT G_M54503_IG17
;; size=143 bbWeight=0.50 PerfScore 14.12
G_M54503_IG16:
mov r13d, dword ptr [rsi+0x08]
;; size=4 bbWeight=0.50 PerfScore 1.00
G_M54503_IG17:
lea r12, bword ptr [rbx+0x28]
mov byte ptr [r12], 1
lea rdi, bword ptr [r12+0x08]
call CORINFO_HELP_ASSIGN_REF
xor edi, edi
mov dword ptr [r12+0x10], edi
mov dword ptr [r12+0x14], r13d
cmp dword ptr [rbp-0x50], 0
je SHORT G_M54503_IG18
mov rdi, bword ptr [rbp-0x58]
mov rsi, qword ptr [rbp-0x50]
lea rdx, [rbp-0x1F8]
lea rcx, [rbp-0x1F0]
mov rax, 0xD1FFAB1E ; code for System.Formats.Asn1.Asn1Tag:TryDecode(System.ReadOnlySpan`1[ubyte],byref,byref):ubyte
call [rax]System.Formats.Asn1.Asn1Tag:TryDecode(System.ReadOnlySpan`1[ubyte],byref,byref):ubyte
test eax, eax
- je G_M54503_IG48
+ je G_M54503_IG41
movzx r15, byte ptr [rbp-0x1F8]
mov r14d, dword ptr [rbp-0x1F4]
;; size=94 bbWeight=0.50 PerfScore 8.88
G_M54503_IG18:
cmp r14d, 1
- jne G_M54503_IG41
+ jne G_M54503_IG34
;; size=10 bbWeight=1 PerfScore 1.25
G_M54503_IG19:
movzx rdi, r15b
and edi, 192
cmp edi, 128
- jne G_M54503_IG41
+ jne G_M54503_IG34
mov rdi, bword ptr [rbp-0x58]
mov rsi, qword ptr [rbp-0x50]
lea r9, [rbp-0x210]
lea rcx, [rbp-0x200]
lea r8, [rbp-0x208]
mov edx, dword ptr [rbp-0x48]
mov rax, 0xD1FFAB1E ; code for System.Formats.Asn1.AsnDecoder:ReadEncodedValue(System.ReadOnlySpan`1[ubyte],int,byref,byref,byref):System.Formats.Asn1.Asn1Tag
call [rax]System.Formats.Asn1.AsnDecoder:ReadEncodedValue(System.ReadOnlySpan`1[ubyte],int,byref,byref,byref):System.Formats.Asn1.Asn1Tag
mov r13d, dword ptr [rbp-0x210]
cmp r13d, dword ptr [rbp-0x50]
- ja G_M54503_IG50
+ ja G_M54503_IG43
mov r12, bword ptr [rbp-0x58]
test r13d, r13d
jne SHORT G_M54503_IG20
mov r12, 0xD1FFAB1E ; 'System.Byte[]'
jmp SHORT G_M54503_IG21
;; size=104 bbWeight=0.50 PerfScore 9.00
G_M54503_IG20:
movsxd rsi, r13d
mov rdi, 0xD1FFAB1E ; ubyte[]
call CORINFO_HELP_NEWARR_1_VC
mov gword ptr [rbp-0x258], rax
mov edx, r13d
lea rdi, bword ptr [rax+0x10]
mov rsi, r12
mov rcx, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
call [rcx]System.SpanHelpers:Memmove(byref,byref,ulong)
mov r12, gword ptr [rbp-0x258]
;; size=54 bbWeight=0.50 PerfScore 3.88
G_M54503_IG21:
- test r12, r12
- jne SHORT G_M54503_IG22
- xor rsi, rsi
- xor r13d, r13d
- jmp SHORT G_M54503_IG23
- ;; size=12 bbWeight=0.50 PerfScore 1.88
-G_M54503_IG22:
mov rsi, r12
mov r13d, dword ptr [r12+0x08]
- ;; size=8 bbWeight=0.50 PerfScore 1.12
-G_M54503_IG23:
lea rax, bword ptr [rbx+0x40]
mov bword ptr [rbp-0x270], rax
mov byte ptr [rax], 1
lea rdi, bword ptr [rax+0x08]
call CORINFO_HELP_ASSIGN_REF
xor edx, edx
mov rcx, bword ptr [rbp-0x270]
mov dword ptr [rcx+0x10], edx
mov dword ptr [rcx+0x14], r13d
- ;; size=39 bbWeight=0.50 PerfScore 3.62
-G_M54503_IG24:
+ ;; size=47 bbWeight=0.50 PerfScore 4.75
+G_M54503_IG22:
mov qword ptr [rbp-0x1A8], rdx
mov dword ptr [rbp-0x1A0], edx
mov byte ptr [rbp-0x1A4], r15b
mov dword ptr [rbp-0x1A0], 1
mov byte ptr [rbp-0x1A8], 1
mov rdx, qword ptr [rbp-0x1A8]
mov ecx, dword ptr [rbp-0x1A0]
lea rsi, [rbp-0x80]
lea rdi, [rbp-0x58]
mov rax, 0xD1FFAB1E ; code for System.Formats.Asn1.AsnValueReader:ReadSequence(System.Nullable`1[System.Formats.Asn1.Asn1Tag]):System.Formats.Asn1.AsnValueReader:this
call [rax]System.Formats.Asn1.AsnValueReader:ReadSequence(System.Nullable`1[System.Formats.Asn1.Asn1Tag]):System.Formats.Asn1.AsnValueReader:this
xor r13d, r13d
cmp dword ptr [rbp-0x78], 0
- je G_M54503_IG40
+ je G_M54503_IG33
;; size=83 bbWeight=0.50 PerfScore 7.25
-G_M54503_IG25:
- test r12, r12
- jne SHORT G_M54503_IG29
- ;; size=5 bbWeight=4 PerfScore 5.00
-G_M54503_IG26:
- xor rsi, rsi
- mov gword ptr [rbp-0x220], rsi
- ;; size=9 bbWeight=2 PerfScore 2.50
-G_M54503_IG27:
- mov dword ptr [rbp-0x218], esi
- ;; size=6 bbWeight=2 PerfScore 2.00
-G_M54503_IG28:
- mov dword ptr [rbp-0x214], esi
- jmp SHORT G_M54503_IG30
- ;; size=8 bbWeight=2 PerfScore 6.00
-G_M54503_IG29:
+G_M54503_IG23:
mov gword ptr [rbp-0x220], r12
xor esi, esi
mov dword ptr [rbp-0x218], esi
mov esi, dword ptr [r12+0x08]
mov dword ptr [rbp-0x214], esi
- ;; size=26 bbWeight=2 PerfScore 10.50
-G_M54503_IG30:
mov rsi, gword ptr [rbp-0x220]
mov rdx, qword ptr [rbp-0x218]
lea rdi, [rbp-0x80]
lea rcx, [rbp-0x188]
mov rax, 0xD1FFAB1E ; code for System.Security.Cryptography.Asn1.GeneralNameAsn:Decode(byref,System.ReadOnlyMemory`1[ubyte],byref)
call [rax]System.Security.Cryptography.Asn1.GeneralNameAsn:Decode(byref,System.ReadOnlyMemory`1[ubyte],byref)
cmp byte ptr [rbp-0x130], 0
- je G_M54503_IG39
- ;; size=50 bbWeight=4 PerfScore 37.00
-G_M54503_IG31:
+ je G_M54503_IG32
+ ;; size=76 bbWeight=4 PerfScore 58.00
+G_M54503_IG24:
test r13d, r13d
- jne SHORT G_M54503_IG32
+ jne SHORT G_M54503_IG25
mov r13d, 1
mov rdi, gword ptr [rbp-0x128]
mov eax, dword ptr [rbp-0x120]
mov dword ptr [rbp-0x244], eax
mov ecx, dword ptr [rbp-0x11C]
mov dword ptr [rbp-0x248], ecx
xor rdx, rdx
xor esi, esi
test rdi, rdi
mov dword ptr [rbp-0x224], esi
mov bword ptr [rbp-0x260], rdx
- je SHORT G_M54503_IG35
+ je SHORT G_M54503_IG28
mov rdx, qword ptr [rdi]
test dword ptr [rdx], 0xD1FFAB1E
- je SHORT G_M54503_IG33
+ je SHORT G_M54503_IG26
lea rdx, bword ptr [rdi+0x10]
mov esi, dword ptr [rdi+0x08]
- jmp SHORT G_M54503_IG34
+ jmp SHORT G_M54503_IG27
;; size=84 bbWeight=2 PerfScore 41.50
-G_M54503_IG32:
+G_M54503_IG25:
xor rdi, rdi
mov gword ptr [rbx+0x20], rdi
- jmp G_M54503_IG39
+ jmp G_M54503_IG32
;; size=11 bbWeight=2 PerfScore 6.50
-G_M54503_IG33:
+G_M54503_IG26:
mov rdx, qword ptr [rdi]
mov rdx, qword ptr [rdx+0x40]
call [rdx+0x28]System.Buffers.MemoryManager`1[ubyte]:GetSpan():System.Span`1[ubyte]:this
mov esi, edx
mov rdi, rax
mov eax, esi
mov rdx, rdi
mov esi, eax
;; size=22 bbWeight=2 PerfScore 16.50
-G_M54503_IG34:
+G_M54503_IG27:
mov eax, dword ptr [rbp-0x244]
and eax, 0xD1FFAB1E
mov edi, eax
mov ecx, dword ptr [rbp-0x248]
mov eax, ecx
add rax, rdi
mov esi, esi
cmp rax, rsi
- ja G_M54503_IG50
+ ja G_M54503_IG43
add rdx, rdi
mov bword ptr [rbp-0x260], rdx
mov dword ptr [rbp-0x224], ecx
;; size=51 bbWeight=2 PerfScore 13.50
-G_M54503_IG35:
+G_M54503_IG28:
mov rdi, 0xD1FFAB1E ; System.Security.Cryptography.X509Certificates.X500DistinguishedName
call CORINFO_HELP_NEWSFAST
mov gword ptr [rbp-0x250], rax
mov rdi, 0xD1FFAB1E ; System.Security.Cryptography.Oid
call CORINFO_HELP_NEWSFAST
xor rdi, rdi
mov gword ptr [rax+0x08], rdi
;; size=43 bbWeight=2 PerfScore 9.50
-G_M54503_IG36:
+G_M54503_IG29:
mov gword ptr [rax+0x10], rdi
mov byte ptr [rax+0x1C], 0
mov rcx, gword ptr [rbp-0x250]
lea rdi, bword ptr [rcx+0x08]
mov rsi, rax
call CORINFO_HELP_ASSIGN_REF
mov eax, dword ptr [rbp-0x224]
test eax, eax
- jne SHORT G_M54503_IG37
+ jne SHORT G_M54503_IG30
mov rsi, 0xD1FFAB1E ; 'System.Byte[]'
- jmp SHORT G_M54503_IG38
+ jmp SHORT G_M54503_IG31
;; size=49 bbWeight=2 PerfScore 18.50
-G_M54503_IG37:
+G_M54503_IG30:
mov dword ptr [rbp-0x224], eax
movsxd rsi, eax
mov rdi, 0xD1FFAB1E ; ubyte[]
call CORINFO_HELP_NEWARR_1_VC
mov rsi, rax
mov gword ptr [rbp-0x268], rsi
mov edx, dword ptr [rbp-0x224]
lea rdi, bword ptr [rsi+0x10]
mov rsi, bword ptr [rbp-0x260]
mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
call [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
mov rsi, gword ptr [rbp-0x268]
;; size=70 bbWeight=2 PerfScore 21.00
-G_M54503_IG38:
+G_M54503_IG31:
mov rax, gword ptr [rbp-0x250]
lea rdi, bword ptr [rax+0x10]
call CORINFO_HELP_ASSIGN_REF
lea rdi, bword ptr [rbx+0x20]
mov rsi, gword ptr [rbp-0x250]
call CORINFO_HELP_ASSIGN_REF
;; size=32 bbWeight=2 PerfScore 10.00
-G_M54503_IG39:
+G_M54503_IG32:
cmp dword ptr [rbp-0x78], 0
- jne G_M54503_IG25
+ jne G_M54503_IG23
;; size=10 bbWeight=4 PerfScore 12.00
-G_M54503_IG40:
+G_M54503_IG33:
cmp dword ptr [rbp-0x50], 0
- je SHORT G_M54503_IG41
+ je SHORT G_M54503_IG34
mov rdi, bword ptr [rbp-0x58]
mov rsi, qword ptr [rbp-0x50]
lea rdx, [rbp-0x238]
lea rcx, [rbp-0x230]
mov rax, 0xD1FFAB1E ; code for System.Formats.Asn1.Asn1Tag:TryDecode(System.ReadOnlySpan`1[ubyte],byref,byref):ubyte
call [rax]System.Formats.Asn1.Asn1Tag:TryDecode(System.ReadOnlySpan`1[ubyte],byref,byref):ubyte
test eax, eax
- je G_M54503_IG47
+ je G_M54503_IG40
movzx r15, byte ptr [rbp-0x238]
mov r14d, dword ptr [rbp-0x234]
;; size=63 bbWeight=0.50 PerfScore 6.25
-G_M54503_IG41:
+G_M54503_IG34:
cmp r14d, 2
- jne G_M54503_IG45
+ jne G_M54503_IG38
;; size=10 bbWeight=1 PerfScore 1.25
-G_M54503_IG42:
+G_M54503_IG35:
movzx rdi, r15b
and edi, 192
cmp edi, 128
- jne G_M54503_IG45
+ jne G_M54503_IG38
xor edi, edi
mov qword ptr [rbp-0x198], rdi
mov dword ptr [rbp-0x190], edi
mov byte ptr [rbp-0x194], r15b
mov dword ptr [rbp-0x190], 2
mov byte ptr [rbp-0x198], 1
mov rdi, bword ptr [rbp-0x58]
mov rsi, qword ptr [rbp-0x50]
mov r8, qword ptr [rbp-0x198]
mov r9d, dword ptr [rbp-0x190]
lea rcx, [rbp-0x240]
mov edx, dword ptr [rbp-0x48]
mov rax, 0xD1FFAB1E ; code for System.Formats.Asn1.AsnDecoder:ReadIntegerBytes(System.ReadOnlySpan`1[ubyte],int,byref,System.Nullable`1[System.Formats.Asn1.Asn1Tag]):System.ReadOnlySpan`1[ubyte]
call [rax]System.Formats.Asn1.AsnDecoder:ReadIntegerBytes(System.ReadOnlySpan`1[ubyte],int,byref,System.Nullable`1[System.Formats.Asn1.Asn1Tag]):System.ReadOnlySpan`1[ubyte]
mov r15, rax
mov r14d, edx
mov esi, dword ptr [rbp-0x240]
cmp esi, dword ptr [rbp-0x50]
- ja G_M54503_IG50
+ ja G_M54503_IG43
mov edi, esi
add rdi, bword ptr [rbp-0x58]
mov eax, dword ptr [rbp-0x50]
sub eax, esi
mov bword ptr [rbp-0x58], rdi
mov dword ptr [rbp-0x50], eax
test r14d, r14d
- jne SHORT G_M54503_IG43
+ jne SHORT G_M54503_IG36
mov rsi, 0xD1FFAB1E ; 'System.Byte[]'
- jmp SHORT G_M54503_IG44
+ jmp SHORT G_M54503_IG37
;; size=161 bbWeight=0.50 PerfScore 14.62
-G_M54503_IG43:
+G_M54503_IG36:
mov esi, r14d
mov rdi, 0xD1FFAB1E ; ubyte[]
call CORINFO_HELP_NEWARR_1_VC
mov r13, rax
mov edx, r14d
lea rdi, bword ptr [r13+0x10]
mov rsi, r15
mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
call [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
mov rsi, r13
;; size=46 bbWeight=0.50 PerfScore 3.12
-G_M54503_IG44:
+G_M54503_IG37:
mov r15d, dword ptr [rsi+0x08]
lea r14, bword ptr [rbx+0x58]
mov byte ptr [r14], 1
lea rdi, bword ptr [r14+0x08]
call CORINFO_HELP_ASSIGN_REF
xor edi, edi
mov dword ptr [r14+0x10], edi
mov dword ptr [r14+0x14], r15d
;; size=31 bbWeight=0.50 PerfScore 3.62
-G_M54503_IG45:
+G_M54503_IG38:
lea rdi, [rbp-0x58]
mov rax, 0xD1FFAB1E ; code for System.Formats.Asn1.AsnValueReader:ThrowIfNotEmpty():this
call [rax]System.Formats.Asn1.AsnValueReader:ThrowIfNotEmpty():this
- jmp G_M54503_IG51
+ jmp G_M54503_IG44
;; size=21 bbWeight=1 PerfScore 5.75
-G_M54503_IG46:
+G_M54503_IG39:
mov rdi, 0xD1FFAB1E ; System.Formats.Asn1.AsnValueReader
call CORINFO_HELP_GET_GCSTATIC_BASE
jmp G_M54503_IG08
;; size=20 bbWeight=0 PerfScore 0.00
-G_M54503_IG47:
+G_M54503_IG40:
mov rdi, 0xD1FFAB1E ; System.Formats.Asn1.AsnContentException
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov rax, 0xD1FFAB1E ; code for System.SR:get_ContentException_InvalidTag():System.String
call [rax]System.SR:get_ContentException_InvalidTag():System.String
mov rsi, rax
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Formats.Asn1.AsnContentException:.ctor(System.String):this
call [rax]System.Formats.Asn1.AsnContentException:.ctor(System.String):this
mov rdi, rbx
call CORINFO_HELP_THROW
int3
;; size=57 bbWeight=0 PerfScore 0.00
-G_M54503_IG48:
+G_M54503_IG41:
mov rdi, 0xD1FFAB1E ; System.Formats.Asn1.AsnContentException
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov rax, 0xD1FFAB1E ; code for System.SR:get_ContentException_InvalidTag():System.String
call [rax]System.SR:get_ContentException_InvalidTag():System.String
mov rsi, rax
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Formats.Asn1.AsnContentException:.ctor(System.String):this
call [rax]System.Formats.Asn1.AsnContentException:.ctor(System.String):this
mov rdi, rbx
call CORINFO_HELP_THROW
int3
;; size=57 bbWeight=0 PerfScore 0.00
-G_M54503_IG49:
+G_M54503_IG42:
mov rdi, 0xD1FFAB1E ; System.Formats.Asn1.AsnContentException
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov rax, 0xD1FFAB1E ; code for System.SR:get_ContentException_InvalidTag():System.String
call [rax]System.SR:get_ContentException_InvalidTag():System.String
mov rsi, rax
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Formats.Asn1.AsnContentException:.ctor(System.String):this
call [rax]System.Formats.Asn1.AsnContentException:.ctor(System.String):this
mov rdi, rbx
call CORINFO_HELP_THROW
int3
;; size=57 bbWeight=0 PerfScore 0.00
-G_M54503_IG50:
+G_M54503_IG43:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M54503_IG51:
+G_M54503_IG44:
mov byte ptr [rbx+0x19], 1
;; size=4 bbWeight=1 PerfScore 1.00
-G_M54503_IG52:
+G_M54503_IG45:
add rsp, 616
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=18 bbWeight=1 PerfScore 4.25
-G_M54503_IG53:
+G_M54503_IG46:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 24
mov rbp, qword ptr [rdi+0x10]
mov qword ptr [rsp+0x10], rbp
lea rbp, [rbp+0x290]
;; size=30 bbWeight=0 PerfScore 0.00
-G_M54503_IG54:
+G_M54503_IG47:
mov rbx, rsi
mov rdi, 0xD1FFAB1E ; System.Security.Cryptography.CryptographicException
call CORINFO_HELP_NEWSFAST
mov r15, rax
mov rax, 0xD1FFAB1E ; code for System.SR:get_Cryptography_Der_Invalid_Encoding():System.String
call [rax]System.SR:get_Cryptography_Der_Invalid_Encoding():System.String
mov rsi, rax
mov rdi, r15
mov rdx, rbx
mov rax, 0xD1FFAB1E ; code for System.Security.Cryptography.CryptographicException:.ctor(System.String,System.Exception):this
call [rax]System.Security.Cryptography.CryptographicException:.ctor(System.String,System.Exception):this
mov rdi, r15
call CORINFO_HELP_THROW
int3
;; size=63 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2174, prolog size 92, PerfScore 382.96, instruction count 469, allocated bytes for code 2174 (MethodHash=f4f52b18) for method System.Security.Cryptography.X509Certificates.X509AuthorityKeyIdentifierExtension:Decode(System.ReadOnlySpan`1[ubyte]):this (FullOpts)
+; Total bytes of code 2134, prolog size 92, PerfScore 376.08, instruction count 457, allocated bytes for code 2134 (MethodHash=f4f52b18) for method System.Security.Cryptography.X509Certificates.X509AuthorityKeyIdentifierExtension:Decode(System.ReadOnlySpan`1[ubyte]):this (FullOpts)
-39 (-7.65 % of base) - System.Globalization.GlobalizationMode:LoadAppLocalIcuCore(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort])
; Assembly listing for method System.Globalization.GlobalizationMode:LoadAppLocalIcuCore(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]) (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; 16 single block inlinees; 12 inlinees without PGO data
; Final local variable assignments
;
;* V00 arg0 [V00 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[ushort]>
;* V01 arg1 [V01 ] ( 0, 0 ) struct (16) zero-ref multireg-arg single-def <System.ReadOnlySpan`1[ushort]>
-; V02 loc0 [V02,T01] ( 10, 7 ) ref -> r12 class-hnd single-def <System.String>
+; V02 loc0 [V02,T01] ( 7, 7 ) ref -> r12 class-hnd single-def <System.String>
;* V03 loc1 [V03,T44] ( 0, 0 ) ubyte -> zero-ref
;* V04 loc2 [V04 ] ( 0, 0 ) struct (16) zero-ref multireg-arg <System.ReadOnlySpan`1[ushort]>
-; V05 loc3 [V05,T31] ( 2, 2 ) long -> r12
+; V05 loc3 [V05,T34] ( 2, 2 ) long -> r12
; V06 OutArgs [V06 ] ( 1, 1 ) struct (16) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V07 tmp1 [V07,T19] ( 2, 2 ) ref -> r12
;* V08 tmp2 [V08 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V09 tmp3 [V09 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
;* V10 tmp4 [V10 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V11 tmp5 [V11 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
;* V12 tmp6 [V12 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-; V13 tmp7 [V13,T09] ( 2, 4 ) long -> [rbp-0x30] spill-single-def "impAppendStmt"
+; V13 tmp7 [V13,T12] ( 2, 4 ) long -> [rbp-0x30] spill-single-def "impAppendStmt"
;* V14 tmp8 [V14 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
;* V15 tmp9 [V15 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V16 tmp10 [V16 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V17 tmp11 [V17 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V18 tmp12 [V18 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V19 tmp13 [V19 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
; V20 tmp14 [V20,T03] ( 4, 6 ) ref -> rax class-hnd exact single-def "Inlining Arg" <System.String>
;* V21 tmp15 [V21 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V22 tmp16 [V22 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
; V23 tmp17 [V23,T20] ( 2, 2 ) byref -> r10 single-def "Inlining Arg"
-; V24 tmp18 [V24,T32] ( 2, 2 ) int -> r11 "Inlining Arg"
+; V24 tmp18 [V24,T35] ( 2, 2 ) int -> r11 "Inlining Arg"
;* V25 tmp19 [V25 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V26 tmp20 [V26 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V27 tmp21 [V27 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V28 tmp22 [V28 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V29 tmp23 [V29 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V30 tmp24 [V30,T21] ( 2, 2 ) byref -> r8 single-def "Inlining Arg"
-; V31 tmp25 [V31,T33] ( 2, 2 ) int -> r9 "Inlining Arg"
-; V32 tmp26 [V32,T22] ( 2, 2 ) ref -> rdi class-hnd single-def "Inline return value spill temp" <System.String>
+; V30 tmp24 [V30,T08] ( 2, 4 ) byref -> r8 single-def "Inlining Arg"
+; V31 tmp25 [V31,T13] ( 2, 4 ) int -> r9 "Inlining Arg"
+; V32 tmp26 [V32,T21] ( 2, 2 ) ref -> rdi class-hnd single-def "Inline return value spill temp" <System.String>
;* V33 tmp27 [V33 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V34 tmp28 [V34 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V35 tmp29 [V35 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V36 tmp30 [V36 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V37 tmp31 [V37 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V38 tmp32 [V38 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V39 tmp33 [V39,T23] ( 2, 2 ) byref -> r8 single-def "Inlining Arg"
-; V40 tmp34 [V40,T34] ( 2, 2 ) int -> r9 "Inlining Arg"
-; V41 tmp35 [V41,T24] ( 2, 2 ) ref -> rdi class-hnd "Inline return value spill temp" <System.String>
+; V39 tmp33 [V39,T09] ( 2, 4 ) byref -> r8 single-def "Inlining Arg"
+; V40 tmp34 [V40,T14] ( 2, 4 ) int -> r9 "Inlining Arg"
+; V41 tmp35 [V41,T22] ( 2, 2 ) ref -> rdi class-hnd "Inline return value spill temp" <System.String>
;* V42 tmp36 [V42 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V43 tmp37 [V43 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V44 tmp38 [V44 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V45 tmp39 [V45 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V46 tmp40 [V46 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V47 tmp41 [V47 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V48 tmp42 [V48,T25] ( 2, 2 ) byref -> r8 single-def "Inlining Arg"
-; V49 tmp43 [V49,T35] ( 2, 2 ) int -> r9 "Inlining Arg"
-; V50 tmp44 [V50,T26] ( 2, 2 ) ref -> rdi class-hnd "Inline return value spill temp" <System.String>
+; V48 tmp42 [V48,T10] ( 2, 4 ) byref -> r8 single-def "Inlining Arg"
+; V49 tmp43 [V49,T15] ( 2, 4 ) int -> r9 "Inlining Arg"
+; V50 tmp44 [V50,T23] ( 2, 2 ) ref -> rdi class-hnd "Inline return value spill temp" <System.String>
;* V51 tmp45 [V51 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
; V52 tmp46 [V52 ] ( 3, 6 ) struct (16) [rbp-0x40] do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
; V53 tmp47 [V53 ] ( 4, 7 ) struct (16) [rbp-0x50] do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-; V54 tmp48 [V54,T08] ( 2, 4 ) ref -> rbx class-hnd exact single-def "impAppendStmt" <System.String>
+; V54 tmp48 [V54,T11] ( 2, 4 ) ref -> rbx class-hnd exact single-def "impAppendStmt" <System.String>
;* V55 tmp49 [V55 ] ( 0, 0 ) long -> zero-ref
;* V56 tmp50 [V56 ] ( 0, 0 ) long -> zero-ref
;* V57 tmp51 [V57 ] ( 0, 0 ) ref -> zero-ref single-def
;* V58 tmp52 [V58 ] ( 0, 0 ) long -> zero-ref
;* V59 tmp53 [V59 ] ( 0, 0 ) long -> zero-ref
;* V60 tmp54 [V60 ] ( 0, 0 ) ref -> zero-ref single-def
-; V61 tmp55 [V61,T10] ( 3, 2 ) ref -> rcx
+; V61 tmp55 [V61,T16] ( 3, 2 ) ref -> rcx
; V62 tmp56 [V62,T02] ( 5, 5 ) byref -> r15 single-def "field V00._reference (fldOffset=0x0)" P-INDEP
; V63 tmp57 [V63,T00] ( 6, 6 ) int -> rbx single-def "field V00._length (fldOffset=0x8)" P-INDEP
; V64 tmp58 [V64,T04] ( 3, 3 ) byref -> r14 single-def "field V01._reference (fldOffset=0x0)" P-INDEP
; V65 tmp59 [V65,T05] ( 3, 3 ) int -> r13 single-def "field V01._length (fldOffset=0x8)" P-INDEP
; V66 tmp60 [V66,T06] ( 4, 4 ) byref -> [rbp-0x60] spill-single-def "field V04._reference (fldOffset=0x0)" P-INDEP
; V67 tmp61 [V67,T07] ( 4, 4 ) int -> [rbp-0x54] spill-single-def "field V04._length (fldOffset=0x8)" P-INDEP
;* V68 tmp62 [V68 ] ( 0, 0 ) byref -> zero-ref "field V08._reference (fldOffset=0x0)" P-INDEP
;* V69 tmp63 [V69 ] ( 0, 0 ) int -> zero-ref "field V08._length (fldOffset=0x8)" P-INDEP
;* V70 tmp64 [V70 ] ( 0, 0 ) byref -> zero-ref single-def "field V09._reference (fldOffset=0x0)" P-INDEP
;* V71 tmp65 [V71 ] ( 0, 0 ) int -> zero-ref "field V09._length (fldOffset=0x8)" P-INDEP
;* V72 tmp66 [V72 ] ( 0, 0 ) byref -> zero-ref single-def "field V10._reference (fldOffset=0x0)" P-INDEP
;* V73 tmp67 [V73 ] ( 0, 0 ) int -> zero-ref "field V10._length (fldOffset=0x8)" P-INDEP
;* V74 tmp68 [V74 ] ( 0, 0 ) byref -> zero-ref single-def "field V11._reference (fldOffset=0x0)" P-INDEP
;* V75 tmp69 [V75 ] ( 0, 0 ) int -> zero-ref "field V11._length (fldOffset=0x8)" P-INDEP
;* V76 tmp70 [V76 ] ( 0, 0 ) byref -> zero-ref single-def "field V12._reference (fldOffset=0x0)" P-INDEP
;* V77 tmp71 [V77 ] ( 0, 0 ) int -> zero-ref "field V12._length (fldOffset=0x8)" P-INDEP
;* V78 tmp72 [V78 ] ( 0, 0 ) byref -> zero-ref single-def "field V14._reference (fldOffset=0x0)" P-INDEP
;* V79 tmp73 [V79 ] ( 0, 0 ) int -> zero-ref "field V14._length (fldOffset=0x8)" P-INDEP
;* V80 tmp74 [V80 ] ( 0, 0 ) byref -> zero-ref single-def "field V15._reference (fldOffset=0x0)" P-INDEP
;* V81 tmp75 [V81 ] ( 0, 0 ) int -> zero-ref "field V15._length (fldOffset=0x8)" P-INDEP
;* V82 tmp76 [V82 ] ( 0, 0 ) byref -> zero-ref "field V16._reference (fldOffset=0x0)" P-INDEP
;* V83 tmp77 [V83 ] ( 0, 0 ) int -> zero-ref "field V16._length (fldOffset=0x8)" P-INDEP
-; V84 tmp78 [V84,T27] ( 2, 2 ) byref -> rdx single-def "field V17._reference (fldOffset=0x0)" P-INDEP
+; V84 tmp78 [V84,T24] ( 2, 2 ) byref -> rdx single-def "field V17._reference (fldOffset=0x0)" P-INDEP
;* V85 tmp79 [V85,T45] ( 0, 0 ) int -> zero-ref "field V17._length (fldOffset=0x8)" P-INDEP
-; V86 tmp80 [V86,T11] ( 3, 2 ) byref -> registers "field V19._reference (fldOffset=0x0)" P-INDEP
-; V87 tmp81 [V87,T15] ( 3, 2 ) int -> registers "field V19._length (fldOffset=0x8)" P-INDEP
-; V88 tmp82 [V88,T36] ( 2, 1 ) byref -> r10 single-def "field V21._reference (fldOffset=0x0)" P-INDEP
-; V89 tmp83 [V89,T40] ( 2, 1 ) int -> r11 "field V21._length (fldOffset=0x8)" P-INDEP
+; V86 tmp80 [V86,T17] ( 3, 2 ) byref -> registers "field V19._reference (fldOffset=0x0)" P-INDEP
+; V87 tmp81 [V87,T18] ( 3, 2 ) int -> registers "field V19._length (fldOffset=0x8)" P-INDEP
+; V88 tmp82 [V88,T42] ( 2, 1 ) byref -> r10 single-def "field V21._reference (fldOffset=0x0)" P-INDEP
+; V89 tmp83 [V89,T43] ( 2, 1 ) int -> r11 "field V21._length (fldOffset=0x8)" P-INDEP
;* V90 tmp84 [V90 ] ( 0, 0 ) byref -> zero-ref single-def "field V22._reference (fldOffset=0x0)" P-INDEP
;* V91 tmp85 [V91 ] ( 0, 0 ) int -> zero-ref "field V22._length (fldOffset=0x8)" P-INDEP
-; V92 tmp86 [V92,T28] ( 2, 2 ) byref -> rdi single-def "field V25._reference (fldOffset=0x0)" P-INDEP
+; V92 tmp86 [V92,T25] ( 2, 2 ) byref -> rdi single-def "field V25._reference (fldOffset=0x0)" P-INDEP
;* V93 tmp87 [V93,T46] ( 0, 0 ) int -> zero-ref "field V25._length (fldOffset=0x8)" P-INDEP
-; V94 tmp88 [V94,T12] ( 3, 2 ) byref -> r8 "field V27._reference (fldOffset=0x0)" P-INDEP
-; V95 tmp89 [V95,T16] ( 3, 2 ) int -> r9 "field V27._length (fldOffset=0x8)" P-INDEP
-; V96 tmp90 [V96,T37] ( 2, 1 ) byref -> r8 single-def "field V28._reference (fldOffset=0x0)" P-INDEP
-; V97 tmp91 [V97,T41] ( 2, 1 ) int -> r9 "field V28._length (fldOffset=0x8)" P-INDEP
+; V94 tmp88 [V94,T26] ( 2, 2 ) byref -> r8 "field V27._reference (fldOffset=0x0)" P-INDEP
+; V95 tmp89 [V95,T36] ( 2, 2 ) int -> r9 "field V27._length (fldOffset=0x8)" P-INDEP
+; V96 tmp90 [V96,T27] ( 2, 2 ) byref -> r8 single-def "field V28._reference (fldOffset=0x0)" P-INDEP
+; V97 tmp91 [V97,T37] ( 2, 2 ) int -> r9 "field V28._length (fldOffset=0x8)" P-INDEP
;* V98 tmp92 [V98 ] ( 0, 0 ) byref -> zero-ref single-def "field V29._reference (fldOffset=0x0)" P-INDEP
;* V99 tmp93 [V99 ] ( 0, 0 ) int -> zero-ref "field V29._length (fldOffset=0x8)" P-INDEP
;* V100 tmp94 [V100 ] ( 0, 0 ) byref -> zero-ref single-def "field V33._reference (fldOffset=0x0)" P-INDEP
;* V101 tmp95 [V101 ] ( 0, 0 ) int -> zero-ref "field V33._length (fldOffset=0x8)" P-INDEP
-; V102 tmp96 [V102,T29] ( 2, 2 ) byref -> rdi single-def "field V34._reference (fldOffset=0x0)" P-INDEP
+; V102 tmp96 [V102,T28] ( 2, 2 ) byref -> rdi single-def "field V34._reference (fldOffset=0x0)" P-INDEP
;* V103 tmp97 [V103,T47] ( 0, 0 ) int -> zero-ref "field V34._length (fldOffset=0x8)" P-INDEP
-; V104 tmp98 [V104,T13] ( 3, 2 ) byref -> r8 "field V36._reference (fldOffset=0x0)" P-INDEP
-; V105 tmp99 [V105,T17] ( 3, 2 ) int -> r9 "field V36._length (fldOffset=0x8)" P-INDEP
-; V106 tmp100 [V106,T38] ( 2, 1 ) byref -> r8 single-def "field V37._reference (fldOffset=0x0)" P-INDEP
-; V107 tmp101 [V107,T42] ( 2, 1 ) int -> r9 "field V37._length (fldOffset=0x8)" P-INDEP
+; V104 tmp98 [V104,T29] ( 2, 2 ) byref -> r8 "field V36._reference (fldOffset=0x0)" P-INDEP
+; V105 tmp99 [V105,T38] ( 2, 2 ) int -> r9 "field V36._length (fldOffset=0x8)" P-INDEP
+; V106 tmp100 [V106,T30] ( 2, 2 ) byref -> r8 single-def "field V37._reference (fldOffset=0x0)" P-INDEP
+; V107 tmp101 [V107,T39] ( 2, 2 ) int -> r9 "field V37._length (fldOffset=0x8)" P-INDEP
;* V108 tmp102 [V108 ] ( 0, 0 ) byref -> zero-ref single-def "field V38._reference (fldOffset=0x0)" P-INDEP
;* V109 tmp103 [V109 ] ( 0, 0 ) int -> zero-ref "field V38._length (fldOffset=0x8)" P-INDEP
;* V110 tmp104 [V110 ] ( 0, 0 ) byref -> zero-ref single-def "field V42._reference (fldOffset=0x0)" P-INDEP
;* V111 tmp105 [V111 ] ( 0, 0 ) int -> zero-ref "field V42._length (fldOffset=0x8)" P-INDEP
-; V112 tmp106 [V112,T30] ( 2, 2 ) byref -> rdi single-def "field V43._reference (fldOffset=0x0)" P-INDEP
+; V112 tmp106 [V112,T31] ( 2, 2 ) byref -> rdi single-def "field V43._reference (fldOffset=0x0)" P-INDEP
;* V113 tmp107 [V113,T48] ( 0, 0 ) int -> zero-ref "field V43._length (fldOffset=0x8)" P-INDEP
-; V114 tmp108 [V114,T14] ( 3, 2 ) byref -> r8 "field V45._reference (fldOffset=0x0)" P-INDEP
-; V115 tmp109 [V115,T18] ( 3, 2 ) int -> r9 "field V45._length (fldOffset=0x8)" P-INDEP
-; V116 tmp110 [V116,T39] ( 2, 1 ) byref -> r8 single-def "field V46._reference (fldOffset=0x0)" P-INDEP
-; V117 tmp111 [V117,T43] ( 2, 1 ) int -> r9 "field V46._length (fldOffset=0x8)" P-INDEP
+; V114 tmp108 [V114,T32] ( 2, 2 ) byref -> r8 "field V45._reference (fldOffset=0x0)" P-INDEP
+; V115 tmp109 [V115,T40] ( 2, 2 ) int -> r9 "field V45._length (fldOffset=0x8)" P-INDEP
+; V116 tmp110 [V116,T33] ( 2, 2 ) byref -> r8 single-def "field V46._reference (fldOffset=0x0)" P-INDEP
+; V117 tmp111 [V117,T41] ( 2, 2 ) int -> r9 "field V46._length (fldOffset=0x8)" P-INDEP
;* V118 tmp112 [V118 ] ( 0, 0 ) byref -> zero-ref single-def "field V47._reference (fldOffset=0x0)" P-INDEP
;* V119 tmp113 [V119 ] ( 0, 0 ) int -> zero-ref "field V47._length (fldOffset=0x8)" P-INDEP
;* V120 tmp114 [V120 ] ( 0, 0 ) byref -> zero-ref single-def "field V51._reference (fldOffset=0x0)" P-INDEP
;* V121 tmp115 [V121 ] ( 0, 0 ) int -> zero-ref "field V51._length (fldOffset=0x8)" P-INDEP
; V122 tmp116 [V122 ] ( 2, 3 ) byref -> [rbp-0x40] do-not-enreg[X] addr-exposed "field V52._reference (fldOffset=0x0)" P-DEP
; V123 tmp117 [V123 ] ( 2, 3 ) int -> [rbp-0x38] do-not-enreg[X] addr-exposed "field V52._length (fldOffset=0x8)" P-DEP
; V124 tmp118 [V124 ] ( 2, 2 ) byref -> [rbp-0x50] do-not-enreg[X] addr-exposed "field V53._reference (fldOffset=0x0)" P-DEP
; V125 tmp119 [V125 ] ( 3, 3 ) int -> [rbp-0x48] do-not-enreg[X] addr-exposed "field V53._length (fldOffset=0x8)" P-DEP
;
; Lcl frame size = 72
G_M13061_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 72
lea rbp, [rsp+0x70]
vxorps xmm8, xmm8, xmm8
vmovdqu ymmword ptr [rbp-0x50], ymm8
mov r15, rdi
mov ebx, esi
mov r14, rdx
mov r13d, ecx
;; size=40 bbWeight=1 PerfScore 10.08
G_M13061_IG02:
mov r12, 0xD1FFAB1E ; 'so.'
mov rdi, 0xD1FFAB1E ; 'so'
test ebx, ebx
cmovle r12, rdi
mov rdx, 0xD1FFAB1E
mov rdi, r14
mov esi, r13d
mov ecx, 1
mov rax, 0xD1FFAB1E ; code for System.String:Concat(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):System.String
call [rax]System.String:Concat(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):System.String
test rax, rax
jne SHORT G_M13061_IG04
;; size=64 bbWeight=1 PerfScore 6.50
G_M13061_IG03:
xor r10, r10
xor r11d, r11d
jmp SHORT G_M13061_IG05
;; size=8 bbWeight=0.50 PerfScore 1.25
G_M13061_IG04:
lea r10, bword ptr [rax+0x0C]
mov r11d, dword ptr [rax+0x08]
mov rax, r10
mov r10d, r11d
mov r11d, r10d
mov r10, rax
;; size=20 bbWeight=0.50 PerfScore 1.75
G_M13061_IG05:
mov rax, r10
mov bword ptr [rbp-0x60], rax
mov r10d, r11d
mov dword ptr [rbp-0x54], r10d
mov rdi, 0xD1FFAB1E
- test r12, r12
- jne SHORT G_M13061_IG07
- ;; size=29 bbWeight=1 PerfScore 4.00
-G_M13061_IG06:
- xor r8, r8
- xor r9d, r9d
- jmp SHORT G_M13061_IG08
- ;; size=8 bbWeight=0.50 PerfScore 1.25
-G_M13061_IG07:
lea r8, bword ptr [r12+0x0C]
mov r9d, dword ptr [r12+0x08]
- ;; size=10 bbWeight=0.50 PerfScore 1.25
-G_M13061_IG08:
mov bword ptr [rsp], r15
mov dword ptr [rsp+0x08], ebx
mov esi, 10
mov rdx, rax
mov ecx, r10d
mov r11, 0xD1FFAB1E ; code for System.String:Concat(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):System.String
call [r11]System.String:Concat(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):System.String
mov rdi, rax
mov esi, 1
mov rax, 0xD1FFAB1E ; code for System.Globalization.GlobalizationMode:LoadLibrary(System.String,ubyte):long
call [rax]System.Globalization.GlobalizationMode:LoadLibrary(System.String,ubyte):long
mov rdi, 0xD1FFAB1E
- test r12, r12
- jne SHORT G_M13061_IG10
- ;; size=67 bbWeight=1 PerfScore 11.25
-G_M13061_IG09:
- xor r8, r8
- xor r9d, r9d
- jmp SHORT G_M13061_IG11
- ;; size=8 bbWeight=0.50 PerfScore 1.25
-G_M13061_IG10:
lea r8, bword ptr [r12+0x0C]
mov r9d, dword ptr [r12+0x08]
- ;; size=10 bbWeight=0.50 PerfScore 1.25
-G_M13061_IG11:
mov bword ptr [rsp], r15
mov dword ptr [rsp+0x08], ebx
mov esi, 8
mov rdx, bword ptr [rbp-0x60]
mov ecx, dword ptr [rbp-0x54]
mov rax, 0xD1FFAB1E ; code for System.String:Concat(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):System.String
call [rax]System.String:Concat(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):System.String
mov rdi, rax
mov esi, 1
mov rax, 0xD1FFAB1E ; code for System.Globalization.GlobalizationMode:LoadLibrary(System.String,ubyte):long
call [rax]System.Globalization.GlobalizationMode:LoadLibrary(System.String,ubyte):long
mov qword ptr [rbp-0x30], rax
mov rdi, 0xD1FFAB1E
- test r12, r12
- jne SHORT G_M13061_IG13
- ;; size=71 bbWeight=1 PerfScore 13.75
-G_M13061_IG12:
- xor r8, r8
- xor r9d, r9d
- jmp SHORT G_M13061_IG14
- ;; size=8 bbWeight=0.50 PerfScore 1.25
-G_M13061_IG13:
lea r8, bword ptr [r12+0x0C]
mov r9d, dword ptr [r12+0x08]
- ;; size=10 bbWeight=0.50 PerfScore 1.25
-G_M13061_IG14:
mov bword ptr [rsp], r15
mov dword ptr [rsp+0x08], ebx
mov esi, 10
mov rdx, bword ptr [rbp-0x60]
mov ecx, dword ptr [rbp-0x54]
mov r10, 0xD1FFAB1E ; code for System.String:Concat(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):System.String
call [r10]System.String:Concat(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):System.String
mov rdi, rax
mov esi, 1
mov rax, 0xD1FFAB1E ; code for System.Globalization.GlobalizationMode:LoadLibrary(System.String,ubyte):long
call [rax]System.Globalization.GlobalizationMode:LoadLibrary(System.String,ubyte):long
mov r12, rax
mov bword ptr [rbp-0x40], r15
mov dword ptr [rbp-0x38], ebx
+ ;; size=245 bbWeight=1 PerfScore 46.25
+G_M13061_IG06:
mov bword ptr [rbp-0x50], r14
mov dword ptr [rbp-0x48], r13d
lea rdi, [rbp-0x40]
mov rax, 0xD1FFAB1E ; code for System.ReadOnlySpan`1[ushort]:ToString():System.String:this
call [rax]System.ReadOnlySpan`1[ushort]:ToString():System.String:this
mov rbx, rax
cmp dword ptr [rbp-0x48], 0
- jg SHORT G_M13061_IG16
- ;; size=96 bbWeight=1 PerfScore 22.50
-G_M13061_IG15:
+ jg SHORT G_M13061_IG08
+ ;; size=33 bbWeight=1 PerfScore 9.00
+G_M13061_IG07:
xor rcx, rcx
- jmp SHORT G_M13061_IG17
+ jmp SHORT G_M13061_IG09
;; size=4 bbWeight=0.50 PerfScore 1.12
-G_M13061_IG16:
+G_M13061_IG08:
lea rdi, [rbp-0x50]
mov rax, 0xD1FFAB1E ; code for System.ReadOnlySpan`1[ushort]:ToString():System.String:this
call [rax]System.ReadOnlySpan`1[ushort]:ToString():System.String:this
mov rcx, rax
;; size=19 bbWeight=0.50 PerfScore 2.00
-G_M13061_IG17:
+G_M13061_IG09:
mov rdi, qword ptr [rbp-0x30]
mov rsi, r12
mov rdx, rbx
mov rax, 0xD1FFAB1E ; code for Interop+Globalization:InitICUFunctions(long,long,System.String,System.String)
call [rax]Interop+Globalization:InitICUFunctions(long,long,System.String,System.String)
nop
;; size=23 bbWeight=1 PerfScore 5.00
-G_M13061_IG18:
+G_M13061_IG10:
add rsp, 72
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.25
-; Total bytes of code 510, prolog size 29, PerfScore 90.96, instruction count 128, allocated bytes for code 510 (MethodHash=7ececcfa) for method System.Globalization.GlobalizationMode:LoadAppLocalIcuCore(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]) (FullOpts)
+; Total bytes of code 471, prolog size 29, PerfScore 87.21, instruction count 113, allocated bytes for code 471 (MethodHash=7ececcfa) for method System.Globalization.GlobalizationMode:LoadAppLocalIcuCore(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]) (FullOpts)
-27 (-1.88 % of base) - System.Net.Http.Http2Connection:WriteLiteralHeader(System.String,System.ReadOnlySpan`1[System.String],System.Text.Encoding,byref):this
; Assembly listing for method System.Net.Http.Http2Connection:WriteLiteralHeader(System.String,System.ReadOnlySpan`1[System.String],System.Text.Encoding,byref):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; 25 single block inlinees; 41 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T28] ( 4, 3 ) ref -> [rbp-0x78] this class-hnd single-def <System.Net.Http.Http2Connection>
; V01 arg1 [V01,T15] ( 9, 9 ) ref -> r13 class-hnd single-def <System.String>
;* V02 arg2 [V02 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[System.String]>
; V03 arg3 [V03,T16] ( 3, 6 ) ref -> r12 class-hnd single-def <System.Text.Encoding>
; V04 arg4 [V04,T04] ( 9, 26 ) byref -> rbx single-def
; V05 loc0 [V05,T37] ( 2, 2 ) int -> rdi ld-addr-op
; V06 loc1 [V06 ] ( 60, 30 ) struct (40) [rbp-0x50] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
; V07 OutArgs [V07 ] ( 1, 1 ) struct ( 8) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V08 tmp1 [V08 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "impAppendStmt" <System.ReadOnlySpan`1[System.String]>
; V09 tmp2 [V09,T05] ( 2, 24 ) ref -> [rbp-0x80] class-hnd spill-single-def "impAppendStmt" <ubyte[]>
;* V10 tmp3 [V10 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
;* V11 tmp4 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.NetEventSource>
;* V12 tmp5 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Buffers.SharedArrayPool`1[ushort]>
; V13 tmp6 [V13,T27] ( 5, 5 ) ref -> rax class-hnd single-def "dup spill" <ushort[]>
;* V14 tmp7 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <ushort[]>
;* V15 tmp8 [V15 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V16 tmp9 [V16 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
;* V17 tmp10 [V17 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V18 tmp11 [V18,T29] ( 4, 4 ) int -> rdi "Inlining Arg"
;* V19 tmp12 [V19 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V20 tmp13 [V20,T45] ( 2, 2 ) byref -> rsi single-def "Inlining Arg"
; V21 tmp14 [V21,T53] ( 2, 2 ) int -> rax "Inlining Arg"
;* V22 tmp15 [V22,T69] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V23 tmp16 [V23 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V24 tmp17 [V24 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V25 tmp18 [V25 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V26 tmp19 [V26 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V27 tmp20 [V27,T30] ( 4, 4 ) int -> rdi "Inlining Arg"
;* V28 tmp21 [V28 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V29 tmp22 [V29,T46] ( 2, 2 ) byref -> rsi single-def "Inlining Arg"
; V30 tmp23 [V30,T54] ( 2, 2 ) int -> rax "Inlining Arg"
;* V31 tmp24 [V31,T70] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V32 tmp25 [V32 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V33 tmp26 [V33 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V34 tmp27 [V34 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V35 tmp28 [V35 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V36 tmp29 [V36,T31] ( 4, 4 ) int -> rsi "Inlining Arg"
;* V37 tmp30 [V37 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V38 tmp31 [V38,T47] ( 2, 2 ) byref -> rdi single-def "Inlining Arg"
; V39 tmp32 [V39,T55] ( 2, 2 ) int -> rdx "Inlining Arg"
;* V40 tmp33 [V40,T71] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V41 tmp34 [V41 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V42 tmp35 [V42 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V43 tmp36 [V43 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V44 tmp37 [V44 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V45 tmp38 [V45 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V46 tmp39 [V46,T32] ( 4, 4 ) int -> rdi "Inlining Arg"
;* V47 tmp40 [V47 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V48 tmp41 [V48,T48] ( 2, 2 ) byref -> rsi single-def "Inlining Arg"
; V49 tmp42 [V49,T56] ( 2, 2 ) int -> rax "Inlining Arg"
;* V50 tmp43 [V50,T72] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V51 tmp44 [V51 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V52 tmp45 [V52 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V53 tmp46 [V53 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V54 tmp47 [V54 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V55 tmp48 [V55,T33] ( 4, 4 ) int -> rdi "Inlining Arg"
;* V56 tmp49 [V56 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V57 tmp50 [V57,T49] ( 2, 2 ) byref -> rsi single-def "Inlining Arg"
; V58 tmp51 [V58,T57] ( 2, 2 ) int -> rax "Inlining Arg"
;* V59 tmp52 [V59,T73] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V60 tmp53 [V60 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V61 tmp54 [V61 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V62 tmp55 [V62 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V63 tmp56 [V63 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V64 tmp57 [V64,T34] ( 4, 4 ) int -> rdi "Inlining Arg"
;* V65 tmp58 [V65 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V66 tmp59 [V66,T50] ( 2, 2 ) byref -> rsi single-def "Inlining Arg"
; V67 tmp60 [V67,T58] ( 2, 2 ) int -> rax "Inlining Arg"
;* V68 tmp61 [V68,T74] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V69 tmp62 [V69 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V70 tmp63 [V70 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V71 tmp64 [V71 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V72 tmp65 [V72,T44] ( 5, 2.50) ref -> rax class-hnd "Inline return value spill temp" <System.String[]>
+; V72 tmp65 [V72,T44] ( 4, 2 ) ref -> rax class-hnd "Inline return value spill temp" <System.String[]>
; V73 tmp66 [V73,T40] ( 3, 3 ) ref -> [rbp-0x88] class-hnd exact spill-single-def "dup spill" <System.String[]>
; V74 tmp67 [V74,T41] ( 3, 3 ) byref -> rdi single-def "Inlining Arg"
;* V75 tmp68 [V75 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
;* V76 tmp69 [V76 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
; V77 tmp70 [V77,T35] ( 4, 4 ) long -> rdx "Inlining Arg"
;* V78 tmp71 [V78 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[System.String]>
;* V79 tmp72 [V79 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
;* V80 tmp73 [V80 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V81 tmp74 [V81 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
; V82 tmp75 [V82,T25] ( 7, 7 ) ref -> [rbp-0x90] class-hnd exact spill-single-def "Inlining Arg" <System.String>
;* V83 tmp76 [V83 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V84 tmp77 [V84,T36] ( 4, 4 ) int -> rdx "Inlining Arg"
;* V85 tmp78 [V85 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V86 tmp79 [V86,T51] ( 2, 2 ) byref -> rdi single-def "Inlining Arg"
; V87 tmp80 [V87,T59] ( 2, 2 ) int -> rsi "Inlining Arg"
;* V88 tmp81 [V88,T75] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V89 tmp82 [V89 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V90 tmp83 [V90 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V91 tmp84 [V91 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V92 tmp85 [V92 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
; V93 tmp86 [V93,T52] ( 2, 2 ) ref -> [rbp-0x98] class-hnd exact spill-single-def "Inlining Arg" <System.String>
; V94 tmp87 [V94,T42] ( 3, 3 ) ref -> rdi class-hnd exact single-def "dup spill" <System.Net.Http.HttpConnectionPool>
; V95 tmp88 [V95,T65] ( 2, 1 ) ref -> [rbp-0xA0] spill-single-def
;* V96 tmp89 [V96 ] ( 0, 0 ) ref -> zero-ref single-def
;* V97 tmp90 [V97 ] ( 0, 0 ) ref -> zero-ref single-def
; V98 tmp91 [V98,T62] ( 3, 1.50) int -> [rbp-0x54]
; V99 tmp92 [V99,T60] ( 2, 2 ) int -> rcx "Inlining Arg"
;* V100 tmp93 [V100 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.Span`1[ubyte]>
; V101 tmp94 [V101,T00] ( 4, 40 ) ref -> rsi class-hnd "Inlining Arg" <ubyte[]>
; V102 tmp95 [V102,T02] ( 5, 32 ) int -> rdi "Inlining Arg"
;* V103 tmp96 [V103 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V104 tmp97 [V104 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
; V105 tmp98 [V105,T17] ( 2, 8 ) byref -> rdx "Inlining Arg"
; V106 tmp99 [V106,T20] ( 2, 8 ) int -> rcx "Inlining Arg"
;* V107 tmp100 [V107,T43] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V108 tmp101 [V108 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
; V109 tmp102 [V109 ] ( 3, 9 ) int -> [rbp-0x60] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
;* V110 tmp103 [V110 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
; V111 tmp104 [V111 ] ( 2, 5 ) int -> [rbp-0x68] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
;* V112 tmp105 [V112 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
;* V113 tmp106 [V113 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
; V114 tmp107 [V114,T09] ( 2, 16 ) byref -> rsi "Inlining Arg"
; V115 tmp108 [V115,T11] ( 2, 16 ) int -> rdx "Inlining Arg"
; V116 tmp109 [V116,T03] ( 4, 32 ) int -> rdi "Inlining Arg"
;* V117 tmp110 [V117 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
; V118 tmp111 [V118,T10] ( 2, 16 ) byref -> r8 "Inlining Arg"
; V119 tmp112 [V119,T12] ( 2, 16 ) int -> r9 "Inlining Arg"
;* V120 tmp113 [V120 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V121 tmp114 [V121,T08] ( 4, 6 ) byref -> r14 single-def "field V02._reference (fldOffset=0x0)" P-INDEP
; V122 tmp115 [V122,T07] ( 5, 6.50) int -> r15 single-def "field V02._length (fldOffset=0x8)" P-INDEP
;* V123 tmp116 [V123,T23] ( 0, 0 ) byref -> zero-ref "field V08._reference (fldOffset=0x0)" P-INDEP
;* V124 tmp117 [V124,T24] ( 0, 0 ) int -> zero-ref "field V08._length (fldOffset=0x8)" P-INDEP
;* V125 tmp118 [V125 ] ( 0, 0 ) byref -> zero-ref "field V10._reference (fldOffset=0x0)" P-INDEP
;* V126 tmp119 [V126 ] ( 0, 0 ) int -> zero-ref "field V10._length (fldOffset=0x8)" P-INDEP
; V127 tmp120 [V127,T61] ( 3, 1.50) byref -> rdi "field V16._reference (fldOffset=0x0)" P-INDEP
; V128 tmp121 [V128,T63] ( 3, 1.50) int -> rsi "field V16._length (fldOffset=0x8)" P-INDEP
;* V129 tmp122 [V129 ] ( 0, 0 ) byref -> zero-ref "field V17._reference (fldOffset=0x0)" P-INDEP
;* V130 tmp123 [V130 ] ( 0, 0 ) int -> zero-ref "field V17._length (fldOffset=0x8)" P-INDEP
;* V131 tmp124 [V131 ] ( 0, 0 ) byref -> zero-ref single-def "field V19._reference (fldOffset=0x0)" P-INDEP
;* V132 tmp125 [V132 ] ( 0, 0 ) int -> zero-ref "field V19._length (fldOffset=0x8)" P-INDEP
;* V133 tmp126 [V133 ] ( 0, 0 ) byref -> zero-ref single-def "field V23._reference (fldOffset=0x0)" P-INDEP
;* V134 tmp127 [V134 ] ( 0, 0 ) int -> zero-ref "field V23._length (fldOffset=0x8)" P-INDEP
;* V135 tmp128 [V135 ] ( 0, 0 ) byref -> zero-ref "field V26._reference (fldOffset=0x0)" P-INDEP
;* V136 tmp129 [V136 ] ( 0, 0 ) int -> zero-ref "field V26._length (fldOffset=0x8)" P-INDEP
;* V137 tmp130 [V137 ] ( 0, 0 ) byref -> zero-ref single-def "field V28._reference (fldOffset=0x0)" P-INDEP
;* V138 tmp131 [V138 ] ( 0, 0 ) int -> zero-ref "field V28._length (fldOffset=0x8)" P-INDEP
;* V139 tmp132 [V139 ] ( 0, 0 ) byref -> zero-ref single-def "field V32._reference (fldOffset=0x0)" P-INDEP
;* V140 tmp133 [V140 ] ( 0, 0 ) int -> zero-ref "field V32._length (fldOffset=0x8)" P-INDEP
;* V141 tmp134 [V141 ] ( 0, 0 ) byref -> zero-ref "field V35._reference (fldOffset=0x0)" P-INDEP
;* V142 tmp135 [V142 ] ( 0, 0 ) int -> zero-ref "field V35._length (fldOffset=0x8)" P-INDEP
;* V143 tmp136 [V143 ] ( 0, 0 ) byref -> zero-ref single-def "field V37._reference (fldOffset=0x0)" P-INDEP
;* V144 tmp137 [V144 ] ( 0, 0 ) int -> zero-ref "field V37._length (fldOffset=0x8)" P-INDEP
;* V145 tmp138 [V145 ] ( 0, 0 ) byref -> zero-ref single-def "field V41._reference (fldOffset=0x0)" P-INDEP
;* V146 tmp139 [V146 ] ( 0, 0 ) int -> zero-ref "field V41._length (fldOffset=0x8)" P-INDEP
;* V147 tmp140 [V147 ] ( 0, 0 ) byref -> zero-ref "field V45._reference (fldOffset=0x0)" P-INDEP
;* V148 tmp141 [V148 ] ( 0, 0 ) int -> zero-ref "field V45._length (fldOffset=0x8)" P-INDEP
;* V149 tmp142 [V149 ] ( 0, 0 ) byref -> zero-ref single-def "field V47._reference (fldOffset=0x0)" P-INDEP
;* V150 tmp143 [V150 ] ( 0, 0 ) int -> zero-ref "field V47._length (fldOffset=0x8)" P-INDEP
;* V151 tmp144 [V151 ] ( 0, 0 ) byref -> zero-ref single-def "field V51._reference (fldOffset=0x0)" P-INDEP
;* V152 tmp145 [V152 ] ( 0, 0 ) int -> zero-ref "field V51._length (fldOffset=0x8)" P-INDEP
;* V153 tmp146 [V153 ] ( 0, 0 ) byref -> zero-ref "field V54._reference (fldOffset=0x0)" P-INDEP
;* V154 tmp147 [V154 ] ( 0, 0 ) int -> zero-ref "field V54._length (fldOffset=0x8)" P-INDEP
;* V155 tmp148 [V155 ] ( 0, 0 ) byref -> zero-ref single-def "field V56._reference (fldOffset=0x0)" P-INDEP
;* V156 tmp149 [V156 ] ( 0, 0 ) int -> zero-ref "field V56._length (fldOffset=0x8)" P-INDEP
;* V157 tmp150 [V157 ] ( 0, 0 ) byref -> zero-ref single-def "field V60._reference (fldOffset=0x0)" P-INDEP
;* V158 tmp151 [V158 ] ( 0, 0 ) int -> zero-ref "field V60._length (fldOffset=0x8)" P-INDEP
;* V159 tmp152 [V159 ] ( 0, 0 ) byref -> zero-ref "field V63._reference (fldOffset=0x0)" P-INDEP
;* V160 tmp153 [V160 ] ( 0, 0 ) int -> zero-ref "field V63._length (fldOffset=0x8)" P-INDEP
;* V161 tmp154 [V161 ] ( 0, 0 ) byref -> zero-ref single-def "field V65._reference (fldOffset=0x0)" P-INDEP
;* V162 tmp155 [V162 ] ( 0, 0 ) int -> zero-ref "field V65._length (fldOffset=0x8)" P-INDEP
;* V163 tmp156 [V163 ] ( 0, 0 ) byref -> zero-ref single-def "field V69._reference (fldOffset=0x0)" P-INDEP
;* V164 tmp157 [V164 ] ( 0, 0 ) int -> zero-ref "field V69._length (fldOffset=0x8)" P-INDEP
; V165 tmp158 [V165,T66] ( 2, 1 ) byref -> rdx single-def "field V78._reference (fldOffset=0x0)" P-INDEP
; V166 tmp159 [V166,T76] ( 2, 1 ) int -> rcx "field V78._length (fldOffset=0x8)" P-INDEP
; V167 tmp160 [V167,T67] ( 2, 1 ) byref -> rdi single-def "field V79._reference (fldOffset=0x0)" P-INDEP
;* V168 tmp161 [V168,T77] ( 0, 0 ) int -> zero-ref "field V79._length (fldOffset=0x8)" P-INDEP
; V169 tmp162 [V169,T68] ( 2, 1 ) byref -> rdi single-def "field V80._reference (fldOffset=0x0)" P-INDEP
;* V170 tmp163 [V170,T78] ( 0, 0 ) int -> zero-ref "field V80._length (fldOffset=0x8)" P-INDEP
;* V171 tmp164 [V171 ] ( 0, 0 ) byref -> zero-ref "field V83._reference (fldOffset=0x0)" P-INDEP
;* V172 tmp165 [V172 ] ( 0, 0 ) int -> zero-ref "field V83._length (fldOffset=0x8)" P-INDEP
;* V173 tmp166 [V173 ] ( 0, 0 ) byref -> zero-ref single-def "field V85._reference (fldOffset=0x0)" P-INDEP
;* V174 tmp167 [V174 ] ( 0, 0 ) int -> zero-ref "field V85._length (fldOffset=0x8)" P-INDEP
;* V175 tmp168 [V175 ] ( 0, 0 ) byref -> zero-ref single-def "field V89._reference (fldOffset=0x0)" P-INDEP
;* V176 tmp169 [V176 ] ( 0, 0 ) int -> zero-ref "field V89._length (fldOffset=0x8)" P-INDEP
; V177 tmp170 [V177,T13] ( 3, 12 ) byref -> rdx "field V100._reference (fldOffset=0x0)" P-INDEP
; V178 tmp171 [V178,T14] ( 3, 12 ) int -> rcx "field V100._length (fldOffset=0x8)" P-INDEP
; V179 tmp172 [V179,T38] ( 2, 4 ) byref -> rdx "field V103._reference (fldOffset=0x0)" P-INDEP
; V180 tmp173 [V180,T39] ( 2, 4 ) int -> rcx "field V103._length (fldOffset=0x8)" P-INDEP
;* V181 tmp174 [V181 ] ( 0, 0 ) byref -> zero-ref "field V104._reference (fldOffset=0x0)" P-INDEP
;* V182 tmp175 [V182 ] ( 0, 0 ) int -> zero-ref "field V104._length (fldOffset=0x8)" P-INDEP
; V183 tmp176 [V183,T06] ( 4, 20 ) byref -> [rbp-0xA8] spill-single-def "field V108._reference (fldOffset=0x0)" P-INDEP
; V184 tmp177 [V184,T01] ( 6, 32 ) int -> [rbp-0x6C] spill-single-def "field V108._length (fldOffset=0x8)" P-INDEP
;* V185 tmp178 [V185 ] ( 0, 0 ) byref -> zero-ref "field V110._reference (fldOffset=0x0)" P-INDEP
;* V186 tmp179 [V186 ] ( 0, 0 ) int -> zero-ref "field V110._length (fldOffset=0x8)" P-INDEP
;* V187 tmp180 [V187 ] ( 0, 0 ) byref -> zero-ref "field V112._reference (fldOffset=0x0)" P-INDEP
;* V188 tmp181 [V188 ] ( 0, 0 ) int -> zero-ref "field V112._length (fldOffset=0x8)" P-INDEP
; V189 tmp182 [V189,T18] ( 2, 8 ) byref -> rsi "field V113._reference (fldOffset=0x0)" P-INDEP
; V190 tmp183 [V190,T21] ( 2, 8 ) int -> rdx "field V113._length (fldOffset=0x8)" P-INDEP
; V191 tmp184 [V191,T19] ( 2, 8 ) byref -> r8 "field V117._reference (fldOffset=0x0)" P-INDEP
; V192 tmp185 [V192,T22] ( 2, 8 ) int -> r9 "field V117._length (fldOffset=0x8)" P-INDEP
;* V193 cse0 [V193,T64] ( 0, 0 ) byref -> zero-ref hoist "CSE #18: moderate"
; V194 cse1 [V194,T26] ( 3, 6 ) int -> rcx "CSE #19: moderate"
;
; Lcl frame size = 136
G_M15535_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 136
lea rbp, [rsp+0xB0]
vxorps xmm8, xmm8, xmm8
vmovdqu ymmword ptr [rbp-0x50], ymm8
xor eax, eax
mov qword ptr [rbp-0x30], rax
mov gword ptr [rbp-0x78], rdi
mov r13, rsi
mov r14, rdx
mov r15d, ecx
mov r12, r8
mov rbx, r9
;; size=60 bbWeight=1 PerfScore 12.58
G_M15535_IG02:
mov rdi, 0xD1FFAB1E ; const ptr
mov rdi, gword ptr [rdi]
cmp byte ptr [rdi+0x9D], 0
je G_M15535_IG26
;; size=26 bbWeight=1 PerfScore 6.25
G_M15535_IG03:
xor rdi, rdi
mov gword ptr [rbp-0x50], rdi
mov rdi, 0xD1FFAB1E ; const ptr
mov rdi, gword ptr [rdi]
mov esi, 256
mov rcx, 0xD1FFAB1E ; code for System.Buffers.SharedArrayPool`1[ushort]:Rent(int):ushort[]:this
call [rcx]System.Buffers.SharedArrayPool`1[ushort]:Rent(int):ushort[]:this
mov gword ptr [rbp-0x48], rax
test rax, rax
jne SHORT G_M15535_IG04
xor rdi, rdi
xor esi, esi
jmp SHORT G_M15535_IG05
;; size=51 bbWeight=0.50 PerfScore 5.88
G_M15535_IG04:
lea rdi, bword ptr [rax+0x10]
mov esi, dword ptr [rax+0x08]
;; size=7 bbWeight=0.50 PerfScore 1.25
G_M15535_IG05:
mov bword ptr [rbp-0x38], rdi
mov dword ptr [rbp-0x30], esi
xor edi, edi
mov dword ptr [rbp-0x40], edi
mov byte ptr [rbp-0x3C], 0
cmp byte ptr [rbp-0x3C], 0
jne SHORT G_M15535_IG06
mov edi, dword ptr [rbp-0x40]
cmp edi, dword ptr [rbp-0x30]
- ja G_M15535_IG38
+ ja G_M15535_IG37
mov rsi, bword ptr [rbp-0x38]
mov eax, edi
lea rsi, bword ptr [rsi+2*rax]
mov eax, dword ptr [rbp-0x30]
sub eax, edi
cmp eax, 4
jb SHORT G_M15535_IG06
mov rdi, 0xD1FFAB1E
mov rax, qword ptr [rdi]
mov qword ptr [rsi], rax
mov edi, dword ptr [rbp-0x40]
add edi, 4
mov dword ptr [rbp-0x40], edi
jmp SHORT G_M15535_IG07
;; size=81 bbWeight=0.50 PerfScore 11.50
G_M15535_IG06:
lea rdi, [rbp-0x50]
mov rsi, 0xD1FFAB1E ; 'name'
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormattedSlow(System.String):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormattedSlow(System.String):this
;; size=26 bbWeight=0.50 PerfScore 2.00
G_M15535_IG07:
mov edi, dword ptr [rbp-0x40]
cmp edi, dword ptr [rbp-0x30]
- ja G_M15535_IG38
+ ja G_M15535_IG37
mov rsi, bword ptr [rbp-0x38]
mov eax, edi
lea rsi, bword ptr [rsi+2*rax]
mov eax, dword ptr [rbp-0x30]
sub eax, edi
je SHORT G_M15535_IG08
mov rdi, 0xD1FFAB1E
movzx rax, word ptr [rdi]
mov word ptr [rsi], ax
mov edi, dword ptr [rbp-0x40]
inc edi
mov dword ptr [rbp-0x40], edi
jmp SHORT G_M15535_IG09
;; size=55 bbWeight=0.50 PerfScore 7.75
G_M15535_IG08:
lea rdi, [rbp-0x50]
mov rsi, 0xD1FFAB1E ; '='
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
;; size=26 bbWeight=0.50 PerfScore 2.00
G_M15535_IG09:
cmp byte ptr [rbp-0x3C], 0
jne SHORT G_M15535_IG10
test r13, r13
je SHORT G_M15535_IG10
mov esi, dword ptr [rbp-0x40]
cmp esi, dword ptr [rbp-0x30]
- ja G_M15535_IG38
+ ja G_M15535_IG37
mov rdx, bword ptr [rbp-0x38]
mov edi, esi
lea rdi, bword ptr [rdx+2*rdi]
mov edx, dword ptr [rbp-0x30]
sub edx, esi
cmp dword ptr [r13+0x08], edx
ja SHORT G_M15535_IG10
lea rsi, bword ptr [r13+0x0C]
mov edx, dword ptr [r13+0x08]
add rdx, rdx
mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
call [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
mov edi, dword ptr [rbp-0x40]
add edi, dword ptr [r13+0x08]
mov dword ptr [rbp-0x40], edi
jmp SHORT G_M15535_IG11
;; size=79 bbWeight=0.50 PerfScore 14.12
G_M15535_IG10:
lea rdi, [rbp-0x50]
mov rsi, r13
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormattedSlow(System.String):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormattedSlow(System.String):this
;; size=19 bbWeight=0.50 PerfScore 2.00
G_M15535_IG11:
mov edi, dword ptr [rbp-0x40]
cmp edi, dword ptr [rbp-0x30]
- ja G_M15535_IG38
+ ja G_M15535_IG37
mov rsi, bword ptr [rbp-0x38]
mov eax, edi
lea rsi, bword ptr [rsi+2*rax]
mov eax, dword ptr [rbp-0x30]
sub eax, edi
cmp eax, 2
jb SHORT G_M15535_IG12
mov rdi, 0xD1FFAB1E
mov eax, dword ptr [rdi]
mov dword ptr [rsi], eax
mov edi, dword ptr [rbp-0x40]
add edi, 2
mov dword ptr [rbp-0x40], edi
jmp SHORT G_M15535_IG13
;; size=57 bbWeight=0.50 PerfScore 7.88
G_M15535_IG12:
lea rdi, [rbp-0x50]
mov rsi, 0xD1FFAB1E ; ', '
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
;; size=26 bbWeight=0.50 PerfScore 2.00
G_M15535_IG13:
cmp byte ptr [rbp-0x3C], 0
jne SHORT G_M15535_IG14
mov edi, dword ptr [rbp-0x40]
cmp edi, dword ptr [rbp-0x30]
- ja G_M15535_IG38
+ ja G_M15535_IG37
mov rsi, bword ptr [rbp-0x38]
mov eax, edi
lea rsi, bword ptr [rsi+2*rax]
mov eax, dword ptr [rbp-0x30]
sub eax, edi
cmp eax, 6
jb SHORT G_M15535_IG14
mov rdi, 0xD1FFAB1E
mov rax, qword ptr [rdi]
mov rcx, qword ptr [rdi+0x04]
mov qword ptr [rsi], rax
mov qword ptr [rsi+0x04], rcx
mov edi, dword ptr [rbp-0x40]
add edi, 6
mov dword ptr [rbp-0x40], edi
jmp SHORT G_M15535_IG15
;; size=73 bbWeight=0.50 PerfScore 10.88
G_M15535_IG14:
lea rdi, [rbp-0x50]
mov rsi, 0xD1FFAB1E ; 'values'
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormattedSlow(System.String):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormattedSlow(System.String):this
;; size=26 bbWeight=0.50 PerfScore 2.00
G_M15535_IG15:
mov edi, dword ptr [rbp-0x40]
cmp edi, dword ptr [rbp-0x30]
- ja G_M15535_IG38
+ ja G_M15535_IG37
mov rsi, bword ptr [rbp-0x38]
mov eax, edi
lea rsi, bword ptr [rsi+2*rax]
mov eax, dword ptr [rbp-0x30]
sub eax, edi
je SHORT G_M15535_IG16
mov rdi, 0xD1FFAB1E
movzx rax, word ptr [rdi]
mov word ptr [rsi], ax
mov edi, dword ptr [rbp-0x40]
inc edi
mov dword ptr [rbp-0x40], edi
jmp SHORT G_M15535_IG17
;; size=55 bbWeight=0.50 PerfScore 7.75
G_M15535_IG16:
lea rdi, [rbp-0x50]
mov rsi, 0xD1FFAB1E ; '='
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
;; size=26 bbWeight=0.50 PerfScore 2.00
G_M15535_IG17:
test r15d, r15d
jne SHORT G_M15535_IG18
mov rsi, 0xD1FFAB1E ; const ptr
mov rax, gword ptr [rsi]
jmp SHORT G_M15535_IG21
;; size=20 bbWeight=0.50 PerfScore 2.75
G_M15535_IG18:
mov esi, r15d
mov rdi, 0xD1FFAB1E ; System.String[]
call CORINFO_HELP_NEWARR_1_OBJ
mov gword ptr [rbp-0x88], rax
lea rdi, bword ptr [rax+0x10]
mov edx, r15d
shl rdx, 3
cmp rdx, 0x4000
ja SHORT G_M15535_IG19
mov rsi, r14
call System.Buffer:__BulkMoveWithWriteBarrier(byref,byref,ulong)
jmp SHORT G_M15535_IG20
;; size=55 bbWeight=0.50 PerfScore 4.12
G_M15535_IG19:
mov rsi, r14
mov rcx, 0xD1FFAB1E ; code for System.Buffer:_BulkMoveWithWriteBarrier(byref,byref,ulong)
call [rcx]System.Buffer:_BulkMoveWithWriteBarrier(byref,byref,ulong)
;; size=15 bbWeight=0.50 PerfScore 1.75
G_M15535_IG20:
mov rax, gword ptr [rbp-0x88]
;; size=7 bbWeight=0.50 PerfScore 0.50
G_M15535_IG21:
- test rax, rax
- je G_M15535_IG37
mov rdi, 0xD1FFAB1E
lea rdx, bword ptr [rax+0x10]
mov ecx, dword ptr [rax+0x08]
mov esi, 2
mov rax, 0xD1FFAB1E ; code for System.String:JoinCore(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[System.String]):System.String
call [rax]System.String:JoinCore(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[System.String]):System.String
mov gword ptr [rbp-0x90], rax
cmp byte ptr [rbp-0x3C], 0
jne SHORT G_M15535_IG22
test rax, rax
je SHORT G_M15535_IG22
mov edx, dword ptr [rbp-0x40]
cmp edx, dword ptr [rbp-0x30]
- ja G_M15535_IG38
+ ja G_M15535_IG37
mov rsi, bword ptr [rbp-0x38]
mov edi, edx
lea rdi, bword ptr [rsi+2*rdi]
mov esi, dword ptr [rbp-0x30]
sub esi, edx
cmp dword ptr [rax+0x08], esi
ja SHORT G_M15535_IG22
mov edx, dword ptr [rax+0x08]
add rdx, rdx
lea rsi, bword ptr [rax+0x0C]
mov rcx, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
call [rcx]System.SpanHelpers:Memmove(byref,byref,ulong)
mov edi, dword ptr [rbp-0x40]
mov rax, gword ptr [rbp-0x90]
add edi, dword ptr [rax+0x08]
mov dword ptr [rbp-0x40], edi
jmp SHORT G_M15535_IG23
- ;; size=133 bbWeight=0.50 PerfScore 18.88
+ ;; size=124 bbWeight=0.50 PerfScore 18.25
G_M15535_IG22:
lea rdi, [rbp-0x50]
mov rsi, rax
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormattedSlow(System.String):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormattedSlow(System.String):this
;; size=19 bbWeight=0.50 PerfScore 2.00
G_M15535_IG23:
lea rdi, [rbp-0x50]
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:ToStringAndClear():System.String:this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:ToStringAndClear():System.String:this
mov gword ptr [rbp-0x98], rax
mov rcx, gword ptr [rbp-0x78]
mov rdi, gword ptr [rcx+0x08]
mov rdx, 0xD1FFAB1E ; const ptr
mov rdx, gword ptr [rdx]
mov gword ptr [rbp-0xA0], rdx
test rdi, rdi
jne SHORT G_M15535_IG24
mov rcx, gword ptr [rbp-0x78]
xor esi, esi
mov dword ptr [rbp-0x54], esi
jmp SHORT G_M15535_IG25
;; size=67 bbWeight=0.50 PerfScore 8.25
G_M15535_IG24:
mov rsi, 0xD1FFAB1E
mov rsi, qword ptr [rsi]
call [rsi+0x18]System.Object:GetHashCode():int:this
mov dword ptr [rbp-0x54], eax
mov rcx, gword ptr [rbp-0x78]
;; size=23 bbWeight=0.50 PerfScore 3.62
G_M15535_IG25:
mov rdi, rcx
call System.Runtime.CompilerServices.RuntimeHelpers:GetHashCode(System.Object):int
mov ecx, eax
mov rdi, gword ptr [rbp-0x98]
mov gword ptr [rsp], rdi
mov rdi, gword ptr [rbp-0xA0]
mov edx, dword ptr [rbp-0x54]
mov esi, 8
xor r8d, r8d
mov r9, 0xD1FFAB1E ; 'WriteLiteralHeader'
mov rax, 0xD1FFAB1E ; code for System.Net.NetEventSource:WriteEvent(int,int,int,int,System.String,System.String):this
call [rax]System.Net.NetEventSource:WriteEvent(int,int,int,int,System.String,System.String):this
;; size=61 bbWeight=0.50 PerfScore 4.75
G_M15535_IG26:
mov rsi, 0xD1FFAB1E ; global ptr
test byte ptr [rsi], 1
jne SHORT G_M15535_IG28
jmp G_M15535_IG36
;; size=20 bbWeight=1.50 PerfScore 9.38
G_M15535_IG27:
mov rsi, gword ptr [rbx]
mov esi, dword ptr [rsi+0x08]
sub esi, dword ptr [rbx+0x0C]
inc esi
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Net.ArrayBuffer:EnsureAvailableSpaceCore(int):this
call [rax]System.Net.ArrayBuffer:EnsureAvailableSpaceCore(int):this
;; size=26 bbWeight=2 PerfScore 21.50
G_M15535_IG28:
mov rsi, 0xD1FFAB1E ; data for System.Net.Http.Headers.HttpHeaderParser:DefaultSeparatorBytes
mov rax, gword ptr [rsi]
mov gword ptr [rbp-0x80], rax
mov rsi, gword ptr [rbx]
mov edi, dword ptr [rbx+0x0C]
test rsi, rsi
jne SHORT G_M15535_IG30
;; size=28 bbWeight=8 PerfScore 68.00
G_M15535_IG29:
mov rax, gword ptr [rbp-0x80]
test edi, edi
je SHORT G_M15535_IG31
- jmp G_M15535_IG38
+ jmp G_M15535_IG37
;; size=13 bbWeight=2 PerfScore 8.50
G_M15535_IG30:
mov rax, gword ptr [rbp-0x80]
mov ecx, dword ptr [rsi+0x08]
cmp ecx, edi
- jb G_M15535_IG38
+ jb G_M15535_IG37
mov edx, edi
lea rdx, bword ptr [rsi+rdx+0x10]
sub ecx, edi
jmp SHORT G_M15535_IG32
;; size=26 bbWeight=2 PerfScore 15.50
G_M15535_IG31:
xor rdx, rdx
xor ecx, ecx
;; size=4 bbWeight=2 PerfScore 1.00
G_M15535_IG32:
mov r8, rdx
mov bword ptr [rbp-0xA8], r8
mov r9d, ecx
mov dword ptr [rbp-0x6C], r9d
cmp r9d, 3
jb SHORT G_M15535_IG27
;; size=23 bbWeight=8 PerfScore 30.00
G_M15535_IG33:
mov byte ptr [r8], 0
test r9d, r9d
- je G_M15535_IG38
+ je G_M15535_IG37
lea rsi, bword ptr [r8+0x01]
lea edx, [r9-0x01]
lea rcx, [rbp-0x60]
mov rdi, r13
mov r10, 0xD1FFAB1E ; code for System.Net.Http.HPack.HPackEncoder:EncodeLiteralHeaderName(System.String,System.Span`1[ubyte],byref):ubyte
call [r10]System.Net.Http.HPack.HPackEncoder:EncodeLiteralHeaderName(System.String,System.Span`1[ubyte],byref):ubyte
test eax, eax
je G_M15535_IG27
mov rax, gword ptr [rbp-0x80]
mov r8, bword ptr [rbp-0xA8]
mov r9d, dword ptr [rbp-0x6C]
mov edi, dword ptr [rbp-0x60]
inc edi
cmp edi, r9d
- ja SHORT G_M15535_IG38
+ ja SHORT G_M15535_IG37
mov esi, edi
add r8, rsi
sub r9d, edi
lea rdi, [rbp-0x68]
mov qword ptr [rsp], rdi
mov rdi, r14
mov esi, r15d
mov rdx, rax
mov rcx, r12
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.HPackEncoder:EncodeStringLiterals(System.ReadOnlySpan`1[System.String],ubyte[],System.Text.Encoding,System.Span`1[ubyte],byref):ubyte
call [rax]System.Net.Http.HPack.HPackEncoder:EncodeStringLiterals(System.ReadOnlySpan`1[System.String],ubyte[],System.Text.Encoding,System.Span`1[ubyte],byref):ubyte
test eax, eax
je G_M15535_IG27
;; size=122 bbWeight=4 PerfScore 87.00
G_M15535_IG34:
mov edi, dword ptr [rbp-0x60]
mov eax, dword ptr [rbp-0x68]
lea edi, [rdi+rax+0x01]
add dword ptr [rbx+0x0C], edi
;; size=13 bbWeight=1 PerfScore 6.00
G_M15535_IG35:
add rsp, 136
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=18 bbWeight=1 PerfScore 4.25
G_M15535_IG36:
mov rdi, 0xD1FFAB1E ; System.Net.Http.Headers.HttpHeaderParser
call CORINFO_HELP_GET_GCSTATIC_BASE
jmp G_M15535_IG28
;; size=20 bbWeight=0 PerfScore 0.00
G_M15535_IG37:
- mov edi, 7
- mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentNullException(int)
- call [rax]System.ThrowHelper:ThrowArgumentNullException(int)
- int3
- ;; size=18 bbWeight=0 PerfScore 0.00
-G_M15535_IG38:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1437, prolog size 41, PerfScore 395.58, instruction count 359, allocated bytes for code 1437 (MethodHash=091dc350) for method System.Net.Http.Http2Connection:WriteLiteralHeader(System.String,System.ReadOnlySpan`1[System.String],System.Text.Encoding,byref):this (FullOpts)
+; Total bytes of code 1410, prolog size 41, PerfScore 394.96, instruction count 353, allocated bytes for code 1410 (MethodHash=091dc350) for method System.Net.Http.Http2Connection:WriteLiteralHeader(System.String,System.ReadOnlySpan`1[System.String],System.Text.Encoding,byref):this (FullOpts)
-25 (-0.84 % of base) - Microsoft.Extensions.DependencyInjection.SocketsHttpHandlerBuilderExtensions+SocketsHttpHandlerConfiguration:PrintMembers(System.Text.StringBuilder):ubyte:this
; Assembly listing for method Microsoft.Extensions.DependencyInjection.SocketsHttpHandlerBuilderExtensions+SocketsHttpHandlerConfiguration:PrintMembers(System.Text.StringBuilder):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; 69 single block inlinees; 100 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T01] ( 40, 40 ) byref -> r15 this single-def
-; V01 arg1 [V01,T00] ( 97, 68.50) ref -> rbx class-hnd single-def <System.Text.StringBuilder>
+; V01 arg1 [V01,T00] ( 97, 71 ) ref -> rbx class-hnd single-def <System.Text.StringBuilder>
;* V02 loc0 [V02 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.Nullable`1[System.TimeSpan]>
;* V03 loc1 [V03 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.Nullable`1[ubyte]>
;* V04 loc2 [V04 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.Nullable`1[int]>
;* V05 loc3 [V05 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.Nullable`1[int]>
;* V06 loc4 [V06 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.Nullable`1[int]>
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V08 tmp1 [V08,T67] ( 3, 2.50) ref -> rdi class-hnd single-def "Inline stloc first use temp" <ushort[]>
-; V09 tmp2 [V09,T27] ( 4, 3 ) int -> rdx single-def "Inline stloc first use temp"
+; V09 tmp2 [V09,T32] ( 4, 3 ) int -> rdx single-def "Inline stloc first use temp"
; V10 tmp3 [V10,T08] ( 3, 4 ) byref -> rsi single-def "Inlining Arg"
;* V11 tmp4 [V11 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
-; V12 tmp5 [V12,T48] ( 5, 2.50) ref -> rsi class-hnd "Inline return value spill temp" <System.String>
+; V12 tmp5 [V12,T53] ( 5, 2.50) ref -> rsi class-hnd "Inline return value spill temp" <System.String>
; V13 tmp6 [V13,T68] ( 3, 2.50) ref -> rdi class-hnd single-def "Inline stloc first use temp" <ushort[]>
-; V14 tmp7 [V14,T28] ( 4, 3 ) int -> rdx single-def "Inline stloc first use temp"
+; V14 tmp7 [V14,T33] ( 4, 3 ) int -> rdx single-def "Inline stloc first use temp"
; V15 tmp8 [V15,T09] ( 3, 4 ) byref -> rsi single-def "Inlining Arg"
;* V16 tmp9 [V16 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
-; V17 tmp10 [V17,T49] ( 5, 2.50) ref -> rsi class-hnd "Inline return value spill temp" <System.String>
+; V17 tmp10 [V17,T54] ( 5, 2.50) ref -> rsi class-hnd "Inline return value spill temp" <System.String>
; V18 tmp11 [V18,T69] ( 3, 2.50) ref -> rdi class-hnd single-def "Inline stloc first use temp" <ushort[]>
-; V19 tmp12 [V19,T29] ( 4, 3 ) int -> rdx single-def "Inline stloc first use temp"
+; V19 tmp12 [V19,T34] ( 4, 3 ) int -> rdx single-def "Inline stloc first use temp"
; V20 tmp13 [V20,T10] ( 3, 4 ) byref -> rsi single-def "Inlining Arg"
;* V21 tmp14 [V21 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
-; V22 tmp15 [V22,T50] ( 5, 2.50) ref -> rsi class-hnd "Inline return value spill temp" <System.String>
+; V22 tmp15 [V22,T27] ( 4, 3 ) ref -> rsi class-hnd "Inline return value spill temp" <System.String>
; V23 tmp16 [V23,T90] ( 2, 1 ) ref -> rsi class-hnd "Inline return value spill temp" <System.String>
; V24 tmp17 [V24,T70] ( 3, 2.50) ref -> rdi class-hnd single-def "Inline stloc first use temp" <ushort[]>
-; V25 tmp18 [V25,T30] ( 4, 3 ) int -> rdx single-def "Inline stloc first use temp"
+; V25 tmp18 [V25,T35] ( 4, 3 ) int -> rdx single-def "Inline stloc first use temp"
; V26 tmp19 [V26,T11] ( 3, 4 ) byref -> rsi single-def "Inlining Arg"
;* V27 tmp20 [V27 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
-; V28 tmp21 [V28,T51] ( 5, 2.50) ref -> rsi class-hnd "Inline return value spill temp" <System.String>
+; V28 tmp21 [V28,T55] ( 5, 2.50) ref -> rsi class-hnd "Inline return value spill temp" <System.String>
; V29 tmp22 [V29,T71] ( 3, 2.50) ref -> rdi class-hnd single-def "Inline stloc first use temp" <ushort[]>
-; V30 tmp23 [V30,T31] ( 4, 3 ) int -> rdx single-def "Inline stloc first use temp"
+; V30 tmp23 [V30,T36] ( 4, 3 ) int -> rdx single-def "Inline stloc first use temp"
; V31 tmp24 [V31,T12] ( 3, 4 ) byref -> rsi single-def "Inlining Arg"
;* V32 tmp25 [V32 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
-; V33 tmp26 [V33,T52] ( 5, 2.50) ref -> rsi class-hnd "Inline return value spill temp" <System.String>
+; V33 tmp26 [V33,T28] ( 4, 3 ) ref -> rsi class-hnd "Inline return value spill temp" <System.String>
; V34 tmp27 [V34,T91] ( 2, 1 ) ref -> rsi class-hnd "Inline return value spill temp" <System.String>
; V35 tmp28 [V35,T72] ( 3, 2.50) ref -> rdi class-hnd single-def "Inline stloc first use temp" <ushort[]>
-; V36 tmp29 [V36,T32] ( 4, 3 ) int -> rdx single-def "Inline stloc first use temp"
+; V36 tmp29 [V36,T37] ( 4, 3 ) int -> rdx single-def "Inline stloc first use temp"
; V37 tmp30 [V37,T13] ( 3, 4 ) byref -> rsi single-def "Inlining Arg"
;* V38 tmp31 [V38 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
-; V39 tmp32 [V39,T53] ( 5, 2.50) ref -> rsi class-hnd "Inline return value spill temp" <System.String>
+; V39 tmp32 [V39,T29] ( 4, 3 ) ref -> rsi class-hnd "Inline return value spill temp" <System.String>
; V40 tmp33 [V40,T92] ( 2, 1 ) ref -> rsi class-hnd "Inline return value spill temp" <System.String>
; V41 tmp34 [V41,T73] ( 3, 2.50) ref -> rdi class-hnd single-def "Inline stloc first use temp" <ushort[]>
-; V42 tmp35 [V42,T33] ( 4, 3 ) int -> rdx single-def "Inline stloc first use temp"
+; V42 tmp35 [V42,T38] ( 4, 3 ) int -> rdx single-def "Inline stloc first use temp"
; V43 tmp36 [V43,T14] ( 3, 4 ) byref -> rsi single-def "Inlining Arg"
;* V44 tmp37 [V44 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
-; V45 tmp38 [V45,T54] ( 5, 2.50) ref -> rsi class-hnd "Inline return value spill temp" <System.String>
+; V45 tmp38 [V45,T30] ( 4, 3 ) ref -> rsi class-hnd "Inline return value spill temp" <System.String>
; V46 tmp39 [V46,T93] ( 2, 1 ) ref -> rsi class-hnd "Inline return value spill temp" <System.String>
; V47 tmp40 [V47,T74] ( 3, 2.50) ref -> rdi class-hnd single-def "Inline stloc first use temp" <ushort[]>
-; V48 tmp41 [V48,T34] ( 4, 3 ) int -> rdx single-def "Inline stloc first use temp"
+; V48 tmp41 [V48,T39] ( 4, 3 ) int -> rdx single-def "Inline stloc first use temp"
; V49 tmp42 [V49,T15] ( 3, 4 ) byref -> rsi single-def "Inlining Arg"
;* V50 tmp43 [V50 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
-; V51 tmp44 [V51,T55] ( 5, 2.50) ref -> rsi class-hnd "Inline return value spill temp" <System.String>
+; V51 tmp44 [V51,T56] ( 5, 2.50) ref -> rsi class-hnd "Inline return value spill temp" <System.String>
; V52 tmp45 [V52,T75] ( 3, 2.50) ref -> rdi class-hnd single-def "Inline stloc first use temp" <ushort[]>
-; V53 tmp46 [V53,T35] ( 4, 3 ) int -> rdx single-def "Inline stloc first use temp"
+; V53 tmp46 [V53,T40] ( 4, 3 ) int -> rdx single-def "Inline stloc first use temp"
; V54 tmp47 [V54,T16] ( 3, 4 ) byref -> rsi single-def "Inlining Arg"
;* V55 tmp48 [V55 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
-; V56 tmp49 [V56,T56] ( 5, 2.50) ref -> rsi class-hnd "Inline return value spill temp" <System.String>
+; V56 tmp49 [V56,T57] ( 5, 2.50) ref -> rsi class-hnd "Inline return value spill temp" <System.String>
; V57 tmp50 [V57,T76] ( 3, 2.50) ref -> rdi class-hnd single-def "Inline stloc first use temp" <ushort[]>
-; V58 tmp51 [V58,T36] ( 4, 3 ) int -> rdx single-def "Inline stloc first use temp"
+; V58 tmp51 [V58,T41] ( 4, 3 ) int -> rdx single-def "Inline stloc first use temp"
; V59 tmp52 [V59,T17] ( 3, 4 ) byref -> rsi single-def "Inlining Arg"
;* V60 tmp53 [V60 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
-; V61 tmp54 [V61,T57] ( 5, 2.50) ref -> rsi class-hnd "Inline return value spill temp" <System.String>
+; V61 tmp54 [V61,T58] ( 5, 2.50) ref -> rsi class-hnd "Inline return value spill temp" <System.String>
; V62 tmp55 [V62,T77] ( 3, 2.50) ref -> rdi class-hnd single-def "Inline stloc first use temp" <ushort[]>
-; V63 tmp56 [V63,T37] ( 4, 3 ) int -> rdx single-def "Inline stloc first use temp"
+; V63 tmp56 [V63,T42] ( 4, 3 ) int -> rdx single-def "Inline stloc first use temp"
; V64 tmp57 [V64,T18] ( 3, 4 ) byref -> rsi single-def "Inlining Arg"
;* V65 tmp58 [V65 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
-; V66 tmp59 [V66,T58] ( 5, 2.50) ref -> rsi class-hnd "Inline return value spill temp" <System.String>
+; V66 tmp59 [V66,T59] ( 5, 2.50) ref -> rsi class-hnd "Inline return value spill temp" <System.String>
; V67 tmp60 [V67,T78] ( 3, 2.50) ref -> rdi class-hnd single-def "Inline stloc first use temp" <ushort[]>
-; V68 tmp61 [V68,T38] ( 4, 3 ) int -> rdx single-def "Inline stloc first use temp"
+; V68 tmp61 [V68,T43] ( 4, 3 ) int -> rdx single-def "Inline stloc first use temp"
; V69 tmp62 [V69,T19] ( 3, 4 ) byref -> rsi single-def "Inlining Arg"
;* V70 tmp63 [V70 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
-; V71 tmp64 [V71,T59] ( 5, 2.50) ref -> rsi class-hnd "Inline return value spill temp" <System.String>
+; V71 tmp64 [V71,T60] ( 5, 2.50) ref -> rsi class-hnd "Inline return value spill temp" <System.String>
; V72 tmp65 [V72,T79] ( 3, 2.50) ref -> rdi class-hnd single-def "Inline stloc first use temp" <ushort[]>
-; V73 tmp66 [V73,T39] ( 4, 3 ) int -> rdx single-def "Inline stloc first use temp"
+; V73 tmp66 [V73,T44] ( 4, 3 ) int -> rdx single-def "Inline stloc first use temp"
; V74 tmp67 [V74,T20] ( 3, 4 ) byref -> rsi single-def "Inlining Arg"
;* V75 tmp68 [V75 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
-; V76 tmp69 [V76,T60] ( 5, 2.50) ref -> rsi class-hnd "Inline return value spill temp" <System.String>
+; V76 tmp69 [V76,T31] ( 4, 3 ) ref -> rsi class-hnd "Inline return value spill temp" <System.String>
; V77 tmp70 [V77,T94] ( 2, 1 ) ref -> rsi class-hnd "Inline return value spill temp" <System.String>
; V78 tmp71 [V78,T80] ( 3, 2.50) ref -> rdi class-hnd single-def "Inline stloc first use temp" <ushort[]>
-; V79 tmp72 [V79,T40] ( 4, 3 ) int -> rdx single-def "Inline stloc first use temp"
+; V79 tmp72 [V79,T45] ( 4, 3 ) int -> rdx single-def "Inline stloc first use temp"
; V80 tmp73 [V80,T21] ( 3, 4 ) byref -> rsi single-def "Inlining Arg"
;* V81 tmp74 [V81 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
; V82 tmp75 [V82,T61] ( 5, 2.50) ref -> rsi class-hnd "Inline return value spill temp" <System.String>
-; V83 tmp76 [V83,T46] ( 3, 3 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" <System.Net.DecompressionMethods>
+; V83 tmp76 [V83,T51] ( 3, 3 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" <System.Net.DecompressionMethods>
; V84 tmp77 [V84,T81] ( 3, 2.50) ref -> rdi class-hnd single-def "Inline stloc first use temp" <ushort[]>
-; V85 tmp78 [V85,T41] ( 4, 3 ) int -> rdx single-def "Inline stloc first use temp"
+; V85 tmp78 [V85,T46] ( 4, 3 ) int -> rdx single-def "Inline stloc first use temp"
; V86 tmp79 [V86,T22] ( 3, 4 ) byref -> rsi single-def "Inlining Arg"
;* V87 tmp80 [V87 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
; V88 tmp81 [V88,T62] ( 5, 2.50) ref -> rsi class-hnd "Inline return value spill temp" <System.String>
; V89 tmp82 [V89,T82] ( 3, 2.50) ref -> rdi class-hnd single-def "Inline stloc first use temp" <ushort[]>
-; V90 tmp83 [V90,T42] ( 4, 3 ) int -> rdx single-def "Inline stloc first use temp"
+; V90 tmp83 [V90,T47] ( 4, 3 ) int -> rdx single-def "Inline stloc first use temp"
; V91 tmp84 [V91,T23] ( 3, 4 ) byref -> rsi single-def "Inlining Arg"
;* V92 tmp85 [V92 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
; V93 tmp86 [V93,T63] ( 5, 2.50) ref -> rsi class-hnd "Inline return value spill temp" <System.String>
; V94 tmp87 [V94,T83] ( 3, 2.50) ref -> rdi class-hnd single-def "Inline stloc first use temp" <ushort[]>
-; V95 tmp88 [V95,T43] ( 4, 3 ) int -> rdx single-def "Inline stloc first use temp"
+; V95 tmp88 [V95,T48] ( 4, 3 ) int -> rdx single-def "Inline stloc first use temp"
; V96 tmp89 [V96,T24] ( 3, 4 ) byref -> rsi single-def "Inlining Arg"
;* V97 tmp90 [V97 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
; V98 tmp91 [V98,T64] ( 5, 2.50) ref -> rsi class-hnd "Inline return value spill temp" <System.String>
; V99 tmp92 [V99,T84] ( 3, 2.50) ref -> rdi class-hnd single-def "Inline stloc first use temp" <ushort[]>
-; V100 tmp93 [V100,T44] ( 4, 3 ) int -> rdx single-def "Inline stloc first use temp"
+; V100 tmp93 [V100,T49] ( 4, 3 ) int -> rdx single-def "Inline stloc first use temp"
; V101 tmp94 [V101,T25] ( 3, 4 ) byref -> rsi single-def "Inlining Arg"
;* V102 tmp95 [V102 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
; V103 tmp96 [V103,T65] ( 5, 2.50) ref -> rsi class-hnd "Inline return value spill temp" <System.String>
; V104 tmp97 [V104,T85] ( 3, 2.50) ref -> rdi class-hnd single-def "Inline stloc first use temp" <ushort[]>
-; V105 tmp98 [V105,T45] ( 4, 3 ) int -> rdx single-def "Inline stloc first use temp"
+; V105 tmp98 [V105,T50] ( 4, 3 ) int -> rdx single-def "Inline stloc first use temp"
; V106 tmp99 [V106,T26] ( 3, 4 ) byref -> rsi single-def "Inlining Arg"
;* V107 tmp100 [V107 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
; V108 tmp101 [V108,T66] ( 5, 2.50) ref -> rsi class-hnd "Inline return value spill temp" <System.String>
-; V109 tmp102 [V109,T47] ( 3, 3 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" <System.Net.Http.HttpKeepAlivePingPolicy>
+; V109 tmp102 [V109,T52] ( 3, 3 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" <System.Net.Http.HttpKeepAlivePingPolicy>
; V110 tmp103 [V110,T02] ( 14, 14 ) ubyte -> r14 "field V02.hasValue (fldOffset=0x0)" P-INDEP
; V111 tmp104 [V111,T03] ( 14, 10.50) long -> rdi "field V02.value (fldOffset=0x8)" P-INDEP
; V112 tmp105 [V112,T04] ( 10, 10 ) ubyte -> r13 "field V03.hasValue (fldOffset=0x0)" P-INDEP
; V113 tmp106 [V113,T06] ( 10, 7.50) ubyte -> r12 "field V03.value (fldOffset=0x1)" P-INDEP
; V114 tmp107 [V114,T05] ( 10, 10 ) ubyte -> r13 "field V04.hasValue (fldOffset=0x0)" P-INDEP
; V115 tmp108 [V115,T07] ( 10, 7.50) int -> rdi "field V04.value (fldOffset=0x4)" P-INDEP
; V116 tmp109 [V116,T86] ( 2, 2 ) ubyte -> rdi single-def "field V05.hasValue (fldOffset=0x0)" P-INDEP
; V117 tmp110 [V117,T88] ( 2, 1.50) int -> r14 single-def "field V05.value (fldOffset=0x4)" P-INDEP
; V118 tmp111 [V118,T87] ( 2, 2 ) ubyte -> rdi single-def "field V06.hasValue (fldOffset=0x0)" P-INDEP
; V119 tmp112 [V119,T89] ( 2, 1.50) int -> r15 single-def "field V06.value (fldOffset=0x4)" P-INDEP
;
; Lcl frame size = 8
G_M19038_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
push rax
lea rbp, [rsp+0x30]
mov r15, rdi
mov rbx, rsi
;; size=22 bbWeight=1 PerfScore 8.00
G_M19038_IG02:
mov rsi, 0xD1FFAB1E
mov rdi, gword ptr [rbx+0x08]
mov edx, dword ptr [rbx+0x18]
lea eax, [rdx+0x1E]
cmp dword ptr [rdi+0x08], eax
jb SHORT G_M19038_IG04
;; size=25 bbWeight=1 PerfScore 8.75
G_M19038_IG03:
movsxd rax, edx
lea rdi, bword ptr [rdi+2*rax+0x10]
vmovdqu ymm0, ymmword ptr [rsi]
vmovdqu ymm1, ymmword ptr [rsi+0x1C]
vmovdqu ymmword ptr [rdi], ymm0
vmovdqu ymmword ptr [rdi+0x1C], ymm1
add edx, 30
mov dword ptr [rbx+0x18], edx
jmp SHORT G_M19038_IG05
;; size=34 bbWeight=0.50 PerfScore 9.25
G_M19038_IG04:
mov rdi, rbx
mov edx, 30
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:AppendWithExpansion(byref,int):this
call [rax]System.Text.StringBuilder:AppendWithExpansion(byref,int):this
;; size=20 bbWeight=0.50 PerfScore 1.88
G_M19038_IG05:
movzx r14, byte ptr [r15]
mov rdi, qword ptr [r15+0x08]
test r14d, r14d
jne SHORT G_M19038_IG10
;; size=13 bbWeight=1 PerfScore 5.25
G_M19038_IG06:
mov rsi, 0xD1FFAB1E ; ''
;; size=10 bbWeight=0.50 PerfScore 0.12
G_M19038_IG07:
mov edx, dword ptr [rsi+0x08]
add rsi, 12
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:Append(byref,int):this
call [rax]System.Text.StringBuilder:Append(byref,int):this
;; size=22 bbWeight=0.50 PerfScore 2.88
G_M19038_IG08:
mov rsi, 0xD1FFAB1E
mov rdi, gword ptr [rbx+0x08]
mov edx, dword ptr [rbx+0x18]
lea eax, [rdx+0x1D]
cmp dword ptr [rdi+0x08], eax
jb SHORT G_M19038_IG11
;; size=25 bbWeight=1 PerfScore 8.75
G_M19038_IG09:
movsxd rax, edx
lea rdi, bword ptr [rdi+2*rax+0x10]
vmovdqu ymm0, ymmword ptr [rsi]
vmovdqu ymm1, ymmword ptr [rsi+0x1A]
vmovdqu ymmword ptr [rdi], ymm0
vmovdqu ymmword ptr [rdi+0x1A], ymm1
add edx, 29
mov dword ptr [rbx+0x18], edx
jmp SHORT G_M19038_IG12
;; size=34 bbWeight=0.50 PerfScore 9.25
G_M19038_IG10:
mov rax, 0xD1FFAB1E ; code for System.Globalization.TimeSpanFormat:FormatC(System.TimeSpan):System.String
call [rax]System.Globalization.TimeSpanFormat:FormatC(System.TimeSpan):System.String
mov rsi, rax
test rsi, rsi
je SHORT G_M19038_IG08
jmp SHORT G_M19038_IG07
;; size=22 bbWeight=0.50 PerfScore 3.38
G_M19038_IG11:
mov rdi, rbx
mov edx, 29
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:AppendWithExpansion(byref,int):this
call [rax]System.Text.StringBuilder:AppendWithExpansion(byref,int):this
;; size=20 bbWeight=0.50 PerfScore 1.88
G_M19038_IG12:
movzx r14, byte ptr [r15+0x10]
mov rdi, qword ptr [r15+0x18]
test r14d, r14d
jne SHORT G_M19038_IG17
;; size=14 bbWeight=1 PerfScore 5.25
G_M19038_IG13:
mov rsi, 0xD1FFAB1E ; ''
;; size=10 bbWeight=0.50 PerfScore 0.12
G_M19038_IG14:
mov edx, dword ptr [rsi+0x08]
add rsi, 12
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:Append(byref,int):this
call [rax]System.Text.StringBuilder:Append(byref,int):this
;; size=22 bbWeight=0.50 PerfScore 2.88
G_M19038_IG15:
mov rsi, 0xD1FFAB1E
mov rdi, gword ptr [rbx+0x08]
mov edx, dword ptr [rbx+0x18]
lea eax, [rdx+0x14]
cmp dword ptr [rdi+0x08], eax
jb SHORT G_M19038_IG18
;; size=25 bbWeight=1 PerfScore 8.75
G_M19038_IG16:
movsxd rax, edx
lea rdi, bword ptr [rdi+2*rax+0x10]
vmovdqu ymm0, ymmword ptr [rsi]
vmovdqu xmm1, xmmword ptr [rsi+0x18]
vmovdqu ymmword ptr [rdi], ymm0
vmovdqu xmmword ptr [rdi+0x18], xmm1
add edx, 20
mov dword ptr [rbx+0x18], edx
jmp SHORT G_M19038_IG19
;; size=34 bbWeight=0.50 PerfScore 8.75
G_M19038_IG17:
mov rax, 0xD1FFAB1E ; code for System.Globalization.TimeSpanFormat:FormatC(System.TimeSpan):System.String
call [rax]System.Globalization.TimeSpanFormat:FormatC(System.TimeSpan):System.String
mov rsi, rax
test rsi, rsi
je SHORT G_M19038_IG15
jmp SHORT G_M19038_IG14
;; size=22 bbWeight=0.50 PerfScore 3.38
G_M19038_IG18:
mov rdi, rbx
mov edx, 20
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:AppendWithExpansion(byref,int):this
call [rax]System.Text.StringBuilder:AppendWithExpansion(byref,int):this
;; size=20 bbWeight=0.50 PerfScore 1.88
G_M19038_IG19:
movzx r13, byte ptr [r15+0x20]
movzx r12, byte ptr [r15+0x21]
test r13d, r13d
- jne SHORT G_M19038_IG24
+ jne SHORT G_M19038_IG21
;; size=15 bbWeight=1 PerfScore 5.25
G_M19038_IG20:
mov rsi, 0xD1FFAB1E ; ''
- ;; size=10 bbWeight=0.50 PerfScore 0.12
+ jmp SHORT G_M19038_IG22
+ ;; size=12 bbWeight=0.50 PerfScore 1.12
G_M19038_IG21:
+ mov rsi, 0xD1FFAB1E ; 'True'
+ mov rdx, 0xD1FFAB1E ; 'False'
+ test r12d, r12d
+ cmove rsi, rdx
+ ;; size=27 bbWeight=0.50 PerfScore 0.50
+G_M19038_IG22:
mov edx, dword ptr [rsi+0x08]
add rsi, 12
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:Append(byref,int):this
call [rax]System.Text.StringBuilder:Append(byref,int):this
- ;; size=22 bbWeight=0.50 PerfScore 2.88
-G_M19038_IG22:
mov rsi, 0xD1FFAB1E
mov rdi, gword ptr [rbx+0x08]
mov edx, dword ptr [rbx+0x18]
lea eax, [rdx+0x19]
cmp dword ptr [rdi+0x08], eax
- jb SHORT G_M19038_IG25
- ;; size=25 bbWeight=1 PerfScore 8.75
+ jb SHORT G_M19038_IG24
+ ;; size=47 bbWeight=1 PerfScore 14.50
G_M19038_IG23:
movsxd rax, edx
lea rdi, bword ptr [rdi+2*rax+0x10]
vmovdqu ymm0, ymmword ptr [rsi]
vmovdqu ymm1, ymmword ptr [rsi+0x12]
vmovdqu ymmword ptr [rdi], ymm0
vmovdqu ymmword ptr [rdi+0x12], ymm1
add edx, 25
mov dword ptr [rbx+0x18], edx
- jmp SHORT G_M19038_IG26
+ jmp SHORT G_M19038_IG25
;; size=34 bbWeight=0.50 PerfScore 9.25
G_M19038_IG24:
- mov rsi, 0xD1FFAB1E ; 'True'
- mov rdx, 0xD1FFAB1E ; 'False'
- test r12d, r12d
- cmove rsi, rdx
- test rsi, rsi
- je SHORT G_M19038_IG22
- jmp SHORT G_M19038_IG21
- ;; size=34 bbWeight=0.50 PerfScore 2.12
-G_M19038_IG25:
mov rdi, rbx
mov edx, 25
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:AppendWithExpansion(byref,int):this
call [rax]System.Text.StringBuilder:AppendWithExpansion(byref,int):this
;; size=20 bbWeight=0.50 PerfScore 1.88
-G_M19038_IG26:
+G_M19038_IG25:
movzx r14, byte ptr [r15+0x28]
mov rdi, qword ptr [r15+0x30]
test r14d, r14d
- jne SHORT G_M19038_IG31
+ jne SHORT G_M19038_IG30
;; size=14 bbWeight=1 PerfScore 5.25
-G_M19038_IG27:
+G_M19038_IG26:
mov rsi, 0xD1FFAB1E ; ''
;; size=10 bbWeight=0.50 PerfScore 0.12
-G_M19038_IG28:
+G_M19038_IG27:
mov edx, dword ptr [rsi+0x08]
add rsi, 12
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:Append(byref,int):this
call [rax]System.Text.StringBuilder:Append(byref,int):this
;; size=22 bbWeight=0.50 PerfScore 2.88
-G_M19038_IG29:
+G_M19038_IG28:
mov rsi, 0xD1FFAB1E
mov rdi, gword ptr [rbx+0x08]
mov edx, dword ptr [rbx+0x18]
lea eax, [rdx+0x0F]
cmp dword ptr [rdi+0x08], eax
- jb SHORT G_M19038_IG32
+ jb SHORT G_M19038_IG31
;; size=25 bbWeight=1 PerfScore 8.75
-G_M19038_IG30:
+G_M19038_IG29:
movsxd rax, edx
lea rdi, bword ptr [rdi+2*rax+0x10]
vmovdqu xmm0, xmmword ptr [rsi]
vmovdqu xmm1, xmmword ptr [rsi+0x0E]
vmovdqu xmmword ptr [rdi], xmm0
vmovdqu xmmword ptr [rdi+0x0E], xmm1
add edx, 15
mov dword ptr [rbx+0x18], edx
- jmp SHORT G_M19038_IG33
+ jmp SHORT G_M19038_IG32
;; size=34 bbWeight=0.50 PerfScore 8.25
-G_M19038_IG31:
+G_M19038_IG30:
mov rax, 0xD1FFAB1E ; code for System.Globalization.TimeSpanFormat:FormatC(System.TimeSpan):System.String
call [rax]System.Globalization.TimeSpanFormat:FormatC(System.TimeSpan):System.String
mov rsi, rax
test rsi, rsi
- je SHORT G_M19038_IG29
- jmp SHORT G_M19038_IG28
+ je SHORT G_M19038_IG28
+ jmp SHORT G_M19038_IG27
;; size=22 bbWeight=0.50 PerfScore 3.38
-G_M19038_IG32:
+G_M19038_IG31:
mov rdi, rbx
mov edx, 15
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:AppendWithExpansion(byref,int):this
call [rax]System.Text.StringBuilder:AppendWithExpansion(byref,int):this
;; size=20 bbWeight=0.50 PerfScore 1.88
-G_M19038_IG33:
+G_M19038_IG32:
movzx r13, byte ptr [r15+0x38]
movzx r12, byte ptr [r15+0x39]
test r13d, r13d
- jne SHORT G_M19038_IG38
+ jne SHORT G_M19038_IG34
;; size=15 bbWeight=1 PerfScore 5.25
-G_M19038_IG34:
+G_M19038_IG33:
mov rsi, 0xD1FFAB1E ; ''
- ;; size=10 bbWeight=0.50 PerfScore 0.12
+ jmp SHORT G_M19038_IG35
+ ;; size=12 bbWeight=0.50 PerfScore 1.12
+G_M19038_IG34:
+ mov rsi, 0xD1FFAB1E ; 'True'
+ mov rdx, 0xD1FFAB1E ; 'False'
+ test r12d, r12d
+ cmove rsi, rdx
+ ;; size=27 bbWeight=0.50 PerfScore 0.50
G_M19038_IG35:
mov edx, dword ptr [rsi+0x08]
add rsi, 12
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:Append(byref,int):this
call [rax]System.Text.StringBuilder:Append(byref,int):this
- ;; size=22 bbWeight=0.50 PerfScore 2.88
-G_M19038_IG36:
mov rsi, 0xD1FFAB1E
mov rdi, gword ptr [rbx+0x08]
mov edx, dword ptr [rbx+0x18]
lea eax, [rdx+0x0D]
cmp dword ptr [rdi+0x08], eax
- jb SHORT G_M19038_IG39
- ;; size=25 bbWeight=1 PerfScore 8.75
-G_M19038_IG37:
+ jb SHORT G_M19038_IG37
+ ;; size=47 bbWeight=1 PerfScore 14.50
+G_M19038_IG36:
movsxd rax, edx
lea rdi, bword ptr [rdi+2*rax+0x10]
vmovdqu xmm0, xmmword ptr [rsi]
vmovdqu xmm1, xmmword ptr [rsi+0x0A]
vmovdqu xmmword ptr [rdi], xmm0
vmovdqu xmmword ptr [rdi+0x0A], xmm1
add edx, 13
mov dword ptr [rbx+0x18], edx
- jmp SHORT G_M19038_IG40
+ jmp SHORT G_M19038_IG38
;; size=34 bbWeight=0.50 PerfScore 8.25
-G_M19038_IG38:
- mov rsi, 0xD1FFAB1E ; 'True'
- mov rdx, 0xD1FFAB1E ; 'False'
- test r12d, r12d
- cmove rsi, rdx
- test rsi, rsi
- je SHORT G_M19038_IG36
- jmp SHORT G_M19038_IG35
- ;; size=34 bbWeight=0.50 PerfScore 2.12
-G_M19038_IG39:
+G_M19038_IG37:
mov rdi, rbx
mov edx, 13
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:AppendWithExpansion(byref,int):this
call [rax]System.Text.StringBuilder:AppendWithExpansion(byref,int):this
;; size=20 bbWeight=0.50 PerfScore 1.88
-G_M19038_IG40:
+G_M19038_IG38:
movzx r13, byte ptr [r15+0x3A]
movzx r12, byte ptr [r15+0x3B]
test r13d, r13d
- jne SHORT G_M19038_IG45
+ jne SHORT G_M19038_IG40
;; size=15 bbWeight=1 PerfScore 5.25
-G_M19038_IG41:
+G_M19038_IG39:
mov rsi, 0xD1FFAB1E ; ''
- ;; size=10 bbWeight=0.50 PerfScore 0.12
-G_M19038_IG42:
+ jmp SHORT G_M19038_IG41
+ ;; size=12 bbWeight=0.50 PerfScore 1.12
+G_M19038_IG40:
+ mov rsi, 0xD1FFAB1E ; 'True'
+ mov rdx, 0xD1FFAB1E ; 'False'
+ test r12d, r12d
+ cmove rsi, rdx
+ ;; size=27 bbWeight=0.50 PerfScore 0.50
+G_M19038_IG41:
mov edx, dword ptr [rsi+0x08]
add rsi, 12
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:Append(byref,int):this
call [rax]System.Text.StringBuilder:Append(byref,int):this
- ;; size=22 bbWeight=0.50 PerfScore 2.88
-G_M19038_IG43:
mov rsi, 0xD1FFAB1E
mov rdi, gword ptr [rbx+0x08]
mov edx, dword ptr [rbx+0x18]
lea eax, [rdx+0x23]
cmp dword ptr [rdi+0x08], eax
- jb SHORT G_M19038_IG46
- ;; size=25 bbWeight=1 PerfScore 8.75
-G_M19038_IG44:
+ jb SHORT G_M19038_IG43
+ ;; size=47 bbWeight=1 PerfScore 14.50
+G_M19038_IG42:
movsxd rax, edx
lea rdi, bword ptr [rdi+2*rax+0x10]
vmovdqu32 zmm0, zmmword ptr [rsi]
vmovdqu xmm1, xmmword ptr [rsi+0x36]
vmovdqu32 zmmword ptr [rdi], zmm0
vmovdqu xmmword ptr [rdi+0x36], xmm1
add edx, 35
mov dword ptr [rbx+0x18], edx
- jmp SHORT G_M19038_IG47
+ jmp SHORT G_M19038_IG44
;; size=38 bbWeight=0.50 PerfScore 8.25
-G_M19038_IG45:
- mov rsi, 0xD1FFAB1E ; 'True'
- mov rdx, 0xD1FFAB1E ; 'False'
- test r12d, r12d
- cmove rsi, rdx
- test rsi, rsi
- je SHORT G_M19038_IG43
- jmp SHORT G_M19038_IG42
- ;; size=34 bbWeight=0.50 PerfScore 2.12
-G_M19038_IG46:
+G_M19038_IG43:
mov rdi, rbx
mov edx, 35
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:AppendWithExpansion(byref,int):this
call [rax]System.Text.StringBuilder:AppendWithExpansion(byref,int):this
;; size=20 bbWeight=0.50 PerfScore 1.88
-G_M19038_IG47:
+G_M19038_IG44:
movzx r13, byte ptr [r15+0x3C]
movzx r12, byte ptr [r15+0x3D]
test r13d, r13d
- jne SHORT G_M19038_IG52
+ jne SHORT G_M19038_IG46
;; size=15 bbWeight=1 PerfScore 5.25
-G_M19038_IG48:
+G_M19038_IG45:
mov rsi, 0xD1FFAB1E ; ''
- ;; size=10 bbWeight=0.50 PerfScore 0.12
-G_M19038_IG49:
+ jmp SHORT G_M19038_IG47
+ ;; size=12 bbWeight=0.50 PerfScore 1.12
+G_M19038_IG46:
+ mov rsi, 0xD1FFAB1E ; 'True'
+ mov rdx, 0xD1FFAB1E ; 'False'
+ test r12d, r12d
+ cmove rsi, rdx
+ ;; size=27 bbWeight=0.50 PerfScore 0.50
+G_M19038_IG47:
mov edx, dword ptr [rsi+0x08]
add rsi, 12
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:Append(byref,int):this
call [rax]System.Text.StringBuilder:Append(byref,int):this
- ;; size=22 bbWeight=0.50 PerfScore 2.88
-G_M19038_IG50:
mov rsi, 0xD1FFAB1E
mov rdi, gword ptr [rbx+0x08]
mov edx, dword ptr [rbx+0x18]
lea eax, [rdx+0x1D]
cmp dword ptr [rdi+0x08], eax
- jb SHORT G_M19038_IG53
- ;; size=25 bbWeight=1 PerfScore 8.75
-G_M19038_IG51:
+ jb SHORT G_M19038_IG49
+ ;; size=47 bbWeight=1 PerfScore 14.50
+G_M19038_IG48:
movsxd rax, edx
lea rdi, bword ptr [rdi+2*rax+0x10]
vmovdqu ymm0, ymmword ptr [rsi]
vmovdqu ymm1, ymmword ptr [rsi+0x1A]
vmovdqu ymmword ptr [rdi], ymm0
vmovdqu ymmword ptr [rdi+0x1A], ymm1
add edx, 29
mov dword ptr [rbx+0x18], edx
- jmp SHORT G_M19038_IG54
+ jmp SHORT G_M19038_IG50
;; size=34 bbWeight=0.50 PerfScore 9.25
-G_M19038_IG52:
- mov rsi, 0xD1FFAB1E ; 'True'
- mov rdx, 0xD1FFAB1E ; 'False'
- test r12d, r12d
- cmove rsi, rdx
- test rsi, rsi
- je SHORT G_M19038_IG50
- jmp SHORT G_M19038_IG49
- ;; size=34 bbWeight=0.50 PerfScore 2.12
-G_M19038_IG53:
+G_M19038_IG49:
mov rdi, rbx
mov edx, 29
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:AppendWithExpansion(byref,int):this
call [rax]System.Text.StringBuilder:AppendWithExpansion(byref,int):this
;; size=20 bbWeight=0.50 PerfScore 1.88
-G_M19038_IG54:
+G_M19038_IG50:
movzx r13, byte ptr [r15+0x40]
mov edi, dword ptr [r15+0x44]
test r13d, r13d
- jne SHORT G_M19038_IG59
+ jne SHORT G_M19038_IG55
;; size=14 bbWeight=1 PerfScore 5.25
-G_M19038_IG55:
+G_M19038_IG51:
mov rsi, 0xD1FFAB1E ; ''
;; size=10 bbWeight=0.50 PerfScore 0.12
-G_M19038_IG56:
+G_M19038_IG52:
mov edx, dword ptr [rsi+0x08]
add rsi, 12
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:Append(byref,int):this
call [rax]System.Text.StringBuilder:Append(byref,int):this
;; size=22 bbWeight=0.50 PerfScore 2.88
-G_M19038_IG57:
+G_M19038_IG53:
mov rsi, 0xD1FFAB1E
mov rdi, gword ptr [rbx+0x08]
mov edx, dword ptr [rbx+0x18]
lea eax, [rdx+0x19]
cmp dword ptr [rdi+0x08], eax
- jb SHORT G_M19038_IG60
+ jb SHORT G_M19038_IG56
;; size=25 bbWeight=1 PerfScore 8.75
-G_M19038_IG58:
+G_M19038_IG54:
movsxd rax, edx
lea rdi, bword ptr [rdi+2*rax+0x10]
vmovdqu ymm0, ymmword ptr [rsi]
vmovdqu ymm1, ymmword ptr [rsi+0x12]
vmovdqu ymmword ptr [rdi], ymm0
vmovdqu ymmword ptr [rdi+0x12], ymm1
add edx, 25
mov dword ptr [rbx+0x18], edx
- jmp SHORT G_M19038_IG61
+ jmp SHORT G_M19038_IG57
;; size=34 bbWeight=0.50 PerfScore 9.25
-G_M19038_IG59:
+G_M19038_IG55:
mov rax, 0xD1FFAB1E ; code for System.Number:Int32ToDecStr(int):System.String
call [rax]System.Number:Int32ToDecStr(int):System.String
mov rsi, rax
test rsi, rsi
- je SHORT G_M19038_IG57
- jmp SHORT G_M19038_IG56
+ je SHORT G_M19038_IG53
+ jmp SHORT G_M19038_IG52
;; size=22 bbWeight=0.50 PerfScore 3.38
-G_M19038_IG60:
+G_M19038_IG56:
mov rdi, rbx
mov edx, 25
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:AppendWithExpansion(byref,int):this
call [rax]System.Text.StringBuilder:AppendWithExpansion(byref,int):this
;; size=20 bbWeight=0.50 PerfScore 1.88
-G_M19038_IG61:
+G_M19038_IG57:
movzx r13, byte ptr [r15+0x48]
mov edi, dword ptr [r15+0x4C]
test r13d, r13d
- jne SHORT G_M19038_IG66
+ jne SHORT G_M19038_IG62
;; size=14 bbWeight=1 PerfScore 5.25
-G_M19038_IG62:
+G_M19038_IG58:
mov rsi, 0xD1FFAB1E ; ''
;; size=10 bbWeight=0.50 PerfScore 0.12
-G_M19038_IG63:
+G_M19038_IG59:
mov edx, dword ptr [rsi+0x08]
add rsi, 12
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:Append(byref,int):this
call [rax]System.Text.StringBuilder:Append(byref,int):this
;; size=22 bbWeight=0.50 PerfScore 2.88
-G_M19038_IG64:
+G_M19038_IG60:
mov rsi, 0xD1FFAB1E
mov rdi, gword ptr [rbx+0x08]
mov edx, dword ptr [rbx+0x18]
lea eax, [rdx+0x1C]
cmp dword ptr [rdi+0x08], eax
- jb SHORT G_M19038_IG67
+ jb SHORT G_M19038_IG63
;; size=25 bbWeight=1 PerfScore 8.75
-G_M19038_IG65:
+G_M19038_IG61:
movsxd rax, edx
lea rdi, bword ptr [rdi+2*rax+0x10]
vmovdqu ymm0, ymmword ptr [rsi]
vmovdqu ymm1, ymmword ptr [rsi+0x18]
vmovdqu ymmword ptr [rdi], ymm0
vmovdqu ymmword ptr [rdi+0x18], ymm1
add edx, 28
mov dword ptr [rbx+0x18], edx
- jmp SHORT G_M19038_IG68
+ jmp SHORT G_M19038_IG64
;; size=34 bbWeight=0.50 PerfScore 9.25
-G_M19038_IG66:
+G_M19038_IG62:
mov rax, 0xD1FFAB1E ; code for System.Number:Int32ToDecStr(int):System.String
call [rax]System.Number:Int32ToDecStr(int):System.String
mov rsi, rax
test rsi, rsi
- je SHORT G_M19038_IG64
- jmp SHORT G_M19038_IG63
+ je SHORT G_M19038_IG60
+ jmp SHORT G_M19038_IG59
;; size=22 bbWeight=0.50 PerfScore 3.38
-G_M19038_IG67:
+G_M19038_IG63:
mov rdi, rbx
mov edx, 28
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:AppendWithExpansion(byref,int):this
call [rax]System.Text.StringBuilder:AppendWithExpansion(byref,int):this
;; size=20 bbWeight=0.50 PerfScore 1.88
-G_M19038_IG68:
+G_M19038_IG64:
movzx r13, byte ptr [r15+0x50]
mov edi, dword ptr [r15+0x54]
test r13d, r13d
- jne SHORT G_M19038_IG73
+ jne SHORT G_M19038_IG69
;; size=14 bbWeight=1 PerfScore 5.25
-G_M19038_IG69:
+G_M19038_IG65:
mov rsi, 0xD1FFAB1E ; ''
;; size=10 bbWeight=0.50 PerfScore 0.12
-G_M19038_IG70:
+G_M19038_IG66:
mov edx, dword ptr [rsi+0x08]
add rsi, 12
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:Append(byref,int):this
call [rax]System.Text.StringBuilder:Append(byref,int):this
;; size=22 bbWeight=0.50 PerfScore 2.88
-G_M19038_IG71:
+G_M19038_IG67:
mov rsi, 0xD1FFAB1E
mov rdi, gword ptr [rbx+0x08]
mov edx, dword ptr [rbx+0x18]
lea eax, [rdx+0x1D]
cmp dword ptr [rdi+0x08], eax
- jb SHORT G_M19038_IG74
+ jb SHORT G_M19038_IG70
;; size=25 bbWeight=1 PerfScore 8.75
-G_M19038_IG72:
+G_M19038_IG68:
movsxd rax, edx
lea rdi, bword ptr [rdi+2*rax+0x10]
vmovdqu ymm0, ymmword ptr [rsi]
vmovdqu ymm1, ymmword ptr [rsi+0x1A]
vmovdqu ymmword ptr [rdi], ymm0
vmovdqu ymmword ptr [rdi+0x1A], ymm1
add edx, 29
mov dword ptr [rbx+0x18], edx
- jmp SHORT G_M19038_IG75
+ jmp SHORT G_M19038_IG71
;; size=34 bbWeight=0.50 PerfScore 9.25
-G_M19038_IG73:
+G_M19038_IG69:
mov rax, 0xD1FFAB1E ; code for System.Number:Int32ToDecStr(int):System.String
call [rax]System.Number:Int32ToDecStr(int):System.String
mov rsi, rax
test rsi, rsi
- je SHORT G_M19038_IG71
- jmp SHORT G_M19038_IG70
+ je SHORT G_M19038_IG67
+ jmp SHORT G_M19038_IG66
;; size=22 bbWeight=0.50 PerfScore 3.38
-G_M19038_IG74:
+G_M19038_IG70:
mov rdi, rbx
mov edx, 29
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:AppendWithExpansion(byref,int):this
call [rax]System.Text.StringBuilder:AppendWithExpansion(byref,int):this
;; size=20 bbWeight=0.50 PerfScore 1.88
-G_M19038_IG75:
+G_M19038_IG71:
movzx r13, byte ptr [r15+0x58]
mov edi, dword ptr [r15+0x5C]
test r13d, r13d
- jne SHORT G_M19038_IG80
+ jne SHORT G_M19038_IG76
;; size=14 bbWeight=1 PerfScore 5.25
-G_M19038_IG76:
+G_M19038_IG72:
mov rsi, 0xD1FFAB1E ; ''
;; size=10 bbWeight=0.50 PerfScore 0.12
-G_M19038_IG77:
+G_M19038_IG73:
mov edx, dword ptr [rsi+0x08]
add rsi, 12
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:Append(byref,int):this
call [rax]System.Text.StringBuilder:Append(byref,int):this
;; size=22 bbWeight=0.50 PerfScore 2.88
-G_M19038_IG78:
+G_M19038_IG74:
mov rsi, 0xD1FFAB1E
mov rdi, gword ptr [rbx+0x08]
mov edx, dword ptr [rbx+0x18]
lea eax, [rdx+0x21]
cmp dword ptr [rdi+0x08], eax
- jb SHORT G_M19038_IG81
+ jb SHORT G_M19038_IG77
;; size=25 bbWeight=1 PerfScore 8.75
-G_M19038_IG79:
+G_M19038_IG75:
movsxd rax, edx
lea rdi, bword ptr [rdi+2*rax+0x10]
vmovdqu32 zmm0, zmmword ptr [rsi]
vmovdqu xmm1, xmmword ptr [rsi+0x32]
vmovdqu32 zmmword ptr [rdi], zmm0
vmovdqu xmmword ptr [rdi+0x32], xmm1
add edx, 33
mov dword ptr [rbx+0x18], edx
- jmp SHORT G_M19038_IG82
+ jmp SHORT G_M19038_IG78
;; size=38 bbWeight=0.50 PerfScore 8.25
-G_M19038_IG80:
+G_M19038_IG76:
mov rax, 0xD1FFAB1E ; code for System.Number:Int32ToDecStr(int):System.String
call [rax]System.Number:Int32ToDecStr(int):System.String
mov rsi, rax
test rsi, rsi
- je SHORT G_M19038_IG78
- jmp SHORT G_M19038_IG77
+ je SHORT G_M19038_IG74
+ jmp SHORT G_M19038_IG73
;; size=22 bbWeight=0.50 PerfScore 3.38
-G_M19038_IG81:
+G_M19038_IG77:
mov rdi, rbx
mov edx, 33
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:AppendWithExpansion(byref,int):this
call [rax]System.Text.StringBuilder:AppendWithExpansion(byref,int):this
;; size=20 bbWeight=0.50 PerfScore 1.88
-G_M19038_IG82:
+G_M19038_IG78:
movzx r13, byte ptr [r15+0x60]
mov edi, dword ptr [r15+0x64]
test r13d, r13d
- jne SHORT G_M19038_IG87
+ jne SHORT G_M19038_IG83
;; size=14 bbWeight=1 PerfScore 5.25
-G_M19038_IG83:
+G_M19038_IG79:
mov rsi, 0xD1FFAB1E ; ''
;; size=10 bbWeight=0.50 PerfScore 0.12
-G_M19038_IG84:
+G_M19038_IG80:
mov edx, dword ptr [rsi+0x08]
add rsi, 12
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:Append(byref,int):this
call [rax]System.Text.StringBuilder:Append(byref,int):this
;; size=22 bbWeight=0.50 PerfScore 2.88
-G_M19038_IG85:
+G_M19038_IG81:
mov rsi, 0xD1FFAB1E
mov rdi, gword ptr [rbx+0x08]
mov edx, dword ptr [rbx+0x18]
lea eax, [rdx+0x16]
cmp dword ptr [rdi+0x08], eax
- jb SHORT G_M19038_IG88
+ jb SHORT G_M19038_IG84
;; size=25 bbWeight=1 PerfScore 8.75
-G_M19038_IG86:
+G_M19038_IG82:
movsxd rax, edx
lea rdi, bword ptr [rdi+2*rax+0x10]
vmovdqu ymm0, ymmword ptr [rsi]
vmovdqu xmm1, xmmword ptr [rsi+0x1C]
vmovdqu ymmword ptr [rdi], ymm0
vmovdqu xmmword ptr [rdi+0x1C], xmm1
add edx, 22
mov dword ptr [rbx+0x18], edx
- jmp SHORT G_M19038_IG89
+ jmp SHORT G_M19038_IG85
;; size=34 bbWeight=0.50 PerfScore 8.75
-G_M19038_IG87:
+G_M19038_IG83:
mov rax, 0xD1FFAB1E ; code for System.Number:Int32ToDecStr(int):System.String
call [rax]System.Number:Int32ToDecStr(int):System.String
mov rsi, rax
test rsi, rsi
- je SHORT G_M19038_IG85
- jmp SHORT G_M19038_IG84
+ je SHORT G_M19038_IG81
+ jmp SHORT G_M19038_IG80
;; size=22 bbWeight=0.50 PerfScore 3.38
-G_M19038_IG88:
+G_M19038_IG84:
mov rdi, rbx
mov edx, 22
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:AppendWithExpansion(byref,int):this
call [rax]System.Text.StringBuilder:AppendWithExpansion(byref,int):this
;; size=20 bbWeight=0.50 PerfScore 1.88
-G_M19038_IG89:
+G_M19038_IG85:
movzx r13, byte ptr [r15+0x68]
movzx r12, byte ptr [r15+0x69]
test r13d, r13d
- jne SHORT G_M19038_IG94
+ jne SHORT G_M19038_IG87
;; size=15 bbWeight=1 PerfScore 5.25
-G_M19038_IG90:
+G_M19038_IG86:
mov rsi, 0xD1FFAB1E ; ''
- ;; size=10 bbWeight=0.50 PerfScore 0.12
-G_M19038_IG91:
+ jmp SHORT G_M19038_IG88
+ ;; size=12 bbWeight=0.50 PerfScore 1.12
+G_M19038_IG87:
+ mov rsi, 0xD1FFAB1E ; 'True'
+ mov rdx, 0xD1FFAB1E ; 'False'
+ test r12d, r12d
+ cmove rsi, rdx
+ ;; size=27 bbWeight=0.50 PerfScore 0.50
+G_M19038_IG88:
mov edx, dword ptr [rsi+0x08]
add rsi, 12
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:Append(byref,int):this
call [rax]System.Text.StringBuilder:Append(byref,int):this
- ;; size=22 bbWeight=0.50 PerfScore 2.88
-G_M19038_IG92:
mov rsi, 0xD1FFAB1E
mov rdi, gword ptr [rbx+0x08]
mov edx, dword ptr [rbx+0x18]
lea eax, [rdx+0x1B]
cmp dword ptr [rdi+0x08], eax
- jb SHORT G_M19038_IG95
- ;; size=25 bbWeight=1 PerfScore 8.75
-G_M19038_IG93:
+ jb SHORT G_M19038_IG90
+ ;; size=47 bbWeight=1 PerfScore 14.50
+G_M19038_IG89:
movsxd rax, edx
lea rdi, bword ptr [rdi+2*rax+0x10]
vmovdqu ymm0, ymmword ptr [rsi]
vmovdqu ymm1, ymmword ptr [rsi+0x16]
vmovdqu ymmword ptr [rdi], ymm0
vmovdqu ymmword ptr [rdi+0x16], ymm1
add edx, 27
mov dword ptr [rbx+0x18], edx
- jmp SHORT G_M19038_IG96
- ;; size=34 bbWeight=0.50 PerfScore 9.25
-G_M19038_IG94:
- mov rsi, 0xD1FFAB1E ; 'True'
- mov rdx, 0xD1FFAB1E ; 'False'
- test r12d, r12d
- cmove rsi, rdx
- test rsi, rsi
- je SHORT G_M19038_IG92
jmp SHORT G_M19038_IG91
- ;; size=34 bbWeight=0.50 PerfScore 2.12
-G_M19038_IG95:
+ ;; size=34 bbWeight=0.50 PerfScore 9.25
+G_M19038_IG90:
mov rdi, rbx
mov edx, 27
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:AppendWithExpansion(byref,int):this
call [rax]System.Text.StringBuilder:AppendWithExpansion(byref,int):this
;; size=20 bbWeight=0.50 PerfScore 1.88
-G_M19038_IG96:
+G_M19038_IG91:
movzx rdi, byte ptr [r15+0x6C]
mov r14d, dword ptr [r15+0x70]
test edi, edi
- jne SHORT G_M19038_IG101
+ jne SHORT G_M19038_IG96
;; size=13 bbWeight=1 PerfScore 5.25
-G_M19038_IG97:
+G_M19038_IG92:
mov rsi, 0xD1FFAB1E ; ''
;; size=10 bbWeight=0.50 PerfScore 0.12
-G_M19038_IG98:
+G_M19038_IG93:
mov edx, dword ptr [rsi+0x08]
add rsi, 12
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:Append(byref,int):this
call [rax]System.Text.StringBuilder:Append(byref,int):this
;; size=22 bbWeight=0.50 PerfScore 2.88
-G_M19038_IG99:
+G_M19038_IG94:
mov rsi, 0xD1FFAB1E
mov rdi, gword ptr [rbx+0x08]
mov edx, dword ptr [rbx+0x18]
lea eax, [rdx+0x13]
cmp dword ptr [rdi+0x08], eax
- jb SHORT G_M19038_IG102
+ jb SHORT G_M19038_IG97
;; size=25 bbWeight=1 PerfScore 8.75
-G_M19038_IG100:
+G_M19038_IG95:
movsxd rax, edx
lea rdi, bword ptr [rdi+2*rax+0x10]
vmovdqu ymm0, ymmword ptr [rsi]
vmovdqu xmm1, xmmword ptr [rsi+0x16]
vmovdqu ymmword ptr [rdi], ymm0
vmovdqu xmmword ptr [rdi+0x16], xmm1
add edx, 19
mov dword ptr [rbx+0x18], edx
- jmp SHORT G_M19038_IG103
+ jmp SHORT G_M19038_IG98
;; size=34 bbWeight=0.50 PerfScore 8.75
-G_M19038_IG101:
+G_M19038_IG96:
mov rdi, 0xD1FFAB1E ; System.Net.DecompressionMethods
call CORINFO_HELP_NEWSFAST
mov dword ptr [rax+0x08], r14d
mov rdi, rax
mov rax, 0xD1FFAB1E ; code for System.Enum:ToString():System.String:this
call [rax]System.Enum:ToString():System.String:this
mov rsi, rax
test rsi, rsi
- je SHORT G_M19038_IG99
- jmp SHORT G_M19038_IG98
+ je SHORT G_M19038_IG94
+ jmp SHORT G_M19038_IG93
;; size=44 bbWeight=0.50 PerfScore 4.62
-G_M19038_IG102:
+G_M19038_IG97:
mov rdi, rbx
mov edx, 19
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:AppendWithExpansion(byref,int):this
call [rax]System.Text.StringBuilder:AppendWithExpansion(byref,int):this
;; size=20 bbWeight=0.50 PerfScore 1.88
-G_M19038_IG103:
+G_M19038_IG98:
movzx r14, byte ptr [r15+0x78]
mov rdi, qword ptr [r15+0x80]
test r14d, r14d
- jne SHORT G_M19038_IG108
+ jne SHORT G_M19038_IG103
;; size=17 bbWeight=1 PerfScore 5.25
-G_M19038_IG104:
+G_M19038_IG99:
mov rsi, 0xD1FFAB1E ; ''
;; size=10 bbWeight=0.50 PerfScore 0.12
-G_M19038_IG105:
+G_M19038_IG100:
mov edx, dword ptr [rsi+0x08]
add rsi, 12
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:Append(byref,int):this
call [rax]System.Text.StringBuilder:Append(byref,int):this
;; size=22 bbWeight=0.50 PerfScore 2.88
-G_M19038_IG106:
+G_M19038_IG101:
mov rsi, 0xD1FFAB1E
mov rdi, gword ptr [rbx+0x08]
mov edx, dword ptr [rbx+0x18]
lea eax, [rdx+0x1D]
cmp dword ptr [rdi+0x08], eax
- jb SHORT G_M19038_IG109
+ jb SHORT G_M19038_IG104
;; size=25 bbWeight=1 PerfScore 8.75
-G_M19038_IG107:
+G_M19038_IG102:
movsxd rax, edx
lea rdi, bword ptr [rdi+2*rax+0x10]
vmovdqu ymm0, ymmword ptr [rsi]
vmovdqu ymm1, ymmword ptr [rsi+0x1A]
vmovdqu ymmword ptr [rdi], ymm0
vmovdqu ymmword ptr [rdi+0x1A], ymm1
add edx, 29
mov dword ptr [rbx+0x18], edx
- jmp SHORT G_M19038_IG110
+ jmp SHORT G_M19038_IG105
;; size=34 bbWeight=0.50 PerfScore 9.25
-G_M19038_IG108:
+G_M19038_IG103:
mov rax, 0xD1FFAB1E ; code for System.Globalization.TimeSpanFormat:FormatC(System.TimeSpan):System.String
call [rax]System.Globalization.TimeSpanFormat:FormatC(System.TimeSpan):System.String
mov rsi, rax
test rsi, rsi
- je SHORT G_M19038_IG106
- jmp SHORT G_M19038_IG105
+ je SHORT G_M19038_IG101
+ jmp SHORT G_M19038_IG100
;; size=22 bbWeight=0.50 PerfScore 3.38
-G_M19038_IG109:
+G_M19038_IG104:
mov rdi, rbx
mov edx, 29
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:AppendWithExpansion(byref,int):this
call [rax]System.Text.StringBuilder:AppendWithExpansion(byref,int):this
;; size=20 bbWeight=0.50 PerfScore 1.88
-G_M19038_IG110:
+G_M19038_IG105:
movzx r14, byte ptr [r15+0x88]
mov rdi, qword ptr [r15+0x90]
test r14d, r14d
- jne SHORT G_M19038_IG115
+ jne SHORT G_M19038_IG110
;; size=20 bbWeight=1 PerfScore 5.25
-G_M19038_IG111:
+G_M19038_IG106:
mov rsi, 0xD1FFAB1E ; ''
;; size=10 bbWeight=0.50 PerfScore 0.12
-G_M19038_IG112:
+G_M19038_IG107:
mov edx, dword ptr [rsi+0x08]
add rsi, 12
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:Append(byref,int):this
call [rax]System.Text.StringBuilder:Append(byref,int):this
;; size=22 bbWeight=0.50 PerfScore 2.88
-G_M19038_IG113:
+G_M19038_IG108:
mov rsi, 0xD1FFAB1E
mov rdi, gword ptr [rbx+0x08]
mov edx, dword ptr [rbx+0x18]
lea eax, [rdx+0x17]
cmp dword ptr [rdi+0x08], eax
- jb SHORT G_M19038_IG116
+ jb SHORT G_M19038_IG111
;; size=25 bbWeight=1 PerfScore 8.75
-G_M19038_IG114:
+G_M19038_IG109:
movsxd rax, edx
lea rdi, bword ptr [rdi+2*rax+0x10]
vmovdqu ymm0, ymmword ptr [rsi]
vmovdqu xmm1, xmmword ptr [rsi+0x1E]
vmovdqu ymmword ptr [rdi], ymm0
vmovdqu xmmword ptr [rdi+0x1E], xmm1
add edx, 23
mov dword ptr [rbx+0x18], edx
- jmp SHORT G_M19038_IG117
+ jmp SHORT G_M19038_IG112
;; size=34 bbWeight=0.50 PerfScore 8.75
-G_M19038_IG115:
+G_M19038_IG110:
mov rax, 0xD1FFAB1E ; code for System.Globalization.TimeSpanFormat:FormatC(System.TimeSpan):System.String
call [rax]System.Globalization.TimeSpanFormat:FormatC(System.TimeSpan):System.String
mov rsi, rax
test rsi, rsi
- je SHORT G_M19038_IG113
- jmp SHORT G_M19038_IG112
+ je SHORT G_M19038_IG108
+ jmp SHORT G_M19038_IG107
;; size=22 bbWeight=0.50 PerfScore 3.38
-G_M19038_IG116:
+G_M19038_IG111:
mov rdi, rbx
mov edx, 23
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:AppendWithExpansion(byref,int):this
call [rax]System.Text.StringBuilder:AppendWithExpansion(byref,int):this
;; size=20 bbWeight=0.50 PerfScore 1.88
-G_M19038_IG117:
+G_M19038_IG112:
movzx r14, byte ptr [r15+0x98]
mov rdi, qword ptr [r15+0xA0]
test r14d, r14d
- jne SHORT G_M19038_IG122
+ jne SHORT G_M19038_IG117
;; size=20 bbWeight=1 PerfScore 5.25
-G_M19038_IG118:
+G_M19038_IG113:
mov rsi, 0xD1FFAB1E ; ''
;; size=10 bbWeight=0.50 PerfScore 0.12
-G_M19038_IG119:
+G_M19038_IG114:
mov edx, dword ptr [rsi+0x08]
add rsi, 12
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:Append(byref,int):this
call [rax]System.Text.StringBuilder:Append(byref,int):this
;; size=22 bbWeight=0.50 PerfScore 2.88
-G_M19038_IG120:
+G_M19038_IG115:
mov rsi, 0xD1FFAB1E
mov rdi, gword ptr [rbx+0x08]
mov edx, dword ptr [rbx+0x18]
lea eax, [rdx+0x19]
cmp dword ptr [rdi+0x08], eax
- jb SHORT G_M19038_IG123
+ jb SHORT G_M19038_IG118
;; size=25 bbWeight=1 PerfScore 8.75
-G_M19038_IG121:
+G_M19038_IG116:
movsxd rax, edx
lea rdi, bword ptr [rdi+2*rax+0x10]
vmovdqu ymm0, ymmword ptr [rsi]
vmovdqu ymm1, ymmword ptr [rsi+0x12]
vmovdqu ymmword ptr [rdi], ymm0
vmovdqu ymmword ptr [rdi+0x12], ymm1
add edx, 25
mov dword ptr [rbx+0x18], edx
- jmp SHORT G_M19038_IG124
+ jmp SHORT G_M19038_IG119
;; size=34 bbWeight=0.50 PerfScore 9.25
-G_M19038_IG122:
+G_M19038_IG117:
mov rax, 0xD1FFAB1E ; code for System.Globalization.TimeSpanFormat:FormatC(System.TimeSpan):System.String
call [rax]System.Globalization.TimeSpanFormat:FormatC(System.TimeSpan):System.String
mov rsi, rax
test rsi, rsi
- je SHORT G_M19038_IG120
- jmp SHORT G_M19038_IG119
+ je SHORT G_M19038_IG115
+ jmp SHORT G_M19038_IG114
;; size=22 bbWeight=0.50 PerfScore 3.38
-G_M19038_IG123:
+G_M19038_IG118:
mov rdi, rbx
mov edx, 25
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:AppendWithExpansion(byref,int):this
call [rax]System.Text.StringBuilder:AppendWithExpansion(byref,int):this
;; size=20 bbWeight=0.50 PerfScore 1.88
-G_M19038_IG124:
+G_M19038_IG119:
movzx r14, byte ptr [r15+0xA8]
mov rdi, qword ptr [r15+0xB0]
test r14d, r14d
- jne SHORT G_M19038_IG129
+ jne SHORT G_M19038_IG124
;; size=20 bbWeight=1 PerfScore 5.25
-G_M19038_IG125:
+G_M19038_IG120:
mov rsi, 0xD1FFAB1E ; ''
;; size=10 bbWeight=0.50 PerfScore 0.12
-G_M19038_IG126:
+G_M19038_IG121:
mov edx, dword ptr [rsi+0x08]
add rsi, 12
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:Append(byref,int):this
call [rax]System.Text.StringBuilder:Append(byref,int):this
;; size=22 bbWeight=0.50 PerfScore 2.88
-G_M19038_IG127:
+G_M19038_IG122:
mov rsi, 0xD1FFAB1E
mov rdi, gword ptr [rbx+0x08]
mov edx, dword ptr [rbx+0x18]
lea eax, [rdx+0x18]
cmp dword ptr [rdi+0x08], eax
- jb SHORT G_M19038_IG130
+ jb SHORT G_M19038_IG125
;; size=25 bbWeight=1 PerfScore 8.75
-G_M19038_IG128:
+G_M19038_IG123:
movsxd rax, edx
lea rdi, bword ptr [rdi+2*rax+0x10]
vmovdqu ymm0, ymmword ptr [rsi]
vmovdqu xmm1, xmmword ptr [rsi+0x20]
vmovdqu ymmword ptr [rdi], ymm0
vmovdqu xmmword ptr [rdi+0x20], xmm1
add edx, 24
mov dword ptr [rbx+0x18], edx
- jmp SHORT G_M19038_IG131
+ jmp SHORT G_M19038_IG126
;; size=34 bbWeight=0.50 PerfScore 8.75
-G_M19038_IG129:
+G_M19038_IG124:
mov rax, 0xD1FFAB1E ; code for System.Globalization.TimeSpanFormat:FormatC(System.TimeSpan):System.String
call [rax]System.Globalization.TimeSpanFormat:FormatC(System.TimeSpan):System.String
mov rsi, rax
test rsi, rsi
- je SHORT G_M19038_IG127
- jmp SHORT G_M19038_IG126
+ je SHORT G_M19038_IG122
+ jmp SHORT G_M19038_IG121
;; size=22 bbWeight=0.50 PerfScore 3.38
-G_M19038_IG130:
+G_M19038_IG125:
mov rdi, rbx
mov edx, 24
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:AppendWithExpansion(byref,int):this
call [rax]System.Text.StringBuilder:AppendWithExpansion(byref,int):this
;; size=20 bbWeight=0.50 PerfScore 1.88
-G_M19038_IG131:
+G_M19038_IG126:
movzx rdi, byte ptr [r15+0xB8]
mov r15d, dword ptr [r15+0xBC]
test edi, edi
- jne SHORT G_M19038_IG136
+ jne SHORT G_M19038_IG131
;; size=19 bbWeight=1 PerfScore 5.25
-G_M19038_IG132:
+G_M19038_IG127:
mov rsi, 0xD1FFAB1E ; ''
;; size=10 bbWeight=0.50 PerfScore 0.12
-G_M19038_IG133:
+G_M19038_IG128:
mov edx, dword ptr [rsi+0x08]
add rsi, 12
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:Append(byref,int):this
call [rax]System.Text.StringBuilder:Append(byref,int):this
;; size=22 bbWeight=0.50 PerfScore 2.88
-G_M19038_IG134:
+G_M19038_IG129:
mov eax, 1
;; size=5 bbWeight=1 PerfScore 0.25
-G_M19038_IG135:
+G_M19038_IG130:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.25
-G_M19038_IG136:
+G_M19038_IG131:
mov rdi, 0xD1FFAB1E ; System.Net.Http.HttpKeepAlivePingPolicy
call CORINFO_HELP_NEWSFAST
mov dword ptr [rax+0x08], r15d
mov rdi, rax
mov rax, 0xD1FFAB1E ; code for System.Enum:ToString():System.String:this
call [rax]System.Enum:ToString():System.String:this
mov rsi, rax
test rsi, rsi
- je SHORT G_M19038_IG134
- jmp SHORT G_M19038_IG133
+ je SHORT G_M19038_IG129
+ jmp SHORT G_M19038_IG128
;; size=44 bbWeight=0.50 PerfScore 4.62
-; Total bytes of code 2976, prolog size 16, PerfScore 600.75, instruction count 697, allocated bytes for code 2976 (MethodHash=060db5a1) for method Microsoft.Extensions.DependencyInjection.SocketsHttpHandlerBuilderExtensions+SocketsHttpHandlerConfiguration:PrintMembers(System.Text.StringBuilder):ubyte:this (FullOpts)
+; Total bytes of code 2951, prolog size 16, PerfScore 612.00, instruction count 687, allocated bytes for code 2951 (MethodHash=060db5a1) for method Microsoft.Extensions.DependencyInjection.SocketsHttpHandlerBuilderExtensions+SocketsHttpHandlerConfiguration:PrintMembers(System.Text.StringBuilder):ubyte:this (FullOpts)
-25 (-0.96 % of base) - System.Security.Cryptography.X509Certificates.CertificateRequest:VerifyX509Signature(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.X509Certificates.PublicKey,System.Security.Cryptography.Asn1.AlgorithmIdentifierAsn):ubyte
; Assembly listing for method System.Security.Cryptography.X509Certificates.CertificateRequest:VerifyX509Signature(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.X509Certificates.PublicKey,System.Security.Cryptography.Asn1.AlgorithmIdentifierAsn):ubyte (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
; 0 inlinees with PGO data; 40 single block inlinees; 7 inlinees without PGO data
; Final local variable assignments
;
;* V00 arg0 [V00 ] ( 0, 0 ) struct (16) zero-ref multireg-arg single-def <System.ReadOnlySpan`1[ubyte]>
;* V01 arg1 [V01 ] ( 0, 0 ) struct (16) zero-ref multireg-arg single-def <System.ReadOnlySpan`1[ubyte]>
; V02 arg2 [V02,T10] ( 4, 4 ) ref -> rbx class-hnd single-def <System.Security.Cryptography.X509Certificates.PublicKey>
; V03 arg3 [V03,T08] ( 7, 7 ) struct (32) [rbp+0x10] do-not-enreg[SF] ld-addr-op single-def <System.Security.Cryptography.Asn1.AlgorithmIdentifierAsn>
; V04 loc0 [V04,T02] ( 15, 10 ) ref -> [rbp-0x98] class-hnd EH-live spill-single-def <System.Security.Cryptography.RSA>
; V05 loc1 [V05,T05] ( 12, 7 ) ref -> [rbp-0xA0] class-hnd EH-live spill-single-def <System.Security.Cryptography.ECDsa>
;* V06 loc2 [V06 ] ( 0, 0 ) struct ( 8) zero-ref single-def <System.Security.Cryptography.HashAlgorithmName>
; V07 loc3 [V07 ] ( 3, 3 ) struct (72) [rbp-0x70] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Security.Cryptography.Asn1.PssParamsAsn>
; V08 loc4 [V08,T42] ( 2, 2 ) ref -> rbx class-hnd exact single-def <System.Security.Cryptography.RSASignaturePadding>
-; V09 loc5 [V09,T04] ( 11, 9 ) ubyte -> [rbp-0x74] do-not-enreg[Z] EH-live
+; V09 loc5 [V09,T03] ( 11, 9 ) ubyte -> [rbp-0x74] do-not-enreg[Z] EH-live
;* V10 loc6 [V10 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.Nullable`1[int]>
;* V11 loc7 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.String>
;* V12 loc8 [V12 ] ( 0, 0 ) int -> zero-ref
;* V13 loc9 [V13 ] ( 0, 0 ) ushort -> zero-ref
; V14 OutArgs [V14 ] ( 1, 1 ) struct ( 8) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V15 tmp1 [V15,T71] ( 3, 0 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.NotSupportedException>
;* V16 tmp2 [V16 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlyMemory`1[ubyte]>
;* V17 tmp3 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd "impSpillSpecialSideEff" <System.Security.Cryptography.CryptographicException>
;* V18 tmp4 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd "impSpillSpecialSideEff" <System.Formats.Asn1.AsnContentException>
;* V19 tmp5 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
;* V20 tmp6 [V20 ] ( 0, 0 ) ref -> zero-ref single-def "spilling varStr"
; V21 tmp7 [V21,T38] ( 2, 2.50) int -> rsi "spilling unroll qmark"
;* V22 tmp8 [V22 ] ( 0, 0 ) ref -> zero-ref single-def "spilling varStr"
; V23 tmp9 [V23,T29] ( 2, 4 ) int -> rsi "spilling unroll qmark"
;* V24 tmp10 [V24 ] ( 0, 0 ) ref -> zero-ref single-def "spilling varStr"
; V25 tmp11 [V25,T30] ( 2, 4 ) int -> rsi "spilling unroll qmark"
;* V26 tmp12 [V26 ] ( 0, 0 ) ref -> zero-ref single-def "spilling varStr"
; V27 tmp13 [V27,T31] ( 2, 4 ) int -> rsi "spilling unroll qmark"
;* V28 tmp14 [V28 ] ( 0, 0 ) ref -> zero-ref single-def "spilling varStr"
; V29 tmp15 [V29,T32] ( 2, 4 ) int -> rsi "spilling unroll qmark"
;* V30 tmp16 [V30 ] ( 0, 0 ) ref -> zero-ref single-def "spilling varStr"
; V31 tmp17 [V31,T33] ( 2, 4 ) int -> rsi "spilling unroll qmark"
;* V32 tmp18 [V32 ] ( 0, 0 ) ref -> zero-ref single-def "spilling varStr"
; V33 tmp19 [V33,T34] ( 2, 4 ) int -> rsi "spilling unroll qmark"
;* V34 tmp20 [V34 ] ( 0, 0 ) ref -> zero-ref single-def "spilling varStr"
; V35 tmp21 [V35,T35] ( 2, 4 ) int -> rcx "spilling unroll qmark"
;* V36 tmp22 [V36 ] ( 0, 0 ) ref -> zero-ref single-def "spilling varStr"
; V37 tmp23 [V37,T36] ( 2, 4 ) int -> rcx "spilling unroll qmark"
;* V38 tmp24 [V38 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Security.Cryptography.HashAlgorithmName>
;* V39 tmp25 [V39 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Security.Cryptography.HashAlgorithmName>
;* V40 tmp26 [V40 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Security.Cryptography.HashAlgorithmName>
;* V41 tmp27 [V41 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Security.Cryptography.HashAlgorithmName>
;* V42 tmp28 [V42,T44] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V43 tmp29 [V43 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[SF] ld-addr-op "Inlining Arg" <System.Nullable`1[System.ReadOnlyMemory`1[ubyte]]>
;* V44 tmp30 [V44 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlyMemory`1[ubyte]>
;* V45 tmp31 [V45 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
;* V46 tmp32 [V46 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ubyte]>
; V47 tmp33 [V47,T06] ( 7, 7 ) byref -> r8 "Inline stloc first use temp"
; V48 tmp34 [V48,T09] ( 6, 6 ) int -> rsi "Inline stloc first use temp"
;* V49 tmp35 [V49 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.Object>
;* V50 tmp36 [V50 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V51 tmp37 [V51 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <System.Buffers.MemoryManager`1[ubyte]>
;* V52 tmp38 [V52 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Span`1[ubyte]>
;* V53 tmp39 [V53 ] ( 0, 0 ) struct (16) zero-ref multireg-ret ld-addr-op "Inline stloc first use temp" <System.Span`1[ubyte]>
; V54 tmp40 [V54,T39] ( 3, 3 ) long -> rdx "Inline stloc first use temp"
;* V55 tmp41 [V55 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V56 tmp42 [V56 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "updating class info" <ubyte[]>
;* V57 tmp43 [V57 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <ubyte[]>
; V58 tmp44 [V58,T37] ( 2, 4 ) byref -> r8 single-def "Inlining Arg"
;* V59 tmp45 [V59 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V60 tmp46 [V60 ] ( 0, 0 ) ref -> zero-ref single-def "spilling varStr"
; V61 tmp47 [V61,T20] ( 2, 4 ) int -> r9 "spilling unroll qmark"
;* V62 tmp48 [V62 ] ( 0, 0 ) ref -> zero-ref single-def "spilling varStr"
; V63 tmp49 [V63,T21] ( 2, 4 ) int -> r9 "spilling unroll qmark"
;* V64 tmp50 [V64 ] ( 0, 0 ) ref -> zero-ref single-def "spilling varStr"
; V65 tmp51 [V65,T22] ( 2, 4 ) int -> r9 "spilling unroll qmark"
;* V66 tmp52 [V66 ] ( 0, 0 ) ref -> zero-ref single-def "spilling varStr"
; V67 tmp53 [V67,T23] ( 2, 4 ) int -> rsi "spilling unroll qmark"
;* V68 tmp54 [V68 ] ( 0, 0 ) ref -> zero-ref single-def "spilling varStr"
; V69 tmp55 [V69,T24] ( 2, 4 ) int -> rdx "spilling unroll qmark"
;* V70 tmp56 [V70 ] ( 0, 0 ) ref -> zero-ref single-def "spilling varStr"
; V71 tmp57 [V71,T25] ( 2, 4 ) int -> r9 "spilling unroll qmark"
;* V72 tmp58 [V72 ] ( 0, 0 ) ref -> zero-ref single-def "spilling varStr"
; V73 tmp59 [V73,T26] ( 2, 4 ) int -> r9 "spilling unroll qmark"
;* V74 tmp60 [V74 ] ( 0, 0 ) ref -> zero-ref single-def "spilling varStr"
; V75 tmp61 [V75,T27] ( 2, 4 ) int -> r8 "spilling unroll qmark"
;* V76 tmp62 [V76 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Security.Cryptography.HashAlgorithmName>
;* V77 tmp63 [V77 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.String>
-;* V78 tmp64 [V78,T75] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V78 tmp64 [V78 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V79 tmp65 [V79 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V80 tmp66 [V80,T11] ( 4, 4 ) byref -> r15 single-def "field V00._reference (fldOffset=0x0)" P-INDEP
; V81 tmp67 [V81,T13] ( 4, 4 ) int -> r13 single-def "field V00._length (fldOffset=0x8)" P-INDEP
; V82 tmp68 [V82,T12] ( 4, 4 ) byref -> r14 single-def "field V01._reference (fldOffset=0x0)" P-INDEP
; V83 tmp69 [V83,T14] ( 4, 4 ) int -> r12 single-def "field V01._length (fldOffset=0x8)" P-INDEP
-; V84 tmp70 [V84,T03] ( 11, 10 ) ref -> [rbp-0xA8] "field V06._name (fldOffset=0x0)" P-INDEP
+; V84 tmp70 [V84,T04] ( 10, 9 ) ref -> [rbp-0xA8] "field V06._name (fldOffset=0x0)" P-INDEP
;* V85 tmp71 [V85,T51] ( 0, 0 ) ubyte -> zero-ref "field V10.hasValue (fldOffset=0x0)" P-INDEP
;* V86 tmp72 [V86,T52] ( 0, 0 ) int -> zero-ref "field V10.value (fldOffset=0x4)" P-INDEP
;* V87 tmp73 [V87 ] ( 0, 0 ) ref -> zero-ref "field V16._object (fldOffset=0x0)" P-INDEP
;* V88 tmp74 [V88 ] ( 0, 0 ) int -> zero-ref "field V16._index (fldOffset=0x8)" P-INDEP
;* V89 tmp75 [V89 ] ( 0, 0 ) int -> zero-ref "field V16._length (fldOffset=0xc)" P-INDEP
;* V90 tmp76 [V90,T47] ( 0, 0 ) ref -> zero-ref single-def "field V38._name (fldOffset=0x0)" P-INDEP
;* V91 tmp77 [V91,T48] ( 0, 0 ) ref -> zero-ref single-def "field V39._name (fldOffset=0x0)" P-INDEP
;* V92 tmp78 [V92,T49] ( 0, 0 ) ref -> zero-ref single-def "field V40._name (fldOffset=0x0)" P-INDEP
;* V93 tmp79 [V93,T50] ( 0, 0 ) ref -> zero-ref single-def "field V41._name (fldOffset=0x0)" P-INDEP
;* V94 tmp80 [V94 ] ( 0, 0 ) ref -> zero-ref single-def "field V44._object (fldOffset=0x0)" P-INDEP
;* V95 tmp81 [V95 ] ( 0, 0 ) int -> zero-ref "field V44._index (fldOffset=0x8)" P-INDEP
;* V96 tmp82 [V96 ] ( 0, 0 ) int -> zero-ref "field V44._length (fldOffset=0xc)" P-INDEP
;* V97 tmp83 [V97 ] ( 0, 0 ) byref -> zero-ref single-def "field V45._reference (fldOffset=0x0)" P-INDEP
;* V98 tmp84 [V98 ] ( 0, 0 ) int -> zero-ref "field V45._length (fldOffset=0x8)" P-INDEP
;* V99 tmp85 [V99 ] ( 0, 0 ) byref -> zero-ref "field V46._reference (fldOffset=0x0)" P-INDEP
;* V100 tmp86 [V100 ] ( 0, 0 ) int -> zero-ref "field V46._length (fldOffset=0x8)" P-INDEP
;* V101 tmp87 [V101 ] ( 0, 0 ) byref -> zero-ref single-def "field V50._reference (fldOffset=0x0)" P-INDEP
;* V102 tmp88 [V102 ] ( 0, 0 ) int -> zero-ref "field V50._length (fldOffset=0x8)" P-INDEP
;* V103 tmp89 [V103 ] ( 0, 0 ) byref -> zero-ref "field V52._reference (fldOffset=0x0)" P-DEP
;* V104 tmp90 [V104 ] ( 0, 0 ) int -> zero-ref "field V52._length (fldOffset=0x8)" P-DEP
; V105 tmp91 [V105,T43] ( 2, 2 ) byref -> r8 "field V53._reference (fldOffset=0x0)" P-INDEP
; V106 tmp92 [V106,T45] ( 2, 2 ) int -> rsi "field V53._length (fldOffset=0x8)" P-INDEP
;* V107 tmp93 [V107 ] ( 0, 0 ) byref -> zero-ref single-def "field V59._reference (fldOffset=0x0)" P-INDEP
;* V108 tmp94 [V108 ] ( 0, 0 ) int -> zero-ref "field V59._length (fldOffset=0x8)" P-INDEP
;* V109 tmp95 [V109 ] ( 0, 0 ) ref -> zero-ref single-def "field V76._name (fldOffset=0x0)" P-INDEP
; V110 tmp96 [V110,T00] ( 42, 39 ) ref -> rbx single-def "V03.[000..008)"
; V111 tmp97 [V111,T40] ( 3, 3 ) ubyte -> r8 "V03.[008..009)"
;* V112 tmp98 [V112 ] ( 0, 0 ) ubyte -> zero-ref "V43.[000..001)"
; V113 tmp99 [V113,T07] ( 7, 7 ) ref -> rdx single-def "V43.[008..016)"
; V114 tmp100 [V114,T46] ( 2, 2 ) int -> [rbp-0x78] spill-single-def "V43.[016..020)"
; V115 tmp101 [V115,T41] ( 3, 3 ) int -> [rbp-0x7C] spill-single-def "V43.[020..024)"
; V116 tmp102 [V116,T72] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
; V117 tmp103 [V117,T73] ( 2, 0 ) ref -> rdi single-def "argument with side effect"
; V118 tmp104 [V118,T74] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
; V119 tmp105 [V119,T15] ( 3, 6 ) struct ( 8) [rbp-0x88] do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[int]>
; V120 PSPSym [V120,T53] ( 1, 1 ) long -> [rbp-0xB8] do-not-enreg[V] "PSPSym"
; V121 cse0 [V121,T28] ( 5, 4.67) int -> [rbp-0x8C] spill-single-def "CSE #10: conservative"
; V122 cse1 [V122,T01] ( 23, 14 ) int -> [rbp-0x90] spill-single-def "CSE #01: aggressive"
; V123 rat0 [V123,T70] ( 3, 1.50) simd32 -> mm0 "ReplaceWithLclVar is creating a new local variable"
; V124 rat1 [V124,T16] ( 3, 5.50) int -> rcx "ReplaceWithLclVar is creating a new local variable"
; V125 rat2 [V125,T54] ( 3, 6 ) simd32 -> mm0 "ReplaceWithLclVar is creating a new local variable"
; V126 rat3 [V126,T55] ( 3, 6 ) simd32 -> mm0 "ReplaceWithLclVar is creating a new local variable"
; V127 rat4 [V127,T56] ( 3, 6 ) simd32 -> mm0 "ReplaceWithLclVar is creating a new local variable"
; V128 rat5 [V128,T57] ( 3, 6 ) simd32 -> mm0 "ReplaceWithLclVar is creating a new local variable"
; V129 rat6 [V129,T17] ( 3, 5.50) int -> rcx "ReplaceWithLclVar is creating a new local variable"
; V130 rat7 [V130,T58] ( 3, 6 ) simd32 -> mm0 "ReplaceWithLclVar is creating a new local variable"
; V131 rat8 [V131,T59] ( 3, 6 ) simd32 -> mm0 "ReplaceWithLclVar is creating a new local variable"
; V132 rat9 [V132,T60] ( 3, 6 ) simd32 -> mm0 "ReplaceWithLclVar is creating a new local variable"
; V133 rat10 [V133,T61] ( 3, 6 ) simd32 -> mm0 "ReplaceWithLclVar is creating a new local variable"
; V134 rat11 [V134,T18] ( 3, 5.50) int -> r10 "ReplaceWithLclVar is creating a new local variable"
; V135 rat12 [V135,T62] ( 3, 6 ) simd32 -> mm0 "ReplaceWithLclVar is creating a new local variable"
; V136 rat13 [V136,T63] ( 3, 6 ) simd32 -> mm0 "ReplaceWithLclVar is creating a new local variable"
; V137 rat14 [V137,T64] ( 3, 6 ) simd32 -> mm0 "ReplaceWithLclVar is creating a new local variable"
; V138 rat15 [V138,T65] ( 3, 6 ) simd32 -> mm0 "ReplaceWithLclVar is creating a new local variable"
; V139 rat16 [V139,T19] ( 3, 5.50) int -> r10 "ReplaceWithLclVar is creating a new local variable"
; V140 rat17 [V140,T66] ( 3, 6 ) simd32 -> mm0 "ReplaceWithLclVar is creating a new local variable"
; V141 rat18 [V141,T67] ( 3, 6 ) simd32 -> mm0 "ReplaceWithLclVar is creating a new local variable"
; V142 rat19 [V142,T68] ( 3, 6 ) simd32 -> mm0 "ReplaceWithLclVar is creating a new local variable"
; V143 rat20 [V143,T69] ( 3, 6 ) simd32 -> mm0 "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 152
G_M60469_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 152
lea rbp, [rsp+0xC0]
vxorps xmm8, xmm8, xmm8
vmovdqu32 zmmword ptr [rbp-0x70], zmm8
xor eax, eax
mov qword ptr [rbp-0x30], rax
mov qword ptr [rbp-0xB8], rsp
mov r15, rdi
mov r13d, esi
mov r14, rdx
mov r12d, ecx
mov rbx, r8
;; size=68 bbWeight=1 PerfScore 12.58
G_M60469_IG02:
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Security.Cryptography.X509Certificates.PublicKey:GetRSAPublicKey():System.Security.Cryptography.RSA:this
cmp dword ptr [rdi], edi
call [rax]System.Security.Cryptography.X509Certificates.PublicKey:GetRSAPublicKey():System.Security.Cryptography.RSA:this
mov gword ptr [rbp-0x98], rax
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Security.Cryptography.X509Certificates.PublicKey:GetECDsaPublicKey():System.Security.Cryptography.ECDsa:this
call [rax]System.Security.Cryptography.X509Certificates.PublicKey:GetECDsaPublicKey():System.Security.Cryptography.ECDsa:this
mov gword ptr [rbp-0xA0], rax
mov rbx, gword ptr [rbp+0x10]
movzx r8, byte ptr [rbp+0x18]
;; size=55 bbWeight=1 PerfScore 14.00
G_M60469_IG03:
test rbx, rbx
- je G_M60469_IG72
+ je G_M60469_IG70
;; size=9 bbWeight=1 PerfScore 1.25
G_M60469_IG04:
mov r9d, dword ptr [rbx+0x08]
mov dword ptr [rbp-0x90], r9d
cmp r9d, 21
jne SHORT G_M60469_IG07
;; size=17 bbWeight=0.50 PerfScore 2.12
G_M60469_IG05:
vmovups ymm0, ymmword ptr [rbx+0x0C]
vpxor ymm0, ymm0, ymmword ptr [reloc @RWD00]
vmovups ymm1, ymmword ptr [rbx+0x16]
vpternlogq ymm0, ymm1, ymmword ptr [reloc @RWD32], -10
vptest ymm0, ymm0
sete sil
movzx rsi, sil
test esi, esi
je SHORT G_M60469_IG07
cmp gword ptr [rbp-0x98], 0
je SHORT G_M60469_IG06
test r8d, r8d
- jne G_M60469_IG69
+ jne G_M60469_IG67
;; size=65 bbWeight=0.25 PerfScore 6.44
G_M60469_IG06:
xor r9d, r9d
mov dword ptr [rbp-0x74], r9d
- jmp G_M60469_IG76
+ jmp G_M60469_IG74
;; size=12 bbWeight=1 PerfScore 3.25
G_M60469_IG07:
lea r10d, [r9-0x11]
mov dword ptr [rbp-0x8C], r10d
cmp r10d, 4
- ja G_M60469_IG72
+ ja G_M60469_IG70
;; size=21 bbWeight=1 PerfScore 2.75
G_M60469_IG08:
mov ecx, r10d
lea rdx, [reloc @RWD64]
mov edx, dword ptr [rdx+4*rcx]
lea rsi, G_M60469_IG02
add rdx, rsi
jmp rdx
;; size=25 bbWeight=0.83 PerfScore 5.00
G_M60469_IG09:
cmp r9d, 20
- jbe G_M60469_IG73
+ jbe G_M60469_IG71
movzx rcx, word ptr [rbx+0x34]
add ecx, -49
cmp ecx, 2
- ja G_M60469_IG72
+ ja G_M60469_IG70
;; size=26 bbWeight=1 PerfScore 4.75
G_M60469_IG10:
mov esi, ecx
lea rdx, [reloc @RWD84]
mov edx, dword ptr [rdx+4*rsi]
lea rcx, G_M60469_IG02
add rdx, rcx
jmp rdx
;; size=24 bbWeight=0.75 PerfScore 4.50
G_M60469_IG11:
cmp r9d, 21
- jne G_M60469_IG72
+ jne G_M60469_IG70
;; size=10 bbWeight=0.50 PerfScore 0.62
G_M60469_IG12:
vmovups ymm0, ymmword ptr [rbx+0x0C]
vpxor ymm0, ymm0, ymmword ptr [reloc @RWD00]
vmovups ymm1, ymmword ptr [rbx+0x16]
vpternlogq ymm0, ymm1, ymmword ptr [reloc @RWD96], -10
vptest ymm0, ymm0
sete sil
movzx rsi, sil
test esi, esi
jne G_M60469_IG23
- jmp G_M60469_IG72
+ jmp G_M60469_IG70
;; size=55 bbWeight=1 PerfScore 23.50
G_M60469_IG13:
cmp r9d, 21
- jne G_M60469_IG72
+ jne G_M60469_IG70
;; size=10 bbWeight=0.50 PerfScore 0.62
G_M60469_IG14:
vmovups ymm0, ymmword ptr [rbx+0x0C]
vpxor ymm0, ymm0, ymmword ptr [reloc @RWD00]
vmovups ymm1, ymmword ptr [rbx+0x16]
vpternlogq ymm0, ymm1, ymmword ptr [reloc @RWD128], -10
vptest ymm0, ymm0
sete sil
movzx rsi, sil
test esi, esi
jne G_M60469_IG26
- jmp G_M60469_IG72
+ jmp G_M60469_IG70
;; size=55 bbWeight=1 PerfScore 23.50
G_M60469_IG15:
cmp r9d, 21
- jne G_M60469_IG72
+ jne G_M60469_IG70
;; size=10 bbWeight=0.50 PerfScore 0.62
G_M60469_IG16:
vmovups ymm0, ymmword ptr [rbx+0x0C]
vpxor ymm0, ymm0, ymmword ptr [reloc @RWD00]
vmovups ymm1, ymmword ptr [rbx+0x16]
vpternlogq ymm0, ymm1, ymmword ptr [reloc @RWD160], -10
vptest ymm0, ymm0
sete sil
movzx rsi, sil
test esi, esi
jne G_M60469_IG29
- jmp G_M60469_IG72
+ jmp G_M60469_IG70
;; size=55 bbWeight=1 PerfScore 23.50
G_M60469_IG17:
cmp r9d, 20
- jne G_M60469_IG72
+ jne G_M60469_IG70
;; size=10 bbWeight=0.50 PerfScore 0.62
G_M60469_IG18:
vmovups ymm0, ymmword ptr [rbx+0x0C]
vpxor ymm0, ymm0, ymmword ptr [reloc @RWD00]
vmovups ymm1, ymmword ptr [rbx+0x14]
vpternlogq ymm0, ymm1, ymmword ptr [reloc @RWD192], -10
vptest ymm0, ymm0
sete cl
movzx rcx, cl
test ecx, ecx
jne G_M60469_IG32
- jmp G_M60469_IG72
+ jmp G_M60469_IG70
;; size=53 bbWeight=1 PerfScore 23.50
G_M60469_IG19:
cmp r9d, 18
- jbe G_M60469_IG73
+ jbe G_M60469_IG71
movzx rcx, word ptr [rbx+0x30]
add ecx, -50
cmp ecx, 2
- ja G_M60469_IG72
+ ja G_M60469_IG70
;; size=26 bbWeight=1 PerfScore 4.75
G_M60469_IG20:
mov esi, ecx
lea rdx, [reloc @RWD224]
mov edx, dword ptr [rdx+4*rsi]
lea rcx, G_M60469_IG02
add rdx, rcx
jmp rdx
;; size=24 bbWeight=0.75 PerfScore 4.50
G_M60469_IG21:
cmp r9d, 19
- jne G_M60469_IG72
+ jne G_M60469_IG70
;; size=10 bbWeight=0.50 PerfScore 0.62
G_M60469_IG22:
vmovups ymm0, ymmword ptr [rbx+0x0C]
vpxor ymm0, ymm0, ymmword ptr [reloc @RWD256]
vmovups ymm1, ymmword ptr [rbx+0x12]
vpternlogq ymm0, ymm1, ymmword ptr [reloc @RWD288], -10
vptest ymm0, ymm0
sete sil
movzx rsi, sil
test esi, esi
- je G_M60469_IG72
+ je G_M60469_IG70
;; size=50 bbWeight=1 PerfScore 21.50
G_M60469_IG23:
mov rcx, 0xD1FFAB1E ; 'SHA512'
mov r11, rcx
mov gword ptr [rbp-0xA8], r11
jmp G_M60469_IG33
;; size=25 bbWeight=1 PerfScore 3.50
G_M60469_IG24:
cmp r9d, 19
- jne G_M60469_IG72
+ jne G_M60469_IG70
;; size=10 bbWeight=0.50 PerfScore 0.62
G_M60469_IG25:
vmovups ymm0, ymmword ptr [rbx+0x0C]
vpxor ymm0, ymm0, ymmword ptr [reloc @RWD256]
vmovups ymm1, ymmword ptr [rbx+0x12]
vpternlogq ymm0, ymm1, ymmword ptr [reloc @RWD320], -10
vptest ymm0, ymm0
sete sil
movzx rsi, sil
test esi, esi
- je G_M60469_IG72
+ je G_M60469_IG70
;; size=50 bbWeight=1 PerfScore 21.50
G_M60469_IG26:
mov r11, 0xD1FFAB1E ; 'SHA384'
mov gword ptr [rbp-0xA8], r11
jmp G_M60469_IG33
;; size=22 bbWeight=1 PerfScore 3.25
G_M60469_IG27:
cmp r9d, 19
- jne G_M60469_IG72
+ jne G_M60469_IG70
;; size=10 bbWeight=0.50 PerfScore 0.62
G_M60469_IG28:
vmovups ymm0, ymmword ptr [rbx+0x0C]
vpxor ymm0, ymm0, ymmword ptr [reloc @RWD256]
vmovups ymm1, ymmword ptr [rbx+0x12]
vpternlogq ymm0, ymm1, ymmword ptr [reloc @RWD352], -10
vptest ymm0, ymm0
sete sil
movzx rsi, sil
test esi, esi
- je G_M60469_IG72
+ je G_M60469_IG70
;; size=50 bbWeight=1 PerfScore 21.50
G_M60469_IG29:
mov r11, 0xD1FFAB1E ; 'SHA256'
mov gword ptr [rbp-0xA8], r11
jmp SHORT G_M60469_IG33
;; size=19 bbWeight=1 PerfScore 3.25
G_M60469_IG30:
cmp r9d, 17
- jne G_M60469_IG72
+ jne G_M60469_IG70
;; size=10 bbWeight=0.50 PerfScore 0.62
G_M60469_IG31:
vmovups ymm0, ymmword ptr [rbx+0x0C]
vpxor ymm0, ymm0, ymmword ptr [reloc @RWD256]
vmovups ymm1, ymmword ptr [rbx+0x0E]
vpternlogq ymm0, ymm1, ymmword ptr [reloc @RWD384], -10
vptest ymm0, ymm0
sete cl
movzx rcx, cl
test ecx, ecx
mov r9d, dword ptr [rbp-0x90]
- je G_M60469_IG72
+ je G_M60469_IG70
;; size=55 bbWeight=1 PerfScore 22.50
G_M60469_IG32:
mov rcx, 0xD1FFAB1E ; 'SHA1'
mov gword ptr [rbp-0xA8], rcx
;; size=17 bbWeight=1 PerfScore 1.25
G_M60469_IG33:
mov rdx, gword ptr [rbp+0x20]
mov esi, dword ptr [rbp+0x28]
mov dword ptr [rbp-0x78], esi
mov r11d, dword ptr [rbp+0x2C]
mov dword ptr [rbp-0x7C], r11d
test r8d, r8d
jne SHORT G_M60469_IG36
;; size=23 bbWeight=1 PerfScore 6.25
G_M60469_IG34:
cmp r10d, 4
ja G_M60469_IG46
;; size=10 bbWeight=1 PerfScore 1.25
G_M60469_IG35:
mov esi, dword ptr [rbp-0x8C]
lea rdx, [reloc @RWD416]
mov edx, dword ptr [rdx+4*rsi]
lea r8, G_M60469_IG02
add rdx, r8
jmp rdx
;; size=28 bbWeight=0.83 PerfScore 5.63
G_M60469_IG36:
xor r8, r8
xor esi, esi
test rdx, rdx
je SHORT G_M60469_IG39
mov r8, qword ptr [rdx]
test dword ptr [r8], 0xD1FFAB1E
je SHORT G_M60469_IG37
lea r8, bword ptr [rdx+0x10]
mov esi, dword ptr [rdx+0x08]
jmp SHORT G_M60469_IG38
;; size=31 bbWeight=1 PerfScore 12.25
G_M60469_IG37:
mov rdi, rdx
mov rdx, qword ptr [rdx]
mov rdx, qword ptr [rdx+0x40]
call [rdx+0x28]System.Buffers.MemoryManager`1[ubyte]:GetSpan():System.Span`1[ubyte]:this
mov r8, rax
mov esi, edx
mov r9d, dword ptr [rbp-0x90]
mov r10d, dword ptr [rbp-0x8C]
;; size=32 bbWeight=1 PerfScore 9.75
G_M60469_IG38:
mov edx, dword ptr [rbp-0x78]
and edx, 0xD1FFAB1E
mov r11d, dword ptr [rbp-0x7C]
add r11, rdx
mov esi, esi
cmp r11, rsi
- ja G_M60469_IG70
+ ja G_M60469_IG68
add r8, rdx
mov esi, dword ptr [rbp-0x7C]
;; size=33 bbWeight=1 PerfScore 5.25
G_M60469_IG39:
cmp esi, 2
je SHORT G_M60469_IG41
;; size=5 bbWeight=1 PerfScore 1.25
G_M60469_IG40:
xor r8d, r8d
mov dword ptr [rbp-0x74], r8d
- jmp G_M60469_IG76
+ jmp G_M60469_IG74
;; size=12 bbWeight=1 PerfScore 3.25
G_M60469_IG41:
cmp byte ptr [r8], 5
jne SHORT G_M60469_IG40
cmp byte ptr [r8+0x01], 0
je G_M60469_IG34
jmp SHORT G_M60469_IG40
;; size=19 bbWeight=1 PerfScore 10.00
G_M60469_IG42:
cmp r9d, 20
- jbe G_M60469_IG73
+ jbe G_M60469_IG71
movzx r10, word ptr [rbx+0x34]
add r10d, -49
cmp r10d, 2
ja SHORT G_M60469_IG46
;; size=25 bbWeight=1 PerfScore 4.75
G_M60469_IG43:
mov edx, r10d
lea rsi, [reloc @RWD436]
mov esi, dword ptr [rsi+4*rdx]
lea r8, G_M60469_IG02
add rsi, r8
jmp rsi
;; size=25 bbWeight=0.75 PerfScore 4.50
G_M60469_IG44:
cmp r9d, 21
jne SHORT G_M60469_IG46
;; size=6 bbWeight=0.50 PerfScore 0.62
G_M60469_IG45:
vmovups ymm0, ymmword ptr [rbx+0x0C]
vpxor ymm0, ymm0, ymmword ptr [reloc @RWD00]
vmovups ymm1, ymmword ptr [rbx+0x16]
vpternlogq ymm0, ymm1, ymmword ptr [reloc @RWD96], -10
vptest ymm0, ymm0
sete r9b
movzx r9, r9b
test r9d, r9d
jne G_M60469_IG53
;; size=51 bbWeight=1 PerfScore 21.50
G_M60469_IG46:
xor r9d, r9d
mov dword ptr [rbp-0x74], r9d
- jmp G_M60469_IG76
+ jmp G_M60469_IG74
;; size=12 bbWeight=1 PerfScore 3.25
G_M60469_IG47:
cmp r9d, 21
jne SHORT G_M60469_IG46
;; size=6 bbWeight=0.50 PerfScore 0.62
G_M60469_IG48:
vmovups ymm0, ymmword ptr [rbx+0x0C]
vpxor ymm0, ymm0, ymmword ptr [reloc @RWD00]
vmovups ymm1, ymmword ptr [rbx+0x16]
vpternlogq ymm0, ymm1, ymmword ptr [reloc @RWD128], -10
vptest ymm0, ymm0
sete r9b
movzx r9, r9b
test r9d, r9d
jne SHORT G_M60469_IG53
jmp SHORT G_M60469_IG46
;; size=49 bbWeight=1 PerfScore 23.50
G_M60469_IG49:
cmp r9d, 21
jne SHORT G_M60469_IG46
;; size=6 bbWeight=0.50 PerfScore 0.62
G_M60469_IG50:
vmovups ymm0, ymmword ptr [rbx+0x0C]
vpxor ymm0, ymm0, ymmword ptr [reloc @RWD00]
vmovups ymm1, ymmword ptr [rbx+0x16]
vpternlogq ymm0, ymm1, ymmword ptr [reloc @RWD160], -10
vptest ymm0, ymm0
sete r9b
movzx r9, r9b
test r9d, r9d
jne SHORT G_M60469_IG53
jmp SHORT G_M60469_IG46
;; size=49 bbWeight=1 PerfScore 23.50
G_M60469_IG51:
cmp r9d, 20
jne SHORT G_M60469_IG46
;; size=6 bbWeight=0.50 PerfScore 0.62
G_M60469_IG52:
vmovups ymm0, ymmword ptr [rbx+0x0C]
vpxor ymm0, ymm0, ymmword ptr [reloc @RWD00]
vmovups ymm1, ymmword ptr [rbx+0x14]
vpternlogq ymm0, ymm1, ymmword ptr [reloc @RWD192], -10
vptest ymm0, ymm0
sete sil
movzx rsi, sil
test esi, esi
je G_M60469_IG46
;; size=50 bbWeight=1 PerfScore 21.50
G_M60469_IG53:
mov rdi, gword ptr [rbp-0x98]
test rdi, rdi
jne SHORT G_M60469_IG54
xor esi, esi
mov dword ptr [rbp-0x74], esi
- jmp G_M60469_IG76
+ jmp G_M60469_IG74
;; size=22 bbWeight=1 PerfScore 5.50
G_M60469_IG54:
mov rsi, 0xD1FFAB1E ; const ptr
mov rsi, gword ptr [rsi]
mov gword ptr [rsp], rsi
mov rsi, r15
mov edx, r13d
mov rcx, r14
mov r8d, r12d
mov r9, gword ptr [rbp-0xA8]
mov r10, qword ptr [rdi]
mov r10, qword ptr [r10+0x68]
call [r10+0x38]System.Security.Cryptography.RSA:VerifyData(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.HashAlgorithmName,System.Security.Cryptography.RSASignaturePadding):ubyte:this
mov dword ptr [rbp-0x74], eax
- jmp G_M60469_IG76
+ jmp G_M60469_IG74
;; size=55 bbWeight=1 PerfScore 15.25
G_M60469_IG55:
cmp r9d, 18
- jbe G_M60469_IG73
+ jbe G_M60469_IG71
movzx r10, word ptr [rbx+0x30]
add r10d, -50
cmp r10d, 2
ja G_M60469_IG46
;; size=29 bbWeight=1 PerfScore 4.75
G_M60469_IG56:
mov edx, r10d
lea rsi, [reloc @RWD448]
mov esi, dword ptr [rsi+4*rdx]
lea r8, G_M60469_IG02
add rsi, r8
jmp rsi
;; size=25 bbWeight=0.75 PerfScore 4.50
G_M60469_IG57:
cmp r9d, 19
jne G_M60469_IG46
;; size=10 bbWeight=0.50 PerfScore 0.62
G_M60469_IG58:
vmovups ymm0, ymmword ptr [rbx+0x0C]
vpxor ymm0, ymm0, ymmword ptr [reloc @RWD256]
vmovups ymm1, ymmword ptr [rbx+0x12]
vpternlogq ymm0, ymm1, ymmword ptr [reloc @RWD288], -10
vptest ymm0, ymm0
sete r9b
movzx r9, r9b
test r9d, r9d
jne G_M60469_IG65
jmp G_M60469_IG46
;; size=56 bbWeight=1 PerfScore 23.50
G_M60469_IG59:
cmp r9d, 19
jne G_M60469_IG46
;; size=10 bbWeight=0.50 PerfScore 0.62
G_M60469_IG60:
vmovups ymm0, ymmword ptr [rbx+0x0C]
vpxor ymm0, ymm0, ymmword ptr [reloc @RWD256]
vmovups ymm1, ymmword ptr [rbx+0x12]
vpternlogq ymm0, ymm1, ymmword ptr [reloc @RWD320], -10
vptest ymm0, ymm0
sete r9b
movzx r9, r9b
test r9d, r9d
jne G_M60469_IG65
jmp G_M60469_IG46
;; size=56 bbWeight=1 PerfScore 23.50
G_M60469_IG61:
cmp r9d, 19
jne G_M60469_IG46
;; size=10 bbWeight=0.50 PerfScore 0.62
G_M60469_IG62:
vmovups ymm0, ymmword ptr [rbx+0x0C]
vpxor ymm0, ymm0, ymmword ptr [reloc @RWD256]
vmovups ymm1, ymmword ptr [rbx+0x12]
vpternlogq ymm0, ymm1, ymmword ptr [reloc @RWD352], -10
vptest ymm0, ymm0
sete dl
movzx rdx, dl
test edx, edx
jne SHORT G_M60469_IG65
jmp G_M60469_IG46
;; size=49 bbWeight=1 PerfScore 23.50
G_M60469_IG63:
cmp r9d, 17
jne G_M60469_IG46
;; size=10 bbWeight=0.50 PerfScore 0.62
G_M60469_IG64:
vmovups ymm0, ymmword ptr [rbx+0x0C]
vpxor ymm0, ymm0, ymmword ptr [reloc @RWD256]
vmovups ymm1, ymmword ptr [rbx+0x0E]
vpternlogq ymm0, ymm1, ymmword ptr [reloc @RWD384], -10
vptest ymm0, ymm0
sete r8b
movzx r8, r8b
test r8d, r8d
je G_M60469_IG46
;; size=51 bbWeight=1 PerfScore 21.50
G_M60469_IG65:
mov rax, gword ptr [rbp-0xA0]
test rax, rax
jne SHORT G_M60469_IG66
xor ecx, ecx
mov dword ptr [rbp-0x74], ecx
- jmp G_M60469_IG76
+ jmp G_M60469_IG74
;; size=22 bbWeight=1 PerfScore 5.50
G_M60469_IG66:
mov rcx, gword ptr [rbp-0xA8]
- test rcx, rcx
- je SHORT G_M60469_IG67
- mov gword ptr [rbp-0xA8], rcx
cmp dword ptr [rcx+0x08], 0
- jne SHORT G_M60469_IG68
- jmp G_M60469_IG71
- ;; size=30 bbWeight=1 PerfScore 9.25
-G_M60469_IG67:
- mov gword ptr [rbp-0xA8], rcx
- jmp G_M60469_IG71
- ;; size=12 bbWeight=0.50 PerfScore 1.50
-G_M60469_IG68:
+ je G_M60469_IG69
mov dword ptr [rsp], 1
mov rcx, r14
mov r8d, r12d
mov rsi, r15
mov edx, r13d
mov rdi, rax
mov r9, gword ptr [rbp-0xA8]
mov r10, qword ptr [rax]
mov r10, qword ptr [r10+0x68]
call [r10+0x28]System.Security.Cryptography.ECDsa:VerifyDataCore(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.HashAlgorithmName,int):ubyte:this
mov dword ptr [rbp-0x74], eax
- jmp G_M60469_IG76
- ;; size=48 bbWeight=1 PerfScore 13.25
-G_M60469_IG69:
+ jmp G_M60469_IG74
+ ;; size=65 bbWeight=1 PerfScore 18.25
+G_M60469_IG67:
mov rsi, gword ptr [rbp+0x20]
mov rdx, qword ptr [rbp+0x28]
lea rdi, [rbp-0x70]
mov ecx, 2
mov r8, 0xD1FFAB1E ; code for System.Security.Cryptography.Asn1.PssParamsAsn:Decode(System.ReadOnlyMemory`1[ubyte],int):System.Security.Cryptography.Asn1.PssParamsAsn
call [r8]System.Security.Cryptography.Asn1.PssParamsAsn:Decode(System.ReadOnlyMemory`1[ubyte],int):System.Security.Cryptography.Asn1.PssParamsAsn
mov byte ptr [rbp-0x88], 0
xor esi, esi
mov dword ptr [rbp-0x84], esi
mov rsi, qword ptr [rbp-0x88]
lea rdi, [rbp-0x70]
mov rax, 0xD1FFAB1E ; code for System.Security.Cryptography.Asn1.PssParamsAsn:GetSignaturePadding(System.Nullable`1[int]):System.Security.Cryptography.RSASignaturePadding:this
call [rax]System.Security.Cryptography.Asn1.PssParamsAsn:GetSignaturePadding(System.Nullable`1[int]):System.Security.Cryptography.RSASignaturePadding:this
mov rbx, rax
mov rdi, gword ptr [rbp-0x68]
mov rax, 0xD1FFAB1E ; code for System.Security.Cryptography.HashAlgorithmName:FromOid(System.String):System.Security.Cryptography.HashAlgorithmName
call [rax]System.Security.Cryptography.HashAlgorithmName:FromOid(System.String):System.Security.Cryptography.HashAlgorithmName
mov gword ptr [rsp], rbx
mov rcx, r14
mov r8d, r12d
mov rsi, r15
mov edx, r13d
mov rdi, gword ptr [rbp-0x98]
mov r9, rax
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x68]
call [rax+0x38]System.Security.Cryptography.RSA:VerifyData(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.HashAlgorithmName,System.Security.Cryptography.RSASignaturePadding):ubyte:this
mov dword ptr [rbp-0x74], eax
- jmp G_M60469_IG76
+ jmp G_M60469_IG74
;; size=131 bbWeight=1 PerfScore 30.75
-G_M60469_IG70:
+G_M60469_IG68:
mov rcx, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
call [rcx]System.ThrowHelper:ThrowArgumentOutOfRangeException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M60469_IG71:
+G_M60469_IG69:
mov edi, 0x41FB
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
mov rsi, rax
mov rdi, gword ptr [rbp-0xA8]
mov rax, 0xD1FFAB1E ; code for System.ArgumentException:ThrowNullOrEmptyException(System.String,System.String)
call [rax]System.ArgumentException:ThrowNullOrEmptyException(System.String,System.String)
int3
;; size=43 bbWeight=0 PerfScore 0.00
-G_M60469_IG72:
+G_M60469_IG70:
mov rdi, 0xD1FFAB1E ; System.NotSupportedException
call CORINFO_HELP_NEWSFAST
mov r15, rax
mov rax, 0xD1FFAB1E ; code for System.SR:get_Cryptography_UnknownKeyAlgorithm():System.String
call [rax]System.SR:get_Cryptography_UnknownKeyAlgorithm():System.String
mov rdi, rax
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 rsi, rax
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.NotSupportedException:.ctor(System.String):this
call [rax]System.NotSupportedException:.ctor(System.String):this
mov rdi, r15
call CORINFO_HELP_THROW
int3
;; size=75 bbWeight=0 PerfScore 0.00
-G_M60469_IG73:
+G_M60469_IG71:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-G_M60469_IG74:
+G_M60469_IG72:
nop
- jmp SHORT G_M60469_IG76
+ jmp SHORT G_M60469_IG74
;; size=3 bbWeight=0 PerfScore 0.00
-G_M60469_IG75:
+G_M60469_IG73:
nop
;; size=1 bbWeight=0 PerfScore 0.00
-G_M60469_IG76:
+G_M60469_IG74:
mov rdi, gword ptr [rbp-0x98]
test rdi, rdi
- je SHORT G_M60469_IG77
+ je SHORT G_M60469_IG75
mov esi, 1
mov rcx, qword ptr [rdi]
mov rcx, qword ptr [rcx+0x48]
call [rcx+0x20]System.Security.Cryptography.AsymmetricAlgorithm:Dispose(ubyte):this
mov rdi, gword ptr [rbp-0x98]
mov rax, 0xD1FFAB1E ; code for System.GC:SuppressFinalize(System.Object)
call [rax]System.GC:SuppressFinalize(System.Object)
;; size=46 bbWeight=1 PerfScore 13.75
-G_M60469_IG77:
+G_M60469_IG75:
mov rax, gword ptr [rbp-0xA0]
test rax, rax
- je SHORT G_M60469_IG78
+ je SHORT G_M60469_IG76
mov rdi, rax
mov esi, 1
mov rcx, qword ptr [rax]
mov rcx, qword ptr [rcx+0x48]
call [rcx+0x20]System.Security.Cryptography.AsymmetricAlgorithm:Dispose(ubyte):this
mov rdi, gword ptr [rbp-0xA0]
mov rax, 0xD1FFAB1E ; code for System.GC:SuppressFinalize(System.Object)
call [rax]System.GC:SuppressFinalize(System.Object)
;; size=49 bbWeight=1 PerfScore 14.00
-G_M60469_IG78:
+G_M60469_IG76:
mov eax, dword ptr [rbp-0x74]
;; size=3 bbWeight=1 PerfScore 1.00
-G_M60469_IG79:
+G_M60469_IG77:
vzeroupper
add rsp, 152
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=21 bbWeight=1 PerfScore 5.25
-G_M60469_IG80:
+G_M60469_IG78:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 24
mov rbp, qword ptr [rdi+0x08]
mov qword ptr [rsp+0x08], rbp
lea rbp, [rbp+0xC0]
;; size=30 bbWeight=0 PerfScore 0.00
-G_M60469_IG81:
+G_M60469_IG79:
xor edi, edi
mov dword ptr [rbp-0x74], edi
- lea rax, G_M60469_IG74
+ lea rax, G_M60469_IG72
;; size=12 bbWeight=0 PerfScore 0.00
-G_M60469_IG82:
+G_M60469_IG80:
vzeroupper
add rsp, 24
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=18 bbWeight=0 PerfScore 0.00
-G_M60469_IG83:
+G_M60469_IG81:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 24
mov rbp, qword ptr [rdi+0x08]
mov qword ptr [rsp+0x08], rbp
lea rbp, [rbp+0xC0]
;; size=30 bbWeight=0 PerfScore 0.00
-G_M60469_IG84:
+G_M60469_IG82:
xor edi, edi
mov dword ptr [rbp-0x74], edi
- lea rax, G_M60469_IG75
+ lea rax, G_M60469_IG73
;; size=12 bbWeight=0 PerfScore 0.00
-G_M60469_IG85:
+G_M60469_IG83:
vzeroupper
add rsp, 24
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=18 bbWeight=0 PerfScore 0.00
-G_M60469_IG86:
+G_M60469_IG84:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 24
mov rbp, qword ptr [rdi+0x08]
mov qword ptr [rsp+0x08], rbp
lea rbp, [rbp+0xC0]
;; size=30 bbWeight=0 PerfScore 0.00
-G_M60469_IG87:
+G_M60469_IG85:
cmp gword ptr [rbp-0x98], 0
- je SHORT G_M60469_IG88
+ je SHORT G_M60469_IG86
mov rdi, gword ptr [rbp-0x98]
mov esi, 1
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x48]
call [rax+0x20]System.Security.Cryptography.AsymmetricAlgorithm:Dispose(ubyte):this
mov rdi, gword ptr [rbp-0x98]
mov rax, 0xD1FFAB1E ; code for System.GC:SuppressFinalize(System.Object)
call [rax]System.GC:SuppressFinalize(System.Object)
;; size=51 bbWeight=0 PerfScore 0.00
-G_M60469_IG88:
+G_M60469_IG86:
cmp gword ptr [rbp-0xA0], 0
- je SHORT G_M60469_IG89
+ je SHORT G_M60469_IG87
mov rdi, gword ptr [rbp-0xA0]
mov esi, 1
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x48]
call [rax+0x20]System.Security.Cryptography.AsymmetricAlgorithm:Dispose(ubyte):this
mov rdi, gword ptr [rbp-0xA0]
mov rax, 0xD1FFAB1E ; code for System.GC:SuppressFinalize(System.Object)
call [rax]System.GC:SuppressFinalize(System.Object)
;; size=51 bbWeight=0 PerfScore 0.00
-G_M60469_IG89:
+G_M60469_IG87:
nop
;; size=1 bbWeight=0 PerfScore 0.00
-G_M60469_IG90:
+G_M60469_IG88:
vzeroupper
add rsp, 24
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=18 bbWeight=0 PerfScore 0.00
RWD00 dq 002E0032002E0031h, 002E003000340038h, 0035003300310031h, 0031002E00390034h
RWD32 dq 0031002E00300034h, 0034003500330031h, 002E0031002E0039h, 00300031002E0031h
RWD64 dd G_M60469_IG30 - G_M60469_IG02
- dd G_M60469_IG72 - G_M60469_IG02
+ dd G_M60469_IG70 - G_M60469_IG02
dd G_M60469_IG19 - G_M60469_IG02
dd G_M60469_IG17 - G_M60469_IG02
dd G_M60469_IG09 - G_M60469_IG02
RWD84 dd G_M60469_IG15 - G_M60469_IG02
dd G_M60469_IG13 - G_M60469_IG02
dd G_M60469_IG11 - G_M60469_IG02
RWD96 dq 0031002E00300034h, 0034003500330031h, 002E0031002E0039h, 00330031002E0031h
RWD128 dq 0031002E00300034h, 0034003500330031h, 002E0031002E0039h, 00320031002E0031h
RWD160 dq 0031002E00300034h, 0034003500330031h, 002E0031002E0039h, 00310031002E0031h
RWD192 dq 002E003000340038h, 0035003300310031h, 0031002E00390034h, 0035002E0031002Eh
RWD224 dd G_M60469_IG27 - G_M60469_IG02
dd G_M60469_IG24 - G_M60469_IG02
dd G_M60469_IG21 - G_M60469_IG02
RWD236 dd 00000000h, 00000000h, 00000000h, 00000000h, 00000000h
RWD256 dq 002E0032002E0031h, 002E003000340038h, 0034003000300031h, 002E0034002E0035h
RWD288 dq 003000340038002Eh, 003000300031002Eh, 0034002E00350034h, 0034002E0033002Eh
RWD320 dq 003000340038002Eh, 003000300031002Eh, 0034002E00350034h, 0033002E0033002Eh
RWD352 dq 003000340038002Eh, 003000300031002Eh, 0034002E00350034h, 0032002E0033002Eh
RWD384 dq 0038002E0032002Eh, 0031002E00300034h, 0035003400300030h, 0031002E0034002Eh
RWD416 dd G_M60469_IG63 - G_M60469_IG02
dd G_M60469_IG46 - G_M60469_IG02
dd G_M60469_IG55 - G_M60469_IG02
dd G_M60469_IG51 - G_M60469_IG02
dd G_M60469_IG42 - G_M60469_IG02
RWD436 dd G_M60469_IG49 - G_M60469_IG02
dd G_M60469_IG47 - G_M60469_IG02
dd G_M60469_IG44 - G_M60469_IG02
RWD448 dd G_M60469_IG61 - G_M60469_IG02
dd G_M60469_IG59 - G_M60469_IG02
dd G_M60469_IG57 - G_M60469_IG02
-; Total bytes of code 2593, prolog size 68, PerfScore 641.77, instruction count 584, allocated bytes for code 2593 (MethodHash=10c713ca) for method System.Security.Cryptography.X509Certificates.CertificateRequest:VerifyX509Signature(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.X509Certificates.PublicKey,System.Security.Cryptography.Asn1.AlgorithmIdentifierAsn):ubyte (FullOpts)
+; Total bytes of code 2568, prolog size 68, PerfScore 636.02, instruction count 578, allocated bytes for code 2568 (MethodHash=10c713ca) for method System.Security.Cryptography.X509Certificates.CertificateRequest:VerifyX509Signature(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.X509Certificates.PublicKey,System.Security.Cryptography.Asn1.AlgorithmIdentifierAsn):ubyte (FullOpts)
-24 (-1.06 % of base) - System.Xml.Xsl.Xslt.XsltLoader:ParseModeListAttribute(int):System.Xml.Xsl.Qil.QilName:this
; Assembly listing for method System.Xml.Xsl.Xslt.XsltLoader:ParseModeListAttribute(int):System.Xml.Xsl.Qil.QilName:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
; 0 inlinees with PGO data; 80 single block inlinees; 14 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T22] ( 21, 16.50) ref -> rbx this class-hnd single-def <System.Xml.Xsl.Xslt.XsltLoader>
; V01 arg1 [V01,T40] ( 4, 4 ) int -> rsi single-def
; V02 loc0 [V02,T85] ( 6, 2.38) ref -> rax class-hnd exact single-def <System.String>
; V03 loc1 [V03,T101] ( 3, 1.50) ref -> r15 class-hnd exact single-def <System.String[]>
-; V04 loc2 [V04,T07] ( 23,133 ) ref -> r14 class-hnd exact single-def <System.Collections.Generic.List`1[System.Xml.Xsl.Qil.QilName]>
+; V04 loc2 [V04,T13] ( 23,101 ) ref -> r14 class-hnd exact single-def <System.Collections.Generic.List`1[System.Xml.Xsl.Qil.QilName]>
; V05 loc3 [V05,T44] ( 2, 4.50) ref -> r15 class-hnd exact single-def <System.String[]>
;* V06 loc4 [V06,T113] ( 0, 0 ) int -> zero-ref
; V07 loc5 [V07,T23] ( 8, 17.50) ref -> [rbp-0x58] class-hnd exact spill-single-def <System.String>
-; V08 loc6 [V08,T08] ( 7,136 ) ref -> [rbp-0x60] class-hnd <System.Xml.Xsl.Qil.QilName>
-; V09 loc7 [V09,T09] ( 4,136 ) ubyte -> [rbp-0x2C]
+; V08 loc6 [V08,T16] ( 6, 72 ) ref -> [rbp-0x60] class-hnd <System.Xml.Xsl.Qil.QilName>
+; V09 loc7 [V09,T06] ( 4,136 ) ubyte -> [rbp-0x2C]
;* V10 loc8 [V10 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Xml.Xsl.Qil.QilName]>
;* V11 loc9 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Xml.Xsl.Qil.QilName>
;# V12 OutArgs [V12 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V13 tmp1 [V13,T56] ( 3, 3 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.Xml.Xsl.Qil.QilName]>
; V14 tmp2 [V14,T28] ( 3, 12 ) ref -> [rbp-0x68] class-hnd exact spill-single-def "dup spill" <System.String[]>
; V15 tmp3 [V15,T32] ( 2, 8 ) ref -> [rbp-0x70] class-hnd exact spill-single-def "impAppendStmt" <System.String>
; V16 tmp4 [V16,T86] ( 2, 2 ) ref -> r12 class-hnd exact "impAppendStmt" <System.String>
; V17 tmp5 [V17,T87] ( 2, 2 ) ref -> rdi class-hnd exact "impAppendStmt" <System.Xml.Xsl.Xslt.Compiler>
; V18 tmp6 [V18,T88] ( 2, 2 ) ref -> r15 class-hnd exact single-def "impAppendStmt" <System.String>
; V19 tmp7 [V19,T30] ( 4, 8 ) ref -> rax class-hnd exact single-def "Inlining Arg" <System.Xml.Xsl.Xslt.XsltInput>
; V20 tmp8 [V20,T57] ( 3, 3 ) ref -> rax class-hnd exact single-def "Inlining Arg" <System.Xml.Xsl.Xslt.XsltInput>
;* V21 tmp9 [V21 ] ( 0, 0 ) ref -> zero-ref single-def "spilling varStr"
;* V22 tmp10 [V22,T106] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
; V23 tmp11 [V23,T58] ( 3, 3 ) ref -> r14 class-hnd exact single-def "dup spill" <System.String[]>
; V24 tmp12 [V24,T89] ( 2, 2 ) ref -> r15 class-hnd exact single-def "impAppendStmt" <System.String>
;* V25 tmp13 [V25 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Xml.Xsl.Xslt.XsltInput>
; V26 tmp14 [V26,T59] ( 3, 3 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.Xml.Xsl.Xslt.CompilerScopeManager`1[System.Xml.Xsl.Xslt.VarPar]>
; V27 tmp15 [V27,T45] ( 4, 4 ) ref -> r13 class-hnd exact single-def "impAppendStmt" <System.Xml.Xsl.Xslt.Compiler>
; V28 tmp16 [V28,T90] ( 2, 2 ) ref -> rsi class-hnd single-def "Inlining Arg" <System.Xml.Xsl.ISourceLineInfo>
; V29 tmp17 [V29,T107] ( 2, 1 ) ref -> rsi class-hnd exact single-def "Inline stloc first use temp" <System.Xml.Xsl.Xslt.CompilerError>
; V30 tmp18 [V30,T60] ( 3, 3 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.Xml.Xsl.Xslt.CompilerErrorCollection>
; V31 tmp19 [V31,T91] ( 2, 2 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <ushort[]>
;* V32 tmp20 [V32 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V33 tmp21 [V33 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
; V34 tmp22 [V34,T61] ( 3, 3 ) ref -> r12 class-hnd exact single-def "Inlining Arg" <System.Xml.Xsl.Xslt.Compiler>
;* V35 tmp23 [V35 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Xml.Xsl.Xslt.CompilerErrorCollection>
; V36 tmp24 [V36,T46] ( 4, 4 ) ref -> r12 class-hnd exact single-def "impAppendStmt" <System.Xml.Xsl.Xslt.Compiler>
; V37 tmp25 [V37,T92] ( 2, 2 ) ref -> r13 class-hnd exact single-def "Inlining Arg" <System.String[]>
; V38 tmp26 [V38,T93] ( 2, 2 ) ref -> rsi class-hnd single-def "Inlining Arg" <System.Xml.Xsl.ISourceLineInfo>
; V39 tmp27 [V39,T108] ( 2, 1 ) ref -> rsi class-hnd exact single-def "Inline stloc first use temp" <System.Xml.Xsl.Xslt.CompilerError>
; V40 tmp28 [V40,T62] ( 3, 3 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.Xml.Xsl.Xslt.CompilerErrorCollection>
;* V41 tmp29 [V41 ] ( 0, 0 ) ref -> zero-ref "spilling varStr"
; V42 tmp30 [V42,T26] ( 2, 8 ) int -> rcx "spilling unroll qmark"
;* V43 tmp31 [V43 ] ( 0, 0 ) ref -> zero-ref "spilling varStr"
; V44 tmp32 [V44,T27] ( 2, 8 ) int -> rdi "spilling unroll qmark"
; V45 tmp33 [V45,T63] ( 3, 3 ) ref -> r13 class-hnd exact "dup spill" <System.String[]>
; V46 tmp34 [V46,T94] ( 2, 2 ) ref -> r15 class-hnd exact "impAppendStmt" <System.String>
;* V47 tmp35 [V47 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Xml.Xsl.Xslt.XsltInput>
; V48 tmp36 [V48,T64] ( 3, 3 ) ref -> rdi class-hnd exact "Inlining Arg" <System.Xml.Xsl.Xslt.CompilerScopeManager`1[System.Xml.Xsl.Xslt.VarPar]>
; V49 tmp37 [V49,T47] ( 4, 4 ) ref -> r12 class-hnd exact "impAppendStmt" <System.Xml.Xsl.Xslt.Compiler>
; V50 tmp38 [V50,T95] ( 2, 2 ) ref -> rsi class-hnd "Inlining Arg" <System.Xml.Xsl.ISourceLineInfo>
; V51 tmp39 [V51,T109] ( 2, 1 ) ref -> rsi class-hnd exact "Inline stloc first use temp" <System.Xml.Xsl.Xslt.CompilerError>
; V52 tmp40 [V52,T65] ( 3, 3 ) ref -> rdi class-hnd exact "Inlining Arg" <System.Xml.Xsl.Xslt.CompilerErrorCollection>
;* V53 tmp41 [V53 ] ( 0, 0 ) ref -> zero-ref "spilling varStr"
;* V54 tmp42 [V54,T43] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
; V55 tmp43 [V55,T48] ( 4, 4 ) ref -> r15 class-hnd exact "impAppendStmt" <System.Xml.Xsl.Xslt.Compiler>
; V56 tmp44 [V56,T96] ( 2, 2 ) ref -> r13 class-hnd exact "Inlining Arg" <System.String[]>
; V57 tmp45 [V57,T97] ( 2, 2 ) ref -> rsi class-hnd "Inlining Arg" <System.Xml.Xsl.ISourceLineInfo>
; V58 tmp46 [V58,T110] ( 2, 1 ) ref -> rsi class-hnd exact "Inline stloc first use temp" <System.Xml.Xsl.Xslt.CompilerError>
; V59 tmp47 [V59,T66] ( 3, 3 ) ref -> rdi class-hnd exact "Inlining Arg" <System.Xml.Xsl.Xslt.CompilerErrorCollection>
;* V60 tmp48 [V60 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Xml.Xsl.Qil.QilName>
; V61 tmp49 [V61 ] ( 3, 6 ) ref -> [rbp-0x38] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.String>
; V62 tmp50 [V62 ] ( 3, 6 ) ref -> [rbp-0x40] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.String>
; V63 tmp51 [V63 ] ( 3, 6 ) ref -> [rbp-0x48] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.String>
; V64 tmp52 [V64,T33] ( 2, 8 ) ref -> [rbp-0x78] class-hnd exact spill-single-def "Inlining Arg" <System.String>
; V65 tmp53 [V65,T34] ( 2, 8 ) ref -> [rbp-0x80] class-hnd exact spill-single-def "Inlining Arg" <System.String>
; V66 tmp54 [V66,T35] ( 2, 8 ) ref -> [rbp-0x88] class-hnd exact spill-single-def "Inlining Arg" <System.String>
-; V67 tmp55 [V67,T19] ( 10, 40 ) ref -> [rbp-0x90] class-hnd exact spill-single-def "NewObj constructor temp" <System.Xml.Xsl.Qil.QilName>
+; V67 tmp55 [V67,T17] ( 10, 40 ) ref -> [rbp-0x90] class-hnd exact spill-single-def "NewObj constructor temp" <System.Xml.Xsl.Qil.QilName>
;* V68 tmp56 [V68 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Xml.Xsl.Qil.QilFactory>
;* V69 tmp57 [V69 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Xml.Xsl.XmlQueryTypeFactory+ItemType>
;* V70 tmp58 [V70 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Xml.Xsl.Qil.QilName]>
-; V71 tmp59 [V71,T12] ( 3,128 ) ubyte -> rsi "Inline return value spill temp"
+; V71 tmp59 [V71,T10] ( 3,128 ) ubyte -> rsi "Inline return value spill temp"
;* V72 tmp60 [V72 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.Xml.Xsl.Qil.QilName>
-;* V73 tmp61 [V73,T18] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V74 tmp62 [V74,T01] ( 5,320 ) ref -> r8 class-hnd exact "Inlining Arg" <System.String>
-; V75 tmp63 [V75,T02] ( 5,320 ) ref -> r9 class-hnd exact "Inlining Arg" <System.String>
-; V76 tmp64 [V76,T10] ( 2, 64 ) ubyte -> rax "Inline return value spill temp"
-; V77 tmp65 [V77,T13] ( 2,128 ) byref -> r8 "impAppendStmt"
-; V78 tmp66 [V78,T03] ( 5,320 ) ref -> r10 class-hnd exact "Inlining Arg" <System.String>
-; V79 tmp67 [V79,T04] ( 5,320 ) ref -> rsi class-hnd exact "Inlining Arg" <System.String>
-; V80 tmp68 [V80,T11] ( 4,128 ) ubyte -> rsi "Inline return value spill temp"
-; V81 tmp69 [V81,T14] ( 2,128 ) byref -> r10 "impAppendStmt"
-;* V82 tmp70 [V82,T17] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V73 tmp61 [V73,T21] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V74 tmp62 [V74,T00] ( 5,320 ) ref -> r8 class-hnd exact "Inlining Arg" <System.String>
+; V75 tmp63 [V75,T01] ( 5,320 ) ref -> r9 class-hnd exact "Inlining Arg" <System.String>
+; V76 tmp64 [V76,T08] ( 2, 64 ) ubyte -> rax "Inline return value spill temp"
+; V77 tmp65 [V77,T11] ( 2,128 ) byref -> r8 "impAppendStmt"
+; V78 tmp66 [V78,T02] ( 5,320 ) ref -> r10 class-hnd exact "Inlining Arg" <System.String>
+; V79 tmp67 [V79,T03] ( 5,320 ) ref -> rsi class-hnd exact "Inlining Arg" <System.String>
+; V80 tmp68 [V80,T09] ( 4,128 ) ubyte -> rsi "Inline return value spill temp"
+; V81 tmp69 [V81,T12] ( 2,128 ) byref -> r10 "impAppendStmt"
+;* V82 tmp70 [V82,T19] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V83 tmp71 [V83 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[System.Xml.Xsl.Qil.QilName]>
; V84 tmp72 [V84,T25] ( 4, 16 ) ref -> [rbp-0x98] class-hnd exact spill-single-def "impAppendStmt" <System.Xml.Xsl.Xslt.Compiler>
; V85 tmp73 [V85,T36] ( 2, 8 ) ref -> rsi class-hnd "Inlining Arg" <System.Xml.Xsl.ISourceLineInfo>
; V86 tmp74 [V86,T52] ( 2, 4 ) ref -> rsi class-hnd exact "Inline stloc first use temp" <System.Xml.Xsl.Xslt.CompilerError>
; V87 tmp75 [V87,T29] ( 3, 12 ) ref -> rdi class-hnd exact "Inlining Arg" <System.Xml.Xsl.Xslt.CompilerErrorCollection>
; V88 tmp76 [V88,T41] ( 3, 6 ) ref -> rdi class-hnd "Inline stloc first use temp" <System.Xml.Xsl.Qil.QilName[]>
; V89 tmp77 [V89,T31] ( 4, 8 ) int -> rsi "Inline stloc first use temp"
;* V90 tmp78 [V90 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Xml.Xsl.Xslt.XsltInput>
; V91 tmp79 [V91,T67] ( 3, 3 ) ref -> rsi class-hnd exact "Inlining Arg" <System.Xml.Xsl.Xslt.CompilerScopeManager`1[System.Xml.Xsl.Xslt.VarPar]>
; V92 tmp80 [V92,T103] ( 3, 1.50) int -> rdx "Inline stloc first use temp"
; V93 tmp81 [V93,T102] ( 3, 1.50) ref -> rdi class-hnd single-def "Inline stloc first use temp" <System.Xml.Xsl.Qil.QilName[]>
; V94 tmp82 [V94,T84] ( 5, 2.50) int -> rax "Inline stloc first use temp"
; V95 tmp83 [V95,T68] ( 3, 3 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.Xml.Xsl.Qil.QilName>
; V96 tmp84 [V96,T69] ( 3, 3 ) ref -> r14 class-hnd exact single-def "dup spill" <System.String[]>
; V97 tmp85 [V97,T98] ( 2, 2 ) ref -> r15 class-hnd exact single-def "impAppendStmt" <System.String>
;* V98 tmp86 [V98 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Xml.Xsl.Xslt.XsltInput>
; V99 tmp87 [V99,T70] ( 3, 3 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.Xml.Xsl.Xslt.CompilerScopeManager`1[System.Xml.Xsl.Xslt.VarPar]>
; V100 tmp88 [V100,T49] ( 4, 4 ) ref -> r13 class-hnd exact single-def "impAppendStmt" <System.Xml.Xsl.Xslt.Compiler>
; V101 tmp89 [V101,T99] ( 2, 2 ) ref -> rsi class-hnd single-def "Inlining Arg" <System.Xml.Xsl.ISourceLineInfo>
; V102 tmp90 [V102,T111] ( 2, 1 ) ref -> rsi class-hnd exact single-def "Inline stloc first use temp" <System.Xml.Xsl.Xslt.CompilerError>
; V103 tmp91 [V103,T71] ( 3, 3 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.Xml.Xsl.Xslt.CompilerErrorCollection>
; V104 tmp92 [V104,T51] ( 3, 4 ) ref -> rax "Single return block return value"
;* V105 tmp93 [V105,T53] ( 0, 0 ) ref -> zero-ref "field V10._list (fldOffset=0x0)" P-INDEP
-; V106 tmp94 [V106,T06] ( 4,192 ) ref -> [rbp-0xA0] spill-single-def "field V10._current (fldOffset=0x8)" P-INDEP
-; V107 tmp95 [V107,T05] ( 6,276 ) int -> [rbp-0x4C] "field V10._index (fldOffset=0x10)" P-INDEP
-; V108 tmp96 [V108,T21] ( 2, 36 ) int -> [rbp-0x50] spill-single-def "field V10._version (fldOffset=0x14)" P-INDEP
+; V106 tmp94 [V106,T07] ( 4,128 ) ref -> [rbp-0xA0] spill-single-def "field V10._current (fldOffset=0x8)" P-INDEP
+; V107 tmp95 [V107,T05] ( 6,148 ) int -> [rbp-0x4C] "field V10._index (fldOffset=0x10)" P-INDEP
+; V108 tmp96 [V108,T20] ( 2, 36 ) int -> [rbp-0x50] spill-single-def "field V10._version (fldOffset=0x14)" P-INDEP
;* V109 tmp97 [V109 ] ( 0, 0 ) byref -> zero-ref "field V32._reference (fldOffset=0x0)" P-INDEP
;* V110 tmp98 [V110 ] ( 0, 0 ) int -> zero-ref "field V32._length (fldOffset=0x8)" P-INDEP
; V111 tmp99 [V111,T112] ( 2, 1 ) byref -> rsi "field V33._reference (fldOffset=0x0)" P-INDEP
;* V112 tmp100 [V112,T114] ( 0, 0 ) int -> zero-ref "field V33._length (fldOffset=0x8)" P-INDEP
-; V113 tmp101 [V113,T37] ( 2, 8 ) ref -> rcx "field V70._list (fldOffset=0x0)" P-INDEP
+; V113 tmp101 [V113,T37] ( 2, 8 ) ref -> rdi "field V70._list (fldOffset=0x0)" P-INDEP
;* V114 tmp102 [V114 ] ( 0, 0 ) ref -> zero-ref "field V70._current (fldOffset=0x8)" P-INDEP
;* V115 tmp103 [V115,T54] ( 0, 0 ) int -> zero-ref "field V70._index (fldOffset=0x10)" P-INDEP
-; V116 tmp104 [V116,T38] ( 2, 8 ) int -> rcx "field V70._version (fldOffset=0x14)" P-INDEP
+; V116 tmp104 [V116,T38] ( 2, 8 ) int -> rdx "field V70._version (fldOffset=0x14)" P-INDEP
; V117 tmp105 [V117,T42] ( 3, 6 ) ref -> rcx single-def "arr expr"
; V118 tmp106 [V118,T72] ( 3, 3 ) ref -> rcx single-def "arr expr"
; V119 tmp107 [V119,T79] ( 3, 3 ) int -> rax "index expr"
; V120 tmp108 [V120,T73] ( 3, 3 ) ref -> rdi single-def "argument with side effect"
; V121 tmp109 [V121,T74] ( 3, 3 ) ref -> rax "arr expr"
; V122 tmp110 [V122,T80] ( 3, 3 ) int -> rdi "index expr"
-; V123 tmp111 [V123,T00] ( 3,384 ) ref -> rsi "arr expr"
+; V123 tmp111 [V123,T04] ( 3,192 ) ref -> rsi "arr expr"
; V124 tmp112 [V124,T75] ( 3, 3 ) ref -> rax "arr expr"
; V125 tmp113 [V125,T81] ( 3, 3 ) int -> rsi "index expr"
; V126 tmp114 [V126,T100] ( 2, 2 ) int -> rsi "argument with side effect"
; V127 tmp115 [V127,T76] ( 3, 3 ) ref -> rax single-def "arr expr"
; V128 tmp116 [V128,T77] ( 3, 3 ) ref -> rax single-def "arr expr"
; V129 tmp117 [V129,T82] ( 3, 3 ) int -> rdi "index expr"
; V130 tmp118 [V130,T78] ( 3, 3 ) ref -> rax single-def "arr expr"
; V131 tmp119 [V131,T83] ( 3, 3 ) int -> rdi "index expr"
; V132 cse0 [V132,T39] ( 5, 6 ) int -> r13 "CSE #03: conservative"
; V133 cse1 [V133,T104] ( 3, 1.50) int -> rcx "CSE #17: conservative"
-; V134 cse2 [V134,T20] ( 3, 34 ) int -> rsi "CSE #09: moderate"
+; V134 cse2 [V134,T18] ( 3, 34 ) int -> rsi "CSE #09: moderate"
; V135 cse3 [V135,T55] ( 4, 3 ) ref -> rdi "CSE #01: conservative"
; V136 cse4 [V136,T105] ( 3, 1.50) int -> r15 "CSE #18: conservative"
-; V137 cse5 [V137,T15] ( 3, 96 ) int -> r10 "CSE #06: moderate"
-; V138 cse6 [V138,T16] ( 3, 96 ) int -> r8 "CSE #07: moderate"
+; V137 cse5 [V137,T14] ( 3, 96 ) int -> r10 "CSE #06: moderate"
+; V138 cse6 [V138,T15] ( 3, 96 ) int -> r8 "CSE #07: moderate"
; V139 cse7 [V139,T50] ( 4, 4 ) int -> r10 "CSE #04: conservative"
; V140 rat0 [V140,T24] ( 5, 16.50) long -> r12 "Widened IV V06"
; V141 rat1 [V141,T115] ( 3, 12 ) simd16 -> mm0 "ReplaceWithLclVar is creating a new local variable"
; V142 rat2 [V142,T116] ( 3, 12 ) simd16 -> mm0 "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 120
G_M7338_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 120
lea rbp, [rsp+0xA0]
vxorps xmm8, xmm8, xmm8
vmovdqu xmmword ptr [rbp-0x48], xmm8
xor eax, eax
mov qword ptr [rbp-0x38], rax
mov rbx, rdi
;; size=41 bbWeight=1 PerfScore 10.58
G_M7338_IG02:
mov rdi, gword ptr [rbx+0x28]
mov rax, rdi
mov rcx, gword ptr [rax+0x48]
cmp esi, dword ptr [rcx+0x08]
jae G_M7338_IG46
mov edx, esi
mov ecx, dword ptr [rcx+4*rdx+0x10]
mov dword ptr [rax+0x54], ecx
cmp dword ptr [rax+0x54], 0
je G_M7338_IG42
;; size=39 bbWeight=1 PerfScore 15.50
G_M7338_IG03:
mov rax, rdi
mov rcx, gword ptr [rax+0x30]
mov eax, dword ptr [rax+0x54]
cmp eax, dword ptr [rcx+0x08]
jae G_M7338_IG46
shl rax, 6
mov rax, gword ptr [rcx+rax+0x28]
test rax, rax
je G_M7338_IG07
;; size=37 bbWeight=0.50 PerfScore 6.00
G_M7338_IG04:
cmp dword ptr [rax+0x08], 4
jne G_M7338_IG07
;; size=10 bbWeight=0.25 PerfScore 1.00
G_M7338_IG05:
mov rcx, 0xD1FFAB1E
cmp qword ptr [rax+0x0C], rcx
jne G_M7338_IG07
;; size=20 bbWeight=0.12 PerfScore 0.53
G_M7338_IG06:
mov rdi, gword ptr [rdi+0x18]
mov rax, gword ptr [rdi+0x08]
mov edi, dword ptr [rdi+0x10]
cmp edi, dword ptr [rax+0x08]
jae G_M7338_IG46
shl rdi, 5
test byte ptr [rax+rdi+0x2C], 2
jne G_M7338_IG42
mov rdi, 0xD1FFAB1E ; 'Xslt_NotYetImplemented'
mov rax, 0xD1FFAB1E ; code for System.SR:GetResourceString(System.String):System.String
call [rax]System.SR:GetResourceString(System.String):System.String
mov r15, rax
mov rdi, 0xD1FFAB1E ; System.String[]
mov esi, 1
call CORINFO_HELP_NEWARR_1_OBJ
mov r14, rax
mov rdi, 0xD1FFAB1E ; 'xsl:template[@mode='#all']'
mov gword ptr [r14+0x10], rdi
mov r13, gword ptr [rbx+0x08]
mov rdi, gword ptr [rbx+0x28]
mov rax, 0xD1FFAB1E ; code for System.Xml.Xsl.Xslt.XsltInput:BuildNameLineInfo():System.Xml.Xsl.ISourceLineInfo:this
cmp dword ptr [rdi], edi
call [rax]System.Xml.Xsl.Xslt.XsltInput:BuildNameLineInfo():System.Xml.Xsl.ISourceLineInfo:this
mov rsi, rax
cmp byte ptr [r13], r13b
mov rdi, r13
mov rdx, r15
mov rcx, r14
mov rax, 0xD1FFAB1E ; code for System.Xml.Xsl.Xslt.Compiler:CreateError(System.Xml.Xsl.ISourceLineInfo,System.String,System.String[]):System.Xml.Xsl.Xslt.CompilerError:this
call [rax]System.Xml.Xsl.Xslt.Compiler:CreateError(System.Xml.Xsl.ISourceLineInfo,System.String,System.String[]):System.Xml.Xsl.Xslt.CompilerError:this
mov rsi, rax
mov rdi, gword ptr [r13+0x20]
cmp byte ptr [rdi], dil
mov rax, 0xD1FFAB1E ; code for System.Collections.CollectionBase:System.Collections.IList.Add(System.Object):int:this
call [rax]System.Collections.CollectionBase:System.Collections.IList.Add(System.Object):int:this
jmp G_M7338_IG42
;; size=174 bbWeight=0.50 PerfScore 24.62
G_M7338_IG07:
mov rsi, 0xD1FFAB1E ; const ptr
mov rsi, gword ptr [rsi]
cmp byte ptr [rax], al
add rsi, 16
mov edx, 4
mov rdi, rax
mov ecx, 0xD1FFAB1E
mov r8d, 1
mov rax, 0xD1FFAB1E ; code for System.String:SplitInternal(System.ReadOnlySpan`1[ushort],int,int):System.String[]:this
call [rax]System.String:SplitInternal(System.ReadOnlySpan`1[ushort],int,int):System.String[]:this
mov r15, rax
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.List`1[System.Xml.Xsl.Qil.QilName]
call CORINFO_HELP_NEWSFAST
mov r14, rax
mov r13d, dword ptr [r15+0x08]
mov esi, r13d
mov rdi, r14
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.__Canon]:.ctor(int):this
call [rax]System.Collections.Generic.List`1[System.__Canon]:.ctor(int):this
mov r12, gword ptr [rbx+0x08]
mov rdi, gword ptr [r12+0x20]
mov rdi, gword ptr [rdi+0x08]
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x40]
call [rax+0x30]System.Collections.ArrayList:get_Count():int:this
mov dword ptr [r12+0xB4], eax
test r13d, r13d
jne G_M7338_IG10
mov rdi, 0xD1FFAB1E ; 'Xslt_ModeListEmpty'
mov rax, 0xD1FFAB1E ; code for System.SR:GetResourceString(System.String):System.String
call [rax]System.SR:GetResourceString(System.String):System.String
mov r15, rax
mov rdi, 0xD1FFAB1E ; const ptr
mov r13, gword ptr [rdi]
mov r12, gword ptr [rbx+0x08]
mov rdi, gword ptr [rbx+0x28]
mov rax, 0xD1FFAB1E ; code for System.Xml.Xsl.Xslt.XsltInput:BuildNameLineInfo():System.Xml.Xsl.ISourceLineInfo:this
cmp dword ptr [rdi], edi
call [rax]System.Xml.Xsl.Xslt.XsltInput:BuildNameLineInfo():System.Xml.Xsl.ISourceLineInfo:this
mov rsi, rax
cmp byte ptr [r12], r12b
mov rdi, r12
mov rdx, r15
mov rcx, r13
mov rax, 0xD1FFAB1E ; code for System.Xml.Xsl.Xslt.Compiler:CreateError(System.Xml.Xsl.ISourceLineInfo,System.String,System.String[]):System.Xml.Xsl.Xslt.CompilerError:this
call [rax]System.Xml.Xsl.Xslt.Compiler:CreateError(System.Xml.Xsl.ISourceLineInfo,System.String,System.String[]):System.Xml.Xsl.Xslt.CompilerError:this
mov rsi, rax
mov rdi, gword ptr [r12+0x20]
cmp byte ptr [rdi], dil
mov rax, 0xD1FFAB1E ; code for System.Collections.CollectionBase:System.Collections.IList.Add(System.Object):int:this
call [rax]System.Collections.CollectionBase:System.Collections.IList.Add(System.Object):int:this
;; size=244 bbWeight=0.50 PerfScore 32.25
G_M7338_IG08:
mov rdi, gword ptr [rbx+0x08]
mov rsi, gword ptr [rbx+0x28]
mov rsi, gword ptr [rsi+0x18]
mov rax, gword ptr [rsi+0x08]
mov esi, dword ptr [rsi+0x10]
cmp esi, dword ptr [rax+0x08]
jae G_M7338_IG46
shl rsi, 5
test byte ptr [rax+rsi+0x2C], 2
setne sil
movzx rsi, sil
mov rax, 0xD1FFAB1E ; code for System.Xml.Xsl.Xslt.Compiler:ExitForwardsCompatible(ubyte):ubyte:this
cmp dword ptr [rdi], edi
call [rax]System.Xml.Xsl.Xslt.Compiler:ExitForwardsCompatible(ubyte):ubyte:this
test eax, eax
jne G_M7338_IG41
inc dword ptr [r14+0x14]
mov edx, dword ptr [r14+0x10]
xor edi, edi
mov dword ptr [r14+0x10], edi
test edx, edx
jle SHORT G_M7338_IG09
mov rdi, gword ptr [r14+0x08]
xor esi, esi
mov rax, 0xD1FFAB1E ; code for System.Array:Clear(System.Array,int,int)
call [rax]System.Array:Clear(System.Array,int,int)
;; size=103 bbWeight=0.50 PerfScore 19.62
G_M7338_IG09:
mov rdi, 0xD1FFAB1E ; const ptr
mov rsi, gword ptr [rdi]
inc dword ptr [r14+0x14]
mov rdi, gword ptr [r14+0x08]
mov eax, dword ptr [r14+0x10]
mov ecx, dword ptr [rdi+0x08]
cmp ecx, eax
jbe G_M7338_IG40
lea edx, [rax+0x01]
mov dword ptr [r14+0x10], edx
cmp eax, ecx
jae G_M7338_IG46
lea rdi, bword ptr [rdi+8*rax+0x10]
call CORINFO_HELP_ASSIGN_REF
jmp G_M7338_IG41
;; size=66 bbWeight=0.50 PerfScore 9.62
G_M7338_IG10:
xor r12d, r12d
test r13d, r13d
jle G_M7338_IG08
;; size=12 bbWeight=0.50 PerfScore 0.75
G_M7338_IG11:
mov rax, gword ptr [r15+8*r12+0x10]
mov gword ptr [rbp-0x58], rax
test rax, rax
je G_M7338_IG20
;; size=18 bbWeight=4 PerfScore 17.00
G_M7338_IG12:
mov r10d, dword ptr [rax+0x08]
cmp r10d, 8
jne G_M7338_IG23
;; size=14 bbWeight=1 PerfScore 3.25
G_M7338_IG13:
vmovups xmm0, xmmword ptr [rax+0x0C]
vpxor xmm0, xmm0, xmmword ptr [reloc @RWD00]
vptest xmm0, xmm0
sete cl
movzx rcx, cl
test ecx, ecx
je G_M7338_IG23
mov rcx, 0xD1FFAB1E ; const ptr
mov r11, gword ptr [rcx]
;; size=45 bbWeight=2 PerfScore 27.50
G_M7338_IG14:
+ xor ecx, ecx
+ mov rdi, r14
+ mov edx, dword ptr [rdi+0x14]
xor edi, edi
- mov rcx, r14
- mov ecx, dword ptr [rcx+0x14]
- xor edx, edx
- mov dword ptr [rbp-0x50], ecx
+ mov dword ptr [rbp-0x50], edx
jmp SHORT G_M7338_IG16
;; size=15 bbWeight=4 PerfScore 23.00
G_M7338_IG15:
- or edi, esi
- movzx rdi, dil
- mov r8d, edi
- mov edi, r8d
- ;; size=12 bbWeight=64 PerfScore 64.00
+ or ecx, esi
+ movzx rcx, cl
+ mov dword ptr [rbp-0x2C], ecx
+ mov ecx, dword ptr [rbp-0x2C]
+ mov edx, dword ptr [rbp-0x50]
+ mov edi, dword ptr [rbp-0x4C]
+ ;; size=17 bbWeight=64 PerfScore 288.00
G_M7338_IG16:
- cmp ecx, dword ptr [r14+0x14]
+ cmp edx, dword ptr [r14+0x14]
jne G_M7338_IG45
;; size=10 bbWeight=32 PerfScore 128.00
G_M7338_IG17:
mov esi, dword ptr [r14+0x10]
- cmp edx, esi
+ cmp edi, esi
jae G_M7338_IG28
;; size=12 bbWeight=16 PerfScore 52.00
G_M7338_IG18:
mov rsi, gword ptr [r14+0x08]
- cmp edx, dword ptr [rsi+0x08]
+ cmp edi, dword ptr [rsi+0x08]
jae G_M7338_IG46
- mov r8d, edx
+ mov r8d, edi
mov rsi, gword ptr [rsi+8*r8+0x10]
mov gword ptr [rbp-0xA0], rsi
- inc edx
+ inc edi
+ mov dword ptr [rbp-0x4C], edi
cmp byte ptr [rsi], sil
- test r11, r11
+ mov r8, gword ptr [rsi+0x30]
+ mov r9, gword ptr [r11+0x30]
+ cmp r8, r9
jne G_M7338_IG33
- ;; size=42 bbWeight=64 PerfScore 880.00
+ ;; size=53 bbWeight=32 PerfScore 600.00
G_M7338_IG19:
- xor esi, esi
- jmp SHORT G_M7338_IG15
- ;; size=4 bbWeight=32 PerfScore 72.00
+ mov r10, gword ptr [rsi+0x38]
+ mov rsi, gword ptr [r11+0x38]
+ cmp r10, rsi
+ jne G_M7338_IG36
+ mov esi, 1
+ jmp G_M7338_IG39
+ ;; size=27 bbWeight=32 PerfScore 240.00
G_M7338_IG20:
lea rcx, [rbp-0x38]
lea r9, [rbp-0x48]
lea r8, [rbp-0x40]
mov rdi, rbx
mov rdx, rax
mov esi, 1
mov r10, 0xD1FFAB1E ; code for System.Xml.Xsl.Xslt.XsltLoader:ResolveQName(ubyte,System.String,byref,byref,byref):ubyte:this
call [r10]System.Xml.Xsl.Xslt.XsltLoader:ResolveQName(ubyte,System.String,byref,byref,byref):ubyte:this
mov rax, gword ptr [rbp-0x38]
mov gword ptr [rbp-0x78], rax
mov rcx, gword ptr [rbp-0x40]
mov gword ptr [rbp-0x80], rcx
mov rdx, gword ptr [rbp-0x48]
mov gword ptr [rbp-0x88], rdx
mov rdi, 0xD1FFAB1E ; System.Xml.Xsl.Qil.QilName
call CORINFO_HELP_NEWSFAST
mov r11, rax
mov gword ptr [rbp-0x90], r11
mov dword ptr [r11+0x20], 25
xor rdi, rdi
mov gword ptr [r11+0x28], rdi
lea rdi, bword ptr [r11+0x30]
mov rsi, gword ptr [rbp-0x78]
call CORINFO_HELP_ASSIGN_REF
mov r11, gword ptr [rbp-0x90]
lea rdi, bword ptr [r11+0x38]
mov rsi, gword ptr [rbp-0x80]
call CORINFO_HELP_ASSIGN_REF
mov r11, gword ptr [rbp-0x90]
lea rdi, bword ptr [r11+0x40]
mov rsi, gword ptr [rbp-0x88]
call CORINFO_HELP_ASSIGN_REF
mov r11, gword ptr [rbp-0x90]
lea rdi, bword ptr [r11+0x28]
mov rsi, r11
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; const ptr
mov rsi, gword ptr [rdi]
mov r11, gword ptr [rbp-0x90]
lea rdi, bword ptr [r11+0x08]
call CORINFO_HELP_ASSIGN_REF
xor rdi, rdi
mov gword ptr [rbp-0x48], rdi
;; size=212 bbWeight=2 PerfScore 69.00
G_M7338_IG21:
mov gword ptr [rbp-0x38], rdi
;; size=4 bbWeight=2 PerfScore 2.00
G_M7338_IG22:
mov gword ptr [rbp-0x40], rdi
mov r11, gword ptr [rbp-0x90]
mov rax, r11
mov r11, rax
mov rax, gword ptr [rbp-0x58]
jmp G_M7338_IG14
;; size=26 bbWeight=2 PerfScore 11.00
G_M7338_IG23:
cmp r10d, 8
jne G_M7338_IG26
;; size=10 bbWeight=1 PerfScore 1.25
G_M7338_IG24:
vmovups xmm0, xmmword ptr [rax+0x0C]
vpxor xmm0, xmm0, xmmword ptr [reloc @RWD16]
vptest xmm0, xmm0
sete dil
movzx rdi, dil
test edi, edi
je G_M7338_IG26
;; size=34 bbWeight=2 PerfScore 23.00
G_M7338_IG25:
mov rdi, gword ptr [rbx+0x28]
mov rdi, gword ptr [rdi+0x18]
mov rax, gword ptr [rdi+0x08]
mov edi, dword ptr [rdi+0x10]
cmp edi, dword ptr [rax+0x08]
jae G_M7338_IG46
shl rdi, 5
test byte ptr [rax+rdi+0x2C], 2
jne G_M7338_IG08
mov rdi, 0xD1FFAB1E ; 'Xslt_NotYetImplemented'
mov rax, 0xD1FFAB1E ; code for System.SR:GetResourceString(System.String):System.String
call [rax]System.SR:GetResourceString(System.String):System.String
mov r15, rax
mov rdi, 0xD1FFAB1E ; System.String[]
mov esi, 1
call CORINFO_HELP_NEWARR_1_OBJ
mov r13, rax
mov rdi, 0xD1FFAB1E ; 'xsl:apply-templates[@mode='#current']'
mov gword ptr [r13+0x10], rdi
mov r12, gword ptr [rbx+0x08]
mov rdi, gword ptr [rbx+0x28]
mov rax, 0xD1FFAB1E ; code for System.Xml.Xsl.Xslt.XsltInput:BuildNameLineInfo():System.Xml.Xsl.ISourceLineInfo:this
cmp dword ptr [rdi], edi
call [rax]System.Xml.Xsl.Xslt.XsltInput:BuildNameLineInfo():System.Xml.Xsl.ISourceLineInfo:this
mov rsi, rax
cmp byte ptr [r12], r12b
mov rdi, r12
mov rdx, r15
mov rcx, r13
mov rax, 0xD1FFAB1E ; code for System.Xml.Xsl.Xslt.Compiler:CreateError(System.Xml.Xsl.ISourceLineInfo,System.String,System.String[]):System.Xml.Xsl.Xslt.CompilerError:this
call [rax]System.Xml.Xsl.Xslt.Compiler:CreateError(System.Xml.Xsl.ISourceLineInfo,System.String,System.String[]):System.Xml.Xsl.Xslt.CompilerError:this
mov rsi, rax
mov rdi, gword ptr [r12+0x20]
cmp byte ptr [rdi], dil
mov rax, 0xD1FFAB1E ; code for System.Collections.CollectionBase:System.Collections.IList.Add(System.Object):int:this
call [rax]System.Collections.CollectionBase:System.Collections.IList.Add(System.Object):int:this
jmp G_M7338_IG08
;; size=179 bbWeight=0.50 PerfScore 25.62
G_M7338_IG26:
cmp r10d, 4
jne G_M7338_IG20
;; size=10 bbWeight=1 PerfScore 1.25
G_M7338_IG27:
mov rdi, 0xD1FFAB1E
cmp qword ptr [rax+0x0C], rdi
jne G_M7338_IG20
mov rdi, 0xD1FFAB1E ; 'Xslt_ModeListAll'
mov rax, 0xD1FFAB1E ; code for System.SR:GetResourceString(System.String):System.String
call [rax]System.SR:GetResourceString(System.String):System.String
mov r12, rax
mov rdi, 0xD1FFAB1E ; const ptr
mov r13, gword ptr [rdi]
mov r15, gword ptr [rbx+0x08]
mov rdi, gword ptr [rbx+0x28]
mov rax, 0xD1FFAB1E ; code for System.Xml.Xsl.Xslt.XsltInput:BuildNameLineInfo():System.Xml.Xsl.ISourceLineInfo:this
cmp dword ptr [rdi], edi
call [rax]System.Xml.Xsl.Xslt.XsltInput:BuildNameLineInfo():System.Xml.Xsl.ISourceLineInfo:this
mov rsi, rax
cmp byte ptr [r15], r15b
mov rdi, r15
mov rdx, r12
mov rcx, r13
mov rax, 0xD1FFAB1E ; code for System.Xml.Xsl.Xslt.Compiler:CreateError(System.Xml.Xsl.ISourceLineInfo,System.String,System.String[]):System.Xml.Xsl.Xslt.CompilerError:this
call [rax]System.Xml.Xsl.Xslt.Compiler:CreateError(System.Xml.Xsl.ISourceLineInfo,System.String,System.String[]):System.Xml.Xsl.Xslt.CompilerError:this
mov rsi, rax
mov rdi, gword ptr [r15+0x20]
cmp byte ptr [rdi], dil
mov rax, 0xD1FFAB1E ; code for System.Collections.CollectionBase:System.Collections.IList.Add(System.Object):int:this
call [rax]System.Collections.CollectionBase:System.Collections.IList.Add(System.Object):int:this
jmp G_M7338_IG08
;; size=134 bbWeight=0.50 PerfScore 19.12
G_M7338_IG28:
- test edi, edi
+ test ecx, ecx
je G_M7338_IG30
;; size=8 bbWeight=4 PerfScore 5.00
G_M7338_IG29:
mov rdi, 0xD1FFAB1E ; 'Xslt_ModeListDup'
mov rcx, 0xD1FFAB1E ; code for System.SR:GetResourceString(System.String):System.String
call [rcx]System.SR:GetResourceString(System.String):System.String
mov gword ptr [rbp-0x70], rax
mov rdi, 0xD1FFAB1E ; System.String[]
mov esi, 1
call CORINFO_HELP_NEWARR_1_OBJ
mov gword ptr [rbp-0x68], rax
lea rdi, bword ptr [rax+0x10]
mov rsi, gword ptr [rbp-0x58]
call CORINFO_HELP_ASSIGN_REF
mov rax, gword ptr [rbx+0x08]
mov gword ptr [rbp-0x98], rax
mov rdi, gword ptr [rbx+0x28]
mov rcx, 0xD1FFAB1E ; code for System.Xml.Xsl.Xslt.XsltInput:BuildNameLineInfo():System.Xml.Xsl.ISourceLineInfo:this
cmp dword ptr [rdi], edi
call [rcx]System.Xml.Xsl.Xslt.XsltInput:BuildNameLineInfo():System.Xml.Xsl.ISourceLineInfo:this
mov rsi, rax
mov rax, gword ptr [rbp-0x98]
cmp byte ptr [rax], al
mov rdi, rax
mov rdx, gword ptr [rbp-0x70]
mov rcx, gword ptr [rbp-0x68]
mov r8, 0xD1FFAB1E ; code for System.Xml.Xsl.Xslt.Compiler:CreateError(System.Xml.Xsl.ISourceLineInfo,System.String,System.String[]):System.Xml.Xsl.Xslt.CompilerError:this
call [r8]System.Xml.Xsl.Xslt.Compiler:CreateError(System.Xml.Xsl.ISourceLineInfo,System.String,System.String[]):System.Xml.Xsl.Xslt.CompilerError:this
mov rsi, rax
mov rdi, gword ptr [rbp-0x98]
mov rdi, gword ptr [rdi+0x20]
cmp byte ptr [rdi], dil
mov rax, 0xD1FFAB1E ; code for System.Collections.CollectionBase:System.Collections.IList.Add(System.Object):int:this
call [rax]System.Collections.CollectionBase:System.Collections.IList.Add(System.Object):int:this
jmp SHORT G_M7338_IG32
;; size=159 bbWeight=2 PerfScore 84.00
G_M7338_IG30:
inc dword ptr [r14+0x14]
mov rdi, gword ptr [r14+0x08]
cmp dword ptr [rdi+0x08], esi
jbe SHORT G_M7338_IG31
lea eax, [rsi+0x01]
mov dword ptr [r14+0x10], eax
mov esi, esi
lea rdi, bword ptr [rdi+8*rsi+0x10]
mov rsi, r11
call CORINFO_HELP_ASSIGN_REF
jmp SHORT G_M7338_IG32
;; size=37 bbWeight=2 PerfScore 30.00
G_M7338_IG31:
mov rdi, r14
mov rsi, r11
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
call [rax]System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
;; size=18 bbWeight=2 PerfScore 7.50
G_M7338_IG32:
inc r12d
cmp r13d, r12d
jg G_M7338_IG11
jmp G_M7338_IG08
;; size=17 bbWeight=4 PerfScore 14.00
G_M7338_IG33:
- mov r8, gword ptr [rsi+0x30]
- mov r9, gword ptr [r11+0x30]
- cmp r8, r9
- jne SHORT G_M7338_IG35
- ;; size=13 bbWeight=32 PerfScore 168.00
-G_M7338_IG34:
- mov r10, gword ptr [rsi+0x38]
- mov gword ptr [rbp-0x60], r11
- mov rsi, gword ptr [r11+0x38]
- cmp r10, rsi
- jne SHORT G_M7338_IG36
- mov esi, 1
- jmp G_M7338_IG39
- ;; size=27 bbWeight=32 PerfScore 272.00
-G_M7338_IG35:
test r8, r8
- je G_M7338_IG19
+ je SHORT G_M7338_IG34
test r9, r9
- je G_M7338_IG19
+ je SHORT G_M7338_IG34
mov r10d, dword ptr [r8+0x08]
cmp r10d, dword ptr [r9+0x08]
- jne G_M7338_IG19
- mov dword ptr [rbp-0x4C], edx
+ je SHORT G_M7338_IG35
+ ;; size=20 bbWeight=32 PerfScore 272.00
+G_M7338_IG34:
+ xor esi, esi
+ jmp G_M7338_IG15
+ ;; size=7 bbWeight=32 PerfScore 72.00
+G_M7338_IG35:
+ mov dword ptr [rbp-0x2C], ecx
mov gword ptr [rbp-0x60], r11
- mov dword ptr [rbp-0x2C], edi
add r8, 12
add r10d, r10d
mov edx, r10d
lea rsi, bword ptr [r9+0x0C]
mov rdi, r8
mov r8, 0xD1FFAB1E ; code for System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
call [r8]System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
test eax, eax
mov rax, gword ptr [rbp-0x58]
- mov ecx, dword ptr [rbp-0x50]
- mov edx, dword ptr [rbp-0x4C]
+ mov ecx, dword ptr [rbp-0x2C]
mov rsi, gword ptr [rbp-0xA0]
- mov edi, dword ptr [rbp-0x2C]
mov r11, gword ptr [rbp-0x60]
- je G_M7338_IG19
- jmp G_M7338_IG34
- ;; size=109 bbWeight=32 PerfScore 816.00
+ je SHORT G_M7338_IG34
+ jmp G_M7338_IG19
+ ;; size=64 bbWeight=32 PerfScore 448.00
G_M7338_IG36:
test r10, r10
je SHORT G_M7338_IG37
test rsi, rsi
je SHORT G_M7338_IG37
mov r8d, dword ptr [r10+0x08]
cmp r8d, dword ptr [rsi+0x08]
je SHORT G_M7338_IG38
;; size=20 bbWeight=32 PerfScore 272.00
G_M7338_IG37:
xor esi, esi
jmp SHORT G_M7338_IG39
;; size=4 bbWeight=32 PerfScore 72.00
G_M7338_IG38:
- mov dword ptr [rbp-0x4C], edx
- mov dword ptr [rbp-0x2C], edi
+ mov dword ptr [rbp-0x2C], ecx
+ mov gword ptr [rbp-0x60], r11
add r10, 12
add r8d, r8d
mov edx, r8d
add rsi, 12
mov rdi, r10
mov r8, 0xD1FFAB1E ; code for System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
call [r8]System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
mov esi, eax
mov rax, gword ptr [rbp-0x58]
- mov ecx, dword ptr [rbp-0x50]
- mov edx, dword ptr [rbp-0x4C]
- mov edi, dword ptr [rbp-0x2C]
- ;; size=51 bbWeight=32 PerfScore 344.00
-G_M7338_IG39:
+ mov ecx, dword ptr [rbp-0x2C]
mov r11, gword ptr [rbp-0x60]
+ ;; size=50 bbWeight=32 PerfScore 312.00
+G_M7338_IG39:
jmp G_M7338_IG15
- ;; size=9 bbWeight=32 PerfScore 96.00
+ ;; size=5 bbWeight=32 PerfScore 64.00
G_M7338_IG40:
mov rdi, r14
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
call [rax]System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
;; size=15 bbWeight=0.50 PerfScore 1.75
G_M7338_IG41:
mov r15d, dword ptr [r14+0x10]
cmp r15d, 1
jle G_M7338_IG43
mov rdi, gword ptr [rbx+0x28]
mov rdi, gword ptr [rdi+0x18]
mov rax, gword ptr [rdi+0x08]
mov edi, dword ptr [rdi+0x10]
cmp edi, dword ptr [rax+0x08]
jae G_M7338_IG46
shl rdi, 5
test byte ptr [rax+rdi+0x2C], 2
jne G_M7338_IG42
mov rdi, 0xD1FFAB1E ; 'Xslt_NotYetImplemented'
mov rax, 0xD1FFAB1E ; code for System.SR:GetResourceString(System.String):System.String
call [rax]System.SR:GetResourceString(System.String):System.String
mov r15, rax
mov rdi, 0xD1FFAB1E ; System.String[]
mov esi, 1
call CORINFO_HELP_NEWARR_1_OBJ
mov r14, rax
mov rdi, 0xD1FFAB1E ; 'Multiple modes'
mov gword ptr [r14+0x10], rdi
mov r13, gword ptr [rbx+0x08]
mov rdi, gword ptr [rbx+0x28]
mov rax, 0xD1FFAB1E ; code for System.Xml.Xsl.Xslt.XsltInput:BuildNameLineInfo():System.Xml.Xsl.ISourceLineInfo:this
cmp dword ptr [rdi], edi
call [rax]System.Xml.Xsl.Xslt.XsltInput:BuildNameLineInfo():System.Xml.Xsl.ISourceLineInfo:this
mov rsi, rax
cmp byte ptr [r13], r13b
mov rdi, r13
mov rdx, r15
mov rcx, r14
mov rax, 0xD1FFAB1E ; code for System.Xml.Xsl.Xslt.Compiler:CreateError(System.Xml.Xsl.ISourceLineInfo,System.String,System.String[]):System.Xml.Xsl.Xslt.CompilerError:this
call [rax]System.Xml.Xsl.Xslt.Compiler:CreateError(System.Xml.Xsl.ISourceLineInfo,System.String,System.String[]):System.Xml.Xsl.Xslt.CompilerError:this
mov rsi, rax
mov rdi, gword ptr [r13+0x20]
cmp byte ptr [rdi], dil
mov rax, 0xD1FFAB1E ; code for System.Collections.CollectionBase:System.Collections.IList.Add(System.Object):int:this
call [rax]System.Collections.CollectionBase:System.Collections.IList.Add(System.Object):int:this
;; size=187 bbWeight=0.50 PerfScore 26.25
G_M7338_IG42:
mov rax, 0xD1FFAB1E ; const ptr
mov rax, gword ptr [rax]
jmp SHORT G_M7338_IG44
;; size=15 bbWeight=0.50 PerfScore 2.12
G_M7338_IG43:
test r15d, r15d
je SHORT G_M7338_IG42
mov rax, gword ptr [r14+0x08]
cmp dword ptr [rax+0x08], 0
jbe SHORT G_M7338_IG46
mov rax, gword ptr [rax+0x10]
;; size=19 bbWeight=0.50 PerfScore 4.62
G_M7338_IG44:
add rsp, 120
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.25
G_M7338_IG45:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()
call [rax]System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()
int3
;; size=13 bbWeight=0 PerfScore 0.00
G_M7338_IG46:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
RWD00 dq 0066006500640023h, 0074006C00750061h
RWD16 dq 0072007500630023h, 0074006E00650072h
-; Total bytes of code 2269, prolog size 41, PerfScore 3758.99, instruction count 515, allocated bytes for code 2269 (MethodHash=6c66e355) for method System.Xml.Xsl.Xslt.XsltLoader:ParseModeListAttribute(int):System.Xml.Xsl.Qil.QilName:this (FullOpts)
+; Total bytes of code 2245, prolog size 41, PerfScore 3342.99, instruction count 510, allocated bytes for code 2245 (MethodHash=6c66e355) for method System.Xml.Xsl.Xslt.XsltLoader:ParseModeListAttribute(int):System.Xml.Xsl.Qil.QilName:this (FullOpts)
-23 (-5.90 % of base) - System.Linq.Enumerable+EnumerableSorter`2[double,System.Nullable`1[int]]:QuickSort(int[],int,int):this
; Assembly listing for method System.Linq.Enumerable+EnumerableSorter`2[double,System.Nullable`1[int]]:QuickSort(int[],int,int):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; 1 single block inlinees; 5 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 9, 6 ) ref -> rbx this class-hnd single-def <System.Linq.Enumerable+EnumerableSorter`2[double,System.Nullable`1[int]]>
; V01 arg1 [V01,T02] ( 5, 4 ) ref -> r14 class-hnd single-def <int[]>
; V02 arg2 [V02,T01] ( 6, 4.50) int -> r15 single-def
; V03 arg3 [V03,T04] ( 3, 3 ) int -> r13 single-def
-; V04 loc0 [V04,T08] ( 5, 3 ) ref -> r12 class-hnd <System.Comparison`1[int]>
+; V04 loc0 [V04,T09] ( 4, 2 ) ref -> r12 class-hnd <System.Comparison`1[int]>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V06 tmp1 [V06,T05] ( 4, 4 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.Comparison`1[int]>
;* V07 tmp2 [V07 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
;* V08 tmp3 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Collections.Generic.IComparer`1[System.Nullable`1[int]]>
; V09 tmp4 [V09,T06] ( 4, 4 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.Comparison`1[int]>
; V10 tmp5 [V10,T07] ( 4, 4 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.Comparison`1[int]>
; V11 tmp6 [V11,T11] ( 2, 2 ) long -> [rbp-0x30] spill-single-def "Inlining Arg"
; V12 tmp7 [V12,T03] ( 4, 5 ) int -> r13 "Inlining Arg"
;* V13 tmp8 [V13 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[int]>
; V14 tmp9 [V14,T12] ( 3, 1.50) byref -> rdi "field V07._reference (fldOffset=0x0)" P-INDEP
-; V15 tmp10 [V15,T09] ( 4, 2.50) int -> rsi "field V07._length (fldOffset=0x8)" P-INDEP
+; V15 tmp10 [V15,T08] ( 4, 2.50) int -> rsi "field V07._length (fldOffset=0x8)" P-INDEP
;* V16 tmp11 [V16 ] ( 0, 0 ) byref -> zero-ref single-def "field V13._reference (fldOffset=0x0)" P-INDEP
;* V17 tmp12 [V17 ] ( 0, 0 ) int -> zero-ref "field V13._length (fldOffset=0x8)" P-INDEP
; V18 rat0 [V18,T10] ( 2, 2 ) ref -> r12 "Spilling to split statement for tree"
;
; Lcl frame size = 8
G_M4349_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
push rax
lea rbp, [rsp+0x30]
mov rbx, rdi
mov r14, rsi
mov r15d, edx
mov r13d, ecx
;; size=28 bbWeight=1 PerfScore 8.50
G_M4349_IG02:
cmp gword ptr [rbx+0x18], 0
jne SHORT G_M4349_IG05
;; size=7 bbWeight=1 PerfScore 4.00
G_M4349_IG03:
mov r12, gword ptr [rbx+0x10]
mov rdi, 0xD1FFAB1E ; global ptr
test byte ptr [rdi], 1
je G_M4349_IG14
;; size=23 bbWeight=0.50 PerfScore 3.12
G_M4349_IG04:
mov rdi, 0xD1FFAB1E ; data for System.Collections.Generic.Comparer`1[System.Nullable`1[int]]:<Default>k__BackingField
cmp r12, gword ptr [rdi]
jne SHORT G_M4349_IG05
cmp byte ptr [rbx+0x28], 0
jne SHORT G_M4349_IG06
mov rdi, 0xD1FFAB1E ; System.Comparison`1[int]
call CORINFO_HELP_NEWSFAST
mov r12, rax
lea rdi, bword ptr [r12+0x08]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; code for System.Linq.Enumerable+EnumerableSorter`2[double,System.Nullable`1[int]]:CompareAnyKeys_DefaultComparer_NoNext_Ascending(int,int):int:this
mov qword ptr [r12+0x18], rdi
jmp SHORT G_M4349_IG07
;; size=69 bbWeight=0.50 PerfScore 7.38
G_M4349_IG05:
mov rdi, 0xD1FFAB1E ; System.Comparison`1[int]
call CORINFO_HELP_NEWSFAST
mov r12, rax
mov rdi, rbx
mov rsi, 0xD1FFAB1E ; System.Linq.Enumerable+EnumerableSorter`1[double]
mov rdx, 0xD1FFAB1E ; token handle
call CORINFO_HELP_VIRTUAL_FUNC_PTR
mov qword ptr [rbp-0x30], rax
lea rdi, bword ptr [r12+0x08]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
mov rbx, qword ptr [rbp-0x30]
mov qword ptr [r12+0x18], rbx
jmp SHORT G_M4349_IG07
;; size=74 bbWeight=0.50 PerfScore 5.00
G_M4349_IG06:
mov rdi, 0xD1FFAB1E ; System.Comparison`1[int]
call CORINFO_HELP_NEWSFAST
mov r12, rax
lea rdi, bword ptr [r12+0x08]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; code for System.Linq.Enumerable+EnumerableSorter`2[double,System.Nullable`1[int]]:CompareAnyKeys_DefaultComparer_NoNext_Descending(int,int):int:this
mov qword ptr [r12+0x18], rdi
;; size=46 bbWeight=0.50 PerfScore 2.25
G_M4349_IG07:
sub r13d, r15d
inc r13d
test r14, r14
jne SHORT G_M4349_IG09
;; size=11 bbWeight=1 PerfScore 1.75
G_M4349_IG08:
or r15d, r13d
- jne SHORT G_M4349_IG16
+ jne SHORT G_M4349_IG15
xor rdi, rdi
xor esi, esi
jmp SHORT G_M4349_IG10
;; size=11 bbWeight=0.50 PerfScore 1.88
G_M4349_IG09:
mov edi, r15d
mov esi, r13d
add rdi, rsi
mov esi, dword ptr [r14+0x08]
cmp rdi, rsi
- ja SHORT G_M4349_IG16
+ ja SHORT G_M4349_IG15
mov edi, r15d
lea rdi, bword ptr [r14+4*rdi+0x10]
mov esi, r13d
;; size=29 bbWeight=0.50 PerfScore 2.75
G_M4349_IG10:
- test r12, r12
- je SHORT G_M4349_IG15
cmp esi, 1
jle SHORT G_M4349_IG12
- ;; size=10 bbWeight=1 PerfScore 2.50
+ ;; size=5 bbWeight=1 PerfScore 1.25
G_M4349_IG11:
mov rdx, r12
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.ArraySortHelper`1[int]:Sort(System.Span`1[int],System.Comparison`1[int])
call [rax]System.Collections.Generic.ArraySortHelper`1[int]:Sort(System.Span`1[int],System.Comparison`1[int])
;; size=15 bbWeight=0.50 PerfScore 1.75
G_M4349_IG12:
nop
;; size=1 bbWeight=1 PerfScore 0.25
G_M4349_IG13:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.25
G_M4349_IG14:
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.Comparer`1[System.Nullable`1[int]]
call CORINFO_HELP_GET_GCSTATIC_BASE
jmp G_M4349_IG04
;; size=20 bbWeight=0 PerfScore 0.00
G_M4349_IG15:
- mov edi, 29
- mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentNullException(int)
- call [rax]System.ThrowHelper:ThrowArgumentNullException(int)
- int3
- ;; size=18 bbWeight=0 PerfScore 0.00
-G_M4349_IG16:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-; Total bytes of code 390, prolog size 16, PerfScore 45.38, instruction count 98, allocated bytes for code 390 (MethodHash=50fdef02) for method System.Linq.Enumerable+EnumerableSorter`2[double,System.Nullable`1[int]]:QuickSort(int[],int,int):this (FullOpts)
+; Total bytes of code 367, prolog size 16, PerfScore 44.12, instruction count 92, allocated bytes for code 367 (MethodHash=50fdef02) for method System.Linq.Enumerable+EnumerableSorter`2[double,System.Nullable`1[int]]:QuickSort(int[],int,int):this (FullOpts)
-23 (-5.90 % of base) - System.Linq.Enumerable+EnumerableSorter`2[int,System.Nullable`1[int]]:QuickSort(int[],int,int):this
; Assembly listing for method System.Linq.Enumerable+EnumerableSorter`2[int,System.Nullable`1[int]]:QuickSort(int[],int,int):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; 1 single block inlinees; 5 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 9, 6 ) ref -> rbx this class-hnd single-def <System.Linq.Enumerable+EnumerableSorter`2[int,System.Nullable`1[int]]>
; V01 arg1 [V01,T02] ( 5, 4 ) ref -> r14 class-hnd single-def <int[]>
; V02 arg2 [V02,T01] ( 6, 4.50) int -> r15 single-def
; V03 arg3 [V03,T04] ( 3, 3 ) int -> r13 single-def
-; V04 loc0 [V04,T08] ( 5, 3 ) ref -> r12 class-hnd <System.Comparison`1[int]>
+; V04 loc0 [V04,T09] ( 4, 2 ) ref -> r12 class-hnd <System.Comparison`1[int]>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V06 tmp1 [V06,T05] ( 4, 4 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.Comparison`1[int]>
;* V07 tmp2 [V07 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
;* V08 tmp3 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Collections.Generic.IComparer`1[System.Nullable`1[int]]>
; V09 tmp4 [V09,T06] ( 4, 4 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.Comparison`1[int]>
; V10 tmp5 [V10,T07] ( 4, 4 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.Comparison`1[int]>
; V11 tmp6 [V11,T11] ( 2, 2 ) long -> [rbp-0x30] spill-single-def "Inlining Arg"
; V12 tmp7 [V12,T03] ( 4, 5 ) int -> r13 "Inlining Arg"
;* V13 tmp8 [V13 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[int]>
; V14 tmp9 [V14,T12] ( 3, 1.50) byref -> rdi "field V07._reference (fldOffset=0x0)" P-INDEP
-; V15 tmp10 [V15,T09] ( 4, 2.50) int -> rsi "field V07._length (fldOffset=0x8)" P-INDEP
+; V15 tmp10 [V15,T08] ( 4, 2.50) int -> rsi "field V07._length (fldOffset=0x8)" P-INDEP
;* V16 tmp11 [V16 ] ( 0, 0 ) byref -> zero-ref single-def "field V13._reference (fldOffset=0x0)" P-INDEP
;* V17 tmp12 [V17 ] ( 0, 0 ) int -> zero-ref "field V13._length (fldOffset=0x8)" P-INDEP
; V18 rat0 [V18,T10] ( 2, 2 ) ref -> r12 "Spilling to split statement for tree"
;
; Lcl frame size = 8
G_M475_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
push rax
lea rbp, [rsp+0x30]
mov rbx, rdi
mov r14, rsi
mov r15d, edx
mov r13d, ecx
;; size=28 bbWeight=1 PerfScore 8.50
G_M475_IG02:
cmp gword ptr [rbx+0x18], 0
jne SHORT G_M475_IG05
;; size=7 bbWeight=1 PerfScore 4.00
G_M475_IG03:
mov r12, gword ptr [rbx+0x10]
mov rdi, 0xD1FFAB1E ; global ptr
test byte ptr [rdi], 1
je G_M475_IG14
;; size=23 bbWeight=0.50 PerfScore 3.12
G_M475_IG04:
mov rdi, 0xD1FFAB1E ; data for System.Collections.Generic.Comparer`1[System.Nullable`1[int]]:<Default>k__BackingField
cmp r12, gword ptr [rdi]
jne SHORT G_M475_IG05
cmp byte ptr [rbx+0x28], 0
jne SHORT G_M475_IG06
mov rdi, 0xD1FFAB1E ; System.Comparison`1[int]
call CORINFO_HELP_NEWSFAST
mov r12, rax
lea rdi, bword ptr [r12+0x08]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; code for System.Linq.Enumerable+EnumerableSorter`2[int,System.Nullable`1[int]]:CompareAnyKeys_DefaultComparer_NoNext_Ascending(int,int):int:this
mov qword ptr [r12+0x18], rdi
jmp SHORT G_M475_IG07
;; size=69 bbWeight=0.50 PerfScore 7.38
G_M475_IG05:
mov rdi, 0xD1FFAB1E ; System.Comparison`1[int]
call CORINFO_HELP_NEWSFAST
mov r12, rax
mov rdi, rbx
mov rsi, 0xD1FFAB1E ; System.Linq.Enumerable+EnumerableSorter`1[int]
mov rdx, 0xD1FFAB1E ; token handle
call CORINFO_HELP_VIRTUAL_FUNC_PTR
mov qword ptr [rbp-0x30], rax
lea rdi, bword ptr [r12+0x08]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
mov rbx, qword ptr [rbp-0x30]
mov qword ptr [r12+0x18], rbx
jmp SHORT G_M475_IG07
;; size=74 bbWeight=0.50 PerfScore 5.00
G_M475_IG06:
mov rdi, 0xD1FFAB1E ; System.Comparison`1[int]
call CORINFO_HELP_NEWSFAST
mov r12, rax
lea rdi, bword ptr [r12+0x08]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; code for System.Linq.Enumerable+EnumerableSorter`2[int,System.Nullable`1[int]]:CompareAnyKeys_DefaultComparer_NoNext_Descending(int,int):int:this
mov qword ptr [r12+0x18], rdi
;; size=46 bbWeight=0.50 PerfScore 2.25
G_M475_IG07:
sub r13d, r15d
inc r13d
test r14, r14
jne SHORT G_M475_IG09
;; size=11 bbWeight=1 PerfScore 1.75
G_M475_IG08:
or r15d, r13d
- jne SHORT G_M475_IG16
+ jne SHORT G_M475_IG15
xor rdi, rdi
xor esi, esi
jmp SHORT G_M475_IG10
;; size=11 bbWeight=0.50 PerfScore 1.88
G_M475_IG09:
mov edi, r15d
mov esi, r13d
add rdi, rsi
mov esi, dword ptr [r14+0x08]
cmp rdi, rsi
- ja SHORT G_M475_IG16
+ ja SHORT G_M475_IG15
mov edi, r15d
lea rdi, bword ptr [r14+4*rdi+0x10]
mov esi, r13d
;; size=29 bbWeight=0.50 PerfScore 2.75
G_M475_IG10:
- test r12, r12
- je SHORT G_M475_IG15
cmp esi, 1
jle SHORT G_M475_IG12
- ;; size=10 bbWeight=1 PerfScore 2.50
+ ;; size=5 bbWeight=1 PerfScore 1.25
G_M475_IG11:
mov rdx, r12
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.ArraySortHelper`1[int]:Sort(System.Span`1[int],System.Comparison`1[int])
call [rax]System.Collections.Generic.ArraySortHelper`1[int]:Sort(System.Span`1[int],System.Comparison`1[int])
;; size=15 bbWeight=0.50 PerfScore 1.75
G_M475_IG12:
nop
;; size=1 bbWeight=1 PerfScore 0.25
G_M475_IG13:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.25
G_M475_IG14:
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.Comparer`1[System.Nullable`1[int]]
call CORINFO_HELP_GET_GCSTATIC_BASE
jmp G_M475_IG04
;; size=20 bbWeight=0 PerfScore 0.00
G_M475_IG15:
- mov edi, 29
- mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentNullException(int)
- call [rax]System.ThrowHelper:ThrowArgumentNullException(int)
- int3
- ;; size=18 bbWeight=0 PerfScore 0.00
-G_M475_IG16:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-; Total bytes of code 390, prolog size 16, PerfScore 45.38, instruction count 98, allocated bytes for code 390 (MethodHash=11a6fe24) for method System.Linq.Enumerable+EnumerableSorter`2[int,System.Nullable`1[int]]:QuickSort(int[],int,int):this (FullOpts)
+; Total bytes of code 367, prolog size 16, PerfScore 44.12, instruction count 92, allocated bytes for code 367 (MethodHash=11a6fe24) for method System.Linq.Enumerable+EnumerableSorter`2[int,System.Nullable`1[int]]:QuickSort(int[],int,int):this (FullOpts)
-23 (-5.90 % of base) - System.Linq.Enumerable+EnumerableSorter`2[long,System.Nullable`1[int]]:QuickSort(int[],int,int):this
; Assembly listing for method System.Linq.Enumerable+EnumerableSorter`2[long,System.Nullable`1[int]]:QuickSort(int[],int,int):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; 1 single block inlinees; 5 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 9, 6 ) ref -> rbx this class-hnd single-def <System.Linq.Enumerable+EnumerableSorter`2[long,System.Nullable`1[int]]>
; V01 arg1 [V01,T02] ( 5, 4 ) ref -> r14 class-hnd single-def <int[]>
; V02 arg2 [V02,T01] ( 6, 4.50) int -> r15 single-def
; V03 arg3 [V03,T04] ( 3, 3 ) int -> r13 single-def
-; V04 loc0 [V04,T08] ( 5, 3 ) ref -> r12 class-hnd <System.Comparison`1[int]>
+; V04 loc0 [V04,T09] ( 4, 2 ) ref -> r12 class-hnd <System.Comparison`1[int]>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V06 tmp1 [V06,T05] ( 4, 4 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.Comparison`1[int]>
;* V07 tmp2 [V07 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
;* V08 tmp3 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Collections.Generic.IComparer`1[System.Nullable`1[int]]>
; V09 tmp4 [V09,T06] ( 4, 4 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.Comparison`1[int]>
; V10 tmp5 [V10,T07] ( 4, 4 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.Comparison`1[int]>
; V11 tmp6 [V11,T11] ( 2, 2 ) long -> [rbp-0x30] spill-single-def "Inlining Arg"
; V12 tmp7 [V12,T03] ( 4, 5 ) int -> r13 "Inlining Arg"
;* V13 tmp8 [V13 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[int]>
; V14 tmp9 [V14,T12] ( 3, 1.50) byref -> rdi "field V07._reference (fldOffset=0x0)" P-INDEP
-; V15 tmp10 [V15,T09] ( 4, 2.50) int -> rsi "field V07._length (fldOffset=0x8)" P-INDEP
+; V15 tmp10 [V15,T08] ( 4, 2.50) int -> rsi "field V07._length (fldOffset=0x8)" P-INDEP
;* V16 tmp11 [V16 ] ( 0, 0 ) byref -> zero-ref single-def "field V13._reference (fldOffset=0x0)" P-INDEP
;* V17 tmp12 [V17 ] ( 0, 0 ) int -> zero-ref "field V13._length (fldOffset=0x8)" P-INDEP
; V18 rat0 [V18,T10] ( 2, 2 ) ref -> r12 "Spilling to split statement for tree"
;
; Lcl frame size = 8
G_M44482_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
push rax
lea rbp, [rsp+0x30]
mov rbx, rdi
mov r14, rsi
mov r15d, edx
mov r13d, ecx
;; size=28 bbWeight=1 PerfScore 8.50
G_M44482_IG02:
cmp gword ptr [rbx+0x18], 0
jne SHORT G_M44482_IG05
;; size=7 bbWeight=1 PerfScore 4.00
G_M44482_IG03:
mov r12, gword ptr [rbx+0x10]
mov rdi, 0xD1FFAB1E ; global ptr
test byte ptr [rdi], 1
je G_M44482_IG14
;; size=23 bbWeight=0.50 PerfScore 3.12
G_M44482_IG04:
mov rdi, 0xD1FFAB1E ; data for System.Collections.Generic.Comparer`1[System.Nullable`1[int]]:<Default>k__BackingField
cmp r12, gword ptr [rdi]
jne SHORT G_M44482_IG05
cmp byte ptr [rbx+0x28], 0
jne SHORT G_M44482_IG06
mov rdi, 0xD1FFAB1E ; System.Comparison`1[int]
call CORINFO_HELP_NEWSFAST
mov r12, rax
lea rdi, bword ptr [r12+0x08]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; code for System.Linq.Enumerable+EnumerableSorter`2[long,System.Nullable`1[int]]:CompareAnyKeys_DefaultComparer_NoNext_Ascending(int,int):int:this
mov qword ptr [r12+0x18], rdi
jmp SHORT G_M44482_IG07
;; size=69 bbWeight=0.50 PerfScore 7.38
G_M44482_IG05:
mov rdi, 0xD1FFAB1E ; System.Comparison`1[int]
call CORINFO_HELP_NEWSFAST
mov r12, rax
mov rdi, rbx
mov rsi, 0xD1FFAB1E ; System.Linq.Enumerable+EnumerableSorter`1[long]
mov rdx, 0xD1FFAB1E ; token handle
call CORINFO_HELP_VIRTUAL_FUNC_PTR
mov qword ptr [rbp-0x30], rax
lea rdi, bword ptr [r12+0x08]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
mov rbx, qword ptr [rbp-0x30]
mov qword ptr [r12+0x18], rbx
jmp SHORT G_M44482_IG07
;; size=74 bbWeight=0.50 PerfScore 5.00
G_M44482_IG06:
mov rdi, 0xD1FFAB1E ; System.Comparison`1[int]
call CORINFO_HELP_NEWSFAST
mov r12, rax
lea rdi, bword ptr [r12+0x08]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; code for System.Linq.Enumerable+EnumerableSorter`2[long,System.Nullable`1[int]]:CompareAnyKeys_DefaultComparer_NoNext_Descending(int,int):int:this
mov qword ptr [r12+0x18], rdi
;; size=46 bbWeight=0.50 PerfScore 2.25
G_M44482_IG07:
sub r13d, r15d
inc r13d
test r14, r14
jne SHORT G_M44482_IG09
;; size=11 bbWeight=1 PerfScore 1.75
G_M44482_IG08:
or r15d, r13d
- jne SHORT G_M44482_IG16
+ jne SHORT G_M44482_IG15
xor rdi, rdi
xor esi, esi
jmp SHORT G_M44482_IG10
;; size=11 bbWeight=0.50 PerfScore 1.88
G_M44482_IG09:
mov edi, r15d
mov esi, r13d
add rdi, rsi
mov esi, dword ptr [r14+0x08]
cmp rdi, rsi
- ja SHORT G_M44482_IG16
+ ja SHORT G_M44482_IG15
mov edi, r15d
lea rdi, bword ptr [r14+4*rdi+0x10]
mov esi, r13d
;; size=29 bbWeight=0.50 PerfScore 2.75
G_M44482_IG10:
- test r12, r12
- je SHORT G_M44482_IG15
cmp esi, 1
jle SHORT G_M44482_IG12
- ;; size=10 bbWeight=1 PerfScore 2.50
+ ;; size=5 bbWeight=1 PerfScore 1.25
G_M44482_IG11:
mov rdx, r12
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.ArraySortHelper`1[int]:Sort(System.Span`1[int],System.Comparison`1[int])
call [rax]System.Collections.Generic.ArraySortHelper`1[int]:Sort(System.Span`1[int],System.Comparison`1[int])
;; size=15 bbWeight=0.50 PerfScore 1.75
G_M44482_IG12:
nop
;; size=1 bbWeight=1 PerfScore 0.25
G_M44482_IG13:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.25
G_M44482_IG14:
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.Comparer`1[System.Nullable`1[int]]
call CORINFO_HELP_GET_GCSTATIC_BASE
jmp G_M44482_IG04
;; size=20 bbWeight=0 PerfScore 0.00
G_M44482_IG15:
- mov edi, 29
- mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentNullException(int)
- call [rax]System.ThrowHelper:ThrowArgumentNullException(int)
- int3
- ;; size=18 bbWeight=0 PerfScore 0.00
-G_M44482_IG16:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-; Total bytes of code 390, prolog size 16, PerfScore 45.38, instruction count 98, allocated bytes for code 390 (MethodHash=cd60523d) for method System.Linq.Enumerable+EnumerableSorter`2[long,System.Nullable`1[int]]:QuickSort(int[],int,int):this (FullOpts)
+; Total bytes of code 367, prolog size 16, PerfScore 44.12, instruction count 92, allocated bytes for code 367 (MethodHash=cd60523d) for method System.Linq.Enumerable+EnumerableSorter`2[long,System.Nullable`1[int]]:QuickSort(int[],int,int):this (FullOpts)
-23 (-5.90 % of base) - System.Linq.Enumerable+EnumerableSorter`2[short,System.Nullable`1[int]]:QuickSort(int[],int,int):this
; Assembly listing for method System.Linq.Enumerable+EnumerableSorter`2[short,System.Nullable`1[int]]:QuickSort(int[],int,int):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; 1 single block inlinees; 5 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 9, 6 ) ref -> rbx this class-hnd single-def <System.Linq.Enumerable+EnumerableSorter`2[short,System.Nullable`1[int]]>
; V01 arg1 [V01,T02] ( 5, 4 ) ref -> r14 class-hnd single-def <int[]>
; V02 arg2 [V02,T01] ( 6, 4.50) int -> r15 single-def
; V03 arg3 [V03,T04] ( 3, 3 ) int -> r13 single-def
-; V04 loc0 [V04,T08] ( 5, 3 ) ref -> r12 class-hnd <System.Comparison`1[int]>
+; V04 loc0 [V04,T09] ( 4, 2 ) ref -> r12 class-hnd <System.Comparison`1[int]>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V06 tmp1 [V06,T05] ( 4, 4 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.Comparison`1[int]>
;* V07 tmp2 [V07 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
;* V08 tmp3 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Collections.Generic.IComparer`1[System.Nullable`1[int]]>
; V09 tmp4 [V09,T06] ( 4, 4 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.Comparison`1[int]>
; V10 tmp5 [V10,T07] ( 4, 4 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.Comparison`1[int]>
; V11 tmp6 [V11,T11] ( 2, 2 ) long -> [rbp-0x30] spill-single-def "Inlining Arg"
; V12 tmp7 [V12,T03] ( 4, 5 ) int -> r13 "Inlining Arg"
;* V13 tmp8 [V13 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[int]>
; V14 tmp9 [V14,T12] ( 3, 1.50) byref -> rdi "field V07._reference (fldOffset=0x0)" P-INDEP
-; V15 tmp10 [V15,T09] ( 4, 2.50) int -> rsi "field V07._length (fldOffset=0x8)" P-INDEP
+; V15 tmp10 [V15,T08] ( 4, 2.50) int -> rsi "field V07._length (fldOffset=0x8)" P-INDEP
;* V16 tmp11 [V16 ] ( 0, 0 ) byref -> zero-ref single-def "field V13._reference (fldOffset=0x0)" P-INDEP
;* V17 tmp12 [V17 ] ( 0, 0 ) int -> zero-ref "field V13._length (fldOffset=0x8)" P-INDEP
; V18 rat0 [V18,T10] ( 2, 2 ) ref -> r12 "Spilling to split statement for tree"
;
; Lcl frame size = 8
G_M52570_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
push rax
lea rbp, [rsp+0x30]
mov rbx, rdi
mov r14, rsi
mov r15d, edx
mov r13d, ecx
;; size=28 bbWeight=1 PerfScore 8.50
G_M52570_IG02:
cmp gword ptr [rbx+0x18], 0
jne SHORT G_M52570_IG05
;; size=7 bbWeight=1 PerfScore 4.00
G_M52570_IG03:
mov r12, gword ptr [rbx+0x10]
mov rdi, 0xD1FFAB1E ; global ptr
test byte ptr [rdi], 1
je G_M52570_IG14
;; size=23 bbWeight=0.50 PerfScore 3.12
G_M52570_IG04:
mov rdi, 0xD1FFAB1E ; data for System.Collections.Generic.Comparer`1[System.Nullable`1[int]]:<Default>k__BackingField
cmp r12, gword ptr [rdi]
jne SHORT G_M52570_IG05
cmp byte ptr [rbx+0x28], 0
jne SHORT G_M52570_IG06
mov rdi, 0xD1FFAB1E ; System.Comparison`1[int]
call CORINFO_HELP_NEWSFAST
mov r12, rax
lea rdi, bword ptr [r12+0x08]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; code for System.Linq.Enumerable+EnumerableSorter`2[short,System.Nullable`1[int]]:CompareAnyKeys_DefaultComparer_NoNext_Ascending(int,int):int:this
mov qword ptr [r12+0x18], rdi
jmp SHORT G_M52570_IG07
;; size=69 bbWeight=0.50 PerfScore 7.38
G_M52570_IG05:
mov rdi, 0xD1FFAB1E ; System.Comparison`1[int]
call CORINFO_HELP_NEWSFAST
mov r12, rax
mov rdi, rbx
mov rsi, 0xD1FFAB1E ; System.Linq.Enumerable+EnumerableSorter`1[short]
mov rdx, 0xD1FFAB1E ; token handle
call CORINFO_HELP_VIRTUAL_FUNC_PTR
mov qword ptr [rbp-0x30], rax
lea rdi, bword ptr [r12+0x08]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
mov rbx, qword ptr [rbp-0x30]
mov qword ptr [r12+0x18], rbx
jmp SHORT G_M52570_IG07
;; size=74 bbWeight=0.50 PerfScore 5.00
G_M52570_IG06:
mov rdi, 0xD1FFAB1E ; System.Comparison`1[int]
call CORINFO_HELP_NEWSFAST
mov r12, rax
lea rdi, bword ptr [r12+0x08]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; code for System.Linq.Enumerable+EnumerableSorter`2[short,System.Nullable`1[int]]:CompareAnyKeys_DefaultComparer_NoNext_Descending(int,int):int:this
mov qword ptr [r12+0x18], rdi
;; size=46 bbWeight=0.50 PerfScore 2.25
G_M52570_IG07:
sub r13d, r15d
inc r13d
test r14, r14
jne SHORT G_M52570_IG09
;; size=11 bbWeight=1 PerfScore 1.75
G_M52570_IG08:
or r15d, r13d
- jne SHORT G_M52570_IG16
+ jne SHORT G_M52570_IG15
xor rdi, rdi
xor esi, esi
jmp SHORT G_M52570_IG10
;; size=11 bbWeight=0.50 PerfScore 1.88
G_M52570_IG09:
mov edi, r15d
mov esi, r13d
add rdi, rsi
mov esi, dword ptr [r14+0x08]
cmp rdi, rsi
- ja SHORT G_M52570_IG16
+ ja SHORT G_M52570_IG15
mov edi, r15d
lea rdi, bword ptr [r14+4*rdi+0x10]
mov esi, r13d
;; size=29 bbWeight=0.50 PerfScore 2.75
G_M52570_IG10:
- test r12, r12
- je SHORT G_M52570_IG15
cmp esi, 1
jle SHORT G_M52570_IG12
- ;; size=10 bbWeight=1 PerfScore 2.50
+ ;; size=5 bbWeight=1 PerfScore 1.25
G_M52570_IG11:
mov rdx, r12
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.ArraySortHelper`1[int]:Sort(System.Span`1[int],System.Comparison`1[int])
call [rax]System.Collections.Generic.ArraySortHelper`1[int]:Sort(System.Span`1[int],System.Comparison`1[int])
;; size=15 bbWeight=0.50 PerfScore 1.75
G_M52570_IG12:
nop
;; size=1 bbWeight=1 PerfScore 0.25
G_M52570_IG13:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.25
G_M52570_IG14:
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.Comparer`1[System.Nullable`1[int]]
call CORINFO_HELP_GET_GCSTATIC_BASE
jmp G_M52570_IG04
;; size=20 bbWeight=0 PerfScore 0.00
G_M52570_IG15:
- mov edi, 29
- mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentNullException(int)
- call [rax]System.ThrowHelper:ThrowArgumentNullException(int)
- int3
- ;; size=18 bbWeight=0 PerfScore 0.00
-G_M52570_IG16:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-; Total bytes of code 390, prolog size 16, PerfScore 45.38, instruction count 98, allocated bytes for code 390 (MethodHash=a9dc32a5) for method System.Linq.Enumerable+EnumerableSorter`2[short,System.Nullable`1[int]]:QuickSort(int[],int,int):this (FullOpts)
+; Total bytes of code 367, prolog size 16, PerfScore 44.12, instruction count 92, allocated bytes for code 367 (MethodHash=a9dc32a5) for method System.Linq.Enumerable+EnumerableSorter`2[short,System.Nullable`1[int]]:QuickSort(int[],int,int):this (FullOpts)
-23 (-5.20 % of base) - System.Linq.Enumerable+EnumerableSorter`2[System.__Canon,System.Nullable`1[int]]:QuickSort(int[],int,int):this
; Assembly listing for method System.Linq.Enumerable+EnumerableSorter`2[System.__Canon,System.Nullable`1[int]]:QuickSort(int[],int,int):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; 1 single block inlinees; 5 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 10, 6.50) ref -> rbx this class-hnd single-def <System.Linq.Enumerable+EnumerableSorter`2[System.__Canon,System.Nullable`1[int]]>
; V01 arg1 [V01,T02] ( 5, 4 ) ref -> r14 class-hnd single-def <int[]>
; V02 arg2 [V02,T01] ( 6, 4.50) int -> r15 single-def
; V03 arg3 [V03,T04] ( 3, 3 ) int -> r13 single-def
-; V04 loc0 [V04,T08] ( 5, 3 ) ref -> r12 class-hnd <System.Comparison`1[int]>
+; V04 loc0 [V04,T11] ( 4, 2 ) ref -> r12 class-hnd <System.Comparison`1[int]>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V06 tmp1 [V06,T12] ( 3, 2 ) long -> r12 "spilling helperCall"
; V07 tmp2 [V07,T05] ( 4, 4 ) ref -> [rbp-0x38] class-hnd exact spill-single-def "NewObj constructor temp" <System.Comparison`1[int]>
;* V08 tmp3 [V08 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
;* V09 tmp4 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Collections.Generic.IComparer`1[System.Nullable`1[int]]>
; V10 tmp5 [V10,T06] ( 4, 4 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.Comparison`1[int]>
; V11 tmp6 [V11,T07] ( 4, 4 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.Comparison`1[int]>
; V12 tmp7 [V12,T14] ( 2, 2 ) long -> r12 "Inlining Arg"
; V13 tmp8 [V13,T03] ( 4, 5 ) int -> r13 "Inlining Arg"
;* V14 tmp9 [V14 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[int]>
; V15 tmp10 [V15,T15] ( 3, 1.50) byref -> rdi "field V08._reference (fldOffset=0x0)" P-INDEP
-; V16 tmp11 [V16,T10] ( 4, 2.50) int -> rsi "field V08._length (fldOffset=0x8)" P-INDEP
+; V16 tmp11 [V16,T09] ( 4, 2.50) int -> rsi "field V08._length (fldOffset=0x8)" P-INDEP
;* V17 tmp12 [V17 ] ( 0, 0 ) byref -> zero-ref single-def "field V14._reference (fldOffset=0x0)" P-INDEP
;* V18 tmp13 [V18 ] ( 0, 0 ) int -> zero-ref "field V14._length (fldOffset=0x8)" P-INDEP
-; V19 rat0 [V19,T11] ( 3, 2.20) long -> rdi "Spilling to split statement for tree"
-; V20 rat1 [V20,T09] ( 3, 2.80) long -> r12 "fgMakeTemp is creating a new local variable"
+; V19 rat0 [V19,T10] ( 3, 2.20) long -> rdi "Spilling to split statement for tree"
+; V20 rat1 [V20,T08] ( 3, 2.80) long -> r12 "fgMakeTemp is creating a new local variable"
; V21 rat2 [V21,T13] ( 2, 2 ) ref -> r12 "Spilling to split statement for tree"
;
; Lcl frame size = 24
G_M30158_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 24
lea rbp, [rsp+0x40]
mov qword ptr [rbp-0x30], rdi
mov rbx, rdi
mov r14, rsi
mov r15d, edx
mov r13d, ecx
;; size=35 bbWeight=1 PerfScore 8.75
G_M30158_IG02:
cmp gword ptr [rbx+0x18], 0
jne SHORT G_M30158_IG05
;; size=7 bbWeight=1 PerfScore 4.00
G_M30158_IG03:
mov r12, gword ptr [rbx+0x10]
mov rdi, 0xD1FFAB1E ; global ptr
test byte ptr [rdi], 1
je G_M30158_IG16
;; size=23 bbWeight=0.50 PerfScore 3.12
G_M30158_IG04:
mov rdi, 0xD1FFAB1E ; data for System.Collections.Generic.Comparer`1[System.Nullable`1[int]]:<Default>k__BackingField
cmp r12, gword ptr [rdi]
jne SHORT G_M30158_IG05
cmp byte ptr [rbx+0x28], 0
jne G_M30158_IG08
mov rdi, 0xD1FFAB1E ; System.Comparison`1[int]
call CORINFO_HELP_NEWSFAST
mov r12, rax
lea rdi, bword ptr [r12+0x08]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; code for System.Linq.Enumerable+EnumerableSorter`2[System.__Canon,System.Nullable`1[int]]:CompareAnyKeys_DefaultComparer_NoNext_Ascending(int,int):int:this
mov qword ptr [r12+0x18], rdi
jmp G_M30158_IG09
;; size=76 bbWeight=0.50 PerfScore 7.38
G_M30158_IG05:
mov rdi, qword ptr [rbx]
mov rsi, qword ptr [rdi+0x30]
mov rsi, qword ptr [rsi+0x08]
mov r12, qword ptr [rsi+0x18]
test r12, r12
je SHORT G_M30158_IG07
;; size=20 bbWeight=0.50 PerfScore 4.62
G_M30158_IG06:
mov rdi, 0xD1FFAB1E ; System.Comparison`1[int]
call CORINFO_HELP_NEWSFAST
mov gword ptr [rbp-0x38], rax
mov rdi, rbx
mov rsi, r12
mov rdx, 0xD1FFAB1E ; token handle
call CORINFO_HELP_VIRTUAL_FUNC_PTR
mov r12, rax
mov rax, gword ptr [rbp-0x38]
lea rdi, bword ptr [rax+0x08]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
mov rdi, gword ptr [rbp-0x38]
mov qword ptr [rdi+0x18], r12
mov r12, rdi
jmp SHORT G_M30158_IG09
;; size=72 bbWeight=0.50 PerfScore 5.62
G_M30158_IG07:
mov rsi, 0xD1FFAB1E ; global ptr
call CORINFO_HELP_RUNTIMEHANDLE_CLASS
mov r12, rax
jmp SHORT G_M30158_IG06
;; size=20 bbWeight=0.10 PerfScore 0.35
G_M30158_IG08:
mov rdi, 0xD1FFAB1E ; System.Comparison`1[int]
call CORINFO_HELP_NEWSFAST
mov r12, rax
lea rdi, bword ptr [r12+0x08]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; code for System.Linq.Enumerable+EnumerableSorter`2[System.__Canon,System.Nullable`1[int]]:CompareAnyKeys_DefaultComparer_NoNext_Descending(int,int):int:this
mov qword ptr [r12+0x18], rdi
;; size=46 bbWeight=0.50 PerfScore 2.25
G_M30158_IG09:
sub r13d, r15d
inc r13d
test r14, r14
jne SHORT G_M30158_IG11
;; size=11 bbWeight=1 PerfScore 1.75
G_M30158_IG10:
or r15d, r13d
- jne SHORT G_M30158_IG18
+ jne SHORT G_M30158_IG17
xor rdi, rdi
xor esi, esi
jmp SHORT G_M30158_IG12
;; size=11 bbWeight=0.50 PerfScore 1.88
G_M30158_IG11:
mov edi, r15d
mov esi, r13d
add rdi, rsi
mov esi, dword ptr [r14+0x08]
cmp rdi, rsi
- ja SHORT G_M30158_IG18
+ ja SHORT G_M30158_IG17
mov edi, r15d
lea rdi, bword ptr [r14+4*rdi+0x10]
mov esi, r13d
;; size=29 bbWeight=0.50 PerfScore 2.75
G_M30158_IG12:
- test r12, r12
- je SHORT G_M30158_IG17
cmp esi, 1
jle SHORT G_M30158_IG14
- ;; size=10 bbWeight=1 PerfScore 2.50
+ ;; size=5 bbWeight=1 PerfScore 1.25
G_M30158_IG13:
mov rdx, r12
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.ArraySortHelper`1[int]:Sort(System.Span`1[int],System.Comparison`1[int])
call [rax]System.Collections.Generic.ArraySortHelper`1[int]:Sort(System.Span`1[int],System.Comparison`1[int])
;; size=15 bbWeight=0.50 PerfScore 1.75
G_M30158_IG14:
nop
;; size=1 bbWeight=1 PerfScore 0.25
G_M30158_IG15:
add rsp, 24
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.25
G_M30158_IG16:
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.Comparer`1[System.Nullable`1[int]]
call CORINFO_HELP_GET_GCSTATIC_BASE
jmp G_M30158_IG04
;; size=20 bbWeight=0 PerfScore 0.00
G_M30158_IG17:
- mov edi, 29
- mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentNullException(int)
- call [rax]System.ThrowHelper:ThrowArgumentNullException(int)
- int3
- ;; size=18 bbWeight=0 PerfScore 0.00
-G_M30158_IG18:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-; Total bytes of code 442, prolog size 23, PerfScore 51.23, instruction count 111, allocated bytes for code 442 (MethodHash=801b8a31) for method System.Linq.Enumerable+EnumerableSorter`2[System.__Canon,System.Nullable`1[int]]:QuickSort(int[],int,int):this (FullOpts)
+; Total bytes of code 419, prolog size 23, PerfScore 49.98, instruction count 105, allocated bytes for code 419 (MethodHash=801b8a31) for method System.Linq.Enumerable+EnumerableSorter`2[System.__Canon,System.Nullable`1[int]]:QuickSort(int[],int,int):this (FullOpts)
-23 (-5.90 % of base) - System.Linq.Enumerable+EnumerableSorter`2[System.Nullable`1[int],System.Nullable`1[int]]:QuickSort(int[],int,int):this
; Assembly listing for method System.Linq.Enumerable+EnumerableSorter`2[System.Nullable`1[int],System.Nullable`1[int]]:QuickSort(int[],int,int):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; 1 single block inlinees; 5 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 9, 6 ) ref -> rbx this class-hnd single-def <System.Linq.Enumerable+EnumerableSorter`2[System.Nullable`1[int],System.Nullable`1[int]]>
; V01 arg1 [V01,T02] ( 5, 4 ) ref -> r14 class-hnd single-def <int[]>
; V02 arg2 [V02,T01] ( 6, 4.50) int -> r15 single-def
; V03 arg3 [V03,T04] ( 3, 3 ) int -> r13 single-def
-; V04 loc0 [V04,T08] ( 5, 3 ) ref -> r12 class-hnd <System.Comparison`1[int]>
+; V04 loc0 [V04,T09] ( 4, 2 ) ref -> r12 class-hnd <System.Comparison`1[int]>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V06 tmp1 [V06,T05] ( 4, 4 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.Comparison`1[int]>
;* V07 tmp2 [V07 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
;* V08 tmp3 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Collections.Generic.IComparer`1[System.Nullable`1[int]]>
; V09 tmp4 [V09,T06] ( 4, 4 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.Comparison`1[int]>
; V10 tmp5 [V10,T07] ( 4, 4 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.Comparison`1[int]>
; V11 tmp6 [V11,T11] ( 2, 2 ) long -> [rbp-0x30] spill-single-def "Inlining Arg"
; V12 tmp7 [V12,T03] ( 4, 5 ) int -> r13 "Inlining Arg"
;* V13 tmp8 [V13 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[int]>
; V14 tmp9 [V14,T12] ( 3, 1.50) byref -> rdi "field V07._reference (fldOffset=0x0)" P-INDEP
-; V15 tmp10 [V15,T09] ( 4, 2.50) int -> rsi "field V07._length (fldOffset=0x8)" P-INDEP
+; V15 tmp10 [V15,T08] ( 4, 2.50) int -> rsi "field V07._length (fldOffset=0x8)" P-INDEP
;* V16 tmp11 [V16 ] ( 0, 0 ) byref -> zero-ref single-def "field V13._reference (fldOffset=0x0)" P-INDEP
;* V17 tmp12 [V17 ] ( 0, 0 ) int -> zero-ref "field V13._length (fldOffset=0x8)" P-INDEP
; V18 rat0 [V18,T10] ( 2, 2 ) ref -> r12 "Spilling to split statement for tree"
;
; Lcl frame size = 8
G_M24054_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
push rax
lea rbp, [rsp+0x30]
mov rbx, rdi
mov r14, rsi
mov r15d, edx
mov r13d, ecx
;; size=28 bbWeight=1 PerfScore 8.50
G_M24054_IG02:
cmp gword ptr [rbx+0x18], 0
jne SHORT G_M24054_IG05
;; size=7 bbWeight=1 PerfScore 4.00
G_M24054_IG03:
mov r12, gword ptr [rbx+0x10]
mov rdi, 0xD1FFAB1E ; global ptr
test byte ptr [rdi], 1
je G_M24054_IG14
;; size=23 bbWeight=0.50 PerfScore 3.12
G_M24054_IG04:
mov rdi, 0xD1FFAB1E ; data for System.Collections.Generic.Comparer`1[System.Nullable`1[int]]:<Default>k__BackingField
cmp r12, gword ptr [rdi]
jne SHORT G_M24054_IG05
cmp byte ptr [rbx+0x28], 0
jne SHORT G_M24054_IG06
mov rdi, 0xD1FFAB1E ; System.Comparison`1[int]
call CORINFO_HELP_NEWSFAST
mov r12, rax
lea rdi, bword ptr [r12+0x08]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; code for System.Linq.Enumerable+EnumerableSorter`2[System.Nullable`1[int],System.Nullable`1[int]]:CompareAnyKeys_DefaultComparer_NoNext_Ascending(int,int):int:this
mov qword ptr [r12+0x18], rdi
jmp SHORT G_M24054_IG07
;; size=69 bbWeight=0.50 PerfScore 7.38
G_M24054_IG05:
mov rdi, 0xD1FFAB1E ; System.Comparison`1[int]
call CORINFO_HELP_NEWSFAST
mov r12, rax
mov rdi, rbx
mov rsi, 0xD1FFAB1E ; System.Linq.Enumerable+EnumerableSorter`1[System.Nullable`1[int]]
mov rdx, 0xD1FFAB1E ; token handle
call CORINFO_HELP_VIRTUAL_FUNC_PTR
mov qword ptr [rbp-0x30], rax
lea rdi, bword ptr [r12+0x08]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
mov rbx, qword ptr [rbp-0x30]
mov qword ptr [r12+0x18], rbx
jmp SHORT G_M24054_IG07
;; size=74 bbWeight=0.50 PerfScore 5.00
G_M24054_IG06:
mov rdi, 0xD1FFAB1E ; System.Comparison`1[int]
call CORINFO_HELP_NEWSFAST
mov r12, rax
lea rdi, bword ptr [r12+0x08]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; code for System.Linq.Enumerable+EnumerableSorter`2[System.Nullable`1[int],System.Nullable`1[int]]:CompareAnyKeys_DefaultComparer_NoNext_Descending(int,int):int:this
mov qword ptr [r12+0x18], rdi
;; size=46 bbWeight=0.50 PerfScore 2.25
G_M24054_IG07:
sub r13d, r15d
inc r13d
test r14, r14
jne SHORT G_M24054_IG09
;; size=11 bbWeight=1 PerfScore 1.75
G_M24054_IG08:
or r15d, r13d
- jne SHORT G_M24054_IG16
+ jne SHORT G_M24054_IG15
xor rdi, rdi
xor esi, esi
jmp SHORT G_M24054_IG10
;; size=11 bbWeight=0.50 PerfScore 1.88
G_M24054_IG09:
mov edi, r15d
mov esi, r13d
add rdi, rsi
mov esi, dword ptr [r14+0x08]
cmp rdi, rsi
- ja SHORT G_M24054_IG16
+ ja SHORT G_M24054_IG15
mov edi, r15d
lea rdi, bword ptr [r14+4*rdi+0x10]
mov esi, r13d
;; size=29 bbWeight=0.50 PerfScore 2.75
G_M24054_IG10:
- test r12, r12
- je SHORT G_M24054_IG15
cmp esi, 1
jle SHORT G_M24054_IG12
- ;; size=10 bbWeight=1 PerfScore 2.50
+ ;; size=5 bbWeight=1 PerfScore 1.25
G_M24054_IG11:
mov rdx, r12
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.ArraySortHelper`1[int]:Sort(System.Span`1[int],System.Comparison`1[int])
call [rax]System.Collections.Generic.ArraySortHelper`1[int]:Sort(System.Span`1[int],System.Comparison`1[int])
;; size=15 bbWeight=0.50 PerfScore 1.75
G_M24054_IG12:
nop
;; size=1 bbWeight=1 PerfScore 0.25
G_M24054_IG13:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.25
G_M24054_IG14:
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.Comparer`1[System.Nullable`1[int]]
call CORINFO_HELP_GET_GCSTATIC_BASE
jmp G_M24054_IG04
;; size=20 bbWeight=0 PerfScore 0.00
G_M24054_IG15:
- mov edi, 29
- mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentNullException(int)
- call [rax]System.ThrowHelper:ThrowArgumentNullException(int)
- int3
- ;; size=18 bbWeight=0 PerfScore 0.00
-G_M24054_IG16:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-; Total bytes of code 390, prolog size 16, PerfScore 45.38, instruction count 98, allocated bytes for code 390 (MethodHash=1207a209) for method System.Linq.Enumerable+EnumerableSorter`2[System.Nullable`1[int],System.Nullable`1[int]]:QuickSort(int[],int,int):this (FullOpts)
+; Total bytes of code 367, prolog size 16, PerfScore 44.12, instruction count 92, allocated bytes for code 367 (MethodHash=1207a209) for method System.Linq.Enumerable+EnumerableSorter`2[System.Nullable`1[int],System.Nullable`1[int]]:QuickSort(int[],int,int):this (FullOpts)
-23 (-5.90 % of base) - System.Linq.Enumerable+EnumerableSorter`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:QuickSort(int[],int,int):this
; Assembly listing for method System.Linq.Enumerable+EnumerableSorter`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:QuickSort(int[],int,int):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; 1 single block inlinees; 5 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 9, 6 ) ref -> rbx this class-hnd single-def <System.Linq.Enumerable+EnumerableSorter`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]>
; V01 arg1 [V01,T02] ( 5, 4 ) ref -> r14 class-hnd single-def <int[]>
; V02 arg2 [V02,T01] ( 6, 4.50) int -> r15 single-def
; V03 arg3 [V03,T04] ( 3, 3 ) int -> r13 single-def
-; V04 loc0 [V04,T08] ( 5, 3 ) ref -> r12 class-hnd <System.Comparison`1[int]>
+; V04 loc0 [V04,T09] ( 4, 2 ) ref -> r12 class-hnd <System.Comparison`1[int]>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V06 tmp1 [V06,T05] ( 4, 4 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.Comparison`1[int]>
;* V07 tmp2 [V07 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
;* V08 tmp3 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Collections.Generic.IComparer`1[System.Nullable`1[int]]>
; V09 tmp4 [V09,T06] ( 4, 4 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.Comparison`1[int]>
; V10 tmp5 [V10,T07] ( 4, 4 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.Comparison`1[int]>
; V11 tmp6 [V11,T11] ( 2, 2 ) long -> [rbp-0x30] spill-single-def "Inlining Arg"
; V12 tmp7 [V12,T03] ( 4, 5 ) int -> r13 "Inlining Arg"
;* V13 tmp8 [V13 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[int]>
; V14 tmp9 [V14,T12] ( 3, 1.50) byref -> rdi "field V07._reference (fldOffset=0x0)" P-INDEP
-; V15 tmp10 [V15,T09] ( 4, 2.50) int -> rsi "field V07._length (fldOffset=0x8)" P-INDEP
+; V15 tmp10 [V15,T08] ( 4, 2.50) int -> rsi "field V07._length (fldOffset=0x8)" P-INDEP
;* V16 tmp11 [V16 ] ( 0, 0 ) byref -> zero-ref single-def "field V13._reference (fldOffset=0x0)" P-INDEP
;* V17 tmp12 [V17 ] ( 0, 0 ) int -> zero-ref "field V13._length (fldOffset=0x8)" P-INDEP
; V18 rat0 [V18,T10] ( 2, 2 ) ref -> r12 "Spilling to split statement for tree"
;
; Lcl frame size = 8
G_M59595_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
push rax
lea rbp, [rsp+0x30]
mov rbx, rdi
mov r14, rsi
mov r15d, edx
mov r13d, ecx
;; size=28 bbWeight=1 PerfScore 8.50
G_M59595_IG02:
cmp gword ptr [rbx+0x18], 0
jne SHORT G_M59595_IG05
;; size=7 bbWeight=1 PerfScore 4.00
G_M59595_IG03:
mov r12, gword ptr [rbx+0x10]
mov rdi, 0xD1FFAB1E ; global ptr
test byte ptr [rdi], 1
je G_M59595_IG14
;; size=23 bbWeight=0.50 PerfScore 3.12
G_M59595_IG04:
mov rdi, 0xD1FFAB1E ; data for System.Collections.Generic.Comparer`1[System.Nullable`1[int]]:<Default>k__BackingField
cmp r12, gword ptr [rdi]
jne SHORT G_M59595_IG05
cmp byte ptr [rbx+0x28], 0
jne SHORT G_M59595_IG06
mov rdi, 0xD1FFAB1E ; System.Comparison`1[int]
call CORINFO_HELP_NEWSFAST
mov r12, rax
lea rdi, bword ptr [r12+0x08]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; code for System.Linq.Enumerable+EnumerableSorter`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:CompareAnyKeys_DefaultComparer_NoNext_Ascending(int,int):int:this
mov qword ptr [r12+0x18], rdi
jmp SHORT G_M59595_IG07
;; size=69 bbWeight=0.50 PerfScore 7.38
G_M59595_IG05:
mov rdi, 0xD1FFAB1E ; System.Comparison`1[int]
call CORINFO_HELP_NEWSFAST
mov r12, rax
mov rdi, rbx
mov rsi, 0xD1FFAB1E ; System.Linq.Enumerable+EnumerableSorter`1[System.Numerics.Vector`1[float]]
mov rdx, 0xD1FFAB1E ; token handle
call CORINFO_HELP_VIRTUAL_FUNC_PTR
mov qword ptr [rbp-0x30], rax
lea rdi, bword ptr [r12+0x08]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
mov rbx, qword ptr [rbp-0x30]
mov qword ptr [r12+0x18], rbx
jmp SHORT G_M59595_IG07
;; size=74 bbWeight=0.50 PerfScore 5.00
G_M59595_IG06:
mov rdi, 0xD1FFAB1E ; System.Comparison`1[int]
call CORINFO_HELP_NEWSFAST
mov r12, rax
lea rdi, bword ptr [r12+0x08]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; code for System.Linq.Enumerable+EnumerableSorter`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:CompareAnyKeys_DefaultComparer_NoNext_Descending(int,int):int:this
mov qword ptr [r12+0x18], rdi
;; size=46 bbWeight=0.50 PerfScore 2.25
G_M59595_IG07:
sub r13d, r15d
inc r13d
test r14, r14
jne SHORT G_M59595_IG09
;; size=11 bbWeight=1 PerfScore 1.75
G_M59595_IG08:
or r15d, r13d
- jne SHORT G_M59595_IG16
+ jne SHORT G_M59595_IG15
xor rdi, rdi
xor esi, esi
jmp SHORT G_M59595_IG10
;; size=11 bbWeight=0.50 PerfScore 1.88
G_M59595_IG09:
mov edi, r15d
mov esi, r13d
add rdi, rsi
mov esi, dword ptr [r14+0x08]
cmp rdi, rsi
- ja SHORT G_M59595_IG16
+ ja SHORT G_M59595_IG15
mov edi, r15d
lea rdi, bword ptr [r14+4*rdi+0x10]
mov esi, r13d
;; size=29 bbWeight=0.50 PerfScore 2.75
G_M59595_IG10:
- test r12, r12
- je SHORT G_M59595_IG15
cmp esi, 1
jle SHORT G_M59595_IG12
- ;; size=10 bbWeight=1 PerfScore 2.50
+ ;; size=5 bbWeight=1 PerfScore 1.25
G_M59595_IG11:
mov rdx, r12
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.ArraySortHelper`1[int]:Sort(System.Span`1[int],System.Comparison`1[int])
call [rax]System.Collections.Generic.ArraySortHelper`1[int]:Sort(System.Span`1[int],System.Comparison`1[int])
;; size=15 bbWeight=0.50 PerfScore 1.75
G_M59595_IG12:
nop
;; size=1 bbWeight=1 PerfScore 0.25
G_M59595_IG13:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.25
G_M59595_IG14:
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.Comparer`1[System.Nullable`1[int]]
call CORINFO_HELP_GET_GCSTATIC_BASE
jmp G_M59595_IG04
;; size=20 bbWeight=0 PerfScore 0.00
G_M59595_IG15:
- mov edi, 29
- mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentNullException(int)
- call [rax]System.ThrowHelper:ThrowArgumentNullException(int)
- int3
- ;; size=18 bbWeight=0 PerfScore 0.00
-G_M59595_IG16:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-; Total bytes of code 390, prolog size 16, PerfScore 45.38, instruction count 98, allocated bytes for code 390 (MethodHash=0edb1734) for method System.Linq.Enumerable+EnumerableSorter`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:QuickSort(int[],int,int):this (FullOpts)
+; Total bytes of code 367, prolog size 16, PerfScore 44.12, instruction count 92, allocated bytes for code 367 (MethodHash=0edb1734) for method System.Linq.Enumerable+EnumerableSorter`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:QuickSort(int[],int,int):this (FullOpts)
-23 (-5.90 % of base) - System.Linq.Enumerable+EnumerableSorter`2[ubyte,System.Nullable`1[int]]:QuickSort(int[],int,int):this
; Assembly listing for method System.Linq.Enumerable+EnumerableSorter`2[ubyte,System.Nullable`1[int]]:QuickSort(int[],int,int):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; 1 single block inlinees; 5 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 9, 6 ) ref -> rbx this class-hnd single-def <System.Linq.Enumerable+EnumerableSorter`2[ubyte,System.Nullable`1[int]]>
; V01 arg1 [V01,T02] ( 5, 4 ) ref -> r14 class-hnd single-def <int[]>
; V02 arg2 [V02,T01] ( 6, 4.50) int -> r15 single-def
; V03 arg3 [V03,T04] ( 3, 3 ) int -> r13 single-def
-; V04 loc0 [V04,T08] ( 5, 3 ) ref -> r12 class-hnd <System.Comparison`1[int]>
+; V04 loc0 [V04,T09] ( 4, 2 ) ref -> r12 class-hnd <System.Comparison`1[int]>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V06 tmp1 [V06,T05] ( 4, 4 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.Comparison`1[int]>
;* V07 tmp2 [V07 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
;* V08 tmp3 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Collections.Generic.IComparer`1[System.Nullable`1[int]]>
; V09 tmp4 [V09,T06] ( 4, 4 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.Comparison`1[int]>
; V10 tmp5 [V10,T07] ( 4, 4 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.Comparison`1[int]>
; V11 tmp6 [V11,T11] ( 2, 2 ) long -> [rbp-0x30] spill-single-def "Inlining Arg"
; V12 tmp7 [V12,T03] ( 4, 5 ) int -> r13 "Inlining Arg"
;* V13 tmp8 [V13 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[int]>
; V14 tmp9 [V14,T12] ( 3, 1.50) byref -> rdi "field V07._reference (fldOffset=0x0)" P-INDEP
-; V15 tmp10 [V15,T09] ( 4, 2.50) int -> rsi "field V07._length (fldOffset=0x8)" P-INDEP
+; V15 tmp10 [V15,T08] ( 4, 2.50) int -> rsi "field V07._length (fldOffset=0x8)" P-INDEP
;* V16 tmp11 [V16 ] ( 0, 0 ) byref -> zero-ref single-def "field V13._reference (fldOffset=0x0)" P-INDEP
;* V17 tmp12 [V17 ] ( 0, 0 ) int -> zero-ref "field V13._length (fldOffset=0x8)" P-INDEP
; V18 rat0 [V18,T10] ( 2, 2 ) ref -> r12 "Spilling to split statement for tree"
;
; Lcl frame size = 8
G_M15319_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
push rax
lea rbp, [rsp+0x30]
mov rbx, rdi
mov r14, rsi
mov r15d, edx
mov r13d, ecx
;; size=28 bbWeight=1 PerfScore 8.50
G_M15319_IG02:
cmp gword ptr [rbx+0x18], 0
jne SHORT G_M15319_IG05
;; size=7 bbWeight=1 PerfScore 4.00
G_M15319_IG03:
mov r12, gword ptr [rbx+0x10]
mov rdi, 0xD1FFAB1E ; global ptr
test byte ptr [rdi], 1
je G_M15319_IG14
;; size=23 bbWeight=0.50 PerfScore 3.12
G_M15319_IG04:
mov rdi, 0xD1FFAB1E ; data for System.Collections.Generic.Comparer`1[System.Nullable`1[int]]:<Default>k__BackingField
cmp r12, gword ptr [rdi]
jne SHORT G_M15319_IG05
cmp byte ptr [rbx+0x28], 0
jne SHORT G_M15319_IG06
mov rdi, 0xD1FFAB1E ; System.Comparison`1[int]
call CORINFO_HELP_NEWSFAST
mov r12, rax
lea rdi, bword ptr [r12+0x08]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; code for System.Linq.Enumerable+EnumerableSorter`2[ubyte,System.Nullable`1[int]]:CompareAnyKeys_DefaultComparer_NoNext_Ascending(int,int):int:this
mov qword ptr [r12+0x18], rdi
jmp SHORT G_M15319_IG07
;; size=69 bbWeight=0.50 PerfScore 7.38
G_M15319_IG05:
mov rdi, 0xD1FFAB1E ; System.Comparison`1[int]
call CORINFO_HELP_NEWSFAST
mov r12, rax
mov rdi, rbx
mov rsi, 0xD1FFAB1E ; System.Linq.Enumerable+EnumerableSorter`1[ubyte]
mov rdx, 0xD1FFAB1E ; token handle
call CORINFO_HELP_VIRTUAL_FUNC_PTR
mov qword ptr [rbp-0x30], rax
lea rdi, bword ptr [r12+0x08]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
mov rbx, qword ptr [rbp-0x30]
mov qword ptr [r12+0x18], rbx
jmp SHORT G_M15319_IG07
;; size=74 bbWeight=0.50 PerfScore 5.00
G_M15319_IG06:
mov rdi, 0xD1FFAB1E ; System.Comparison`1[int]
call CORINFO_HELP_NEWSFAST
mov r12, rax
lea rdi, bword ptr [r12+0x08]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; code for System.Linq.Enumerable+EnumerableSorter`2[ubyte,System.Nullable`1[int]]:CompareAnyKeys_DefaultComparer_NoNext_Descending(int,int):int:this
mov qword ptr [r12+0x18], rdi
;; size=46 bbWeight=0.50 PerfScore 2.25
G_M15319_IG07:
sub r13d, r15d
inc r13d
test r14, r14
jne SHORT G_M15319_IG09
;; size=11 bbWeight=1 PerfScore 1.75
G_M15319_IG08:
or r15d, r13d
- jne SHORT G_M15319_IG16
+ jne SHORT G_M15319_IG15
xor rdi, rdi
xor esi, esi
jmp SHORT G_M15319_IG10
;; size=11 bbWeight=0.50 PerfScore 1.88
G_M15319_IG09:
mov edi, r15d
mov esi, r13d
add rdi, rsi
mov esi, dword ptr [r14+0x08]
cmp rdi, rsi
- ja SHORT G_M15319_IG16
+ ja SHORT G_M15319_IG15
mov edi, r15d
lea rdi, bword ptr [r14+4*rdi+0x10]
mov esi, r13d
;; size=29 bbWeight=0.50 PerfScore 2.75
G_M15319_IG10:
- test r12, r12
- je SHORT G_M15319_IG15
cmp esi, 1
jle SHORT G_M15319_IG12
- ;; size=10 bbWeight=1 PerfScore 2.50
+ ;; size=5 bbWeight=1 PerfScore 1.25
G_M15319_IG11:
mov rdx, r12
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.ArraySortHelper`1[int]:Sort(System.Span`1[int],System.Comparison`1[int])
call [rax]System.Collections.Generic.ArraySortHelper`1[int]:Sort(System.Span`1[int],System.Comparison`1[int])
;; size=15 bbWeight=0.50 PerfScore 1.75
G_M15319_IG12:
nop
;; size=1 bbWeight=1 PerfScore 0.25
G_M15319_IG13:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.25
G_M15319_IG14:
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.Comparer`1[System.Nullable`1[int]]
call CORINFO_HELP_GET_GCSTATIC_BASE
jmp G_M15319_IG04
;; size=20 bbWeight=0 PerfScore 0.00
G_M15319_IG15:
- mov edi, 29
- mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentNullException(int)
- call [rax]System.ThrowHelper:ThrowArgumentNullException(int)
- int3
- ;; size=18 bbWeight=0 PerfScore 0.00
-G_M15319_IG16:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-; Total bytes of code 390, prolog size 16, PerfScore 45.38, instruction count 98, allocated bytes for code 390 (MethodHash=a7bfc428) for method System.Linq.Enumerable+EnumerableSorter`2[ubyte,System.Nullable`1[int]]:QuickSort(int[],int,int):this (FullOpts)
+; Total bytes of code 367, prolog size 16, PerfScore 44.12, instruction count 92, allocated bytes for code 367 (MethodHash=a7bfc428) for method System.Linq.Enumerable+EnumerableSorter`2[ubyte,System.Nullable`1[int]]:QuickSort(int[],int,int):this (FullOpts)