forked from MihaZupan/runtime-utils
-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[JitDiff X64] [EgorBo] Clean up in Number.Formatting.cs #852
Comments
Top method regressions726 (238.03 % of base) - System.Text.Json.Utf8JsonWriter:WriteNumberValueAsString(ulong):this ; Assembly listing for method System.Text.Json.Utf8JsonWriter:WriteNumberValueAsString(ulong):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; 32 single block inlinees; 20 inlinees without PGO data
+; 0 inlinees with PGO data; 35 single block inlinees; 24 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T06] ( 3, 3 ) ref -> rdi this class-hnd single-def <System.Text.Json.Utf8JsonWriter>
-; V01 arg1 [V01,T07] ( 3, 3 ) long -> rsi single-def
+; V00 this [V00,T20] ( 3, 3 ) ref -> rdi this class-hnd single-def <System.Text.Json.Utf8JsonWriter>
+; V01 arg1 [V01,T21] ( 3, 3 ) long -> rsi single-def
;* V02 loc0 [V02 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.Span`1[ubyte]>
-; V03 loc1 [V03 ] ( 3, 2 ) int -> [rbp-0x28] do-not-enreg[X] addr-exposed ld-addr-op ptr
+; V03 loc1 [V03 ] ( 7, 4 ) int -> [rbp-0x50] do-not-enreg[X] addr-exposed ld-addr-op ptr
;* V04 loc2 [V04 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.Buffers.StandardFormat>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V06 tmp1 [V06 ] ( 1, 1 ) struct (24) [rbp-0x20] do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
-;* V07 tmp2 [V07 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
+; V06 tmp1 [V06 ] ( 1, 1 ) struct (24) [rbp-0x48] do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
+;* V07 tmp2 [V07 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V08 tmp3 [V08 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.Span`1[ubyte]>
;* V09 tmp4 [V09 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
-;* V10 tmp5 [V10 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
+;* V10 tmp5 [V10 ] ( 0, 0 ) struct (16) zero-ref multireg-arg multireg-ret "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
;* V11 tmp6 [V11 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V12 tmp7 [V12 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Buffers.StandardFormat>
-;* V13 tmp8 [V13 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V14 tmp9 [V14 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
+; V12 tmp7 [V12 ] ( 6, 9 ) struct ( 8) [rbp-0x58] do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Buffers.StandardFormat>
+; V13 tmp8 [V13,T23] ( 7, 3.50) int -> r12 "Inline stloc first use temp"
+; V14 tmp9 [V14,T33] ( 2, 2 ) int -> rsi "impAppendStmt"
;* V15 tmp10 [V15 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V16 tmp11 [V16,T10] ( 4, 3 ) int -> rax "Inline stloc first use temp"
+; V16 tmp11 [V16,T27] ( 4, 2 ) int -> rax "Inline stloc first use temp"
;* V17 tmp12 [V17 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
-; V18 tmp13 [V18 ] ( 3, 2 ) byref -> [rbp-0x30] must-init pinned ptr "Inline stloc first use temp"
+; V18 tmp13 [V18 ] ( 3, 1.50) byref -> [rbp-0x60] must-init pinned ptr "Inline stloc first use temp"
;* V19 tmp14 [V19 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V20 tmp15 [V20 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
-; V21 tmp16 [V21,T11] ( 3, 3 ) int -> rax "Inline stloc first use temp"
+; V21 tmp16 [V21,T40] ( 3, 1.50) int -> rax "Inline stloc first use temp"
;* V22 tmp17 [V22 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[ulong]>
;* V23 tmp18 [V23 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;* V24 tmp19 [V24 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inline stloc first use temp"
;* V25 tmp20 [V25 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V26 tmp21 [V26 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V27 tmp22 [V27 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V28 tmp23 [V28 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ulong]>
;* V29 tmp24 [V29 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V30 tmp25 [V30 ] ( 0, 0 ) long -> zero-ref "Inline return value spill temp"
-; V31 tmp26 [V31,T00] ( 9, 37 ) long -> registers ptr "Inlining Arg"
-; V32 tmp27 [V32,T01] ( 8, 29 ) long -> r8 "Inlining Arg"
-; V33 tmp28 [V33,T15] ( 2, 2 ) long -> r8 "dup spill"
+; V31 tmp26 [V31,T04] ( 9, 37 ) long -> registers ptr "Inlining Arg"
+; V32 tmp27 [V32,T08] ( 8, 29 ) long -> rdi "Inlining Arg"
+; V33 tmp28 [V33,T34] ( 2, 2 ) long -> rdi "dup spill"
;* V34 tmp29 [V34 ] ( 0, 0 ) struct (16) zero-ref "dup spill" <System.ValueTuple`2[ulong,ulong]>
-; V35 tmp30 [V35,T02] ( 3, 12 ) long -> rdx "Inline stloc first use temp"
+; V35 tmp30 [V35,T10] ( 3, 12 ) long -> rdx "Inline stloc first use temp"
;* V36 tmp31 [V36 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[ulong,ulong]>
;* V37 tmp32 [V37 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V38 tmp33 [V38 ] ( 0, 0 ) long -> zero-ref
+;* V38 tmp33 [V38 ] ( 0, 0 ) long -> zero-ref ptr
;* V39 tmp34 [V39 ] ( 0, 0 ) long -> zero-ref ptr
-; V40 tmp35 [V40,T03] ( 2, 8 ) ref -> rax
+;* V40 tmp35 [V40 ] ( 0, 0 ) struct (16) zero-ref <System.ReadOnlySpan`1[ubyte]>
;* V41 tmp36 [V41 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V42 tmp37 [V42 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V43 tmp38 [V43 ] ( 0, 0 ) long -> zero-ref
-;* V44 tmp39 [V44 ] ( 0, 0 ) long -> zero-ref ptr
-; V45 tmp40 [V45,T18] ( 2, 1 ) ref -> rdx single-def
-;* V46 tmp41 [V46 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V47 tmp42 [V47 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V48 tmp43 [V48 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V49 tmp44 [V49 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V50 tmp45 [V50 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V51 tmp46 [V51 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V52 tmp47 [V52 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V53 tmp48 [V53 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
-;* V54 tmp49 [V54 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
-;* V55 tmp50 [V55 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
-;* V56 tmp51 [V56 ] ( 0, 0 ) long -> zero-ref
-;* V57 tmp52 [V57 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-;* V58 tmp53 [V58 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
-;* V59 tmp54 [V59 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V60 tmp55 [V60 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[ulong]>
-;* V61 tmp56 [V61 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
-;* V62 tmp57 [V62 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inline stloc first use temp"
-;* V63 tmp58 [V63 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-;* V64 tmp59 [V64 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V65 tmp60 [V65 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V66 tmp61 [V66 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ulong]>
-;* V67 tmp62 [V67 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V68 tmp63 [V68 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
-;* V69 tmp64 [V69 ] ( 0, 0 ) long -> zero-ref "Inline return value spill temp"
-;* V70 tmp65 [V70 ] ( 0, 0 ) long -> zero-ref ptr "Inlining Arg"
-;* V71 tmp66 [V71 ] ( 0, 0 ) long -> zero-ref ptr "Inlining Arg"
-;* V72 tmp67 [V72 ] ( 0, 0 ) long -> zero-ref "dup spill"
-;* V73 tmp68 [V73 ] ( 0, 0 ) struct (16) zero-ref "dup spill" <System.ValueTuple`2[ulong,ulong]>
-;* V74 tmp69 [V74 ] ( 0, 0 ) long -> zero-ref ptr "Inline stloc first use temp"
-;* V75 tmp70 [V75 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[ulong,ulong]>
-;* V76 tmp71 [V76 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V77 tmp72 [V77 ] ( 0, 0 ) long -> zero-ref
-;* V78 tmp73 [V78 ] ( 0, 0 ) long -> zero-ref ptr
-;* V79 tmp74 [V79 ] ( 0, 0 ) ref -> zero-ref ptr
-;* V80 tmp75 [V80 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V81 tmp76 [V81 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V82 tmp77 [V82 ] ( 0, 0 ) long -> zero-ref
-;* V83 tmp78 [V83 ] ( 0, 0 ) long -> zero-ref ptr
-;* V84 tmp79 [V84 ] ( 0, 0 ) ref -> zero-ref ptr
-;* V85 tmp80 [V85 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V86 tmp81 [V86 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V87 tmp82 [V87 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V88 tmp83 [V88 ] ( 0, 0 ) long -> zero-ref ptr "Inlining Arg"
-;* V89 tmp84 [V89 ] ( 0, 0 ) long -> zero-ref ptr "Inlining Arg"
-;* V90 tmp85 [V90 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V91 tmp86 [V91 ] ( 0, 0 ) struct (16) zero-ref "dup spill" <System.ValueTuple`2[ulong,ulong]>
-;* V92 tmp87 [V92 ] ( 0, 0 ) long -> zero-ref ptr "Inline stloc first use temp"
-;* V93 tmp88 [V93 ] ( 0, 0 ) struct (16) zero-ref "dup spill" <System.ValueTuple`2[ulong,ulong]>
-;* V94 tmp89 [V94 ] ( 0, 0 ) long -> zero-ref ptr "dup spill"
-;* V95 tmp90 [V95 ] ( 0, 0 ) long -> zero-ref ptr "Inline stloc first use temp"
-;* V96 tmp91 [V96 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[ulong,ulong]>
-;* V97 tmp92 [V97 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V98 tmp93 [V98 ] ( 0, 0 ) long -> zero-ref
-;* V99 tmp94 [V99 ] ( 0, 0 ) long -> zero-ref ptr
-;* V100 tmp95 [V100 ] ( 0, 0 ) ref -> zero-ref ptr
-;* V101 tmp96 [V101 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V102 tmp97 [V102 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V103 tmp98 [V103 ] ( 0, 0 ) long -> zero-ref ptr "Inline stloc first use temp"
+;* V42 tmp37 [V42 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
+;* V43 tmp38 [V43 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
+;* V44 tmp39 [V44 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V45 tmp40 [V45 ] ( 0, 0 ) long -> zero-ref ptr
+;* V46 tmp41 [V46 ] ( 0, 0 ) long -> zero-ref ptr
+;* V47 tmp42 [V47 ] ( 0, 0 ) struct (16) zero-ref <System.ReadOnlySpan`1[ubyte]>
+;* V48 tmp43 [V48 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V49 tmp44 [V49 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
+;* V50 tmp45 [V50 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
+;* V51 tmp46 [V51 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V52 tmp47 [V52 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+; V53 tmp48 [V53,T26] ( 5, 2.50) ubyte -> r13 "Inline return value spill temp"
+;* V54 tmp49 [V54 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V55 tmp50 [V55,T28] ( 4, 2 ) int -> rax "Inline stloc first use temp"
+;* V56 tmp51 [V56 ] ( 0, 0 ) int -> zero-ref ptr "Inline stloc first use temp"
+;* V57 tmp52 [V57 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
+; V58 tmp53 [V58 ] ( 3, 1.50) byref -> [rbp-0x68] must-init pinned ptr "Inline stloc first use temp"
+; V59 tmp54 [V59,T41] ( 3, 1.50) long -> r12 "Inline stloc first use temp"
+;* V60 tmp55 [V60 ] ( 0, 0 ) long -> zero-ref
+;* V61 tmp56 [V61 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
+;* V62 tmp57 [V62 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+; V63 tmp58 [V63,T42] ( 3, 1.50) int -> rax "Inline stloc first use temp"
+;* V64 tmp59 [V64 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[ulong]>
+;* V65 tmp60 [V65 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
+;* V66 tmp61 [V66 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inline stloc first use temp"
+;* V67 tmp62 [V67 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
+;* V68 tmp63 [V68 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V69 tmp64 [V69 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V70 tmp65 [V70 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ulong]>
+; V71 tmp66 [V71,T29] ( 4, 2 ) int -> rdx "Inline return value spill temp"
+;* V72 tmp67 [V72 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
+;* V73 tmp68 [V73 ] ( 0, 0 ) long -> zero-ref "Inline return value spill temp"
+; V74 tmp69 [V74,T05] ( 9, 37 ) long -> registers ptr "Inlining Arg"
+; V75 tmp70 [V75,T09] ( 6, 27 ) long -> rcx "Inlining Arg"
+;* V76 tmp71 [V76 ] ( 0, 0 ) long -> zero-ref "dup spill"
+;* V77 tmp72 [V77 ] ( 0, 0 ) struct (16) zero-ref "dup spill" <System.ValueTuple`2[ulong,ulong]>
+; V78 tmp73 [V78,T11] ( 3, 12 ) long -> rdx "Inline stloc first use temp"
+;* V79 tmp74 [V79 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[ulong,ulong]>
+;* V80 tmp75 [V80 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V81 tmp76 [V81 ] ( 0, 0 ) long -> zero-ref ptr
+;* V82 tmp77 [V82 ] ( 0, 0 ) long -> zero-ref ptr
+;* V83 tmp78 [V83 ] ( 0, 0 ) struct (16) zero-ref <System.ReadOnlySpan`1[ubyte]>
+;* V84 tmp79 [V84 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V85 tmp80 [V85 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
+;* V86 tmp81 [V86 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
+;* V87 tmp82 [V87 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+; V88 tmp83 [V88,T44] ( 2, 1 ) long -> rax
+;* V89 tmp84 [V89 ] ( 0, 0 ) long -> zero-ref ptr
+;* V90 tmp85 [V90 ] ( 0, 0 ) struct (16) zero-ref <System.ReadOnlySpan`1[ubyte]>
+;* V91 tmp86 [V91 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V92 tmp87 [V92 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
+;* V93 tmp88 [V93 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
+;* V94 tmp89 [V94 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V95 tmp90 [V95 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+; V96 tmp91 [V96,T01] ( 9,106 ) long -> [rbp-0x70] ptr "Inlining Arg"
+; V97 tmp92 [V97,T00] ( 7,121 ) long -> r12 "Inlining Arg"
+; V98 tmp93 [V98,T02] ( 6, 89 ) int -> r13 "Inlining Arg"
+;* V99 tmp94 [V99 ] ( 0, 0 ) struct (16) zero-ref "dup spill" <System.ValueTuple`2[ulong,ulong]>
+;* V100 tmp95 [V100 ] ( 0, 0 ) long -> zero-ref ptr "Inline stloc first use temp"
+;* V101 tmp96 [V101 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "dup spill" <System.ValueTuple`2[ulong,ulong]>
+; V102 tmp97 [V102,T03] ( 2, 64 ) long -> r12 "dup spill"
+; V103 tmp98 [V103,T12] ( 3, 12 ) long -> rdx "Inline stloc first use temp"
;* V104 tmp99 [V104 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[ulong,ulong]>
;* V105 tmp100 [V105 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V106 tmp101 [V106 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V107 tmp102 [V107 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V108 tmp103 [V108 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V109 tmp104 [V109,T05] ( 3, 6 ) int -> rdx "Inlining Arg"
-;* V110 tmp105 [V110 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
+;* V106 tmp101 [V106 ] ( 0, 0 ) long -> zero-ref
+;* V107 tmp102 [V107 ] ( 0, 0 ) long -> zero-ref ptr
+;* V108 tmp103 [V108 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret <System.ReadOnlySpan`1[ubyte]>
+;* V109 tmp104 [V109 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V110 tmp105 [V110 ] ( 0, 0 ) struct (16) zero-ref multireg-ret ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V111 tmp106 [V111 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V112 tmp107 [V112 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
-;* V113 tmp108 [V113 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-;* V114 tmp109 [V114 ] ( 0, 0 ) byref -> zero-ref single-def ptr "Inlining Arg"
-;* V115 tmp110 [V115 ] ( 0, 0 ) int -> zero-ref ptr "Inlining Arg"
-; V116 tmp111 [V116,T09] ( 4, 3 ) byref -> rcx single-def "field V02._reference (fldOffset=0x0)" P-INDEP
-;* V117 tmp112 [V117,T19] ( 0, 0 ) int -> zero-ref "field V02._length (fldOffset=0x8)" P-INDEP
-;* V118 tmp113 [V118 ] ( 0, 0 ) ubyte -> zero-ref "field V04._format (fldOffset=0x0)" P-INDEP
-;* V119 tmp114 [V119 ] ( 0, 0 ) ubyte -> zero-ref "field V04._precision (fldOffset=0x1)" P-INDEP
-; V120 tmp115 [V120,T12] ( 2, 2 ) byref -> rcx single-def "field V07._reference (fldOffset=0x0)" P-INDEP
-;* V121 tmp116 [V121,T20] ( 0, 0 ) int -> zero-ref "field V07._length (fldOffset=0x8)" P-INDEP
-;* V122 tmp117 [V122 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V08._reference (fldOffset=0x0)" P-INDEP
-;* V123 tmp118 [V123 ] ( 0, 0 ) int -> zero-ref "field V08._length (fldOffset=0x8)" P-INDEP
-;* V124 tmp119 [V124 ] ( 0, 0 ) byref -> zero-ref "field V09._reference (fldOffset=0x0)" P-INDEP
-;* V125 tmp120 [V125 ] ( 0, 0 ) int -> zero-ref "field V09._length (fldOffset=0x8)" P-INDEP
-;* V126 tmp121 [V126 ] ( 0, 0 ) byref -> zero-ref "field V10._reference (fldOffset=0x0)" P-INDEP
-;* V127 tmp122 [V127 ] ( 0, 0 ) int -> zero-ref "field V10._length (fldOffset=0x8)" P-INDEP
-;* V128 tmp123 [V128 ] ( 0, 0 ) ubyte -> zero-ref "field V12._format (fldOffset=0x0)" P-INDEP
-;* V129 tmp124 [V129 ] ( 0, 0 ) ubyte -> zero-ref "field V12._precision (fldOffset=0x1)" P-INDEP
-;* V130 tmp125 [V130 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V17._reference (fldOffset=0x0)" P-INDEP
-;* V131 tmp126 [V131 ] ( 0, 0 ) int -> zero-ref "field V17._length (fldOffset=0x8)" P-INDEP
-;* V132 tmp127 [V132 ] ( 0, 0 ) byref -> zero-ref single-def "field V19._reference (fldOffset=0x0)" P-INDEP
-;* V133 tmp128 [V133 ] ( 0, 0 ) int -> zero-ref "field V19._length (fldOffset=0x8)" P-INDEP
-;* V134 tmp129 [V134 ] ( 0, 0 ) byref -> zero-ref single-def "field V22._reference (fldOffset=0x0)" P-INDEP
-;* V135 tmp130 [V135 ] ( 0, 0 ) int -> zero-ref "field V22._length (fldOffset=0x8)" P-INDEP
-;* V136 tmp131 [V136 ] ( 0, 0 ) byref -> zero-ref single-def "field V25._reference (fldOffset=0x0)" P-INDEP
-;* V137 tmp132 [V137 ] ( 0, 0 ) int -> zero-ref "field V25._length (fldOffset=0x8)" P-INDEP
-;* V138 tmp133 [V138 ] ( 0, 0 ) byref -> zero-ref single-def "field V28._reference (fldOffset=0x0)" P-INDEP
-;* V139 tmp134 [V139 ] ( 0, 0 ) int -> zero-ref "field V28._length (fldOffset=0x8)" P-INDEP
-;* V140 tmp135 [V140 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V29._reference (fldOffset=0x0)" P-INDEP
-;* V141 tmp136 [V141 ] ( 0, 0 ) int -> zero-ref "field V29._length (fldOffset=0x8)" P-INDEP
-;* V142 tmp137 [V142 ] ( 0, 0 ) long -> zero-ref ptr "field V34.Item1 (fldOffset=0x0)" P-INDEP
-;* V143 tmp138 [V143 ] ( 0, 0 ) long -> zero-ref ptr "field V34.Item2 (fldOffset=0x8)" P-INDEP
-;* V144 tmp139 [V144 ] ( 0, 0 ) long -> zero-ref ptr "field V36.Item1 (fldOffset=0x0)" P-INDEP
-; V145 tmp140 [V145,T04] ( 2, 8 ) long -> rsi "field V36.Item2 (fldOffset=0x8)" P-INDEP
-;* V146 tmp141 [V146 ] ( 0, 0 ) byref -> zero-ref "field V53._reference (fldOffset=0x0)" P-INDEP
-;* V147 tmp142 [V147 ] ( 0, 0 ) int -> zero-ref "field V53._length (fldOffset=0x8)" P-INDEP
-;* V148 tmp143 [V148 ] ( 0, 0 ) byref -> zero-ref "field V57._reference (fldOffset=0x0)" P-INDEP
-;* V149 tmp144 [V149 ] ( 0, 0 ) int -> zero-ref "field V57._length (fldOffset=0x8)" P-INDEP
-;* V150 tmp145 [V150 ] ( 0, 0 ) byref -> zero-ref "field V60._reference (fldOffset=0x0)" P-INDEP
-;* V151 tmp146 [V151 ] ( 0, 0 ) int -> zero-ref "field V60._length (fldOffset=0x8)" P-INDEP
-;* V152 tmp147 [V152 ] ( 0, 0 ) byref -> zero-ref "field V63._reference (fldOffset=0x0)" P-INDEP
-;* V153 tmp148 [V153 ] ( 0, 0 ) int -> zero-ref "field V63._length (fldOffset=0x8)" P-INDEP
-;* V154 tmp149 [V154 ] ( 0, 0 ) byref -> zero-ref "field V66._reference (fldOffset=0x0)" P-INDEP
-;* V155 tmp150 [V155 ] ( 0, 0 ) int -> zero-ref "field V66._length (fldOffset=0x8)" P-INDEP
-;* V156 tmp151 [V156 ] ( 0, 0 ) byref -> zero-ref "field V68._reference (fldOffset=0x0)" P-INDEP
-;* V157 tmp152 [V157 ] ( 0, 0 ) int -> zero-ref "field V68._length (fldOffset=0x8)" P-INDEP
-;* V158 tmp153 [V158 ] ( 0, 0 ) long -> zero-ref ptr "field V73.Item1 (fldOffset=0x0)" P-INDEP
-;* V159 tmp154 [V159 ] ( 0, 0 ) long -> zero-ref ptr "field V73.Item2 (fldOffset=0x8)" P-INDEP
-;* V160 tmp155 [V160 ] ( 0, 0 ) long -> zero-ref ptr "field V75.Item1 (fldOffset=0x0)" P-INDEP
-;* V161 tmp156 [V161 ] ( 0, 0 ) long -> zero-ref ptr "field V75.Item2 (fldOffset=0x8)" P-INDEP
-;* V162 tmp157 [V162 ] ( 0, 0 ) long -> zero-ref ptr "field V91.Item1 (fldOffset=0x0)" P-INDEP
-;* V163 tmp158 [V163 ] ( 0, 0 ) long -> zero-ref ptr "field V91.Item2 (fldOffset=0x8)" P-INDEP
-;* V164 tmp159 [V164 ] ( 0, 0 ) long -> zero-ref ptr "field V93.Item1 (fldOffset=0x0)" P-INDEP
-;* V165 tmp160 [V165 ] ( 0, 0 ) long -> zero-ref ptr "field V93.Item2 (fldOffset=0x8)" P-INDEP
-;* V166 tmp161 [V166 ] ( 0, 0 ) long -> zero-ref ptr "field V96.Item1 (fldOffset=0x0)" P-INDEP
-;* V167 tmp162 [V167 ] ( 0, 0 ) long -> zero-ref ptr "field V96.Item2 (fldOffset=0x8)" P-INDEP
-;* V168 tmp163 [V168 ] ( 0, 0 ) long -> zero-ref ptr "field V104.Item1 (fldOffset=0x0)" P-INDEP
-;* V169 tmp164 [V169 ] ( 0, 0 ) long -> zero-ref ptr "field V104.Item2 (fldOffset=0x8)" P-INDEP
-;* V170 tmp165 [V170 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V110._reference (fldOffset=0x0)" P-INDEP
-;* V171 tmp166 [V171 ] ( 0, 0 ) int -> zero-ref ptr "field V110._length (fldOffset=0x8)" P-INDEP
-;* V172 tmp167 [V172 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V112._reference (fldOffset=0x0)" P-INDEP
-;* V173 tmp168 [V173 ] ( 0, 0 ) int -> zero-ref ptr "field V112._length (fldOffset=0x8)" P-INDEP
-; V174 tmp169 [V174,T13] ( 2, 2 ) byref -> rsi single-def "field V113._reference (fldOffset=0x0)" P-INDEP
-; V175 tmp170 [V175,T16] ( 2, 2 ) int -> rdx "field V113._length (fldOffset=0x8)" P-INDEP
-; V176 tmp171 [V176,T17] ( 2, 2 ) long -> r8 "Cast away GC"
-; V177 GsCookie [V177 ] ( 1, 1 ) long -> [rbp-0x08] do-not-enreg[X] addr-exposed "GSSecurityCookie"
-; V178 tmp173 [V178,T14] ( 2, 2 ) ref -> rdi single-def "shadowVar"
-; V179 tmp174 [V179,T08] ( 4, 3.50) long -> rsi "shadowVar"
+;* V112 tmp107 [V112 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+; V113 tmp108 [V113,T35] ( 2, 2 ) ushort -> r13 "Inlining Arg"
+; V114 tmp109 [V114,T45] ( 2, 1 ) ubyte -> rdx "Inline return value spill temp"
+; V115 tmp110 [V115,T17] ( 3, 6 ) int -> rdx "Inlining Arg"
+; V116 tmp111 [V116 ] ( 4, 8 ) struct (16) [rbp-0x80] do-not-enreg[XSA] multireg-arg must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
+; V117 tmp112 [V117,T19] ( 8, 5 ) byref -> r14 single-def "field V02._reference (fldOffset=0x0)" P-INDEP
+;* V118 tmp113 [V118,T46] ( 0, 0 ) int -> zero-ref "field V02._length (fldOffset=0x8)" P-INDEP
+;* V119 tmp114 [V119 ] ( 0, 0 ) ubyte -> zero-ref "field V04._format (fldOffset=0x0)" P-INDEP
+;* V120 tmp115 [V120 ] ( 0, 0 ) ubyte -> zero-ref "field V04._precision (fldOffset=0x1)" P-INDEP
+; V121 tmp116 [V121,T30] ( 2, 2 ) byref -> r14 single-def "field V07._reference (fldOffset=0x0)" P-INDEP
+;* V122 tmp117 [V122,T47] ( 0, 0 ) int -> zero-ref "field V07._length (fldOffset=0x8)" P-INDEP
+;* V123 tmp118 [V123 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V08._reference (fldOffset=0x0)" P-INDEP
+;* V124 tmp119 [V124 ] ( 0, 0 ) int -> zero-ref "field V08._length (fldOffset=0x8)" P-INDEP
+;* V125 tmp120 [V125 ] ( 0, 0 ) byref -> zero-ref "field V09._reference (fldOffset=0x0)" P-INDEP
+;* V126 tmp121 [V126 ] ( 0, 0 ) int -> zero-ref "field V09._length (fldOffset=0x8)" P-INDEP
+; V127 tmp122 [V127,T31] ( 2, 2 ) byref -> rsi "field V10._reference (fldOffset=0x0)" P-INDEP
+; V128 tmp123 [V128,T36] ( 2, 2 ) int -> rdx "field V10._length (fldOffset=0x8)" P-INDEP
+; V129 tmp124 [V129 ] ( 4, 5 ) ubyte -> [rbp-0x58] do-not-enreg[X] addr-exposed "field V12._format (fldOffset=0x0)" P-DEP
+; V130 tmp125 [V130 ] ( 5, 5.50) ubyte -> [rbp-0x57] do-not-enreg[X] addr-exposed ptr "field V12._precision (fldOffset=0x1)" P-DEP
+;* V131 tmp126 [V131 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V17._reference (fldOffset=0x0)" P-INDEP
+;* V132 tmp127 [V132 ] ( 0, 0 ) int -> zero-ref "field V17._length (fldOffset=0x8)" P-INDEP
+;* V133 tmp128 [V133 ] ( 0, 0 ) byref -> zero-ref single-def "field V19._reference (fldOffset=0x0)" P-INDEP
+;* V134 tmp129 [V134 ] ( 0, 0 ) int -> zero-ref "field V19._length (fldOffset=0x8)" P-INDEP
+;* V135 tmp130 [V135 ] ( 0, 0 ) byref -> zero-ref single-def "field V22._reference (fldOffset=0x0)" P-INDEP
+;* V136 tmp131 [V136 ] ( 0, 0 ) int -> zero-ref "field V22._length (fldOffset=0x8)" P-INDEP
+;* V137 tmp132 [V137 ] ( 0, 0 ) byref -> zero-ref single-def "field V25._reference (fldOffset=0x0)" P-INDEP
+;* V138 tmp133 [V138 ] ( 0, 0 ) int -> zero-ref "field V25._length (fldOffset=0x8)" P-INDEP
+;* V139 tmp134 [V139 ] ( 0, 0 ) byref -> zero-ref single-def "field V28._reference (fldOffset=0x0)" P-INDEP
+;* V140 tmp135 [V140 ] ( 0, 0 ) int -> zero-ref "field V28._length (fldOffset=0x8)" P-INDEP
+;* V141 tmp136 [V141 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V29._reference (fldOffset=0x0)" P-INDEP
+;* V142 tmp137 [V142 ] ( 0, 0 ) int -> zero-ref "field V29._length (fldOffset=0x8)" P-INDEP
+;* V143 tmp138 [V143 ] ( 0, 0 ) long -> zero-ref ptr "field V34.Item1 (fldOffset=0x0)" P-INDEP
+;* V144 tmp139 [V144 ] ( 0, 0 ) long -> zero-ref ptr "field V34.Item2 (fldOffset=0x8)" P-INDEP
+;* V145 tmp140 [V145 ] ( 0, 0 ) long -> zero-ref ptr "field V36.Item1 (fldOffset=0x0)" P-INDEP
+; V146 tmp141 [V146,T14] ( 2, 8 ) long -> rsi "field V36.Item2 (fldOffset=0x8)" P-INDEP
+;* V147 tmp142 [V147 ] ( 0, 0 ) byref -> zero-ref "field V40._reference (fldOffset=0x0)" P-INDEP
+;* V148 tmp143 [V148 ] ( 0, 0 ) int -> zero-ref "field V40._length (fldOffset=0x8)" P-INDEP
+;* V149 tmp144 [V149 ] ( 0, 0 ) byref -> zero-ref "field V42._reference (fldOffset=0x0)" P-INDEP
+;* V150 tmp145 [V150 ] ( 0, 0 ) int -> zero-ref "field V42._length (fldOffset=0x8)" P-INDEP
+;* V151 tmp146 [V151 ] ( 0, 0 ) byref -> zero-ref "field V43._reference (fldOffset=0x0)" P-INDEP
+;* V152 tmp147 [V152 ] ( 0, 0 ) int -> zero-ref "field V43._length (fldOffset=0x8)" P-INDEP
+;* V153 tmp148 [V153 ] ( 0, 0 ) byref -> zero-ref "field V47._reference (fldOffset=0x0)" P-INDEP
+;* V154 tmp149 [V154 ] ( 0, 0 ) int -> zero-ref "field V47._length (fldOffset=0x8)" P-INDEP
+;* V155 tmp150 [V155 ] ( 0, 0 ) byref -> zero-ref single-def "field V49._reference (fldOffset=0x0)" P-INDEP
+;* V156 tmp151 [V156 ] ( 0, 0 ) int -> zero-ref "field V49._length (fldOffset=0x8)" P-INDEP
+;* V157 tmp152 [V157 ] ( 0, 0 ) byref -> zero-ref single-def "field V50._reference (fldOffset=0x0)" P-INDEP
+;* V158 tmp153 [V158 ] ( 0, 0 ) int -> zero-ref "field V50._length (fldOffset=0x8)" P-INDEP
+;* V159 tmp154 [V159 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V57._reference (fldOffset=0x0)" P-INDEP
+;* V160 tmp155 [V160 ] ( 0, 0 ) int -> zero-ref "field V57._length (fldOffset=0x8)" P-INDEP
+;* V161 tmp156 [V161 ] ( 0, 0 ) byref -> zero-ref single-def "field V61._reference (fldOffset=0x0)" P-INDEP
+;* V162 tmp157 [V162 ] ( 0, 0 ) int -> zero-ref "field V61._length (fldOffset=0x8)" P-INDEP
+;* V163 tmp158 [V163 ] ( 0, 0 ) byref -> zero-ref single-def "field V64._reference (fldOffset=0x0)" P-INDEP
+;* V164 tmp159 [V164 ] ( 0, 0 ) int -> zero-ref "field V64._length (fldOffset=0x8)" P-INDEP
+;* V165 tmp160 [V165 ] ( 0, 0 ) byref -> zero-ref single-def "field V67._reference (fldOffset=0x0)" P-INDEP
+;* V166 tmp161 [V166 ] ( 0, 0 ) int -> zero-ref "field V67._length (fldOffset=0x8)" P-INDEP
+;* V167 tmp162 [V167 ] ( 0, 0 ) byref -> zero-ref single-def "field V70._reference (fldOffset=0x0)" P-INDEP
+;* V168 tmp163 [V168 ] ( 0, 0 ) int -> zero-ref "field V70._length (fldOffset=0x8)" P-INDEP
+;* V169 tmp164 [V169 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V72._reference (fldOffset=0x0)" P-INDEP
+;* V170 tmp165 [V170 ] ( 0, 0 ) int -> zero-ref "field V72._length (fldOffset=0x8)" P-INDEP
+;* V171 tmp166 [V171 ] ( 0, 0 ) long -> zero-ref ptr "field V77.Item1 (fldOffset=0x0)" P-INDEP
+;* V172 tmp167 [V172 ] ( 0, 0 ) long -> zero-ref ptr "field V77.Item2 (fldOffset=0x8)" P-INDEP
+;* V173 tmp168 [V173 ] ( 0, 0 ) long -> zero-ref ptr "field V79.Item1 (fldOffset=0x0)" P-INDEP
+; V174 tmp169 [V174,T15] ( 2, 8 ) long -> rdi "field V79.Item2 (fldOffset=0x8)" P-INDEP
+;* V175 tmp170 [V175 ] ( 0, 0 ) byref -> zero-ref "field V83._reference (fldOffset=0x0)" P-INDEP
+;* V176 tmp171 [V176 ] ( 0, 0 ) int -> zero-ref "field V83._length (fldOffset=0x8)" P-INDEP
+;* V177 tmp172 [V177 ] ( 0, 0 ) byref -> zero-ref "field V85._reference (fldOffset=0x0)" P-INDEP
+;* V178 tmp173 [V178 ] ( 0, 0 ) int -> zero-ref "field V85._length (fldOffset=0x8)" P-INDEP
+;* V179 tmp174 [V179 ] ( 0, 0 ) byref -> zero-ref "field V86._reference (fldOffset=0x0)" P-INDEP
+;* V180 tmp175 [V180 ] ( 0, 0 ) int -> zero-ref "field V86._length (fldOffset=0x8)" P-INDEP
+;* V181 tmp176 [V181 ] ( 0, 0 ) byref -> zero-ref "field V90._reference (fldOffset=0x0)" P-INDEP
+;* V182 tmp177 [V182 ] ( 0, 0 ) int -> zero-ref "field V90._length (fldOffset=0x8)" P-INDEP
+;* V183 tmp178 [V183 ] ( 0, 0 ) byref -> zero-ref single-def "field V92._reference (fldOffset=0x0)" P-INDEP
+;* V184 tmp179 [V184 ] ( 0, 0 ) int -> zero-ref "field V92._length (fldOffset=0x8)" P-INDEP
+;* V185 tmp180 [V185 ] ( 0, 0 ) byref -> zero-ref single-def "field V93._reference (fldOffset=0x0)" P-INDEP
+;* V186 tmp181 [V186 ] ( 0, 0 ) int -> zero-ref "field V93._length (fldOffset=0x8)" P-INDEP
+;* V187 tmp182 [V187 ] ( 0, 0 ) long -> zero-ref ptr "field V99.Item1 (fldOffset=0x0)" P-INDEP
+;* V188 tmp183 [V188 ] ( 0, 0 ) long -> zero-ref ptr "field V99.Item2 (fldOffset=0x8)" P-INDEP
+; V189 tmp184 [V189,T06] ( 2, 32 ) long -> rbx "field V101.Item1 (fldOffset=0x0)" P-INDEP
+; V190 tmp185 [V190,T07] ( 2, 32 ) long -> rdx "field V101.Item2 (fldOffset=0x8)" P-INDEP
+;* V191 tmp186 [V191 ] ( 0, 0 ) long -> zero-ref ptr "field V104.Item1 (fldOffset=0x0)" P-INDEP
+; V192 tmp187 [V192,T16] ( 2, 8 ) long -> rbx "field V104.Item2 (fldOffset=0x8)" P-INDEP
+;* V193 tmp188 [V193 ] ( 0, 0 ) byref -> zero-ref "field V108._reference (fldOffset=0x0)" P-DEP
+;* V194 tmp189 [V194 ] ( 0, 0 ) int -> zero-ref "field V108._length (fldOffset=0x8)" P-DEP
+; V195 tmp190 [V195,T13] ( 2, 8 ) byref -> rax "field V110._reference (fldOffset=0x0)" P-INDEP
+; V196 tmp191 [V196,T22] ( 1, 4 ) int -> rdx "field V110._length (fldOffset=0x8)" P-INDEP
+; V197 tmp192 [V197 ] ( 3, 5 ) byref -> [rbp-0x80] do-not-enreg[X] addr-exposed "field V116._reference (fldOffset=0x0)" P-DEP
+; V198 tmp193 [V198 ] ( 3, 5 ) int -> [rbp-0x78] do-not-enreg[X] addr-exposed "field V116._length (fldOffset=0x8)" P-DEP
+; V199 tmp194 [V199,T37] ( 2, 2 ) struct ( 8) [rbp-0x88] do-not-enreg[S] "by-value struct argument" <System.Buffers.StandardFormat>
+; V200 tmp195 [V200,T38] ( 2, 2 ) long -> r12 "Cast away GC"
+; V201 tmp196 [V201,T39] ( 2, 2 ) long -> rdi "Cast away GC"
+; V202 GsCookie [V202 ] ( 1, 1 ) long -> [rbp-0x30] do-not-enreg[X] addr-exposed "GSSecurityCookie"
+; V203 tmp198 [V203,T32] ( 2, 2 ) ref -> r15 single-def "shadowVar"
+; V204 tmp199 [V204,T18] ( 10, 5.50) long -> rbx "shadowVar"
+; V205 cse0 [V205,T24] ( 4, 3 ) int -> r13 "CSE #03: conservative"
+; V206 cse1 [V206,T25] ( 4, 3 ) int -> rdx "CSE #04: conservative"
+; V207 cse2 [V207,T43] ( 3, 1.50) int -> r13 "CSE #05: conservative"
;
-; Lcl frame size = 48
+; Lcl frame size = 104
G_M22294_IG01:
push rbp
- sub rsp, 48
- lea rbp, [rsp+0x30]
+ push r15
+ push r14
+ push r13
+ push r12
+ push rbx
+ sub rsp, 104
+ lea rbp, [rsp+0x90]
+ vxorps xmm8, xmm8, xmm8
+ vmovdqu ymmword ptr [rbp-0x80], ymm8
xor eax, eax
- mov qword ptr [rbp-0x30], rax
- mov qword ptr [rbp-0x08], 0xD1FFAB1E
- ;; size=24 bbWeight=1 PerfScore 4.00
+ mov qword ptr [rbp-0x60], rax
+ mov qword ptr [rbp-0x30], 0xD1FFAB1E
+ ;; size=46 bbWeight=1 PerfScore 11.33
G_M22294_IG02:
- lea rcx, [rbp-0x20]
- mov rax, rsi
+ mov rbx, rsi
+ mov r15, rdi
+ lea r14, [rbp-0x48]
+ mov word ptr [rbp-0x58], 0
+ movzx r13, byte ptr [rbp-0x58]
+ movzx rdx, byte ptr [rbp-0x57]
+ mov r8d, r13d
+ or r8d, edx
+ je G_M22294_IG14
+ ;; size=37 bbWeight=1 PerfScore 5.50
+G_M22294_IG03:
+ mov r12d, r13d
+ or r12d, 32
+ cmp r12d, 103
+ jle G_M22294_IG05
+ cmp r12d, 110
+ jne SHORT G_M22294_IG04
+ movzx r8, word ptr [rbp-0x58]
+ mov word ptr [rbp-0x88], r8w
+ movzx r8, word ptr [rbp-0x88]
+ mov rsi, r14
+ mov edx, 20
+ lea rcx, [rbp-0x50]
+ mov rdi, rbx
+ mov rax, 0xD1FFAB1E ; code for System.Buffers.Text.FormattingHelpers:TryFormat[ulong](ulong,System.Span`1[ubyte],byref,System.Buffers.StandardFormat):ubyte
+ call [rax]System.Buffers.Text.FormattingHelpers:TryFormat[ulong](ulong,System.Span`1[ubyte],byref,System.Buffers.StandardFormat):ubyte
+ jmp G_M22294_IG23
+ align [5 bytes for IG16]
+ ;; size=81 bbWeight=0.50 PerfScore 6.25
+G_M22294_IG04:
+ cmp r12d, 114
+ je SHORT G_M22294_IG06
+ cmp r12d, 120
+ jne G_M22294_IG34
+ add r13d, -33
+ movzx rsi, r13w
+ xor ecx, ecx
+ cmp edx, 255
+ cmove edx, ecx
+ mov rcx, r14
+ mov r8d, 20
+ lea r9, [rbp-0x50]
+ mov rdi, rbx
+ mov rax, 0xD1FFAB1E ; code for System.Number:TryInt64ToHexStr[ubyte](long,ushort,int,System.Span`1[ubyte],byref):ubyte
+ call [rax]System.Number:TryInt64ToHexStr[ubyte](long,ushort,int,System.Span`1[ubyte],byref):ubyte
+ jmp G_M22294_IG23
+ ;; size=68 bbWeight=0.50 PerfScore 5.12
+G_M22294_IG05:
+ cmp r12d, 100
+ je SHORT G_M22294_IG07
+ cmp r12d, 103
+ jne G_M22294_IG34
+ ;; size=16 bbWeight=0.50 PerfScore 1.25
+G_M22294_IG06:
+ lea rdi, [rbp-0x58]
+ mov rax, 0xD1FFAB1E ; code for System.Buffers.StandardFormat:get_HasPrecision():ubyte:this
+ call [rax]System.Buffers.StandardFormat:get_HasPrecision():ubyte:this
+ test eax, eax
+ jne G_M22294_IG33
+ ;; size=24 bbWeight=0.50 PerfScore 2.50
+G_M22294_IG07:
+ movzx r13, byte ptr [rbp-0x57]
+ xor eax, eax
+ cmp r13d, 255
+ cmove r13d, eax
+ mov rax, rbx
or rax, 1
lzcnt rax, rax
xor eax, 63
cdqe
mov rdx, 0xD1FFAB1E ; static handle
movzx rax, byte ptr [rax+rdx]
mov edx, eax
- mov r8, 0xD1FFAB1E ; static handle
- cmp rsi, qword ptr [r8+8*rdx]
+ mov rcx, 0xD1FFAB1E ; static handle
+ cmp rbx, qword ptr [rcx+8*rdx]
+ setb dl
+ movzx rdx, dl
+ sub eax, edx
+ cmp r13d, eax
+ mov edx, eax
+ cmovge edx, r13d
+ cmp edx, 20
+ jle SHORT G_M22294_IG08
+ xor edx, edx
+ mov dword ptr [rbp-0x50], edx
+ jmp G_M22294_IG13
+ ;; size=97 bbWeight=0.50 PerfScore 8.62
+G_M22294_IG08:
+ mov dword ptr [rbp-0x50], edx
+ mov bword ptr [rbp-0x68], r14
+ mov r12, r14
+ movsxd rdx, edx
+ add r12, rdx
+ cmp r13d, eax
+ jle G_M22294_IG27
+ cmp rbx, 100
+ jb SHORT G_M22294_IG11
+ ;; size=31 bbWeight=0.50 PerfScore 2.62
+G_M22294_IG09:
+ add r12, -2
+ add r13d, -2
+ mov rdx, 0xD1FFAB1E
+ mov rax, rbx
+ shr rax, 2
+ mul rdx:rax, rdx
+ shr rdx, 2
+ imul rax, rdx, 100
+ sub rbx, rax
+ mov qword ptr [rbp-0x70], rdx
+ mov rcx, 0xD1FFAB1E ; code for System.Number:get_TwoDigitsBytes():System.ReadOnlySpan`1[ubyte]
+ call [rcx]System.Number:get_TwoDigitsBytes():System.ReadOnlySpan`1[ubyte]
+ add ebx, ebx
+ mov edi, ebx
+ mov di, word ptr [rax+rdi]
+ mov word ptr [r12], di
+ mov rbx, qword ptr [rbp-0x70]
+ cmp rbx, 100
+ jae SHORT G_M22294_IG09
+ jmp SHORT G_M22294_IG11
+ ;; size=80 bbWeight=4 PerfScore 77.00
+G_M22294_IG10:
+ dec r13d
+ mov rdi, rbx
+ mov esi, 10
+ mov rax, 0xD1FFAB1E ; code for System.Math:DivRem(ulong,ulong):System.ValueTuple`2[ulong,ulong]
+ call [rax]System.Math:DivRem(ulong,ulong):System.ValueTuple`2[ulong,ulong]
+ mov rbx, rax
+ dec r12
+ add edx, 48
+ mov byte ptr [r12], dl
+ ;; size=36 bbWeight=16 PerfScore 92.00
+G_M22294_IG11:
+ test rbx, rbx
+ jne SHORT G_M22294_IG10
+ test r13d, r13d
+ jg SHORT G_M22294_IG10
+ ;; size=10 bbWeight=4 PerfScore 10.00
+G_M22294_IG12:
+ xor eax, eax
+ mov bword ptr [rbp-0x68], rax
+ ;; size=6 bbWeight=0.50 PerfScore 0.62
+G_M22294_IG13:
+ xor rax, rax
+ mov bword ptr [rbp-0x68], rax
+ jmp G_M22294_IG23
+ ;; size=11 bbWeight=0.50 PerfScore 1.62
+G_M22294_IG14:
+ mov rax, rbx
+ or rax, 1
+ lzcnt rax, rax
+ xor eax, 63
+ cdqe
+ mov rdx, 0xD1FFAB1E ; static handle
+ movzx rax, byte ptr [rax+rdx]
+ mov edx, eax
+ mov rdi, 0xD1FFAB1E ; static handle
+ cmp rbx, qword ptr [rdi+8*rdx]
setb dl
movzx rdx, dl
sub eax, edx
cmp eax, 20
- jle SHORT G_M22294_IG04
- ;; size=64 bbWeight=1 PerfScore 12.00
-G_M22294_IG03:
+ jle SHORT G_M22294_IG15
xor eax, eax
- mov dword ptr [rbp-0x28], eax
- jmp G_M22294_IG11
- align [0 bytes for IG05]
- ;; size=10 bbWeight=0.50 PerfScore 1.62
-G_M22294_IG04:
- mov dword ptr [rbp-0x28], eax
- mov bword ptr [rbp-0x30], rcx
- mov r8, rcx
- movsxd r9, eax
- add r8, r9
+ mov dword ptr [rbp-0x50], eax
+ jmp G_M22294_IG22
+ ;; size=70 bbWeight=0.50 PerfScore 7.38
+G_M22294_IG15:
+ mov dword ptr [rbp-0x50], eax
+ mov bword ptr [rbp-0x60], r14
+ mov rdi, r14
+ movsxd rsi, eax
+ add rdi, rsi
+ mov rsi, rbx
cmp rsi, 10
- jb SHORT G_M22294_IG08
- jmp SHORT G_M22294_IG06
- ;; size=24 bbWeight=0.50 PerfScore 3.00
-G_M22294_IG05:
- add r8, -2
+ jb SHORT G_M22294_IG19
+ jmp SHORT G_M22294_IG17
+ ;; size=27 bbWeight=0.50 PerfScore 3.12
+G_M22294_IG16:
+ add rdi, -2
mov rdx, 0xD1FFAB1E
mov rax, rsi
shr rax, 2
mul rdx:rax, rdx
shr rdx, 2
imul rax, rdx, 100
sub rsi, rax
- mov rax, 0xD1FFAB1E ; const ptr
- mov rax, gword ptr [rax]
add esi, esi
- mov si, word ptr [rax+rsi+0x10]
- mov word ptr [r8], si
+ mov rax, 0xD1FFAB1E ; static handle
+ mov si, word ptr [rsi+rax]
+ mov word ptr [rdi], si
mov rsi, rdx
- ;; size=62 bbWeight=4 PerfScore 51.00
-G_M22294_IG06:
+ ;; size=57 bbWeight=4 PerfScore 43.00
+G_M22294_IG17:
cmp rsi, 100
- jae SHORT G_M22294_IG05
+ jae SHORT G_M22294_IG16
;; size=6 bbWeight=4 PerfScore 5.00
-G_M22294_IG07:
+G_M22294_IG18:
cmp rsi, 10
- jae SHORT G_M22294_IG09
+ jae SHORT G_M22294_IG20
;; size=6 bbWeight=0.50 PerfScore 0.62
-G_M22294_IG08:
- dec r8
+G_M22294_IG19:
+ dec rdi
add esi, 48
- mov byte ptr [r8], sil
- jmp SHORT G_M22294_IG10
+ mov byte ptr [rdi], sil
+ jmp SHORT G_M22294_IG21
+ align [0 bytes for IG28]
;; size=11 bbWeight=0.50 PerfScore 1.75
-G_M22294_IG09:
- add r8, -2
- mov rdx, 0xD1FFAB1E ; const ptr
- mov rdx, gword ptr [rdx]
+G_M22294_IG20:
+ add rdi, -2
add esi, esi
- mov si, word ptr [rdx+rsi+0x10]
- mov word ptr [r8], si
- ;; size=28 bbWeight=0.50 PerfScore 2.88
-G_M22294_IG10:
- xor esi, esi
- mov bword ptr [rbp-0x30], rsi
+ mov rdx, 0xD1FFAB1E ; static handle
+ mov si, word ptr [rsi+rdx]
+ mov word ptr [rdi], si
+ ;; size=23 bbWeight=0.50 PerfScore 1.88
+G_M22294_IG21:
+ xor edi, edi
+ mov bword ptr [rbp-0x60], rdi
;; size=6 bbWeight=0.50 PerfScore 0.62
-G_M22294_IG11:
- xor rsi, rsi
- mov bword ptr [rbp-0x30], rsi
- mov edx, dword ptr [rbp-0x28]
+G_M22294_IG22:
+ xor rdi, rdi
+ mov bword ptr [rbp-0x60], rdi
+ ;; size=6 bbWeight=0.50 PerfScore 0.62
+G_M22294_IG23:
+ mov edx, dword ptr [rbp-0x50]
cmp edx, 20
- ja SHORT G_M22294_IG15
- mov rsi, rcx
+ ja G_M22294_IG35
+ vxorps xmm0, xmm0, xmm0
+ vmovdqu xmmword ptr [rbp-0x80], xmm0
+ lea rdi, [rbp-0x80]
+ mov rsi, r14
+ mov rax, 0xD1FFAB1E ; code for System.Span`1[ubyte]:.ctor(byref,int):this
+ call [rax]System.Span`1[ubyte]:.ctor(byref,int):this
+ mov rdi, bword ptr [rbp-0x80]
+ mov esi, dword ptr [rbp-0x78]
+ mov rax, 0xD1FFAB1E ; code for System.Span`1[ubyte]:op_Implicit(System.Span`1[ubyte]):System.ReadOnlySpan`1[ubyte]
+ call [rax]System.Span`1[ubyte]:op_Implicit(System.Span`1[ubyte]):System.ReadOnlySpan`1[ubyte]
+ mov rsi, rax
+ mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Text.Json.Utf8JsonWriter:WriteNumberValueAsStringUnescaped(System.ReadOnlySpan`1[ubyte]):this
call [rax]System.Text.Json.Utf8JsonWriter:WriteNumberValueAsStringUnescaped(System.ReadOnlySpan`1[ubyte]):this
- ;; size=29 bbWeight=1 PerfScore 7.00
-G_M22294_IG12:
- cmp qword ptr [rbp-0x08], 0xD1FFAB1E
- je SHORT G_M22294_IG13
+ ;; size=77 bbWeight=1 PerfScore 16.58
+G_M22294_IG24:
+ cmp qword ptr [rbp-0x30], 0xD1FFAB1E
+ je SHORT G_M22294_IG25
call CORINFO_HELP_FAIL_FAST
;; size=15 bbWeight=1 PerfScore 4.00
-G_M22294_IG13:
+G_M22294_IG25:
nop
;; size=1 bbWeight=1 PerfScore 0.25
-G_M22294_IG14:
- add rsp, 48
+G_M22294_IG26:
+ add rsp, 104
+ pop rbx
+ pop r12
+ pop r13
+ pop r14
+ pop r15
pop rbp
ret
- ;; size=6 bbWeight=1 PerfScore 1.75
-G_M22294_IG15:
+ ;; size=15 bbWeight=1 PerfScore 4.25
+G_M22294_IG27:
+ mov rcx, r12
+ mov rdi, rbx
+ cmp rdi, 10
+ jb SHORT G_M22294_IG31
+ jmp SHORT G_M22294_IG29
+ ;; size=14 bbWeight=0.50 PerfScore 1.88
+G_M22294_IG28:
+ add rcx, -2
+ mov rdx, 0xD1FFAB1E
+ mov rax, rdi
+ shr rax, 2
+ mul rdx:rax, rdx
+ shr rdx, 2
+ imul rax, rdx, 100
+ sub rdi, rax
+ mov rax, rdx
+ add edi, edi
+ mov edx, edi
+ mov rdi, 0xD1FFAB1E ; static handle
+ mov dx, word ptr [rdx+rdi]
+ mov word ptr [rcx], dx
+ mov rdi, rax
+ ;; size=62 bbWeight=4 PerfScore 45.00
+G_M22294_IG29:
+ cmp rdi, 100
+ jae SHORT G_M22294_IG28
+ ;; size=6 bbWeight=4 PerfScore 5.00
+G_M22294_IG30:
+ cmp rdi, 10
+ jae SHORT G_M22294_IG32
+ ;; size=6 bbWeight=0.50 PerfScore 0.62
+G_M22294_IG31:
+ add edi, 48
+ mov byte ptr [rcx-0x01], dil
+ jmp G_M22294_IG12
+ ;; size=12 bbWeight=0.50 PerfScore 1.62
+G_M22294_IG32:
+ lea rax, [rcx-0x02]
+ lea ecx, [rdi+rdi]
+ mov rdx, 0xD1FFAB1E ; static handle
+ mov cx, word ptr [rcx+rdx]
+ mov word ptr [rax], cx
+ jmp G_M22294_IG12
+ ;; size=29 bbWeight=0.50 PerfScore 3.12
+G_M22294_IG33:
+ mov rax, 0xD1FFAB1E ; code for System.Buffers.Text.Utf8Formatter:ThrowGWithPrecisionNotSupported()
+ call [rax]System.Buffers.Text.Utf8Formatter:ThrowGWithPrecisionNotSupported()
+ int3
+ ;; size=13 bbWeight=0 PerfScore 0.00
+G_M22294_IG34:
+ mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowFormatException_BadFormatSpecifier()
+ call [rax]System.ThrowHelper:ThrowFormatException_BadFormatSpecifier()
+ int3
+ ;; size=13 bbWeight=0 PerfScore 0.00
+G_M22294_IG35:
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 305, prolog size 24, PerfScore 95.50, instruction count 82, allocated bytes for code 305 (MethodHash=f5cda8e9) for method System.Text.Json.Utf8JsonWriter:WriteNumberValueAsString(ulong):this (FullOpts)
+; Total bytes of code 1031, prolog size 46, PerfScore 370.79, instruction count 265, allocated bytes for code 1031 (MethodHash=f5cda8e9) for method System.Text.Json.Utf8JsonWriter:WriteNumberValueAsString(ulong):this (FullOpts)
; ============================================================ 54 (91.53 % of base) - System.Number:UInt32ToDecStrForKnownSmallNumber(uint):System.String ; Assembly listing for method System.Number:UInt32ToDecStrForKnownSmallNumber(uint):System.String (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 5, 4.50) int -> rdi single-def
+; V00 arg0 [V00,T00] ( 5, 4.50) int -> rbx single-def
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 tmp1 [V02,T01] ( 3, 5 ) ref -> rax class-hnd exact single-def "dup spill" <System.String>
+; V02 tmp1 [V02,T02] ( 3, 5 ) ref -> rax class-hnd exact single-def "dup spill" <System.String>
;* V03 tmp2 [V03 ] ( 0, 0 ) ref -> zero-ref single-def
-; V04 cse0 [V04,T02] ( 2, 2 ) ref -> rax "CSE #01: aggressive"
+; V04 tmp3 [V04,T01] ( 3, 6 ) ref -> rax single-def "arr expr"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M45076_IG01:
push rbp
- mov rbp, rsp
- ;; size=4 bbWeight=1 PerfScore 1.25
+ push rbx
+ push rax
+ lea rbp, [rsp+0x10]
+ mov ebx, edi
+ ;; size=10 bbWeight=1 PerfScore 3.75
G_M45076_IG02:
- mov rax, 0xD1FFAB1E ; const ptr
- mov rax, gword ptr [rax]
- cmp edi, 300
- jae SHORT G_M45076_IG06
- mov ecx, edi
- mov rax, gword ptr [rax+8*rcx+0x10]
- test rax, rax
- je SHORT G_M45076_IG04
- ;; size=33 bbWeight=1 PerfScore 7.00
+ mov rdi, 0xD1FFAB1E ; global ptr
+ test byte ptr [rdi], 1
+ je SHORT G_M45076_IG07
+ ;; size=15 bbWeight=1 PerfScore 4.25
G_M45076_IG03:
+ mov rax, 0xD1FFAB1E ; data for System.Number:s_smallNumberCache
+ mov rax, gword ptr [rax]
+ cmp ebx, dword ptr [rax+0x08]
+ jae SHORT G_M45076_IG08
+ mov edi, ebx
+ mov rax, gword ptr [rax+8*rdi+0x10]
+ test rax, rax
+ jne SHORT G_M45076_IG06
+ ;; size=30 bbWeight=1 PerfScore 9.75
+G_M45076_IG04:
+ mov edi, ebx
+ mov rax, 0xD1FFAB1E ; code for System.Number:<UInt32ToDecStrForKnownSmallNumber>g__CreateAndCacheString|49_0(uint):System.String
+ ;; size=12 bbWeight=0.50 PerfScore 0.25
+G_M45076_IG05:
+ add rsp, 8
+ pop rbx
+ pop rbp
+ tail.jmp [rax]System.Number:<UInt32ToDecStrForKnownSmallNumber>g__CreateAndCacheString|49_0(uint):System.String
+ ;; size=9 bbWeight=0.50 PerfScore 1.62
+G_M45076_IG06:
+ add rsp, 8
+ pop rbx
pop rbp
ret
- ;; size=2 bbWeight=0.50 PerfScore 0.75
-G_M45076_IG04:
- mov rax, 0xD1FFAB1E ; code for System.Number:<UInt32ToDecStrForKnownSmallNumber>g__CreateAndCacheString|47_0(uint):System.String
- ;; size=10 bbWeight=0.50 PerfScore 0.12
-G_M45076_IG05:
- pop rbp
- tail.jmp [rax]System.Number:<UInt32ToDecStrForKnownSmallNumber>g__CreateAndCacheString|47_0(uint):System.String
- ;; size=4 bbWeight=0.50 PerfScore 1.25
-G_M45076_IG06:
+ ;; size=7 bbWeight=0.50 PerfScore 1.12
+G_M45076_IG07:
+ mov rdi, 0xD1FFAB1E ; System.Number
+ mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_GET_GCSTATIC_BASE
+ call [rax]CORINFO_HELP_GET_GCSTATIC_BASE
+ jmp SHORT G_M45076_IG03
+ ;; size=24 bbWeight=0 PerfScore 0.00
+G_M45076_IG08:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 59, prolog size 4, PerfScore 10.38, instruction count 17, allocated bytes for code 59 (MethodHash=283c4feb) for method System.Number:UInt32ToDecStrForKnownSmallNumber(uint):System.String (FullOpts)
+; Total bytes of code 113, prolog size 10, PerfScore 20.75, instruction count 32, allocated bytes for code 113 (MethodHash=283c4feb) for method System.Number:UInt32ToDecStrForKnownSmallNumber(uint):System.String (FullOpts)
; ============================================================ Larger list of diffs: https://gist.github.com/MihuBot/66c01a15e5b60f9da2f4cdff25f19ba8 |
Top method improvements-827 (-68.57 % of base) - System.Text.Json.Utf8JsonWriter:WriteNumberValueAsString(long):this ; Assembly listing for method System.Text.Json.Utf8JsonWriter:WriteNumberValueAsString(long):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; 26 single block inlinees; 24 inlinees without PGO data
+; 0 inlinees with PGO data; 39 single block inlinees; 27 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T22] ( 3, 3 ) ref -> rdi this class-hnd single-def <System.Text.Json.Utf8JsonWriter>
-; V01 arg1 [V01,T23] ( 3, 3 ) long -> rsi single-def
+; V00 this [V00,T05] ( 3, 3 ) ref -> rdi this class-hnd single-def <System.Text.Json.Utf8JsonWriter>
+; V01 arg1 [V01,T06] ( 3, 3 ) long -> rsi single-def
;* V02 loc0 [V02 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.Span`1[ubyte]>
-; V03 loc1 [V03 ] ( 9, 5 ) int -> [rbp-0x50] do-not-enreg[X] addr-exposed ld-addr-op ptr
+; V03 loc1 [V03 ] ( 4, 2.50) int -> [rbp-0x38] do-not-enreg[X] addr-exposed ld-addr-op ptr
;* V04 loc2 [V04 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.Buffers.StandardFormat>
; V05 OutArgs [V05 ] ( 1, 1 ) struct ( 8) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V06 tmp1 [V06 ] ( 1, 1 ) struct (24) [rbp-0x48] do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
+; V06 tmp1 [V06 ] ( 1, 1 ) struct (24) [rbp-0x30] do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
;* V07 tmp2 [V07 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V08 tmp3 [V08 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.Span`1[ubyte]>
;* V09 tmp4 [V09 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
-;* V10 tmp5 [V10 ] ( 0, 0 ) struct (16) zero-ref multireg-arg multireg-ret "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
+;* V10 tmp5 [V10 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
;* V11 tmp6 [V11 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V12 tmp7 [V12 ] ( 7, 10 ) struct ( 8) [rbp-0x58] do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Buffers.StandardFormat>
-; V13 tmp8 [V13,T25] ( 7, 3.50) int -> r12 "Inline stloc first use temp"
-;* V14 tmp9 [V14 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-; V15 tmp10 [V15,T35] ( 2, 2 ) int -> rsi "impAppendStmt"
-; V16 tmp11 [V16,T36] ( 2, 2 ) int -> rsi "impAppendStmt"
+;* V12 tmp7 [V12 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Buffers.StandardFormat>
+;* V13 tmp8 [V13 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V14 tmp9 [V14 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
+;* V15 tmp10 [V15 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
+;* V16 tmp11 [V16 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V17 tmp12 [V17 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-; V18 tmp13 [V18,T37] ( 2, 2 ) int -> rsi "impAppendStmt"
+;* V18 tmp13 [V18 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V19 tmp14 [V19 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V20 tmp15 [V20,T29] ( 4, 2 ) int -> rax "Inline stloc first use temp"
+; V20 tmp15 [V20,T09] ( 4, 2 ) int -> rax "Inline stloc first use temp"
;* V21 tmp16 [V21 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
-; V22 tmp17 [V22 ] ( 3, 1.50) byref -> [rbp-0x60] must-init pinned ptr "Inline stloc first use temp"
+; V22 tmp17 [V22 ] ( 3, 1.50) byref -> [rbp-0x40] must-init pinned ptr "Inline stloc first use temp"
;* V23 tmp18 [V23 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V24 tmp19 [V24 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
-; V25 tmp20 [V25,T44] ( 3, 1.50) int -> rax "Inline stloc first use temp"
+; V25 tmp20 [V25,T16] ( 3, 1.50) int -> rax "Inline stloc first use temp"
;* V26 tmp21 [V26 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[ulong]>
;* V27 tmp22 [V27 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;* V28 tmp23 [V28 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inline stloc first use temp"
;* V29 tmp24 [V29 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V30 tmp25 [V30 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V31 tmp26 [V31 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V32 tmp27 [V32 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ulong]>
;* V33 tmp28 [V33 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V34 tmp29 [V34 ] ( 0, 0 ) long -> zero-ref "Inline return value spill temp"
-; V35 tmp30 [V35,T04] ( 9, 37 ) long -> registers ptr "Inlining Arg"
-; V36 tmp31 [V36,T08] ( 8, 29 ) long -> r8 "Inlining Arg"
-; V37 tmp32 [V37,T38] ( 2, 2 ) long -> r8 "dup spill"
+; V35 tmp30 [V35,T00] ( 9, 37 ) long -> registers ptr "Inlining Arg"
+; V36 tmp31 [V36,T01] ( 8, 29 ) long -> r8 "Inlining Arg"
+; V37 tmp32 [V37,T13] ( 2, 2 ) long -> r8 "dup spill"
;* V38 tmp33 [V38 ] ( 0, 0 ) struct (16) zero-ref "dup spill" <System.ValueTuple`2[ulong,ulong]>
-; V39 tmp34 [V39,T10] ( 3, 12 ) long -> rdx "Inline stloc first use temp"
+; V39 tmp34 [V39,T02] ( 3, 12 ) long -> rdx "Inline stloc first use temp"
;* V40 tmp35 [V40 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[ulong,ulong]>
;* V41 tmp36 [V41 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V42 tmp37 [V42 ] ( 0, 0 ) long -> zero-ref
+;* V42 tmp37 [V42 ] ( 0, 0 ) long -> zero-ref ptr
;* V43 tmp38 [V43 ] ( 0, 0 ) long -> zero-ref ptr
-; V44 tmp39 [V44,T13] ( 2, 8 ) ref -> rcx
+;* V44 tmp39 [V44 ] ( 0, 0 ) struct (16) zero-ref <System.ReadOnlySpan`1[ubyte]>
;* V45 tmp40 [V45 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V46 tmp41 [V46 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V47 tmp42 [V47 ] ( 0, 0 ) long -> zero-ref
-;* V48 tmp43 [V48 ] ( 0, 0 ) long -> zero-ref ptr
-; V49 tmp44 [V49,T47] ( 2, 1 ) ref -> rdx single-def
-;* V50 tmp45 [V50 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V51 tmp46 [V51 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V52 tmp47 [V52 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-; V53 tmp48 [V53,T28] ( 5, 2.50) ubyte -> r13 "Inline return value spill temp"
-;* V54 tmp49 [V54 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V55 tmp50 [V55,T30] ( 4, 2 ) int -> rax "Inline stloc first use temp"
-;* V56 tmp51 [V56 ] ( 0, 0 ) int -> zero-ref ptr "Inline stloc first use temp"
-;* V57 tmp52 [V57 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
-; V58 tmp53 [V58 ] ( 3, 1.50) byref -> [rbp-0x68] must-init pinned ptr "Inline stloc first use temp"
-; V59 tmp54 [V59,T45] ( 3, 1.50) long -> r12 "Inline stloc first use temp"
-;* V60 tmp55 [V60 ] ( 0, 0 ) long -> zero-ref
-;* V61 tmp56 [V61 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-;* V62 tmp57 [V62 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
-; V63 tmp58 [V63,T46] ( 3, 1.50) int -> rax "Inline stloc first use temp"
-;* V64 tmp59 [V64 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[ulong]>
-;* V65 tmp60 [V65 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
-;* V66 tmp61 [V66 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inline stloc first use temp"
-;* V67 tmp62 [V67 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-;* V68 tmp63 [V68 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V69 tmp64 [V69 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V70 tmp65 [V70 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ulong]>
-; V71 tmp66 [V71,T31] ( 4, 2 ) int -> rdx "Inline return value spill temp"
-;* V72 tmp67 [V72 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
-;* V73 tmp68 [V73 ] ( 0, 0 ) long -> zero-ref "Inline return value spill temp"
-; V74 tmp69 [V74,T05] ( 9, 37 ) long -> registers ptr "Inlining Arg"
-; V75 tmp70 [V75,T09] ( 6, 27 ) long -> r8 "Inlining Arg"
-;* V76 tmp71 [V76 ] ( 0, 0 ) long -> zero-ref "dup spill"
-;* V77 tmp72 [V77 ] ( 0, 0 ) struct (16) zero-ref "dup spill" <System.ValueTuple`2[ulong,ulong]>
-; V78 tmp73 [V78,T11] ( 3, 12 ) long -> rdx "Inline stloc first use temp"
-;* V79 tmp74 [V79 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[ulong,ulong]>
-;* V80 tmp75 [V80 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V81 tmp76 [V81 ] ( 0, 0 ) long -> zero-ref
-;* V82 tmp77 [V82 ] ( 0, 0 ) long -> zero-ref ptr
-; V83 tmp78 [V83,T14] ( 2, 8 ) ref -> rcx
-;* V84 tmp79 [V84 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V85 tmp80 [V85 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V86 tmp81 [V86 ] ( 0, 0 ) long -> zero-ref
-; V87 tmp82 [V87,T51] ( 2, 1 ) long -> r8
-; V88 tmp83 [V88,T48] ( 2, 1 ) ref -> rdx single-def
-;* V89 tmp84 [V89 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V90 tmp85 [V90 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V91 tmp86 [V91 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-; V92 tmp87 [V92,T01] ( 9,106 ) long -> registers ptr "Inlining Arg"
-; V93 tmp88 [V93,T00] ( 7,121 ) long -> r12 "Inlining Arg"
-; V94 tmp89 [V94,T02] ( 6, 89 ) int -> r13 "Inlining Arg"
-;* V95 tmp90 [V95 ] ( 0, 0 ) struct (16) zero-ref "dup spill" <System.ValueTuple`2[ulong,ulong]>
-;* V96 tmp91 [V96 ] ( 0, 0 ) long -> zero-ref ptr "Inline stloc first use temp"
-;* V97 tmp92 [V97 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "dup spill" <System.ValueTuple`2[ulong,ulong]>
-; V98 tmp93 [V98,T03] ( 2, 64 ) long -> r12 "dup spill"
-; V99 tmp94 [V99,T12] ( 3, 12 ) long -> rdx "Inline stloc first use temp"
-;* V100 tmp95 [V100 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[ulong,ulong]>
-;* V101 tmp96 [V101 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V102 tmp97 [V102 ] ( 0, 0 ) long -> zero-ref
-;* V103 tmp98 [V103 ] ( 0, 0 ) long -> zero-ref ptr
-; V104 tmp99 [V104,T15] ( 2, 8 ) ref -> rsi
-;* V105 tmp100 [V105 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V106 tmp101 [V106 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V107 tmp102 [V107 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-; V108 tmp103 [V108,T39] ( 2, 2 ) ushort -> r13 "Inlining Arg"
-; V109 tmp104 [V109,T52] ( 2, 1 ) ubyte -> rdx "Inline return value spill temp"
-; V110 tmp105 [V110,T21] ( 3, 6 ) int -> rdx "Inlining Arg"
-; V111 tmp106 [V111 ] ( 4, 8 ) struct (16) [rbp-0x78] do-not-enreg[XSA] multireg-arg must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
-; V112 tmp107 [V112,T20] ( 10, 6 ) byref -> r14 single-def "field V02._reference (fldOffset=0x0)" P-INDEP
-;* V113 tmp108 [V113,T53] ( 0, 0 ) int -> zero-ref "field V02._length (fldOffset=0x8)" P-INDEP
-;* V114 tmp109 [V114 ] ( 0, 0 ) ubyte -> zero-ref "field V04._format (fldOffset=0x0)" P-INDEP
-;* V115 tmp110 [V115 ] ( 0, 0 ) ubyte -> zero-ref "field V04._precision (fldOffset=0x1)" P-INDEP
-; V116 tmp111 [V116,T32] ( 2, 2 ) byref -> r14 single-def "field V07._reference (fldOffset=0x0)" P-INDEP
-;* V117 tmp112 [V117,T54] ( 0, 0 ) int -> zero-ref "field V07._length (fldOffset=0x8)" P-INDEP
-;* V118 tmp113 [V118 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V08._reference (fldOffset=0x0)" P-INDEP
-;* V119 tmp114 [V119 ] ( 0, 0 ) int -> zero-ref "field V08._length (fldOffset=0x8)" P-INDEP
-;* V120 tmp115 [V120 ] ( 0, 0 ) byref -> zero-ref "field V09._reference (fldOffset=0x0)" P-INDEP
-;* V121 tmp116 [V121 ] ( 0, 0 ) int -> zero-ref "field V09._length (fldOffset=0x8)" P-INDEP
-; V122 tmp117 [V122,T33] ( 2, 2 ) byref -> rsi "field V10._reference (fldOffset=0x0)" P-INDEP
-; V123 tmp118 [V123,T40] ( 2, 2 ) int -> rdx "field V10._length (fldOffset=0x8)" P-INDEP
-; V124 tmp119 [V124 ] ( 4, 5 ) ubyte -> [rbp-0x58] do-not-enreg[X] addr-exposed "field V12._format (fldOffset=0x0)" P-DEP
-; V125 tmp120 [V125 ] ( 6, 6 ) ubyte -> [rbp-0x57] do-not-enreg[X] addr-exposed ptr "field V12._precision (fldOffset=0x1)" P-DEP
-; V126 tmp121 [V126,T49] ( 2, 1 ) byref -> rdx single-def "field V14._reference (fldOffset=0x0)" P-INDEP
-;* V127 tmp122 [V127,T55] ( 0, 0 ) int -> zero-ref "field V14._length (fldOffset=0x8)" P-INDEP
-; V128 tmp123 [V128,T50] ( 2, 1 ) byref -> rdx single-def "field V17._reference (fldOffset=0x0)" P-INDEP
-;* V129 tmp124 [V129,T56] ( 0, 0 ) int -> zero-ref "field V17._length (fldOffset=0x8)" P-INDEP
-;* V130 tmp125 [V130 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V21._reference (fldOffset=0x0)" P-INDEP
-;* V131 tmp126 [V131 ] ( 0, 0 ) int -> zero-ref "field V21._length (fldOffset=0x8)" P-INDEP
-;* V132 tmp127 [V132 ] ( 0, 0 ) byref -> zero-ref single-def "field V23._reference (fldOffset=0x0)" P-INDEP
-;* V133 tmp128 [V133 ] ( 0, 0 ) int -> zero-ref "field V23._length (fldOffset=0x8)" P-INDEP
-;* V134 tmp129 [V134 ] ( 0, 0 ) byref -> zero-ref single-def "field V26._reference (fldOffset=0x0)" P-INDEP
-;* V135 tmp130 [V135 ] ( 0, 0 ) int -> zero-ref "field V26._length (fldOffset=0x8)" P-INDEP
-;* V136 tmp131 [V136 ] ( 0, 0 ) byref -> zero-ref single-def "field V29._reference (fldOffset=0x0)" P-INDEP
-;* V137 tmp132 [V137 ] ( 0, 0 ) int -> zero-ref "field V29._length (fldOffset=0x8)" P-INDEP
-;* V138 tmp133 [V138 ] ( 0, 0 ) byref -> zero-ref single-def "field V32._reference (fldOffset=0x0)" P-INDEP
-;* V139 tmp134 [V139 ] ( 0, 0 ) int -> zero-ref "field V32._length (fldOffset=0x8)" P-INDEP
-;* V140 tmp135 [V140 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V33._reference (fldOffset=0x0)" P-INDEP
-;* V141 tmp136 [V141 ] ( 0, 0 ) int -> zero-ref "field V33._length (fldOffset=0x8)" P-INDEP
-;* V142 tmp137 [V142 ] ( 0, 0 ) long -> zero-ref ptr "field V38.Item1 (fldOffset=0x0)" P-INDEP
-;* V143 tmp138 [V143 ] ( 0, 0 ) long -> zero-ref ptr "field V38.Item2 (fldOffset=0x8)" P-INDEP
-;* V144 tmp139 [V144 ] ( 0, 0 ) long -> zero-ref ptr "field V40.Item1 (fldOffset=0x0)" P-INDEP
-; V145 tmp140 [V145,T16] ( 2, 8 ) long -> r9 "field V40.Item2 (fldOffset=0x8)" P-INDEP
-;* V146 tmp141 [V146 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V57._reference (fldOffset=0x0)" P-INDEP
-;* V147 tmp142 [V147 ] ( 0, 0 ) int -> zero-ref "field V57._length (fldOffset=0x8)" P-INDEP
-;* V148 tmp143 [V148 ] ( 0, 0 ) byref -> zero-ref single-def "field V61._reference (fldOffset=0x0)" P-INDEP
-;* V149 tmp144 [V149 ] ( 0, 0 ) int -> zero-ref "field V61._length (fldOffset=0x8)" P-INDEP
-;* V150 tmp145 [V150 ] ( 0, 0 ) byref -> zero-ref single-def "field V64._reference (fldOffset=0x0)" P-INDEP
-;* V151 tmp146 [V151 ] ( 0, 0 ) int -> zero-ref "field V64._length (fldOffset=0x8)" P-INDEP
-;* V152 tmp147 [V152 ] ( 0, 0 ) byref -> zero-ref single-def "field V67._reference (fldOffset=0x0)" P-INDEP
-;* V153 tmp148 [V153 ] ( 0, 0 ) int -> zero-ref "field V67._length (fldOffset=0x8)" P-INDEP
-;* V154 tmp149 [V154 ] ( 0, 0 ) byref -> zero-ref single-def "field V70._reference (fldOffset=0x0)" P-INDEP
-;* V155 tmp150 [V155 ] ( 0, 0 ) int -> zero-ref "field V70._length (fldOffset=0x8)" P-INDEP
-;* V156 tmp151 [V156 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V72._reference (fldOffset=0x0)" P-INDEP
-;* V157 tmp152 [V157 ] ( 0, 0 ) int -> zero-ref "field V72._length (fldOffset=0x8)" P-INDEP
-;* V158 tmp153 [V158 ] ( 0, 0 ) long -> zero-ref ptr "field V77.Item1 (fldOffset=0x0)" P-INDEP
-;* V159 tmp154 [V159 ] ( 0, 0 ) long -> zero-ref ptr "field V77.Item2 (fldOffset=0x8)" P-INDEP
-;* V160 tmp155 [V160 ] ( 0, 0 ) long -> zero-ref ptr "field V79.Item1 (fldOffset=0x0)" P-INDEP
-; V161 tmp156 [V161,T17] ( 2, 8 ) long -> r9 "field V79.Item2 (fldOffset=0x8)" P-INDEP
-;* V162 tmp157 [V162 ] ( 0, 0 ) long -> zero-ref ptr "field V95.Item1 (fldOffset=0x0)" P-INDEP
-;* V163 tmp158 [V163 ] ( 0, 0 ) long -> zero-ref ptr "field V95.Item2 (fldOffset=0x8)" P-INDEP
-; V164 tmp159 [V164,T06] ( 2, 32 ) long -> rax "field V97.Item1 (fldOffset=0x0)" P-INDEP
-; V165 tmp160 [V165,T07] ( 2, 32 ) long -> rdx "field V97.Item2 (fldOffset=0x8)" P-INDEP
-;* V166 tmp161 [V166 ] ( 0, 0 ) long -> zero-ref ptr "field V100.Item1 (fldOffset=0x0)" P-INDEP
-; V167 tmp162 [V167,T18] ( 2, 8 ) long -> rdi "field V100.Item2 (fldOffset=0x8)" P-INDEP
-; V168 tmp163 [V168 ] ( 3, 5 ) byref -> [rbp-0x78] do-not-enreg[X] addr-exposed "field V111._reference (fldOffset=0x0)" P-DEP
-; V169 tmp164 [V169 ] ( 3, 5 ) int -> [rbp-0x70] do-not-enreg[X] addr-exposed "field V111._length (fldOffset=0x8)" P-DEP
-; V170 tmp165 [V170,T41] ( 2, 2 ) struct ( 8) [rbp-0x80] do-not-enreg[S] "by-value struct argument" <System.Buffers.StandardFormat>
-; V171 tmp166 [V171,T42] ( 2, 2 ) long -> r12 "Cast away GC"
-; V172 tmp167 [V172,T43] ( 2, 2 ) long -> r8 "Cast away GC"
-; V173 GsCookie [V173 ] ( 1, 1 ) long -> [rbp-0x30] do-not-enreg[X] addr-exposed "GSSecurityCookie"
-; V174 tmp169 [V174,T34] ( 2, 2 ) ref -> r15 single-def "shadowVar"
-; V175 tmp170 [V175,T19] ( 14, 7.50) long -> rbx "shadowVar"
-; V176 cse0 [V176,T24] ( 6, 4 ) int -> rdx "CSE #01: conservative"
-; V177 cse1 [V177,T27] ( 4, 3 ) int -> r13 "CSE #04: conservative"
-; V178 cse2 [V178,T26] ( 6, 3 ) int -> r13 multi-def "CSE #05: conservative"
+;* V46 tmp41 [V46 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
+;* V47 tmp42 [V47 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
+;* V48 tmp43 [V48 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V49 tmp44 [V49 ] ( 0, 0 ) long -> zero-ref ptr
+;* V50 tmp45 [V50 ] ( 0, 0 ) long -> zero-ref ptr
+;* V51 tmp46 [V51 ] ( 0, 0 ) struct (16) zero-ref <System.ReadOnlySpan`1[ubyte]>
+;* V52 tmp47 [V52 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V53 tmp48 [V53 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
+;* V54 tmp49 [V54 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
+;* V55 tmp50 [V55 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V56 tmp51 [V56 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V57 tmp52 [V57 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V58 tmp53 [V58 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V59 tmp54 [V59 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V60 tmp55 [V60 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V61 tmp56 [V61 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
+;* V62 tmp57 [V62 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
+;* V63 tmp58 [V63 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
+;* V64 tmp59 [V64 ] ( 0, 0 ) long -> zero-ref
+;* V65 tmp60 [V65 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
+;* V66 tmp61 [V66 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V67 tmp62 [V67 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V68 tmp63 [V68 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[ulong]>
+;* V69 tmp64 [V69 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
+;* V70 tmp65 [V70 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inline stloc first use temp"
+;* V71 tmp66 [V71 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
+;* V72 tmp67 [V72 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V73 tmp68 [V73 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V74 tmp69 [V74 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ulong]>
+;* V75 tmp70 [V75 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V76 tmp71 [V76 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
+;* V77 tmp72 [V77 ] ( 0, 0 ) long -> zero-ref "Inline return value spill temp"
+;* V78 tmp73 [V78 ] ( 0, 0 ) long -> zero-ref ptr "Inlining Arg"
+;* V79 tmp74 [V79 ] ( 0, 0 ) long -> zero-ref ptr "Inlining Arg"
+;* V80 tmp75 [V80 ] ( 0, 0 ) long -> zero-ref "dup spill"
+;* V81 tmp76 [V81 ] ( 0, 0 ) struct (16) zero-ref "dup spill" <System.ValueTuple`2[ulong,ulong]>
+;* V82 tmp77 [V82 ] ( 0, 0 ) long -> zero-ref ptr "Inline stloc first use temp"
+;* V83 tmp78 [V83 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[ulong,ulong]>
+;* V84 tmp79 [V84 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V85 tmp80 [V85 ] ( 0, 0 ) long -> zero-ref ptr
+;* V86 tmp81 [V86 ] ( 0, 0 ) long -> zero-ref ptr
+;* V87 tmp82 [V87 ] ( 0, 0 ) struct (16) zero-ref <System.ReadOnlySpan`1[ubyte]>
+;* V88 tmp83 [V88 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V89 tmp84 [V89 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
+;* V90 tmp85 [V90 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
+;* V91 tmp86 [V91 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V92 tmp87 [V92 ] ( 0, 0 ) long -> zero-ref ptr
+;* V93 tmp88 [V93 ] ( 0, 0 ) long -> zero-ref ptr
+;* V94 tmp89 [V94 ] ( 0, 0 ) struct (16) zero-ref <System.ReadOnlySpan`1[ubyte]>
+;* V95 tmp90 [V95 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V96 tmp91 [V96 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
+;* V97 tmp92 [V97 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
+;* V98 tmp93 [V98 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V99 tmp94 [V99 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V100 tmp95 [V100 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V101 tmp96 [V101 ] ( 0, 0 ) long -> zero-ref ptr "Inlining Arg"
+;* V102 tmp97 [V102 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V103 tmp98 [V103 ] ( 0, 0 ) struct (16) zero-ref "dup spill" <System.ValueTuple`2[ulong,ulong]>
+;* V104 tmp99 [V104 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
+;* V105 tmp100 [V105 ] ( 0, 0 ) struct (16) zero-ref "dup spill" <System.ValueTuple`2[ulong,ulong]>
+;* V106 tmp101 [V106 ] ( 0, 0 ) long -> zero-ref ptr "dup spill"
+;* V107 tmp102 [V107 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
+;* V108 tmp103 [V108 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[ulong,ulong]>
+;* V109 tmp104 [V109 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V110 tmp105 [V110 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
+;* V111 tmp106 [V111 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[ulong,ulong]>
+;* V112 tmp107 [V112 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V113 tmp108 [V113 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V114 tmp109 [V114 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
+;* V115 tmp110 [V115 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V116 tmp111 [V116,T04] ( 3, 6 ) int -> rdx "Inlining Arg"
+;* V117 tmp112 [V117 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
+;* V118 tmp113 [V118 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V119 tmp114 [V119 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
+;* V120 tmp115 [V120 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
+;* V121 tmp116 [V121 ] ( 0, 0 ) byref -> zero-ref single-def ptr "Inlining Arg"
+;* V122 tmp117 [V122 ] ( 0, 0 ) int -> zero-ref ptr "Inlining Arg"
+; V123 tmp118 [V123,T08] ( 5, 3.50) byref -> r15 single-def "field V02._reference (fldOffset=0x0)" P-INDEP
+;* V124 tmp119 [V124,T18] ( 0, 0 ) int -> zero-ref "field V02._length (fldOffset=0x8)" P-INDEP
+;* V125 tmp120 [V125 ] ( 0, 0 ) ubyte -> zero-ref "field V04._format (fldOffset=0x0)" P-INDEP
+;* V126 tmp121 [V126 ] ( 0, 0 ) ubyte -> zero-ref "field V04._precision (fldOffset=0x1)" P-INDEP
+; V127 tmp122 [V127,T10] ( 2, 2 ) byref -> r15 single-def "field V07._reference (fldOffset=0x0)" P-INDEP
+;* V128 tmp123 [V128,T19] ( 0, 0 ) int -> zero-ref "field V07._length (fldOffset=0x8)" P-INDEP
+;* V129 tmp124 [V129 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V08._reference (fldOffset=0x0)" P-INDEP
+;* V130 tmp125 [V130 ] ( 0, 0 ) int -> zero-ref "field V08._length (fldOffset=0x8)" P-INDEP
+;* V131 tmp126 [V131 ] ( 0, 0 ) byref -> zero-ref "field V09._reference (fldOffset=0x0)" P-INDEP
+;* V132 tmp127 [V132 ] ( 0, 0 ) int -> zero-ref "field V09._length (fldOffset=0x8)" P-INDEP
+;* V133 tmp128 [V133 ] ( 0, 0 ) byref -> zero-ref "field V10._reference (fldOffset=0x0)" P-INDEP
+;* V134 tmp129 [V134 ] ( 0, 0 ) int -> zero-ref "field V10._length (fldOffset=0x8)" P-INDEP
+;* V135 tmp130 [V135 ] ( 0, 0 ) ubyte -> zero-ref "field V12._format (fldOffset=0x0)" P-INDEP
+;* V136 tmp131 [V136 ] ( 0, 0 ) ubyte -> zero-ref "field V12._precision (fldOffset=0x1)" P-INDEP
+;* V137 tmp132 [V137 ] ( 0, 0 ) byref -> zero-ref "field V14._reference (fldOffset=0x0)" P-INDEP
+;* V138 tmp133 [V138 ] ( 0, 0 ) int -> zero-ref "field V14._length (fldOffset=0x8)" P-INDEP
+; V139 tmp134 [V139,T17] ( 2, 1 ) byref -> rdx single-def "field V17._reference (fldOffset=0x0)" P-INDEP
+;* V140 tmp135 [V140,T20] ( 0, 0 ) int -> zero-ref "field V17._length (fldOffset=0x8)" P-INDEP
+;* V141 tmp136 [V141 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V21._reference (fldOffset=0x0)" P-INDEP
+;* V142 tmp137 [V142 ] ( 0, 0 ) int -> zero-ref "field V21._length (fldOffset=0x8)" P-INDEP
+;* V143 tmp138 [V143 ] ( 0, 0 ) byref -> zero-ref single-def "field V23._reference (fldOffset=0x0)" P-INDEP
+;* V144 tmp139 [V144 ] ( 0, 0 ) int -> zero-ref "field V23._length (fldOffset=0x8)" P-INDEP
+;* V145 tmp140 [V145 ] ( 0, 0 ) byref -> zero-ref single-def "field V26._reference (fldOffset=0x0)" P-INDEP
+;* V146 tmp141 [V146 ] ( 0, 0 ) int -> zero-ref "field V26._length (fldOffset=0x8)" P-INDEP
+;* V147 tmp142 [V147 ] ( 0, 0 ) byref -> zero-ref single-def "field V29._reference (fldOffset=0x0)" P-INDEP
+;* V148 tmp143 [V148 ] ( 0, 0 ) int -> zero-ref "field V29._length (fldOffset=0x8)" P-INDEP
+;* V149 tmp144 [V149 ] ( 0, 0 ) byref -> zero-ref single-def "field V32._reference (fldOffset=0x0)" P-INDEP
+;* V150 tmp145 [V150 ] ( 0, 0 ) int -> zero-ref "field V32._length (fldOffset=0x8)" P-INDEP
+;* V151 tmp146 [V151 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V33._reference (fldOffset=0x0)" P-INDEP
+;* V152 tmp147 [V152 ] ( 0, 0 ) int -> zero-ref "field V33._length (fldOffset=0x8)" P-INDEP
+;* V153 tmp148 [V153 ] ( 0, 0 ) long -> zero-ref ptr "field V38.Item1 (fldOffset=0x0)" P-INDEP
+;* V154 tmp149 [V154 ] ( 0, 0 ) long -> zero-ref ptr "field V38.Item2 (fldOffset=0x8)" P-INDEP
+;* V155 tmp150 [V155 ] ( 0, 0 ) long -> zero-ref ptr "field V40.Item1 (fldOffset=0x0)" P-INDEP
+; V156 tmp151 [V156,T03] ( 2, 8 ) long -> rsi "field V40.Item2 (fldOffset=0x8)" P-INDEP
+;* V157 tmp152 [V157 ] ( 0, 0 ) byref -> zero-ref "field V44._reference (fldOffset=0x0)" P-INDEP
+;* V158 tmp153 [V158 ] ( 0, 0 ) int -> zero-ref "field V44._length (fldOffset=0x8)" P-INDEP
+;* V159 tmp154 [V159 ] ( 0, 0 ) byref -> zero-ref "field V46._reference (fldOffset=0x0)" P-INDEP
+;* V160 tmp155 [V160 ] ( 0, 0 ) int -> zero-ref "field V46._length (fldOffset=0x8)" P-INDEP
+;* V161 tmp156 [V161 ] ( 0, 0 ) byref -> zero-ref "field V47._reference (fldOffset=0x0)" P-INDEP
+;* V162 tmp157 [V162 ] ( 0, 0 ) int -> zero-ref "field V47._length (fldOffset=0x8)" P-INDEP
+;* V163 tmp158 [V163 ] ( 0, 0 ) byref -> zero-ref "field V51._reference (fldOffset=0x0)" P-INDEP
+;* V164 tmp159 [V164 ] ( 0, 0 ) int -> zero-ref "field V51._length (fldOffset=0x8)" P-INDEP
+;* V165 tmp160 [V165 ] ( 0, 0 ) byref -> zero-ref single-def "field V53._reference (fldOffset=0x0)" P-INDEP
+;* V166 tmp161 [V166 ] ( 0, 0 ) int -> zero-ref "field V53._length (fldOffset=0x8)" P-INDEP
+;* V167 tmp162 [V167 ] ( 0, 0 ) byref -> zero-ref single-def "field V54._reference (fldOffset=0x0)" P-INDEP
+;* V168 tmp163 [V168 ] ( 0, 0 ) int -> zero-ref "field V54._length (fldOffset=0x8)" P-INDEP
+;* V169 tmp164 [V169 ] ( 0, 0 ) byref -> zero-ref "field V61._reference (fldOffset=0x0)" P-INDEP
+;* V170 tmp165 [V170 ] ( 0, 0 ) int -> zero-ref "field V61._length (fldOffset=0x8)" P-INDEP
+;* V171 tmp166 [V171 ] ( 0, 0 ) byref -> zero-ref "field V65._reference (fldOffset=0x0)" P-INDEP
+;* V172 tmp167 [V172 ] ( 0, 0 ) int -> zero-ref "field V65._length (fldOffset=0x8)" P-INDEP
+;* V173 tmp168 [V173 ] ( 0, 0 ) byref -> zero-ref "field V68._reference (fldOffset=0x0)" P-INDEP
+;* V174 tmp169 [V174 ] ( 0, 0 ) int -> zero-ref "field V68._length (fldOffset=0x8)" P-INDEP
+;* V175 tmp170 [V175 ] ( 0, 0 ) byref -> zero-ref "field V71._reference (fldOffset=0x0)" P-INDEP
+;* V176 tmp171 [V176 ] ( 0, 0 ) int -> zero-ref "field V71._length (fldOffset=0x8)" P-INDEP
+;* V177 tmp172 [V177 ] ( 0, 0 ) byref -> zero-ref "field V74._reference (fldOffset=0x0)" P-INDEP
+;* V178 tmp173 [V178 ] ( 0, 0 ) int -> zero-ref "field V74._length (fldOffset=0x8)" P-INDEP
+;* V179 tmp174 [V179 ] ( 0, 0 ) byref -> zero-ref "field V76._reference (fldOffset=0x0)" P-INDEP
+;* V180 tmp175 [V180 ] ( 0, 0 ) int -> zero-ref "field V76._length (fldOffset=0x8)" P-INDEP
+;* V181 tmp176 [V181 ] ( 0, 0 ) long -> zero-ref ptr "field V81.Item1 (fldOffset=0x0)" P-INDEP
+;* V182 tmp177 [V182 ] ( 0, 0 ) long -> zero-ref ptr "field V81.Item2 (fldOffset=0x8)" P-INDEP
+;* V183 tmp178 [V183 ] ( 0, 0 ) long -> zero-ref ptr "field V83.Item1 (fldOffset=0x0)" P-INDEP
+;* V184 tmp179 [V184 ] ( 0, 0 ) long -> zero-ref ptr "field V83.Item2 (fldOffset=0x8)" P-INDEP
+;* V185 tmp180 [V185 ] ( 0, 0 ) byref -> zero-ref "field V87._reference (fldOffset=0x0)" P-INDEP
+;* V186 tmp181 [V186 ] ( 0, 0 ) int -> zero-ref "field V87._length (fldOffset=0x8)" P-INDEP
+;* V187 tmp182 [V187 ] ( 0, 0 ) byref -> zero-ref "field V89._reference (fldOffset=0x0)" P-INDEP
+;* V188 tmp183 [V188 ] ( 0, 0 ) int -> zero-ref "field V89._length (fldOffset=0x8)" P-INDEP
+;* V189 tmp184 [V189 ] ( 0, 0 ) byref -> zero-ref "field V90._reference (fldOffset=0x0)" P-INDEP
+;* V190 tmp185 [V190 ] ( 0, 0 ) int -> zero-ref "field V90._length (fldOffset=0x8)" P-INDEP
+;* V191 tmp186 [V191 ] ( 0, 0 ) byref -> zero-ref "field V94._reference (fldOffset=0x0)" P-INDEP
+;* V192 tmp187 [V192 ] ( 0, 0 ) int -> zero-ref "field V94._length (fldOffset=0x8)" P-INDEP
+;* V193 tmp188 [V193 ] ( 0, 0 ) byref -> zero-ref "field V96._reference (fldOffset=0x0)" P-INDEP
+;* V194 tmp189 [V194 ] ( 0, 0 ) int -> zero-ref "field V96._length (fldOffset=0x8)" P-INDEP
+;* V195 tmp190 [V195 ] ( 0, 0 ) byref -> zero-ref "field V97._reference (fldOffset=0x0)" P-INDEP
+;* V196 tmp191 [V196 ] ( 0, 0 ) int -> zero-ref "field V97._length (fldOffset=0x8)" P-INDEP
+;* V197 tmp192 [V197 ] ( 0, 0 ) long -> zero-ref "field V103.Item1 (fldOffset=0x0)" P-INDEP
+;* V198 tmp193 [V198 ] ( 0, 0 ) long -> zero-ref "field V103.Item2 (fldOffset=0x8)" P-INDEP
+;* V199 tmp194 [V199 ] ( 0, 0 ) long -> zero-ref "field V105.Item1 (fldOffset=0x0)" P-INDEP
+;* V200 tmp195 [V200 ] ( 0, 0 ) long -> zero-ref "field V105.Item2 (fldOffset=0x8)" P-INDEP
+;* V201 tmp196 [V201 ] ( 0, 0 ) long -> zero-ref "field V108.Item1 (fldOffset=0x0)" P-INDEP
+;* V202 tmp197 [V202 ] ( 0, 0 ) long -> zero-ref "field V108.Item2 (fldOffset=0x8)" P-INDEP
+;* V203 tmp198 [V203 ] ( 0, 0 ) long -> zero-ref "field V111.Item1 (fldOffset=0x0)" P-INDEP
+;* V204 tmp199 [V204 ] ( 0, 0 ) long -> zero-ref "field V111.Item2 (fldOffset=0x8)" P-INDEP
+;* V205 tmp200 [V205 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V117._reference (fldOffset=0x0)" P-INDEP
+;* V206 tmp201 [V206 ] ( 0, 0 ) int -> zero-ref ptr "field V117._length (fldOffset=0x8)" P-INDEP
+;* V207 tmp202 [V207 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V119._reference (fldOffset=0x0)" P-INDEP
+;* V208 tmp203 [V208 ] ( 0, 0 ) int -> zero-ref ptr "field V119._length (fldOffset=0x8)" P-INDEP
+; V209 tmp204 [V209,T11] ( 2, 2 ) byref -> rsi single-def "field V120._reference (fldOffset=0x0)" P-INDEP
+; V210 tmp205 [V210,T14] ( 2, 2 ) int -> rdx "field V120._length (fldOffset=0x8)" P-INDEP
+; V211 tmp206 [V211,T15] ( 2, 2 ) long -> r8 "Cast away GC"
+; V212 GsCookie [V212 ] ( 1, 1 ) long -> [rbp-0x18] do-not-enreg[X] addr-exposed "GSSecurityCookie"
+; V213 tmp208 [V213,T12] ( 2, 2 ) ref -> rbx single-def "shadowVar"
+; V214 tmp209 [V214,T07] ( 6, 4 ) long -> rsi "shadowVar"
;
-; Lcl frame size = 104
+; Lcl frame size = 64
G_M40771_IG01:
push rbp
push r15
- push r14
- push r13
- push r12
push rbx
- sub rsp, 104
- lea rbp, [rsp+0x90]
+ sub rsp, 64
+ lea rbp, [rsp+0x50]
xor eax, eax
- mov qword ptr [rbp-0x78], rax
- vxorps xmm8, xmm8, xmm8
- vmovdqa xmmword ptr [rbp-0x70], xmm8
- mov qword ptr [rbp-0x60], rax
- mov qword ptr [rbp-0x30], 0xD1FFAB1E
- ;; size=50 bbWeight=1 PerfScore 12.33
+ mov qword ptr [rbp-0x40], rax
+ mov qword ptr [rbp-0x18], 0xD1FFAB1E
+ ;; size=27 bbWeight=1 PerfScore 6.00
G_M40771_IG02:
- mov rbx, rsi
- mov r15, rdi
- lea r14, [rbp-0x48]
- mov word ptr [rbp-0x58], 0
- movzx r13, byte ptr [rbp-0x58]
- movzx rdx, byte ptr [rbp-0x57]
- mov r8d, r13d
- or r8d, edx
- je G_M40771_IG23
- ;; size=37 bbWeight=1 PerfScore 5.50
+ mov rbx, rdi
+ lea r15, [rbp-0x30]
+ test rsi, rsi
+ jl G_M40771_IG12
+ ;; size=16 bbWeight=1 PerfScore 2.00
G_M40771_IG03:
- mov r12d, r13d
- or r12d, 32
- cmp r12d, 103
- jle SHORT G_M40771_IG05
- cmp r12d, 110
- jne SHORT G_M40771_IG04
- movzx r8, word ptr [rbp-0x58]
- mov word ptr [rbp-0x80], r8w
- movzx r8, word ptr [rbp-0x80]
- mov rsi, r14
- mov edx, 20
- lea rcx, [rbp-0x50]
- mov rdi, rbx
- mov rax, 0xD1FFAB1E ; code for System.Buffers.Text.FormattingHelpers:TryFormat[long](long,System.Span`1[ubyte],byref,System.Buffers.StandardFormat):ubyte
- call [rax]System.Buffers.Text.FormattingHelpers:TryFormat[long](long,System.Span`1[ubyte],byref,System.Buffers.StandardFormat):ubyte
- jmp G_M40771_IG33
- ;; size=66 bbWeight=0.50 PerfScore 6.25
-G_M40771_IG04:
- cmp r12d, 114
- je SHORT G_M40771_IG06
- cmp r12d, 120
- jne G_M40771_IG38
- add r13d, -33
- movzx rsi, r13w
- xor ecx, ecx
- cmp edx, 255
- cmove edx, ecx
- mov rcx, r14
- mov r8d, 20
- lea r9, [rbp-0x50]
- mov rdi, rbx
- mov rax, 0xD1FFAB1E ; code for System.Number:TryInt64ToHexStr[ubyte](long,ushort,int,System.Span`1[ubyte],byref):ubyte
- call [rax]System.Number:TryInt64ToHexStr[ubyte](long,ushort,int,System.Span`1[ubyte],byref):ubyte
- jmp G_M40771_IG33
- ;; size=68 bbWeight=0.50 PerfScore 5.12
-G_M40771_IG05:
- cmp r12d, 100
- je SHORT G_M40771_IG07
- cmp r12d, 103
- jne G_M40771_IG38
- ;; size=16 bbWeight=0.50 PerfScore 1.25
-G_M40771_IG06:
- lea rdi, [rbp-0x58]
- mov rax, 0xD1FFAB1E ; code for System.Buffers.StandardFormat:get_HasPrecision():ubyte:this
- call [rax]System.Buffers.StandardFormat:get_HasPrecision():ubyte:this
- test eax, eax
- jne G_M40771_IG37
- ;; size=24 bbWeight=0.50 PerfScore 2.50
-G_M40771_IG07:
- test rbx, rbx
- jl G_M40771_IG22
- movzx r13, byte ptr [rbp-0x57]
- xor eax, eax
- cmp r13d, 255
- cmove r13d, eax
- mov rax, rbx
- or rax, 1
- lzcnt rax, rax
- xor eax, 63
- cdqe
- mov rdx, 0xD1FFAB1E ; static handle
- movzx rax, byte ptr [rax+rdx]
- mov edx, eax
- mov rdi, 0xD1FFAB1E ; static handle
- cmp rbx, qword ptr [rdi+8*rdx]
- setb dl
- movzx rdx, dl
- sub eax, edx
- cmp r13d, eax
- mov edx, eax
- cmovge edx, r13d
- cmp edx, 20
- jle SHORT G_M40771_IG08
- xor edx, edx
- mov dword ptr [rbp-0x50], edx
- jmp SHORT G_M40771_IG13
- ;; size=103 bbWeight=0.50 PerfScore 9.25
-G_M40771_IG08:
- mov dword ptr [rbp-0x50], edx
- mov bword ptr [rbp-0x68], r14
- mov r12, r14
- movsxd rdx, edx
- add r12, rdx
- cmp r13d, eax
- jle G_M40771_IG16
- mov rdi, rbx
- cmp rdi, 100
- jae SHORT G_M40771_IG15
- ;; size=34 bbWeight=0.50 PerfScore 2.75
-G_M40771_IG09:
- mov rax, rdi
- jmp SHORT G_M40771_IG11
- align [0 bytes for IG17]
- ;; size=5 bbWeight=0.25 PerfScore 0.56
-G_M40771_IG10:
- dec r13d
- mov rdi, rax
- mov esi, 10
- mov rax, 0xD1FFAB1E ; code for System.Math:DivRem(ulong,ulong):System.ValueTuple`2[ulong,ulong]
- call [rax]System.Math:DivRem(ulong,ulong):System.ValueTuple`2[ulong,ulong]
- mov rdi, rax
- dec r12
- add edx, 48
- mov byte ptr [r12], dl
- mov rax, rdi
- ;; size=39 bbWeight=16 PerfScore 96.00
-G_M40771_IG11:
- test rax, rax
- jne SHORT G_M40771_IG10
- test r13d, r13d
- jg SHORT G_M40771_IG10
- ;; size=10 bbWeight=4 PerfScore 10.00
-G_M40771_IG12:
- xor r8d, r8d
- mov bword ptr [rbp-0x68], r8
- ;; size=7 bbWeight=0.50 PerfScore 0.62
-G_M40771_IG13:
- xor r8, r8
- mov bword ptr [rbp-0x68], r8
- jmp G_M40771_IG33
- ;; size=12 bbWeight=0.50 PerfScore 1.62
-G_M40771_IG14:
- mov rdi, rax
- ;; size=3 bbWeight=2 PerfScore 0.50
-G_M40771_IG15:
- add r12, -2
- add r13d, -2
- mov rdx, 0xD1FFAB1E
- mov rax, rdi
- shr rax, 2
- mul rdx:rax, rdx
- shr rdx, 2
- imul rsi, rdx, 100
- sub rdi, rsi
- mov rax, rdx
- mov rsi, 0xD1FFAB1E ; const ptr
- mov rsi, gword ptr [rsi]
- add edi, edi
- mov di, word ptr [rsi+rdi+0x10]
- mov word ptr [r12], di
- cmp rax, 100
- jae SHORT G_M40771_IG14
- jmp SHORT G_M40771_IG11
- ;; size=75 bbWeight=4 PerfScore 65.00
-G_M40771_IG16:
- mov r8, r12
- mov r9, rbx
- cmp r9, 10
- jb SHORT G_M40771_IG20
- jmp SHORT G_M40771_IG18
- ;; size=14 bbWeight=0.50 PerfScore 1.88
-G_M40771_IG17:
- add r8, -2
- mov rdx, 0xD1FFAB1E
- mov rax, r9
- shr rax, 2
- mul rdx:rax, rdx
- shr rdx, 2
- imul rcx, rdx, 100
- sub r9, rcx
- mov rcx, 0xD1FFAB1E ; const ptr
- mov rcx, gword ptr [rcx]
- add r9d, r9d
- mov r9w, word ptr [rcx+r9+0x10]
- mov word ptr [r8], r9w
- mov r9, rdx
- ;; size=64 bbWeight=4 PerfScore 51.00
-G_M40771_IG18:
- cmp r9, 100
- jae SHORT G_M40771_IG17
- ;; size=6 bbWeight=4 PerfScore 5.00
-G_M40771_IG19:
- cmp r9, 10
- jae SHORT G_M40771_IG21
- ;; size=6 bbWeight=0.50 PerfScore 0.62
-G_M40771_IG20:
- add r9d, 48
- mov byte ptr [r8-0x01], r9b
- jmp G_M40771_IG12
- align [0 bytes for IG25]
- ;; size=13 bbWeight=0.50 PerfScore 1.62
-G_M40771_IG21:
- add r8, -2
- mov rdx, 0xD1FFAB1E ; const ptr
- mov rdx, gword ptr [rdx]
- add r9d, r9d
- mov r9w, word ptr [rdx+r9+0x10]
- mov word ptr [r8], r9w
- jmp G_M40771_IG12
- ;; size=35 bbWeight=0.50 PerfScore 3.88
-G_M40771_IG22:
- movzx r13, byte ptr [rbp-0x57]
- xor r8d, r8d
- cmp r13d, 255
- mov esi, r8d
- cmovne esi, r13d
- mov rdx, 0xD1FFAB1E ; static handle
- lea r8, [rbp-0x50]
- mov qword ptr [rsp], r8
- mov r8, r14
- mov r9d, 20
- mov ecx, 1
- mov rdi, rbx
- mov rax, 0xD1FFAB1E ; code for System.Number:TryNegativeInt64ToDecStr[ubyte](long,int,System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref):ubyte
- call [rax]System.Number:TryNegativeInt64ToDecStr[ubyte](long,int,System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref):ubyte
- jmp G_M40771_IG33
- ;; size=74 bbWeight=0.50 PerfScore 5.00
-G_M40771_IG23:
- test rbx, rbx
- jl G_M40771_IG32
- mov rax, rbx
+ mov rax, rsi
or rax, 1
lzcnt rax, rax
xor eax, 63
cdqe
mov rdx, 0xD1FFAB1E ; static handle
movzx rax, byte ptr [rax+rdx]
mov edx, eax
mov r8, 0xD1FFAB1E ; static handle
- cmp rbx, qword ptr [r8+8*rdx]
+ cmp rsi, qword ptr [r8+8*rdx]
setb dl
movzx rdx, dl
sub eax, edx
cmp eax, 20
- jle SHORT G_M40771_IG24
+ jle SHORT G_M40771_IG04
xor eax, eax
- mov dword ptr [rbp-0x50], eax
- jmp G_M40771_IG31
- ;; size=79 bbWeight=0.50 PerfScore 8.00
-G_M40771_IG24:
- mov dword ptr [rbp-0x50], eax
- mov bword ptr [rbp-0x60], r14
- mov r8, r14
+ mov dword ptr [rbp-0x38], eax
+ jmp G_M40771_IG11
+ align [0 bytes for IG05]
+ ;; size=70 bbWeight=0.50 PerfScore 7.38
+G_M40771_IG04:
+ mov dword ptr [rbp-0x38], eax
+ mov bword ptr [rbp-0x40], r15
+ mov r8, r15
movsxd r9, eax
add r8, r9
- mov r9, rbx
- cmp r9, 10
- jb SHORT G_M40771_IG28
- jmp SHORT G_M40771_IG26
- ;; size=27 bbWeight=0.50 PerfScore 3.12
-G_M40771_IG25:
+ cmp rsi, 10
+ jb SHORT G_M40771_IG08
+ jmp SHORT G_M40771_IG06
+ ;; size=24 bbWeight=0.50 PerfScore 3.00
+G_M40771_IG05:
add r8, -2
mov rdx, 0xD1FFAB1E
- mov rax, r9
+ mov rax, rsi
shr rax, 2
mul rdx:rax, rdx
shr rdx, 2
- imul rcx, rdx, 100
- sub r9, rcx
- mov rcx, 0xD1FFAB1E ; const ptr
- mov rcx, gword ptr [rcx]
- add r9d, r9d
- mov r9w, word ptr [rcx+r9+0x10]
- mov word ptr [r8], r9w
+ imul r9, rdx, 100
+ sub rsi, r9
mov r9, rdx
- ;; size=64 bbWeight=4 PerfScore 51.00
-G_M40771_IG26:
- cmp r9, 100
- jae SHORT G_M40771_IG25
+ add esi, esi
+ mov edx, esi
+ mov rcx, 0xD1FFAB1E ; static handle
+ mov dx, word ptr [rdx+rcx]
+ mov word ptr [r8], dx
+ mov rsi, r9
+ ;; size=63 bbWeight=4 PerfScore 45.00
+G_M40771_IG06:
+ cmp rsi, 100
+ jae SHORT G_M40771_IG05
;; size=6 bbWeight=4 PerfScore 5.00
-G_M40771_IG27:
- cmp r9, 10
- jae SHORT G_M40771_IG29
+G_M40771_IG07:
+ cmp rsi, 10
+ jae SHORT G_M40771_IG09
;; size=6 bbWeight=0.50 PerfScore 0.62
-G_M40771_IG28:
+G_M40771_IG08:
dec r8
- add r9d, 48
- mov byte ptr [r8], r9b
- jmp SHORT G_M40771_IG30
- ;; size=12 bbWeight=0.50 PerfScore 1.75
-G_M40771_IG29:
+ add esi, 48
+ mov byte ptr [r8], sil
+ jmp SHORT G_M40771_IG10
+ ;; size=11 bbWeight=0.50 PerfScore 1.75
+G_M40771_IG09:
add r8, -2
- mov rdx, 0xD1FFAB1E ; const ptr
- mov rdx, gword ptr [rdx]
- add r9d, r9d
- mov r9w, word ptr [rdx+r9+0x10]
- mov word ptr [r8], r9w
- ;; size=30 bbWeight=0.50 PerfScore 2.88
-G_M40771_IG30:
- xor r8d, r8d
- mov bword ptr [rbp-0x60], r8
- ;; size=7 bbWeight=0.50 PerfScore 0.62
-G_M40771_IG31:
- xor r8, r8
- mov bword ptr [rbp-0x60], r8
- jmp SHORT G_M40771_IG33
- ;; size=9 bbWeight=0.50 PerfScore 1.62
-G_M40771_IG32:
- xor r8d, r8d
- cmp edx, 255
- mov esi, r8d
- cmovne esi, edx
+ lea r9d, [rsi+rsi]
mov rdx, 0xD1FFAB1E ; static handle
- lea r8, [rbp-0x50]
+ mov r9w, word ptr [r9+rdx]
+ mov word ptr [r8], r9w
+ ;; size=27 bbWeight=0.50 PerfScore 2.00
+G_M40771_IG10:
+ xor r8d, r8d
+ mov bword ptr [rbp-0x40], r8
+ ;; size=7 bbWeight=0.50 PerfScore 0.62
+G_M40771_IG11:
+ xor r8, r8
+ mov bword ptr [rbp-0x40], r8
+ jmp SHORT G_M40771_IG13
+ ;; size=9 bbWeight=0.50 PerfScore 1.62
+G_M40771_IG12:
+ mov rdx, 0xD1FFAB1E ; static handle
+ lea r8, [rbp-0x38]
mov qword ptr [rsp], r8
- mov r8, r14
+ mov r8, r15
mov r9d, 20
mov ecx, 1
- mov rdi, rbx
+ mov rdi, rsi
+ xor esi, esi
mov rax, 0xD1FFAB1E ; code for System.Number:TryNegativeInt64ToDecStr[ubyte](long,int,System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref):ubyte
call [rax]System.Number:TryNegativeInt64ToDecStr[ubyte](long,int,System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref):ubyte
- ;; size=62 bbWeight=0.50 PerfScore 3.50
-G_M40771_IG33:
- mov edx, dword ptr [rbp-0x50]
+ ;; size=49 bbWeight=0.50 PerfScore 3.12
+G_M40771_IG13:
+ mov edx, dword ptr [rbp-0x38]
cmp edx, 20
- ja SHORT G_M40771_IG39
- vxorps xmm0, xmm0, xmm0
- vmovdqu xmmword ptr [rbp-0x78], xmm0
- lea rdi, [rbp-0x78]
- mov rsi, r14
- mov rax, 0xD1FFAB1E ; code for System.Span`1[ubyte]:.ctor(byref,int):this
- call [rax]System.Span`1[ubyte]:.ctor(byref,int):this
- mov rdi, bword ptr [rbp-0x78]
- mov esi, dword ptr [rbp-0x70]
- mov rax, 0xD1FFAB1E ; code for System.Span`1[ubyte]:op_Implicit(System.Span`1[ubyte]):System.ReadOnlySpan`1[ubyte]
- call [rax]System.Span`1[ubyte]:op_Implicit(System.Span`1[ubyte]):System.ReadOnlySpan`1[ubyte]
- mov rsi, rax
- mov rdi, r15
+ ja SHORT G_M40771_IG17
+ mov rsi, r15
+ mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.Json.Utf8JsonWriter:WriteNumberValueAsStringUnescaped(System.ReadOnlySpan`1[ubyte]):this
call [rax]System.Text.Json.Utf8JsonWriter:WriteNumberValueAsStringUnescaped(System.ReadOnlySpan`1[ubyte]):this
- ;; size=73 bbWeight=1 PerfScore 16.58
-G_M40771_IG34:
- cmp qword ptr [rbp-0x30], 0xD1FFAB1E
- je SHORT G_M40771_IG35
+ ;; size=26 bbWeight=1 PerfScore 6.00
+G_M40771_IG14:
+ cmp qword ptr [rbp-0x18], 0xD1FFAB1E
+ je SHORT G_M40771_IG15
call CORINFO_HELP_FAIL_FAST
;; size=15 bbWeight=1 PerfScore 4.00
-G_M40771_IG35:
+G_M40771_IG15:
nop
;; size=1 bbWeight=1 PerfScore 0.25
-G_M40771_IG36:
- add rsp, 104
+G_M40771_IG16:
+ add rsp, 64
pop rbx
- pop r12
- pop r13
- pop r14
pop r15
pop rbp
ret
- ;; size=15 bbWeight=1 PerfScore 4.25
-G_M40771_IG37:
- mov rax, 0xD1FFAB1E ; code for System.Buffers.Text.Utf8Formatter:ThrowGWithPrecisionNotSupported()
- call [rax]System.Buffers.Text.Utf8Formatter:ThrowGWithPrecisionNotSupported()
- int3
- ;; size=13 bbWeight=0 PerfScore 0.00
-G_M40771_IG38:
- mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowFormatException_BadFormatSpecifier()
- call [rax]System.ThrowHelper:ThrowFormatException_BadFormatSpecifier()
- int3
- ;; size=13 bbWeight=0 PerfScore 0.00
-G_M40771_IG39:
+ ;; size=9 bbWeight=1 PerfScore 2.75
+G_M40771_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 1206, prolog size 50, PerfScore 391.48, instruction count 304, allocated bytes for code 1206 (MethodHash=8f8360bc) for method System.Text.Json.Utf8JsonWriter:WriteNumberValueAsString(long):this (FullOpts)
+; Total bytes of code 379, prolog size 27, PerfScore 91.12, instruction count 101, allocated bytes for code 379 (MethodHash=8f8360bc) for method System.Text.Json.Utf8JsonWriter:WriteNumberValueAsString(long):this (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/14c3be5b9d7d818249c4cf908fd01138 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Job completed in 19 minutes 2 seconds.
Diffs
Diffs
Artifacts:
The text was updated successfully, but these errors were encountered: