-61 (-2.42 % of base) - System.Text.Json.JsonDocument:Parse(System.ReadOnlySpan`1[ubyte],System.Text.Json.JsonReaderOptions,byref,byref)
; Assembly listing for method System.Text.Json.JsonDocument:Parse(System.ReadOnlySpan`1[ubyte],System.Text.Json.JsonReaderOptions,byref,byref) (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 130 single block inlinees; 56 inlinees without PGO data
; Final local variable assignments
;
;* V00 arg0 [V00 ] ( 0, 0 ) struct (16) zero-ref multireg-arg single-def <System.ReadOnlySpan`1[ubyte]>
; V01 arg1 [V01,T138] ( 3, 3 ) struct ( 8) rdx single-def <System.Text.Json.JsonReaderOptions>
; V02 arg2 [V02,T00] ( 65,127 ) byref -> rbx single-def
; V03 arg3 [V03,T01] ( 20, 38 ) byref -> r15 single-def
; V04 loc0 [V04,T48] ( 5, 11 ) ubyte -> r14
; V05 loc1 [V05,T05] ( 12, 23 ) int -> r13
; V06 loc2 [V06,T03] ( 16, 31 ) int -> r12
; V07 loc3 [V07,T04] ( 16, 31 ) int -> [rbp-0x2C]
; V08 loc4 [V08 ] ( 12, 30 ) struct (192) [rbp-0xF0] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Text.Json.Utf8JsonReader>
; V09 loc5 [V09,T02] ( 14, 32 ) ubyte -> [rbp-0xF4] spill-single-def
; V10 loc6 [V10,T47] ( 8, 18 ) int -> [rbp-0xF8] spill-single-def
;* V11 loc7 [V11 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.Text.Json.JsonDocument+StackRow>
-; V12 loc8 [V12,T119] ( 3, 6 ) int -> [rbp-0xFC] spill-single-def
+; V12 loc8 [V12,T112] ( 3, 6 ) int -> [rbp-0xFC] spill-single-def
; V13 loc9 [V13,T160] ( 2, 4 ) int -> [rbp-0x100] spill-single-def
;* V14 loc10 [V14 ] ( 0, 0 ) struct ( 8) zero-ref <System.Text.Json.JsonDocument+StackRow>
;* V15 loc11 [V15 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.ReadOnlySpan`1[ubyte]>
;* V16 loc12 [V16 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.Text.Json.JsonDocument+StackRow>
; V17 loc13 [V17,T66] ( 4, 8 ) int -> rax
; V18 loc14 [V18,T161] ( 2, 4 ) int -> r13
;* V19 loc15 [V19 ] ( 0, 0 ) struct ( 8) zero-ref <System.Text.Json.JsonDocument+StackRow>
; V20 OutArgs [V20 ] ( 1, 1 ) struct (56) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V21 tmp1 [V21,T120] ( 3, 6 ) struct (56) [rbp-0x138] do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" <System.Text.Json.JsonReaderState>
+; V21 tmp1 [V21,T113] ( 3, 6 ) struct (56) [rbp-0x138] do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" <System.Text.Json.JsonReaderState>
;* V22 tmp2 [V22 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Text.Json.JsonDocument+DbRow>
; V23 tmp3 [V23,T06] ( 5, 20 ) ref -> rcx class-hnd "impAppendStmt" <ubyte[]>
;* V24 tmp4 [V24 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
;* V25 tmp5 [V25 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.Span`1[ubyte]>
; V26 tmp6 [V26,T26] ( 5, 20 ) int -> rdx "Inlining Arg"
;* V27 tmp7 [V27 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V28 tmp8 [V28 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
-; V29 tmp9 [V29,T74] ( 2, 8 ) byref -> rsi "Inlining Arg"
-; V30 tmp10 [V30,T94] ( 2, 8 ) int -> rcx "Inlining Arg"
+; V29 tmp9 [V29,T67] ( 2, 8 ) byref -> rsi "Inlining Arg"
+; V30 tmp10 [V30,T87] ( 2, 8 ) int -> rcx "Inlining Arg"
;* V31 tmp11 [V31 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V32 tmp12 [V32 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V33 tmp13 [V33 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V34 tmp14 [V34 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V35 tmp15 [V35 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Text.Json.JsonDocument+StackRow>
;* V36 tmp16 [V36 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
;* V37 tmp17 [V37 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.Span`1[ubyte]>
; V38 tmp18 [V38,T07] ( 5, 20 ) ref -> rdi class-hnd "Inlining Arg" <ubyte[]>
; V39 tmp19 [V39,T27] ( 5, 20 ) int -> rax "Inlining Arg"
;* V40 tmp20 [V40 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V41 tmp21 [V41 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
-; V42 tmp22 [V42,T75] ( 2, 8 ) byref -> rcx "Inlining Arg"
-; V43 tmp23 [V43,T95] ( 2, 8 ) int -> rdi "Inlining Arg"
+; V42 tmp22 [V42,T68] ( 2, 8 ) byref -> rcx "Inlining Arg"
+; V43 tmp23 [V43,T88] ( 2, 8 ) int -> rdi "Inlining Arg"
;* V44 tmp24 [V44 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V45 tmp25 [V45 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V46 tmp26 [V46 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
;* V47 tmp27 [V47 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
;* V48 tmp28 [V48 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.Span`1[ubyte]>
; V49 tmp29 [V49,T08] ( 5, 20 ) ref -> rdi class-hnd "Inlining Arg" <ubyte[]>
; V50 tmp30 [V50,T28] ( 5, 20 ) int -> rcx "Inlining Arg"
;* V51 tmp31 [V51 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V52 tmp32 [V52 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
-; V53 tmp33 [V53,T76] ( 2, 8 ) byref -> rdx "Inlining Arg"
-; V54 tmp34 [V54,T96] ( 2, 8 ) int -> rdi "Inlining Arg"
+; V53 tmp33 [V53,T69] ( 2, 8 ) byref -> rdx "Inlining Arg"
+; V54 tmp34 [V54,T89] ( 2, 8 ) int -> rdi "Inlining Arg"
;* V55 tmp35 [V55 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V56 tmp36 [V56 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V57 tmp37 [V57 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Text.Json.JsonDocument+DbRow>
;* V58 tmp38 [V58 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V59 tmp39 [V59,T09] ( 5, 20 ) ref -> r8 class-hnd "impAppendStmt" <ubyte[]>
;* V60 tmp40 [V60 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
;* V61 tmp41 [V61 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.Span`1[ubyte]>
; V62 tmp42 [V62,T29] ( 5, 20 ) int -> r9 "Inlining Arg"
;* V63 tmp43 [V63 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V64 tmp44 [V64 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
-; V65 tmp45 [V65,T77] ( 2, 8 ) byref -> r10 "Inlining Arg"
-; V66 tmp46 [V66,T97] ( 2, 8 ) int -> r8 "Inlining Arg"
+; V65 tmp45 [V65,T70] ( 2, 8 ) byref -> r10 "Inlining Arg"
+; V66 tmp46 [V66,T90] ( 2, 8 ) int -> r8 "Inlining Arg"
;* V67 tmp47 [V67 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V68 tmp48 [V68 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V69 tmp49 [V69 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V70 tmp50 [V70 ] ( 0, 0 ) struct (16) zero-ref "dup spill" <System.Span`1[ubyte]>
;* V71 tmp51 [V71 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
-; V72 tmp52 [V72,T162] ( 2, 4 ) int -> rax ld-addr-op "Inline stloc first use temp"
+; V72 tmp52 [V72,T162] ( 2, 4 ) int -> rdi ld-addr-op "Inline stloc first use temp"
;* V73 tmp53 [V73 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.Span`1[ubyte]>
; V74 tmp54 [V74,T10] ( 5, 20 ) ref -> rdi class-hnd "Inlining Arg" <ubyte[]>
; V75 tmp55 [V75,T30] ( 5, 20 ) int -> rax "Inlining Arg"
;* V76 tmp56 [V76 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V77 tmp57 [V77 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
-; V78 tmp58 [V78,T78] ( 2, 8 ) byref -> rdx "Inlining Arg"
-; V79 tmp59 [V79,T98] ( 2, 8 ) int -> rdi "Inlining Arg"
+; V78 tmp58 [V78,T71] ( 2, 8 ) byref -> rdx "Inlining Arg"
+; V79 tmp59 [V79,T91] ( 2, 8 ) int -> rdi "Inlining Arg"
;* V80 tmp60 [V80 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V81 tmp61 [V81 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V82 tmp62 [V82 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V83 tmp63 [V83 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V84 tmp64 [V84 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V85 tmp65 [V85 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V86 tmp66 [V86 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V87 tmp67 [V87 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V88 tmp68 [V88 ] ( 0, 0 ) struct (16) zero-ref "dup spill" <System.Span`1[ubyte]>
;* V89 tmp69 [V89 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
-; V90 tmp70 [V90,T163] ( 2, 4 ) int -> rcx ld-addr-op "Inline stloc first use temp"
+; V90 tmp70 [V90,T163] ( 2, 4 ) int -> rdi ld-addr-op "Inline stloc first use temp"
;* V91 tmp71 [V91 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.Span`1[ubyte]>
; V92 tmp72 [V92,T11] ( 5, 20 ) ref -> rdi class-hnd "Inlining Arg" <ubyte[]>
; V93 tmp73 [V93,T31] ( 5, 20 ) int -> rcx "Inlining Arg"
;* V94 tmp74 [V94 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V95 tmp75 [V95 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
-; V96 tmp76 [V96,T79] ( 2, 8 ) byref -> rax "Inlining Arg"
-; V97 tmp77 [V97,T99] ( 2, 8 ) int -> rdi "Inlining Arg"
+; V96 tmp76 [V96,T72] ( 2, 8 ) byref -> rax "Inlining Arg"
+; V97 tmp77 [V97,T92] ( 2, 8 ) int -> rdi "Inlining Arg"
;* V98 tmp78 [V98 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V99 tmp79 [V99 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V100 tmp80 [V100 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V101 tmp81 [V101 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V102 tmp82 [V102 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V103 tmp83 [V103 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V104 tmp84 [V104 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V105 tmp85 [V105 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V106 tmp86 [V106 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
;* V107 tmp87 [V107 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
;* V108 tmp88 [V108 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Text.Json.JsonDocument+StackRow>
;* V109 tmp89 [V109 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.Span`1[ubyte]>
; V110 tmp90 [V110,T12] ( 5, 20 ) ref -> rdi class-hnd "Inlining Arg" <ubyte[]>
; V111 tmp91 [V111,T32] ( 5, 20 ) int -> rcx "Inlining Arg"
;* V112 tmp92 [V112 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V113 tmp93 [V113 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
-; V114 tmp94 [V114,T80] ( 2, 8 ) byref -> rdx "Inlining Arg"
-; V115 tmp95 [V115,T100] ( 2, 8 ) int -> rdi "Inlining Arg"
+; V114 tmp94 [V114,T73] ( 2, 8 ) byref -> rdx "Inlining Arg"
+; V115 tmp95 [V115,T93] ( 2, 8 ) int -> rdi "Inlining Arg"
;* V116 tmp96 [V116 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V117 tmp97 [V117 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V118 tmp98 [V118 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V119 tmp99 [V119 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V120 tmp100 [V120 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V121 tmp101 [V121 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V122 tmp102 [V122 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Text.Json.JsonDocument+DbRow>
; V123 tmp103 [V123,T13] ( 5, 20 ) ref -> rcx class-hnd "impAppendStmt" <ubyte[]>
;* V124 tmp104 [V124 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
;* V125 tmp105 [V125 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.Span`1[ubyte]>
; V126 tmp106 [V126,T33] ( 5, 20 ) int -> rdx "Inlining Arg"
;* V127 tmp107 [V127 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V128 tmp108 [V128 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
-; V129 tmp109 [V129,T81] ( 2, 8 ) byref -> rsi "Inlining Arg"
-; V130 tmp110 [V130,T101] ( 2, 8 ) int -> rcx "Inlining Arg"
+; V129 tmp109 [V129,T74] ( 2, 8 ) byref -> rsi "Inlining Arg"
+; V130 tmp110 [V130,T94] ( 2, 8 ) int -> rcx "Inlining Arg"
;* V131 tmp111 [V131 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V132 tmp112 [V132 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V133 tmp113 [V133 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V134 tmp114 [V134 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V135 tmp115 [V135 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Text.Json.JsonDocument+StackRow>
;* V136 tmp116 [V136 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
;* V137 tmp117 [V137 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.Span`1[ubyte]>
; V138 tmp118 [V138,T14] ( 5, 20 ) ref -> rdi class-hnd "Inlining Arg" <ubyte[]>
; V139 tmp119 [V139,T34] ( 5, 20 ) int -> rsi "Inlining Arg"
;* V140 tmp120 [V140 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V141 tmp121 [V141 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
-; V142 tmp122 [V142,T82] ( 2, 8 ) byref -> rax "Inlining Arg"
-; V143 tmp123 [V143,T102] ( 2, 8 ) int -> rdi "Inlining Arg"
+; V142 tmp122 [V142,T75] ( 2, 8 ) byref -> rax "Inlining Arg"
+; V143 tmp123 [V143,T95] ( 2, 8 ) int -> rdi "Inlining Arg"
;* V144 tmp124 [V144 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V145 tmp125 [V145 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V146 tmp126 [V146 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
;* V147 tmp127 [V147 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
;* V148 tmp128 [V148 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.Span`1[ubyte]>
; V149 tmp129 [V149,T15] ( 5, 20 ) ref -> rdi class-hnd "Inlining Arg" <ubyte[]>
; V150 tmp130 [V150,T35] ( 5, 20 ) int -> rcx "Inlining Arg"
;* V151 tmp131 [V151 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V152 tmp132 [V152 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
-; V153 tmp133 [V153,T83] ( 2, 8 ) byref -> rdx "Inlining Arg"
-; V154 tmp134 [V154,T103] ( 2, 8 ) int -> rdi "Inlining Arg"
+; V153 tmp133 [V153,T76] ( 2, 8 ) byref -> rdx "Inlining Arg"
+; V154 tmp134 [V154,T96] ( 2, 8 ) int -> rdi "Inlining Arg"
;* V155 tmp135 [V155 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V156 tmp136 [V156 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V157 tmp137 [V157 ] ( 0, 0 ) struct (16) zero-ref "dup spill" <System.Span`1[ubyte]>
;* V158 tmp138 [V158 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
-; V159 tmp139 [V159,T164] ( 2, 4 ) int -> rcx ld-addr-op "Inline stloc first use temp"
+; V159 tmp139 [V159,T164] ( 2, 4 ) int -> rdi ld-addr-op "Inline stloc first use temp"
;* V160 tmp140 [V160 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.Span`1[ubyte]>
; V161 tmp141 [V161,T16] ( 5, 20 ) ref -> rdi class-hnd "Inlining Arg" <ubyte[]>
; V162 tmp142 [V162,T36] ( 5, 20 ) int -> rcx "Inlining Arg"
;* V163 tmp143 [V163 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V164 tmp144 [V164 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
-; V165 tmp145 [V165,T84] ( 2, 8 ) byref -> rdx "Inlining Arg"
-; V166 tmp146 [V166,T104] ( 2, 8 ) int -> rdi "Inlining Arg"
+; V165 tmp145 [V165,T77] ( 2, 8 ) byref -> rdx "Inlining Arg"
+; V166 tmp146 [V166,T97] ( 2, 8 ) int -> rdi "Inlining Arg"
;* V167 tmp147 [V167 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V168 tmp148 [V168 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V169 tmp149 [V169 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V170 tmp150 [V170 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V171 tmp151 [V171 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V172 tmp152 [V172 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V173 tmp153 [V173 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V174 tmp154 [V174 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V175 tmp155 [V175 ] ( 0, 0 ) struct (16) zero-ref "dup spill" <System.Span`1[ubyte]>
;* V176 tmp156 [V176 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
-; V177 tmp157 [V177,T165] ( 2, 4 ) int -> rax ld-addr-op "Inline stloc first use temp"
+; V177 tmp157 [V177,T165] ( 2, 4 ) int -> rdi ld-addr-op "Inline stloc first use temp"
;* V178 tmp158 [V178 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.Span`1[ubyte]>
; V179 tmp159 [V179,T17] ( 5, 20 ) ref -> rdi class-hnd "Inlining Arg" <ubyte[]>
; V180 tmp160 [V180,T37] ( 5, 20 ) int -> rax "Inlining Arg"
;* V181 tmp161 [V181 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V182 tmp162 [V182 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
-; V183 tmp163 [V183,T85] ( 2, 8 ) byref -> rcx "Inlining Arg"
-; V184 tmp164 [V184,T105] ( 2, 8 ) int -> rdi "Inlining Arg"
+; V183 tmp163 [V183,T78] ( 2, 8 ) byref -> rcx "Inlining Arg"
+; V184 tmp164 [V184,T98] ( 2, 8 ) int -> rdi "Inlining Arg"
;* V185 tmp165 [V185 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V186 tmp166 [V186 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V187 tmp167 [V187 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V188 tmp168 [V188 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V189 tmp169 [V189 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V190 tmp170 [V190 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V191 tmp171 [V191 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V192 tmp172 [V192 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V193 tmp173 [V193 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Text.Json.JsonDocument+DbRow>
;* V194 tmp174 [V194 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V195 tmp175 [V195,T18] ( 5, 20 ) ref -> rdx class-hnd "impAppendStmt" <ubyte[]>
;* V196 tmp176 [V196 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
;* V197 tmp177 [V197 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.Span`1[ubyte]>
; V198 tmp178 [V198,T38] ( 5, 20 ) int -> rsi "Inlining Arg"
;* V199 tmp179 [V199 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V200 tmp180 [V200 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
-; V201 tmp181 [V201,T86] ( 2, 8 ) byref -> r8 "Inlining Arg"
-; V202 tmp182 [V202,T106] ( 2, 8 ) int -> rdx "Inlining Arg"
+; V201 tmp181 [V201,T79] ( 2, 8 ) byref -> r8 "Inlining Arg"
+; V202 tmp182 [V202,T99] ( 2, 8 ) int -> rdx "Inlining Arg"
;* V203 tmp183 [V203 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V204 tmp184 [V204 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V205 tmp185 [V205 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V206 tmp186 [V206 ] ( 0, 0 ) struct (16) zero-ref "dup spill" <System.Span`1[ubyte]>
;* V207 tmp187 [V207 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
-; V208 tmp188 [V208,T166] ( 2, 4 ) int -> rcx ld-addr-op "Inline stloc first use temp"
+; V208 tmp188 [V208,T166] ( 2, 4 ) int -> rdi ld-addr-op "Inline stloc first use temp"
;* V209 tmp189 [V209 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.Span`1[ubyte]>
; V210 tmp190 [V210,T19] ( 5, 20 ) ref -> rdi class-hnd "Inlining Arg" <ubyte[]>
; V211 tmp191 [V211,T39] ( 5, 20 ) int -> r13 "Inlining Arg"
;* V212 tmp192 [V212 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V213 tmp193 [V213 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
-; V214 tmp194 [V214,T87] ( 2, 8 ) byref -> rax "Inlining Arg"
-; V215 tmp195 [V215,T107] ( 2, 8 ) int -> rdi "Inlining Arg"
+; V214 tmp194 [V214,T80] ( 2, 8 ) byref -> rax "Inlining Arg"
+; V215 tmp195 [V215,T100] ( 2, 8 ) int -> rdi "Inlining Arg"
;* V216 tmp196 [V216 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V217 tmp197 [V217 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V218 tmp198 [V218 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V219 tmp199 [V219 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V220 tmp200 [V220 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V221 tmp201 [V221 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V222 tmp202 [V222 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V223 tmp203 [V223 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V224 tmp204 [V224 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
;* V225 tmp205 [V225 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
;* V226 tmp206 [V226 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Text.Json.JsonDocument+StackRow>
;* V227 tmp207 [V227 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.Span`1[ubyte]>
; V228 tmp208 [V228,T20] ( 5, 20 ) ref -> rdi class-hnd "Inlining Arg" <ubyte[]>
; V229 tmp209 [V229,T40] ( 5, 20 ) int -> rcx "Inlining Arg"
;* V230 tmp210 [V230 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V231 tmp211 [V231 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
-; V232 tmp212 [V232,T88] ( 2, 8 ) byref -> rdx "Inlining Arg"
-; V233 tmp213 [V233,T108] ( 2, 8 ) int -> rdi "Inlining Arg"
+; V232 tmp212 [V232,T81] ( 2, 8 ) byref -> rdx "Inlining Arg"
+; V233 tmp213 [V233,T101] ( 2, 8 ) int -> rdi "Inlining Arg"
;* V234 tmp214 [V234 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V235 tmp215 [V235 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V236 tmp216 [V236 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V237 tmp217 [V237 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V238 tmp218 [V238 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V239 tmp219 [V239 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V240 tmp220 [V240 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Text.Json.JsonDocument+DbRow>
;* V241 tmp221 [V241 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V242 tmp222 [V242 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V243 tmp223 [V243,T21] ( 5, 20 ) ref -> rcx class-hnd "impAppendStmt" <ubyte[]>
;* V244 tmp224 [V244 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
;* V245 tmp225 [V245 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V246 tmp226 [V246 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.Span`1[ubyte]>
; V247 tmp227 [V247,T41] ( 5, 20 ) int -> rdx "Inlining Arg"
;* V248 tmp228 [V248 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V249 tmp229 [V249 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
-; V250 tmp230 [V250,T89] ( 2, 8 ) byref -> r8 "Inlining Arg"
-; V251 tmp231 [V251,T109] ( 2, 8 ) int -> rcx "Inlining Arg"
+; V250 tmp230 [V250,T82] ( 2, 8 ) byref -> r8 "Inlining Arg"
+; V251 tmp231 [V251,T102] ( 2, 8 ) int -> rcx "Inlining Arg"
;* V252 tmp232 [V252 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V253 tmp233 [V253 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V254 tmp234 [V254 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V255 tmp235 [V255,T110] ( 2, 8 ) int -> rdi "Inlining Arg"
+; V255 tmp235 [V255,T103] ( 2, 8 ) int -> rdi "Inlining Arg"
;* V256 tmp236 [V256 ] ( 0, 0 ) struct (16) zero-ref "dup spill" <System.Span`1[ubyte]>
;* V257 tmp237 [V257 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
; V258 tmp238 [V258,T167] ( 2, 4 ) int -> rdi ld-addr-op "Inline stloc first use temp"
;* V259 tmp239 [V259 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.Span`1[ubyte]>
; V260 tmp240 [V260,T22] ( 5, 20 ) ref -> rsi class-hnd "Inlining Arg" <ubyte[]>
; V261 tmp241 [V261,T42] ( 5, 20 ) int -> rdi "Inlining Arg"
;* V262 tmp242 [V262 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V263 tmp243 [V263 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
-; V264 tmp244 [V264,T90] ( 2, 8 ) byref -> rax "Inlining Arg"
-; V265 tmp245 [V265,T111] ( 2, 8 ) int -> rsi "Inlining Arg"
+; V264 tmp244 [V264,T83] ( 2, 8 ) byref -> rax "Inlining Arg"
+; V265 tmp245 [V265,T104] ( 2, 8 ) int -> rsi "Inlining Arg"
;* V266 tmp246 [V266 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V267 tmp247 [V267 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V268 tmp248 [V268 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V269 tmp249 [V269 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V270 tmp250 [V270 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V271 tmp251 [V271 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V272 tmp252 [V272 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V273 tmp253 [V273 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V274 tmp254 [V274 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Text.Json.JsonDocument+DbRow>
;* V275 tmp255 [V275 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V276 tmp256 [V276 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V277 tmp257 [V277,T23] ( 5, 20 ) ref -> rdx class-hnd "impAppendStmt" <ubyte[]>
;* V278 tmp258 [V278 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
;* V279 tmp259 [V279 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V280 tmp260 [V280 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.Span`1[ubyte]>
; V281 tmp261 [V281,T43] ( 5, 20 ) int -> rsi "Inlining Arg"
;* V282 tmp262 [V282 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V283 tmp263 [V283 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
-; V284 tmp264 [V284,T91] ( 2, 8 ) byref -> r8 "Inlining Arg"
-; V285 tmp265 [V285,T112] ( 2, 8 ) int -> rdx "Inlining Arg"
+; V284 tmp264 [V284,T84] ( 2, 8 ) byref -> r8 "Inlining Arg"
+; V285 tmp265 [V285,T105] ( 2, 8 ) int -> rdx "Inlining Arg"
;* V286 tmp266 [V286 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V287 tmp267 [V287 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V288 tmp268 [V288 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V289 tmp269 [V289,T113] ( 2, 8 ) int -> rdi "Inlining Arg"
+; V289 tmp269 [V289,T106] ( 2, 8 ) int -> rdi "Inlining Arg"
;* V290 tmp270 [V290 ] ( 0, 0 ) struct (16) zero-ref "dup spill" <System.Span`1[ubyte]>
;* V291 tmp271 [V291 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
; V292 tmp272 [V292,T168] ( 2, 4 ) int -> rdi ld-addr-op "Inline stloc first use temp"
;* V293 tmp273 [V293 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.Span`1[ubyte]>
; V294 tmp274 [V294,T24] ( 5, 20 ) ref -> rax class-hnd "Inlining Arg" <ubyte[]>
; V295 tmp275 [V295,T44] ( 5, 20 ) int -> rdi "Inlining Arg"
;* V296 tmp276 [V296 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V297 tmp277 [V297 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
-; V298 tmp278 [V298,T92] ( 2, 8 ) byref -> rcx "Inlining Arg"
-; V299 tmp279 [V299,T114] ( 2, 8 ) int -> rax "Inlining Arg"
+; V298 tmp278 [V298,T85] ( 2, 8 ) byref -> rcx "Inlining Arg"
+; V299 tmp279 [V299,T107] ( 2, 8 ) int -> rax "Inlining Arg"
;* V300 tmp280 [V300 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V301 tmp281 [V301 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V302 tmp282 [V302 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V303 tmp283 [V303 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V304 tmp284 [V304 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V305 tmp285 [V305 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V306 tmp286 [V306 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V307 tmp287 [V307 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V308 tmp288 [V308 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Text.Json.JsonDocument+DbRow>
;* V309 tmp289 [V309 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V310 tmp290 [V310,T25] ( 5, 20 ) ref -> rdi class-hnd "impAppendStmt" <ubyte[]>
;* V311 tmp291 [V311 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
;* V312 tmp292 [V312 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.Span`1[ubyte]>
; V313 tmp293 [V313,T45] ( 5, 20 ) int -> rdx "Inlining Arg"
;* V314 tmp294 [V314 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V315 tmp295 [V315 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
-; V316 tmp296 [V316,T93] ( 2, 8 ) byref -> rsi "Inlining Arg"
-; V317 tmp297 [V317,T115] ( 2, 8 ) int -> rdi "Inlining Arg"
+; V316 tmp296 [V316,T86] ( 2, 8 ) byref -> rsi "Inlining Arg"
+; V317 tmp297 [V317,T108] ( 2, 8 ) int -> rdi "Inlining Arg"
;* V318 tmp298 [V318 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V319 tmp299 [V319 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V320 tmp300 [V320 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V321 tmp301 [V321,T139] ( 2, 2 ) byref -> rax single-def "field V00._reference (fldOffset=0x0)" P-INDEP
; V322 tmp302 [V322,T169] ( 2, 2 ) int -> r8 single-def "field V00._length (fldOffset=0x8)" P-INDEP
; V323 tmp303 [V323,T170] ( 2, 4 ) int -> r12 "field V11.SizeOrLength (fldOffset=0x0)" P-INDEP
;* V324 tmp304 [V324,T215] ( 0, 0 ) int -> zero-ref "field V11.NumberOfRows (fldOffset=0x4)" P-INDEP
;* V325 tmp305 [V325 ] ( 0, 0 ) int -> zero-ref "field V14.SizeOrLength (fldOffset=0x0)" P-INDEP
;* V326 tmp306 [V326 ] ( 0, 0 ) int -> zero-ref "field V14.NumberOfRows (fldOffset=0x4)" P-INDEP
;* V327 tmp307 [V327 ] ( 0, 0 ) byref -> zero-ref "field V15._reference (fldOffset=0x0)" P-INDEP
; V328 tmp308 [V328,T46] ( 9, 18 ) int -> [rbp-0x13C] "field V15._length (fldOffset=0x8)" P-INDEP
; V329 tmp309 [V329,T171] ( 2, 4 ) int -> r13 "field V16.SizeOrLength (fldOffset=0x0)" P-INDEP
; V330 tmp310 [V330,T172] ( 2, 4 ) int -> r14 "field V16.NumberOfRows (fldOffset=0x4)" P-INDEP
;* V331 tmp311 [V331 ] ( 0, 0 ) int -> zero-ref "field V19.SizeOrLength (fldOffset=0x0)" P-INDEP
;* V332 tmp312 [V332 ] ( 0, 0 ) int -> zero-ref "field V19.NumberOfRows (fldOffset=0x4)" P-INDEP
; V333 tmp313 [V333,T173] ( 2, 4 ) int -> rdi "field V22._location (fldOffset=0x0)" P-INDEP
;* V334 tmp314 [V334,T216] ( 0, 0 ) int -> zero-ref "field V22._sizeOrLengthUnion (fldOffset=0x4)" P-INDEP
; V335 tmp315 [V335,T174] ( 2, 4 ) int -> rax "field V22._numberOfRowsAndTypeUnion (fldOffset=0x8)" P-INDEP
;* V336 tmp316 [V336 ] ( 0, 0 ) byref -> zero-ref "field V24._reference (fldOffset=0x0)" P-INDEP
;* V337 tmp317 [V337 ] ( 0, 0 ) int -> zero-ref "field V24._length (fldOffset=0x8)" P-INDEP
; V338 tmp318 [V338,T49] ( 5, 10 ) byref -> rsi "field V25._reference (fldOffset=0x0)" P-INDEP
-; V339 tmp319 [V339,T121] ( 3, 6 ) int -> rcx "field V25._length (fldOffset=0x8)" P-INDEP
+; V339 tmp319 [V339,T114] ( 3, 6 ) int -> rcx "field V25._length (fldOffset=0x8)" P-INDEP
; V340 tmp320 [V340,T140] ( 2, 4 ) byref -> rsi "field V27._reference (fldOffset=0x0)" P-INDEP
; V341 tmp321 [V341,T175] ( 2, 4 ) int -> rcx "field V27._length (fldOffset=0x8)" P-INDEP
;* V342 tmp322 [V342 ] ( 0, 0 ) byref -> zero-ref "field V28._reference (fldOffset=0x0)" P-INDEP
;* V343 tmp323 [V343 ] ( 0, 0 ) int -> zero-ref "field V28._length (fldOffset=0x8)" P-INDEP
;* V344 tmp324 [V344 ] ( 0, 0 ) byref -> zero-ref "field V31._reference (fldOffset=0x0)" P-INDEP
;* V345 tmp325 [V345 ] ( 0, 0 ) int -> zero-ref "field V31._length (fldOffset=0x8)" P-INDEP
;* V346 tmp326 [V346 ] ( 0, 0 ) byref -> zero-ref "field V32._reference (fldOffset=0x0)" P-INDEP
;* V347 tmp327 [V347 ] ( 0, 0 ) int -> zero-ref "field V32._length (fldOffset=0x8)" P-INDEP
;* V348 tmp328 [V348 ] ( 0, 0 ) int -> zero-ref "field V35.SizeOrLength (fldOffset=0x0)" P-INDEP
;* V349 tmp329 [V349 ] ( 0, 0 ) int -> zero-ref "field V35.NumberOfRows (fldOffset=0x4)" P-INDEP
;* V350 tmp330 [V350 ] ( 0, 0 ) byref -> zero-ref "field V36._reference (fldOffset=0x0)" P-INDEP
;* V351 tmp331 [V351 ] ( 0, 0 ) int -> zero-ref "field V36._length (fldOffset=0x8)" P-INDEP
; V352 tmp332 [V352,T56] ( 4, 8 ) byref -> rcx "field V37._reference (fldOffset=0x0)" P-INDEP
-; V353 tmp333 [V353,T122] ( 3, 6 ) int -> rdi "field V37._length (fldOffset=0x8)" P-INDEP
+; V353 tmp333 [V353,T115] ( 3, 6 ) int -> rdi "field V37._length (fldOffset=0x8)" P-INDEP
; V354 tmp334 [V354,T141] ( 2, 4 ) byref -> rcx "field V40._reference (fldOffset=0x0)" P-INDEP
; V355 tmp335 [V355,T176] ( 2, 4 ) int -> rdi "field V40._length (fldOffset=0x8)" P-INDEP
;* V356 tmp336 [V356 ] ( 0, 0 ) byref -> zero-ref "field V41._reference (fldOffset=0x0)" P-INDEP
;* V357 tmp337 [V357 ] ( 0, 0 ) int -> zero-ref "field V41._length (fldOffset=0x8)" P-INDEP
;* V358 tmp338 [V358 ] ( 0, 0 ) byref -> zero-ref "field V44._reference (fldOffset=0x0)" P-INDEP
;* V359 tmp339 [V359 ] ( 0, 0 ) int -> zero-ref "field V44._length (fldOffset=0x8)" P-INDEP
;* V360 tmp340 [V360 ] ( 0, 0 ) byref -> zero-ref "field V45._reference (fldOffset=0x0)" P-INDEP
;* V361 tmp341 [V361 ] ( 0, 0 ) int -> zero-ref "field V45._length (fldOffset=0x8)" P-INDEP
;* V362 tmp342 [V362 ] ( 0, 0 ) byref -> zero-ref "field V47._reference (fldOffset=0x0)" P-INDEP
;* V363 tmp343 [V363 ] ( 0, 0 ) int -> zero-ref "field V47._length (fldOffset=0x8)" P-INDEP
-; V364 tmp344 [V364,T116] ( 3, 6 ) byref -> rdx "field V48._reference (fldOffset=0x0)" P-INDEP
-; V365 tmp345 [V365,T123] ( 3, 6 ) int -> rdi "field V48._length (fldOffset=0x8)" P-INDEP
+; V364 tmp344 [V364,T109] ( 3, 6 ) byref -> rdx "field V48._reference (fldOffset=0x0)" P-INDEP
+; V365 tmp345 [V365,T116] ( 3, 6 ) int -> rdi "field V48._length (fldOffset=0x8)" P-INDEP
; V366 tmp346 [V366,T142] ( 2, 4 ) byref -> rdx "field V51._reference (fldOffset=0x0)" P-INDEP
; V367 tmp347 [V367,T177] ( 2, 4 ) int -> rdi "field V51._length (fldOffset=0x8)" P-INDEP
;* V368 tmp348 [V368 ] ( 0, 0 ) byref -> zero-ref "field V52._reference (fldOffset=0x0)" P-INDEP
;* V369 tmp349 [V369 ] ( 0, 0 ) int -> zero-ref "field V52._length (fldOffset=0x8)" P-INDEP
;* V370 tmp350 [V370 ] ( 0, 0 ) byref -> zero-ref "field V55._reference (fldOffset=0x0)" P-INDEP
;* V371 tmp351 [V371 ] ( 0, 0 ) int -> zero-ref "field V55._length (fldOffset=0x8)" P-INDEP
;* V372 tmp352 [V372 ] ( 0, 0 ) byref -> zero-ref "field V56._reference (fldOffset=0x0)" P-INDEP
;* V373 tmp353 [V373 ] ( 0, 0 ) int -> zero-ref "field V56._length (fldOffset=0x8)" P-INDEP
; V374 tmp354 [V374,T178] ( 2, 4 ) int -> rdi "field V57._location (fldOffset=0x0)" P-INDEP
; V375 tmp355 [V375,T179] ( 2, 4 ) int -> rdx "field V57._sizeOrLengthUnion (fldOffset=0x4)" P-INDEP
; V376 tmp356 [V376,T180] ( 2, 4 ) int -> rsi "field V57._numberOfRowsAndTypeUnion (fldOffset=0x8)" P-INDEP
;* V377 tmp357 [V377 ] ( 0, 0 ) byref -> zero-ref "field V60._reference (fldOffset=0x0)" P-INDEP
;* V378 tmp358 [V378 ] ( 0, 0 ) int -> zero-ref "field V60._length (fldOffset=0x8)" P-INDEP
; V379 tmp359 [V379,T50] ( 5, 10 ) byref -> r10 "field V61._reference (fldOffset=0x0)" P-INDEP
-; V380 tmp360 [V380,T124] ( 3, 6 ) int -> r8 "field V61._length (fldOffset=0x8)" P-INDEP
+; V380 tmp360 [V380,T117] ( 3, 6 ) int -> r8 "field V61._length (fldOffset=0x8)" P-INDEP
; V381 tmp361 [V381,T143] ( 2, 4 ) byref -> r10 "field V63._reference (fldOffset=0x0)" P-INDEP
; V382 tmp362 [V382,T181] ( 2, 4 ) int -> r8 "field V63._length (fldOffset=0x8)" P-INDEP
;* V383 tmp363 [V383 ] ( 0, 0 ) byref -> zero-ref "field V64._reference (fldOffset=0x0)" P-INDEP
;* V384 tmp364 [V384 ] ( 0, 0 ) int -> zero-ref "field V64._length (fldOffset=0x8)" P-INDEP
;* V385 tmp365 [V385 ] ( 0, 0 ) byref -> zero-ref "field V67._reference (fldOffset=0x0)" P-INDEP
;* V386 tmp366 [V386 ] ( 0, 0 ) int -> zero-ref "field V67._length (fldOffset=0x8)" P-INDEP
;* V387 tmp367 [V387 ] ( 0, 0 ) byref -> zero-ref "field V68._reference (fldOffset=0x0)" P-INDEP
;* V388 tmp368 [V388 ] ( 0, 0 ) int -> zero-ref "field V68._length (fldOffset=0x8)" P-INDEP
;* V389 tmp369 [V389 ] ( 0, 0 ) byref -> zero-ref "field V70._reference (fldOffset=0x0)" P-INDEP
;* V390 tmp370 [V390 ] ( 0, 0 ) int -> zero-ref "field V70._length (fldOffset=0x8)" P-INDEP
;* V391 tmp371 [V391 ] ( 0, 0 ) byref -> zero-ref "field V71._reference (fldOffset=0x0)" P-INDEP
;* V392 tmp372 [V392 ] ( 0, 0 ) int -> zero-ref "field V71._length (fldOffset=0x8)" P-INDEP
; V393 tmp373 [V393,T57] ( 4, 8 ) byref -> rdx "field V73._reference (fldOffset=0x0)" P-INDEP
-; V394 tmp374 [V394,T67] ( 4, 8 ) int -> rdi "field V73._length (fldOffset=0x8)" P-INDEP
+; V394 tmp374 [V394,T118] ( 3, 6 ) int -> rdi "field V73._length (fldOffset=0x8)" P-INDEP
; V395 tmp375 [V395,T144] ( 2, 4 ) byref -> rdx "field V76._reference (fldOffset=0x0)" P-INDEP
; V396 tmp376 [V396,T182] ( 2, 4 ) int -> rdi "field V76._length (fldOffset=0x8)" P-INDEP
;* V397 tmp377 [V397 ] ( 0, 0 ) byref -> zero-ref "field V77._reference (fldOffset=0x0)" P-INDEP
;* V398 tmp378 [V398 ] ( 0, 0 ) int -> zero-ref "field V77._length (fldOffset=0x8)" P-INDEP
;* V399 tmp379 [V399 ] ( 0, 0 ) byref -> zero-ref "field V80._reference (fldOffset=0x0)" P-INDEP
;* V400 tmp380 [V400 ] ( 0, 0 ) int -> zero-ref "field V80._length (fldOffset=0x8)" P-INDEP
;* V401 tmp381 [V401 ] ( 0, 0 ) byref -> zero-ref "field V81._reference (fldOffset=0x0)" P-INDEP
;* V402 tmp382 [V402 ] ( 0, 0 ) int -> zero-ref "field V81._length (fldOffset=0x8)" P-INDEP
;* V403 tmp383 [V403 ] ( 0, 0 ) byref -> zero-ref "field V84._reference (fldOffset=0x0)" P-INDEP
;* V404 tmp384 [V404 ] ( 0, 0 ) int -> zero-ref "field V84._length (fldOffset=0x8)" P-INDEP
;* V405 tmp385 [V405 ] ( 0, 0 ) byref -> zero-ref "field V85._reference (fldOffset=0x0)" P-INDEP
;* V406 tmp386 [V406 ] ( 0, 0 ) int -> zero-ref "field V85._length (fldOffset=0x8)" P-INDEP
;* V407 tmp387 [V407 ] ( 0, 0 ) byref -> zero-ref "field V86._reference (fldOffset=0x0)" P-INDEP
;* V408 tmp388 [V408 ] ( 0, 0 ) int -> zero-ref "field V86._length (fldOffset=0x8)" P-INDEP
;* V409 tmp389 [V409 ] ( 0, 0 ) byref -> zero-ref "field V87._reference (fldOffset=0x0)" P-INDEP
;* V410 tmp390 [V410 ] ( 0, 0 ) int -> zero-ref "field V87._length (fldOffset=0x8)" P-INDEP
;* V411 tmp391 [V411 ] ( 0, 0 ) byref -> zero-ref "field V88._reference (fldOffset=0x0)" P-INDEP
;* V412 tmp392 [V412 ] ( 0, 0 ) int -> zero-ref "field V88._length (fldOffset=0x8)" P-INDEP
;* V413 tmp393 [V413 ] ( 0, 0 ) byref -> zero-ref "field V89._reference (fldOffset=0x0)" P-INDEP
;* V414 tmp394 [V414 ] ( 0, 0 ) int -> zero-ref "field V89._length (fldOffset=0x8)" P-INDEP
; V415 tmp395 [V415,T58] ( 4, 8 ) byref -> rax "field V91._reference (fldOffset=0x0)" P-INDEP
-; V416 tmp396 [V416,T68] ( 4, 8 ) int -> rdi "field V91._length (fldOffset=0x8)" P-INDEP
+; V416 tmp396 [V416,T119] ( 3, 6 ) int -> rdi "field V91._length (fldOffset=0x8)" P-INDEP
; V417 tmp397 [V417,T145] ( 2, 4 ) byref -> rax "field V94._reference (fldOffset=0x0)" P-INDEP
; V418 tmp398 [V418,T183] ( 2, 4 ) int -> rdi "field V94._length (fldOffset=0x8)" P-INDEP
;* V419 tmp399 [V419 ] ( 0, 0 ) byref -> zero-ref "field V95._reference (fldOffset=0x0)" P-INDEP
;* V420 tmp400 [V420 ] ( 0, 0 ) int -> zero-ref "field V95._length (fldOffset=0x8)" P-INDEP
;* V421 tmp401 [V421 ] ( 0, 0 ) byref -> zero-ref "field V98._reference (fldOffset=0x0)" P-INDEP
;* V422 tmp402 [V422 ] ( 0, 0 ) int -> zero-ref "field V98._length (fldOffset=0x8)" P-INDEP
;* V423 tmp403 [V423 ] ( 0, 0 ) byref -> zero-ref "field V99._reference (fldOffset=0x0)" P-INDEP
;* V424 tmp404 [V424 ] ( 0, 0 ) int -> zero-ref "field V99._length (fldOffset=0x8)" P-INDEP
;* V425 tmp405 [V425 ] ( 0, 0 ) byref -> zero-ref "field V102._reference (fldOffset=0x0)" P-INDEP
;* V426 tmp406 [V426 ] ( 0, 0 ) int -> zero-ref "field V102._length (fldOffset=0x8)" P-INDEP
;* V427 tmp407 [V427 ] ( 0, 0 ) byref -> zero-ref "field V103._reference (fldOffset=0x0)" P-INDEP
;* V428 tmp408 [V428 ] ( 0, 0 ) int -> zero-ref "field V103._length (fldOffset=0x8)" P-INDEP
;* V429 tmp409 [V429 ] ( 0, 0 ) byref -> zero-ref "field V104._reference (fldOffset=0x0)" P-INDEP
;* V430 tmp410 [V430 ] ( 0, 0 ) int -> zero-ref "field V104._length (fldOffset=0x8)" P-INDEP
;* V431 tmp411 [V431 ] ( 0, 0 ) byref -> zero-ref "field V105._reference (fldOffset=0x0)" P-INDEP
;* V432 tmp412 [V432 ] ( 0, 0 ) int -> zero-ref "field V105._length (fldOffset=0x8)" P-INDEP
;* V433 tmp413 [V433 ] ( 0, 0 ) byref -> zero-ref "field V106._reference (fldOffset=0x0)" P-INDEP
;* V434 tmp414 [V434 ] ( 0, 0 ) int -> zero-ref "field V106._length (fldOffset=0x8)" P-INDEP
;* V435 tmp415 [V435 ] ( 0, 0 ) byref -> zero-ref "field V107._reference (fldOffset=0x0)" P-INDEP
;* V436 tmp416 [V436 ] ( 0, 0 ) int -> zero-ref "field V107._length (fldOffset=0x8)" P-INDEP
; V437 tmp417 [V437,T184] ( 2, 4 ) int -> rdi "field V108.SizeOrLength (fldOffset=0x0)" P-INDEP
;* V438 tmp418 [V438 ] ( 0, 0 ) int -> zero-ref "field V108.NumberOfRows (fldOffset=0x4)" P-INDEP
-; V439 tmp419 [V439,T117] ( 3, 6 ) byref -> rdx "field V109._reference (fldOffset=0x0)" P-INDEP
-; V440 tmp420 [V440,T125] ( 3, 6 ) int -> rdi "field V109._length (fldOffset=0x8)" P-INDEP
+; V439 tmp419 [V439,T110] ( 3, 6 ) byref -> rdx "field V109._reference (fldOffset=0x0)" P-INDEP
+; V440 tmp420 [V440,T120] ( 3, 6 ) int -> rdi "field V109._length (fldOffset=0x8)" P-INDEP
; V441 tmp421 [V441,T146] ( 2, 4 ) byref -> rdx "field V112._reference (fldOffset=0x0)" P-INDEP
; V442 tmp422 [V442,T185] ( 2, 4 ) int -> rdi "field V112._length (fldOffset=0x8)" P-INDEP
;* V443 tmp423 [V443 ] ( 0, 0 ) byref -> zero-ref "field V113._reference (fldOffset=0x0)" P-INDEP
;* V444 tmp424 [V444 ] ( 0, 0 ) int -> zero-ref "field V113._length (fldOffset=0x8)" P-INDEP
;* V445 tmp425 [V445 ] ( 0, 0 ) byref -> zero-ref "field V116._reference (fldOffset=0x0)" P-INDEP
;* V446 tmp426 [V446 ] ( 0, 0 ) int -> zero-ref "field V116._length (fldOffset=0x8)" P-INDEP
;* V447 tmp427 [V447 ] ( 0, 0 ) byref -> zero-ref "field V117._reference (fldOffset=0x0)" P-INDEP
;* V448 tmp428 [V448 ] ( 0, 0 ) int -> zero-ref "field V117._length (fldOffset=0x8)" P-INDEP
;* V449 tmp429 [V449 ] ( 0, 0 ) byref -> zero-ref "field V120._reference (fldOffset=0x0)" P-INDEP
;* V450 tmp430 [V450 ] ( 0, 0 ) int -> zero-ref "field V120._length (fldOffset=0x8)" P-INDEP
;* V451 tmp431 [V451 ] ( 0, 0 ) byref -> zero-ref "field V121._reference (fldOffset=0x0)" P-INDEP
;* V452 tmp432 [V452 ] ( 0, 0 ) int -> zero-ref "field V121._length (fldOffset=0x8)" P-INDEP
; V453 tmp433 [V453,T186] ( 2, 4 ) int -> rdi "field V122._location (fldOffset=0x0)" P-INDEP
;* V454 tmp434 [V454,T217] ( 0, 0 ) int -> zero-ref "field V122._sizeOrLengthUnion (fldOffset=0x4)" P-INDEP
; V455 tmp435 [V455,T187] ( 2, 4 ) int -> rax "field V122._numberOfRowsAndTypeUnion (fldOffset=0x8)" P-INDEP
;* V456 tmp436 [V456 ] ( 0, 0 ) byref -> zero-ref "field V124._reference (fldOffset=0x0)" P-INDEP
;* V457 tmp437 [V457 ] ( 0, 0 ) int -> zero-ref "field V124._length (fldOffset=0x8)" P-INDEP
; V458 tmp438 [V458,T51] ( 5, 10 ) byref -> rsi "field V125._reference (fldOffset=0x0)" P-INDEP
-; V459 tmp439 [V459,T126] ( 3, 6 ) int -> rcx "field V125._length (fldOffset=0x8)" P-INDEP
+; V459 tmp439 [V459,T121] ( 3, 6 ) int -> rcx "field V125._length (fldOffset=0x8)" P-INDEP
; V460 tmp440 [V460,T147] ( 2, 4 ) byref -> rsi "field V127._reference (fldOffset=0x0)" P-INDEP
; V461 tmp441 [V461,T188] ( 2, 4 ) int -> rcx "field V127._length (fldOffset=0x8)" P-INDEP
;* V462 tmp442 [V462 ] ( 0, 0 ) byref -> zero-ref "field V128._reference (fldOffset=0x0)" P-INDEP
;* V463 tmp443 [V463 ] ( 0, 0 ) int -> zero-ref "field V128._length (fldOffset=0x8)" P-INDEP
;* V464 tmp444 [V464 ] ( 0, 0 ) byref -> zero-ref "field V131._reference (fldOffset=0x0)" P-INDEP
;* V465 tmp445 [V465 ] ( 0, 0 ) int -> zero-ref "field V131._length (fldOffset=0x8)" P-INDEP
;* V466 tmp446 [V466 ] ( 0, 0 ) byref -> zero-ref "field V132._reference (fldOffset=0x0)" P-INDEP
;* V467 tmp447 [V467 ] ( 0, 0 ) int -> zero-ref "field V132._length (fldOffset=0x8)" P-INDEP
;* V468 tmp448 [V468 ] ( 0, 0 ) int -> zero-ref "field V135.SizeOrLength (fldOffset=0x0)" P-INDEP
;* V469 tmp449 [V469 ] ( 0, 0 ) int -> zero-ref "field V135.NumberOfRows (fldOffset=0x4)" P-INDEP
;* V470 tmp450 [V470 ] ( 0, 0 ) byref -> zero-ref "field V136._reference (fldOffset=0x0)" P-INDEP
;* V471 tmp451 [V471 ] ( 0, 0 ) int -> zero-ref "field V136._length (fldOffset=0x8)" P-INDEP
; V472 tmp452 [V472,T59] ( 4, 8 ) byref -> rax "field V137._reference (fldOffset=0x0)" P-INDEP
-; V473 tmp453 [V473,T127] ( 3, 6 ) int -> rdi "field V137._length (fldOffset=0x8)" P-INDEP
+; V473 tmp453 [V473,T122] ( 3, 6 ) int -> rdi "field V137._length (fldOffset=0x8)" P-INDEP
; V474 tmp454 [V474,T148] ( 2, 4 ) byref -> rax "field V140._reference (fldOffset=0x0)" P-INDEP
; V475 tmp455 [V475,T189] ( 2, 4 ) int -> rdi "field V140._length (fldOffset=0x8)" P-INDEP
;* V476 tmp456 [V476 ] ( 0, 0 ) byref -> zero-ref "field V141._reference (fldOffset=0x0)" P-INDEP
;* V477 tmp457 [V477 ] ( 0, 0 ) int -> zero-ref "field V141._length (fldOffset=0x8)" P-INDEP
;* V478 tmp458 [V478 ] ( 0, 0 ) byref -> zero-ref "field V144._reference (fldOffset=0x0)" P-INDEP
;* V479 tmp459 [V479 ] ( 0, 0 ) int -> zero-ref "field V144._length (fldOffset=0x8)" P-INDEP
;* V480 tmp460 [V480 ] ( 0, 0 ) byref -> zero-ref "field V145._reference (fldOffset=0x0)" P-INDEP
;* V481 tmp461 [V481 ] ( 0, 0 ) int -> zero-ref "field V145._length (fldOffset=0x8)" P-INDEP
;* V482 tmp462 [V482 ] ( 0, 0 ) byref -> zero-ref "field V147._reference (fldOffset=0x0)" P-INDEP
;* V483 tmp463 [V483 ] ( 0, 0 ) int -> zero-ref "field V147._length (fldOffset=0x8)" P-INDEP
-; V484 tmp464 [V484,T118] ( 3, 6 ) byref -> rdx "field V148._reference (fldOffset=0x0)" P-INDEP
-; V485 tmp465 [V485,T128] ( 3, 6 ) int -> rdi "field V148._length (fldOffset=0x8)" P-INDEP
+; V484 tmp464 [V484,T111] ( 3, 6 ) byref -> rdx "field V148._reference (fldOffset=0x0)" P-INDEP
+; V485 tmp465 [V485,T123] ( 3, 6 ) int -> rdi "field V148._length (fldOffset=0x8)" P-INDEP
; V486 tmp466 [V486,T149] ( 2, 4 ) byref -> rdx "field V151._reference (fldOffset=0x0)" P-INDEP
; V487 tmp467 [V487,T190] ( 2, 4 ) int -> rdi "field V151._length (fldOffset=0x8)" P-INDEP
;* V488 tmp468 [V488 ] ( 0, 0 ) byref -> zero-ref "field V152._reference (fldOffset=0x0)" P-INDEP
;* V489 tmp469 [V489 ] ( 0, 0 ) int -> zero-ref "field V152._length (fldOffset=0x8)" P-INDEP
;* V490 tmp470 [V490 ] ( 0, 0 ) byref -> zero-ref "field V155._reference (fldOffset=0x0)" P-INDEP
;* V491 tmp471 [V491 ] ( 0, 0 ) int -> zero-ref "field V155._length (fldOffset=0x8)" P-INDEP
;* V492 tmp472 [V492 ] ( 0, 0 ) byref -> zero-ref "field V156._reference (fldOffset=0x0)" P-INDEP
;* V493 tmp473 [V493 ] ( 0, 0 ) int -> zero-ref "field V156._length (fldOffset=0x8)" P-INDEP
;* V494 tmp474 [V494 ] ( 0, 0 ) byref -> zero-ref "field V157._reference (fldOffset=0x0)" P-INDEP
;* V495 tmp475 [V495 ] ( 0, 0 ) int -> zero-ref "field V157._length (fldOffset=0x8)" P-INDEP
;* V496 tmp476 [V496 ] ( 0, 0 ) byref -> zero-ref "field V158._reference (fldOffset=0x0)" P-INDEP
;* V497 tmp477 [V497 ] ( 0, 0 ) int -> zero-ref "field V158._length (fldOffset=0x8)" P-INDEP
; V498 tmp478 [V498,T60] ( 4, 8 ) byref -> rdx "field V160._reference (fldOffset=0x0)" P-INDEP
-; V499 tmp479 [V499,T69] ( 4, 8 ) int -> rdi "field V160._length (fldOffset=0x8)" P-INDEP
+; V499 tmp479 [V499,T124] ( 3, 6 ) int -> rdi "field V160._length (fldOffset=0x8)" P-INDEP
; V500 tmp480 [V500,T150] ( 2, 4 ) byref -> rdx "field V163._reference (fldOffset=0x0)" P-INDEP
; V501 tmp481 [V501,T191] ( 2, 4 ) int -> rdi "field V163._length (fldOffset=0x8)" P-INDEP
;* V502 tmp482 [V502 ] ( 0, 0 ) byref -> zero-ref "field V164._reference (fldOffset=0x0)" P-INDEP
;* V503 tmp483 [V503 ] ( 0, 0 ) int -> zero-ref "field V164._length (fldOffset=0x8)" P-INDEP
;* V504 tmp484 [V504 ] ( 0, 0 ) byref -> zero-ref "field V167._reference (fldOffset=0x0)" P-INDEP
;* V505 tmp485 [V505 ] ( 0, 0 ) int -> zero-ref "field V167._length (fldOffset=0x8)" P-INDEP
;* V506 tmp486 [V506 ] ( 0, 0 ) byref -> zero-ref "field V168._reference (fldOffset=0x0)" P-INDEP
;* V507 tmp487 [V507 ] ( 0, 0 ) int -> zero-ref "field V168._length (fldOffset=0x8)" P-INDEP
;* V508 tmp488 [V508 ] ( 0, 0 ) byref -> zero-ref "field V171._reference (fldOffset=0x0)" P-INDEP
;* V509 tmp489 [V509 ] ( 0, 0 ) int -> zero-ref "field V171._length (fldOffset=0x8)" P-INDEP
;* V510 tmp490 [V510 ] ( 0, 0 ) byref -> zero-ref "field V172._reference (fldOffset=0x0)" P-INDEP
;* V511 tmp491 [V511 ] ( 0, 0 ) int -> zero-ref "field V172._length (fldOffset=0x8)" P-INDEP
;* V512 tmp492 [V512 ] ( 0, 0 ) byref -> zero-ref "field V173._reference (fldOffset=0x0)" P-INDEP
;* V513 tmp493 [V513 ] ( 0, 0 ) int -> zero-ref "field V173._length (fldOffset=0x8)" P-INDEP
;* V514 tmp494 [V514 ] ( 0, 0 ) byref -> zero-ref "field V174._reference (fldOffset=0x0)" P-INDEP
;* V515 tmp495 [V515 ] ( 0, 0 ) int -> zero-ref "field V174._length (fldOffset=0x8)" P-INDEP
;* V516 tmp496 [V516 ] ( 0, 0 ) byref -> zero-ref "field V175._reference (fldOffset=0x0)" P-INDEP
;* V517 tmp497 [V517 ] ( 0, 0 ) int -> zero-ref "field V175._length (fldOffset=0x8)" P-INDEP
;* V518 tmp498 [V518 ] ( 0, 0 ) byref -> zero-ref "field V176._reference (fldOffset=0x0)" P-INDEP
;* V519 tmp499 [V519 ] ( 0, 0 ) int -> zero-ref "field V176._length (fldOffset=0x8)" P-INDEP
; V520 tmp500 [V520,T61] ( 4, 8 ) byref -> rcx "field V178._reference (fldOffset=0x0)" P-INDEP
-; V521 tmp501 [V521,T70] ( 4, 8 ) int -> rdi "field V178._length (fldOffset=0x8)" P-INDEP
+; V521 tmp501 [V521,T125] ( 3, 6 ) int -> rdi "field V178._length (fldOffset=0x8)" P-INDEP
; V522 tmp502 [V522,T151] ( 2, 4 ) byref -> rcx "field V181._reference (fldOffset=0x0)" P-INDEP
; V523 tmp503 [V523,T192] ( 2, 4 ) int -> rdi "field V181._length (fldOffset=0x8)" P-INDEP
;* V524 tmp504 [V524 ] ( 0, 0 ) byref -> zero-ref "field V182._reference (fldOffset=0x0)" P-INDEP
;* V525 tmp505 [V525 ] ( 0, 0 ) int -> zero-ref "field V182._length (fldOffset=0x8)" P-INDEP
;* V526 tmp506 [V526 ] ( 0, 0 ) byref -> zero-ref "field V185._reference (fldOffset=0x0)" P-INDEP
;* V527 tmp507 [V527 ] ( 0, 0 ) int -> zero-ref "field V185._length (fldOffset=0x8)" P-INDEP
;* V528 tmp508 [V528 ] ( 0, 0 ) byref -> zero-ref "field V186._reference (fldOffset=0x0)" P-INDEP
;* V529 tmp509 [V529 ] ( 0, 0 ) int -> zero-ref "field V186._length (fldOffset=0x8)" P-INDEP
;* V530 tmp510 [V530 ] ( 0, 0 ) byref -> zero-ref "field V189._reference (fldOffset=0x0)" P-INDEP
;* V531 tmp511 [V531 ] ( 0, 0 ) int -> zero-ref "field V189._length (fldOffset=0x8)" P-INDEP
;* V532 tmp512 [V532 ] ( 0, 0 ) byref -> zero-ref "field V190._reference (fldOffset=0x0)" P-INDEP
;* V533 tmp513 [V533 ] ( 0, 0 ) int -> zero-ref "field V190._length (fldOffset=0x8)" P-INDEP
;* V534 tmp514 [V534 ] ( 0, 0 ) byref -> zero-ref "field V191._reference (fldOffset=0x0)" P-INDEP
;* V535 tmp515 [V535 ] ( 0, 0 ) int -> zero-ref "field V191._length (fldOffset=0x8)" P-INDEP
;* V536 tmp516 [V536 ] ( 0, 0 ) byref -> zero-ref "field V192._reference (fldOffset=0x0)" P-INDEP
;* V537 tmp517 [V537 ] ( 0, 0 ) int -> zero-ref "field V192._length (fldOffset=0x8)" P-INDEP
; V538 tmp518 [V538,T193] ( 2, 4 ) int -> rdi "field V193._location (fldOffset=0x0)" P-INDEP
; V539 tmp519 [V539,T194] ( 2, 4 ) int -> rax "field V193._sizeOrLengthUnion (fldOffset=0x4)" P-INDEP
; V540 tmp520 [V540,T195] ( 2, 4 ) int -> rcx "field V193._numberOfRowsAndTypeUnion (fldOffset=0x8)" P-INDEP
;* V541 tmp521 [V541 ] ( 0, 0 ) byref -> zero-ref "field V196._reference (fldOffset=0x0)" P-INDEP
;* V542 tmp522 [V542 ] ( 0, 0 ) int -> zero-ref "field V196._length (fldOffset=0x8)" P-INDEP
; V543 tmp523 [V543,T52] ( 5, 10 ) byref -> r8 "field V197._reference (fldOffset=0x0)" P-INDEP
-; V544 tmp524 [V544,T129] ( 3, 6 ) int -> rdx "field V197._length (fldOffset=0x8)" P-INDEP
+; V544 tmp524 [V544,T126] ( 3, 6 ) int -> rdx "field V197._length (fldOffset=0x8)" P-INDEP
; V545 tmp525 [V545,T152] ( 2, 4 ) byref -> r8 "field V199._reference (fldOffset=0x0)" P-INDEP
; V546 tmp526 [V546,T196] ( 2, 4 ) int -> rdx "field V199._length (fldOffset=0x8)" P-INDEP
;* V547 tmp527 [V547 ] ( 0, 0 ) byref -> zero-ref "field V200._reference (fldOffset=0x0)" P-INDEP
;* V548 tmp528 [V548 ] ( 0, 0 ) int -> zero-ref "field V200._length (fldOffset=0x8)" P-INDEP
;* V549 tmp529 [V549 ] ( 0, 0 ) byref -> zero-ref "field V203._reference (fldOffset=0x0)" P-INDEP
;* V550 tmp530 [V550 ] ( 0, 0 ) int -> zero-ref "field V203._length (fldOffset=0x8)" P-INDEP
;* V551 tmp531 [V551 ] ( 0, 0 ) byref -> zero-ref "field V204._reference (fldOffset=0x0)" P-INDEP
;* V552 tmp532 [V552 ] ( 0, 0 ) int -> zero-ref "field V204._length (fldOffset=0x8)" P-INDEP
;* V553 tmp533 [V553 ] ( 0, 0 ) byref -> zero-ref "field V206._reference (fldOffset=0x0)" P-INDEP
;* V554 tmp534 [V554 ] ( 0, 0 ) int -> zero-ref "field V206._length (fldOffset=0x8)" P-INDEP
;* V555 tmp535 [V555 ] ( 0, 0 ) byref -> zero-ref "field V207._reference (fldOffset=0x0)" P-INDEP
;* V556 tmp536 [V556 ] ( 0, 0 ) int -> zero-ref "field V207._length (fldOffset=0x8)" P-INDEP
; V557 tmp537 [V557,T62] ( 4, 8 ) byref -> rax "field V209._reference (fldOffset=0x0)" P-INDEP
-; V558 tmp538 [V558,T71] ( 4, 8 ) int -> rdi "field V209._length (fldOffset=0x8)" P-INDEP
+; V558 tmp538 [V558,T127] ( 3, 6 ) int -> rdi "field V209._length (fldOffset=0x8)" P-INDEP
; V559 tmp539 [V559,T153] ( 2, 4 ) byref -> rax "field V212._reference (fldOffset=0x0)" P-INDEP
; V560 tmp540 [V560,T197] ( 2, 4 ) int -> rdi "field V212._length (fldOffset=0x8)" P-INDEP
;* V561 tmp541 [V561 ] ( 0, 0 ) byref -> zero-ref "field V213._reference (fldOffset=0x0)" P-INDEP
;* V562 tmp542 [V562 ] ( 0, 0 ) int -> zero-ref "field V213._length (fldOffset=0x8)" P-INDEP
;* V563 tmp543 [V563 ] ( 0, 0 ) byref -> zero-ref "field V216._reference (fldOffset=0x0)" P-INDEP
;* V564 tmp544 [V564 ] ( 0, 0 ) int -> zero-ref "field V216._length (fldOffset=0x8)" P-INDEP
;* V565 tmp545 [V565 ] ( 0, 0 ) byref -> zero-ref "field V217._reference (fldOffset=0x0)" P-INDEP
;* V566 tmp546 [V566 ] ( 0, 0 ) int -> zero-ref "field V217._length (fldOffset=0x8)" P-INDEP
;* V567 tmp547 [V567 ] ( 0, 0 ) byref -> zero-ref "field V220._reference (fldOffset=0x0)" P-INDEP
;* V568 tmp548 [V568 ] ( 0, 0 ) int -> zero-ref "field V220._length (fldOffset=0x8)" P-INDEP
;* V569 tmp549 [V569 ] ( 0, 0 ) byref -> zero-ref "field V221._reference (fldOffset=0x0)" P-INDEP
;* V570 tmp550 [V570 ] ( 0, 0 ) int -> zero-ref "field V221._length (fldOffset=0x8)" P-INDEP
;* V571 tmp551 [V571 ] ( 0, 0 ) byref -> zero-ref "field V222._reference (fldOffset=0x0)" P-INDEP
;* V572 tmp552 [V572 ] ( 0, 0 ) int -> zero-ref "field V222._length (fldOffset=0x8)" P-INDEP
;* V573 tmp553 [V573 ] ( 0, 0 ) byref -> zero-ref "field V223._reference (fldOffset=0x0)" P-INDEP
;* V574 tmp554 [V574 ] ( 0, 0 ) int -> zero-ref "field V223._length (fldOffset=0x8)" P-INDEP
;* V575 tmp555 [V575 ] ( 0, 0 ) byref -> zero-ref "field V224._reference (fldOffset=0x0)" P-INDEP
;* V576 tmp556 [V576 ] ( 0, 0 ) int -> zero-ref "field V224._length (fldOffset=0x8)" P-INDEP
;* V577 tmp557 [V577 ] ( 0, 0 ) byref -> zero-ref "field V225._reference (fldOffset=0x0)" P-INDEP
;* V578 tmp558 [V578 ] ( 0, 0 ) int -> zero-ref "field V225._length (fldOffset=0x8)" P-INDEP
; V579 tmp559 [V579,T198] ( 2, 4 ) int -> r13 "field V226.SizeOrLength (fldOffset=0x0)" P-INDEP
; V580 tmp560 [V580,T199] ( 2, 4 ) int -> rdi "field V226.NumberOfRows (fldOffset=0x4)" P-INDEP
; V581 tmp561 [V581,T63] ( 4, 8 ) byref -> rdx "field V227._reference (fldOffset=0x0)" P-INDEP
-; V582 tmp562 [V582,T130] ( 3, 6 ) int -> rdi "field V227._length (fldOffset=0x8)" P-INDEP
+; V582 tmp562 [V582,T128] ( 3, 6 ) int -> rdi "field V227._length (fldOffset=0x8)" P-INDEP
; V583 tmp563 [V583,T154] ( 2, 4 ) byref -> rdx "field V230._reference (fldOffset=0x0)" P-INDEP
; V584 tmp564 [V584,T200] ( 2, 4 ) int -> rdi "field V230._length (fldOffset=0x8)" P-INDEP
;* V585 tmp565 [V585 ] ( 0, 0 ) byref -> zero-ref "field V231._reference (fldOffset=0x0)" P-INDEP
;* V586 tmp566 [V586 ] ( 0, 0 ) int -> zero-ref "field V231._length (fldOffset=0x8)" P-INDEP
;* V587 tmp567 [V587 ] ( 0, 0 ) byref -> zero-ref "field V234._reference (fldOffset=0x0)" P-INDEP
;* V588 tmp568 [V588 ] ( 0, 0 ) int -> zero-ref "field V234._length (fldOffset=0x8)" P-INDEP
;* V589 tmp569 [V589 ] ( 0, 0 ) byref -> zero-ref "field V235._reference (fldOffset=0x0)" P-INDEP
;* V590 tmp570 [V590 ] ( 0, 0 ) int -> zero-ref "field V235._length (fldOffset=0x8)" P-INDEP
;* V591 tmp571 [V591 ] ( 0, 0 ) byref -> zero-ref "field V238._reference (fldOffset=0x0)" P-INDEP
;* V592 tmp572 [V592 ] ( 0, 0 ) int -> zero-ref "field V238._length (fldOffset=0x8)" P-INDEP
;* V593 tmp573 [V593 ] ( 0, 0 ) byref -> zero-ref "field V239._reference (fldOffset=0x0)" P-INDEP
;* V594 tmp574 [V594 ] ( 0, 0 ) int -> zero-ref "field V239._length (fldOffset=0x8)" P-INDEP
; V595 tmp575 [V595,T201] ( 2, 4 ) int -> rdi "field V240._location (fldOffset=0x0)" P-INDEP
; V596 tmp576 [V596,T202] ( 2, 4 ) int -> rsi "field V240._sizeOrLengthUnion (fldOffset=0x4)" P-INDEP
; V597 tmp577 [V597,T203] ( 2, 4 ) int -> rax "field V240._numberOfRowsAndTypeUnion (fldOffset=0x8)" P-INDEP
;* V598 tmp578 [V598 ] ( 0, 0 ) byref -> zero-ref "field V244._reference (fldOffset=0x0)" P-INDEP
;* V599 tmp579 [V599 ] ( 0, 0 ) int -> zero-ref "field V244._length (fldOffset=0x8)" P-INDEP
; V600 tmp580 [V600,T53] ( 5, 10 ) byref -> r8 "field V246._reference (fldOffset=0x0)" P-INDEP
-; V601 tmp581 [V601,T131] ( 3, 6 ) int -> rcx "field V246._length (fldOffset=0x8)" P-INDEP
+; V601 tmp581 [V601,T129] ( 3, 6 ) int -> rcx "field V246._length (fldOffset=0x8)" P-INDEP
; V602 tmp582 [V602,T155] ( 2, 4 ) byref -> r8 "field V248._reference (fldOffset=0x0)" P-INDEP
; V603 tmp583 [V603,T204] ( 2, 4 ) int -> rcx "field V248._length (fldOffset=0x8)" P-INDEP
;* V604 tmp584 [V604 ] ( 0, 0 ) byref -> zero-ref "field V249._reference (fldOffset=0x0)" P-INDEP
;* V605 tmp585 [V605 ] ( 0, 0 ) int -> zero-ref "field V249._length (fldOffset=0x8)" P-INDEP
;* V606 tmp586 [V606 ] ( 0, 0 ) byref -> zero-ref "field V252._reference (fldOffset=0x0)" P-INDEP
;* V607 tmp587 [V607 ] ( 0, 0 ) int -> zero-ref "field V252._length (fldOffset=0x8)" P-INDEP
;* V608 tmp588 [V608 ] ( 0, 0 ) byref -> zero-ref "field V253._reference (fldOffset=0x0)" P-INDEP
;* V609 tmp589 [V609 ] ( 0, 0 ) int -> zero-ref "field V253._length (fldOffset=0x8)" P-INDEP
;* V610 tmp590 [V610 ] ( 0, 0 ) byref -> zero-ref "field V256._reference (fldOffset=0x0)" P-INDEP
;* V611 tmp591 [V611 ] ( 0, 0 ) int -> zero-ref "field V256._length (fldOffset=0x8)" P-INDEP
;* V612 tmp592 [V612 ] ( 0, 0 ) byref -> zero-ref "field V257._reference (fldOffset=0x0)" P-INDEP
;* V613 tmp593 [V613 ] ( 0, 0 ) int -> zero-ref "field V257._length (fldOffset=0x8)" P-INDEP
; V614 tmp594 [V614,T64] ( 4, 8 ) byref -> rax "field V259._reference (fldOffset=0x0)" P-INDEP
-; V615 tmp595 [V615,T72] ( 4, 8 ) int -> rsi "field V259._length (fldOffset=0x8)" P-INDEP
+; V615 tmp595 [V615,T130] ( 3, 6 ) int -> rsi "field V259._length (fldOffset=0x8)" P-INDEP
; V616 tmp596 [V616,T156] ( 2, 4 ) byref -> rax "field V262._reference (fldOffset=0x0)" P-INDEP
; V617 tmp597 [V617,T205] ( 2, 4 ) int -> rsi "field V262._length (fldOffset=0x8)" P-INDEP
;* V618 tmp598 [V618 ] ( 0, 0 ) byref -> zero-ref "field V263._reference (fldOffset=0x0)" P-INDEP
;* V619 tmp599 [V619 ] ( 0, 0 ) int -> zero-ref "field V263._length (fldOffset=0x8)" P-INDEP
;* V620 tmp600 [V620 ] ( 0, 0 ) byref -> zero-ref "field V266._reference (fldOffset=0x0)" P-INDEP
;* V621 tmp601 [V621 ] ( 0, 0 ) int -> zero-ref "field V266._length (fldOffset=0x8)" P-INDEP
;* V622 tmp602 [V622 ] ( 0, 0 ) byref -> zero-ref "field V267._reference (fldOffset=0x0)" P-INDEP
;* V623 tmp603 [V623 ] ( 0, 0 ) int -> zero-ref "field V267._length (fldOffset=0x8)" P-INDEP
;* V624 tmp604 [V624 ] ( 0, 0 ) byref -> zero-ref "field V270._reference (fldOffset=0x0)" P-INDEP
;* V625 tmp605 [V625 ] ( 0, 0 ) int -> zero-ref "field V270._length (fldOffset=0x8)" P-INDEP
;* V626 tmp606 [V626 ] ( 0, 0 ) byref -> zero-ref "field V271._reference (fldOffset=0x0)" P-INDEP
;* V627 tmp607 [V627 ] ( 0, 0 ) int -> zero-ref "field V271._length (fldOffset=0x8)" P-INDEP
;* V628 tmp608 [V628 ] ( 0, 0 ) byref -> zero-ref "field V272._reference (fldOffset=0x0)" P-INDEP
;* V629 tmp609 [V629 ] ( 0, 0 ) int -> zero-ref "field V272._length (fldOffset=0x8)" P-INDEP
;* V630 tmp610 [V630 ] ( 0, 0 ) byref -> zero-ref "field V273._reference (fldOffset=0x0)" P-INDEP
;* V631 tmp611 [V631 ] ( 0, 0 ) int -> zero-ref "field V273._length (fldOffset=0x8)" P-INDEP
; V632 tmp612 [V632,T206] ( 2, 4 ) int -> rdi "field V274._location (fldOffset=0x0)" P-INDEP
; V633 tmp613 [V633,T207] ( 2, 4 ) int -> rcx "field V274._sizeOrLengthUnion (fldOffset=0x4)" P-INDEP
; V634 tmp614 [V634,T208] ( 2, 4 ) int -> rax "field V274._numberOfRowsAndTypeUnion (fldOffset=0x8)" P-INDEP
;* V635 tmp615 [V635 ] ( 0, 0 ) byref -> zero-ref "field V278._reference (fldOffset=0x0)" P-INDEP
;* V636 tmp616 [V636 ] ( 0, 0 ) int -> zero-ref "field V278._length (fldOffset=0x8)" P-INDEP
; V637 tmp617 [V637,T54] ( 5, 10 ) byref -> r8 "field V280._reference (fldOffset=0x0)" P-INDEP
-; V638 tmp618 [V638,T132] ( 3, 6 ) int -> rdx "field V280._length (fldOffset=0x8)" P-INDEP
+; V638 tmp618 [V638,T131] ( 3, 6 ) int -> rdx "field V280._length (fldOffset=0x8)" P-INDEP
; V639 tmp619 [V639,T157] ( 2, 4 ) byref -> r8 "field V282._reference (fldOffset=0x0)" P-INDEP
; V640 tmp620 [V640,T209] ( 2, 4 ) int -> rdx "field V282._length (fldOffset=0x8)" P-INDEP
;* V641 tmp621 [V641 ] ( 0, 0 ) byref -> zero-ref "field V283._reference (fldOffset=0x0)" P-INDEP
;* V642 tmp622 [V642 ] ( 0, 0 ) int -> zero-ref "field V283._length (fldOffset=0x8)" P-INDEP
;* V643 tmp623 [V643 ] ( 0, 0 ) byref -> zero-ref "field V286._reference (fldOffset=0x0)" P-INDEP
;* V644 tmp624 [V644 ] ( 0, 0 ) int -> zero-ref "field V286._length (fldOffset=0x8)" P-INDEP
;* V645 tmp625 [V645 ] ( 0, 0 ) byref -> zero-ref "field V287._reference (fldOffset=0x0)" P-INDEP
;* V646 tmp626 [V646 ] ( 0, 0 ) int -> zero-ref "field V287._length (fldOffset=0x8)" P-INDEP
;* V647 tmp627 [V647 ] ( 0, 0 ) byref -> zero-ref "field V290._reference (fldOffset=0x0)" P-INDEP
;* V648 tmp628 [V648 ] ( 0, 0 ) int -> zero-ref "field V290._length (fldOffset=0x8)" P-INDEP
;* V649 tmp629 [V649 ] ( 0, 0 ) byref -> zero-ref "field V291._reference (fldOffset=0x0)" P-INDEP
;* V650 tmp630 [V650 ] ( 0, 0 ) int -> zero-ref "field V291._length (fldOffset=0x8)" P-INDEP
; V651 tmp631 [V651,T65] ( 4, 8 ) byref -> rcx "field V293._reference (fldOffset=0x0)" P-INDEP
-; V652 tmp632 [V652,T73] ( 4, 8 ) int -> rax "field V293._length (fldOffset=0x8)" P-INDEP
+; V652 tmp632 [V652,T132] ( 3, 6 ) int -> rax "field V293._length (fldOffset=0x8)" P-INDEP
; V653 tmp633 [V653,T158] ( 2, 4 ) byref -> rcx "field V296._reference (fldOffset=0x0)" P-INDEP
; V654 tmp634 [V654,T210] ( 2, 4 ) int -> rax "field V296._length (fldOffset=0x8)" P-INDEP
;* V655 tmp635 [V655 ] ( 0, 0 ) byref -> zero-ref "field V297._reference (fldOffset=0x0)" P-INDEP
;* V656 tmp636 [V656 ] ( 0, 0 ) int -> zero-ref "field V297._length (fldOffset=0x8)" P-INDEP
;* V657 tmp637 [V657 ] ( 0, 0 ) byref -> zero-ref "field V300._reference (fldOffset=0x0)" P-INDEP
;* V658 tmp638 [V658 ] ( 0, 0 ) int -> zero-ref "field V300._length (fldOffset=0x8)" P-INDEP
;* V659 tmp639 [V659 ] ( 0, 0 ) byref -> zero-ref "field V301._reference (fldOffset=0x0)" P-INDEP
;* V660 tmp640 [V660 ] ( 0, 0 ) int -> zero-ref "field V301._length (fldOffset=0x8)" P-INDEP
;* V661 tmp641 [V661 ] ( 0, 0 ) byref -> zero-ref "field V304._reference (fldOffset=0x0)" P-INDEP
;* V662 tmp642 [V662 ] ( 0, 0 ) int -> zero-ref "field V304._length (fldOffset=0x8)" P-INDEP
;* V663 tmp643 [V663 ] ( 0, 0 ) byref -> zero-ref "field V305._reference (fldOffset=0x0)" P-INDEP
;* V664 tmp644 [V664 ] ( 0, 0 ) int -> zero-ref "field V305._length (fldOffset=0x8)" P-INDEP
;* V665 tmp645 [V665 ] ( 0, 0 ) byref -> zero-ref "field V306._reference (fldOffset=0x0)" P-INDEP
;* V666 tmp646 [V666 ] ( 0, 0 ) int -> zero-ref "field V306._length (fldOffset=0x8)" P-INDEP
;* V667 tmp647 [V667 ] ( 0, 0 ) byref -> zero-ref "field V307._reference (fldOffset=0x0)" P-INDEP
;* V668 tmp648 [V668 ] ( 0, 0 ) int -> zero-ref "field V307._length (fldOffset=0x8)" P-INDEP
; V669 tmp649 [V669,T211] ( 2, 4 ) int -> rcx "field V308._location (fldOffset=0x0)" P-INDEP
; V670 tmp650 [V670,T212] ( 2, 4 ) int -> r14 "field V308._sizeOrLengthUnion (fldOffset=0x4)" P-INDEP
; V671 tmp651 [V671,T213] ( 2, 4 ) int -> rax "field V308._numberOfRowsAndTypeUnion (fldOffset=0x8)" P-INDEP
;* V672 tmp652 [V672 ] ( 0, 0 ) byref -> zero-ref "field V311._reference (fldOffset=0x0)" P-INDEP
;* V673 tmp653 [V673 ] ( 0, 0 ) int -> zero-ref "field V311._length (fldOffset=0x8)" P-INDEP
; V674 tmp654 [V674,T55] ( 5, 10 ) byref -> rsi "field V312._reference (fldOffset=0x0)" P-INDEP
; V675 tmp655 [V675,T133] ( 3, 6 ) int -> rdi "field V312._length (fldOffset=0x8)" P-INDEP
; V676 tmp656 [V676,T159] ( 2, 4 ) byref -> rsi "field V314._reference (fldOffset=0x0)" P-INDEP
; V677 tmp657 [V677,T214] ( 2, 4 ) int -> rdi "field V314._length (fldOffset=0x8)" P-INDEP
;* V678 tmp658 [V678 ] ( 0, 0 ) byref -> zero-ref "field V315._reference (fldOffset=0x0)" P-INDEP
;* V679 tmp659 [V679 ] ( 0, 0 ) int -> zero-ref "field V315._length (fldOffset=0x8)" P-INDEP
;* V680 tmp660 [V680 ] ( 0, 0 ) byref -> zero-ref "field V318._reference (fldOffset=0x0)" P-INDEP
;* V681 tmp661 [V681 ] ( 0, 0 ) int -> zero-ref "field V318._length (fldOffset=0x8)" P-INDEP
;* V682 tmp662 [V682 ] ( 0, 0 ) byref -> zero-ref "field V319._reference (fldOffset=0x0)" P-INDEP
;* V683 tmp663 [V683 ] ( 0, 0 ) int -> zero-ref "field V319._length (fldOffset=0x8)" P-INDEP
; V684 cse0 [V684,T134] ( 3, 6 ) int -> rdi "CSE #06: conservative"
; V685 cse1 [V685,T135] ( 3, 6 ) int -> rax "CSE #12: conservative"
; V686 cse2 [V686,T136] ( 3, 6 ) int -> rdi "CSE #23: conservative"
; V687 cse3 [V687,T137] ( 3, 6 ) int -> rax "CSE #27: conservative"
;
; Lcl frame size = 344
G_M25387_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 344
lea rbp, [rsp+0x180]
xor eax, eax
mov qword ptr [rbp-0x138], rax
vxorps xmm8, xmm8, xmm8
vmovdqu32 zmmword ptr [rbp-0x130], zmm8
vmovdqu32 zmmword ptr [rbp-0xF0], zmm8
vmovdqu32 zmmword ptr [rbp-0xB0], zmm8
vmovdqu32 zmmword ptr [rbp-0x70], zmm8
mov rax, rdi
mov rbx, rcx
mov r15, r8
mov r8d, esi
;; size=91 bbWeight=1 PerfScore 17.33
G_M25387_IG02:
xor r14d, r14d
xor r13d, r13d
xor r12d, r12d
xor r9d, r9d
mov dword ptr [rbp-0x2C], r9d
mov qword ptr [rbp-0x120], rdx
vxorps xmm0, xmm0, xmm0
vmovdqu xmmword ptr [rbp-0x118], xmm0
vmovdqu xmmword ptr [rbp-0x110], xmm0
lea rdi, [rsp]
lea rsi, [rbp-0x138]
mov ecx, 4
rep movsq
mov rcx, gword ptr [rsi]
mov gword ptr [rsp+0x20], rcx
add rsi, 8
add rdi, 8
movsq
movsq
mov rsi, rax
mov edx, r8d
lea rdi, [rbp-0xF0]
mov ecx, 1
mov rax, 0xD1FFAB1E ; code for System.Text.Json.Utf8JsonReader:.ctor(System.ReadOnlySpan`1[ubyte],ubyte,System.Text.Json.JsonReaderState):this
call [rax]System.Text.Json.Utf8JsonReader:.ctor(System.ReadOnlySpan`1[ubyte],ubyte,System.Text.Json.JsonReaderState):this
lea rdi, [rbp-0xF0]
mov rax, 0xD1FFAB1E ; code for System.Text.Json.Utf8JsonReader:Read():ubyte:this
call [rax]System.Text.Json.Utf8JsonReader:Read():ubyte:this
test eax, eax
je G_M25387_IG65
;; size=139 bbWeight=1 PerfScore 46.58
G_M25387_IG03:
movzx rax, byte ptr [rbp-0xC8]
mov dword ptr [rbp-0xF4], eax
mov ecx, dword ptr [rbp-0xD8]
mov dword ptr [rbp-0xF8], ecx
cmp eax, 1
je G_M25387_IG56
;; size=34 bbWeight=4 PerfScore 21.00
G_M25387_IG04:
cmp eax, 2
je G_M25387_IG44
cmp eax, 3
je G_M25387_IG36
cmp eax, 4
je G_M25387_IG21
mov r9d, dword ptr [rbp-0x2C]
inc r9d
mov dword ptr [rbp-0x2C], r9d
inc r12d
cmp eax, 5
je G_M25387_IG15
test r14d, r14d
je SHORT G_M25387_IG05
inc r13d
;; size=58 bbWeight=2 PerfScore 18.00
G_M25387_IG05:
mov r14d, dword ptr [rbp-0x50]
cmp eax, 7
je SHORT G_M25387_IG09
mov edi, dword ptr [rbx+0x08]
mov rdx, gword ptr [rbx]
mov edx, dword ptr [rdx+0x08]
add edx, -12
cmp edi, edx
jl SHORT G_M25387_IG06
mov rdi, rbx
mov rdx, 0xD1FFAB1E ; code for System.Text.Json.JsonDocument+MetadataDb:Enlarge():this
call [rdx]System.Text.Json.JsonDocument+MetadataDb:Enlarge():this
;; size=40 bbWeight=2 PerfScore 26.50
G_M25387_IG06:
mov ecx, dword ptr [rbp-0xF8]
mov eax, dword ptr [rbp-0xF4]
shl eax, 28
mov rdi, gword ptr [rbx]
mov edx, dword ptr [rbx+0x08]
test rdi, rdi
je SHORT G_M25387_IG07
cmp dword ptr [rdi+0x08], edx
jb G_M25387_IG68
mov esi, edx
lea rsi, bword ptr [rdi+rsi+0x10]
mov edi, dword ptr [rdi+0x08]
sub edi, edx
jmp SHORT G_M25387_IG08
;; size=49 bbWeight=2 PerfScore 34.50
G_M25387_IG07:
test edx, edx
jne G_M25387_IG68
xor rsi, rsi
xor edi, edi
;; size=12 bbWeight=2 PerfScore 3.50
G_M25387_IG08:
cmp edi, 12
- jb G_M25387_IG67
+ jl G_M25387_IG67
mov dword ptr [rsi], ecx
mov dword ptr [rsi+0x04], r14d
mov dword ptr [rsi+0x08], eax
add dword ptr [rbx+0x08], 12
jmp G_M25387_IG64
;; size=27 bbWeight=2 PerfScore 18.50
G_M25387_IG09:
mov edi, dword ptr [rbx+0x08]
mov rdx, gword ptr [rbx]
mov edx, dword ptr [rdx+0x08]
add edx, -12
cmp edi, edx
jl SHORT G_M25387_IG10
mov rdi, rbx
mov rdx, 0xD1FFAB1E ; code for System.Text.Json.JsonDocument+MetadataDb:Enlarge():this
call [rdx]System.Text.Json.JsonDocument+MetadataDb:Enlarge():this
;; size=31 bbWeight=2 PerfScore 22.00
G_M25387_IG10:
mov ecx, dword ptr [rbp-0xF8]
lea edi, [rcx+0x01]
mov ecx, r14d
mov eax, dword ptr [rbp-0xF4]
shl eax, 28
mov rdx, gword ptr [rbx]
mov esi, dword ptr [rbx+0x08]
test rdx, rdx
je SHORT G_M25387_IG11
cmp dword ptr [rdx+0x08], esi
jb G_M25387_IG68
mov r8d, esi
lea r8, bword ptr [rdx+r8+0x10]
mov edx, dword ptr [rdx+0x08]
sub edx, esi
jmp SHORT G_M25387_IG12
;; size=56 bbWeight=2 PerfScore 36.00
G_M25387_IG11:
test esi, esi
jne G_M25387_IG68
xor r8, r8
xor edx, edx
;; size=13 bbWeight=2 PerfScore 3.50
G_M25387_IG12:
cmp edx, 12
- jb G_M25387_IG67
+ jl G_M25387_IG67
mov dword ptr [r8], edi
mov dword ptr [r8+0x04], ecx
mov dword ptr [r8+0x08], eax
add dword ptr [rbx+0x08], 12
cmp byte ptr [rbp-0xC2], 0
je G_M25387_IG64
mov edi, dword ptr [rbx+0x08]
add edi, -12
mov rax, gword ptr [rbx]
add edi, 4
test rax, rax
je SHORT G_M25387_IG13
cmp dword ptr [rax+0x08], edi
jb G_M25387_IG68
mov ecx, edi
lea rcx, bword ptr [rax+rcx+0x10]
mov eax, dword ptr [rax+0x08]
sub eax, edi
jmp SHORT G_M25387_IG14
;; size=77 bbWeight=2 PerfScore 51.00
G_M25387_IG13:
test edi, edi
jne G_M25387_IG68
xor rcx, rcx
xor eax, eax
;; size=12 bbWeight=2 PerfScore 3.50
G_M25387_IG14:
cmp eax, 4
jl G_M25387_IG67
mov edi, dword ptr [rcx]
or edi, 0xD1FFAB1E
- cmp eax, 4
- jb G_M25387_IG67
mov dword ptr [rcx], edi
jmp G_M25387_IG64
- ;; size=33 bbWeight=2 PerfScore 15.50
+ ;; size=24 bbWeight=2 PerfScore 13.00
G_M25387_IG15:
mov r14d, dword ptr [rbp-0x50]
mov edi, dword ptr [rbx+0x08]
mov rdx, gword ptr [rbx]
mov edx, dword ptr [rdx+0x08]
add edx, -12
cmp edi, edx
jl SHORT G_M25387_IG16
mov rdi, rbx
mov rdx, 0xD1FFAB1E ; code for System.Text.Json.JsonDocument+MetadataDb:Enlarge():this
call [rdx]System.Text.Json.JsonDocument+MetadataDb:Enlarge():this
mov eax, dword ptr [rbp-0xF4]
;; size=41 bbWeight=2 PerfScore 26.00
G_M25387_IG16:
mov ecx, dword ptr [rbp-0xF8]
lea edi, [rcx+0x01]
mov esi, r14d
shl eax, 28
mov rcx, gword ptr [rbx]
mov edx, dword ptr [rbx+0x08]
test rcx, rcx
je SHORT G_M25387_IG17
cmp dword ptr [rcx+0x08], edx
jb G_M25387_IG68
mov r8d, edx
lea r8, bword ptr [rcx+r8+0x10]
mov ecx, dword ptr [rcx+0x08]
sub ecx, edx
jmp SHORT G_M25387_IG18
;; size=50 bbWeight=2 PerfScore 34.00
G_M25387_IG17:
test edx, edx
jne G_M25387_IG68
xor r8, r8
xor ecx, ecx
;; size=13 bbWeight=2 PerfScore 3.50
G_M25387_IG18:
cmp ecx, 12
- jb G_M25387_IG67
+ jl G_M25387_IG67
mov dword ptr [r8], edi
mov dword ptr [r8+0x04], esi
mov dword ptr [r8+0x08], eax
add dword ptr [rbx+0x08], 12
cmp byte ptr [rbp-0xC2], 0
je G_M25387_IG64
mov edi, dword ptr [rbx+0x08]
add edi, -12
mov rsi, gword ptr [rbx]
add edi, 4
test rsi, rsi
je SHORT G_M25387_IG19
cmp dword ptr [rsi+0x08], edi
jb G_M25387_IG68
mov eax, edi
lea rax, bword ptr [rsi+rax+0x10]
mov esi, dword ptr [rsi+0x08]
sub esi, edi
jmp SHORT G_M25387_IG20
;; size=77 bbWeight=2 PerfScore 51.00
G_M25387_IG19:
test edi, edi
jne G_M25387_IG68
xor rax, rax
xor esi, esi
;; size=12 bbWeight=2 PerfScore 3.50
G_M25387_IG20:
cmp esi, 4
jl G_M25387_IG67
mov edi, dword ptr [rax]
or edi, 0xD1FFAB1E
- cmp esi, 4
- jb G_M25387_IG67
mov dword ptr [rax], edi
jmp G_M25387_IG64
- ;; size=33 bbWeight=2 PerfScore 15.50
+ ;; size=24 bbWeight=2 PerfScore 13.00
G_M25387_IG21:
mov rdi, rbx
mov esi, 3
mov rdx, 0xD1FFAB1E ; code for System.Text.Json.JsonDocument+MetadataDb:FindOpenElement(ubyte):int:this
call [rdx]System.Text.Json.JsonDocument+MetadataDb:FindOpenElement(ubyte):int:this
mov r14d, dword ptr [rbp-0x2C]
inc r14d
inc r12d
mov rdi, gword ptr [rbx]
lea ecx, [rax+0x04]
test rdi, rdi
je SHORT G_M25387_IG22
cmp dword ptr [rdi+0x08], ecx
jb G_M25387_IG68
mov edx, ecx
lea rdx, bword ptr [rdi+rdx+0x10]
mov edi, dword ptr [rdi+0x08]
sub edi, ecx
jmp SHORT G_M25387_IG23
;; size=64 bbWeight=2 PerfScore 37.00
G_M25387_IG22:
test ecx, ecx
jne G_M25387_IG68
xor rdx, rdx
xor edi, edi
;; size=12 bbWeight=2 PerfScore 3.50
G_M25387_IG23:
cmp edi, 4
- jb G_M25387_IG67
+ jl G_M25387_IG67
mov dword ptr [rdx], r13d
mov rdi, gword ptr [rbx]
lea ecx, [rax+0x08]
test rdi, rdi
je SHORT G_M25387_IG24
cmp dword ptr [rdi+0x08], ecx
jb G_M25387_IG68
mov edx, ecx
lea rdx, bword ptr [rdi+rdx+0x10]
mov edi, dword ptr [rdi+0x08]
sub edi, ecx
jmp SHORT G_M25387_IG25
;; size=46 bbWeight=2 PerfScore 31.00
G_M25387_IG24:
test ecx, ecx
jne G_M25387_IG68
xor rdx, rdx
xor edi, edi
;; size=12 bbWeight=2 PerfScore 3.50
G_M25387_IG25:
cmp edi, 4
jl G_M25387_IG67
- mov ecx, dword ptr [rdx]
- and ecx, 0xD1FFAB1E
- or ecx, r14d
- cmp edi, 4
- jb G_M25387_IG67
- mov dword ptr [rdx], ecx
+ mov edi, dword ptr [rdx]
+ and edi, 0xD1FFAB1E
+ or edi, r14d
+ mov dword ptr [rdx], edi
lea edi, [r13+0x01]
cmp edi, r14d
je SHORT G_M25387_IG28
mov rdi, gword ptr [rbx]
add eax, 4
test rdi, rdi
je SHORT G_M25387_IG26
cmp dword ptr [rdi+0x08], eax
jb G_M25387_IG68
mov ecx, eax
lea rcx, bword ptr [rdi+rcx+0x10]
mov edi, dword ptr [rdi+0x08]
sub edi, eax
jmp SHORT G_M25387_IG27
- ;; size=74 bbWeight=2 PerfScore 41.50
+ ;; size=65 bbWeight=2 PerfScore 39.00
G_M25387_IG26:
test eax, eax
jne G_M25387_IG68
xor rcx, rcx
xor edi, edi
;; size=12 bbWeight=2 PerfScore 3.50
G_M25387_IG27:
cmp edi, 4
jl G_M25387_IG67
- mov eax, dword ptr [rcx]
- or eax, 0xD1FFAB1E
- cmp edi, 4
- jb G_M25387_IG67
- mov dword ptr [rcx], eax
- ;; size=27 bbWeight=2 PerfScore 11.50
+ mov edi, dword ptr [rcx]
+ or edi, 0xD1FFAB1E
+ mov dword ptr [rcx], edi
+ ;; size=19 bbWeight=2 PerfScore 9.00
G_M25387_IG28:
mov edi, dword ptr [rbx+0x08]
mov r13d, edi
mov eax, dword ptr [rbp-0x50]
mov dword ptr [rbp-0x13C], eax
mov rcx, gword ptr [rbx]
mov ecx, dword ptr [rcx+0x08]
add ecx, -12
cmp ecx, edi
jg SHORT G_M25387_IG29
mov rdi, rbx
mov rcx, 0xD1FFAB1E ; code for System.Text.Json.JsonDocument+MetadataDb:Enlarge():this
call [rcx]System.Text.Json.JsonDocument+MetadataDb:Enlarge():this
;; size=43 bbWeight=2 PerfScore 26.50
G_M25387_IG29:
mov ecx, dword ptr [rbp-0xF8]
mov edi, ecx
mov eax, dword ptr [rbp-0x13C]
mov edx, dword ptr [rbp-0xF4]
mov ecx, edx
shl ecx, 28
mov rdx, gword ptr [rbx]
mov esi, dword ptr [rbx+0x08]
test rdx, rdx
je SHORT G_M25387_IG30
cmp dword ptr [rdx+0x08], esi
jb G_M25387_IG68
mov r8d, esi
lea r8, bword ptr [rdx+r8+0x10]
mov edx, dword ptr [rdx+0x08]
sub edx, esi
jmp SHORT G_M25387_IG31
;; size=60 bbWeight=2 PerfScore 37.50
G_M25387_IG30:
test esi, esi
jne G_M25387_IG68
xor r8, r8
xor edx, edx
;; size=13 bbWeight=2 PerfScore 3.50
G_M25387_IG31:
cmp edx, 12
- jb G_M25387_IG67
+ jl G_M25387_IG67
mov dword ptr [r8], edi
mov dword ptr [r8+0x04], eax
mov dword ptr [r8+0x08], ecx
add dword ptr [rbx+0x08], 12
mov rdi, gword ptr [rbx]
add r13d, 8
test rdi, rdi
je SHORT G_M25387_IG32
cmp dword ptr [rdi+0x08], r13d
jb G_M25387_IG68
mov eax, r13d
lea rax, bword ptr [rdi+rax+0x10]
mov edi, dword ptr [rdi+0x08]
sub edi, r13d
jmp SHORT G_M25387_IG33
;; size=62 bbWeight=2 PerfScore 40.50
G_M25387_IG32:
test r13d, r13d
jne G_M25387_IG68
xor rax, rax
xor edi, edi
;; size=13 bbWeight=2 PerfScore 3.50
G_M25387_IG33:
cmp edi, 4
jl G_M25387_IG67
- mov ecx, dword ptr [rax]
- and ecx, 0xD1FFAB1E
- or ecx, r14d
- cmp edi, 4
- jb G_M25387_IG67
- mov dword ptr [rax], ecx
+ mov edi, dword ptr [rax]
+ and edi, 0xD1FFAB1E
+ or edi, r14d
+ mov dword ptr [rax], edi
mov rdi, gword ptr [r15]
mov eax, dword ptr [r15+0x08]
mov ecx, eax
test rdi, rdi
je SHORT G_M25387_IG34
cmp dword ptr [rdi+0x08], ecx
jb G_M25387_IG68
mov edx, ecx
lea rdx, bword ptr [rdi+rdx+0x10]
mov edi, dword ptr [rdi+0x08]
sub edi, ecx
jmp SHORT G_M25387_IG35
- ;; size=68 bbWeight=2 PerfScore 42.00
+ ;; size=59 bbWeight=2 PerfScore 39.50
G_M25387_IG34:
test ecx, ecx
jne G_M25387_IG68
xor rdx, rdx
xor edi, edi
;; size=12 bbWeight=2 PerfScore 3.50
G_M25387_IG35:
cmp edi, 8
jl G_M25387_IG67
mov r13d, dword ptr [rdx]
mov edi, dword ptr [rdx+0x04]
add eax, 8
mov dword ptr [r15+0x08], eax
add r14d, edi
mov dword ptr [rbp-0x2C], r14d
jmp G_M25387_IG64
;; size=34 bbWeight=2 PerfScore 19.50
G_M25387_IG36:
test r14d, r14d
je SHORT G_M25387_IG37
inc r13d
;; size=8 bbWeight=2 PerfScore 3.00
G_M25387_IG37:
inc r12d
mov edi, dword ptr [rbx+0x08]
mov rdx, gword ptr [rbx]
mov edx, dword ptr [rdx+0x08]
add edx, -12
cmp edi, edx
jl SHORT G_M25387_IG38
mov rdi, rbx
mov rdx, 0xD1FFAB1E ; code for System.Text.Json.JsonDocument+MetadataDb:Enlarge():this
call [rdx]System.Text.Json.JsonDocument+MetadataDb:Enlarge():this
mov eax, dword ptr [rbp-0xF4]
;; size=40 bbWeight=2 PerfScore 24.50
G_M25387_IG38:
mov ecx, dword ptr [rbp-0xF8]
mov edi, ecx
shl eax, 28
mov rcx, gword ptr [rbx]
mov edx, dword ptr [rbx+0x08]
test rcx, rcx
je SHORT G_M25387_IG39
cmp dword ptr [rcx+0x08], edx
jb G_M25387_IG68
mov esi, edx
lea rsi, bword ptr [rcx+rsi+0x10]
mov ecx, dword ptr [rcx+0x08]
sub ecx, edx
jmp SHORT G_M25387_IG40
;; size=45 bbWeight=2 PerfScore 33.00
G_M25387_IG39:
test edx, edx
jne G_M25387_IG68
xor rsi, rsi
xor ecx, ecx
;; size=12 bbWeight=2 PerfScore 3.50
G_M25387_IG40:
cmp ecx, 12
- jb G_M25387_IG67
+ jl G_M25387_IG67
mov dword ptr [rsi], edi
mov dword ptr [rsi+0x04], -1
mov dword ptr [rsi+0x08], eax
add dword ptr [rbx+0x08], 12
mov r14d, dword ptr [rbp-0x2C]
inc r14d
cmp dword ptr [r15+0x08], 8
jge SHORT G_M25387_IG41
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Text.Json.JsonDocument+StackRowStack:Enlarge():this
call [rax]System.Text.Json.JsonDocument+StackRowStack:Enlarge():this
;; size=54 bbWeight=2 PerfScore 32.00
G_M25387_IG41:
add dword ptr [r15+0x08], -8
mov rdi, gword ptr [r15]
mov esi, dword ptr [r15+0x08]
test rdi, rdi
je SHORT G_M25387_IG42
cmp dword ptr [rdi+0x08], esi
jb G_M25387_IG68
mov eax, esi
lea rax, bword ptr [rdi+rax+0x10]
mov edi, dword ptr [rdi+0x08]
sub edi, esi
jmp SHORT G_M25387_IG43
;; size=40 bbWeight=2 PerfScore 35.50
G_M25387_IG42:
test esi, esi
jne G_M25387_IG68
xor rax, rax
xor edi, edi
;; size=12 bbWeight=2 PerfScore 3.50
G_M25387_IG43:
cmp edi, 8
- jb G_M25387_IG67
+ jl G_M25387_IG67
mov dword ptr [rax], r13d
mov dword ptr [rax+0x04], r14d
xor r13d, r13d
xor r14d, r14d
mov dword ptr [rbp-0x2C], r14d
jmp G_M25387_IG64
;; size=31 bbWeight=2 PerfScore 13.50
G_M25387_IG44:
mov rdi, rbx
mov esi, 1
mov rdx, 0xD1FFAB1E ; code for System.Text.Json.JsonDocument+MetadataDb:FindOpenElement(ubyte):int:this
call [rdx]System.Text.Json.JsonDocument+MetadataDb:FindOpenElement(ubyte):int:this
mov dword ptr [rbp-0xFC], eax
mov r14d, dword ptr [rbp-0x2C]
inc r14d
inc r12d
mov rdi, gword ptr [rbx]
lea ecx, [rax+0x04]
test rdi, rdi
je SHORT G_M25387_IG45
cmp dword ptr [rdi+0x08], ecx
jb G_M25387_IG68
mov edx, ecx
lea rdx, bword ptr [rdi+rdx+0x10]
mov edi, dword ptr [rdi+0x08]
sub edi, ecx
jmp SHORT G_M25387_IG46
;; size=70 bbWeight=2 PerfScore 39.00
G_M25387_IG45:
test ecx, ecx
jne G_M25387_IG68
xor rdx, rdx
xor edi, edi
;; size=12 bbWeight=2 PerfScore 3.50
G_M25387_IG46:
cmp edi, 4
- jb G_M25387_IG67
+ jl G_M25387_IG67
mov dword ptr [rdx], r12d
mov edi, dword ptr [rbx+0x08]
mov dword ptr [rbp-0x100], edi
mov edx, dword ptr [rbp-0x50]
mov dword ptr [rbp-0x13C], edx
mov rsi, gword ptr [rbx]
mov esi, dword ptr [rsi+0x08]
add esi, -12
cmp esi, edi
jg SHORT G_M25387_IG47
mov rdi, rbx
mov rsi, 0xD1FFAB1E ; code for System.Text.Json.JsonDocument+MetadataDb:Enlarge():this
call [rsi]System.Text.Json.JsonDocument+MetadataDb:Enlarge():this
;; size=58 bbWeight=2 PerfScore 32.50
G_M25387_IG47:
mov esi, dword ptr [rbp-0xF8]
mov edi, esi
mov edx, dword ptr [rbp-0x13C]
mov r8d, dword ptr [rbp-0xF4]
mov esi, r8d
shl esi, 28
mov r8, gword ptr [rbx]
mov r9d, dword ptr [rbx+0x08]
test r8, r8
je SHORT G_M25387_IG48
cmp dword ptr [r8+0x08], r9d
jb G_M25387_IG68
mov r10d, r9d
lea r10, bword ptr [r8+r10+0x10]
mov r8d, dword ptr [r8+0x08]
sub r8d, r9d
jmp SHORT G_M25387_IG49
;; size=66 bbWeight=2 PerfScore 37.50
G_M25387_IG48:
test r9d, r9d
jne G_M25387_IG68
xor r10, r10
xor r8d, r8d
;; size=15 bbWeight=2 PerfScore 3.50
G_M25387_IG49:
cmp r8d, 12
- jb G_M25387_IG67
+ jl G_M25387_IG67
mov dword ptr [r10], edi
mov dword ptr [r10+0x04], edx
mov dword ptr [r10+0x08], esi
add dword ptr [rbx+0x08], 12
mov rdi, gword ptr [rbx]
mov eax, dword ptr [rbp-0xFC]
add eax, 8
test rdi, rdi
je SHORT G_M25387_IG50
cmp dword ptr [rdi+0x08], eax
jb G_M25387_IG68
mov edx, eax
lea rdx, bword ptr [rdi+rdx+0x10]
mov edi, dword ptr [rdi+0x08]
sub edi, eax
jmp SHORT G_M25387_IG51
;; size=65 bbWeight=2 PerfScore 42.50
G_M25387_IG50:
test eax, eax
jne G_M25387_IG68
xor rdx, rdx
xor edi, edi
;; size=12 bbWeight=2 PerfScore 3.50
G_M25387_IG51:
cmp edi, 4
jl G_M25387_IG67
- mov eax, dword ptr [rdx]
- and eax, 0xD1FFAB1E
- or eax, r12d
- cmp edi, 4
- jb G_M25387_IG67
- mov dword ptr [rdx], eax
+ mov edi, dword ptr [rdx]
+ and edi, 0xD1FFAB1E
+ or edi, r12d
+ mov dword ptr [rdx], edi
mov rdi, gword ptr [rbx]
mov ecx, dword ptr [rbp-0x100]
add ecx, 8
test rdi, rdi
je SHORT G_M25387_IG52
cmp dword ptr [rdi+0x08], ecx
jb G_M25387_IG68
mov eax, ecx
lea rax, bword ptr [rdi+rax+0x10]
mov edi, dword ptr [rdi+0x08]
sub edi, ecx
jmp SHORT G_M25387_IG53
- ;; size=70 bbWeight=2 PerfScore 40.00
+ ;; size=62 bbWeight=2 PerfScore 37.50
G_M25387_IG52:
test ecx, ecx
jne G_M25387_IG68
xor rax, rax
xor edi, edi
;; size=12 bbWeight=2 PerfScore 3.50
G_M25387_IG53:
cmp edi, 4
jl G_M25387_IG67
- mov ecx, dword ptr [rax]
- and ecx, 0xD1FFAB1E
- or ecx, r12d
- cmp edi, 4
- jb G_M25387_IG67
- mov dword ptr [rax], ecx
+ mov edi, dword ptr [rax]
+ and edi, 0xD1FFAB1E
+ or edi, r12d
+ mov dword ptr [rax], edi
mov rdi, gword ptr [r15]
mov eax, dword ptr [r15+0x08]
mov ecx, eax
test rdi, rdi
je SHORT G_M25387_IG54
cmp dword ptr [rdi+0x08], ecx
jb G_M25387_IG68
mov edx, ecx
lea rdx, bword ptr [rdi+rdx+0x10]
mov edi, dword ptr [rdi+0x08]
sub edi, ecx
jmp SHORT G_M25387_IG55
- ;; size=68 bbWeight=2 PerfScore 42.00
+ ;; size=59 bbWeight=2 PerfScore 39.50
G_M25387_IG54:
test ecx, ecx
jne G_M25387_IG68
xor rdx, rdx
xor edi, edi
;; size=12 bbWeight=2 PerfScore 3.50
G_M25387_IG55:
cmp edi, 8
jl G_M25387_IG67
mov edi, dword ptr [rdx]
add eax, 8
mov dword ptr [r15+0x08], eax
add r12d, edi
mov dword ptr [rbp-0x2C], r14d
jmp G_M25387_IG64
;; size=30 bbWeight=2 PerfScore 15.50
G_M25387_IG56:
test r14d, r14d
je SHORT G_M25387_IG57
inc r13d
;; size=8 bbWeight=2 PerfScore 3.00
G_M25387_IG57:
mov r14d, dword ptr [rbp-0x2C]
inc r14d
mov dword ptr [rbp-0x2C], r14d
mov edi, dword ptr [rbx+0x08]
mov rdx, gword ptr [rbx]
mov edx, dword ptr [rdx+0x08]
add edx, -12
cmp edi, edx
jl SHORT G_M25387_IG58
mov rdi, rbx
mov rdx, 0xD1FFAB1E ; code for System.Text.Json.JsonDocument+MetadataDb:Enlarge():this
call [rdx]System.Text.Json.JsonDocument+MetadataDb:Enlarge():this
mov eax, dword ptr [rbp-0xF4]
;; size=48 bbWeight=2 PerfScore 28.50
G_M25387_IG58:
mov ecx, dword ptr [rbp-0xF8]
mov edi, ecx
shl eax, 28
mov rcx, gword ptr [rbx]
mov edx, dword ptr [rbx+0x08]
test rcx, rcx
je SHORT G_M25387_IG59
cmp dword ptr [rcx+0x08], edx
jb G_M25387_IG68
mov esi, edx
lea rsi, bword ptr [rcx+rsi+0x10]
mov ecx, dword ptr [rcx+0x08]
sub ecx, edx
jmp SHORT G_M25387_IG60
;; size=45 bbWeight=2 PerfScore 33.00
G_M25387_IG59:
test edx, edx
jne G_M25387_IG68
xor rsi, rsi
xor ecx, ecx
;; size=12 bbWeight=2 PerfScore 3.50
G_M25387_IG60:
cmp ecx, 12
- jb G_M25387_IG67
+ jl G_M25387_IG67
mov dword ptr [rsi], edi
mov dword ptr [rsi+0x04], -1
mov dword ptr [rsi+0x08], eax
add dword ptr [rbx+0x08], 12
inc r12d
cmp dword ptr [r15+0x08], 8
jge SHORT G_M25387_IG61
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Text.Json.JsonDocument+StackRowStack:Enlarge():this
call [rax]System.Text.Json.JsonDocument+StackRowStack:Enlarge():this
;; size=50 bbWeight=2 PerfScore 30.00
G_M25387_IG61:
add dword ptr [r15+0x08], -8
mov rdi, gword ptr [r15]
mov eax, dword ptr [r15+0x08]
test rdi, rdi
je SHORT G_M25387_IG62
cmp dword ptr [rdi+0x08], eax
jb G_M25387_IG68
mov ecx, eax
lea rcx, bword ptr [rdi+rcx+0x10]
mov edi, dword ptr [rdi+0x08]
sub edi, eax
jmp SHORT G_M25387_IG63
;; size=40 bbWeight=2 PerfScore 35.50
G_M25387_IG62:
test eax, eax
jne SHORT G_M25387_IG68
xor rcx, rcx
xor edi, edi
;; size=8 bbWeight=2 PerfScore 3.50
G_M25387_IG63:
cmp edi, 8
- jb SHORT G_M25387_IG67
+ jl SHORT G_M25387_IG67
mov dword ptr [rcx], r12d
mov dword ptr [rcx+0x04], -1
xor r12d, r12d
;; size=18 bbWeight=2 PerfScore 7.00
G_M25387_IG64:
cmp byte ptr [rbp-0xCA], 0
sete r14b
movzx r14, r14b
lea rdi, [rbp-0xF0]
mov rax, 0xD1FFAB1E ; code for System.Text.Json.Utf8JsonReader:Read():ubyte:this
call [rax]System.Text.Json.Utf8JsonReader:Read():ubyte:this
test eax, eax
jne G_M25387_IG03
;; size=42 bbWeight=4 PerfScore 33.00
G_M25387_IG65:
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.Json.JsonDocument+MetadataDb:CompleteAllocations():this
call [rax]System.Text.Json.JsonDocument+MetadataDb:CompleteAllocations():this
nop
;; size=16 bbWeight=1 PerfScore 3.75
G_M25387_IG66:
add rsp, 344
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=18 bbWeight=1 PerfScore 4.25
G_M25387_IG67:
mov edi, 40
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
int3
;; size=18 bbWeight=0 PerfScore 0.00
G_M25387_IG68:
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 2518, prolog size 79, PerfScore 1358.92, instruction count 692, allocated bytes for code 2518 (MethodHash=71ac9cd4) for method System.Text.Json.JsonDocument:Parse(System.ReadOnlySpan`1[ubyte],System.Text.Json.JsonReaderOptions,byref,byref) (FullOpts)
+; Total bytes of code 2457, prolog size 79, PerfScore 1341.42, instruction count 678, allocated bytes for code 2457 (MethodHash=71ac9cd4) for method System.Text.Json.JsonDocument:Parse(System.ReadOnlySpan`1[ubyte],System.Text.Json.JsonReaderOptions,byref,byref) (FullOpts)
-43 (-31.16 % of base) - System.IO.Hashing.Crc64:TryHash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref):ubyte
; Assembly listing for method System.IO.Hashing.Crc64:TryHash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref):ubyte (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 3 single block inlinees; 4 inlinees without PGO data
; Final local variable assignments
;
;* V00 arg0 [V00 ] ( 0, 0 ) struct (16) zero-ref multireg-arg single-def <System.ReadOnlySpan`1[ubyte]>
;* V01 arg1 [V01 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op single-def <System.Span`1[ubyte]>
; V02 arg2 [V02,T00] ( 4, 3 ) byref -> rbx single-def
;* V03 loc0 [V03 ] ( 0, 0 ) long -> zero-ref single-def
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V05 tmp1 [V05,T05] ( 3, 1.50) long -> rax "Inline return value spill temp"
;* V06 tmp2 [V06 ] ( 0, 0 ) ubyte -> zero-ref single-def "Inline return value spill temp"
;* V07 tmp3 [V07 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V08 tmp4 [V08 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V09 tmp5 [V09,T06] ( 2, 1 ) long -> rax ld-addr-op single-def "Inline stloc first use temp"
;* V10 tmp6 [V10 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.Span`1[ubyte]>
;* V11 tmp7 [V11 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V12 tmp8 [V12 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
-; V13 tmp9 [V13,T03] ( 3, 2 ) byref -> rsi single-def "field V00._reference (fldOffset=0x0)" P-INDEP
+; V13 tmp9 [V13,T02] ( 3, 2 ) byref -> rsi single-def "field V00._reference (fldOffset=0x0)" P-INDEP
; V14 tmp10 [V14,T01] ( 4, 2.50) int -> rax single-def "field V00._length (fldOffset=0x8)" P-INDEP
-; V15 tmp11 [V15,T04] ( 2, 1.50) byref -> r14 single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-; V16 tmp12 [V16,T02] ( 3, 2.50) int -> r15 single-def "field V01._length (fldOffset=0x8)" P-INDEP
+; V15 tmp11 [V15,T04] ( 2, 1.50) byref -> r15 single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+; V16 tmp12 [V16,T03] ( 2, 2 ) int -> rcx single-def "field V01._length (fldOffset=0x8)" P-INDEP
;* V17 tmp13 [V17 ] ( 0, 0 ) byref -> zero-ref "field V07._reference (fldOffset=0x0)" P-INDEP
;* V18 tmp14 [V18 ] ( 0, 0 ) int -> zero-ref single-def "field V07._length (fldOffset=0x8)" P-INDEP
;* V19 tmp15 [V19 ] ( 0, 0 ) byref -> zero-ref single-def "field V10._reference (fldOffset=0x0)" P-INDEP
;* V20 tmp16 [V20 ] ( 0, 0 ) int -> zero-ref single-def "field V10._length (fldOffset=0x8)" P-INDEP
;* V21 tmp17 [V21 ] ( 0, 0 ) byref -> zero-ref single-def "field V11._reference (fldOffset=0x0)" P-INDEP
;* V22 tmp18 [V22 ] ( 0, 0 ) int -> zero-ref single-def "field V11._length (fldOffset=0x8)" P-INDEP
;* V23 tmp19 [V23 ] ( 0, 0 ) byref -> zero-ref single-def "field V12._reference (fldOffset=0x0)" P-INDEP
;* V24 tmp20 [V24 ] ( 0, 0 ) int -> zero-ref "field V12._length (fldOffset=0x8)" P-INDEP
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M55114_IG01:
push rbp
push r15
- push r14
push rbx
- push rax
- lea rbp, [rsp+0x20]
+ lea rbp, [rsp+0x10]
mov eax, esi
mov rsi, rdi
- mov r14, rdx
- mov r15d, ecx
+ mov r15, rdx
mov rbx, r8
- ;; size=26 bbWeight=1 PerfScore 6.75
+ ;; size=20 bbWeight=1 PerfScore 4.50
G_M55114_IG02:
- cmp r15d, 8
+ cmp ecx, 8
jl SHORT G_M55114_IG07
- ;; size=6 bbWeight=1 PerfScore 1.25
+ ;; size=5 bbWeight=1 PerfScore 1.25
G_M55114_IG03:
cmp eax, 16
jge SHORT G_M55114_IG04
mov edx, eax
xor edi, edi
mov rax, 0xD1FFAB1E ; code for System.IO.Hashing.Crc64:UpdateScalar(ulong,System.ReadOnlySpan`1[ubyte]):ulong
call [rax]System.IO.Hashing.Crc64:UpdateScalar(ulong,System.ReadOnlySpan`1[ubyte]):ulong
jmp SHORT G_M55114_IG05
;; size=23 bbWeight=0.50 PerfScore 3.50
G_M55114_IG04:
mov edx, eax
xor edi, edi
mov rax, 0xD1FFAB1E ; code for System.IO.Hashing.Crc64:UpdateVectorized(ulong,System.ReadOnlySpan`1[ubyte]):ulong
call [rax]System.IO.Hashing.Crc64:UpdateVectorized(ulong,System.ReadOnlySpan`1[ubyte]):ulong
;; size=16 bbWeight=0.50 PerfScore 1.88
G_M55114_IG05:
bswap rax
- cmp r15d, 8
- jb SHORT G_M55114_IG09
- mov qword ptr [r14], rax
+ mov qword ptr [r15], rax
mov dword ptr [rbx], 8
mov eax, 1
- ;; size=23 bbWeight=0.50 PerfScore 2.25
+ ;; size=17 bbWeight=0.50 PerfScore 1.62
G_M55114_IG06:
- add rsp, 8
pop rbx
- pop r14
pop r15
pop rbp
ret
- ;; size=11 bbWeight=0.50 PerfScore 1.62
+ ;; size=5 bbWeight=0.50 PerfScore 1.25
G_M55114_IG07:
xor eax, eax
mov dword ptr [rbx], eax
;; size=4 bbWeight=0.50 PerfScore 0.62
G_M55114_IG08:
- add rsp, 8
pop rbx
- pop r14
pop r15
pop rbp
ret
- ;; size=11 bbWeight=0.50 PerfScore 1.62
-G_M55114_IG09:
- mov edi, 40
- mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
- call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
- int3
- ;; size=18 bbWeight=0 PerfScore 0.00
+ ;; size=5 bbWeight=0.50 PerfScore 1.25
-; Total bytes of code 138, prolog size 12, PerfScore 19.50, instruction count 48, allocated bytes for code 138 (MethodHash=5ef028b5) for method System.IO.Hashing.Crc64:TryHash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref):ubyte (FullOpts)
+; Total bytes of code 95, prolog size 9, PerfScore 15.88, instruction count 35, allocated bytes for code 95 (MethodHash=5ef028b5) for method System.IO.Hashing.Crc64:TryHash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref):ubyte (FullOpts)
-43 (-39.81 % of base) - System.IO.Hashing.XxHash32:TryHash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,int):ubyte
; Assembly listing for method System.IO.Hashing.XxHash32:TryHash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,int):ubyte (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 2 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
;* V00 arg0 [V00 ] ( 0, 0 ) struct (16) zero-ref multireg-arg single-def <System.ReadOnlySpan`1[ubyte]>
;* V01 arg1 [V01 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op single-def <System.Span`1[ubyte]>
; V02 arg2 [V02,T00] ( 4, 3 ) byref -> rbx single-def
; V03 arg3 [V03,T01] ( 3, 2.50) int -> r9 single-def
; V04 loc0 [V04,T06] ( 2, 1 ) int -> rax single-def
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V06 tmp1 [V06,T07] ( 2, 1 ) int -> rax ld-addr-op single-def "Inline stloc first use temp"
;* V07 tmp2 [V07 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.Span`1[ubyte]>
;* V08 tmp3 [V08 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V09 tmp4 [V09 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
; V10 tmp5 [V10,T03] ( 2, 1.50) byref -> rdi single-def "field V00._reference (fldOffset=0x0)" P-INDEP
; V11 tmp6 [V11,T05] ( 2, 1.50) int -> rsi single-def "field V00._length (fldOffset=0x8)" P-INDEP
-; V12 tmp7 [V12,T04] ( 2, 1.50) byref -> r14 single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-; V13 tmp8 [V13,T02] ( 3, 2.50) int -> r15 single-def "field V01._length (fldOffset=0x8)" P-INDEP
+; V12 tmp7 [V12,T04] ( 2, 1.50) byref -> r15 single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+; V13 tmp8 [V13,T02] ( 2, 2 ) int -> rcx single-def "field V01._length (fldOffset=0x8)" P-INDEP
;* V14 tmp9 [V14 ] ( 0, 0 ) byref -> zero-ref single-def "field V07._reference (fldOffset=0x0)" P-INDEP
;* V15 tmp10 [V15 ] ( 0, 0 ) int -> zero-ref single-def "field V07._length (fldOffset=0x8)" P-INDEP
;* V16 tmp11 [V16 ] ( 0, 0 ) byref -> zero-ref single-def "field V08._reference (fldOffset=0x0)" P-INDEP
;* V17 tmp12 [V17 ] ( 0, 0 ) int -> zero-ref single-def "field V08._length (fldOffset=0x8)" P-INDEP
;* V18 tmp13 [V18 ] ( 0, 0 ) byref -> zero-ref single-def "field V09._reference (fldOffset=0x0)" P-INDEP
;* V19 tmp14 [V19 ] ( 0, 0 ) int -> zero-ref "field V09._length (fldOffset=0x8)" P-INDEP
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M36118_IG01:
push rbp
push r15
- push r14
push rbx
- push rax
- lea rbp, [rsp+0x20]
- mov r14, rdx
- mov r15d, ecx
+ lea rbp, [rsp+0x10]
+ mov r15, rdx
mov rbx, r8
- ;; size=21 bbWeight=1 PerfScore 6.25
+ ;; size=15 bbWeight=1 PerfScore 4.00
G_M36118_IG02:
- cmp r15d, 4
+ cmp ecx, 4
jl SHORT G_M36118_IG05
- ;; size=6 bbWeight=1 PerfScore 1.25
+ ;; size=5 bbWeight=1 PerfScore 1.25
G_M36118_IG03:
mov edx, r9d
mov rax, 0xD1FFAB1E ; code for System.IO.Hashing.XxHash32:HashToUInt32(System.ReadOnlySpan`1[ubyte],int):uint
call [rax]System.IO.Hashing.XxHash32:HashToUInt32(System.ReadOnlySpan`1[ubyte],int):uint
bswap eax
- cmp r15d, 4
- jb SHORT G_M36118_IG07
- mov dword ptr [r14], eax
+ mov dword ptr [r15], eax
mov dword ptr [rbx], 4
mov eax, 1
- ;; size=37 bbWeight=0.50 PerfScore 3.75
+ ;; size=31 bbWeight=0.50 PerfScore 3.12
G_M36118_IG04:
- add rsp, 8
pop rbx
- pop r14
pop r15
pop rbp
ret
- ;; size=11 bbWeight=0.50 PerfScore 1.62
+ ;; size=5 bbWeight=0.50 PerfScore 1.25
G_M36118_IG05:
xor eax, eax
mov dword ptr [rbx], eax
;; size=4 bbWeight=0.50 PerfScore 0.62
G_M36118_IG06:
- add rsp, 8
pop rbx
- pop r14
pop r15
pop rbp
ret
- ;; size=11 bbWeight=0.50 PerfScore 1.62
-G_M36118_IG07:
- mov edi, 40
- mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
- call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
- int3
- ;; size=18 bbWeight=0 PerfScore 0.00
+ ;; size=5 bbWeight=0.50 PerfScore 1.25
-; Total bytes of code 108, prolog size 12, PerfScore 15.12, instruction count 38, allocated bytes for code 108 (MethodHash=c50672e9) for method System.IO.Hashing.XxHash32:TryHash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,int):ubyte (FullOpts)
+; Total bytes of code 65, prolog size 9, PerfScore 11.50, instruction count 25, allocated bytes for code 65 (MethodHash=c50672e9) for method System.IO.Hashing.XxHash32:TryHash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,int):ubyte (FullOpts)
-43 (-39.45 % of base) - System.IO.Hashing.XxHash64:TryHash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,long):ubyte
; Assembly listing for method System.IO.Hashing.XxHash64:TryHash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,long):ubyte (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 2 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
;* V00 arg0 [V00 ] ( 0, 0 ) struct (16) zero-ref multireg-arg single-def <System.ReadOnlySpan`1[ubyte]>
;* V01 arg1 [V01 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op single-def <System.Span`1[ubyte]>
; V02 arg2 [V02,T00] ( 4, 3 ) byref -> rbx single-def
; V03 arg3 [V03,T01] ( 3, 2.50) long -> r9 single-def
; V04 loc0 [V04,T06] ( 2, 1 ) long -> rax single-def
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V06 tmp1 [V06,T07] ( 2, 1 ) long -> rax ld-addr-op single-def "Inline stloc first use temp"
;* V07 tmp2 [V07 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.Span`1[ubyte]>
;* V08 tmp3 [V08 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V09 tmp4 [V09 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
; V10 tmp5 [V10,T03] ( 2, 1.50) byref -> rdi single-def "field V00._reference (fldOffset=0x0)" P-INDEP
; V11 tmp6 [V11,T05] ( 2, 1.50) int -> rsi single-def "field V00._length (fldOffset=0x8)" P-INDEP
-; V12 tmp7 [V12,T04] ( 2, 1.50) byref -> r14 single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-; V13 tmp8 [V13,T02] ( 3, 2.50) int -> r15 single-def "field V01._length (fldOffset=0x8)" P-INDEP
+; V12 tmp7 [V12,T04] ( 2, 1.50) byref -> r15 single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+; V13 tmp8 [V13,T02] ( 2, 2 ) int -> rcx single-def "field V01._length (fldOffset=0x8)" P-INDEP
;* V14 tmp9 [V14 ] ( 0, 0 ) byref -> zero-ref single-def "field V07._reference (fldOffset=0x0)" P-INDEP
;* V15 tmp10 [V15 ] ( 0, 0 ) int -> zero-ref single-def "field V07._length (fldOffset=0x8)" P-INDEP
;* V16 tmp11 [V16 ] ( 0, 0 ) byref -> zero-ref single-def "field V08._reference (fldOffset=0x0)" P-INDEP
;* V17 tmp12 [V17 ] ( 0, 0 ) int -> zero-ref single-def "field V08._length (fldOffset=0x8)" P-INDEP
;* V18 tmp13 [V18 ] ( 0, 0 ) byref -> zero-ref single-def "field V09._reference (fldOffset=0x0)" P-INDEP
;* V19 tmp14 [V19 ] ( 0, 0 ) int -> zero-ref "field V09._length (fldOffset=0x8)" P-INDEP
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M59884_IG01:
push rbp
push r15
- push r14
push rbx
- push rax
- lea rbp, [rsp+0x20]
- mov r14, rdx
- mov r15d, ecx
+ lea rbp, [rsp+0x10]
+ mov r15, rdx
mov rbx, r8
- ;; size=21 bbWeight=1 PerfScore 6.25
+ ;; size=15 bbWeight=1 PerfScore 4.00
G_M59884_IG02:
- cmp r15d, 8
+ cmp ecx, 8
jl SHORT G_M59884_IG05
- ;; size=6 bbWeight=1 PerfScore 1.25
+ ;; size=5 bbWeight=1 PerfScore 1.25
G_M59884_IG03:
mov rdx, r9
mov rax, 0xD1FFAB1E ; code for System.IO.Hashing.XxHash64:HashToUInt64(System.ReadOnlySpan`1[ubyte],long):ulong
call [rax]System.IO.Hashing.XxHash64:HashToUInt64(System.ReadOnlySpan`1[ubyte],long):ulong
bswap rax
- cmp r15d, 8
- jb SHORT G_M59884_IG07
- mov qword ptr [r14], rax
+ mov qword ptr [r15], rax
mov dword ptr [rbx], 8
mov eax, 1
- ;; size=38 bbWeight=0.50 PerfScore 4.00
+ ;; size=32 bbWeight=0.50 PerfScore 3.38
G_M59884_IG04:
- add rsp, 8
pop rbx
- pop r14
pop r15
pop rbp
ret
- ;; size=11 bbWeight=0.50 PerfScore 1.62
+ ;; size=5 bbWeight=0.50 PerfScore 1.25
G_M59884_IG05:
xor eax, eax
mov dword ptr [rbx], eax
;; size=4 bbWeight=0.50 PerfScore 0.62
G_M59884_IG06:
- add rsp, 8
pop rbx
- pop r14
pop r15
pop rbp
ret
- ;; size=11 bbWeight=0.50 PerfScore 1.62
-G_M59884_IG07:
- mov edi, 40
- mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
- call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
- int3
- ;; size=18 bbWeight=0 PerfScore 0.00
+ ;; size=5 bbWeight=0.50 PerfScore 1.25
-; Total bytes of code 109, prolog size 12, PerfScore 15.38, instruction count 38, allocated bytes for code 109 (MethodHash=83591613) for method System.IO.Hashing.XxHash64:TryHash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,long):ubyte (FullOpts)
+; Total bytes of code 66, prolog size 9, PerfScore 11.75, instruction count 25, allocated bytes for code 66 (MethodHash=83591613) for method System.IO.Hashing.XxHash64:TryHash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,long):ubyte (FullOpts)
-37 (-17.70 % of base) - System.IO.Hashing.Crc32:TryHash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref):ubyte
; Assembly listing for method System.IO.Hashing.Crc32:TryHash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref):ubyte (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
; 0 inlinees with PGO data; 3 single block inlinees; 6 inlinees without PGO data
; Final local variable assignments
;
;* V00 arg0 [V00 ] ( 0, 0 ) struct (16) zero-ref multireg-arg single-def <System.ReadOnlySpan`1[ubyte]>
;* V01 arg1 [V01 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op single-def <System.Span`1[ubyte]>
; V02 arg2 [V02,T03] ( 4, 3 ) byref -> rbx single-def
; V03 loc0 [V03,T13] ( 2, 1 ) int -> rax single-def
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 tmp1 [V05,T11] ( 3, 1.50) int -> r13 "Inline return value spill temp"
+; V05 tmp1 [V05,T11] ( 3, 1.50) int -> r14 "Inline return value spill temp"
;* V06 tmp2 [V06 ] ( 0, 0 ) ubyte -> zero-ref single-def "Inline return value spill temp"
;* V07 tmp3 [V07 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V08 tmp4 [V08 ] ( 0, 0 ) int -> zero-ref
;* V09 tmp5 [V09 ] ( 0, 0 ) int -> zero-ref
;* V10 tmp6 [V10 ] ( 0, 0 ) int -> zero-ref
;* V11 tmp7 [V11 ] ( 0, 0 ) int -> zero-ref
;* V12 tmp8 [V12 ] ( 0, 0 ) int -> zero-ref
;* V13 tmp9 [V13 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V14 tmp10 [V14 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V15 tmp11 [V15 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[uint]>
;* V16 tmp12 [V16,T14] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V17 tmp13 [V17 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
; V18 tmp14 [V18,T00] ( 5, 26 ) int -> rdx "Inlining Arg"
; V19 tmp15 [V19,T02] ( 3, 12 ) ubyte -> r8 "Inline stloc first use temp"
;* V20 tmp16 [V20 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[uint]>
;* V21 tmp17 [V21 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.Span`1[ubyte]>
;* V22 tmp18 [V22 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
;* V23 tmp19 [V23 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V24 tmp20 [V24 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
-; V25 tmp21 [V25,T09] ( 3, 2 ) byref -> rdi single-def "field V00._reference (fldOffset=0x0)" P-INDEP
-; V26 tmp22 [V26,T05] ( 4, 2.50) int -> [rbp-0x24] single-def "field V00._length (fldOffset=0x8)" P-INDEP
-; V27 tmp23 [V27,T10] ( 2, 1.50) byref -> r14 single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-; V28 tmp24 [V28,T06] ( 3, 2.50) int -> r15 single-def "field V01._length (fldOffset=0x8)" P-INDEP
+; V25 tmp21 [V25,T08] ( 3, 2 ) byref -> rdi single-def "field V00._reference (fldOffset=0x0)" P-INDEP
+; V26 tmp22 [V26,T05] ( 4, 2.50) int -> [rbp-0x1C] single-def "field V00._length (fldOffset=0x8)" P-INDEP
+; V27 tmp23 [V27,T10] ( 2, 1.50) byref -> r15 single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+; V28 tmp24 [V28,T09] ( 2, 2 ) int -> rcx single-def "field V01._length (fldOffset=0x8)" P-INDEP
;* V29 tmp25 [V29 ] ( 0, 0 ) byref -> zero-ref "field V07._reference (fldOffset=0x0)" P-INDEP
;* V30 tmp26 [V30 ] ( 0, 0 ) int -> zero-ref single-def "field V07._length (fldOffset=0x8)" P-INDEP
-; V31 tmp27 [V31,T07] ( 2, 4.50) byref -> rax single-def "field V15._reference (fldOffset=0x0)" P-INDEP
+; V31 tmp27 [V31,T06] ( 2, 4.50) byref -> rax single-def "field V15._reference (fldOffset=0x0)" P-INDEP
;* V32 tmp28 [V32,T15] ( 0, 0 ) int -> zero-ref single-def "field V15._length (fldOffset=0x8)" P-INDEP
-; V33 tmp29 [V33,T08] ( 2, 4.50) byref -> rdi single-def "field V17._reference (fldOffset=0x0)" P-INDEP
+; V33 tmp29 [V33,T07] ( 2, 4.50) byref -> rdi single-def "field V17._reference (fldOffset=0x0)" P-INDEP
; V34 tmp30 [V34,T04] ( 3, 5 ) int -> rsi single-def "field V17._length (fldOffset=0x8)" P-INDEP
; V35 tmp31 [V35,T12] ( 2, 1 ) byref -> rax single-def "field V20._reference (fldOffset=0x0)" P-INDEP
;* V36 tmp32 [V36,T16] ( 0, 0 ) int -> zero-ref single-def "field V20._length (fldOffset=0x8)" P-INDEP
;* V37 tmp33 [V37 ] ( 0, 0 ) byref -> zero-ref single-def "field V21._reference (fldOffset=0x0)" P-INDEP
;* V38 tmp34 [V38 ] ( 0, 0 ) int -> zero-ref single-def "field V21._length (fldOffset=0x8)" P-INDEP
;* V39 tmp35 [V39 ] ( 0, 0 ) byref -> zero-ref single-def "field V23._reference (fldOffset=0x0)" P-INDEP
;* V40 tmp36 [V40 ] ( 0, 0 ) int -> zero-ref single-def "field V23._length (fldOffset=0x8)" P-INDEP
;* V41 tmp37 [V41 ] ( 0, 0 ) byref -> zero-ref single-def "field V24._reference (fldOffset=0x0)" P-INDEP
;* V42 tmp38 [V42 ] ( 0, 0 ) int -> zero-ref "field V24._length (fldOffset=0x8)" P-INDEP
; V43 rat0 [V43,T01] ( 5, 16.50) long -> rcx "Widened IV V16"
;
-; Lcl frame size = 16
+; Lcl frame size = 8
G_M17033_IG01:
push rbp
push r15
push r14
- push r13
push rbx
- sub rsp, 16
- lea rbp, [rsp+0x30]
- mov r14, rdx
- mov r15d, ecx
+ push rax
+ lea rbp, [rsp+0x20]
+ mov r15, rdx
mov rbx, r8
- ;; size=26 bbWeight=1 PerfScore 6.50
+ ;; size=18 bbWeight=1 PerfScore 6.00
G_M17033_IG02:
- cmp r15d, 4
+ cmp ecx, 4
jl G_M17033_IG09
- ;; size=10 bbWeight=1 PerfScore 1.25
+ ;; size=9 bbWeight=1 PerfScore 1.25
G_M17033_IG03:
cmp esi, 16
jge SHORT G_M17033_IG06
mov edx, -1
mov rax, 0xD1FFAB1E ; static handle
xor ecx, ecx
test esi, esi
jle SHORT G_M17033_IG05
align [0 bytes for IG04]
;; size=26 bbWeight=0.50 PerfScore 1.62
G_M17033_IG04:
movzx r8, byte ptr [rdi+rcx]
xor r8d, edx
movzx r8, r8b
cmp r8d, 256
- jae SHORT G_M17033_IG12
+ jae SHORT G_M17033_IG11
shr edx, 8
xor edx, dword ptr [rax+4*r8]
inc ecx
cmp ecx, esi
jl SHORT G_M17033_IG04
;; size=34 bbWeight=4 PerfScore 35.00
G_M17033_IG05:
- mov r13d, edx
+ mov r14d, edx
jmp SHORT G_M17033_IG07
;; size=5 bbWeight=0.50 PerfScore 1.12
G_M17033_IG06:
- mov dword ptr [rbp-0x24], esi
+ mov dword ptr [rbp-0x1C], esi
mov rsi, rdi
- mov edx, dword ptr [rbp-0x24]
+ mov edx, dword ptr [rbp-0x1C]
mov edi, -1
mov rax, 0xD1FFAB1E ; code for System.IO.Hashing.Crc32:UpdateVectorized(uint,System.ReadOnlySpan`1[ubyte]):uint
call [rax]System.IO.Hashing.Crc32:UpdateVectorized(uint,System.ReadOnlySpan`1[ubyte]):uint
- mov r13d, eax
+ mov r14d, eax
;; size=29 bbWeight=0.50 PerfScore 3.00
G_M17033_IG07:
- mov eax, r13d
+ mov eax, r14d
not eax
- cmp r15d, 4
- jb SHORT G_M17033_IG11
- mov dword ptr [r14], eax
+ mov dword ptr [r15], eax
mov dword ptr [rbx], 4
mov eax, 1
- ;; size=25 bbWeight=0.50 PerfScore 2.00
+ ;; size=19 bbWeight=0.50 PerfScore 1.38
G_M17033_IG08:
- add rsp, 16
+ add rsp, 8
pop rbx
- pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=13 bbWeight=0.50 PerfScore 1.88
+ ;; size=11 bbWeight=0.50 PerfScore 1.62
G_M17033_IG09:
xor eax, eax
mov dword ptr [rbx], eax
;; size=4 bbWeight=0.50 PerfScore 0.62
G_M17033_IG10:
- add rsp, 16
+ add rsp, 8
pop rbx
- pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=13 bbWeight=0.50 PerfScore 1.88
+ ;; size=11 bbWeight=0.50 PerfScore 1.62
G_M17033_IG11:
- mov edi, 40
- mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
- call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
- int3
- ;; size=18 bbWeight=0 PerfScore 0.00
-G_M17033_IG12:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 209, prolog size 26, PerfScore 54.88, instruction count 68, allocated bytes for code 209 (MethodHash=6cb4bd76) for method System.IO.Hashing.Crc32:TryHash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref):ubyte (FullOpts)
+; Total bytes of code 172, prolog size 18, PerfScore 53.25, instruction count 58, allocated bytes for code 172 (MethodHash=6cb4bd76) for method System.IO.Hashing.Crc32:TryHash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref):ubyte (FullOpts)
-31 (-16.67 % of base) - System.IO.Hashing.Crc32:Hash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int
; Assembly listing for method System.IO.Hashing.Crc32:Hash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (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; 3 single block inlinees; 6 inlinees without PGO data
; Final local variable assignments
;
;* V00 arg0 [V00 ] ( 0, 0 ) struct (16) zero-ref multireg-arg single-def <System.ReadOnlySpan`1[ubyte]>
;* V01 arg1 [V01 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op single-def <System.Span`1[ubyte]>
; V02 loc0 [V02,T11] ( 2, 2 ) int -> rax single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 tmp1 [V04,T10] ( 3, 2 ) int -> r14 "Inline return value spill temp"
+; V04 tmp1 [V04,T10] ( 3, 2 ) int -> r15 "Inline return value spill temp"
;* V05 tmp2 [V05 ] ( 0, 0 ) ubyte -> zero-ref single-def "Inline return value spill temp"
;* V06 tmp3 [V06 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V07 tmp4 [V07 ] ( 0, 0 ) int -> zero-ref
;* V08 tmp5 [V08 ] ( 0, 0 ) int -> zero-ref
;* V09 tmp6 [V09 ] ( 0, 0 ) int -> zero-ref
;* V10 tmp7 [V10 ] ( 0, 0 ) int -> zero-ref
;* V11 tmp8 [V11 ] ( 0, 0 ) int -> zero-ref
;* V12 tmp9 [V12 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V13 tmp10 [V13 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V14 tmp11 [V14 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[uint]>
;* V15 tmp12 [V15,T13] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V16 tmp13 [V16 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
; V17 tmp14 [V17,T00] ( 5, 26 ) int -> rdx "Inlining Arg"
; V18 tmp15 [V18,T02] ( 3, 12 ) ubyte -> r8 "Inline stloc first use temp"
;* V19 tmp16 [V19 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[uint]>
;* V20 tmp17 [V20 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.Span`1[ubyte]>
;* V21 tmp18 [V21 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
;* V22 tmp19 [V22 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V23 tmp20 [V23 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
-; V24 tmp21 [V24,T08] ( 3, 2 ) byref -> rdi single-def "field V00._reference (fldOffset=0x0)" P-INDEP
-; V25 tmp22 [V25,T03] ( 4, 3 ) int -> [rbp-0x1C] single-def "field V00._length (fldOffset=0x8)" P-INDEP
-; V26 tmp23 [V26,T09] ( 2, 2 ) byref -> r15 single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-; V27 tmp24 [V27,T04] ( 3, 3 ) int -> rbx single-def "field V01._length (fldOffset=0x8)" P-INDEP
+; V24 tmp21 [V24,T07] ( 3, 2 ) byref -> rdi single-def "field V00._reference (fldOffset=0x0)" P-INDEP
+; V25 tmp22 [V25,T03] ( 4, 3 ) int -> [rbp-0x14] single-def "field V00._length (fldOffset=0x8)" P-INDEP
+; V26 tmp23 [V26,T08] ( 2, 2 ) byref -> rbx single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+; V27 tmp24 [V27,T09] ( 2, 2 ) int -> rcx single-def "field V01._length (fldOffset=0x8)" P-INDEP
;* V28 tmp25 [V28 ] ( 0, 0 ) byref -> zero-ref "field V06._reference (fldOffset=0x0)" P-INDEP
;* V29 tmp26 [V29 ] ( 0, 0 ) int -> zero-ref single-def "field V06._length (fldOffset=0x8)" P-INDEP
-; V30 tmp27 [V30,T06] ( 2, 4.50) byref -> rax single-def "field V14._reference (fldOffset=0x0)" P-INDEP
+; V30 tmp27 [V30,T05] ( 2, 4.50) byref -> rax single-def "field V14._reference (fldOffset=0x0)" P-INDEP
;* V31 tmp28 [V31,T14] ( 0, 0 ) int -> zero-ref single-def "field V14._length (fldOffset=0x8)" P-INDEP
-; V32 tmp29 [V32,T07] ( 2, 4.50) byref -> rdi single-def "field V16._reference (fldOffset=0x0)" P-INDEP
-; V33 tmp30 [V33,T05] ( 3, 5 ) int -> rsi single-def "field V16._length (fldOffset=0x8)" P-INDEP
+; V32 tmp29 [V32,T06] ( 2, 4.50) byref -> rdi single-def "field V16._reference (fldOffset=0x0)" P-INDEP
+; V33 tmp30 [V33,T04] ( 3, 5 ) int -> rsi single-def "field V16._length (fldOffset=0x8)" P-INDEP
; V34 tmp31 [V34,T12] ( 2, 1 ) byref -> rax single-def "field V19._reference (fldOffset=0x0)" P-INDEP
;* V35 tmp32 [V35,T15] ( 0, 0 ) int -> zero-ref single-def "field V19._length (fldOffset=0x8)" P-INDEP
;* V36 tmp33 [V36 ] ( 0, 0 ) byref -> zero-ref single-def "field V20._reference (fldOffset=0x0)" P-INDEP
;* V37 tmp34 [V37 ] ( 0, 0 ) int -> zero-ref single-def "field V20._length (fldOffset=0x8)" P-INDEP
;* V38 tmp35 [V38 ] ( 0, 0 ) byref -> zero-ref single-def "field V22._reference (fldOffset=0x0)" P-INDEP
;* V39 tmp36 [V39 ] ( 0, 0 ) int -> zero-ref single-def "field V22._length (fldOffset=0x8)" P-INDEP
;* V40 tmp37 [V40 ] ( 0, 0 ) byref -> zero-ref single-def "field V23._reference (fldOffset=0x0)" P-INDEP
;* V41 tmp38 [V41 ] ( 0, 0 ) int -> zero-ref "field V23._length (fldOffset=0x8)" P-INDEP
; V42 rat0 [V42,T01] ( 5, 16.50) long -> rcx "Widened IV V15"
;
-; Lcl frame size = 8
+; Lcl frame size = 16
G_M38940_IG01:
push rbp
push r15
- push r14
push rbx
- push rax
+ sub rsp, 16
lea rbp, [rsp+0x20]
- mov r15, rdx
- mov ebx, ecx
- ;; size=17 bbWeight=1 PerfScore 6.00
+ mov rbx, rdx
+ ;; size=16 bbWeight=1 PerfScore 4.00
G_M38940_IG02:
- cmp ebx, 4
- jl G_M38940_IG10
+ cmp ecx, 4
+ jl SHORT G_M38940_IG09
cmp esi, 16
jge SHORT G_M38940_IG06
- ;; size=14 bbWeight=1 PerfScore 2.50
+ ;; size=10 bbWeight=1 PerfScore 2.50
G_M38940_IG03:
mov edx, -1
mov rax, 0xD1FFAB1E ; static handle
xor ecx, ecx
test esi, esi
jle SHORT G_M38940_IG05
align [0 bytes for IG04]
;; size=21 bbWeight=0.50 PerfScore 1.00
G_M38940_IG04:
movzx r8, byte ptr [rdi+rcx]
xor r8d, edx
movzx r8, r8b
cmp r8d, 256
- jae SHORT G_M38940_IG11
+ jae SHORT G_M38940_IG10
shr edx, 8
xor edx, dword ptr [rax+4*r8]
inc ecx
cmp ecx, esi
jl SHORT G_M38940_IG04
;; size=34 bbWeight=4 PerfScore 35.00
G_M38940_IG05:
- mov r14d, edx
+ mov r15d, edx
jmp SHORT G_M38940_IG07
;; size=5 bbWeight=0.50 PerfScore 1.12
G_M38940_IG06:
- mov dword ptr [rbp-0x1C], esi
+ mov dword ptr [rbp-0x14], esi
mov rsi, rdi
- mov edx, dword ptr [rbp-0x1C]
+ mov edx, dword ptr [rbp-0x14]
mov edi, -1
mov rax, 0xD1FFAB1E ; code for System.IO.Hashing.Crc32:UpdateVectorized(uint,System.ReadOnlySpan`1[ubyte]):uint
call [rax]System.IO.Hashing.Crc32:UpdateVectorized(uint,System.ReadOnlySpan`1[ubyte]):uint
- mov r14d, eax
+ mov r15d, eax
;; size=29 bbWeight=0.50 PerfScore 3.00
G_M38940_IG07:
- mov eax, r14d
+ mov eax, r15d
not eax
- cmp ebx, 4
- jb SHORT G_M38940_IG09
- mov dword ptr [r15], eax
+ mov dword ptr [rbx], eax
mov eax, 4
- ;; size=18 bbWeight=1 PerfScore 3.00
+ ;; size=12 bbWeight=1 PerfScore 1.75
G_M38940_IG08:
- add rsp, 8
+ add rsp, 16
pop rbx
- pop r14
pop r15
pop rbp
ret
- ;; size=11 bbWeight=1 PerfScore 3.25
+ ;; size=9 bbWeight=1 PerfScore 2.75
G_M38940_IG09:
- mov edi, 40
- mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
- call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
- int3
- ;; size=18 bbWeight=0 PerfScore 0.00
-G_M38940_IG10:
mov rax, 0xD1FFAB1E ; code for System.IO.Hashing.NonCryptographicHashAlgorithm:ThrowDestinationTooShort()
call [rax]System.IO.Hashing.NonCryptographicHashAlgorithm:ThrowDestinationTooShort()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M38940_IG11:
+G_M38940_IG10:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 186, prolog size 17, PerfScore 54.88, instruction count 58, allocated bytes for code 186 (MethodHash=b30467e3) for method System.IO.Hashing.Crc32:Hash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts)
+; Total bytes of code 155, prolog size 16, PerfScore 51.12, instruction count 49, allocated bytes for code 159 (MethodHash=b30467e3) for method System.IO.Hashing.Crc32:Hash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts)
-25 (-29.41 % of base) - System.IO.Hashing.XxHash32:Hash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],int):int
; Assembly listing for method System.IO.Hashing.XxHash32:Hash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],int):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 2 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
;* V00 arg0 [V00 ] ( 0, 0 ) struct (16) zero-ref multireg-arg single-def <System.ReadOnlySpan`1[ubyte]>
;* V01 arg1 [V01 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op single-def <System.Span`1[ubyte]>
; V02 arg2 [V02,T00] ( 3, 3 ) int -> r8 single-def
; V03 loc0 [V03,T05] ( 2, 2 ) int -> rax single-def
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V05 tmp1 [V05,T06] ( 2, 2 ) int -> rax ld-addr-op single-def "Inline stloc first use temp"
;* V06 tmp2 [V06 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.Span`1[ubyte]>
;* V07 tmp3 [V07 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V08 tmp4 [V08 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
-; V09 tmp5 [V09,T02] ( 2, 2 ) byref -> rdi single-def "field V00._reference (fldOffset=0x0)" P-INDEP
-; V10 tmp6 [V10,T04] ( 2, 2 ) int -> rsi single-def "field V00._length (fldOffset=0x8)" P-INDEP
-; V11 tmp7 [V11,T03] ( 2, 2 ) byref -> r15 single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-; V12 tmp8 [V12,T01] ( 3, 3 ) int -> rbx single-def "field V01._length (fldOffset=0x8)" P-INDEP
+; V09 tmp5 [V09,T01] ( 2, 2 ) byref -> rdi single-def "field V00._reference (fldOffset=0x0)" P-INDEP
+; V10 tmp6 [V10,T03] ( 2, 2 ) int -> rsi single-def "field V00._length (fldOffset=0x8)" P-INDEP
+; V11 tmp7 [V11,T02] ( 2, 2 ) byref -> rbx single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+; V12 tmp8 [V12,T04] ( 2, 2 ) int -> rcx single-def "field V01._length (fldOffset=0x8)" P-INDEP
;* V13 tmp9 [V13 ] ( 0, 0 ) byref -> zero-ref single-def "field V06._reference (fldOffset=0x0)" P-INDEP
;* V14 tmp10 [V14 ] ( 0, 0 ) int -> zero-ref single-def "field V06._length (fldOffset=0x8)" P-INDEP
;* V15 tmp11 [V15 ] ( 0, 0 ) byref -> zero-ref single-def "field V07._reference (fldOffset=0x0)" P-INDEP
;* V16 tmp12 [V16 ] ( 0, 0 ) int -> zero-ref single-def "field V07._length (fldOffset=0x8)" P-INDEP
;* V17 tmp13 [V17 ] ( 0, 0 ) byref -> zero-ref single-def "field V08._reference (fldOffset=0x0)" P-INDEP
;* V18 tmp14 [V18 ] ( 0, 0 ) int -> zero-ref "field V08._length (fldOffset=0x8)" P-INDEP
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M27075_IG01:
push rbp
- push r15
push rbx
+ push rax
lea rbp, [rsp+0x10]
- mov r15, rdx
- mov ebx, ecx
- ;; size=14 bbWeight=1 PerfScore 4.00
+ mov rbx, rdx
+ ;; size=11 bbWeight=1 PerfScore 3.75
G_M27075_IG02:
- cmp ebx, 4
- jl SHORT G_M27075_IG05
+ cmp ecx, 4
+ jl SHORT G_M27075_IG04
mov edx, r8d
mov rax, 0xD1FFAB1E ; code for System.IO.Hashing.XxHash32:HashToUInt32(System.ReadOnlySpan`1[ubyte],int):uint
call [rax]System.IO.Hashing.XxHash32:HashToUInt32(System.ReadOnlySpan`1[ubyte],int):uint
bswap eax
- cmp ebx, 4
- jb SHORT G_M27075_IG04
- mov dword ptr [r15], eax
+ mov dword ptr [rbx], eax
mov eax, 4
- ;; size=35 bbWeight=1 PerfScore 7.75
+ ;; size=29 bbWeight=1 PerfScore 6.50
G_M27075_IG03:
+ add rsp, 8
pop rbx
- pop r15
pop rbp
ret
- ;; size=5 bbWeight=1 PerfScore 2.50
+ ;; size=7 bbWeight=1 PerfScore 2.25
G_M27075_IG04:
- mov edi, 40
- mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
- call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
- int3
- ;; size=18 bbWeight=0 PerfScore 0.00
-G_M27075_IG05:
mov rax, 0xD1FFAB1E ; code for System.IO.Hashing.NonCryptographicHashAlgorithm:ThrowDestinationTooShort()
call [rax]System.IO.Hashing.NonCryptographicHashAlgorithm:ThrowDestinationTooShort()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-; Total bytes of code 85, prolog size 9, PerfScore 14.25, instruction count 27, allocated bytes for code 85 (MethodHash=fb2a963c) for method System.IO.Hashing.XxHash32:Hash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],int):int (FullOpts)
+; Total bytes of code 60, prolog size 8, PerfScore 12.50, instruction count 20, allocated bytes for code 60 (MethodHash=fb2a963c) for method System.IO.Hashing.XxHash32:Hash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],int):int (FullOpts)
-24 (-20.87 % of base) - System.IO.Hashing.Crc64:Hash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int
; Assembly listing for method System.IO.Hashing.Crc64:Hash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 3 single block inlinees; 4 inlinees without PGO data
; Final local variable assignments
;
;* V00 arg0 [V00 ] ( 0, 0 ) struct (16) zero-ref multireg-arg single-def <System.ReadOnlySpan`1[ubyte]>
;* V01 arg1 [V01 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op single-def <System.Span`1[ubyte]>
;* V02 loc0 [V02 ] ( 0, 0 ) long -> zero-ref single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04,T04] ( 3, 2 ) long -> rax "Inline return value spill temp"
;* V05 tmp2 [V05 ] ( 0, 0 ) ubyte -> zero-ref single-def "Inline return value spill temp"
;* V06 tmp3 [V06 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V07 tmp4 [V07 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V08 tmp5 [V08,T05] ( 2, 2 ) long -> rax ld-addr-op single-def "Inline stloc first use temp"
;* V09 tmp6 [V09 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.Span`1[ubyte]>
;* V10 tmp7 [V10 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V11 tmp8 [V11 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
-; V12 tmp9 [V12,T02] ( 3, 2 ) byref -> rsi single-def "field V00._reference (fldOffset=0x0)" P-INDEP
+; V12 tmp9 [V12,T01] ( 3, 2 ) byref -> rsi single-def "field V00._reference (fldOffset=0x0)" P-INDEP
; V13 tmp10 [V13,T00] ( 4, 3 ) int -> rax single-def "field V00._length (fldOffset=0x8)" P-INDEP
-; V14 tmp11 [V14,T03] ( 2, 2 ) byref -> r15 single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-; V15 tmp12 [V15,T01] ( 3, 3 ) int -> rbx single-def "field V01._length (fldOffset=0x8)" P-INDEP
+; V14 tmp11 [V14,T02] ( 2, 2 ) byref -> rbx single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+; V15 tmp12 [V15,T03] ( 2, 2 ) int -> rcx single-def "field V01._length (fldOffset=0x8)" P-INDEP
;* V16 tmp13 [V16 ] ( 0, 0 ) byref -> zero-ref "field V06._reference (fldOffset=0x0)" P-INDEP
;* V17 tmp14 [V17 ] ( 0, 0 ) int -> zero-ref single-def "field V06._length (fldOffset=0x8)" P-INDEP
;* V18 tmp15 [V18 ] ( 0, 0 ) byref -> zero-ref single-def "field V09._reference (fldOffset=0x0)" P-INDEP
;* V19 tmp16 [V19 ] ( 0, 0 ) int -> zero-ref single-def "field V09._length (fldOffset=0x8)" P-INDEP
;* V20 tmp17 [V20 ] ( 0, 0 ) byref -> zero-ref single-def "field V10._reference (fldOffset=0x0)" P-INDEP
;* V21 tmp18 [V21 ] ( 0, 0 ) int -> zero-ref single-def "field V10._length (fldOffset=0x8)" P-INDEP
;* V22 tmp19 [V22 ] ( 0, 0 ) byref -> zero-ref single-def "field V11._reference (fldOffset=0x0)" P-INDEP
;* V23 tmp20 [V23 ] ( 0, 0 ) int -> zero-ref "field V11._length (fldOffset=0x8)" P-INDEP
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M59327_IG01:
push rbp
- push r15
push rbx
+ push rax
lea rbp, [rsp+0x10]
mov eax, esi
mov rsi, rdi
- mov r15, rdx
- mov ebx, ecx
- ;; size=19 bbWeight=1 PerfScore 4.50
+ mov rbx, rdx
+ ;; size=16 bbWeight=1 PerfScore 4.25
G_M59327_IG02:
- cmp ebx, 8
- jl SHORT G_M59327_IG08
+ cmp ecx, 8
+ jl SHORT G_M59327_IG07
cmp eax, 16
jge SHORT G_M59327_IG04
;; size=10 bbWeight=1 PerfScore 2.50
G_M59327_IG03:
mov edx, eax
xor edi, edi
mov rax, 0xD1FFAB1E ; code for System.IO.Hashing.Crc64:UpdateScalar(ulong,System.ReadOnlySpan`1[ubyte]):ulong
call [rax]System.IO.Hashing.Crc64:UpdateScalar(ulong,System.ReadOnlySpan`1[ubyte]):ulong
jmp SHORT G_M59327_IG05
;; size=18 bbWeight=0.50 PerfScore 2.88
G_M59327_IG04:
mov edx, eax
xor edi, edi
mov rax, 0xD1FFAB1E ; code for System.IO.Hashing.Crc64:UpdateVectorized(ulong,System.ReadOnlySpan`1[ubyte]):ulong
call [rax]System.IO.Hashing.Crc64:UpdateVectorized(ulong,System.ReadOnlySpan`1[ubyte]):ulong
;; size=16 bbWeight=0.50 PerfScore 1.88
G_M59327_IG05:
bswap rax
- cmp ebx, 8
- jb SHORT G_M59327_IG07
- mov qword ptr [r15], rax
+ mov qword ptr [rbx], rax
mov eax, 8
- ;; size=16 bbWeight=1 PerfScore 3.50
+ ;; size=11 bbWeight=1 PerfScore 2.25
G_M59327_IG06:
+ add rsp, 8
pop rbx
- pop r15
pop rbp
ret
- ;; size=5 bbWeight=1 PerfScore 2.50
+ ;; size=7 bbWeight=1 PerfScore 2.25
G_M59327_IG07:
- mov edi, 40
- mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
- call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
- int3
- ;; size=18 bbWeight=0 PerfScore 0.00
-G_M59327_IG08:
mov rax, 0xD1FFAB1E ; code for System.IO.Hashing.NonCryptographicHashAlgorithm:ThrowDestinationTooShort()
call [rax]System.IO.Hashing.NonCryptographicHashAlgorithm:ThrowDestinationTooShort()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-; Total bytes of code 115, prolog size 9, PerfScore 17.75, instruction count 37, allocated bytes for code 115 (MethodHash=ca6f1840) for method System.IO.Hashing.Crc64:Hash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts)
+; Total bytes of code 91, prolog size 8, PerfScore 16.00, instruction count 30, allocated bytes for code 91 (MethodHash=ca6f1840) for method System.IO.Hashing.Crc64:Hash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts)
-24 (-27.91 % of base) - System.IO.Hashing.XxHash64:Hash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],long):int
; Assembly listing for method System.IO.Hashing.XxHash64:Hash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],long):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 2 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
;* V00 arg0 [V00 ] ( 0, 0 ) struct (16) zero-ref multireg-arg single-def <System.ReadOnlySpan`1[ubyte]>
;* V01 arg1 [V01 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op single-def <System.Span`1[ubyte]>
; V02 arg2 [V02,T00] ( 3, 3 ) long -> r8 single-def
; V03 loc0 [V03,T05] ( 2, 2 ) long -> rax single-def
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V05 tmp1 [V05,T06] ( 2, 2 ) long -> rax ld-addr-op single-def "Inline stloc first use temp"
;* V06 tmp2 [V06 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.Span`1[ubyte]>
;* V07 tmp3 [V07 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V08 tmp4 [V08 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
-; V09 tmp5 [V09,T02] ( 2, 2 ) byref -> rdi single-def "field V00._reference (fldOffset=0x0)" P-INDEP
-; V10 tmp6 [V10,T04] ( 2, 2 ) int -> rsi single-def "field V00._length (fldOffset=0x8)" P-INDEP
-; V11 tmp7 [V11,T03] ( 2, 2 ) byref -> r15 single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-; V12 tmp8 [V12,T01] ( 3, 3 ) int -> rbx single-def "field V01._length (fldOffset=0x8)" P-INDEP
+; V09 tmp5 [V09,T01] ( 2, 2 ) byref -> rdi single-def "field V00._reference (fldOffset=0x0)" P-INDEP
+; V10 tmp6 [V10,T03] ( 2, 2 ) int -> rsi single-def "field V00._length (fldOffset=0x8)" P-INDEP
+; V11 tmp7 [V11,T02] ( 2, 2 ) byref -> rbx single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+; V12 tmp8 [V12,T04] ( 2, 2 ) int -> rcx single-def "field V01._length (fldOffset=0x8)" P-INDEP
;* V13 tmp9 [V13 ] ( 0, 0 ) byref -> zero-ref single-def "field V06._reference (fldOffset=0x0)" P-INDEP
;* V14 tmp10 [V14 ] ( 0, 0 ) int -> zero-ref single-def "field V06._length (fldOffset=0x8)" P-INDEP
;* V15 tmp11 [V15 ] ( 0, 0 ) byref -> zero-ref single-def "field V07._reference (fldOffset=0x0)" P-INDEP
;* V16 tmp12 [V16 ] ( 0, 0 ) int -> zero-ref single-def "field V07._length (fldOffset=0x8)" P-INDEP
;* V17 tmp13 [V17 ] ( 0, 0 ) byref -> zero-ref single-def "field V08._reference (fldOffset=0x0)" P-INDEP
;* V18 tmp14 [V18 ] ( 0, 0 ) int -> zero-ref "field V08._length (fldOffset=0x8)" P-INDEP
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M49657_IG01:
push rbp
- push r15
push rbx
+ push rax
lea rbp, [rsp+0x10]
- mov r15, rdx
- mov ebx, ecx
- ;; size=14 bbWeight=1 PerfScore 4.00
+ mov rbx, rdx
+ ;; size=11 bbWeight=1 PerfScore 3.75
G_M49657_IG02:
- cmp ebx, 8
- jl SHORT G_M49657_IG05
+ cmp ecx, 8
+ jl SHORT G_M49657_IG04
mov rdx, r8
mov rax, 0xD1FFAB1E ; code for System.IO.Hashing.XxHash64:HashToUInt64(System.ReadOnlySpan`1[ubyte],long):ulong
call [rax]System.IO.Hashing.XxHash64:HashToUInt64(System.ReadOnlySpan`1[ubyte],long):ulong
bswap rax
- cmp ebx, 8
- jb SHORT G_M49657_IG04
- mov qword ptr [r15], rax
+ mov qword ptr [rbx], rax
mov eax, 8
- ;; size=36 bbWeight=1 PerfScore 8.25
+ ;; size=31 bbWeight=1 PerfScore 7.00
G_M49657_IG03:
+ add rsp, 8
pop rbx
- pop r15
pop rbp
ret
- ;; size=5 bbWeight=1 PerfScore 2.50
+ ;; size=7 bbWeight=1 PerfScore 2.25
G_M49657_IG04:
- mov edi, 40
- mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
- call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
- int3
- ;; size=18 bbWeight=0 PerfScore 0.00
-G_M49657_IG05:
mov rax, 0xD1FFAB1E ; code for System.IO.Hashing.NonCryptographicHashAlgorithm:ThrowDestinationTooShort()
call [rax]System.IO.Hashing.NonCryptographicHashAlgorithm:ThrowDestinationTooShort()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-; Total bytes of code 86, prolog size 9, PerfScore 14.75, instruction count 27, allocated bytes for code 86 (MethodHash=3cb63e06) for method System.IO.Hashing.XxHash64:Hash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],long):int (FullOpts)
+; Total bytes of code 62, prolog size 8, PerfScore 13.00, instruction count 20, allocated bytes for code 62 (MethodHash=3cb63e06) for method System.IO.Hashing.XxHash64:Hash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],long):int (FullOpts)
-23 (-20.72 % of base) - System.Net.IPAddress:TryWriteBytes(System.Span`1[ubyte],byref):ubyte:this
; Assembly listing for method System.Net.IPAddress:TryWriteBytes(System.Span`1[ubyte],byref):ubyte:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 7 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T01] ( 4, 3.50) ref -> rdi this class-hnd single-def <System.Net.IPAddress>
;* V01 arg1 [V01 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op single-def <System.Span`1[ubyte]>
; V02 arg2 [V02,T00] ( 6, 4 ) byref -> rcx single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04,T05] ( 3, 1.50) ref -> r8 class-hnd single-def "Inline stloc first use temp" <ushort[]>
; V05 tmp2 [V05,T07] ( 5, 2.50) simd16 -> mm0 "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ushort]>
;* V06 tmp3 [V06 ] ( 0, 0 ) simd16 -> zero-ref "impAppendStmt"
;* V07 tmp4 [V07 ] ( 0, 0 ) simd16 -> zero-ref "spilled call-like call argument"
;* V08 tmp5 [V08 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V09 tmp6 [V09 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
; V10 tmp7 [V10,T06] ( 2, 1 ) int -> rax ld-addr-op "Inline stloc first use temp"
;* V11 tmp8 [V11 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.Span`1[ubyte]>
;* V12 tmp9 [V12 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V13 tmp10 [V13 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
-; V14 tmp11 [V14,T03] ( 3, 2 ) byref -> rsi single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-; V15 tmp12 [V15,T02] ( 4, 2.50) int -> rdx single-def "field V01._length (fldOffset=0x8)" P-INDEP
+; V14 tmp11 [V14,T02] ( 3, 2 ) byref -> rsi single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+; V15 tmp12 [V15,T03] ( 3, 2 ) int -> rdx single-def "field V01._length (fldOffset=0x8)" P-INDEP
;* V16 tmp13 [V16 ] ( 0, 0 ) byref -> zero-ref single-def "field V08._reference (fldOffset=0x0)" P-INDEP
;* V17 tmp14 [V17 ] ( 0, 0 ) int -> zero-ref "field V08._length (fldOffset=0x8)" P-INDEP
;* V18 tmp15 [V18 ] ( 0, 0 ) byref -> zero-ref single-def "field V09._reference (fldOffset=0x0)" P-INDEP
;* V19 tmp16 [V19 ] ( 0, 0 ) int -> zero-ref "field V09._length (fldOffset=0x8)" P-INDEP
;* V20 tmp17 [V20 ] ( 0, 0 ) byref -> zero-ref single-def "field V11._reference (fldOffset=0x0)" P-INDEP
;* V21 tmp18 [V21 ] ( 0, 0 ) int -> zero-ref "field V11._length (fldOffset=0x8)" P-INDEP
;* V22 tmp19 [V22 ] ( 0, 0 ) byref -> zero-ref single-def "field V12._reference (fldOffset=0x0)" P-INDEP
;* V23 tmp20 [V23 ] ( 0, 0 ) int -> zero-ref "field V12._length (fldOffset=0x8)" P-INDEP
;* V24 tmp21 [V24 ] ( 0, 0 ) byref -> zero-ref single-def "field V13._reference (fldOffset=0x0)" P-INDEP
;* V25 tmp22 [V25 ] ( 0, 0 ) int -> zero-ref "field V13._length (fldOffset=0x8)" P-INDEP
; V26 cse0 [V26,T04] ( 3, 2.50) ref -> r8 "CSE #01: aggressive"
;
; Lcl frame size = 0
G_M50495_IG01:
push rbp
mov rbp, rsp
;; size=4 bbWeight=1 PerfScore 1.25
G_M50495_IG02:
mov r8, gword ptr [rdi+0x08]
test r8, r8
jne SHORT G_M50495_IG06
;; size=9 bbWeight=1 PerfScore 3.25
G_M50495_IG03:
cmp edx, 4
jl SHORT G_M50495_IG04
mov eax, dword ptr [rdi+0x18]
- cmp edx, 4
- jb SHORT G_M50495_IG11
mov dword ptr [rsi], eax
mov dword ptr [rcx], 4
jmp SHORT G_M50495_IG07
- ;; size=23 bbWeight=0.50 PerfScore 4.25
+ ;; size=18 bbWeight=0.50 PerfScore 3.62
G_M50495_IG04:
xor eax, eax
mov dword ptr [rcx], eax
;; size=4 bbWeight=0.50 PerfScore 0.62
G_M50495_IG05:
pop rbp
ret
;; size=2 bbWeight=0.50 PerfScore 0.75
G_M50495_IG06:
cmp edx, 16
jl SHORT G_M50495_IG09
cmp byte ptr [r8], r8b
vmovups xmm0, xmmword ptr [r8+0x10]
vpsllw xmm1, xmm0, 8
vpsrlw xmm0, xmm0, 8
vpor xmm0, xmm0, xmm1
vmovups xmmword ptr [rsi], xmm0
mov dword ptr [rcx], 16
;; size=38 bbWeight=0.50 PerfScore 6.79
G_M50495_IG07:
mov eax, 1
;; size=5 bbWeight=0.50 PerfScore 0.12
G_M50495_IG08:
pop rbp
ret
;; size=2 bbWeight=0.50 PerfScore 0.75
G_M50495_IG09:
xor eax, eax
mov dword ptr [rcx], eax
;; size=4 bbWeight=0.50 PerfScore 0.62
G_M50495_IG10:
pop rbp
ret
;; size=2 bbWeight=0.50 PerfScore 0.75
-G_M50495_IG11:
- mov edi, 40
- mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
- call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
- int3
- ;; size=18 bbWeight=0 PerfScore 0.00
-; Total bytes of code 111, prolog size 4, PerfScore 19.17, instruction count 37, allocated bytes for code 111 (MethodHash=ea6a3ac0) for method System.Net.IPAddress:TryWriteBytes(System.Span`1[ubyte],byref):ubyte:this (FullOpts)
+; Total bytes of code 88, prolog size 4, PerfScore 18.54, instruction count 31, allocated bytes for code 88 (MethodHash=ea6a3ac0) for method System.Net.IPAddress:TryWriteBytes(System.Span`1[ubyte],byref):ubyte:this (FullOpts)
-12 (-11.43 % of base) - System.Guid:TryWriteBytes(System.Span`1[ubyte],ubyte,byref):ubyte:this
; Assembly listing for method System.Guid:TryWriteBytes(System.Span`1[ubyte],ubyte,byref):ubyte:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 6 single block inlinees; 5 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 7, 4.50) byref -> rdi this single-def
;* V01 arg1 [V01 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op single-def <System.Span`1[ubyte]>
-; V02 arg2 [V02,T04] ( 3, 2.50) ubyte -> rcx single-def
+; V02 arg2 [V02,T03] ( 3, 2.50) ubyte -> rcx single-def
; V03 arg3 [V03,T02] ( 4, 3 ) byref -> r8 single-def
;* V04 loc0 [V04,T09] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SF] ld-addr-op <System.Guid>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V06 tmp1 [V06 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[System.Guid]>
;* V07 tmp2 [V07 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
;* V08 tmp3 [V08 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V09 tmp4 [V09 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V10 tmp5 [V10 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V11 tmp6 [V11 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[System.Guid]>
;* V12 tmp7 [V12 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V13 tmp8 [V13 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[System.Guid]>
;* V14 tmp9 [V14 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
;* V15 tmp10 [V15 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V16 tmp11 [V16 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V17 tmp12 [V17 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V18 tmp13 [V18 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V19 tmp14 [V19 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V20 tmp15 [V20 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V21 tmp16 [V21 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
; V22 tmp17 [V22,T01] ( 6, 3.50) byref -> rsi single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-; V23 tmp18 [V23,T03] ( 4, 3 ) int -> rdx single-def "field V01._length (fldOffset=0x8)" P-INDEP
+; V23 tmp18 [V23,T04] ( 2, 2 ) int -> rdx single-def "field V01._length (fldOffset=0x8)" P-INDEP
;* V24 tmp19 [V24 ] ( 0, 0 ) byref -> zero-ref single-def "field V06._reference (fldOffset=0x0)" P-INDEP
;* V25 tmp20 [V25 ] ( 0, 0 ) int -> zero-ref "field V06._length (fldOffset=0x8)" P-INDEP
;* V26 tmp21 [V26 ] ( 0, 0 ) byref -> zero-ref "field V07._reference (fldOffset=0x0)" P-INDEP
;* V27 tmp22 [V27 ] ( 0, 0 ) int -> zero-ref "field V07._length (fldOffset=0x8)" P-INDEP
;* V28 tmp23 [V28 ] ( 0, 0 ) byref -> zero-ref single-def "field V09._reference (fldOffset=0x0)" P-INDEP
;* V29 tmp24 [V29 ] ( 0, 0 ) int -> zero-ref "field V09._length (fldOffset=0x8)" P-INDEP
;* V30 tmp25 [V30 ] ( 0, 0 ) byref -> zero-ref single-def "field V10._reference (fldOffset=0x0)" P-INDEP
;* V31 tmp26 [V31 ] ( 0, 0 ) int -> zero-ref "field V10._length (fldOffset=0x8)" P-INDEP
;* V32 tmp27 [V32 ] ( 0, 0 ) byref -> zero-ref single-def "field V11._reference (fldOffset=0x0)" P-INDEP
;* V33 tmp28 [V33 ] ( 0, 0 ) int -> zero-ref "field V11._length (fldOffset=0x8)" P-INDEP
;* V34 tmp29 [V34 ] ( 0, 0 ) byref -> zero-ref single-def "field V12._reference (fldOffset=0x0)" P-INDEP
;* V35 tmp30 [V35 ] ( 0, 0 ) int -> zero-ref "field V12._length (fldOffset=0x8)" P-INDEP
;* V36 tmp31 [V36 ] ( 0, 0 ) byref -> zero-ref single-def "field V13._reference (fldOffset=0x0)" P-INDEP
;* V37 tmp32 [V37 ] ( 0, 0 ) int -> zero-ref "field V13._length (fldOffset=0x8)" P-INDEP
;* V38 tmp33 [V38 ] ( 0, 0 ) byref -> zero-ref single-def "field V16._reference (fldOffset=0x0)" P-INDEP
;* V39 tmp34 [V39 ] ( 0, 0 ) int -> zero-ref "field V16._length (fldOffset=0x8)" P-INDEP
;* V40 tmp35 [V40 ] ( 0, 0 ) byref -> zero-ref single-def "field V17._reference (fldOffset=0x0)" P-INDEP
;* V41 tmp36 [V41 ] ( 0, 0 ) int -> zero-ref "field V17._length (fldOffset=0x8)" P-INDEP
;* V42 tmp37 [V42 ] ( 0, 0 ) byref -> zero-ref single-def "field V18._reference (fldOffset=0x0)" P-INDEP
;* V43 tmp38 [V43 ] ( 0, 0 ) int -> zero-ref "field V18._length (fldOffset=0x8)" P-INDEP
;* V44 tmp39 [V44 ] ( 0, 0 ) byref -> zero-ref single-def "field V20._reference (fldOffset=0x0)" P-INDEP
;* V45 tmp40 [V45 ] ( 0, 0 ) int -> zero-ref "field V20._length (fldOffset=0x8)" P-INDEP
;* V46 tmp41 [V46 ] ( 0, 0 ) byref -> zero-ref single-def "field V21._reference (fldOffset=0x0)" P-INDEP
;* V47 tmp42 [V47 ] ( 0, 0 ) int -> zero-ref "field V21._length (fldOffset=0x8)" P-INDEP
; V48 tmp43 [V48,T05] ( 4, 2 ) int -> rax "V04.[000..004)"
; V49 tmp44 [V49,T06] ( 4, 2 ) short -> rcx "V04.[004..006)"
-; V50 tmp45 [V50,T07] ( 4, 2 ) short -> r9 "V04.[006..008)"
+; V50 tmp45 [V50,T07] ( 4, 2 ) short -> rdx "V04.[006..008)"
; V51 cse0 [V51,T08] ( 2, 1 ) long -> rdi "CSE #01: moderate"
;
; Lcl frame size = 0
G_M3213_IG01:
push rbp
mov rbp, rsp
;; size=4 bbWeight=1 PerfScore 1.25
G_M3213_IG02:
cmp edx, 16
jl SHORT G_M3213_IG07
;; size=5 bbWeight=1 PerfScore 1.25
G_M3213_IG03:
cmp cl, 1
jne SHORT G_M3213_IG04
mov eax, dword ptr [rdi]
movsx rcx, word ptr [rdi+0x04]
- movsx r9, word ptr [rdi+0x06]
+ movsx rdx, word ptr [rdi+0x06]
mov rdi, qword ptr [rdi+0x08]
bswap eax
ror cx, 8
movsx rcx, cx
- ror r9w, 8
- movsx r9, r9w
- cmp edx, 16
- jb SHORT G_M3213_IG05
+ ror dx, 8
+ movsx rdx, dx
mov dword ptr [rsi], eax
mov word ptr [rsi+0x04], cx
- mov word ptr [rsi+0x06], r9w
+ mov word ptr [rsi+0x06], dx
mov qword ptr [rsi+0x08], rdi
jmp SHORT G_M3213_IG05
- ;; size=62 bbWeight=0.50 PerfScore 11.25
+ ;; size=55 bbWeight=0.50 PerfScore 10.62
G_M3213_IG04:
- cmp edx, 16
- jb SHORT G_M3213_IG05
vmovups xmm0, xmmword ptr [rdi]
vmovups xmmword ptr [rsi], xmm0
- ;; size=13 bbWeight=0.50 PerfScore 3.62
+ ;; size=8 bbWeight=0.50 PerfScore 3.00
G_M3213_IG05:
mov dword ptr [r8], 16
mov eax, 1
;; size=12 bbWeight=0.50 PerfScore 0.62
G_M3213_IG06:
pop rbp
ret
;; size=2 bbWeight=0.50 PerfScore 0.75
G_M3213_IG07:
xor eax, eax
mov dword ptr [r8], eax
;; size=5 bbWeight=0.50 PerfScore 0.62
G_M3213_IG08:
pop rbp
ret
;; size=2 bbWeight=0.50 PerfScore 0.75
-; Total bytes of code 105, prolog size 4, PerfScore 20.12, instruction count 34, allocated bytes for code 105 (MethodHash=8006f372) for method System.Guid:TryWriteBytes(System.Span`1[ubyte],ubyte,byref):ubyte:this (FullOpts)
+; Total bytes of code 93, prolog size 4, PerfScore 18.88, instruction count 30, allocated bytes for code 93 (MethodHash=8006f372) for method System.Guid:TryWriteBytes(System.Span`1[ubyte],ubyte,byref):ubyte:this (FullOpts)
-11 (-33.33 % of base) - System.Guid:TryWriteBytes(System.Span`1[ubyte]):ubyte:this
; Assembly listing for method System.Guid:TryWriteBytes(System.Span`1[ubyte]):ubyte:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
-; rbp based frame
+; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 3, 2.50) byref -> rdi this single-def
;* V01 arg1 [V01 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op single-def <System.Span`1[ubyte]>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V03 tmp1 [V03 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V04 tmp2 [V04 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V05 tmp3 [V05 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
; V06 tmp4 [V06,T02] ( 2, 1.50) byref -> rsi single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-; V07 tmp5 [V07,T01] ( 3, 2.50) int -> rdx single-def "field V01._length (fldOffset=0x8)" P-INDEP
+; V07 tmp5 [V07,T01] ( 2, 2 ) int -> rdx single-def "field V01._length (fldOffset=0x8)" P-INDEP
;* V08 tmp6 [V08 ] ( 0, 0 ) byref -> zero-ref single-def "field V04._reference (fldOffset=0x0)" P-INDEP
;* V09 tmp7 [V09 ] ( 0, 0 ) int -> zero-ref "field V04._length (fldOffset=0x8)" P-INDEP
;* V10 tmp8 [V10 ] ( 0, 0 ) byref -> zero-ref single-def "field V05._reference (fldOffset=0x0)" P-INDEP
;* V11 tmp9 [V11 ] ( 0, 0 ) int -> zero-ref "field V05._length (fldOffset=0x8)" P-INDEP
;
; Lcl frame size = 0
G_M45208_IG01:
- push rbp
- mov rbp, rsp
- ;; size=4 bbWeight=1 PerfScore 1.25
+ ;; size=0 bbWeight=1 PerfScore 0.00
G_M45208_IG02:
cmp edx, 16
- jl SHORT G_M45208_IG06
+ jl SHORT G_M45208_IG05
;; size=5 bbWeight=1 PerfScore 1.25
G_M45208_IG03:
- cmp edx, 16
- jb SHORT G_M45208_IG04
vmovups xmm0, xmmword ptr [rdi]
vmovups xmmword ptr [rsi], xmm0
- ;; size=13 bbWeight=0.50 PerfScore 3.62
-G_M45208_IG04:
mov eax, 1
- ;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M45208_IG05:
- pop rbp
+ ;; size=13 bbWeight=0.50 PerfScore 3.12
+G_M45208_IG04:
ret
- ;; size=2 bbWeight=0.50 PerfScore 0.75
-G_M45208_IG06:
+ ;; size=1 bbWeight=0.50 PerfScore 0.50
+G_M45208_IG05:
xor eax, eax
;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M45208_IG07:
- pop rbp
+G_M45208_IG06:
ret
- ;; size=2 bbWeight=0.50 PerfScore 0.75
+ ;; size=1 bbWeight=0.50 PerfScore 0.50
-; Total bytes of code 33, prolog size 4, PerfScore 7.88, instruction count 14, allocated bytes for code 33 (MethodHash=9a754f67) for method System.Guid:TryWriteBytes(System.Span`1[ubyte]):ubyte:this (FullOpts)
+; Total bytes of code 22, prolog size 0, PerfScore 5.50, instruction count 8, allocated bytes for code 22 (MethodHash=9a754f67) for method System.Guid:TryWriteBytes(System.Span`1[ubyte]):ubyte:this (FullOpts)
-9 (-2.17 % of base) - System.Reflection.Metadata.Ecma335.PortablePdbBuilder:Serialize(System.Reflection.Metadata.BlobBuilder):System.Reflection.Metadata.BlobContentId:this
; Assembly listing for method System.Reflection.Metadata.Ecma335.PortablePdbBuilder:Serialize(System.Reflection.Metadata.BlobBuilder):System.Reflection.Metadata.BlobContentId:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 11 single block inlinees; 5 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 12, 12 ) ref -> rbx this class-hnd single-def <System.Reflection.Metadata.Ecma335.PortablePdbBuilder>
; V01 RetBuf [V01,T03] ( 4, 4 ) byref -> r14 single-def
; V02 arg1 [V02,T01] ( 8, 8 ) ref -> r15 class-hnd single-def <System.Reflection.Metadata.BlobBuilder>
; V03 loc0 [V03,T07] ( 4, 4 ) struct (24) [rbp-0x40] do-not-enreg[HS] hidden-struct-arg ld-addr-op <System.Reflection.Metadata.BlobContentId>
;* V04 loc1 [V04 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op <System.Reflection.Metadata.BlobWriter>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V06 tmp1 [V06,T04] ( 3, 6 ) ref -> r13 class-hnd single-def "impAppendStmt" <System.Func`2[System.Collections.Generic.IEnumerable`1[System.Reflection.Metadata.Blob],System.Reflection.Metadata.BlobContentId]>
; V07 tmp2 [V07,T05] ( 3, 6 ) ref -> r12 class-hnd exact single-def "Single-def Box Helper" <System.Reflection.Metadata.BlobBuilder+Blobs>
; V08 tmp3 [V08,T12] ( 2, 3 ) struct (16) mm0 "spilled call-like call argument" <System.Guid>
;* V09 tmp4 [V09 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Metadata.Blob>
;* V10 tmp5 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "impAppendStmt" <ubyte[]>
;* V11 tmp6 [V11 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V12 tmp7 [V12 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V13 tmp8 [V13 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V14 tmp9 [V14 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V15 tmp10 [V15 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Guid>
;* V16 tmp11 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inlining Arg" <ubyte[]>
;* V17 tmp12 [V17 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
;* V18 tmp13 [V18 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.Span`1[ubyte]>
;* V19 tmp14 [V19 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V20 tmp15 [V20 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
; V21 tmp16 [V21,T14] ( 2, 2 ) byref -> r8 single-def "Inlining Arg"
; V22 tmp17 [V22,T15] ( 2, 2 ) int -> rcx "Inlining Arg"
;* V23 tmp18 [V23 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V24 tmp19 [V24 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V25 tmp20 [V25 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V26 tmp21 [V26 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V27 tmp22 [V27 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V28 tmp23 [V28 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V29 tmp24 [V29,T08] ( 2, 4 ) int -> rcx "Inlining Arg"
;* V30 tmp25 [V30 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V31 tmp26 [V31 ] ( 0, 0 ) ref -> zero-ref single-def "field V04._buffer (fldOffset=0x0)" P-INDEP
;* V32 tmp27 [V32 ] ( 0, 0 ) int -> zero-ref "field V04._start (fldOffset=0x8)" P-INDEP
; V33 tmp28 [V33,T10] ( 3, 3 ) int -> rdx "field V04._end (fldOffset=0xc)" P-INDEP
; V34 tmp29 [V34,T11] ( 3, 3 ) int -> rax "field V04._position (fldOffset=0x10)" P-INDEP
; V35 tmp30 [V35,T06] ( 5, 4 ) ref -> rdi single-def "field V09.Buffer (fldOffset=0x0)" P-INDEP
; V36 tmp31 [V36,T02] ( 8, 6 ) int -> rsi "field V09.Start (fldOffset=0x8)" P-INDEP
; V37 tmp32 [V37,T16] ( 2, 2 ) int -> rdx "field V09.<Length>k__BackingField (fldOffset=0xc)" P-INDEP
;* V38 tmp33 [V38 ] ( 0, 0 ) byref -> zero-ref "field V17._reference (fldOffset=0x0)" P-INDEP
;* V39 tmp34 [V39 ] ( 0, 0 ) int -> zero-ref "field V17._length (fldOffset=0x8)" P-INDEP
; V40 tmp35 [V40,T17] ( 3, 1.50) byref -> r8 "field V18._reference (fldOffset=0x0)" P-INDEP
-; V41 tmp36 [V41,T13] ( 4, 2.50) int -> rcx "field V18._length (fldOffset=0x8)" P-INDEP
+; V41 tmp36 [V41,T13] ( 3, 2 ) int -> rcx "field V18._length (fldOffset=0x8)" P-INDEP
; V42 tmp37 [V42,T19] ( 2, 1 ) byref -> r8 single-def "field V19._reference (fldOffset=0x0)" P-INDEP
; V43 tmp38 [V43,T20] ( 2, 1 ) int -> rcx "field V19._length (fldOffset=0x8)" P-INDEP
;* V44 tmp39 [V44 ] ( 0, 0 ) byref -> zero-ref single-def "field V20._reference (fldOffset=0x0)" P-INDEP
;* V45 tmp40 [V45 ] ( 0, 0 ) int -> zero-ref "field V20._length (fldOffset=0x8)" P-INDEP
;* V46 tmp41 [V46 ] ( 0, 0 ) byref -> zero-ref single-def "field V24._reference (fldOffset=0x0)" P-INDEP
;* V47 tmp42 [V47 ] ( 0, 0 ) int -> zero-ref "field V24._length (fldOffset=0x8)" P-INDEP
;* V48 tmp43 [V48 ] ( 0, 0 ) byref -> zero-ref single-def "field V26._reference (fldOffset=0x0)" P-INDEP
;* V49 tmp44 [V49 ] ( 0, 0 ) int -> zero-ref "field V26._length (fldOffset=0x8)" P-INDEP
;* V50 tmp45 [V50 ] ( 0, 0 ) byref -> zero-ref single-def "field V27._reference (fldOffset=0x0)" P-INDEP
;* V51 tmp46 [V51 ] ( 0, 0 ) int -> zero-ref "field V27._length (fldOffset=0x8)" P-INDEP
; V52 cse0 [V52,T09] ( 3, 3 ) ref -> rdx "CSE #01: moderate"
; V53 cse1 [V53,T18] ( 3, 1.50) int -> rcx "CSE #02: moderate"
;
; Lcl frame size = 24
G_M23392_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 24
lea rbp, [rsp+0x40]
mov rbx, rdi
mov r14, rsi
mov r15, rdx
;; size=28 bbWeight=1 PerfScore 7.50
G_M23392_IG02:
test r15, r15
je G_M23392_IG12
mov rdx, gword ptr [rbx+0x10]
mov rdx, gword ptr [rdx+0x10]
mov rdi, r15
mov rsi, 0xD1FFAB1E ; 'PDB v1.0'
mov rax, 0xD1FFAB1E ; code for System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeMetadataHeader(System.Reflection.Metadata.BlobBuilder,System.String,System.Reflection.Metadata.Ecma335.MetadataSizes)
call [rax]System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeMetadataHeader(System.Reflection.Metadata.BlobBuilder,System.String,System.Reflection.Metadata.Ecma335.MetadataSizes)
mov rdi, rbx
mov rsi, r15
mov rax, 0xD1FFAB1E ; code for System.Reflection.Metadata.Ecma335.PortablePdbBuilder:SerializeStandalonePdbStream(System.Reflection.Metadata.BlobBuilder):this
call [rax]System.Reflection.Metadata.Ecma335.PortablePdbBuilder:SerializeStandalonePdbStream(System.Reflection.Metadata.BlobBuilder):this
mov rdx, gword ptr [rbx+0x10]
mov rcx, gword ptr [rdx+0x18]
mov rdx, gword ptr [rdx+0x10]
mov rdi, gword ptr [rbx+0x08]
mov rsi, r15
xor r8d, r8d
xor r9d, r9d
mov rax, 0xD1FFAB1E ; code for System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeMetadataTables(System.Reflection.Metadata.BlobBuilder,System.Reflection.Metadata.Ecma335.MetadataSizes,System.Collections.Immutable.ImmutableArray`1[int],int,int):this
cmp dword ptr [rdi], edi
call [rax]System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeMetadataTables(System.Reflection.Metadata.BlobBuilder,System.Reflection.Metadata.Ecma335.MetadataSizes,System.Collections.Immutable.ImmutableArray`1[int],int,int):this
mov rdx, gword ptr [rbx+0x10]
mov rdx, gword ptr [rdx+0x08]
mov rdi, gword ptr [rbx+0x08]
mov rsi, r15
mov rax, 0xD1FFAB1E ; code for System.Reflection.Metadata.Ecma335.MetadataBuilder:WriteHeapsTo(System.Reflection.Metadata.BlobBuilder,System.Reflection.Metadata.BlobBuilder):this
cmp dword ptr [rdi], edi
call [rax]System.Reflection.Metadata.Ecma335.MetadataBuilder:WriteHeapsTo(System.Reflection.Metadata.BlobBuilder,System.Reflection.Metadata.BlobBuilder):this
mov r13, gword ptr [rbx+0x18]
mov rdi, 0xD1FFAB1E ; System.Reflection.Metadata.BlobBuilder+Blobs
call CORINFO_HELP_NEWSFAST
mov r12, rax
lea rsi, bword ptr [r12+0x08]
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Reflection.Metadata.BlobBuilder:GetBlobs():System.Reflection.Metadata.BlobBuilder+Blobs:this
call [rax]System.Reflection.Metadata.BlobBuilder:GetBlobs():System.Reflection.Metadata.BlobBuilder+Blobs:this
mov rdx, r12
lea rsi, [rbp-0x40]
mov rdi, gword ptr [r13+0x08]
call [r13+0x18]System.Func`2[System.__Canon,System.Reflection.Metadata.BlobContentId]:Invoke(System.__Canon):System.Reflection.Metadata.BlobContentId:this
mov rdi, gword ptr [rbx+0x20]
mov esi, dword ptr [rbx+0x28]
mov edx, dword ptr [rbx+0x2C]
add edx, esi
vmovups xmm0, xmmword ptr [rbp-0x40]
lea eax, [rdx-0x10]
cmp esi, eax
;; size=207 bbWeight=1 PerfScore 63.50
G_M23392_IG03:
- jg G_M23392_IG11
+ jg SHORT G_M23392_IG11
lea eax, [rsi+0x10]
test rdi, rdi
je SHORT G_M23392_IG05
- ;; size=14 bbWeight=1 PerfScore 2.75
+ ;; size=10 bbWeight=1 PerfScore 2.75
G_M23392_IG04:
mov ecx, dword ptr [rdi+0x08]
cmp ecx, esi
jb SHORT G_M23392_IG10
mov r8d, esi
lea r8, bword ptr [rdi+r8+0x10]
sub ecx, esi
jmp SHORT G_M23392_IG06
;; size=19 bbWeight=0.50 PerfScore 3.38
G_M23392_IG05:
test esi, esi
jne SHORT G_M23392_IG10
xor r8, r8
xor ecx, ecx
;; size=9 bbWeight=0.50 PerfScore 0.88
G_M23392_IG06:
cmp ecx, 16
jl SHORT G_M23392_IG08
;; size=5 bbWeight=1 PerfScore 1.25
G_M23392_IG07:
- cmp ecx, 16
- jb SHORT G_M23392_IG08
vmovups xmmword ptr [r8], xmm0
- ;; size=10 bbWeight=0.50 PerfScore 1.62
+ ;; size=5 bbWeight=0.50 PerfScore 1.00
G_M23392_IG08:
mov ecx, dword ptr [rbp-0x30]
add edx, -4
cmp eax, edx
jg SHORT G_M23392_IG11
mov esi, eax
mov edx, ecx
mov rax, 0xD1FFAB1E ; code for System.Reflection.BlobUtilities:WriteUInt32(ubyte[],int,uint)
call [rax]System.Reflection.BlobUtilities:WriteUInt32(ubyte[],int,uint)
vmovdqu xmm0, xmmword ptr [rbp-0x40]
vmovdqu xmmword ptr [r14], xmm0
mov eax, dword ptr [rbp-0x30]
mov dword ptr [r14+0x10], eax
mov rax, r14
;; size=46 bbWeight=1 PerfScore 13.50
G_M23392_IG09:
add rsp, 24
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.25
G_M23392_IG10:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
G_M23392_IG11:
mov rax, 0xD1FFAB1E ; code for System.Reflection.Throw:OutOfBounds()
call [rax]System.Reflection.Throw:OutOfBounds()
int3
;; size=13 bbWeight=0 PerfScore 0.00
G_M23392_IG12:
mov edi, 0x18B7
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
mov rdi, rax
mov rax, 0xD1FFAB1E ; code for System.Reflection.Throw:ArgumentNull(System.String)
call [rax]System.Reflection.Throw:ArgumentNull(System.String)
int3
;; size=36 bbWeight=0 PerfScore 0.00
-; Total bytes of code 415, prolog size 19, PerfScore 98.62, instruction count 113, allocated bytes for code 415 (MethodHash=bbe9a49f) for method System.Reflection.Metadata.Ecma335.PortablePdbBuilder:Serialize(System.Reflection.Metadata.BlobBuilder):System.Reflection.Metadata.BlobContentId:this (FullOpts)
+; Total bytes of code 406, prolog size 19, PerfScore 98.00, instruction count 111, allocated bytes for code 406 (MethodHash=bbe9a49f) for method System.Reflection.Metadata.Ecma335.PortablePdbBuilder:Serialize(System.Reflection.Metadata.BlobBuilder):System.Reflection.Metadata.BlobContentId:this (FullOpts)
-6 (-6.38 % of base) - System.Text.Json.JsonDocument+MetadataDb:SetHasComplexChildren(int):this
; Assembly listing for method System.Text.Json.JsonDocument+MetadataDb:SetHasComplexChildren(int):this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 5 single block inlinees; 3 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T02] ( 3, 3 ) byref -> rdi this single-def
; V01 arg1 [V01,T03] ( 3, 3 ) int -> rsi single-def
-; V02 loc0 [V02,T07] ( 2, 2 ) int -> rcx ld-addr-op
+; V02 loc0 [V02,T07] ( 2, 2 ) int -> rax ld-addr-op
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04 ] ( 0, 0 ) struct (16) zero-ref "dup spill" <System.Span`1[ubyte]>
;* V05 tmp2 [V05 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
;* V06 tmp3 [V06 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.Span`1[ubyte]>
; V07 tmp4 [V07,T01] ( 4, 6 ) ref -> rdi class-hnd single-def "Inlining Arg" <ubyte[]>
; V08 tmp5 [V08,T00] ( 5, 6 ) int -> rsi "Inlining Arg"
;* V09 tmp6 [V09 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V10 tmp7 [V10 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
; V11 tmp8 [V11,T06] ( 2, 2 ) byref -> rdi single-def "Inlining Arg"
; V12 tmp9 [V12,T08] ( 2, 2 ) int -> rax "Inlining Arg"
;* V13 tmp10 [V13 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V14 tmp11 [V14 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V15 tmp12 [V15 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
;* V16 tmp13 [V16 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V17 tmp14 [V17 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V18 tmp15 [V18 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V19 tmp16 [V19 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V20 tmp17 [V20 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V21 tmp18 [V21 ] ( 0, 0 ) byref -> zero-ref single-def "field V04._reference (fldOffset=0x0)" P-INDEP
;* V22 tmp19 [V22 ] ( 0, 0 ) int -> zero-ref "field V04._length (fldOffset=0x8)" P-INDEP
;* V23 tmp20 [V23 ] ( 0, 0 ) byref -> zero-ref "field V05._reference (fldOffset=0x0)" P-INDEP
;* V24 tmp21 [V24 ] ( 0, 0 ) int -> zero-ref "field V05._length (fldOffset=0x8)" P-INDEP
; V25 tmp22 [V25,T04] ( 4, 3 ) byref -> rdi "field V06._reference (fldOffset=0x0)" P-INDEP
-; V26 tmp23 [V26,T05] ( 4, 3 ) int -> rax "field V06._length (fldOffset=0x8)" P-INDEP
+; V26 tmp23 [V26,T05] ( 3, 2 ) int -> rax "field V06._length (fldOffset=0x8)" P-INDEP
; V27 tmp24 [V27,T10] ( 2, 1 ) byref -> rdi single-def "field V09._reference (fldOffset=0x0)" P-INDEP
; V28 tmp25 [V28,T11] ( 2, 1 ) int -> rax "field V09._length (fldOffset=0x8)" P-INDEP
;* V29 tmp26 [V29 ] ( 0, 0 ) byref -> zero-ref single-def "field V10._reference (fldOffset=0x0)" P-INDEP
;* V30 tmp27 [V30 ] ( 0, 0 ) int -> zero-ref "field V10._length (fldOffset=0x8)" P-INDEP
;* V31 tmp28 [V31 ] ( 0, 0 ) byref -> zero-ref single-def "field V13._reference (fldOffset=0x0)" P-INDEP
;* V32 tmp29 [V32 ] ( 0, 0 ) int -> zero-ref "field V13._length (fldOffset=0x8)" P-INDEP
;* V33 tmp30 [V33 ] ( 0, 0 ) byref -> zero-ref single-def "field V14._reference (fldOffset=0x0)" P-INDEP
;* V34 tmp31 [V34 ] ( 0, 0 ) int -> zero-ref "field V14._length (fldOffset=0x8)" P-INDEP
;* V35 tmp32 [V35 ] ( 0, 0 ) byref -> zero-ref single-def "field V17._reference (fldOffset=0x0)" P-INDEP
;* V36 tmp33 [V36 ] ( 0, 0 ) int -> zero-ref "field V17._length (fldOffset=0x8)" P-INDEP
;* V37 tmp34 [V37 ] ( 0, 0 ) byref -> zero-ref single-def "field V18._reference (fldOffset=0x0)" P-INDEP
;* V38 tmp35 [V38 ] ( 0, 0 ) int -> zero-ref "field V18._length (fldOffset=0x8)" P-INDEP
;* V39 tmp36 [V39 ] ( 0, 0 ) byref -> zero-ref single-def "field V19._reference (fldOffset=0x0)" P-INDEP
;* V40 tmp37 [V40 ] ( 0, 0 ) int -> zero-ref "field V19._length (fldOffset=0x8)" P-INDEP
;* V41 tmp38 [V41 ] ( 0, 0 ) byref -> zero-ref single-def "field V20._reference (fldOffset=0x0)" P-INDEP
;* V42 tmp39 [V42 ] ( 0, 0 ) int -> zero-ref "field V20._length (fldOffset=0x8)" P-INDEP
; V43 cse0 [V43,T09] ( 3, 1.50) int -> rax "CSE #01: moderate"
;
; Lcl frame size = 0
G_M15164_IG01:
push rbp
mov rbp, rsp
;; size=4 bbWeight=1 PerfScore 1.25
G_M15164_IG02:
mov rdi, gword ptr [rdi]
add esi, 4
test rdi, rdi
je SHORT G_M15164_IG04
;; size=11 bbWeight=1 PerfScore 3.50
G_M15164_IG03:
mov eax, dword ptr [rdi+0x08]
cmp eax, esi
jb SHORT G_M15164_IG08
mov ecx, esi
lea rdi, bword ptr [rdi+rcx+0x10]
sub eax, esi
jmp SHORT G_M15164_IG05
;; size=18 bbWeight=0.50 PerfScore 3.38
G_M15164_IG04:
test esi, esi
jne SHORT G_M15164_IG08
xor rdi, rdi
xor eax, eax
;; size=8 bbWeight=0.50 PerfScore 0.88
G_M15164_IG05:
cmp eax, 4
jl SHORT G_M15164_IG07
- mov ecx, dword ptr [rdi]
- or ecx, 0xD1FFAB1E
- cmp eax, 4
- jb SHORT G_M15164_IG07
- mov dword ptr [rdi], ecx
- ;; size=20 bbWeight=1 PerfScore 5.75
+ mov eax, dword ptr [rdi]
+ or eax, 0xD1FFAB1E
+ mov dword ptr [rdi], eax
+ ;; size=14 bbWeight=1 PerfScore 4.50
G_M15164_IG06:
pop rbp
ret
;; size=2 bbWeight=1 PerfScore 1.50
G_M15164_IG07:
mov edi, 40
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
int3
;; size=18 bbWeight=0 PerfScore 0.00
G_M15164_IG08:
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 94, prolog size 4, PerfScore 16.25, instruction count 33, allocated bytes for code 94 (MethodHash=c9bbc4c3) for method System.Text.Json.JsonDocument+MetadataDb:SetHasComplexChildren(int):this (FullOpts)
+; Total bytes of code 88, prolog size 4, PerfScore 15.00, instruction count 31, allocated bytes for code 88 (MethodHash=c9bbc4c3) for method System.Text.Json.JsonDocument+MetadataDb:SetHasComplexChildren(int):this (FullOpts)
-6 (-6.25 % of base) - System.Text.Json.JsonDocument+MetadataDb:SetNumberOfRows(int,int):this
; Assembly listing for method System.Text.Json.JsonDocument+MetadataDb:SetNumberOfRows(int,int):this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 5 single block inlinees; 3 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T02] ( 3, 3 ) byref -> rdi this single-def
; V01 arg1 [V01,T03] ( 3, 3 ) int -> rsi single-def
; V02 arg2 [V02,T04] ( 3, 3 ) int -> rdx single-def
-; V03 loc0 [V03,T08] ( 2, 2 ) int -> rcx ld-addr-op
+; V03 loc0 [V03,T08] ( 2, 2 ) int -> rax ld-addr-op
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V05 tmp1 [V05 ] ( 0, 0 ) struct (16) zero-ref "dup spill" <System.Span`1[ubyte]>
;* V06 tmp2 [V06 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
;* V07 tmp3 [V07 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.Span`1[ubyte]>
; V08 tmp4 [V08,T01] ( 4, 6 ) ref -> rdi class-hnd single-def "Inlining Arg" <ubyte[]>
; V09 tmp5 [V09,T00] ( 5, 6 ) int -> rsi "Inlining Arg"
;* V10 tmp6 [V10 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V11 tmp7 [V11 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
; V12 tmp8 [V12,T07] ( 2, 2 ) byref -> rdi single-def "Inlining Arg"
; V13 tmp9 [V13,T09] ( 2, 2 ) int -> rax "Inlining Arg"
;* V14 tmp10 [V14 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V15 tmp11 [V15 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V16 tmp12 [V16 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
;* V17 tmp13 [V17 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V18 tmp14 [V18 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V19 tmp15 [V19 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V20 tmp16 [V20 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V21 tmp17 [V21 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V22 tmp18 [V22 ] ( 0, 0 ) byref -> zero-ref single-def "field V05._reference (fldOffset=0x0)" P-INDEP
;* V23 tmp19 [V23 ] ( 0, 0 ) int -> zero-ref "field V05._length (fldOffset=0x8)" P-INDEP
;* V24 tmp20 [V24 ] ( 0, 0 ) byref -> zero-ref "field V06._reference (fldOffset=0x0)" P-INDEP
;* V25 tmp21 [V25 ] ( 0, 0 ) int -> zero-ref "field V06._length (fldOffset=0x8)" P-INDEP
; V26 tmp22 [V26,T05] ( 4, 3 ) byref -> rdi "field V07._reference (fldOffset=0x0)" P-INDEP
-; V27 tmp23 [V27,T06] ( 4, 3 ) int -> rax "field V07._length (fldOffset=0x8)" P-INDEP
+; V27 tmp23 [V27,T06] ( 3, 2 ) int -> rax "field V07._length (fldOffset=0x8)" P-INDEP
; V28 tmp24 [V28,T11] ( 2, 1 ) byref -> rdi single-def "field V10._reference (fldOffset=0x0)" P-INDEP
; V29 tmp25 [V29,T12] ( 2, 1 ) int -> rax "field V10._length (fldOffset=0x8)" P-INDEP
;* V30 tmp26 [V30 ] ( 0, 0 ) byref -> zero-ref single-def "field V11._reference (fldOffset=0x0)" P-INDEP
;* V31 tmp27 [V31 ] ( 0, 0 ) int -> zero-ref "field V11._length (fldOffset=0x8)" P-INDEP
;* V32 tmp28 [V32 ] ( 0, 0 ) byref -> zero-ref single-def "field V14._reference (fldOffset=0x0)" P-INDEP
;* V33 tmp29 [V33 ] ( 0, 0 ) int -> zero-ref "field V14._length (fldOffset=0x8)" P-INDEP
;* V34 tmp30 [V34 ] ( 0, 0 ) byref -> zero-ref single-def "field V15._reference (fldOffset=0x0)" P-INDEP
;* V35 tmp31 [V35 ] ( 0, 0 ) int -> zero-ref "field V15._length (fldOffset=0x8)" P-INDEP
;* V36 tmp32 [V36 ] ( 0, 0 ) byref -> zero-ref single-def "field V18._reference (fldOffset=0x0)" P-INDEP
;* V37 tmp33 [V37 ] ( 0, 0 ) int -> zero-ref "field V18._length (fldOffset=0x8)" P-INDEP
;* V38 tmp34 [V38 ] ( 0, 0 ) byref -> zero-ref single-def "field V19._reference (fldOffset=0x0)" P-INDEP
;* V39 tmp35 [V39 ] ( 0, 0 ) int -> zero-ref "field V19._length (fldOffset=0x8)" P-INDEP
;* V40 tmp36 [V40 ] ( 0, 0 ) byref -> zero-ref single-def "field V20._reference (fldOffset=0x0)" P-INDEP
;* V41 tmp37 [V41 ] ( 0, 0 ) int -> zero-ref "field V20._length (fldOffset=0x8)" P-INDEP
;* V42 tmp38 [V42 ] ( 0, 0 ) byref -> zero-ref single-def "field V21._reference (fldOffset=0x0)" P-INDEP
;* V43 tmp39 [V43 ] ( 0, 0 ) int -> zero-ref "field V21._length (fldOffset=0x8)" P-INDEP
; V44 cse0 [V44,T10] ( 3, 1.50) int -> rax "CSE #01: moderate"
;
; Lcl frame size = 0
G_M55801_IG01:
push rbp
mov rbp, rsp
;; size=4 bbWeight=1 PerfScore 1.25
G_M55801_IG02:
mov rdi, gword ptr [rdi]
add esi, 8
test rdi, rdi
je SHORT G_M55801_IG04
;; size=11 bbWeight=1 PerfScore 3.50
G_M55801_IG03:
mov eax, dword ptr [rdi+0x08]
cmp eax, esi
jb SHORT G_M55801_IG08
mov ecx, esi
lea rdi, bword ptr [rdi+rcx+0x10]
sub eax, esi
jmp SHORT G_M55801_IG05
;; size=18 bbWeight=0.50 PerfScore 3.38
G_M55801_IG04:
test esi, esi
jne SHORT G_M55801_IG08
xor rdi, rdi
xor eax, eax
;; size=8 bbWeight=0.50 PerfScore 0.88
G_M55801_IG05:
cmp eax, 4
jl SHORT G_M55801_IG07
- mov ecx, dword ptr [rdi]
- and ecx, 0xD1FFAB1E
- or ecx, edx
- cmp eax, 4
- jb SHORT G_M55801_IG07
- mov dword ptr [rdi], ecx
- ;; size=22 bbWeight=1 PerfScore 6.00
+ mov eax, dword ptr [rdi]
+ and eax, 0xD1FFAB1E
+ or eax, edx
+ mov dword ptr [rdi], eax
+ ;; size=16 bbWeight=1 PerfScore 4.75
G_M55801_IG06:
pop rbp
ret
;; size=2 bbWeight=1 PerfScore 1.50
G_M55801_IG07:
mov edi, 40
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
int3
;; size=18 bbWeight=0 PerfScore 0.00
G_M55801_IG08:
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 96, prolog size 4, PerfScore 16.50, instruction count 34, allocated bytes for code 96 (MethodHash=910d2606) for method System.Text.Json.JsonDocument+MetadataDb:SetNumberOfRows(int,int):this (FullOpts)
+; Total bytes of code 90, prolog size 4, PerfScore 15.25, instruction count 32, allocated bytes for code 90 (MethodHash=910d2606) for method System.Text.Json.JsonDocument+MetadataDb:SetNumberOfRows(int,int):this (FullOpts)
-5 (-5.75 % of base) - System.Reflection.BlobUtilities:WriteGuid(ubyte[],int,System.Guid)
; Assembly listing for method System.Reflection.BlobUtilities:WriteGuid(ubyte[],int,System.Guid) (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 2 single block inlinees; 3 inlinees without PGO data
; Final local variable assignments
;
; V00 arg0 [V00,T01] ( 5, 4 ) ref -> rdi class-hnd single-def <ubyte[]>
; V01 arg1 [V01,T00] ( 6, 4 ) int -> rsi single-def
; V02 arg2 [V02,T02] ( 3, 2.50) struct (16) [rbp-0x10] do-not-enreg[SA] multireg-arg ld-addr-op single-def <System.Guid>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
;* V05 tmp2 [V05 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.Span`1[ubyte]>
;* V06 tmp3 [V06 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V07 tmp4 [V07 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
; V08 tmp5 [V08,T04] ( 2, 2 ) byref -> rcx single-def "Inlining Arg"
; V09 tmp6 [V09,T05] ( 2, 2 ) int -> rax "Inlining Arg"
;* V10 tmp7 [V10 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V11 tmp8 [V11 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V12 tmp9 [V12 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V13 tmp10 [V13 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V14 tmp11 [V14 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V15 tmp12 [V15 ] ( 0, 0 ) byref -> zero-ref "field V04._reference (fldOffset=0x0)" P-INDEP
;* V16 tmp13 [V16 ] ( 0, 0 ) int -> zero-ref "field V04._length (fldOffset=0x8)" P-INDEP
; V17 tmp14 [V17,T06] ( 3, 1.50) byref -> rcx "field V05._reference (fldOffset=0x0)" P-INDEP
-; V18 tmp15 [V18,T03] ( 4, 2.50) int -> rax "field V05._length (fldOffset=0x8)" P-INDEP
+; V18 tmp15 [V18,T03] ( 3, 2 ) int -> rax "field V05._length (fldOffset=0x8)" P-INDEP
; V19 tmp16 [V19,T08] ( 2, 1 ) byref -> rcx single-def "field V06._reference (fldOffset=0x0)" P-INDEP
; V20 tmp17 [V20,T09] ( 2, 1 ) int -> rax "field V06._length (fldOffset=0x8)" P-INDEP
;* V21 tmp18 [V21 ] ( 0, 0 ) byref -> zero-ref single-def "field V07._reference (fldOffset=0x0)" P-INDEP
;* V22 tmp19 [V22 ] ( 0, 0 ) int -> zero-ref "field V07._length (fldOffset=0x8)" P-INDEP
;* V23 tmp20 [V23 ] ( 0, 0 ) byref -> zero-ref single-def "field V11._reference (fldOffset=0x0)" P-INDEP
;* V24 tmp21 [V24 ] ( 0, 0 ) int -> zero-ref "field V11._length (fldOffset=0x8)" P-INDEP
;* V25 tmp22 [V25 ] ( 0, 0 ) byref -> zero-ref single-def "field V13._reference (fldOffset=0x0)" P-INDEP
;* V26 tmp23 [V26 ] ( 0, 0 ) int -> zero-ref "field V13._length (fldOffset=0x8)" P-INDEP
;* V27 tmp24 [V27 ] ( 0, 0 ) byref -> zero-ref single-def "field V14._reference (fldOffset=0x0)" P-INDEP
;* V28 tmp25 [V28 ] ( 0, 0 ) int -> zero-ref "field V14._length (fldOffset=0x8)" P-INDEP
; V29 cse0 [V29,T07] ( 3, 1.50) int -> rax "CSE #01: moderate"
;
; Lcl frame size = 16
G_M7642_IG01:
push rbp
sub rsp, 16
lea rbp, [rsp+0x10]
mov qword ptr [rbp-0x10], rdx
mov qword ptr [rbp-0x08], rcx
;; size=18 bbWeight=1 PerfScore 3.75
G_M7642_IG02:
test rdi, rdi
je SHORT G_M7642_IG04
;; size=5 bbWeight=1 PerfScore 1.25
G_M7642_IG03:
mov eax, dword ptr [rdi+0x08]
cmp eax, esi
jb SHORT G_M7642_IG08
mov ecx, esi
lea rcx, bword ptr [rdi+rcx+0x10]
sub eax, esi
jmp SHORT G_M7642_IG05
;; size=18 bbWeight=0.50 PerfScore 3.38
G_M7642_IG04:
test esi, esi
jne SHORT G_M7642_IG08
xor rcx, rcx
xor eax, eax
;; size=8 bbWeight=0.50 PerfScore 0.88
G_M7642_IG05:
cmp eax, 16
jl SHORT G_M7642_IG07
;; size=5 bbWeight=1 PerfScore 1.25
G_M7642_IG06:
- cmp eax, 16
- jb SHORT G_M7642_IG07
vmovups xmm0, xmmword ptr [rbp-0x10]
vmovups xmmword ptr [rcx], xmm0
- ;; size=14 bbWeight=0.50 PerfScore 3.12
+ ;; size=9 bbWeight=0.50 PerfScore 2.50
G_M7642_IG07:
add rsp, 16
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
G_M7642_IG08:
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 87, prolog size 10, PerfScore 15.38, instruction count 30, allocated bytes for code 87 (MethodHash=e440e225) for method System.Reflection.BlobUtilities:WriteGuid(ubyte[],int,System.Guid) (FullOpts)
+; Total bytes of code 82, prolog size 10, PerfScore 14.75, instruction count 28, allocated bytes for code 82 (MethodHash=e440e225) for method System.Reflection.BlobUtilities:WriteGuid(ubyte[],int,System.Guid) (FullOpts)
-5 (-3.14 % of base) - System.Reflection.Metadata.BlobBuilder:WriteGuid(System.Guid):this
; Assembly listing for method System.Reflection.Metadata.BlobBuilder:WriteGuid(System.Guid):this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 4 single block inlinees; 4 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 7, 6.50) ref -> rbx this class-hnd single-def <System.Reflection.Metadata.BlobBuilder>
; V01 arg1 [V01,T03] ( 3, 2.50) struct (16) [rbp-0x20] do-not-enreg[SA] multireg-arg single-def <System.Guid>
;* V02 loc0 [V02 ] ( 0, 0 ) int -> zero-ref
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04,T02] ( 8, 5.50) int -> r15 "Inline stloc first use temp"
;* V05 tmp2 [V05 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Guid>
; V06 tmp3 [V06,T01] ( 4, 6 ) ref -> rax class-hnd single-def "Inlining Arg" <ubyte[]>
;* V07 tmp4 [V07 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
;* V08 tmp5 [V08 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.Span`1[ubyte]>
;* V09 tmp6 [V09 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V10 tmp7 [V10 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
; V11 tmp8 [V11,T05] ( 2, 2 ) byref -> rax single-def "Inlining Arg"
; V12 tmp9 [V12,T06] ( 2, 2 ) int -> rcx "Inlining Arg"
;* V13 tmp10 [V13 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V14 tmp11 [V14 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V15 tmp12 [V15 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V16 tmp13 [V16 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V17 tmp14 [V17 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V18 tmp15 [V18 ] ( 0, 0 ) byref -> zero-ref "field V07._reference (fldOffset=0x0)" P-INDEP
;* V19 tmp16 [V19 ] ( 0, 0 ) int -> zero-ref "field V07._length (fldOffset=0x8)" P-INDEP
; V20 tmp17 [V20,T07] ( 3, 1.50) byref -> rax "field V08._reference (fldOffset=0x0)" P-INDEP
-; V21 tmp18 [V21,T04] ( 4, 2.50) int -> rcx "field V08._length (fldOffset=0x8)" P-INDEP
+; V21 tmp18 [V21,T04] ( 3, 2 ) int -> rcx "field V08._length (fldOffset=0x8)" P-INDEP
; V22 tmp19 [V22,T09] ( 2, 1 ) byref -> rax single-def "field V09._reference (fldOffset=0x0)" P-INDEP
; V23 tmp20 [V23,T10] ( 2, 1 ) int -> rcx "field V09._length (fldOffset=0x8)" P-INDEP
;* V24 tmp21 [V24 ] ( 0, 0 ) byref -> zero-ref single-def "field V10._reference (fldOffset=0x0)" P-INDEP
;* V25 tmp22 [V25 ] ( 0, 0 ) int -> zero-ref "field V10._length (fldOffset=0x8)" P-INDEP
;* V26 tmp23 [V26 ] ( 0, 0 ) byref -> zero-ref single-def "field V14._reference (fldOffset=0x0)" P-INDEP
;* V27 tmp24 [V27 ] ( 0, 0 ) int -> zero-ref "field V14._length (fldOffset=0x8)" P-INDEP
;* V28 tmp25 [V28 ] ( 0, 0 ) byref -> zero-ref single-def "field V16._reference (fldOffset=0x0)" P-INDEP
;* V29 tmp26 [V29 ] ( 0, 0 ) int -> zero-ref "field V16._length (fldOffset=0x8)" P-INDEP
;* V30 tmp27 [V30 ] ( 0, 0 ) byref -> zero-ref single-def "field V17._reference (fldOffset=0x0)" P-INDEP
;* V31 tmp28 [V31 ] ( 0, 0 ) int -> zero-ref "field V17._length (fldOffset=0x8)" P-INDEP
; V32 cse0 [V32,T08] ( 3, 1.50) int -> rcx "CSE #01: moderate"
;
; Lcl frame size = 16
G_M55272_IG01:
push rbp
push r15
push rbx
sub rsp, 16
lea rbp, [rsp+0x20]
mov qword ptr [rbp-0x20], rsi
mov qword ptr [rbp-0x18], rdx
mov rbx, rdi
;; size=24 bbWeight=1 PerfScore 6.00
G_M55272_IG02:
mov r15d, dword ptr [rbx+0x1C]
mov rdi, gword ptr [rbx+0x10]
mov edi, dword ptr [rdi+0x08]
add edi, -16
movsxd rdi, edi
mov esi, r15d
cmp rdi, rsi
jge SHORT G_M55272_IG04
;; size=25 bbWeight=1 PerfScore 8.00
G_M55272_IG03:
mov rdi, rbx
mov esi, 16
mov rax, 0xD1FFAB1E ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
call [rax]System.Reflection.Metadata.BlobBuilder:Expand(int):this
xor r15d, r15d
;; size=23 bbWeight=0.50 PerfScore 2.00
G_M55272_IG04:
lea eax, [r15+0x10]
mov dword ptr [rbx+0x1C], eax
mov rax, gword ptr [rbx+0x10]
test rax, rax
je SHORT G_M55272_IG06
;; size=16 bbWeight=1 PerfScore 4.75
G_M55272_IG05:
mov ecx, dword ptr [rax+0x08]
cmp ecx, r15d
jb SHORT G_M55272_IG10
mov edx, r15d
lea rax, bword ptr [rax+rdx+0x10]
sub ecx, r15d
jmp SHORT G_M55272_IG07
;; size=21 bbWeight=0.50 PerfScore 3.38
G_M55272_IG06:
test r15d, r15d
jne SHORT G_M55272_IG10
xor rax, rax
xor ecx, ecx
;; size=9 bbWeight=0.50 PerfScore 0.88
G_M55272_IG07:
cmp ecx, 16
jl SHORT G_M55272_IG09
;; size=5 bbWeight=1 PerfScore 1.25
G_M55272_IG08:
- cmp ecx, 16
- jb SHORT G_M55272_IG09
vmovups xmm0, xmmword ptr [rbp-0x20]
vmovups xmmword ptr [rax], xmm0
- ;; size=14 bbWeight=0.50 PerfScore 3.12
+ ;; size=9 bbWeight=0.50 PerfScore 2.50
G_M55272_IG09:
add rsp, 16
pop rbx
pop r15
pop rbp
ret
;; size=9 bbWeight=1 PerfScore 2.75
G_M55272_IG10:
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 159, prolog size 13, PerfScore 32.12, instruction count 51, allocated bytes for code 159 (MethodHash=88a42817) for method System.Reflection.Metadata.BlobBuilder:WriteGuid(System.Guid):this (FullOpts)
+; Total bytes of code 154, prolog size 13, PerfScore 31.50, instruction count 49, allocated bytes for code 154 (MethodHash=88a42817) for method System.Reflection.Metadata.BlobBuilder:WriteGuid(System.Guid):this (FullOpts)
-5 (-4.10 % of base) - System.Reflection.Metadata.BlobWriter:WriteGuid(System.Guid):this
; Assembly listing for method System.Reflection.Metadata.BlobWriter:WriteGuid(System.Guid):this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 3 single block inlinees; 4 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 6, 6 ) byref -> rdi this single-def
; V01 arg1 [V01,T03] ( 3, 2.50) struct (16) [rbp-0x10] do-not-enreg[SA] multireg-arg single-def <System.Guid>
;* V02 loc0 [V02 ] ( 0, 0 ) int -> zero-ref
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04,T02] ( 7, 5 ) int -> rax "Inline stloc first use temp"
;* V05 tmp2 [V05 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Guid>
; V06 tmp3 [V06,T01] ( 4, 6 ) ref -> rcx class-hnd single-def "Inlining Arg" <ubyte[]>
;* V07 tmp4 [V07 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
;* V08 tmp5 [V08 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.Span`1[ubyte]>
;* V09 tmp6 [V09 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V10 tmp7 [V10 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
; V11 tmp8 [V11,T05] ( 2, 2 ) byref -> rcx single-def "Inlining Arg"
; V12 tmp9 [V12,T06] ( 2, 2 ) int -> rdx "Inlining Arg"
;* V13 tmp10 [V13 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V14 tmp11 [V14 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V15 tmp12 [V15 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V16 tmp13 [V16 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V17 tmp14 [V17 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V18 tmp15 [V18 ] ( 0, 0 ) byref -> zero-ref "field V07._reference (fldOffset=0x0)" P-INDEP
;* V19 tmp16 [V19 ] ( 0, 0 ) int -> zero-ref "field V07._length (fldOffset=0x8)" P-INDEP
; V20 tmp17 [V20,T07] ( 3, 1.50) byref -> rcx "field V08._reference (fldOffset=0x0)" P-INDEP
-; V21 tmp18 [V21,T04] ( 4, 2.50) int -> rdx "field V08._length (fldOffset=0x8)" P-INDEP
+; V21 tmp18 [V21,T04] ( 3, 2 ) int -> rdx "field V08._length (fldOffset=0x8)" P-INDEP
; V22 tmp19 [V22,T09] ( 2, 1 ) byref -> rcx single-def "field V09._reference (fldOffset=0x0)" P-INDEP
; V23 tmp20 [V23,T10] ( 2, 1 ) int -> rdx "field V09._length (fldOffset=0x8)" P-INDEP
;* V24 tmp21 [V24 ] ( 0, 0 ) byref -> zero-ref single-def "field V10._reference (fldOffset=0x0)" P-INDEP
;* V25 tmp22 [V25 ] ( 0, 0 ) int -> zero-ref "field V10._length (fldOffset=0x8)" P-INDEP
;* V26 tmp23 [V26 ] ( 0, 0 ) byref -> zero-ref single-def "field V14._reference (fldOffset=0x0)" P-INDEP
;* V27 tmp24 [V27 ] ( 0, 0 ) int -> zero-ref "field V14._length (fldOffset=0x8)" P-INDEP
;* V28 tmp25 [V28 ] ( 0, 0 ) byref -> zero-ref single-def "field V16._reference (fldOffset=0x0)" P-INDEP
;* V29 tmp26 [V29 ] ( 0, 0 ) int -> zero-ref "field V16._length (fldOffset=0x8)" P-INDEP
;* V30 tmp27 [V30 ] ( 0, 0 ) byref -> zero-ref single-def "field V17._reference (fldOffset=0x0)" P-INDEP
;* V31 tmp28 [V31 ] ( 0, 0 ) int -> zero-ref "field V17._length (fldOffset=0x8)" P-INDEP
; V32 cse0 [V32,T08] ( 3, 1.50) int -> rdx "CSE #01: moderate"
;
; Lcl frame size = 16
G_M46534_IG01:
push rbp
sub rsp, 16
lea rbp, [rsp+0x10]
mov qword ptr [rbp-0x10], rsi
mov qword ptr [rbp-0x08], rdx
;; size=18 bbWeight=1 PerfScore 3.75
G_M46534_IG02:
mov eax, dword ptr [rdi+0x10]
mov ecx, dword ptr [rdi+0x0C]
add ecx, -16
cmp eax, ecx
jg SHORT G_M46534_IG09
lea ecx, [rax+0x10]
mov dword ptr [rdi+0x10], ecx
mov rcx, gword ptr [rdi]
test rcx, rcx
je SHORT G_M46534_IG04
;; size=27 bbWeight=1 PerfScore 10.25
G_M46534_IG03:
mov edx, dword ptr [rcx+0x08]
cmp edx, eax
jb SHORT G_M46534_IG08
mov edi, eax
lea rcx, bword ptr [rcx+rdi+0x10]
sub edx, eax
jmp SHORT G_M46534_IG05
;; size=18 bbWeight=0.50 PerfScore 3.38
G_M46534_IG04:
test eax, eax
jne SHORT G_M46534_IG08
xor rcx, rcx
xor edx, edx
;; size=8 bbWeight=0.50 PerfScore 0.88
G_M46534_IG05:
cmp edx, 16
jl SHORT G_M46534_IG07
;; size=5 bbWeight=1 PerfScore 1.25
G_M46534_IG06:
- cmp edx, 16
- jb SHORT G_M46534_IG07
vmovups xmm0, xmmword ptr [rbp-0x10]
vmovups xmmword ptr [rcx], xmm0
- ;; size=14 bbWeight=0.50 PerfScore 3.12
+ ;; size=9 bbWeight=0.50 PerfScore 2.50
G_M46534_IG07:
add rsp, 16
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
G_M46534_IG08:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
G_M46534_IG09:
mov rax, 0xD1FFAB1E ; code for System.Reflection.Throw:OutOfBounds()
call [rax]System.Reflection.Throw:OutOfBounds()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-; Total bytes of code 122, prolog size 10, PerfScore 24.38, instruction count 41, allocated bytes for code 122 (MethodHash=ebdf4a39) for method System.Reflection.Metadata.BlobWriter:WriteGuid(System.Guid):this (FullOpts)
+; Total bytes of code 117, prolog size 10, PerfScore 23.75, instruction count 39, allocated bytes for code 117 (MethodHash=ebdf4a39) for method System.Reflection.Metadata.BlobWriter:WriteGuid(System.Guid):this (FullOpts)
-5 (-1.54 % of base) - System.Reflection.Metadata.Ecma335.MetadataBuilder:GetOrAddGuid(System.Guid):System.Reflection.Metadata.GuidHandle:this
; Assembly listing for method System.Reflection.Metadata.Ecma335.MetadataBuilder:GetOrAddGuid(System.Guid):System.Reflection.Metadata.GuidHandle:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 12 single block inlinees; 6 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T01] ( 6, 4 ) ref -> rbx this class-hnd single-def <System.Reflection.Metadata.Ecma335.MetadataBuilder>
; V01 arg1 [V01,T00] ( 8, 5.50) struct (16) [rbp-0x28] do-not-enreg[SA] multireg-arg single-def <System.Guid>
;* V02 loc0 [V02 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.Reflection.Metadata.GuidHandle>
;* V03 loc1 [V03 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.Reflection.Metadata.GuidHandle>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V05 tmp1 [V05 ] ( 0, 0 ) struct (16) zero-ref "folding static readonly field empty struct" <System.Guid>
;* V06 tmp2 [V06 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SF] ld-addr-op "Inlining Arg" <System.Guid>
;* V07 tmp3 [V07 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SF] ld-addr-op "Inlining Arg" <System.Guid>
;* V08 tmp4 [V08 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V09 tmp5 [V09 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V10 tmp6 [V10,T05] ( 3, 3 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Guid,System.Reflection.Metadata.GuidHandle]>
-; V11 tmp7 [V11,T11] ( 3, 1.50) byref -> rax single-def "Inline stloc first use temp"
+; V11 tmp7 [V11,T10] ( 3, 1.50) byref -> rax single-def "Inline stloc first use temp"
; V12 tmp8 [V12,T06] ( 3, 3 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.Reflection.Metadata.Ecma335.MetadataBuilder+HeapBlobBuilder>
;* V13 tmp9 [V13 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V14 tmp10 [V14 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V15 tmp11 [V15 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.GuidHandle>
; V16 tmp12 [V16,T07] ( 3, 3 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Guid,System.Reflection.Metadata.GuidHandle]>
;* V17 tmp13 [V17 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Reflection.Metadata.GuidHandle>
; V18 tmp14 [V18,T02] ( 6, 6 ) ref -> rbx class-hnd exact single-def "Inlining Arg" <System.Reflection.Metadata.Ecma335.MetadataBuilder+HeapBlobBuilder>
;* V19 tmp15 [V19 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V20 tmp16 [V20,T03] ( 8, 4 ) int -> r14 "Inline stloc first use temp"
;* V21 tmp17 [V21 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Guid>
; V22 tmp18 [V22,T04] ( 4, 4 ) ref -> rax class-hnd single-def "Inlining Arg" <ubyte[]>
;* V23 tmp19 [V23 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
;* V24 tmp20 [V24 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.Span`1[ubyte]>
;* V25 tmp21 [V25 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V26 tmp22 [V26 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
-; V27 tmp23 [V27,T09] ( 2, 2 ) byref -> rax single-def "Inlining Arg"
-; V28 tmp24 [V28,T10] ( 2, 2 ) int -> rcx "Inlining Arg"
+; V27 tmp23 [V27,T08] ( 2, 2 ) byref -> rax single-def "Inlining Arg"
+; V28 tmp24 [V28,T09] ( 2, 2 ) int -> rcx "Inlining Arg"
;* V29 tmp25 [V29 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V30 tmp26 [V30 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V31 tmp27 [V31 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V32 tmp28 [V32 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V33 tmp29 [V33 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
; V34 tmp30 [V34,T16] ( 2, 1 ) int -> rax "field V02._index (fldOffset=0x0)" P-INDEP
;* V35 tmp31 [V35 ] ( 0, 0 ) int -> zero-ref "field V03._index (fldOffset=0x0)" P-INDEP
-; V36 tmp32 [V36,T13] ( 3, 1.50) int -> r15 "field V15._index (fldOffset=0x0)" P-INDEP
+; V36 tmp32 [V36,T12] ( 3, 1.50) int -> r15 "field V15._index (fldOffset=0x0)" P-INDEP
;* V37 tmp33 [V37 ] ( 0, 0 ) int -> zero-ref "field V17._index (fldOffset=0x0)" P-INDEP
;* V38 tmp34 [V38 ] ( 0, 0 ) byref -> zero-ref "field V23._reference (fldOffset=0x0)" P-INDEP
;* V39 tmp35 [V39 ] ( 0, 0 ) int -> zero-ref "field V23._length (fldOffset=0x8)" P-INDEP
-; V40 tmp36 [V40,T12] ( 3, 1.50) byref -> rax "field V24._reference (fldOffset=0x0)" P-INDEP
-; V41 tmp37 [V41,T08] ( 4, 2 ) int -> rcx "field V24._length (fldOffset=0x8)" P-INDEP
+; V40 tmp36 [V40,T11] ( 3, 1.50) byref -> rax "field V24._reference (fldOffset=0x0)" P-INDEP
+; V41 tmp37 [V41,T13] ( 3, 1.50) int -> rcx "field V24._length (fldOffset=0x8)" P-INDEP
; V42 tmp38 [V42,T15] ( 2, 1 ) byref -> rax single-def "field V25._reference (fldOffset=0x0)" P-INDEP
; V43 tmp39 [V43,T17] ( 2, 1 ) int -> rcx "field V25._length (fldOffset=0x8)" P-INDEP
;* V44 tmp40 [V44 ] ( 0, 0 ) byref -> zero-ref single-def "field V26._reference (fldOffset=0x0)" P-INDEP
;* V45 tmp41 [V45 ] ( 0, 0 ) int -> zero-ref "field V26._length (fldOffset=0x8)" P-INDEP
;* V46 tmp42 [V46 ] ( 0, 0 ) byref -> zero-ref single-def "field V30._reference (fldOffset=0x0)" P-INDEP
;* V47 tmp43 [V47 ] ( 0, 0 ) int -> zero-ref "field V30._length (fldOffset=0x8)" P-INDEP
;* V48 tmp44 [V48 ] ( 0, 0 ) byref -> zero-ref single-def "field V32._reference (fldOffset=0x0)" P-INDEP
;* V49 tmp45 [V49 ] ( 0, 0 ) int -> zero-ref "field V32._length (fldOffset=0x8)" P-INDEP
;* V50 tmp46 [V50 ] ( 0, 0 ) byref -> zero-ref single-def "field V33._reference (fldOffset=0x0)" P-INDEP
;* V51 tmp47 [V51 ] ( 0, 0 ) int -> zero-ref "field V33._length (fldOffset=0x8)" P-INDEP
;* V52 tmp48 [V52 ] ( 0, 0 ) simd16 -> zero-ref "V06.[000..016)"
;* V53 tmp49 [V53 ] ( 0, 0 ) simd16 -> zero-ref "V07.[000..016)"
;* V54 tmp50 [V54 ] ( 0, 0 ) simd16 -> zero-ref "V05.[000..016)"
; V55 cse0 [V55,T14] ( 3, 1.50) int -> rcx "CSE #03: moderate"
; V56 rat0 [V56,T18] ( 3, 6 ) simd16 -> mm0 "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 24
G_M54574_IG01:
push rbp
push r15
push r14
push rbx
sub rsp, 24
lea rbp, [rsp+0x30]
mov qword ptr [rbp-0x28], rsi
mov qword ptr [rbp-0x20], rdx
mov rbx, rdi
;; size=26 bbWeight=1 PerfScore 7.00
G_M54574_IG02:
vmovups xmm0, xmmword ptr [rbp-0x28]
vptest xmm0, xmm0
je G_M54574_IG11
;; size=16 bbWeight=1 PerfScore 7.00
G_M54574_IG03:
mov rdi, gword ptr [rbx+0x170]
cmp byte ptr [rdi], dil
mov rsi, qword ptr [rbp-0x28]
mov rdx, qword ptr [rbp-0x20]
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.Dictionary`2[System.Guid,System.Reflection.Metadata.GuidHandle]:FindValue(System.Guid):byref:this
call [rax]System.Collections.Generic.Dictionary`2[System.Guid,System.Reflection.Metadata.GuidHandle]:FindValue(System.Guid):byref:this
test rax, rax
jne G_M54574_IG09
mov rsi, gword ptr [rbx+0x178]
mov r15d, dword ptr [rsi+0x18]
mov r14d, dword ptr [rsi+0x1C]
and r14d, 0xD1FFAB1E
add r15d, r14d
sar r15d, 4
inc r15d
mov rdi, gword ptr [rbx+0x170]
cmp byte ptr [rdi], dil
mov rsi, qword ptr [rbp-0x28]
mov rdx, qword ptr [rbp-0x20]
mov ecx, r15d
mov r8d, 2
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.Dictionary`2[System.Guid,System.Reflection.Metadata.GuidHandle]:TryInsert(System.Guid,System.Reflection.Metadata.GuidHandle,ubyte):ubyte:this
call [rax]System.Collections.Generic.Dictionary`2[System.Guid,System.Reflection.Metadata.GuidHandle]:TryInsert(System.Guid,System.Reflection.Metadata.GuidHandle,ubyte):ubyte:this
mov rbx, gword ptr [rbx+0x178]
mov r14d, dword ptr [rbx+0x1C]
mov rdi, gword ptr [rbx+0x10]
mov edi, dword ptr [rdi+0x08]
add edi, -16
movsxd rdi, edi
mov esi, r14d
cmp rdi, rsi
jge SHORT G_M54574_IG04
mov rdi, rbx
mov esi, 16
mov rax, 0xD1FFAB1E ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
call [rax]System.Reflection.Metadata.BlobBuilder:Expand(int):this
xor r14d, r14d
;; size=165 bbWeight=0.50 PerfScore 21.75
G_M54574_IG04:
lea eax, [r14+0x10]
mov dword ptr [rbx+0x1C], eax
mov rax, gword ptr [rbx+0x10]
test rax, rax
je SHORT G_M54574_IG05
mov ecx, dword ptr [rax+0x08]
cmp ecx, r14d
jb SHORT G_M54574_IG13
mov edx, r14d
lea rax, bword ptr [rax+rdx+0x10]
sub ecx, r14d
jmp SHORT G_M54574_IG06
;; size=37 bbWeight=0.50 PerfScore 5.75
G_M54574_IG05:
test r14d, r14d
jne SHORT G_M54574_IG13
xor rax, rax
xor ecx, ecx
;; size=9 bbWeight=0.50 PerfScore 0.88
G_M54574_IG06:
cmp ecx, 16
jl SHORT G_M54574_IG07
- cmp ecx, 16
- jb SHORT G_M54574_IG07
vmovups xmm0, xmmword ptr [rbp-0x28]
vmovups xmmword ptr [rax], xmm0
- ;; size=19 bbWeight=0.50 PerfScore 3.75
+ ;; size=14 bbWeight=0.50 PerfScore 3.12
G_M54574_IG07:
mov eax, r15d
;; size=3 bbWeight=0.50 PerfScore 0.12
G_M54574_IG08:
add rsp, 24
pop rbx
pop r14
pop r15
pop rbp
ret
;; size=11 bbWeight=0.50 PerfScore 1.62
G_M54574_IG09:
mov eax, dword ptr [rax]
;; size=2 bbWeight=0.50 PerfScore 1.00
G_M54574_IG10:
add rsp, 24
pop rbx
pop r14
pop r15
pop rbp
ret
;; size=11 bbWeight=0.50 PerfScore 1.62
G_M54574_IG11:
xor eax, eax
;; size=2 bbWeight=0.50 PerfScore 0.12
G_M54574_IG12:
add rsp, 24
pop rbx
pop r14
pop r15
pop rbp
ret
;; size=11 bbWeight=0.50 PerfScore 1.62
G_M54574_IG13:
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 325, prolog size 15, PerfScore 52.25, instruction count 95, allocated bytes for code 325 (MethodHash=d7bd2ad1) for method System.Reflection.Metadata.Ecma335.MetadataBuilder:GetOrAddGuid(System.Guid):System.Reflection.Metadata.GuidHandle:this (FullOpts)
+; Total bytes of code 320, prolog size 15, PerfScore 51.62, instruction count 93, allocated bytes for code 320 (MethodHash=d7bd2ad1) for method System.Reflection.Metadata.Ecma335.MetadataBuilder:GetOrAddGuid(System.Guid):System.Reflection.Metadata.GuidHandle:this (FullOpts)
-5 (-0.67 % of base) - System.Reflection.PortableExecutable.DebugDirectoryBuilder:WriteCodeViewData(System.Reflection.Metadata.BlobBuilder,System.String,System.Guid,int):int
; Assembly listing for method System.Reflection.PortableExecutable.DebugDirectoryBuilder:WriteCodeViewData(System.Reflection.Metadata.BlobBuilder,System.String,System.Guid,int):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 27 single block inlinees; 11 inlinees without PGO data
; Final local variable assignments
;
; V00 arg0 [V00,T00] ( 37, 33.50) ref -> rbx class-hnd single-def <System.Reflection.Metadata.BlobBuilder>
; V01 arg1 [V01,T01] ( 5, 5 ) ref -> r15 class-hnd single-def <System.String>
; V02 arg2 [V02,T16] ( 3, 2.50) struct (16) [rbp-0x38] do-not-enreg[SA] multireg-arg single-def <System.Guid>
; V03 arg3 [V03,T14] ( 3, 3 ) int -> r14 single-def
; V04 loc0 [V04,T24] ( 2, 2 ) int -> r13
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V06 tmp1 [V06 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V07 tmp2 [V07 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V08 tmp3 [V08,T09] ( 6, 5.50) int -> rax "Inline stloc first use temp"
;* V09 tmp4 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V10 tmp5 [V10 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V11 tmp6 [V11,T10] ( 6, 5.50) int -> r12 "Inline stloc first use temp"
;* V12 tmp7 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V13 tmp8 [V13 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V14 tmp9 [V14,T11] ( 6, 5.50) int -> r12 "Inline stloc first use temp"
;* V15 tmp10 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V16 tmp11 [V16 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V17 tmp12 [V17,T12] ( 6, 5.50) int -> r12 "Inline stloc first use temp"
;* V18 tmp13 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V19 tmp14 [V19 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V20 tmp15 [V20,T08] ( 8, 5.50) int -> r12 "Inline stloc first use temp"
;* V21 tmp16 [V21 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Guid>
; V22 tmp17 [V22,T02] ( 4, 6 ) ref -> rdi class-hnd single-def "Inlining Arg" <ubyte[]>
;* V23 tmp18 [V23 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
;* V24 tmp19 [V24 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.Span`1[ubyte]>
;* V25 tmp20 [V25 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V26 tmp21 [V26 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
; V27 tmp22 [V27,T23] ( 2, 2 ) byref -> rdi single-def "Inlining Arg"
; V28 tmp23 [V28,T25] ( 2, 2 ) int -> rsi "Inlining Arg"
;* V29 tmp24 [V29 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V30 tmp25 [V30 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V31 tmp26 [V31 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V32 tmp27 [V32 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V33 tmp28 [V33 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V34 tmp29 [V34 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V35 tmp30 [V35,T15] ( 5, 4.50) int -> rsi "Inline stloc first use temp"
;* V36 tmp31 [V36 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V37 tmp32 [V37,T13] ( 6, 5.50) int -> r15 "Inline stloc first use temp"
;* V38 tmp33 [V38 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V39 tmp34 [V39 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V40 tmp35 [V40 ] ( 0, 0 ) byref -> zero-ref "field V23._reference (fldOffset=0x0)" P-INDEP
;* V41 tmp36 [V41 ] ( 0, 0 ) int -> zero-ref "field V23._length (fldOffset=0x8)" P-INDEP
; V42 tmp37 [V42,T26] ( 3, 1.50) byref -> rdi "field V24._reference (fldOffset=0x0)" P-INDEP
-; V43 tmp38 [V43,T22] ( 4, 2.50) int -> rsi "field V24._length (fldOffset=0x8)" P-INDEP
+; V43 tmp38 [V43,T22] ( 3, 2 ) int -> rsi "field V24._length (fldOffset=0x8)" P-INDEP
; V44 tmp39 [V44,T28] ( 2, 1 ) byref -> rdi single-def "field V25._reference (fldOffset=0x0)" P-INDEP
; V45 tmp40 [V45,T29] ( 2, 1 ) int -> rsi "field V25._length (fldOffset=0x8)" P-INDEP
;* V46 tmp41 [V46 ] ( 0, 0 ) byref -> zero-ref single-def "field V26._reference (fldOffset=0x0)" P-INDEP
;* V47 tmp42 [V47 ] ( 0, 0 ) int -> zero-ref "field V26._length (fldOffset=0x8)" P-INDEP
;* V48 tmp43 [V48 ] ( 0, 0 ) byref -> zero-ref single-def "field V30._reference (fldOffset=0x0)" P-INDEP
;* V49 tmp44 [V49 ] ( 0, 0 ) int -> zero-ref "field V30._length (fldOffset=0x8)" P-INDEP
;* V50 tmp45 [V50 ] ( 0, 0 ) byref -> zero-ref single-def "field V32._reference (fldOffset=0x0)" P-INDEP
;* V51 tmp46 [V51 ] ( 0, 0 ) int -> zero-ref "field V32._length (fldOffset=0x8)" P-INDEP
;* V52 tmp47 [V52 ] ( 0, 0 ) byref -> zero-ref single-def "field V33._reference (fldOffset=0x0)" P-INDEP
;* V53 tmp48 [V53 ] ( 0, 0 ) int -> zero-ref "field V33._length (fldOffset=0x8)" P-INDEP
; V54 tmp49 [V54,T03] ( 3, 6 ) ref -> rsi single-def "arr expr"
; V55 tmp50 [V55,T04] ( 3, 6 ) ref -> rsi single-def "arr expr"
; V56 tmp51 [V56,T05] ( 3, 6 ) ref -> rsi single-def "arr expr"
; V57 tmp52 [V57,T06] ( 3, 6 ) ref -> rsi single-def "arr expr"
; V58 tmp53 [V58,T07] ( 3, 6 ) ref -> rax single-def "arr expr"
; V59 cse0 [V59,T21] ( 3, 3 ) int -> rax "CSE #01: moderate"
; V60 cse1 [V60,T17] ( 3, 3 ) ref -> rdi "CSE #02: moderate"
; V61 cse2 [V61,T18] ( 3, 3 ) ref -> rdi "CSE #03: moderate"
; V62 cse3 [V62,T19] ( 3, 3 ) ref -> rdi "CSE #04: moderate"
; V63 cse4 [V63,T20] ( 3, 3 ) ref -> rdi "CSE #05: moderate"
; V64 cse5 [V64,T27] ( 3, 1.50) int -> rsi "CSE #06: moderate"
;
; Lcl frame size = 24
G_M36773_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 24
lea rbp, [rsp+0x40]
mov qword ptr [rbp-0x38], rdx
mov qword ptr [rbp-0x30], rcx
mov rbx, rdi
mov r15, rsi
mov r14d, r8d
;; size=36 bbWeight=1 PerfScore 9.50
G_M36773_IG02:
mov r13d, dword ptr [rbx+0x18]
mov eax, dword ptr [rbx+0x1C]
mov r12d, eax
and r12d, 0xD1FFAB1E
add r13d, r12d
mov rdi, gword ptr [rbx+0x10]
mov edi, dword ptr [rdi+0x08]
dec edi
movsxd rdi, edi
mov esi, eax
cmp rdi, rsi
jge SHORT G_M36773_IG04
;; size=39 bbWeight=1 PerfScore 10.75
G_M36773_IG03:
mov rdi, rbx
mov esi, 1
mov rax, 0xD1FFAB1E ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
call [rax]System.Reflection.Metadata.BlobBuilder:Expand(int):this
xor eax, eax
;; size=22 bbWeight=0.50 PerfScore 2.00
G_M36773_IG04:
lea edi, [rax+0x01]
mov dword ptr [rbx+0x1C], edi
mov rdi, gword ptr [rbx+0x10]
mov rsi, rdi
cmp eax, dword ptr [rsi+0x08]
jae G_M36773_IG25
mov eax, eax
mov byte ptr [rsi+rax+0x10], 82
mov r12d, dword ptr [rbx+0x1C]
mov edi, dword ptr [rdi+0x08]
dec edi
movsxd rdi, edi
mov esi, r12d
cmp rdi, rsi
jge SHORT G_M36773_IG06
;; size=49 bbWeight=1 PerfScore 15.00
G_M36773_IG05:
mov rdi, rbx
mov esi, 1
mov rax, 0xD1FFAB1E ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
call [rax]System.Reflection.Metadata.BlobBuilder:Expand(int):this
xor r12d, r12d
;; size=23 bbWeight=0.50 PerfScore 2.00
G_M36773_IG06:
lea edi, [r12+0x01]
mov dword ptr [rbx+0x1C], edi
mov rdi, gword ptr [rbx+0x10]
mov rsi, rdi
cmp r12d, dword ptr [rsi+0x08]
jae G_M36773_IG25
mov eax, r12d
mov byte ptr [rsi+rax+0x10], 83
mov r12d, dword ptr [rbx+0x1C]
mov edi, dword ptr [rdi+0x08]
dec edi
movsxd rdi, edi
mov esi, r12d
cmp rdi, rsi
jge SHORT G_M36773_IG08
;; size=53 bbWeight=1 PerfScore 15.00
G_M36773_IG07:
mov rdi, rbx
mov esi, 1
mov rax, 0xD1FFAB1E ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
call [rax]System.Reflection.Metadata.BlobBuilder:Expand(int):this
xor r12d, r12d
;; size=23 bbWeight=0.50 PerfScore 2.00
G_M36773_IG08:
lea edi, [r12+0x01]
mov dword ptr [rbx+0x1C], edi
mov rdi, gword ptr [rbx+0x10]
mov rsi, rdi
cmp r12d, dword ptr [rsi+0x08]
jae G_M36773_IG25
mov eax, r12d
mov byte ptr [rsi+rax+0x10], 68
mov r12d, dword ptr [rbx+0x1C]
mov edi, dword ptr [rdi+0x08]
dec edi
movsxd rdi, edi
mov esi, r12d
cmp rdi, rsi
jge SHORT G_M36773_IG10
;; size=53 bbWeight=1 PerfScore 15.00
G_M36773_IG09:
mov rdi, rbx
mov esi, 1
mov rax, 0xD1FFAB1E ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
call [rax]System.Reflection.Metadata.BlobBuilder:Expand(int):this
xor r12d, r12d
;; size=23 bbWeight=0.50 PerfScore 2.00
G_M36773_IG10:
lea edi, [r12+0x01]
mov dword ptr [rbx+0x1C], edi
mov rdi, gword ptr [rbx+0x10]
mov rsi, rdi
cmp r12d, dword ptr [rsi+0x08]
jae G_M36773_IG25
mov eax, r12d
mov byte ptr [rsi+rax+0x10], 83
mov r12d, dword ptr [rbx+0x1C]
mov edi, dword ptr [rdi+0x08]
add edi, -16
movsxd rdi, edi
mov esi, r12d
cmp rdi, rsi
jge SHORT G_M36773_IG12
;; size=54 bbWeight=1 PerfScore 15.00
G_M36773_IG11:
mov rdi, rbx
mov esi, 16
mov rax, 0xD1FFAB1E ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
call [rax]System.Reflection.Metadata.BlobBuilder:Expand(int):this
xor r12d, r12d
;; size=23 bbWeight=0.50 PerfScore 2.00
G_M36773_IG12:
lea edi, [r12+0x10]
mov dword ptr [rbx+0x1C], edi
mov rdi, gword ptr [rbx+0x10]
test rdi, rdi
je SHORT G_M36773_IG14
;; size=17 bbWeight=1 PerfScore 4.75
G_M36773_IG13:
mov esi, dword ptr [rdi+0x08]
cmp esi, r12d
jb G_M36773_IG24
mov eax, r12d
lea rdi, bword ptr [rdi+rax+0x10]
sub esi, r12d
jmp SHORT G_M36773_IG15
;; size=25 bbWeight=0.50 PerfScore 3.38
G_M36773_IG14:
test r12d, r12d
jne G_M36773_IG24
xor rdi, rdi
xor esi, esi
;; size=13 bbWeight=0.50 PerfScore 0.88
G_M36773_IG15:
cmp esi, 16
jl SHORT G_M36773_IG17
;; size=5 bbWeight=1 PerfScore 1.25
G_M36773_IG16:
- cmp esi, 16
- jb SHORT G_M36773_IG17
vmovups xmm0, xmmword ptr [rbp-0x38]
vmovups xmmword ptr [rdi], xmm0
- ;; size=14 bbWeight=0.50 PerfScore 3.12
+ ;; size=9 bbWeight=0.50 PerfScore 2.50
G_M36773_IG17:
mov esi, dword ptr [rbx+0x1C]
mov rdi, gword ptr [rbx+0x10]
mov edi, dword ptr [rdi+0x08]
add edi, -4
movsxd rdi, edi
mov eax, esi
cmp rdi, rax
jge SHORT G_M36773_IG19
;; size=23 bbWeight=1 PerfScore 8.00
G_M36773_IG18:
mov rdi, rbx
mov esi, 4
mov rax, 0xD1FFAB1E ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
call [rax]System.Reflection.Metadata.BlobBuilder:Expand(int):this
xor esi, esi
;; size=22 bbWeight=0.50 PerfScore 2.00
G_M36773_IG19:
lea edi, [rsi+0x04]
mov dword ptr [rbx+0x1C], edi
mov rdi, gword ptr [rbx+0x10]
mov edx, r14d
mov rax, 0xD1FFAB1E ; code for System.Reflection.BlobUtilities:WriteUInt32(ubyte[],int,uint)
call [rax]System.Reflection.BlobUtilities:WriteUInt32(ubyte[],int,uint)
test r15, r15
je G_M36773_IG23
mov ecx, dword ptr [r15+0x08]
mov rdi, rbx
mov rsi, r15
xor edx, edx
mov r8d, 1
xor r9d, r9d
mov rax, 0xD1FFAB1E ; code for System.Reflection.Metadata.BlobBuilder:WriteUTF8(System.String,int,int,ubyte,ubyte):this
call [rax]System.Reflection.Metadata.BlobBuilder:WriteUTF8(System.String,int,int,ubyte,ubyte):this
mov r15d, dword ptr [rbx+0x1C]
mov rdi, gword ptr [rbx+0x10]
mov edi, dword ptr [rdi+0x08]
dec edi
movsxd rdi, edi
mov esi, r15d
cmp rdi, rsi
jge SHORT G_M36773_IG21
;; size=91 bbWeight=1 PerfScore 22.75
G_M36773_IG20:
mov rdi, rbx
mov esi, 1
mov rax, 0xD1FFAB1E ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
call [rax]System.Reflection.Metadata.BlobBuilder:Expand(int):this
xor r15d, r15d
;; size=23 bbWeight=0.50 PerfScore 2.00
G_M36773_IG21:
lea eax, [r15+0x01]
mov dword ptr [rbx+0x1C], eax
mov rax, gword ptr [rbx+0x10]
cmp r15d, dword ptr [rax+0x08]
jae SHORT G_M36773_IG25
mov edi, r15d
mov byte ptr [rax+rdi+0x10], 0
mov eax, dword ptr [rbx+0x18]
mov edi, dword ptr [rbx+0x1C]
and edi, 0xD1FFAB1E
add eax, edi
sub eax, r13d
;; size=42 bbWeight=1 PerfScore 13.50
G_M36773_IG22:
add rsp, 24
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.25
G_M36773_IG23:
mov edi, 0x18AB
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
mov rdi, rax
mov rax, 0xD1FFAB1E ; code for System.Reflection.Throw:ArgumentNull(System.String)
call [rax]System.Reflection.Throw:ArgumentNull(System.String)
int3
;; size=36 bbWeight=0 PerfScore 0.00
G_M36773_IG24:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
G_M36773_IG25:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 743, prolog size 19, PerfScore 156.12, instruction count 206, allocated bytes for code 743 (MethodHash=3abd705a) for method System.Reflection.PortableExecutable.DebugDirectoryBuilder:WriteCodeViewData(System.Reflection.Metadata.BlobBuilder,System.String,System.Guid,int):int (FullOpts)
+; Total bytes of code 738, prolog size 19, PerfScore 155.50, instruction count 204, allocated bytes for code 738 (MethodHash=3abd705a) for method System.Reflection.PortableExecutable.DebugDirectoryBuilder:WriteCodeViewData(System.Reflection.Metadata.BlobBuilder,System.String,System.Guid,int):int (FullOpts)