forked from MihaZupan/runtime-utils
-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[JitDiff X64] xtqqczze/dotnet-runtime/UIntCastLengthCheck4 #876
Comments
xtqqczze
referenced
this issue
in xtqqczze/dotnet-runtime
Jan 11, 2025
Top method regressions38 (2.94 % of base) - System.Text.Json.JsonWriterHelper:ValidateNumber(System.ReadOnlySpan`1[ubyte]) ; Assembly listing for method System.Text.Json.JsonWriterHelper:ValidateNumber(System.ReadOnlySpan`1[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; 11 single block inlinees; 12 inlinees without PGO data
+; 0 inlinees with PGO data; 11 single block inlinees; 8 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[ubyte]>
; V01 loc0 [V01,T00] ( 38, 53 ) int -> r14
; V02 loc1 [V02,T03] ( 12, 4 ) ubyte -> r13
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04,T19] ( 2, 0 ) ref -> r13 class-hnd exact single-def "impAppendStmt" <System.String>
; V05 tmp2 [V05,T07] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
; V06 tmp3 [V06,T08] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
; V07 tmp4 [V07,T09] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
; V08 tmp5 [V08,T20] ( 2, 0 ) ref -> rbx class-hnd exact single-def "impAppendStmt" <System.String>
; V09 tmp6 [V09,T10] ( 3, 0 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
; V10 tmp7 [V10,T11] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
; V11 tmp8 [V11,T12] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
;* V12 tmp9 [V12 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V13 tmp10 [V13 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V14 tmp11 [V14,T13] ( 3, 0 ) ref -> r15 class-hnd "Inline return value spill temp" <System.String>
;* V15 tmp12 [V15 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inline stloc first use temp"
; V16 tmp13 [V16 ] ( 10, 0 ) struct (40) [rbp-0x48] do-not-enreg[XSF] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
; V17 tmp14 [V17,T17] ( 2, 0 ) ubyte -> rdi "Inline return value spill temp"
;* V18 tmp15 [V18 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V19 tmp16 [V19,T05] ( 4, 0 ) int -> rdi "Inlining Arg"
-;* V20 tmp17 [V20 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V21 tmp18 [V21,T21] ( 2, 0 ) byref -> r15 single-def "Inlining Arg"
-; V22 tmp19 [V22,T35] ( 2, 0 ) int -> rsi "Inlining Arg"
-;* V23 tmp20 [V23,T36] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V24 tmp21 [V24 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
-;* V25 tmp22 [V25 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V26 tmp23 [V26 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V27 tmp24 [V27,T37] ( 2, 0 ) ushort -> r13 "Inlining Arg"
-; V28 tmp25 [V28,T14] ( 3, 0 ) ref -> r15 class-hnd exact single-def "dup spill" <System.String>
-;* V29 tmp26 [V29 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V30 tmp27 [V30,T15] ( 3, 0 ) ref -> r15 class-hnd "Inline return value spill temp" <System.String>
-; V31 tmp28 [V31,T04] ( 5, 0 ) ubyte -> rbx "Inlining Arg"
-;* V32 tmp29 [V32 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inline stloc first use temp"
-; V33 tmp30 [V33 ] ( 10, 0 ) struct (40) [rbp-0x70] do-not-enreg[XSF] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
-; V34 tmp31 [V34,T18] ( 2, 0 ) ubyte -> rdi "Inline return value spill temp"
-;* V35 tmp32 [V35 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V36 tmp33 [V36,T06] ( 4, 0 ) int -> rdi "Inlining Arg"
-;* V37 tmp34 [V37 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V38 tmp35 [V38,T22] ( 2, 0 ) byref -> r15 single-def "Inlining Arg"
-; V39 tmp36 [V39,T38] ( 2, 0 ) int -> rsi "Inlining Arg"
-;* V40 tmp37 [V40,T39] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V41 tmp38 [V41 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
-;* V42 tmp39 [V42 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V43 tmp40 [V43 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V44 tmp41 [V44,T40] ( 2, 0 ) ushort -> rbx "Inlining Arg"
-; V45 tmp42 [V45,T16] ( 3, 0 ) ref -> r15 class-hnd exact single-def "dup spill" <System.String>
-; V46 tmp43 [V46,T02] ( 10, 16.50) byref -> r15 single-def "field V00._reference (fldOffset=0x0)" P-INDEP
-; V47 tmp44 [V47,T01] ( 17, 23.50) int -> rbx single-def "field V00._length (fldOffset=0x8)" P-INDEP
-;* V48 tmp45 [V48 ] ( 0, 0 ) byref -> zero-ref "field V18._reference (fldOffset=0x0)" P-INDEP
-;* V49 tmp46 [V49 ] ( 0, 0 ) int -> zero-ref "field V18._length (fldOffset=0x8)" P-INDEP
-;* V50 tmp47 [V50 ] ( 0, 0 ) byref -> zero-ref single-def "field V20._reference (fldOffset=0x0)" P-INDEP
-;* V51 tmp48 [V51 ] ( 0, 0 ) int -> zero-ref "field V20._length (fldOffset=0x8)" P-INDEP
-;* V52 tmp49 [V52 ] ( 0, 0 ) byref -> zero-ref single-def "field V24._reference (fldOffset=0x0)" P-INDEP
-;* V53 tmp50 [V53 ] ( 0, 0 ) int -> zero-ref "field V24._length (fldOffset=0x8)" P-INDEP
-;* V54 tmp51 [V54 ] ( 0, 0 ) byref -> zero-ref "field V35._reference (fldOffset=0x0)" P-INDEP
-;* V55 tmp52 [V55 ] ( 0, 0 ) int -> zero-ref "field V35._length (fldOffset=0x8)" P-INDEP
-;* V56 tmp53 [V56 ] ( 0, 0 ) byref -> zero-ref single-def "field V37._reference (fldOffset=0x0)" P-INDEP
-;* V57 tmp54 [V57 ] ( 0, 0 ) int -> zero-ref "field V37._length (fldOffset=0x8)" P-INDEP
-;* V58 tmp55 [V58 ] ( 0, 0 ) byref -> zero-ref single-def "field V41._reference (fldOffset=0x0)" P-INDEP
-;* V59 tmp56 [V59 ] ( 0, 0 ) int -> zero-ref "field V41._length (fldOffset=0x8)" P-INDEP
-; V60 tmp57 [V60,T23] ( 2, 0 ) ref -> rbx single-def "argument with side effect"
-; V61 tmp58 [V61,T24] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
-; V62 tmp59 [V62,T25] ( 2, 0 ) ref -> r15 single-def "argument with side effect"
-; V63 tmp60 [V63,T26] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
-; V64 tmp61 [V64,T27] ( 2, 0 ) ref -> r15 single-def "argument with side effect"
-; V65 tmp62 [V65,T28] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
-; V66 tmp63 [V66,T29] ( 2, 0 ) ref -> r15 single-def "argument with side effect"
-; V67 tmp64 [V67,T30] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
-; V68 tmp65 [V68,T31] ( 2, 0 ) ref -> r15 single-def "argument with side effect"
-; V69 tmp66 [V69,T32] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
-; V70 tmp67 [V70,T33] ( 2, 0 ) ref -> r15 single-def "argument with side effect"
-; V71 tmp68 [V71,T34] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V19 tmp16 [V19,T05] ( 4, 0 ) int -> rsi "Inlining Arg"
+;* V20 tmp17 [V20 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
+; V21 tmp18 [V21,T21] ( 2, 0 ) byref -> rdx single-def "Inlining Arg"
+; V22 tmp19 [V22,T37] ( 2, 0 ) int -> rdi "Inlining Arg"
+; V23 tmp20 [V23,T38] ( 2, 0 ) ushort -> r13 "Inlining Arg"
+; V24 tmp21 [V24,T14] ( 3, 0 ) ref -> r15 class-hnd exact single-def "dup spill" <System.String>
+;* V25 tmp22 [V25 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+; V26 tmp23 [V26,T15] ( 3, 0 ) ref -> r15 class-hnd "Inline return value spill temp" <System.String>
+; V27 tmp24 [V27,T04] ( 5, 0 ) ubyte -> rbx "Inlining Arg"
+;* V28 tmp25 [V28 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inline stloc first use temp"
+; V29 tmp26 [V29 ] ( 10, 0 ) struct (40) [rbp-0x70] do-not-enreg[XSF] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
+; V30 tmp27 [V30,T18] ( 2, 0 ) ubyte -> rdi "Inline return value spill temp"
+;* V31 tmp28 [V31 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
+; V32 tmp29 [V32,T06] ( 4, 0 ) int -> rsi "Inlining Arg"
+;* V33 tmp30 [V33 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
+; V34 tmp31 [V34,T22] ( 2, 0 ) byref -> rdx single-def "Inlining Arg"
+; V35 tmp32 [V35,T39] ( 2, 0 ) int -> rdi "Inlining Arg"
+; V36 tmp33 [V36,T40] ( 2, 0 ) ushort -> rbx "Inlining Arg"
+; V37 tmp34 [V37,T16] ( 3, 0 ) ref -> r15 class-hnd exact single-def "dup spill" <System.String>
+; V38 tmp35 [V38,T02] ( 10, 16.50) byref -> r15 single-def "field V00._reference (fldOffset=0x0)" P-INDEP
+; V39 tmp36 [V39,T01] ( 17, 23.50) int -> rbx single-def "field V00._length (fldOffset=0x8)" P-INDEP
+;* V40 tmp37 [V40 ] ( 0, 0 ) byref -> zero-ref "field V18._reference (fldOffset=0x0)" P-INDEP
+;* V41 tmp38 [V41 ] ( 0, 0 ) int -> zero-ref "field V18._length (fldOffset=0x8)" P-INDEP
+; V42 tmp39 [V42,T23] ( 2, 0 ) byref -> rsi single-def "field V20._reference (fldOffset=0x0)" P-INDEP
+; V43 tmp40 [V43,T41] ( 2, 0 ) int -> rdx "field V20._length (fldOffset=0x8)" P-INDEP
+;* V44 tmp41 [V44 ] ( 0, 0 ) byref -> zero-ref "field V31._reference (fldOffset=0x0)" P-INDEP
+;* V45 tmp42 [V45 ] ( 0, 0 ) int -> zero-ref "field V31._length (fldOffset=0x8)" P-INDEP
+; V46 tmp43 [V46,T24] ( 2, 0 ) byref -> rsi single-def "field V33._reference (fldOffset=0x0)" P-INDEP
+; V47 tmp44 [V47,T42] ( 2, 0 ) int -> rdx "field V33._length (fldOffset=0x8)" P-INDEP
+; V48 tmp45 [V48,T25] ( 2, 0 ) ref -> rbx single-def "argument with side effect"
+; V49 tmp46 [V49,T26] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V50 tmp47 [V50,T27] ( 2, 0 ) ref -> r15 single-def "argument with side effect"
+; V51 tmp48 [V51,T28] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V52 tmp49 [V52,T29] ( 2, 0 ) ref -> r15 single-def "argument with side effect"
+; V53 tmp50 [V53,T30] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V54 tmp51 [V54,T31] ( 2, 0 ) ref -> r15 single-def "argument with side effect"
+; V55 tmp52 [V55,T32] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V56 tmp53 [V56,T33] ( 2, 0 ) ref -> r15 single-def "argument with side effect"
+; V57 tmp54 [V57,T34] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V58 tmp55 [V58,T35] ( 2, 0 ) ref -> r15 single-def "argument with side effect"
+; V59 tmp56 [V59,T36] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
;
; Lcl frame size = 80
G_M850_IG01:
push rbp
push r15
push r14
push r13
push rbx
sub rsp, 80
lea rbp, [rsp+0x70]
vxorps xmm8, xmm8, xmm8
vmovdqu32 zmmword ptr [rbp-0x70], zmm8
vmovdqa xmmword ptr [rbp-0x30], xmm8
mov r15, rdi
mov ebx, esi
;; size=42 bbWeight=1 PerfScore 10.58
G_M850_IG02:
xor r14d, r14d
test ebx, ebx
je G_M850_IG36
cmp byte ptr [r15], 45
jne SHORT G_M850_IG04
;; size=17 bbWeight=1 PerfScore 5.50
G_M850_IG03:
mov r14d, 1
cmp ebx, 1
jle G_M850_IG35
;; size=15 bbWeight=0.50 PerfScore 0.75
G_M850_IG04:
mov eax, r14d
cmp byte ptr [r15+rax], 48
jne SHORT G_M850_IG07
;; size=10 bbWeight=1 PerfScore 4.25
G_M850_IG05:
inc r14d
jmp SHORT G_M850_IG08
;; size=5 bbWeight=0.50 PerfScore 1.12
G_M850_IG06:
inc r14d
;; size=3 bbWeight=2 PerfScore 0.50
G_M850_IG07:
cmp r14d, ebx
jge SHORT G_M850_IG08
mov eax, r14d
movzx rax, byte ptr [r15+rax]
add eax, -48
cmp eax, 9
jbe SHORT G_M850_IG06
;; size=21 bbWeight=4 PerfScore 20.00
G_M850_IG08:
cmp r14d, ebx
je G_M850_IG20
;; size=9 bbWeight=1 PerfScore 1.25
G_M850_IG09:
cmp r14d, ebx
jae G_M850_IG36
mov eax, r14d
movzx r13, byte ptr [r15+rax]
cmp r13d, 46
jne SHORT G_M850_IG13
inc r14d
cmp ebx, r14d
jg SHORT G_M850_IG11
jmp G_M850_IG34
;; size=36 bbWeight=0.50 PerfScore 4.12
G_M850_IG10:
inc r14d
;; size=3 bbWeight=2 PerfScore 0.50
G_M850_IG11:
cmp r14d, ebx
jge SHORT G_M850_IG12
mov eax, r14d
movzx rax, byte ptr [r15+rax]
add eax, -48
cmp eax, 9
jbe SHORT G_M850_IG10
;; size=21 bbWeight=4 PerfScore 20.00
G_M850_IG12:
cmp r14d, ebx
je G_M850_IG20
cmp r14d, ebx
jae G_M850_IG36
mov eax, r14d
movzx r13, byte ptr [r15+rax]
;; size=26 bbWeight=0.50 PerfScore 2.38
G_M850_IG13:
cmp r13d, 101
je SHORT G_M850_IG14
cmp r13d, 69
jne G_M850_IG28
;; size=16 bbWeight=0.50 PerfScore 1.25
G_M850_IG14:
inc r14d
cmp ebx, r14d
jle G_M850_IG27
cmp r14d, ebx
jae G_M850_IG36
mov eax, r14d
movzx r13, byte ptr [r15+rax]
cmp r13d, 43
je SHORT G_M850_IG15
cmp r13d, 45
jne SHORT G_M850_IG16
;; size=41 bbWeight=0.50 PerfScore 3.75
G_M850_IG15:
inc r14d
;; size=3 bbWeight=0.50 PerfScore 0.12
G_M850_IG16:
cmp ebx, r14d
jg SHORT G_M850_IG18
jmp G_M850_IG26
;; size=10 bbWeight=0.50 PerfScore 1.62
G_M850_IG17:
inc r14d
;; size=3 bbWeight=2 PerfScore 0.50
G_M850_IG18:
cmp r14d, ebx
jge SHORT G_M850_IG19
cmp r14d, ebx
jae G_M850_IG36
mov eax, r14d
movzx rax, byte ptr [r15+rax]
add eax, -48
cmp eax, 9
jbe SHORT G_M850_IG17
;; size=30 bbWeight=4 PerfScore 25.00
G_M850_IG19:
cmp r14d, ebx
jne SHORT G_M850_IG21
;; size=5 bbWeight=0.50 PerfScore 0.62
G_M850_IG20:
add rsp, 80
pop rbx
pop r13
pop r14
pop r15
pop rbp
ret
;; size=13 bbWeight=1 PerfScore 3.75
G_M850_IG21:
mov rax, 0xD1FFAB1E ; code for System.SR:get_ExpectedEndOfDigitNotFound():System.String
call [rax]System.SR:get_ExpectedEndOfDigitNotFound():System.String
mov r13, rax
cmp r14d, ebx
jae G_M850_IG36
mov edi, r14d
movzx rbx, byte ptr [r15+rdi]
cmp ebx, 32
jl SHORT G_M850_IG22
cmp ebx, 127
setl dil
movzx rdi, dil
test edi, edi
je SHORT G_M850_IG22
mov edi, 1
call System.String:FastAllocateString(int):System.String
mov r15, rax
mov word ptr [r15+0x0C], bx
jmp G_M850_IG25
;; size=75 bbWeight=0 PerfScore 0.00
G_M850_IG22:
lea rdi, [rbp-0x70]
mov esi, 2
mov edx, 1
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:.ctor(int,int):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:.ctor(int,int):this
- mov edi, dword ptr [rbp-0x60]
- cmp edi, dword ptr [rbp-0x50]
+ mov esi, dword ptr [rbp-0x60]
+ cmp esi, dword ptr [rbp-0x50]
ja G_M850_IG33
- mov rsi, bword ptr [rbp-0x58]
- mov eax, edi
- lea r15, bword ptr [rsi+2*rax]
- mov esi, dword ptr [rbp-0x50]
- sub esi, edi
- cmp esi, 2
- jae SHORT G_M850_IG23
+ mov rdx, bword ptr [rbp-0x58]
+ mov edi, esi
+ lea rdx, bword ptr [rdx+2*rdi]
+ mov edi, dword ptr [rbp-0x50]
+ sub edi, esi
+ mov rsi, rdx
+ mov edx, edi
+ mov rdi, 0xD1FFAB1E ; '0x'
+ mov rax, 0xD1FFAB1E ; code for System.String:TryCopyTo(System.Span`1[ushort]):ubyte:this
+ call [rax]System.String:TryCopyTo(System.Span`1[ushort]):ubyte:this
+ test eax, eax
+ jne SHORT G_M850_IG23
lea rdi, [rbp-0x70]
mov rsi, 0xD1FFAB1E ; '0x'
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
jmp SHORT G_M850_IG24
- ;; size=86 bbWeight=0 PerfScore 0.00
+ ;; size=112 bbWeight=0 PerfScore 0.00
G_M850_IG23:
- mov dword ptr [r15], 0xD1FFAB1E
mov edi, dword ptr [rbp-0x60]
add edi, 2
mov dword ptr [rbp-0x60], edi
- ;; size=16 bbWeight=0 PerfScore 0.00
+ ;; size=9 bbWeight=0 PerfScore 0.00
G_M850_IG24:
lea rdi, [rbp-0x70]
mov esi, ebx
mov rdx, 0xD1FFAB1E ; 'X2'
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[ubyte](ubyte,System.String):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[ubyte](ubyte,System.String):this
lea rdi, [rbp-0x70]
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:ToStringAndClear():System.String:this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:ToStringAndClear():System.String:this
mov r15, rax
;; size=47 bbWeight=0 PerfScore 0.00
G_M850_IG25:
mov rdi, 0xD1FFAB1E ; System.ArgumentException
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov rdi, r13
mov rsi, r15
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 r15, rax
mov edi, 0x3C74
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
mov rdx, rax
mov rsi, r15
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.ArgumentException:.ctor(System.String,System.String):this
call [rax]System.ArgumentException:.ctor(System.String,System.String):this
mov rdi, rbx
call CORINFO_HELP_THROW
int3
;; size=89 bbWeight=0 PerfScore 0.00
G_M850_IG26:
mov rdi, 0xD1FFAB1E ; System.ArgumentException
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov rax, 0xD1FFAB1E ; code for System.SR:get_RequiredDigitNotFoundEndOfData():System.String
call [rax]System.SR:get_RequiredDigitNotFoundEndOfData():System.String
mov r15, rax
mov edi, 0x3C74
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
mov rdx, rax
mov rsi, r15
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.ArgumentException:.ctor(System.String,System.String):this
call [rax]System.ArgumentException:.ctor(System.String,System.String):this
mov rdi, rbx
call CORINFO_HELP_THROW
int3
;; size=83 bbWeight=0 PerfScore 0.00
G_M850_IG27:
mov rdi, 0xD1FFAB1E ; System.ArgumentException
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov rax, 0xD1FFAB1E ; code for System.SR:get_RequiredDigitNotFoundEndOfData():System.String
call [rax]System.SR:get_RequiredDigitNotFoundEndOfData():System.String
mov r15, rax
mov edi, 0x3C74
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
mov rdx, rax
mov rsi, r15
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.ArgumentException:.ctor(System.String,System.String):this
call [rax]System.ArgumentException:.ctor(System.String,System.String):this
mov rdi, rbx
call CORINFO_HELP_THROW
int3
;; size=83 bbWeight=0 PerfScore 0.00
G_M850_IG28:
mov rax, 0xD1FFAB1E ; code for System.SR:get_ExpectedEndOfDigitNotFound():System.String
call [rax]System.SR:get_ExpectedEndOfDigitNotFound():System.String
mov rbx, rax
cmp r13d, 32
jl SHORT G_M850_IG29
cmp r13d, 127
setl dil
movzx rdi, dil
test edi, edi
je SHORT G_M850_IG29
mov edi, 1
call System.String:FastAllocateString(int):System.String
mov r15, rax
mov word ptr [r15+0x0C], r13w
jmp G_M850_IG32
;; size=60 bbWeight=0 PerfScore 0.00
G_M850_IG29:
lea rdi, [rbp-0x48]
mov esi, 2
mov edx, 1
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:.ctor(int,int):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:.ctor(int,int):this
- mov edi, dword ptr [rbp-0x38]
- cmp edi, dword ptr [rbp-0x28]
+ mov esi, dword ptr [rbp-0x38]
+ cmp esi, dword ptr [rbp-0x28]
ja G_M850_IG33
- mov rsi, bword ptr [rbp-0x30]
- mov eax, edi
- lea r15, bword ptr [rsi+2*rax]
- mov esi, dword ptr [rbp-0x28]
- sub esi, edi
- cmp esi, 2
- jae SHORT G_M850_IG30
+ mov rdx, bword ptr [rbp-0x30]
+ mov edi, esi
+ lea rdx, bword ptr [rdx+2*rdi]
+ mov edi, dword ptr [rbp-0x28]
+ sub edi, esi
+ mov rsi, rdx
+ mov edx, edi
+ mov rdi, 0xD1FFAB1E ; '0x'
+ mov rax, 0xD1FFAB1E ; code for System.String:TryCopyTo(System.Span`1[ushort]):ubyte:this
+ call [rax]System.String:TryCopyTo(System.Span`1[ushort]):ubyte:this
+ test eax, eax
+ jne SHORT G_M850_IG30
lea rdi, [rbp-0x48]
mov rsi, 0xD1FFAB1E ; '0x'
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
jmp SHORT G_M850_IG31
- ;; size=86 bbWeight=0 PerfScore 0.00
+ ;; size=112 bbWeight=0 PerfScore 0.00
G_M850_IG30:
- mov dword ptr [r15], 0xD1FFAB1E
mov edi, dword ptr [rbp-0x38]
add edi, 2
mov dword ptr [rbp-0x38], edi
- ;; size=16 bbWeight=0 PerfScore 0.00
+ ;; size=9 bbWeight=0 PerfScore 0.00
G_M850_IG31:
lea rdi, [rbp-0x48]
mov esi, r13d
mov rdx, 0xD1FFAB1E ; 'X2'
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[ubyte](ubyte,System.String):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[ubyte](ubyte,System.String):this
lea rdi, [rbp-0x48]
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:ToStringAndClear():System.String:this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:ToStringAndClear():System.String:this
mov r15, rax
;; size=48 bbWeight=0 PerfScore 0.00
G_M850_IG32:
mov rdi, 0xD1FFAB1E ; System.ArgumentException
call CORINFO_HELP_NEWSFAST
mov r14, rax
mov rdi, rbx
mov rsi, r15
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 rbx, rax
mov edi, 0x3C74
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
mov rdx, rax
mov rsi, rbx
mov rdi, r14
mov rax, 0xD1FFAB1E ; code for System.ArgumentException:.ctor(System.String,System.String):this
call [rax]System.ArgumentException:.ctor(System.String,System.String):this
mov rdi, r14
call CORINFO_HELP_THROW
int3
;; size=89 bbWeight=0 PerfScore 0.00
G_M850_IG33:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
G_M850_IG34:
mov rdi, 0xD1FFAB1E ; System.ArgumentException
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov rax, 0xD1FFAB1E ; code for System.SR:get_RequiredDigitNotFoundEndOfData():System.String
call [rax]System.SR:get_RequiredDigitNotFoundEndOfData():System.String
mov r15, rax
mov edi, 0x3C74
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
mov rdx, rax
mov rsi, r15
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.ArgumentException:.ctor(System.String,System.String):this
call [rax]System.ArgumentException:.ctor(System.String,System.String):this
mov rdi, rbx
call CORINFO_HELP_THROW
int3
;; size=83 bbWeight=0 PerfScore 0.00
G_M850_IG35:
mov rdi, 0xD1FFAB1E ; System.ArgumentException
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov rax, 0xD1FFAB1E ; code for System.SR:get_RequiredDigitNotFoundEndOfData():System.String
call [rax]System.SR:get_RequiredDigitNotFoundEndOfData():System.String
mov r15, rax
mov edi, 0x3C74
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
mov rdx, rax
mov rsi, r15
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.ArgumentException:.ctor(System.String,System.String):this
call [rax]System.ArgumentException:.ctor(System.String,System.String):this
mov rdi, rbx
call CORINFO_HELP_THROW
int3
;; size=83 bbWeight=0 PerfScore 0.00
G_M850_IG36:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1292, prolog size 42, PerfScore 107.58, instruction count 308, allocated bytes for code 1292 (MethodHash=d00dfcad) for method System.Text.Json.JsonWriterHelper:ValidateNumber(System.ReadOnlySpan`1[ubyte]) (FullOpts)
+; Total bytes of code 1330, prolog size 42, PerfScore 107.58, instruction count 316, allocated bytes for code 1330 (MethodHash=d00dfcad) for method System.Text.Json.JsonWriterHelper:ValidateNumber(System.ReadOnlySpan`1[ubyte]) (FullOpts)
; ============================================================ 19 (3.65 % of base) - Interop+Sys:GetDomainName():System.String ; Assembly listing for method Interop+Sys:GetDomainName():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; 2 single block inlinees; 4 inlinees without PGO data
+; 0 inlinees with PGO data; 2 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
; V00 loc0 [V00,T04] ( 3, 2 ) int -> rbx
; V01 loc1 [V01,T03] ( 6, 3 ) ref -> rax class-hnd exact single-def <System.String>
; V02 loc2 [V02 ] ( 11, 0 ) struct (40) [rbp-0x50] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04,T01] ( 3, 6 ) long -> r15 "dup spill"
;* V05 tmp2 [V05 ] ( 0, 0 ) long -> zero-ref
; V06 tmp3 [V06,T06] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.InvalidOperationException>
;* V07 tmp4 [V07 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V08 tmp5 [V08,T05] ( 4, 0 ) int -> rdi "Inlining Arg"
-;* V09 tmp6 [V09 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V10 tmp7 [V10,T07] ( 2, 0 ) byref -> r15 single-def "Inlining Arg"
-; V11 tmp8 [V11,T09] ( 2, 0 ) int -> rsi "Inlining Arg"
-;* V12 tmp9 [V12,T10] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V13 tmp10 [V13 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
-;* V14 tmp11 [V14 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V15 tmp12 [V15 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V16 tmp13 [V16 ] ( 0, 0 ) ref -> zero-ref single-def "spilling varStr"
-;* V17 tmp14 [V17 ] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
-; V18 tmp15 [V18,T02] ( 3, 4 ) ref -> rax "Single return block return value"
-; V19 FramesRoot [V19,T00] ( 6, 6 ) long -> rbx "Pinvoke FrameListRoot"
-; V20 PInvokeFrame [V20 ] ( 8, 8 ) struct (64) [rbp-0x90] do-not-enreg[XS] addr-exposed "Pinvoke FrameVar"
-;* V21 tmp18 [V21 ] ( 0, 0 ) byref -> zero-ref "field V07._reference (fldOffset=0x0)" P-INDEP
-;* V22 tmp19 [V22 ] ( 0, 0 ) int -> zero-ref "field V07._length (fldOffset=0x8)" P-INDEP
-;* V23 tmp20 [V23 ] ( 0, 0 ) byref -> zero-ref single-def "field V09._reference (fldOffset=0x0)" P-INDEP
-;* V24 tmp21 [V24 ] ( 0, 0 ) int -> zero-ref "field V09._length (fldOffset=0x8)" P-INDEP
-;* V25 tmp22 [V25 ] ( 0, 0 ) byref -> zero-ref single-def "field V13._reference (fldOffset=0x0)" P-INDEP
-;* V26 tmp23 [V26 ] ( 0, 0 ) int -> zero-ref "field V13._length (fldOffset=0x8)" P-INDEP
-; V27 tmp24 [V27,T08] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
-; V28 GsCookie [V28 ] ( 1, 1 ) long -> [rbp-0x98] do-not-enreg[X] addr-exposed "GSSecurityCookie"
+; V08 tmp5 [V08,T05] ( 4, 0 ) int -> rsi "Inlining Arg"
+;* V09 tmp6 [V09 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
+; V10 tmp7 [V10,T07] ( 2, 0 ) byref -> rdx single-def "Inlining Arg"
+; V11 tmp8 [V11,T10] ( 2, 0 ) int -> rdi "Inlining Arg"
+;* V12 tmp9 [V12 ] ( 0, 0 ) ref -> zero-ref single-def "spilling varStr"
+;* V13 tmp10 [V13 ] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
+; V14 tmp11 [V14,T02] ( 3, 4 ) ref -> rax "Single return block return value"
+; V15 FramesRoot [V15,T00] ( 6, 6 ) long -> rbx "Pinvoke FrameListRoot"
+; V16 PInvokeFrame [V16 ] ( 8, 8 ) struct (64) [rbp-0x90] do-not-enreg[XS] addr-exposed "Pinvoke FrameVar"
+;* V17 tmp14 [V17 ] ( 0, 0 ) byref -> zero-ref "field V07._reference (fldOffset=0x0)" P-INDEP
+;* V18 tmp15 [V18 ] ( 0, 0 ) int -> zero-ref "field V07._length (fldOffset=0x8)" P-INDEP
+; V19 tmp16 [V19,T08] ( 2, 0 ) byref -> rsi single-def "field V09._reference (fldOffset=0x0)" P-INDEP
+; V20 tmp17 [V20,T11] ( 2, 0 ) int -> rdx "field V09._length (fldOffset=0x8)" P-INDEP
+; V21 tmp18 [V21,T09] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
+; V22 GsCookie [V22 ] ( 1, 1 ) long -> [rbp-0x98] do-not-enreg[X] addr-exposed "GSSecurityCookie"
;
; Lcl frame size = 120
G_M17789_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 120
vzeroupper
lea rbp, [rsp+0xA0]
vxorps xmm8, xmm8, xmm8
vmovdqu ymmword ptr [rbp-0x50], ymm8
xor eax, eax
mov qword ptr [rbp-0x30], rax
mov qword ptr [rbp-0x98], 0xD1FFAB1E
;; size=52 bbWeight=1 PerfScore 12.33
G_M17789_IG02:
lea rdi, [rbp-0x88]
call CORINFO_HELP_INIT_PINVOKE_FRAME
mov rbx, rax
mov rdi, rsp
mov qword ptr [rbp-0x70], rdi
mov rdi, rbp
mov qword ptr [rbp-0x60], rdi
test dword ptr [rsp], esp
sub rsp, 256
lea r15, [rsp]
mov rdi, r15
mov esi, 256
mov rax, 0xD1FFAB1E ; function address
mov qword ptr [rbp-0x78], rax
lea rax, G_M17789_IG05
mov qword ptr [rbp-0x68], rax
lea rax, [rbp-0x88]
mov qword ptr [rbx+0x08], rax
mov byte ptr [rbx+0x04], 0
;; size=91 bbWeight=1 PerfScore 14.25
G_M17789_IG03:
mov rax, 0xD1FFAB1E ; function address
;; size=10 bbWeight=1 PerfScore 0.25
G_M17789_IG04:
call rax ; Interop+Sys:GetDomainName(ulong,int):int
;; size=2 bbWeight=1 PerfScore 3.00
G_M17789_IG05:
mov byte ptr [rbx+0x04], 1
mov rcx, 0xD1FFAB1E ; function address
cmp dword ptr [rcx], 0
je SHORT G_M17789_IG06
mov rdi, 0xD1FFAB1E
call [rdi]CORINFO_HELP_STOP_FOR_GC
;; size=31 bbWeight=1 PerfScore 8.50
G_M17789_IG06:
mov rdi, qword ptr [rbp-0x80]
mov qword ptr [rbx+0x08], rdi
mov ebx, eax
test ebx, ebx
jne SHORT G_M17789_IG14
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Runtime.InteropServices.Marshal:PtrToStringUTF8(long):System.String
call [rax]System.Runtime.InteropServices.Marshal:PtrToStringUTF8(long):System.String
test rax, rax
je SHORT G_M17789_IG09
;; size=34 bbWeight=1 PerfScore 8.25
G_M17789_IG07:
cmp dword ptr [rax+0x08], 6
jne SHORT G_M17789_IG09
;; size=6 bbWeight=0.25 PerfScore 1.00
G_M17789_IG08:
mov rdi, 0xD1FFAB1E
xor rdi, qword ptr [rax+0x0C]
mov esi, dword ptr [rax+0x14]
xor esi, 0xD1FFAB1E
or rdi, rsi
je SHORT G_M17789_IG10
;; size=28 bbWeight=0.12 PerfScore 0.84
G_M17789_IG09:
jmp SHORT G_M17789_IG11
;; size=2 bbWeight=0.50 PerfScore 1.00
G_M17789_IG10:
mov rax, 0xD1FFAB1E ; ''
;; size=10 bbWeight=0.50 PerfScore 0.12
G_M17789_IG11:
cmp qword ptr [rbp-0x98], 0xD1FFAB1E
je SHORT G_M17789_IG12
call CORINFO_HELP_FAIL_FAST
;; size=18 bbWeight=1 PerfScore 4.00
G_M17789_IG12:
nop
;; size=1 bbWeight=1 PerfScore 0.25
G_M17789_IG13:
lea rsp, [rbp-0x28]
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.50
G_M17789_IG14:
lea rdi, [rbp-0x50]
mov esi, 2
mov edx, 2
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:.ctor(int,int):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:.ctor(int,int):this
lea rdi, [rbp-0x50]
mov rsi, 0xD1FFAB1E ; 'GetDomainName'
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted(System.String):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted(System.String):this
- mov edi, dword ptr [rbp-0x40]
- cmp edi, dword ptr [rbp-0x30]
+ mov esi, dword ptr [rbp-0x40]
+ cmp esi, dword ptr [rbp-0x30]
ja G_M17789_IG17
- mov rsi, bword ptr [rbp-0x38]
- mov eax, edi
- lea r15, bword ptr [rsi+2*rax]
- mov esi, dword ptr [rbp-0x30]
- sub esi, edi
- cmp esi, 2
- jae SHORT G_M17789_IG15
+ mov rdx, bword ptr [rbp-0x38]
+ mov edi, esi
+ lea rdx, bword ptr [rdx+2*rdi]
+ mov edi, dword ptr [rbp-0x30]
+ sub edi, esi
+ mov rsi, rdx
+ mov edx, edi
+ mov rdi, 0xD1FFAB1E ; ': '
+ mov rax, 0xD1FFAB1E ; code for System.String:TryCopyTo(System.Span`1[ushort]):ubyte:this
+ call [rax]System.String:TryCopyTo(System.Span`1[ushort]):ubyte:this
+ test eax, eax
+ jne SHORT G_M17789_IG15
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
jmp SHORT G_M17789_IG16
- ;; size=112 bbWeight=0 PerfScore 0.00
+ ;; size=138 bbWeight=0 PerfScore 0.00
G_M17789_IG15:
- mov dword ptr [r15], 0xD1FFAB1E
mov edi, dword ptr [rbp-0x40]
add edi, 2
mov dword ptr [rbp-0x40], edi
- ;; size=16 bbWeight=0 PerfScore 0.00
+ ;; size=9 bbWeight=0 PerfScore 0.00
G_M17789_IG16:
lea rdi, [rbp-0x50]
mov esi, ebx
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[int](int):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[int](int):this
mov rdi, 0xD1FFAB1E ; System.InvalidOperationException
call CORINFO_HELP_NEWSFAST
mov rbx, rax
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 rsi, rax
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.InvalidOperationException:.ctor(System.String):this
call [rax]System.InvalidOperationException:.ctor(System.String):this
mov rdi, rbx
call CORINFO_HELP_THROW
int3
;; size=79 bbWeight=0 PerfScore 0.00
G_M17789_IG17:
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 520, prolog size 52, PerfScore 58.30, instruction count 121, allocated bytes for code 520 (MethodHash=8821ba82) for method Interop+Sys:GetDomainName():System.String (FullOpts)
+; Total bytes of code 539, prolog size 52, PerfScore 58.30, instruction count 125, allocated bytes for code 539 (MethodHash=8821ba82) for method Interop+Sys:GetDomainName():System.String (FullOpts)
; ============================================================ 19 (3.65 % of base) - Interop+Sys:GetDomainName():System.String ; Assembly listing for method Interop+Sys:GetDomainName():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; 2 single block inlinees; 4 inlinees without PGO data
+; 0 inlinees with PGO data; 2 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
; V00 loc0 [V00,T04] ( 3, 2 ) int -> rbx
; V01 loc1 [V01,T03] ( 6, 3 ) ref -> rax class-hnd exact single-def <System.String>
; V02 loc2 [V02 ] ( 11, 0 ) struct (40) [rbp-0x50] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04,T01] ( 3, 6 ) long -> r15 "dup spill"
;* V05 tmp2 [V05 ] ( 0, 0 ) long -> zero-ref
; V06 tmp3 [V06,T06] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.InvalidOperationException>
;* V07 tmp4 [V07 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V08 tmp5 [V08,T05] ( 4, 0 ) int -> rdi "Inlining Arg"
-;* V09 tmp6 [V09 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V10 tmp7 [V10,T07] ( 2, 0 ) byref -> r15 single-def "Inlining Arg"
-; V11 tmp8 [V11,T09] ( 2, 0 ) int -> rsi "Inlining Arg"
-;* V12 tmp9 [V12,T10] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V13 tmp10 [V13 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
-;* V14 tmp11 [V14 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V15 tmp12 [V15 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V16 tmp13 [V16 ] ( 0, 0 ) ref -> zero-ref single-def "spilling varStr"
-;* V17 tmp14 [V17 ] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
-; V18 tmp15 [V18,T02] ( 3, 4 ) ref -> rax "Single return block return value"
-; V19 FramesRoot [V19,T00] ( 6, 6 ) long -> rbx "Pinvoke FrameListRoot"
-; V20 PInvokeFrame [V20 ] ( 8, 8 ) struct (64) [rbp-0x90] do-not-enreg[XS] addr-exposed "Pinvoke FrameVar"
-;* V21 tmp18 [V21 ] ( 0, 0 ) byref -> zero-ref "field V07._reference (fldOffset=0x0)" P-INDEP
-;* V22 tmp19 [V22 ] ( 0, 0 ) int -> zero-ref "field V07._length (fldOffset=0x8)" P-INDEP
-;* V23 tmp20 [V23 ] ( 0, 0 ) byref -> zero-ref single-def "field V09._reference (fldOffset=0x0)" P-INDEP
-;* V24 tmp21 [V24 ] ( 0, 0 ) int -> zero-ref "field V09._length (fldOffset=0x8)" P-INDEP
-;* V25 tmp22 [V25 ] ( 0, 0 ) byref -> zero-ref single-def "field V13._reference (fldOffset=0x0)" P-INDEP
-;* V26 tmp23 [V26 ] ( 0, 0 ) int -> zero-ref "field V13._length (fldOffset=0x8)" P-INDEP
-; V27 tmp24 [V27,T08] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
-; V28 GsCookie [V28 ] ( 1, 1 ) long -> [rbp-0x98] do-not-enreg[X] addr-exposed "GSSecurityCookie"
+; V08 tmp5 [V08,T05] ( 4, 0 ) int -> rsi "Inlining Arg"
+;* V09 tmp6 [V09 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
+; V10 tmp7 [V10,T07] ( 2, 0 ) byref -> rdx single-def "Inlining Arg"
+; V11 tmp8 [V11,T10] ( 2, 0 ) int -> rdi "Inlining Arg"
+;* V12 tmp9 [V12 ] ( 0, 0 ) ref -> zero-ref single-def "spilling varStr"
+;* V13 tmp10 [V13 ] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
+; V14 tmp11 [V14,T02] ( 3, 4 ) ref -> rax "Single return block return value"
+; V15 FramesRoot [V15,T00] ( 6, 6 ) long -> rbx "Pinvoke FrameListRoot"
+; V16 PInvokeFrame [V16 ] ( 8, 8 ) struct (64) [rbp-0x90] do-not-enreg[XS] addr-exposed "Pinvoke FrameVar"
+;* V17 tmp14 [V17 ] ( 0, 0 ) byref -> zero-ref "field V07._reference (fldOffset=0x0)" P-INDEP
+;* V18 tmp15 [V18 ] ( 0, 0 ) int -> zero-ref "field V07._length (fldOffset=0x8)" P-INDEP
+; V19 tmp16 [V19,T08] ( 2, 0 ) byref -> rsi single-def "field V09._reference (fldOffset=0x0)" P-INDEP
+; V20 tmp17 [V20,T11] ( 2, 0 ) int -> rdx "field V09._length (fldOffset=0x8)" P-INDEP
+; V21 tmp18 [V21,T09] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
+; V22 GsCookie [V22 ] ( 1, 1 ) long -> [rbp-0x98] do-not-enreg[X] addr-exposed "GSSecurityCookie"
;
; Lcl frame size = 120
G_M17789_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 120
vzeroupper
lea rbp, [rsp+0xA0]
vxorps xmm8, xmm8, xmm8
vmovdqu ymmword ptr [rbp-0x50], ymm8
xor eax, eax
mov qword ptr [rbp-0x30], rax
mov qword ptr [rbp-0x98], 0xD1FFAB1E
;; size=52 bbWeight=1 PerfScore 12.33
G_M17789_IG02:
lea rdi, [rbp-0x88]
call CORINFO_HELP_INIT_PINVOKE_FRAME
mov rbx, rax
mov rdi, rsp
mov qword ptr [rbp-0x70], rdi
mov rdi, rbp
mov qword ptr [rbp-0x60], rdi
test dword ptr [rsp], esp
sub rsp, 256
lea r15, [rsp]
mov rdi, r15
mov esi, 256
mov rax, 0xD1FFAB1E ; function address
mov qword ptr [rbp-0x78], rax
lea rax, G_M17789_IG05
mov qword ptr [rbp-0x68], rax
lea rax, [rbp-0x88]
mov qword ptr [rbx+0x08], rax
mov byte ptr [rbx+0x04], 0
;; size=91 bbWeight=1 PerfScore 14.25
G_M17789_IG03:
mov rax, 0xD1FFAB1E ; function address
;; size=10 bbWeight=1 PerfScore 0.25
G_M17789_IG04:
call rax ; Interop+Sys:GetDomainName(ulong,int):int
;; size=2 bbWeight=1 PerfScore 3.00
G_M17789_IG05:
mov byte ptr [rbx+0x04], 1
mov rcx, 0xD1FFAB1E ; function address
cmp dword ptr [rcx], 0
je SHORT G_M17789_IG06
mov rdi, 0xD1FFAB1E
call [rdi]CORINFO_HELP_STOP_FOR_GC
;; size=31 bbWeight=1 PerfScore 8.50
G_M17789_IG06:
mov rdi, qword ptr [rbp-0x80]
mov qword ptr [rbx+0x08], rdi
mov ebx, eax
test ebx, ebx
jne SHORT G_M17789_IG14
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Runtime.InteropServices.Marshal:PtrToStringUTF8(long):System.String
call [rax]System.Runtime.InteropServices.Marshal:PtrToStringUTF8(long):System.String
test rax, rax
je SHORT G_M17789_IG09
;; size=34 bbWeight=1 PerfScore 8.25
G_M17789_IG07:
cmp dword ptr [rax+0x08], 6
jne SHORT G_M17789_IG09
;; size=6 bbWeight=0.25 PerfScore 1.00
G_M17789_IG08:
mov rdi, 0xD1FFAB1E
xor rdi, qword ptr [rax+0x0C]
mov esi, dword ptr [rax+0x14]
xor esi, 0xD1FFAB1E
or rdi, rsi
je SHORT G_M17789_IG10
;; size=28 bbWeight=0.12 PerfScore 0.84
G_M17789_IG09:
jmp SHORT G_M17789_IG11
;; size=2 bbWeight=0.50 PerfScore 1.00
G_M17789_IG10:
mov rax, 0xD1FFAB1E ; ''
;; size=10 bbWeight=0.50 PerfScore 0.12
G_M17789_IG11:
cmp qword ptr [rbp-0x98], 0xD1FFAB1E
je SHORT G_M17789_IG12
call CORINFO_HELP_FAIL_FAST
;; size=18 bbWeight=1 PerfScore 4.00
G_M17789_IG12:
nop
;; size=1 bbWeight=1 PerfScore 0.25
G_M17789_IG13:
lea rsp, [rbp-0x28]
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.50
G_M17789_IG14:
lea rdi, [rbp-0x50]
mov esi, 2
mov edx, 2
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:.ctor(int,int):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:.ctor(int,int):this
lea rdi, [rbp-0x50]
mov rsi, 0xD1FFAB1E ; 'GetDomainName'
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted(System.String):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted(System.String):this
- mov edi, dword ptr [rbp-0x40]
- cmp edi, dword ptr [rbp-0x30]
+ mov esi, dword ptr [rbp-0x40]
+ cmp esi, dword ptr [rbp-0x30]
ja G_M17789_IG17
- mov rsi, bword ptr [rbp-0x38]
- mov eax, edi
- lea r15, bword ptr [rsi+2*rax]
- mov esi, dword ptr [rbp-0x30]
- sub esi, edi
- cmp esi, 2
- jae SHORT G_M17789_IG15
+ mov rdx, bword ptr [rbp-0x38]
+ mov edi, esi
+ lea rdx, bword ptr [rdx+2*rdi]
+ mov edi, dword ptr [rbp-0x30]
+ sub edi, esi
+ mov rsi, rdx
+ mov edx, edi
+ mov rdi, 0xD1FFAB1E ; ': '
+ mov rax, 0xD1FFAB1E ; code for System.String:TryCopyTo(System.Span`1[ushort]):ubyte:this
+ call [rax]System.String:TryCopyTo(System.Span`1[ushort]):ubyte:this
+ test eax, eax
+ jne SHORT G_M17789_IG15
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
jmp SHORT G_M17789_IG16
- ;; size=112 bbWeight=0 PerfScore 0.00
+ ;; size=138 bbWeight=0 PerfScore 0.00
G_M17789_IG15:
- mov dword ptr [r15], 0xD1FFAB1E
mov edi, dword ptr [rbp-0x40]
add edi, 2
mov dword ptr [rbp-0x40], edi
- ;; size=16 bbWeight=0 PerfScore 0.00
+ ;; size=9 bbWeight=0 PerfScore 0.00
G_M17789_IG16:
lea rdi, [rbp-0x50]
mov esi, ebx
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[int](int):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[int](int):this
mov rdi, 0xD1FFAB1E ; System.InvalidOperationException
call CORINFO_HELP_NEWSFAST
mov rbx, rax
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 rsi, rax
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.InvalidOperationException:.ctor(System.String):this
call [rax]System.InvalidOperationException:.ctor(System.String):this
mov rdi, rbx
call CORINFO_HELP_THROW
int3
;; size=79 bbWeight=0 PerfScore 0.00
G_M17789_IG17:
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 520, prolog size 52, PerfScore 58.30, instruction count 121, allocated bytes for code 520 (MethodHash=8821ba82) for method Interop+Sys:GetDomainName():System.String (FullOpts)
+; Total bytes of code 539, prolog size 52, PerfScore 58.30, instruction count 125, allocated bytes for code 539 (MethodHash=8821ba82) for method Interop+Sys:GetDomainName():System.String (FullOpts)
; ============================================================ Note: some changes were skipped as they were too large to fit into a comment. Larger list of diffs: https://gist.github.com/MihuBot/7ba0525a38191efcc15c1ae742ad92f6 |
Top method improvements-115 (-9.88 % of base) - Microsoft.Extensions.DependencyInjection.HttpClientBuilderExtensions:ReserveClient(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Type,System.String,ubyte) ; Assembly listing for method Microsoft.Extensions.DependencyInjection.HttpClientBuilderExtensions:ReserveClient(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Type,System.String,ubyte) (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; 10 single block inlinees; 25 inlinees without PGO data
+; 0 inlinees with PGO data; 10 single block inlinees; 13 inlinees without PGO data
; Final local variable assignments
;
; V00 arg0 [V00,T00] ( 4, 4 ) ref -> rbx class-hnd single-def <Microsoft.Extensions.DependencyInjection.IHttpClientBuilder>
; V01 arg1 [V01,T04] ( 4, 3 ) ref -> r13 class-hnd single-def <System.Type>
; V02 arg2 [V02,T03] ( 5, 3.50) ref -> r14 class-hnd single-def <System.String>
; V03 arg3 [V03,T01] ( 4, 4 ) ubyte -> r15 single-def
; V04 loc0 [V04,T06] ( 3, 2.50) ref -> rbx class-hnd exact single-def <Microsoft.Extensions.DependencyInjection.HttpClientMappingRegistry>
; V05 loc1 [V05,T09] ( 7, 1.50) ref -> r12 ld-addr-op class-hnd <System.Type>
; V06 loc2 [V06 ] ( 47, 0 ) 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 ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V08 tmp1 [V08,T20] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.InvalidOperationException>
-; V09 tmp2 [V09,T21] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.InvalidOperationException>
+; V08 tmp1 [V08,T16] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.InvalidOperationException>
+; V09 tmp2 [V09,T17] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.InvalidOperationException>
; V10 tmp3 [V10,T08] ( 3, 2 ) ubyte -> rdi "Inline return value spill temp"
; V11 tmp4 [V11,T02] ( 3, 6 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.String,System.Type]>
; V12 tmp5 [V12,T07] ( 3, 2.50) byref -> rax single-def "Inline stloc first use temp"
;* V13 tmp6 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Type>
;* V14 tmp7 [V14 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V15 tmp8 [V15,T14] ( 4, 0 ) int -> rdi "Inlining Arg"
-;* V16 tmp9 [V16 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V17 tmp10 [V17,T12] ( 5, 0 ) byref -> rbx single-def "Inlining Arg"
-; V18 tmp11 [V18,T28] ( 2, 0 ) int -> rsi "Inlining Arg"
-;* V19 tmp12 [V19,T29] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V20 tmp13 [V20 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
-;* V21 tmp14 [V21 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V22 tmp15 [V22 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V23 tmp16 [V23 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V24 tmp17 [V24,T15] ( 4, 0 ) int -> rdi "Inlining Arg"
-;* V25 tmp18 [V25 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V26 tmp19 [V26,T13] ( 4, 0 ) byref -> rbx single-def "Inlining Arg"
-; V27 tmp20 [V27,T30] ( 2, 0 ) int -> rsi "Inlining Arg"
-;* V28 tmp21 [V28,T31] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V29 tmp22 [V29 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
-;* V30 tmp23 [V30 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V31 tmp24 [V31 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V32 tmp25 [V32 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V33 tmp26 [V33,T16] ( 4, 0 ) int -> rdi "Inlining Arg"
-;* V34 tmp27 [V34 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V35 tmp28 [V35,T22] ( 3, 0 ) byref -> rbx single-def "Inlining Arg"
-; V36 tmp29 [V36,T32] ( 2, 0 ) int -> rsi "Inlining Arg"
-;* V37 tmp30 [V37,T33] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V38 tmp31 [V38 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
-;* V39 tmp32 [V39 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V40 tmp33 [V40 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V41 tmp34 [V41 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V42 tmp35 [V42,T17] ( 4, 0 ) int -> rdi "Inlining Arg"
-;* V43 tmp36 [V43 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V44 tmp37 [V44,T10] ( 6, 0 ) byref -> rbx single-def "Inlining Arg"
-; V45 tmp38 [V45,T34] ( 2, 0 ) int -> rsi "Inlining Arg"
-;* V46 tmp39 [V46,T35] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V47 tmp40 [V47 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
-;* V48 tmp41 [V48 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V49 tmp42 [V49 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V50 tmp43 [V50 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V51 tmp44 [V51,T18] ( 4, 0 ) int -> rdi "Inlining Arg"
-;* V52 tmp45 [V52 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V53 tmp46 [V53,T23] ( 2, 0 ) byref -> rbx single-def "Inlining Arg"
-; V54 tmp47 [V54,T36] ( 2, 0 ) int -> rsi "Inlining Arg"
-;* V55 tmp48 [V55,T37] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V56 tmp49 [V56 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
-;* V57 tmp50 [V57 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V58 tmp51 [V58 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V59 tmp52 [V59 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V60 tmp53 [V60,T19] ( 4, 0 ) int -> rdi "Inlining Arg"
-;* V61 tmp54 [V61 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V62 tmp55 [V62,T11] ( 6, 0 ) byref -> rbx single-def "Inlining Arg"
-; V63 tmp56 [V63,T38] ( 2, 0 ) int -> rsi "Inlining Arg"
-;* V64 tmp57 [V64,T39] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V65 tmp58 [V65 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
-;* V66 tmp59 [V66 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V67 tmp60 [V67 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V68 tmp61 [V68,T05] ( 3, 3 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.String,System.Type]>
-;* V69 tmp62 [V69 ] ( 0, 0 ) byref -> zero-ref "field V14._reference (fldOffset=0x0)" P-INDEP
-;* V70 tmp63 [V70 ] ( 0, 0 ) int -> zero-ref "field V14._length (fldOffset=0x8)" P-INDEP
-;* V71 tmp64 [V71 ] ( 0, 0 ) byref -> zero-ref single-def "field V16._reference (fldOffset=0x0)" P-INDEP
-;* V72 tmp65 [V72 ] ( 0, 0 ) int -> zero-ref single-def "field V16._length (fldOffset=0x8)" P-INDEP
-;* V73 tmp66 [V73 ] ( 0, 0 ) byref -> zero-ref single-def "field V20._reference (fldOffset=0x0)" P-INDEP
-;* V74 tmp67 [V74 ] ( 0, 0 ) int -> zero-ref single-def "field V20._length (fldOffset=0x8)" P-INDEP
-;* V75 tmp68 [V75 ] ( 0, 0 ) byref -> zero-ref "field V23._reference (fldOffset=0x0)" P-INDEP
-;* V76 tmp69 [V76 ] ( 0, 0 ) int -> zero-ref "field V23._length (fldOffset=0x8)" P-INDEP
-;* V77 tmp70 [V77 ] ( 0, 0 ) byref -> zero-ref single-def "field V25._reference (fldOffset=0x0)" P-INDEP
-;* V78 tmp71 [V78 ] ( 0, 0 ) int -> zero-ref single-def "field V25._length (fldOffset=0x8)" P-INDEP
-;* V79 tmp72 [V79 ] ( 0, 0 ) byref -> zero-ref single-def "field V29._reference (fldOffset=0x0)" P-INDEP
-;* V80 tmp73 [V80 ] ( 0, 0 ) int -> zero-ref single-def "field V29._length (fldOffset=0x8)" P-INDEP
-;* V81 tmp74 [V81 ] ( 0, 0 ) byref -> zero-ref "field V32._reference (fldOffset=0x0)" P-INDEP
-;* V82 tmp75 [V82 ] ( 0, 0 ) int -> zero-ref "field V32._length (fldOffset=0x8)" P-INDEP
-;* V83 tmp76 [V83 ] ( 0, 0 ) byref -> zero-ref single-def "field V34._reference (fldOffset=0x0)" P-INDEP
-;* V84 tmp77 [V84 ] ( 0, 0 ) int -> zero-ref single-def "field V34._length (fldOffset=0x8)" P-INDEP
-;* V85 tmp78 [V85 ] ( 0, 0 ) byref -> zero-ref single-def "field V38._reference (fldOffset=0x0)" P-INDEP
-;* V86 tmp79 [V86 ] ( 0, 0 ) int -> zero-ref single-def "field V38._length (fldOffset=0x8)" P-INDEP
-;* V87 tmp80 [V87 ] ( 0, 0 ) byref -> zero-ref "field V41._reference (fldOffset=0x0)" P-INDEP
-;* V88 tmp81 [V88 ] ( 0, 0 ) int -> zero-ref "field V41._length (fldOffset=0x8)" P-INDEP
-;* V89 tmp82 [V89 ] ( 0, 0 ) byref -> zero-ref single-def "field V43._reference (fldOffset=0x0)" P-INDEP
-;* V90 tmp83 [V90 ] ( 0, 0 ) int -> zero-ref single-def "field V43._length (fldOffset=0x8)" P-INDEP
-;* V91 tmp84 [V91 ] ( 0, 0 ) byref -> zero-ref single-def "field V47._reference (fldOffset=0x0)" P-INDEP
-;* V92 tmp85 [V92 ] ( 0, 0 ) int -> zero-ref single-def "field V47._length (fldOffset=0x8)" P-INDEP
-;* V93 tmp86 [V93 ] ( 0, 0 ) byref -> zero-ref "field V50._reference (fldOffset=0x0)" P-INDEP
-;* V94 tmp87 [V94 ] ( 0, 0 ) int -> zero-ref "field V50._length (fldOffset=0x8)" P-INDEP
-;* V95 tmp88 [V95 ] ( 0, 0 ) byref -> zero-ref single-def "field V52._reference (fldOffset=0x0)" P-INDEP
-;* V96 tmp89 [V96 ] ( 0, 0 ) int -> zero-ref single-def "field V52._length (fldOffset=0x8)" P-INDEP
-;* V97 tmp90 [V97 ] ( 0, 0 ) byref -> zero-ref single-def "field V56._reference (fldOffset=0x0)" P-INDEP
-;* V98 tmp91 [V98 ] ( 0, 0 ) int -> zero-ref single-def "field V56._length (fldOffset=0x8)" P-INDEP
-;* V99 tmp92 [V99 ] ( 0, 0 ) byref -> zero-ref "field V59._reference (fldOffset=0x0)" P-INDEP
-;* V100 tmp93 [V100 ] ( 0, 0 ) int -> zero-ref "field V59._length (fldOffset=0x8)" P-INDEP
-;* V101 tmp94 [V101 ] ( 0, 0 ) byref -> zero-ref single-def "field V61._reference (fldOffset=0x0)" P-INDEP
-;* V102 tmp95 [V102 ] ( 0, 0 ) int -> zero-ref single-def "field V61._length (fldOffset=0x8)" P-INDEP
-;* V103 tmp96 [V103 ] ( 0, 0 ) byref -> zero-ref single-def "field V65._reference (fldOffset=0x0)" P-INDEP
-;* V104 tmp97 [V104 ] ( 0, 0 ) int -> zero-ref single-def "field V65._length (fldOffset=0x8)" P-INDEP
-; V105 tmp98 [V105,T24] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
-; V106 tmp99 [V106,T25] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
-; V107 tmp100 [V107,T26] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
-; V108 tmp101 [V108,T27] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
+; V15 tmp8 [V15,T10] ( 4, 0 ) int -> rsi "Inlining Arg"
+;* V16 tmp9 [V16 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
+; V17 tmp10 [V17,T18] ( 2, 0 ) byref -> rdx single-def "Inlining Arg"
+; V18 tmp11 [V18,T34] ( 2, 0 ) int -> rdi "Inlining Arg"
+;* V19 tmp12 [V19 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
+; V20 tmp13 [V20,T11] ( 4, 0 ) int -> rsi "Inlining Arg"
+;* V21 tmp14 [V21 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
+; V22 tmp15 [V22,T19] ( 2, 0 ) byref -> rdx single-def "Inlining Arg"
+; V23 tmp16 [V23,T35] ( 2, 0 ) int -> rdi "Inlining Arg"
+;* V24 tmp17 [V24 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
+; V25 tmp18 [V25,T12] ( 4, 0 ) int -> rsi "Inlining Arg"
+;* V26 tmp19 [V26 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
+; V27 tmp20 [V27,T20] ( 2, 0 ) byref -> rdx single-def "Inlining Arg"
+; V28 tmp21 [V28,T36] ( 2, 0 ) int -> rdi "Inlining Arg"
+;* V29 tmp22 [V29 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
+; V30 tmp23 [V30,T13] ( 4, 0 ) int -> rsi "Inlining Arg"
+;* V31 tmp24 [V31 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
+; V32 tmp25 [V32,T21] ( 2, 0 ) byref -> rdx single-def "Inlining Arg"
+; V33 tmp26 [V33,T37] ( 2, 0 ) int -> rdi "Inlining Arg"
+;* V34 tmp27 [V34 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
+; V35 tmp28 [V35,T14] ( 4, 0 ) int -> rsi "Inlining Arg"
+;* V36 tmp29 [V36 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
+; V37 tmp30 [V37,T22] ( 2, 0 ) byref -> rdx single-def "Inlining Arg"
+; V38 tmp31 [V38,T38] ( 2, 0 ) int -> rdi "Inlining Arg"
+;* V39 tmp32 [V39 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
+; V40 tmp33 [V40,T15] ( 4, 0 ) int -> rsi "Inlining Arg"
+;* V41 tmp34 [V41 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
+; V42 tmp35 [V42,T23] ( 2, 0 ) byref -> rdx single-def "Inlining Arg"
+; V43 tmp36 [V43,T39] ( 2, 0 ) int -> rdi "Inlining Arg"
+; V44 tmp37 [V44,T05] ( 3, 3 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.String,System.Type]>
+;* V45 tmp38 [V45 ] ( 0, 0 ) byref -> zero-ref "field V14._reference (fldOffset=0x0)" P-INDEP
+;* V46 tmp39 [V46 ] ( 0, 0 ) int -> zero-ref "field V14._length (fldOffset=0x8)" P-INDEP
+; V47 tmp40 [V47,T24] ( 2, 0 ) byref -> rsi single-def "field V16._reference (fldOffset=0x0)" P-INDEP
+; V48 tmp41 [V48,T40] ( 2, 0 ) int -> rdx single-def "field V16._length (fldOffset=0x8)" P-INDEP
+;* V49 tmp42 [V49 ] ( 0, 0 ) byref -> zero-ref "field V19._reference (fldOffset=0x0)" P-INDEP
+;* V50 tmp43 [V50 ] ( 0, 0 ) int -> zero-ref "field V19._length (fldOffset=0x8)" P-INDEP
+; V51 tmp44 [V51,T25] ( 2, 0 ) byref -> rsi single-def "field V21._reference (fldOffset=0x0)" P-INDEP
+; V52 tmp45 [V52,T41] ( 2, 0 ) int -> rdx single-def "field V21._length (fldOffset=0x8)" P-INDEP
+;* V53 tmp46 [V53 ] ( 0, 0 ) byref -> zero-ref "field V24._reference (fldOffset=0x0)" P-INDEP
+;* V54 tmp47 [V54 ] ( 0, 0 ) int -> zero-ref "field V24._length (fldOffset=0x8)" P-INDEP
+; V55 tmp48 [V55,T26] ( 2, 0 ) byref -> rsi single-def "field V26._reference (fldOffset=0x0)" P-INDEP
+; V56 tmp49 [V56,T42] ( 2, 0 ) int -> rdx single-def "field V26._length (fldOffset=0x8)" P-INDEP
+;* V57 tmp50 [V57 ] ( 0, 0 ) byref -> zero-ref "field V29._reference (fldOffset=0x0)" P-INDEP
+;* V58 tmp51 [V58 ] ( 0, 0 ) int -> zero-ref "field V29._length (fldOffset=0x8)" P-INDEP
+; V59 tmp52 [V59,T27] ( 2, 0 ) byref -> rsi single-def "field V31._reference (fldOffset=0x0)" P-INDEP
+; V60 tmp53 [V60,T43] ( 2, 0 ) int -> rdx single-def "field V31._length (fldOffset=0x8)" P-INDEP
+;* V61 tmp54 [V61 ] ( 0, 0 ) byref -> zero-ref "field V34._reference (fldOffset=0x0)" P-INDEP
+;* V62 tmp55 [V62 ] ( 0, 0 ) int -> zero-ref "field V34._length (fldOffset=0x8)" P-INDEP
+; V63 tmp56 [V63,T28] ( 2, 0 ) byref -> rsi single-def "field V36._reference (fldOffset=0x0)" P-INDEP
+; V64 tmp57 [V64,T44] ( 2, 0 ) int -> rdx single-def "field V36._length (fldOffset=0x8)" P-INDEP
+;* V65 tmp58 [V65 ] ( 0, 0 ) byref -> zero-ref "field V39._reference (fldOffset=0x0)" P-INDEP
+;* V66 tmp59 [V66 ] ( 0, 0 ) int -> zero-ref "field V39._length (fldOffset=0x8)" P-INDEP
+; V67 tmp60 [V67,T29] ( 2, 0 ) byref -> rsi single-def "field V41._reference (fldOffset=0x0)" P-INDEP
+; V68 tmp61 [V68,T45] ( 2, 0 ) int -> rdx single-def "field V41._length (fldOffset=0x8)" P-INDEP
+; V69 tmp62 [V69,T30] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
+; V70 tmp63 [V70,T31] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
+; V71 tmp64 [V71,T32] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
+; V72 tmp65 [V72,T33] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
;
; Lcl frame size = 40
G_M8549_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 40
lea rbp, [rsp+0x50]
vxorps xmm8, xmm8, xmm8
vmovdqu ymmword ptr [rbp-0x50], ymm8
xor eax, eax
mov qword ptr [rbp-0x30], rax
mov rbx, rdi
mov r13, rsi
mov r14, rdx
mov r15d, ecx
;; size=47 bbWeight=1 PerfScore 11.33
G_M8549_IG02:
mov rdi, rbx
mov r11, 0xD1FFAB1E ; code for Microsoft.Extensions.DependencyInjection.IHttpClientBuilder:get_Name():System.String:this
call [r11]Microsoft.Extensions.DependencyInjection.IHttpClientBuilder:get_Name():System.String:this
test rax, rax
je G_M8549_IG25
mov rdi, rbx
mov r11, 0xD1FFAB1E ; code for Microsoft.Extensions.DependencyInjection.IHttpClientBuilder:get_Services():Microsoft.Extensions.DependencyInjection.IServiceCollection:this
call [r11]Microsoft.Extensions.DependencyInjection.IHttpClientBuilder:get_Services():Microsoft.Extensions.DependencyInjection.IServiceCollection:this
mov rdi, rax
mov rax, 0xD1FFAB1E ; code for Microsoft.Extensions.DependencyInjection.HttpClientBuilderExtensions:GetMappingRegistry(Microsoft.Extensions.DependencyInjection.IServiceCollection):Microsoft.Extensions.DependencyInjection.HttpClientMappingRegistry
call [rax]Microsoft.Extensions.DependencyInjection.HttpClientBuilderExtensions:GetMappingRegistry(Microsoft.Extensions.DependencyInjection.IServiceCollection):Microsoft.Extensions.DependencyInjection.HttpClientMappingRegistry
mov rbx, rax
mov rdi, gword ptr [rbx+0x08]
cmp byte ptr [rdi], dil
mov rsi, r14
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:FindValue(System.__Canon):byref:this
call [rax]System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:FindValue(System.__Canon):byref:this
test rax, rax
jne SHORT G_M8549_IG04
;; size=86 bbWeight=1 PerfScore 21.75
G_M8549_IG03:
xor r12, r12
xor edi, edi
jmp SHORT G_M8549_IG05
;; size=7 bbWeight=0.50 PerfScore 1.25
G_M8549_IG04:
mov r12, gword ptr [rax]
mov edi, 1
;; size=8 bbWeight=0.50 PerfScore 1.12
G_M8549_IG05:
movzx rsi, r15b
test edi, esi
je SHORT G_M8549_IG07
;; size=8 bbWeight=1 PerfScore 1.50
G_M8549_IG06:
mov rdi, r13
mov rsi, r12
mov rax, 0xD1FFAB1E ; code for System.Type:op_Equality(System.Type,System.Type):ubyte
call [rax]System.Type:op_Equality(System.Type,System.Type):ubyte
test eax, eax
je SHORT G_M8549_IG11
;; size=22 bbWeight=0.50 PerfScore 2.50
G_M8549_IG07:
test r15b, r15b
je SHORT G_M8549_IG09
;; size=5 bbWeight=1 PerfScore 1.25
G_M8549_IG08:
mov rdi, gword ptr [rbx+0x08]
cmp byte ptr [rdi], dil
mov rsi, r14
mov rdx, r13
mov ecx, 1
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:TryInsert(System.__Canon,System.__Canon,ubyte):ubyte:this
call [rax]System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:TryInsert(System.__Canon,System.__Canon,ubyte):ubyte:this
;; size=30 bbWeight=0.50 PerfScore 4.50
G_M8549_IG09:
nop
;; size=1 bbWeight=1 PerfScore 0.25
G_M8549_IG10:
- vzeroupper
add rsp, 40
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=18 bbWeight=1 PerfScore 5.25
+ ;; size=15 bbWeight=1 PerfScore 4.25
G_M8549_IG11:
lea rdi, [rbp-0x50]
mov esi, 289
mov edx, 3
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:.ctor(int,int):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:.ctor(int,int):this
- mov edi, dword ptr [rbp-0x40]
- cmp edi, dword ptr [rbp-0x30]
+ mov esi, dword ptr [rbp-0x40]
+ cmp esi, dword ptr [rbp-0x30]
ja G_M8549_IG24
- mov rsi, bword ptr [rbp-0x38]
- mov eax, edi
- lea rbx, bword ptr [rsi+2*rax]
- mov esi, dword ptr [rbp-0x30]
- sub esi, edi
- cmp esi, 70
- jae SHORT G_M8549_IG12
+ mov rdx, bword ptr [rbp-0x38]
+ mov edi, esi
+ lea rdx, bword ptr [rdx+2*rdi]
+ mov edi, dword ptr [rbp-0x30]
+ sub edi, esi
+ mov rsi, rdx
+ mov edx, edi
+ mov rdi, 0xD1FFAB1E ; 'The HttpClient factory already has a registered client with the'
+ mov rax, 0xD1FFAB1E ; code for System.String:TryCopyTo(System.Span`1[ushort]):ubyte:this
+ call [rax]System.String:TryCopyTo(System.Span`1[ushort]):ubyte:this
+ test eax, eax
+ jne SHORT G_M8549_IG12
lea rdi, [rbp-0x50]
mov rsi, 0xD1FFAB1E ; 'The HttpClient factory already has a registered client with the'
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
jmp SHORT G_M8549_IG13
- ;; size=86 bbWeight=0 PerfScore 0.00
+ ;; size=112 bbWeight=0 PerfScore 0.00
G_M8549_IG12:
- vmovups zmm0, zmmword ptr [reloc @RWD00]
- vmovups zmmword ptr [rbx], zmm0
- vmovups zmm0, zmmword ptr [reloc @RWD64]
- vmovups zmmword ptr [rbx+0x40], zmm0
- mov rdi, 0xD1FFAB1E
- mov qword ptr [rbx+0x80], rdi
- mov dword ptr [rbx+0x88], 0xD1FFAB1E
mov edi, dword ptr [rbp-0x40]
add edi, 70
mov dword ptr [rbp-0x40], edi
- ;; size=69 bbWeight=0 PerfScore 0.00
+ ;; size=9 bbWeight=0 PerfScore 0.00
G_M8549_IG13:
lea rdi, [rbp-0x50]
mov rsi, r14
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted(System.String):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted(System.String):this
- mov edi, dword ptr [rbp-0x40]
- cmp edi, dword ptr [rbp-0x30]
+ mov esi, dword ptr [rbp-0x40]
+ cmp esi, dword ptr [rbp-0x30]
ja G_M8549_IG24
- mov rsi, bword ptr [rbp-0x38]
- mov eax, edi
- lea rbx, bword ptr [rsi+2*rax]
- mov esi, dword ptr [rbp-0x30]
- sub esi, edi
- cmp esi, 22
- jae SHORT G_M8549_IG14
+ mov rdx, bword ptr [rbp-0x38]
+ mov edi, esi
+ lea rdx, bword ptr [rdx+2*rdi]
+ mov edi, dword ptr [rbp-0x30]
+ sub edi, esi
+ mov rsi, rdx
+ mov edx, edi
+ mov rdi, 0xD1FFAB1E ; '', bound to the type ''
+ mov rax, 0xD1FFAB1E ; code for System.String:TryCopyTo(System.Span`1[ushort]):ubyte:this
+ call [rax]System.String:TryCopyTo(System.Span`1[ushort]):ubyte:this
+ test eax, eax
+ jne SHORT G_M8549_IG14
lea rdi, [rbp-0x50]
mov rsi, 0xD1FFAB1E ; '', bound to the type ''
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
jmp SHORT G_M8549_IG15
- ;; size=79 bbWeight=0 PerfScore 0.00
+ ;; size=105 bbWeight=0 PerfScore 0.00
G_M8549_IG14:
- vmovups ymm0, ymmword ptr [reloc @RWD128]
- vmovups ymmword ptr [rbx], ymm0
- mov rdi, 0xD1FFAB1E
- mov qword ptr [rbx+0x20], rdi
- mov dword ptr [rbx+0x28], 0xD1FFAB1E
mov edi, dword ptr [rbp-0x40]
add edi, 22
mov dword ptr [rbp-0x40], edi
- ;; size=42 bbWeight=0 PerfScore 0.00
+ ;; size=9 bbWeight=0 PerfScore 0.00
G_M8549_IG15:
mov rdi, r12
mov rax, qword ptr [r12]
mov rax, qword ptr [rax+0x50]
call [rax+0x20]System.Type:get_FullName():System.String:this
mov rsi, rax
lea rdi, [rbp-0x50]
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted(System.String):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted(System.String):this
- mov edi, dword ptr [rbp-0x40]
- cmp edi, dword ptr [rbp-0x30]
+ mov esi, dword ptr [rbp-0x40]
+ cmp esi, dword ptr [rbp-0x30]
ja G_M8549_IG24
- mov rsi, bword ptr [rbp-0x38]
- mov eax, edi
- lea rbx, bword ptr [rsi+2*rax]
- mov esi, dword ptr [rbp-0x30]
- sub esi, edi
- cmp esi, 3
- jae SHORT G_M8549_IG16
+ mov rdx, bword ptr [rbp-0x38]
+ mov edi, esi
+ lea rdx, bword ptr [rdx+2*rdi]
+ mov edi, dword ptr [rbp-0x30]
+ sub edi, esi
+ mov rsi, rdx
+ mov edx, edi
+ mov rdi, 0xD1FFAB1E ; ''. '
+ mov rax, 0xD1FFAB1E ; code for System.String:TryCopyTo(System.Span`1[ushort]):ubyte:this
+ call [rax]System.String:TryCopyTo(System.Span`1[ushort]):ubyte:this
+ test eax, eax
+ jne SHORT G_M8549_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
jmp SHORT G_M8549_IG17
- ;; size=93 bbWeight=0 PerfScore 0.00
+ ;; size=119 bbWeight=0 PerfScore 0.00
G_M8549_IG16:
- mov dword ptr [rbx], 0xD1FFAB1E
- mov word ptr [rbx+0x04], 32
- mov edi, dword ptr [rbp-0x40]
- add edi, 3
- mov dword ptr [rbp-0x40], edi
- ;; size=21 bbWeight=0 PerfScore 0.00
+ mov esi, dword ptr [rbp-0x40]
+ add esi, 3
+ mov dword ptr [rbp-0x40], esi
+ ;; size=9 bbWeight=0 PerfScore 0.00
G_M8549_IG17:
- mov edi, dword ptr [rbp-0x40]
- cmp edi, dword ptr [rbp-0x30]
+ mov esi, dword ptr [rbp-0x40]
+ cmp esi, dword ptr [rbp-0x30]
ja G_M8549_IG24
- mov rsi, bword ptr [rbp-0x38]
- mov eax, edi
- lea rbx, bword ptr [rsi+2*rax]
- mov esi, dword ptr [rbp-0x30]
- sub esi, edi
- cmp esi, 85
- jae SHORT G_M8549_IG18
+ mov rdx, bword ptr [rbp-0x38]
+ mov edi, esi
+ lea rdx, bword ptr [rdx+2*rdi]
+ mov edi, dword ptr [rbp-0x30]
+ sub edi, esi
+ mov rsi, rdx
+ mov edx, edi
+ mov rdi, 0xD1FFAB1E ; 'Client names are computed based on the type name without consid'
+ mov rax, 0xD1FFAB1E ; code for System.String:TryCopyTo(System.Span`1[ushort]):ubyte:this
+ call [rax]System.String:TryCopyTo(System.Span`1[ushort]):ubyte:this
+ test eax, eax
+ jne SHORT G_M8549_IG18
lea rdi, [rbp-0x50]
mov rsi, 0xD1FFAB1E ; 'Client names are computed based on the type name without consid'
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
jmp SHORT G_M8549_IG19
- ;; size=60 bbWeight=0 PerfScore 0.00
+ ;; size=86 bbWeight=0 PerfScore 0.00
G_M8549_IG18:
- vmovups zmm0, zmmword ptr [reloc @RWD192]
- vmovups zmmword ptr [rbx], zmm0
- vmovups zmm0, zmmword ptr [reloc @RWD256]
- vmovups zmmword ptr [rbx+0x40], zmm0
- vmovups ymm0, ymmword ptr [reloc @RWD320]
- vmovups ymmword ptr [rbx+0x80], ymm0
- mov rdi, 0xD1FFAB1E
- mov qword ptr [rbx+0xA0], rdi
- mov word ptr [rbx+0xA8], 39
mov edi, dword ptr [rbp-0x40]
add edi, 85
mov dword ptr [rbp-0x40], edi
- ;; size=84 bbWeight=0 PerfScore 0.00
+ ;; size=9 bbWeight=0 PerfScore 0.00
G_M8549_IG19:
mov rdi, r12
mov rax, qword ptr [r12]
mov rax, qword ptr [rax+0x40]
call [rax+0x30]System.Reflection.MemberInfo:get_Name():System.String:this
mov rsi, rax
lea rdi, [rbp-0x50]
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted(System.String):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted(System.String):this
- mov edi, dword ptr [rbp-0x40]
- cmp edi, dword ptr [rbp-0x30]
+ mov esi, dword ptr [rbp-0x40]
+ cmp esi, dword ptr [rbp-0x30]
ja G_M8549_IG24
- mov rsi, bword ptr [rbp-0x38]
- mov eax, edi
- lea rbx, bword ptr [rsi+2*rax]
- mov esi, dword ptr [rbp-0x30]
- sub esi, edi
- cmp esi, 4
- jae SHORT G_M8549_IG20
+ mov rdx, bword ptr [rbp-0x38]
+ mov edi, esi
+ lea rdx, bword ptr [rdx+2*rdi]
+ mov edi, dword ptr [rbp-0x30]
+ sub edi, esi
+ mov rsi, rdx
+ mov edx, edi
+ mov rdi, 0xD1FFAB1E ; ''). '
+ mov rax, 0xD1FFAB1E ; code for System.String:TryCopyTo(System.Span`1[ushort]):ubyte:this
+ call [rax]System.String:TryCopyTo(System.Span`1[ushort]):ubyte:this
+ test eax, eax
+ jne SHORT G_M8549_IG20
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
jmp SHORT G_M8549_IG21
- ;; size=93 bbWeight=0 PerfScore 0.00
+ ;; size=119 bbWeight=0 PerfScore 0.00
G_M8549_IG20:
- mov rdi, 0xD1FFAB1E
- mov qword ptr [rbx], rdi
- mov edi, dword ptr [rbp-0x40]
- add edi, 4
- mov dword ptr [rbp-0x40], edi
- ;; size=22 bbWeight=0 PerfScore 0.00
+ mov esi, dword ptr [rbp-0x40]
+ add esi, 4
+ mov dword ptr [rbp-0x40], esi
+ ;; size=9 bbWeight=0 PerfScore 0.00
G_M8549_IG21:
- mov edi, dword ptr [rbp-0x40]
- cmp edi, dword ptr [rbp-0x30]
+ mov esi, dword ptr [rbp-0x40]
+ cmp esi, dword ptr [rbp-0x30]
ja G_M8549_IG24
- mov rsi, bword ptr [rbp-0x38]
- mov eax, edi
- lea rbx, bword ptr [rsi+2*rax]
- mov esi, dword ptr [rbp-0x30]
- sub esi, edi
- cmp esi, 105
- jae SHORT G_M8549_IG22
+ mov rdx, bword ptr [rbp-0x38]
+ mov edi, esi
+ lea rdx, bword ptr [rdx+2*rdi]
+ mov edi, dword ptr [rbp-0x30]
+ sub edi, esi
+ mov rsi, rdx
+ mov edx, edi
+ mov rdi, 0xD1FFAB1E ; 'Use an overload of AddHttpClient that accepts a string and prov'
+ mov rax, 0xD1FFAB1E ; code for System.String:TryCopyTo(System.Span`1[ushort]):ubyte:this
+ call [rax]System.String:TryCopyTo(System.Span`1[ushort]):ubyte:this
+ test eax, eax
+ jne SHORT G_M8549_IG22
lea rdi, [rbp-0x50]
mov rsi, 0xD1FFAB1E ; 'Use an overload of AddHttpClient that accepts a string and prov'
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
jmp SHORT G_M8549_IG23
- ;; size=60 bbWeight=0 PerfScore 0.00
+ ;; size=86 bbWeight=0 PerfScore 0.00
G_M8549_IG22:
- vmovups zmm0, zmmword ptr [reloc @RWD384]
- vmovups zmmword ptr [rbx], zmm0
- vmovups zmm0, zmmword ptr [reloc @RWD448]
- vmovups zmmword ptr [rbx+0x40], zmm0
- vmovups zmm0, zmmword ptr [reloc @RWD512]
- vmovups zmmword ptr [rbx+0x80], zmm0
- vmovups xmm0, xmmword ptr [reloc @RWD576]
- vmovups xmmword ptr [rbx+0xC0], xmm0
- mov word ptr [rbx+0xD0], 46
mov edi, dword ptr [rbp-0x40]
add edi, 105
mov dword ptr [rbp-0x40], edi
- ;; size=84 bbWeight=0 PerfScore 0.00
+ ;; size=9 bbWeight=0 PerfScore 0.00
G_M8549_IG23:
mov rdi, 0xD1FFAB1E ; System.InvalidOperationException
call CORINFO_HELP_NEWSFAST
mov rbx, rax
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 rsi, rax
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.InvalidOperationException:.ctor(System.String):this
call [rax]System.InvalidOperationException:.ctor(System.String):this
mov rdi, rbx
call CORINFO_HELP_THROW
int3
;; size=61 bbWeight=0 PerfScore 0.00
G_M8549_IG24:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
G_M8549_IG25:
mov rdi, 0xD1FFAB1E ; System.InvalidOperationException
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov edi, 0x50A
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
mov rsi, rax
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.InvalidOperationException:.ctor(System.String):this
call [rax]System.InvalidOperationException:.ctor(System.String):this
mov rdi, rbx
call CORINFO_HELP_THROW
int3
;; size=65 bbWeight=0 PerfScore 0.00
-RWD00 dq 0020006500680054h, 0070007400740048h, 00650069006C0043h, 006600200074006Eh, 006F007400630061h, 0061002000790072h, 006100650072006Ch, 0068002000790064h
-RWD64 dq 0061002000730061h, 0067006500720020h, 0065007400730069h, 0020006400650072h, 00650069006C0063h, 007700200074006Eh, 0020006800740069h, 0020006500680074h
-RWD128 dq 00620020002C0027h, 0064006E0075006Fh, 0020006F00740020h, 0020006500680074h
-RWD160 dd 00000000h, 00000000h, 00000000h, 00000000h, 00000000h, 00000000h
- dd 00000000h, 00000000h
-RWD192 dq 00650069006C0043h, 006E00200074006Eh, 00730065006D0061h, 0065007200610020h, 006D006F00630020h, 0065007400750070h, 0061006200200064h, 0020006400650073h
-RWD256 dq 00740020006E006Fh, 0074002000650068h, 0020006500700079h, 0065006D0061006Eh, 0074006900770020h, 00740075006F0068h, 006E006F00630020h, 0065006400690073h
-RWD320 dq 0067006E00690072h, 0065006800740020h, 006D0061006E0020h, 0061007000730065h
-RWD352 dd 00000000h, 00000000h, 00000000h, 00000000h, 00000000h, 00000000h
- dd 00000000h, 00000000h
-RWD384 dq 0020006500730055h, 006F0020006E0061h, 006C007200650076h, 002000640061006Fh, 004100200066006Fh, 0074004800640064h, 006C004300700074h, 0074006E00650069h
-RWD448 dq 0061006800740020h, 0063006100200074h, 0074007000650063h, 0020006100200073h, 0069007200740073h, 006100200067006Eh, 007000200064006Eh, 00690076006F0072h
-RWD512 dq 0061002000650064h, 0069006E00750020h, 0020006500750071h, 0065006D0061006Eh, 0020006F00740020h, 006F007300650072h, 002000650076006Ch, 0020006500680074h
-RWD576 dq 0066006E006F0063h, 007400630069006Ch
-
-; Total bytes of code 1164, prolog size 35, PerfScore 50.71, instruction count 264, allocated bytes for code 1164 (MethodHash=738ede9a) for method Microsoft.Extensions.DependencyInjection.HttpClientBuilderExtensions:ReserveClient(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Type,System.String,ubyte) (FullOpts)
+; Total bytes of code 1049, prolog size 35, PerfScore 49.71, instruction count 259, allocated bytes for code 1049 (MethodHash=738ede9a) for method Microsoft.Extensions.DependencyInjection.HttpClientBuilderExtensions:ReserveClient(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Type,System.String,ubyte) (FullOpts)
; ============================================================ Note: some changes were skipped as they were too large to fit into a comment. Larger list of diffs: https://gist.github.com/MihuBot/31812999ffd5251abdcd8604314c5b31 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Job completed in 16 minutes 23 seconds.
Diffs
Diffs
Artifacts:
The text was updated successfully, but these errors were encountered: