forked from MihaZupan/runtime-utils
-
Notifications
You must be signed in to change notification settings - Fork 0
[JitDiff X64] [AndyAyersMS] JIT: boost inlining for methods that may return ... #1073
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Top method regressions621 (121.76 % of base) - System.Text.Json.ThrowHelper:ThrowJsonException_MetadataInvalidPropertyInArrayMetadata(byref,System.Type,byref) ; Assembly listing for method System.Text.Json.ThrowHelper:ThrowJsonException_MetadataInvalidPropertyInArrayMetadata(byref,System.Type,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; 6 single block inlinees; 2 inlinees without PGO data
+; 0 inlinees with PGO data; 22 single block inlinees; 11 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T01] ( 4, 4 ) byref -> rdi single-def
-; V01 arg1 [V01,T03] ( 3, 3 ) ref -> r15 class-hnd single-def <System.Type>
-; V02 arg2 [V02,T00] ( 7, 7 ) byref -> rbx single-def
-; V03 loc0 [V03,T12] ( 2, 2 ) ref -> rbx class-hnd exact single-def <System.String>
+; V00 arg0 [V00,T05] ( 4, 4 ) byref -> rdi single-def
+; V01 arg1 [V01,T11] ( 3, 3 ) ref -> r15 class-hnd single-def <System.Type>
+; V02 arg2 [V02,T01] ( 7, 7 ) byref -> rbx single-def
+; V03 loc0 [V03,T35] ( 2, 2 ) ref -> rbx class-hnd exact single-def <System.String>
;* V04 loc1 [V04 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.ReadOnlySpan`1[ubyte]>
-; V05 loc2 [V05 ] ( 2, 2 ) struct (24) [rbp-0x40] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Buffers.ReadOnlySequence`1[ubyte]>
+; V05 loc2 [V05 ] ( 13, 13 ) struct (24) [rbp-0x40] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Buffers.ReadOnlySequence`1[ubyte]>
; V06 loc3 [V06 ] ( 2, 2 ) struct (192) [rbp-0x100] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Text.Json.Utf8JsonReader>
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
;* V08 tmp1 [V08 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
-; V09 tmp2 [V09,T13] ( 2, 2 ) byref -> r14 single-def
+; V09 tmp2 [V09,T36] ( 2, 2 ) byref -> r14 single-def
;* V10 tmp3 [V10 ] ( 0, 0 ) byref -> zero-ref
-; V11 tmp4 [V11,T10] ( 3, 3 ) ref -> rax
+; V11 tmp4 [V11,T25] ( 3, 3 ) ref -> r13
;* V12 tmp5 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.String>
;* V13 tmp6 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "non-inline candidate call" <System.String>
-; V14 tmp7 [V14,T11] ( 3, 3 ) ref -> r13 class-hnd "Inline return value spill temp" <ubyte[]>
-; V15 tmp8 [V15,T02] ( 3, 6 ) ref -> [rbp-0x108] class-hnd exact spill-single-def "NewArr temp" <ubyte[]>
+; V14 tmp7 [V14,T26] ( 3, 3 ) ref -> r13 class-hnd "Inline return value spill temp" <ubyte[]>
+; V15 tmp8 [V15,T06] ( 3, 6 ) ref -> [rbp-0x130] class-hnd exact spill-single-def "NewArr temp" <ubyte[]>
;* V16 tmp9 [V16 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V17 tmp10 [V17 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V18 tmp11 [V18 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-; V19 tmp12 [V19,T14] ( 2, 2 ) byref -> r13 single-def "field V04._reference (fldOffset=0x0)" P-INDEP
-; V20 tmp13 [V20,T04] ( 4, 4 ) int -> r12 "field V04._length (fldOffset=0x8)" P-INDEP
-; V21 tmp14 [V21,T05] ( 2, 4 ) ref -> rdi single-def "argument with side effect"
-; V22 tmp15 [V22,T06] ( 2, 4 ) ref -> rdi single-def "argument with side effect"
-; V23 tmp16 [V23,T07] ( 2, 4 ) ref -> r14 single-def "argument with side effect"
-; V24 tmp17 [V24,T08] ( 2, 4 ) ref -> rbx single-def "argument with side effect"
-; V25 tmp18 [V25,T09] ( 2, 4 ) ref -> rdx single-def "argument with side effect"
+;* V19 tmp12 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline return value spill temp" <ubyte[]>
+;* V20 tmp13 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewArr temp" <ubyte[]>
+; V21 tmp14 [V21,T12] ( 4, 4 ) ref -> r13 class-hnd exact single-def "Inline stloc first use temp" <ubyte[]>
+;* V22 tmp15 [V22 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
+; V23 tmp16 [V23,T30] ( 3, 3 ) long -> rsi "Inline return value spill temp"
+; V24 tmp17 [V24,T27] ( 3, 3 ) ref -> rsi class-hnd single-def "Inline stloc first use temp" <System.Object>
+; V25 tmp18 [V25,T28] ( 3, 3 ) ref -> r13 class-hnd single-def "Inline stloc first use temp" <System.Object>
+; V26 tmp19 [V26,T31] ( 3, 3 ) int -> r12 "Inline stloc first use temp"
+; V27 tmp20 [V27,T32] ( 3, 3 ) int -> [rbp-0x104] spill-single-def "Inline stloc first use temp"
+; V28 tmp21 [V28,T37] ( 2, 2 ) ref -> [rbp-0x138] class-hnd spill-single-def "Inline stloc first use temp" <System.Buffers.ReadOnlySequenceSegment`1[ubyte]>
+;* V29 tmp22 [V29 ] ( 0, 0 ) long -> zero-ref "impAppendStmt"
+; V30 tmp23 [V30,T22] ( 2, 4 ) int -> r12 "Inlining Arg"
+; V31 tmp24 [V31,T23] ( 2, 4 ) int -> rdi "Inlining Arg"
+;* V32 tmp25 [V32 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Buffers.ReadOnlySequenceSegment`1[ubyte]>
+;* V33 tmp26 [V33 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
+;* V34 tmp27 [V34 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
+;* V35 tmp28 [V35 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlyMemory`1[ubyte]>
+;* V36 tmp29 [V36 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
+; V37 tmp30 [V37 ] ( 16, 16 ) struct (16) [rbp-0x118] do-not-enreg[SBRM] multireg-ret multireg-dest must-init "Inline return value spill temp" <System.ReadOnlyMemory`1[ubyte]>
+; V38 tmp31 [V38,T08] ( 5, 5 ) ref -> rsi class-hnd single-def "Inline stloc first use temp" <System.Object>
+; V39 tmp32 [V39,T09] ( 5, 5 ) int -> [rbp-0x11C] spill-single-def "Inline stloc first use temp"
+; V40 tmp33 [V40,T33] ( 3, 3 ) int -> [rbp-0x120] spill-single-def "Inline stloc first use temp"
+; V41 tmp34 [V41,T42] ( 2, 2 ) ubyte -> rdx "Inline stloc first use temp"
+;* V42 tmp35 [V42 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SRM] multireg-ret multireg-dest "Return value temp for multireg return" <System.ReadOnlyMemory`1[ubyte]>
+;* V43 tmp36 [V43 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlyMemory`1[ubyte]>
+;* V44 tmp37 [V44 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlyMemory`1[ubyte]>
+;* V45 tmp38 [V45 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Buffers.ReadOnlySequenceSegment`1[ubyte]>
+;* V46 tmp39 [V46 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ubyte]>
+;* V47 tmp40 [V47 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inlining Arg" <System.Object>
+;* V48 tmp41 [V48 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V49 tmp42 [V49 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V50 tmp43 [V50,T07] ( 3, 6 ) int -> r8 "Inlining Arg"
+;* V51 tmp44 [V51 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ubyte]>
+;* V52 tmp45 [V52 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inlining Arg" <System.Object>
+; V53 tmp46 [V53,T24] ( 2, 4 ) int -> rcx "Inlining Arg"
+;* V54 tmp47 [V54 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ubyte]>
+; V55 tmp48 [V55,T04] ( 6, 6 ) byref -> rsi "Inline stloc first use temp"
+; V56 tmp49 [V56,T02] ( 8, 8 ) int -> rcx "Inline stloc first use temp"
+;* V57 tmp50 [V57 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.Object>
+;* V58 tmp51 [V58 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
+;* V59 tmp52 [V59 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <System.Buffers.MemoryManager`1[ubyte]>
+;* V60 tmp53 [V60 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBRM] multireg-ret multireg-dest "Return value temp for multireg return" <System.Span`1[ubyte]>
+;* V61 tmp54 [V61 ] ( 0, 0 ) struct (16) zero-ref multireg-ret multireg-dest ld-addr-op "Inline stloc first use temp" <System.Span`1[ubyte]>
+; V62 tmp55 [V62,T34] ( 3, 3 ) long -> rdx "Inline stloc first use temp"
+;* V63 tmp56 [V63 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V64 tmp57 [V64 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "updating class info" <ubyte[]>
+;* V65 tmp58 [V65 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <ubyte[]>
+; V66 tmp59 [V66,T16] ( 2, 4 ) byref -> rdi single-def "Inlining Arg"
+;* V67 tmp60 [V67 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
+;* V68 tmp61 [V68 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
+;* V69 tmp62 [V69 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V70 tmp63 [V70 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V71 tmp64 [V71 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+; V72 tmp65 [V72,T38] ( 2, 2 ) byref -> r13 single-def "field V04._reference (fldOffset=0x0)" P-INDEP
+; V73 tmp66 [V73,T13] ( 4, 4 ) int -> r12 "field V04._length (fldOffset=0x8)" P-INDEP
+; V74 tmp67 [V74 ] ( 6, 6 ) ref -> [rbp-0x40] do-not-enreg[X] addr-exposed "field V05._startObject (fldOffset=0x0)" P-DEP
+; V75 tmp68 [V75 ] ( 6, 6 ) ref -> [rbp-0x38] do-not-enreg[X] addr-exposed "field V05._endObject (fldOffset=0x8)" P-DEP
+; V76 tmp69 [V76 ] ( 5, 5 ) int -> [rbp-0x30] do-not-enreg[X] addr-exposed "field V05._startInteger (fldOffset=0x10)" P-DEP
+; V77 tmp70 [V77 ] ( 5, 5 ) int -> [rbp-0x2C] do-not-enreg[X] addr-exposed "field V05._endInteger (fldOffset=0x14)" P-DEP
+;* V78 tmp71 [V78 ] ( 0, 0 ) byref -> zero-ref "field V22._reference (fldOffset=0x0)" P-INDEP
+;* V79 tmp72 [V79 ] ( 0, 0 ) int -> zero-ref "field V22._length (fldOffset=0x8)" P-INDEP
+; V80 tmp73 [V80,T29] ( 3, 3 ) byref -> r12 single-def "field V33._reference (fldOffset=0x0)" P-INDEP
+; V81 tmp74 [V81,T14] ( 4, 4 ) int -> [rbp-0x124] spill-single-def "field V33._length (fldOffset=0x8)" P-INDEP
+;* V82 tmp75 [V82 ] ( 0, 0 ) byref -> zero-ref single-def "field V34._reference (fldOffset=0x0)" P-INDEP
+;* V83 tmp76 [V83 ] ( 0, 0 ) int -> zero-ref "field V34._length (fldOffset=0x8)" P-INDEP
+;* V84 tmp77 [V84 ] ( 0, 0 ) ref -> zero-ref single-def "field V35._object (fldOffset=0x0)" P-INDEP
+;* V85 tmp78 [V85 ] ( 0, 0 ) int -> zero-ref "field V35._index (fldOffset=0x8)" P-INDEP
+;* V86 tmp79 [V86 ] ( 0, 0 ) int -> zero-ref "field V35._length (fldOffset=0xc)" P-INDEP
+;* V87 tmp80 [V87 ] ( 0, 0 ) byref -> zero-ref single-def "field V36._reference (fldOffset=0x0)" P-INDEP
+;* V88 tmp81 [V88 ] ( 0, 0 ) int -> zero-ref "field V36._length (fldOffset=0x8)" P-INDEP
+; V89 tmp82 [V89,T00] ( 9, 9 ) ref -> [rbp-0x118] do-not-enreg[] "field V37._object (fldOffset=0x0)" P-DEP
+; V90 tmp83 [V90,T15] ( 4, 4 ) int -> [rbp-0x110] do-not-enreg[] "field V37._index (fldOffset=0x8)" P-DEP
+; V91 tmp84 [V91,T10] ( 5, 5 ) int -> [rbp-0x10C] do-not-enreg[] "field V37._length (fldOffset=0xc)" P-DEP
+; V92 tmp85 [V92,T39] ( 2, 2 ) ref -> rdi single-def "field V43._object (fldOffset=0x0)" P-INDEP
+; V93 tmp86 [V93,T43] ( 2, 2 ) int -> rcx "field V43._index (fldOffset=0x8)" P-INDEP
+; V94 tmp87 [V94,T44] ( 2, 2 ) int -> rax "field V43._length (fldOffset=0xc)" P-INDEP
+;* V95 tmp88 [V95 ] ( 0, 0 ) ref -> zero-ref single-def "field V44._object (fldOffset=0x0)" P-INDEP
+;* V96 tmp89 [V96 ] ( 0, 0 ) int -> zero-ref "field V44._index (fldOffset=0x8)" P-INDEP
+;* V97 tmp90 [V97 ] ( 0, 0 ) int -> zero-ref "field V44._length (fldOffset=0xc)" P-INDEP
+;* V98 tmp91 [V98 ] ( 0, 0 ) ref -> zero-ref single-def "field V46._object (fldOffset=0x0)" P-INDEP
+;* V99 tmp92 [V99 ] ( 0, 0 ) int -> zero-ref "field V46._index (fldOffset=0x8)" P-INDEP
+;* V100 tmp93 [V100 ] ( 0, 0 ) int -> zero-ref "field V46._length (fldOffset=0xc)" P-INDEP
+; V101 tmp94 [V101,T40] ( 2, 2 ) ref -> rdi single-def "field V51._object (fldOffset=0x0)" P-INDEP
+; V102 tmp95 [V102,T45] ( 2, 2 ) int -> rcx "field V51._index (fldOffset=0x8)" P-INDEP
+; V103 tmp96 [V103,T46] ( 2, 2 ) int -> r8 "field V51._length (fldOffset=0xc)" P-INDEP
+;* V104 tmp97 [V104 ] ( 0, 0 ) byref -> zero-ref "field V54._reference (fldOffset=0x0)" P-INDEP
+;* V105 tmp98 [V105 ] ( 0, 0 ) int -> zero-ref "field V54._length (fldOffset=0x8)" P-INDEP
+;* V106 tmp99 [V106 ] ( 0, 0 ) byref -> zero-ref single-def "field V58._reference (fldOffset=0x0)" P-INDEP
+;* V107 tmp100 [V107 ] ( 0, 0 ) int -> zero-ref "field V58._length (fldOffset=0x8)" P-INDEP
+;* V108 tmp101 [V108 ] ( 0, 0 ) byref -> zero-ref "field V60._reference (fldOffset=0x0)" P-DEP
+;* V109 tmp102 [V109 ] ( 0, 0 ) int -> zero-ref "field V60._length (fldOffset=0x8)" P-DEP
+; V110 tmp103 [V110,T41] ( 2, 2 ) byref -> rsi "field V61._reference (fldOffset=0x0)" P-INDEP
+; V111 tmp104 [V111,T47] ( 2, 2 ) int -> rcx "field V61._length (fldOffset=0x8)" P-INDEP
+;* V112 tmp105 [V112 ] ( 0, 0 ) byref -> zero-ref single-def "field V67._reference (fldOffset=0x0)" P-INDEP
+;* V113 tmp106 [V113 ] ( 0, 0 ) int -> zero-ref "field V67._length (fldOffset=0x8)" P-INDEP
+;* V114 tmp107 [V114 ] ( 0, 0 ) byref -> zero-ref single-def "field V68._reference (fldOffset=0x0)" P-INDEP
+;* V115 tmp108 [V115 ] ( 0, 0 ) int -> zero-ref "field V68._length (fldOffset=0x8)" P-INDEP
+; V116 tmp109 [V116,T03] ( 4, 8 ) ref -> rax single-def "BlockOp address local"
+; V117 tmp110 [V117,T17] ( 2, 4 ) ref -> rdi single-def "argument with side effect"
+; V118 tmp111 [V118,T18] ( 2, 4 ) ref -> rdi single-def "argument with side effect"
+; V119 tmp112 [V119,T19] ( 2, 4 ) ref -> r14 single-def "argument with side effect"
+; V120 tmp113 [V120,T20] ( 2, 4 ) ref -> rbx single-def "argument with side effect"
+; V121 tmp114 [V121,T21] ( 2, 4 ) ref -> rdx single-def "argument with side effect"
;
-; Lcl frame size = 232
+; Lcl frame size = 280
G_M24386_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
- sub rsp, 232
- lea rbp, [rsp+0x110]
- vxorps xmm8, xmm8, xmm8
- vmovdqu32 zmmword ptr [rbp-0x100], zmm8
- vmovdqu32 zmmword ptr [rbp-0xC0], zmm8
- vmovdqu32 zmmword ptr [rbp-0x80], zmm8
- vmovdqa xmmword ptr [rbp-0x40], xmm8
+ sub rsp, 280
+ lea rbp, [rsp+0x140]
xor eax, eax
+ mov qword ptr [rbp-0x118], rax
+ vxorps xmm8, xmm8, xmm8
+ vmovdqu32 zmmword ptr [rbp-0x110], zmm8
+ vmovdqu32 zmmword ptr [rbp-0xD0], zmm8
+ vmovdqu32 zmmword ptr [rbp-0x90], zmm8
+ vmovdqa xmmword ptr [rbp-0x50], xmm8
+ vmovdqa xmmword ptr [rbp-0x40], xmm8
mov qword ptr [rbp-0x30], rax
mov r15, rsi
mov rbx, rdx
- ;; size=68 bbWeight=1 PerfScore 16.83
+ ;; size=89 bbWeight=1 PerfScore 19.83
G_M24386_IG02:
cmp byte ptr [rdi], dil
lea r14, bword ptr [rdi+0x30]
cmp byte ptr [rbx+0x2D], 0
- je SHORT G_M24386_IG05
- ;; size=13 bbWeight=1 PerfScore 7.50
+ je G_M24386_IG21
+ ;; size=17 bbWeight=1 PerfScore 7.50
G_M24386_IG03:
vmovdqu xmm0, xmmword ptr [rbx+0xA8]
vmovdqu xmmword ptr [rbp-0x40], xmm0
- mov rdi, qword ptr [rbx+0xB8]
- mov qword ptr [rbp-0x30], rdi
+ mov rsi, qword ptr [rbx+0xB8]
+ mov qword ptr [rbp-0x30], rsi
;; size=24 bbWeight=1 PerfScore 8.00
G_M24386_IG04:
- lea rdi, [rbp-0x40]
- mov rax, 0xD1FFAB1E ; code for System.Buffers.BuffersExtensions:ToArray[ubyte](byref):ubyte[]
- call [rax]System.Buffers.BuffersExtensions:ToArray[ubyte](byref):ubyte[]
- jmp SHORT G_M24386_IG09
- ;; size=18 bbWeight=1 PerfScore 5.75
+ mov rsi, gword ptr [rbp-0x40]
+ mov r13, gword ptr [rbp-0x38]
+ mov r12d, dword ptr [rbp-0x30]
+ and r12d, 0xD1FFAB1E
+ mov edi, dword ptr [rbp-0x2C]
+ and edi, 0xD1FFAB1E
+ mov dword ptr [rbp-0x104], edi
+ cmp rsi, r13
+ jne SHORT G_M24386_IG05
+ sub edi, r12d
+ movsxd rsi, edi
+ jmp SHORT G_M24386_IG06
+ ;; size=47 bbWeight=1 PerfScore 9.25
G_M24386_IG05:
+ mov rdi, 0xD1FFAB1E ; System.Buffers.ReadOnlySequenceSegment`1[ubyte]
+ mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS
+ call [rax]CORINFO_HELP_CHKCASTCLASS
+ mov gword ptr [rbp-0x138], rax
+ mov rsi, r13
+ mov rdi, 0xD1FFAB1E ; System.Buffers.ReadOnlySequenceSegment`1[ubyte]
+ mov rcx, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS
+ call [rcx]CORINFO_HELP_CHKCASTCLASS
+ movsxd rsi, dword ptr [rbp-0x104]
+ add rsi, qword ptr [rax+0x10]
+ movsxd rdi, r12d
+ mov r13, gword ptr [rbp-0x138]
+ add rdi, qword ptr [r13+0x10]
+ sub rsi, rdi
+ ;; size=82 bbWeight=1 PerfScore 18.75
+G_M24386_IG06:
+ mov rdi, 0xD1FFAB1E ; ubyte[]
+ call CORINFO_HELP_NEWARR_1_VC
+ mov r13, rax
+ lea r12, bword ptr [r13+0x10]
+ mov eax, dword ptr [r13+0x08]
+ mov dword ptr [rbp-0x124], eax
+ mov rsi, gword ptr [rbp-0x40]
+ cmp rsi, gword ptr [rbp-0x38]
+ je SHORT G_M24386_IG07
+ mov rsi, r12
+ mov edx, eax
+ lea rdi, [rbp-0x40]
+ mov rax, 0xD1FFAB1E ; code for System.Buffers.BuffersExtensions:CopyToMultiSegment[ubyte](byref,System.Span`1[ubyte])
+ call [rax]System.Buffers.BuffersExtensions:CopyToMultiSegment[ubyte](byref,System.Span`1[ubyte])
+ jmp G_M24386_IG18
+ ;; size=68 bbWeight=1 PerfScore 15.25
+G_M24386_IG07:
+ mov rsi, gword ptr [rbp-0x40]
+ test rsi, rsi
+ je G_M24386_IG10
+ mov ecx, dword ptr [rbp-0x30]
+ mov dword ptr [rbp-0x11C], ecx
+ mov r8d, dword ptr [rbp-0x2C]
+ mov dword ptr [rbp-0x120], r8d
+ cmp rsi, gword ptr [rbp-0x38]
+ setne dl
+ movzx rdx, dl
+ mov edi, ecx
+ or edi, r8d
+ jge SHORT G_M24386_IG08
+ lea rdi, [rbp-0x40]
+ mov rcx, 0xD1FFAB1E ; code for System.Buffers.ReadOnlySequence`1[ubyte]:GetFirstBufferSlow(System.Object,ubyte):System.ReadOnlyMemory`1[ubyte]:this
+ call [rcx]System.Buffers.ReadOnlySequence`1[ubyte]:GetFirstBufferSlow(System.Object,ubyte):System.ReadOnlyMemory`1[ubyte]:this
+ mov gword ptr [rbp-0x118], rax
+ mov qword ptr [rbp-0x110], rdx
+ mov eax, dword ptr [rbp-0x124]
+ jmp G_M24386_IG13
+ ;; size=91 bbWeight=1 PerfScore 19.75
+G_M24386_IG08:
+ mov rdi, 0xD1FFAB1E ; System.Buffers.ReadOnlySequenceSegment`1[ubyte]
+ mov rdx, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS
+ call [rdx]CORINFO_HELP_CHKCASTCLASS
+ mov rdi, gword ptr [rax+0x18]
+ mov ecx, dword ptr [rax+0x20]
+ mov eax, dword ptr [rax+0x24]
+ mov r8d, dword ptr [rbp-0x120]
+ mov edx, dword ptr [rbp-0x11C]
+ sub r8d, edx
+ mov esi, edx
+ mov r9d, r8d
+ add rsi, r9
+ cmp rsi, rax
+ ja SHORT G_M24386_IG09
+ add ecx, edx
+ mov gword ptr [rbp-0x118], rdi
+ mov dword ptr [rbp-0x110], ecx
+ mov dword ptr [rbp-0x10C], r8d
+ mov eax, dword ptr [rbp-0x124]
+ jmp SHORT G_M24386_IG13
+ ;; size=91 bbWeight=1 PerfScore 20.00
+G_M24386_IG09:
+ mov edi, 33
+ mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
+ call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
+ int3
+ ;; size=18 bbWeight=1 PerfScore 3.75
+G_M24386_IG10:
+ xor rdi, rdi
+ mov gword ptr [rbp-0x118], rdi
+ ;; size=9 bbWeight=1 PerfScore 1.25
+G_M24386_IG11:
+ mov dword ptr [rbp-0x110], edi
+ ;; size=6 bbWeight=1 PerfScore 1.00
+G_M24386_IG12:
+ mov dword ptr [rbp-0x10C], edi
+ ;; size=6 bbWeight=1 PerfScore 1.00
+G_M24386_IG13:
+ xor rsi, rsi
+ xor ecx, ecx
+ cmp gword ptr [rbp-0x118], 0
+ je SHORT G_M24386_IG16
+ mov rdi, gword ptr [rbp-0x118]
+ mov rdi, qword ptr [rdi]
+ test dword ptr [rdi], 0xD1FFAB1E
+ jne SHORT G_M24386_IG14
+ mov rdi, gword ptr [rbp-0x118]
+ mov rcx, gword ptr [rbp-0x118]
+ mov rcx, qword ptr [rcx]
+ mov rcx, qword ptr [rcx+0x40]
+ call [rcx+0x28]System.Buffers.MemoryManager`1[ubyte]:GetSpan():System.Span`1[ubyte]:this
+ mov rsi, rax
+ mov ecx, edx
+ mov eax, dword ptr [rbp-0x124]
+ jmp SHORT G_M24386_IG15
+ ;; size=69 bbWeight=1 PerfScore 23.00
+G_M24386_IG14:
+ mov rsi, gword ptr [rbp-0x118]
+ add rsi, 16
+ mov rcx, gword ptr [rbp-0x118]
+ mov ecx, dword ptr [rcx+0x08]
+ ;; size=21 bbWeight=1 PerfScore 4.25
+G_M24386_IG15:
+ mov edx, dword ptr [rbp-0x110]
+ and edx, 0xD1FFAB1E
+ mov edi, dword ptr [rbp-0x10C]
+ add rdi, rdx
+ mov ecx, ecx
+ cmp rdi, rcx
+ ja SHORT G_M24386_IG20
+ add rsi, rdx
+ mov ecx, dword ptr [rbp-0x10C]
+ ;; size=37 bbWeight=1 PerfScore 5.25
+G_M24386_IG16:
+ cmp ecx, eax
+ jg SHORT G_M24386_IG19
+ jbe SHORT G_M24386_IG17
+ mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
+ call [rax]System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
+ int3
+ ;; size=19 bbWeight=1 PerfScore 5.75
+G_M24386_IG17:
+ mov edx, ecx
+ mov rdi, r12
+ mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
+ call [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
+ ;; size=17 bbWeight=1 PerfScore 3.75
+G_M24386_IG18:
+ jmp G_M24386_IG24
+ ;; size=5 bbWeight=1 PerfScore 2.00
+G_M24386_IG19:
+ mov edi, 6
+ mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
+ call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
+ int3
+ ;; size=18 bbWeight=1 PerfScore 3.75
+G_M24386_IG20:
+ mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
+ call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
+ int3
+ ;; size=13 bbWeight=1 PerfScore 3.50
+G_M24386_IG21:
mov r13, bword ptr [rbx+0x98]
mov r12d, dword ptr [rbx+0xA0]
test r12d, r12d
- je SHORT G_M24386_IG06
+ je SHORT G_M24386_IG22
mov esi, r12d
mov rdi, 0xD1FFAB1E ; ubyte[]
call CORINFO_HELP_NEWARR_1_VC
- mov gword ptr [rbp-0x108], rax
+ mov gword ptr [rbp-0x130], rax
mov edx, r12d
lea rdi, bword ptr [rax+0x10]
mov rsi, r13
mov rcx, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
call [rcx]System.SpanHelpers:Memmove(byref,byref,ulong)
- mov r13, gword ptr [rbp-0x108]
- jmp SHORT G_M24386_IG08
+ mov r13, gword ptr [rbp-0x130]
+ jmp SHORT G_M24386_IG24
;; size=75 bbWeight=1 PerfScore 15.00
-G_M24386_IG06:
+G_M24386_IG22:
mov rdi, 0xD1FFAB1E ; global ptr
test byte ptr [rdi], 1
- je G_M24386_IG12
+ je G_M24386_IG27
;; size=19 bbWeight=1 PerfScore 4.25
-G_M24386_IG07:
+G_M24386_IG23:
mov rdi, 0xD1FFAB1E ; data for System.Array+EmptyArray`1[ubyte]:Value
mov r13, gword ptr [rdi]
;; size=13 bbWeight=1 PerfScore 2.25
-G_M24386_IG08:
- mov rax, r13
- ;; size=3 bbWeight=1 PerfScore 0.25
-G_M24386_IG09:
+G_M24386_IG24:
lea rdi, bword ptr [r14+0x08]
- mov rsi, rax
+ mov rsi, r13
call CORINFO_HELP_CHECKED_ASSIGN_REF
;; size=12 bbWeight=1 PerfScore 1.75
-G_M24386_IG10:
+G_M24386_IG25:
vmovdqu32 zmm0, zmmword ptr [rbx]
vmovdqu32 zmmword ptr [rbp-0x100], zmm0
vmovdqu32 zmm0, zmmword ptr [rbx+0x40]
vmovdqu32 zmmword ptr [rbp-0xC0], zmm0
vmovdqu32 zmm0, zmmword ptr [rbx+0x80]
vmovdqu32 zmmword ptr [rbp-0x80], zmm0
;; size=41 bbWeight=1 PerfScore 15.00
-G_M24386_IG11:
+G_M24386_IG26:
lea rdi, [rbp-0x100]
mov rax, 0xD1FFAB1E ; code for System.Text.Json.Utf8JsonReader:GetString():System.String:this
call [rax]System.Text.Json.Utf8JsonReader:GetString():System.String:this
mov rbx, rax
mov edi, 0x18F5
mov rsi, 0xD1FFAB1E
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_STRCNS
call [rax]CORINFO_HELP_STRCNS
mov rdi, rax
mov rax, 0xD1FFAB1E ; code for System.SR:GetResourceString(System.String):System.String
call [rax]System.SR:GetResourceString(System.String):System.String
mov r14, rax
mov edi, 0x192F
mov rsi, 0xD1FFAB1E
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_STRCNS
call [rax]CORINFO_HELP_STRCNS
mov rdi, rax
mov rax, 0xD1FFAB1E ; code for System.SR:GetResourceString(System.String):System.String
call [rax]System.SR:GetResourceString(System.String):System.String
mov rdi, rax
mov rsi, rbx
mov rax, 0xD1FFAB1E ; code for System.SR:Format(System.String,System.Object):System.String
call [rax]System.SR:Format(System.String,System.Object):System.String
mov rbx, rax
mov rax, 0xD1FFAB1E ; code for System.SR:get_DeserializeUnableToConvertValue():System.String
call [rax]System.SR:get_DeserializeUnableToConvertValue():System.String
mov rdi, rax
mov rsi, r15
mov rax, 0xD1FFAB1E ; code for System.SR:Format(System.String,System.Object):System.String
call [rax]System.SR:Format(System.String,System.Object):System.String
mov rdx, rax
mov rdi, r14
mov rsi, rbx
mov rax, 0xD1FFAB1E ; code for System.SR:Format(System.String,System.Object,System.Object):System.String
call [rax]System.SR:Format(System.String,System.Object,System.Object):System.String
mov rdi, rax
mov rax, 0xD1FFAB1E ; code for System.Text.Json.ThrowHelper:ThrowJsonException(System.String)
call [rax]System.Text.Json.ThrowHelper:ThrowJsonException(System.String)
int3
;; size=197 bbWeight=1 PerfScore 37.50
-G_M24386_IG12:
+G_M24386_IG27:
mov rdi, 0xD1FFAB1E ; System.Array+EmptyArray`1[ubyte]
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_GET_GCSTATIC_BASE
call [rax]CORINFO_HELP_GET_GCSTATIC_BASE
- jmp G_M24386_IG07
+ jmp G_M24386_IG23
;; size=27 bbWeight=0 PerfScore 0.00
-; Total bytes of code 510, prolog size 62, PerfScore 114.08, instruction count 102, allocated bytes for code 519 (MethodHash=8e15a0bd) for method System.Text.Json.ThrowHelper:ThrowJsonException_MetadataInvalidPropertyInArrayMetadata(byref,System.Type,byref) (FullOpts)
+; Total bytes of code 1131, prolog size 83, PerfScore 252.33, instruction count 236, allocated bytes for code 1140 (MethodHash=8e15a0bd) for method System.Text.Json.ThrowHelper:ThrowJsonException_MetadataInvalidPropertyInArrayMetadata(byref,System.Type,byref) (FullOpts)
; ============================================================ Note: some changes were skipped as they were too large to fit into a comment. Larger list of diffs: https://gist.github.com/MihuBot/e6c04f5b8dc69ba9ffbc77e3f6e8af4d |
Top method improvements-141 (-5.08 % of base) - System.Xml.Serialization.CodeGenerator:Ldc(System.Object):this ; Assembly listing for method System.Xml.Serialization.CodeGenerator:Ldc(System.Object):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; 29 single block inlinees; 10 inlinees without PGO data
+; 0 inlinees with PGO data; 33 single block inlinees; 10 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T06] ( 29, 13.25) ref -> r15 this class-hnd single-def <System.Xml.Serialization.CodeGenerator>
-; V01 arg1 [V01,T00] ( 47, 42.75) ref -> rbx class-hnd <System.Object>
+; V00 this [V00,T06] ( 25, 13.25) ref -> r15 this class-hnd single-def <System.Xml.Serialization.CodeGenerator>
+; V01 arg1 [V01,T00] ( 48, 43.25) ref -> rbx class-hnd <System.Object>
; V02 loc0 [V02,T01] ( 10, 29.50) ref -> r14 class-hnd exact <System.RuntimeType>
-; V03 loc1 [V03,T36] ( 2, 1 ) ref -> r13 class-hnd single-def <System.Reflection.ConstructorInfo>
-; V04 loc2 [V04,T20] ( 11, 3.50) ref -> rbx class-hnd single-def <int[]>
-; V05 loc3 [V05,T37] ( 2, 1 ) ref -> r13 class-hnd single-def <System.Reflection.ConstructorInfo>
+; V03 loc1 [V03,T37] ( 2, 1 ) ref -> r13 class-hnd single-def <System.Reflection.ConstructorInfo>
+;* V04 loc2 [V04 ] ( 0, 0 ) long -> zero-ref class-hnd exact <int[]>
+; V05 loc3 [V05,T38] ( 2, 1 ) ref -> r13 class-hnd single-def <System.Reflection.ConstructorInfo>
;* V06 loc4 [V06 ] ( 0, 0 ) int -> zero-ref
;* V07 loc5 [V07 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.DateTime>
-; V08 loc6 [V08,T38] ( 2, 1 ) ref -> r13 class-hnd single-def <System.Reflection.ConstructorInfo>
+; V08 loc6 [V08,T39] ( 2, 1 ) ref -> r13 class-hnd single-def <System.Reflection.ConstructorInfo>
;* V09 loc7 [V09 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.TimeSpan>
-; V10 loc8 [V10,T39] ( 2, 1 ) ref -> r13 class-hnd single-def <System.Reflection.ConstructorInfo>
+; V10 loc8 [V10,T40] ( 2, 1 ) ref -> r13 class-hnd single-def <System.Reflection.ConstructorInfo>
;* V11 loc9 [V11 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.DateTimeOffset>
; V12 OutArgs [V12 ] ( 1, 1 ) struct (16) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
; V13 tmp1 [V13,T22] ( 5, 3 ) ref -> r14 class-hnd exact single-def "NewArr temp" <System.Type[]>
-;* V14 tmp2 [V14,T47] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
+;* V14 tmp2 [V14,T50] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
;* V15 tmp3 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.RuntimeType>
-; V16 tmp4 [V16,T19] ( 9, 5 ) ref -> r14 class-hnd exact single-def "NewArr temp" <System.Type[]>
-;* V17 tmp5 [V17,T48] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
+; V16 tmp4 [V16,T20] ( 9, 5 ) ref -> r14 class-hnd exact single-def "NewArr temp" <System.Type[]>
+;* V17 tmp5 [V17,T51] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
;* V18 tmp6 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.RuntimeType>
;* V19 tmp7 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.RuntimeType>
;* V20 tmp8 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.RuntimeType>
;* V21 tmp9 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.RuntimeType>
;* V22 tmp10 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.RuntimeType>
-; V23 tmp11 [V23,T57] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.NotSupportedException>
-; V24 tmp12 [V24,T59] ( 2, 0 ) ref -> r15 class-hnd exact single-def "non-inline candidate call" <System.String>
-; V25 tmp13 [V25,T58] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.NotSupportedException>
+; V23 tmp11 [V23,T60] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.NotSupportedException>
+; V24 tmp12 [V24,T62] ( 2, 0 ) ref -> r15 class-hnd exact single-def "non-inline candidate call" <System.String>
+; V25 tmp13 [V25,T61] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.NotSupportedException>
; V26 tmp14 [V26,T21] ( 6, 3.50) ref -> r14 class-hnd exact single-def "NewArr temp" <System.Type[]>
-;* V27 tmp15 [V27,T49] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
+;* V27 tmp15 [V27,T52] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
;* V28 tmp16 [V28 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.RuntimeType>
;* V29 tmp17 [V29 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.RuntimeType>
; V30 tmp18 [V30,T25] ( 3, 3 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" <System.TimeSpan>
; V31 tmp19 [V31,T23] ( 5, 3 ) ref -> r14 class-hnd exact single-def "NewArr temp" <System.Type[]>
-;* V32 tmp20 [V32,T50] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
+;* V32 tmp20 [V32,T53] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
;* V33 tmp21 [V33 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.RuntimeType>
; V34 tmp22 [V34,T24] ( 5, 3 ) ref -> rbx class-hnd exact single-def "NewArr temp" <System.Type[]>
-;* V35 tmp23 [V35,T51] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
+;* V35 tmp23 [V35,T54] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
;* V36 tmp24 [V36 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.RuntimeType>
-;* V37 tmp25 [V37,T52] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V37 tmp25 [V37,T55] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V38 tmp26 [V38 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V39 tmp27 [V39,T04] ( 2, 16 ) ref -> rsi class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
;* V40 tmp28 [V40 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
;* V41 tmp29 [V41 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-; V42 tmp30 [V42,T32] ( 3, 1.48) int -> rax "Inline return value spill temp"
+; V42 tmp30 [V42,T34] ( 3, 1.48) int -> rax "Inline return value spill temp"
;* V43 tmp31 [V43 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V44 tmp32 [V44 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V45 tmp33 [V45 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
;* V46 tmp34 [V46 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.RuntimeType>
;* V47 tmp35 [V47 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
;* V48 tmp36 [V48 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-; V49 tmp37 [V49,T41] ( 2, 1 ) int -> rsi "Inline return value spill temp"
+; V49 tmp37 [V49,T42] ( 2, 1 ) int -> rsi "Inline return value spill temp"
;* V50 tmp38 [V50 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Globalization.CultureInfo>
-;* V51 tmp39 [V51,T53] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V52 tmp40 [V52,T54] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V53 tmp41 [V53,T55] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V54 tmp42 [V54,T56] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V55 tmp43 [V55 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.DateTime>
-;* V56 tmp44 [V56 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V57 tmp45 [V57 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.DateTime>
-;* V58 tmp46 [V58 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.TimeSpan>
-;* V59 tmp47 [V59 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-; V60 tmp48 [V60,T42] ( 2, 1 ) long -> rsi "field V07._dateData (fldOffset=0x0)" P-INDEP
-; V61 tmp49 [V61,T43] ( 2, 1 ) long -> rsi "field V09._ticks (fldOffset=0x0)" P-INDEP
-; V62 tmp50 [V62,T26] ( 4, 2 ) int -> r14 "field V11._offsetMinutes (fldOffset=0x0)" P-INDEP
-; V63 tmp51 [V63,T44] ( 2, 1 ) long -> rsi "field V11._dateTime (fldOffset=0x8)" P-INDEP
-;* V64 tmp52 [V64 ] ( 0, 0 ) long -> zero-ref "field V38.m_asTAddr (fldOffset=0x0)" P-INDEP
-; V65 tmp53 [V65,T18] ( 2, 8 ) long -> rdi "field V40.m_asTAddr (fldOffset=0x0)" P-INDEP
-;* V66 tmp54 [V66 ] ( 0, 0 ) long -> zero-ref "field V45.m_asTAddr (fldOffset=0x0)" P-INDEP
-;* V67 tmp55 [V67 ] ( 0, 0 ) long -> zero-ref "field V47.m_asTAddr (fldOffset=0x0)" P-INDEP
-;* V68 tmp56 [V68 ] ( 0, 0 ) long -> zero-ref "field V55._dateData (fldOffset=0x0)" P-INDEP
-; V69 tmp57 [V69,T45] ( 2, 1 ) long -> rsi "field V57._dateData (fldOffset=0x0)" P-INDEP
-; V70 tmp58 [V70,T46] ( 2, 1 ) long -> rbx "field V58._ticks (fldOffset=0x0)" P-INDEP
-; V71 tmp59 [V71,T02] ( 3, 24 ) int -> rax "index expr"
-; V72 tmp60 [V72,T05] ( 2, 16 ) ref -> rbx single-def "argument with side effect"
-; V73 tmp61 [V73,T29] ( 2, 2 ) ref -> rsi single-def "argument with side effect"
-; V74 tmp62 [V74,T30] ( 2, 2 ) ref -> rdi single-def "argument with side effect"
-; V75 tmp63 [V75,T60] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
-; V76 tmp64 [V76,T61] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
-; V77 tmp65 [V77,T62] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
-; V78 tmp66 [V78,T40] ( 2, 1 ) ref -> rbx single-def "argument with side effect"
-; V79 tmp67 [V79,T31] ( 2, 2 ) ref -> rsi single-def "argument with side effect"
-; V80 cse0 [V80,T17] ( 2, 8 ) ref -> rdi "CSE #01: moderate"
-; V81 cse1 [V81,T03] ( 15, 22.50) ref -> r13 multi-def "CSE #02: aggressive"
-; V82 cse2 [V82,T33] ( 5, 1 ) int -> r14 "CSE #17: moderate"
-; V83 cse3 [V83,T34] ( 4, 1 ) ref -> rdi "CSE #15: conservative"
-; V84 rat0 [V84,T07] ( 4, 12.25) byref -> r12 "Strength reduced derived IV"
-; V85 rat1 [V85,T12] ( 4, 12.25) int -> [rbp-0x2C] "Trip count IV"
-; V86 rat2 [V86,T08] ( 4, 12.25) byref -> r12 "Strength reduced derived IV"
-; V87 rat3 [V87,T13] ( 4, 12.25) int -> [rbp-0x30] "Trip count IV"
-; V88 rat4 [V88,T09] ( 4, 12.25) byref -> r12 "Strength reduced derived IV"
-; V89 rat5 [V89,T14] ( 4, 12.25) int -> [rbp-0x34] "Trip count IV"
-; V90 rat6 [V90,T10] ( 4, 12.25) byref -> r12 "Strength reduced derived IV"
-; V91 rat7 [V91,T15] ( 4, 12.25) int -> [rbp-0x38] "Trip count IV"
-; V92 rat8 [V92,T11] ( 4, 12.25) byref -> r14 "Strength reduced derived IV"
-; V93 rat9 [V93,T16] ( 4, 12.25) int -> r12 "Trip count IV"
-; V94 rat10 [V94,T28] ( 3, 2 ) int -> rax "Spilling to split statement for tree"
-; V95 rat11 [V95,T27] ( 3, 2 ) ref -> rsi "replacement local"
-; V96 rat12 [V96,T35] ( 3, 1 ) long -> rdi "CSE for expectedClsNode"
+;* V51 tmp39 [V51,T56] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V52 tmp40 [V52,T17] ( 10, 10 ) long -> rbx class-hnd exact "NewArr temp" <int[]>
+;* V53 tmp41 [V53 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Decimal>
+;* V54 tmp42 [V54 ] ( 0, 0 ) int -> zero-ref "Strict ordering of exceptions for Array store"
+;* V55 tmp43 [V55 ] ( 0, 0 ) int -> zero-ref "Strict ordering of exceptions for Array store"
+;* V56 tmp44 [V56 ] ( 0, 0 ) int -> zero-ref "Strict ordering of exceptions for Array store"
+;* V57 tmp45 [V57,T57] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V58 tmp46 [V58,T58] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V59 tmp47 [V59,T59] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V60 tmp48 [V60 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.DateTime>
+;* V61 tmp49 [V61 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V62 tmp50 [V62 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.DateTime>
+;* V63 tmp51 [V63 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.TimeSpan>
+;* V64 tmp52 [V64 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+; V65 tmp53 [V65 ] ( 4, 2 ) struct (32) [rbp-0x48] do-not-enreg[XS] addr-exposed "stack allocated array temp" <int[]>
+; V66 tmp54 [V66,T43] ( 2, 1 ) long -> rsi "field V07._dateData (fldOffset=0x0)" P-INDEP
+; V67 tmp55 [V67,T44] ( 2, 1 ) long -> rsi "field V09._ticks (fldOffset=0x0)" P-INDEP
+; V68 tmp56 [V68,T27] ( 4, 2 ) int -> r12 "field V11._offsetMinutes (fldOffset=0x0)" P-INDEP
+; V69 tmp57 [V69,T45] ( 2, 1 ) long -> rsi "field V11._dateTime (fldOffset=0x8)" P-INDEP
+;* V70 tmp58 [V70 ] ( 0, 0 ) long -> zero-ref "field V38.m_asTAddr (fldOffset=0x0)" P-INDEP
+; V71 tmp59 [V71,T19] ( 2, 8 ) long -> rdi "field V40.m_asTAddr (fldOffset=0x0)" P-INDEP
+;* V72 tmp60 [V72 ] ( 0, 0 ) long -> zero-ref "field V45.m_asTAddr (fldOffset=0x0)" P-INDEP
+;* V73 tmp61 [V73 ] ( 0, 0 ) long -> zero-ref "field V47.m_asTAddr (fldOffset=0x0)" P-INDEP
+; V74 tmp62 [V74,T46] ( 2, 1 ) int -> rsi "field V53._flags (fldOffset=0x0)" P-INDEP
+; V75 tmp63 [V75,T47] ( 2, 1 ) int -> rdi "field V53._hi32 (fldOffset=0x4)" P-INDEP
+; V76 tmp64 [V76,T33] ( 3, 1.50) long -> rax "field V53._lo64 (fldOffset=0x8)" P-INDEP
+;* V77 tmp65 [V77 ] ( 0, 0 ) long -> zero-ref "field V60._dateData (fldOffset=0x0)" P-INDEP
+; V78 tmp66 [V78,T48] ( 2, 1 ) long -> rsi "field V62._dateData (fldOffset=0x0)" P-INDEP
+; V79 tmp67 [V79,T49] ( 2, 1 ) long -> rbx "field V63._ticks (fldOffset=0x0)" P-INDEP
+; V80 tmp68 [V80,T02] ( 3, 24 ) int -> rax "index expr"
+; V81 tmp69 [V81,T05] ( 2, 16 ) ref -> rbx single-def "argument with side effect"
+; V82 tmp70 [V82,T29] ( 2, 2 ) ref -> rsi single-def "argument with side effect"
+; V83 tmp71 [V83,T30] ( 2, 2 ) ref -> rdi single-def "argument with side effect"
+; V84 tmp72 [V84,T63] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
+; V85 tmp73 [V85,T64] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
+; V86 tmp74 [V86,T65] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
+; V87 tmp75 [V87,T41] ( 2, 1 ) ref -> rbx single-def "argument with side effect"
+; V88 tmp76 [V88,T31] ( 2, 2 ) ref -> rsi single-def "argument with side effect"
+; V89 cse0 [V89,T18] ( 2, 8 ) ref -> rdi "CSE #01: moderate"
+; V90 cse1 [V90,T03] ( 15, 22.50) ref -> r13 multi-def "CSE #02: aggressive"
+; V91 cse2 [V91,T35] ( 4, 1 ) ref -> rdi "CSE #15: moderate"
+; V92 cse3 [V92,T32] ( 3, 1.25) ref -> r13 "CSE #18: moderate"
+; V93 cse4 [V93,T26] ( 5, 2 ) long -> r14 "CSE #22: moderate"
+; V94 rat0 [V94,T07] ( 4, 12.25) byref -> r12 "Strength reduced derived IV"
+; V95 rat1 [V95,T12] ( 4, 12.25) int -> [rbp-0x4C] "Trip count IV"
+; V96 rat2 [V96,T08] ( 4, 12.25) byref -> r12 "Strength reduced derived IV"
+; V97 rat3 [V97,T13] ( 4, 12.25) int -> [rbp-0x50] "Trip count IV"
+; V98 rat4 [V98,T09] ( 4, 12.25) byref -> r12 "Strength reduced derived IV"
+; V99 rat5 [V99,T14] ( 4, 12.25) int -> [rbp-0x54] "Trip count IV"
+; V100 rat6 [V100,T10] ( 4, 12.25) byref -> r12 "Strength reduced derived IV"
+; V101 rat7 [V101,T15] ( 4, 12.25) int -> [rbp-0x58] "Trip count IV"
+; V102 rat8 [V102,T11] ( 4, 12.25) byref -> r14 "Strength reduced derived IV"
+; V103 rat9 [V103,T16] ( 4, 12.25) int -> r12 "Trip count IV"
+; V104 rat10 [V104,T28] ( 3, 2 ) ref -> rsi "replacement local"
+; V105 rat11 [V105,T36] ( 3, 1 ) long -> rdi "CSE for expectedClsNode"
;
-; Lcl frame size = 40
+; Lcl frame size = 72
G_M59274_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
- sub rsp, 40
- lea rbp, [rsp+0x50]
+ sub rsp, 72
+ lea rbp, [rsp+0x70]
mov r15, rdi
mov rbx, rsi
;; size=25 bbWeight=1 PerfScore 7.25
G_M59274_IG02:
jmp SHORT G_M59274_IG04
;; size=2 bbWeight=1 PerfScore 2.00
G_M59274_IG03:
mov rdi, qword ptr [r14+0x18]
call System.Runtime.CompilerServices.MethodTable:GetPrimitiveCorElementType():ubyte:this
mov rdi, 0xD1FFAB1E ; const ptr
mov rdi, gword ptr [rdi]
cmp eax, 26
- jae G_M59274_IG75
+ jae G_M59274_IG73
mov esi, eax
mov rsi, gword ptr [rdi+8*rsi+0x10]
mov rdi, rbx
xor rdx, rdx
mov rax, 0xD1FFAB1E ; code for System.Convert:ChangeType(System.Object,System.Type,System.IFormatProvider):System.Object
call [rax]System.Convert:ChangeType(System.Object,System.Type,System.IFormatProvider):System.Object
mov rbx, rax
;; size=58 bbWeight=4 PerfScore 51.00
G_M59274_IG04:
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Object:GetType():System.Type:this
call [rax]System.Object:GetType():System.Type:this
mov r14, rax
mov rsi, rbx
mov rdi, 0xD1FFAB1E ; System.Type
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
test rax, rax
jne SHORT G_M59274_IG07
;; size=48 bbWeight=8 PerfScore 70.00
G_M59274_IG05:
mov rdi, r14
mov rax, 0xD1FFAB1E ; code for System.RuntimeType:get_IsEnum():ubyte:this
call [rax]System.RuntimeType:get_IsEnum():ubyte:this
test eax, eax
je G_M59274_IG11
mov rdi, r14
mov rsi, 0xD1FFAB1E ; 'enumType'
mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
call [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
mov rdi, r14
mov rax, 0xD1FFAB1E ; code for System.RuntimeType:get_IsActualEnum():ubyte:this
call [rax]System.RuntimeType:get_IsActualEnum():ubyte:this
test eax, eax
jne G_M59274_IG03
;; size=71 bbWeight=4 PerfScore 53.00
G_M59274_IG06:
mov rax, 0xD1FFAB1E ; code for System.RuntimeType:ThrowMustBeEnum()
call [rax]System.RuntimeType:ThrowMustBeEnum()
int3
;; size=13 bbWeight=0.50 PerfScore 1.75
G_M59274_IG07:
mov rsi, rbx
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Xml.Serialization.CodeGenerator:Ldtoken(System.Type):this
call [rax]System.Xml.Serialization.CodeGenerator:Ldtoken(System.Type):this
mov rdi, 0xD1FFAB1E ; System.Type[]
mov esi, 1
call CORINFO_HELP_NEWARR_1_OBJ
mov rbx, rax
mov rdi, 0xD1FFAB1E ; 'System.RuntimeTypeHandle'
mov gword ptr [rbx+0x10], rdi
mov rdi, 0xD1FFAB1E ; 'GetTypeFromHandle'
mov rsi, 0xD1FFAB1E ; 'name'
mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
call [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
mov rdi, rbx
mov r13, 0xD1FFAB1E ; 'types'
mov rsi, r13
mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
call [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
lea r14, bword ptr [rbx+0x10]
mov r12d, 1
;; size=125 bbWeight=0.25 PerfScore 3.81
G_M59274_IG08:
mov rdi, gword ptr [r14]
mov rsi, r13
mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
call [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
add r14, 8
dec r12d
jne SHORT G_M59274_IG08
;; size=27 bbWeight=4 PerfScore 28.00
G_M59274_IG09:
mov gword ptr [rsp], rbx
xor rdi, rdi
mov gword ptr [rsp+0x08], rdi
mov rdi, 0xD1FFAB1E ; 'System.Type'
mov rsi, 0xD1FFAB1E ; 'GetTypeFromHandle'
mov edx, -1
mov ecx, 24
xor r8, r8
mov r9d, 3
mov rax, 0xD1FFAB1E ; code for System.RuntimeType:GetMethodImplCommon(System.String,int,int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodInfo:this
call [rax]System.RuntimeType:GetMethodImplCommon(System.String,int,int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodInfo:this
mov rsi, rax
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Xml.Serialization.CodeGenerator:Call(System.Reflection.MethodInfo):this
;; size=78 bbWeight=0.50 PerfScore 3.88
G_M59274_IG10:
- add rsp, 40
+ add rsp, 72
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
tail.jmp [rax]System.Xml.Serialization.CodeGenerator:Call(System.Reflection.MethodInfo):this
;; size=17 bbWeight=0.50 PerfScore 2.62
G_M59274_IG11:
mov rdi, r14
mov rax, 0xD1FFAB1E ; code for System.RuntimeType:GetTypeCodeImpl():int:this
call [rax]System.RuntimeType:GetTypeCodeImpl():int:this
cmp eax, 18
ja G_M59274_IG19
;; size=24 bbWeight=0.50 PerfScore 2.38
G_M59274_IG12:
mov esi, eax
lea rdi, [reloc @RWD00]
mov edi, dword ptr [rdi+4*rsi]
lea rax, G_M59274_IG02
add rdi, rax
jmp rdi
;; size=24 bbWeight=0.47 PerfScore 2.85
G_M59274_IG13:
mov rsi, rbx
mov rdi, 0xD1FFAB1E ; System.IConvertible
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTINTERFACE
call [rax]CORINFO_HELP_CHKCASTINTERFACE
mov rdi, rax
mov rsi, 0xD1FFAB1E ; const ptr
mov rsi, gword ptr [rsi]
mov r11, 0xD1FFAB1E ; code for System.IConvertible:ToInt32(System.IFormatProvider):int:this
call [r11]System.IConvertible:ToInt32(System.IFormatProvider):int:this
mov esi, eax
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Xml.Serialization.CodeGenerator:Ldc(int):this
;; size=69 bbWeight=0.50 PerfScore 5.12
G_M59274_IG14:
- add rsp, 40
+ add rsp, 72
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
tail.jmp [rax]System.Xml.Serialization.CodeGenerator:Ldc(int):this
;; size=17 bbWeight=0.50 PerfScore 2.62
G_M59274_IG15:
mov rsi, 0xD1FFAB1E ; System.Boolean
cmp qword ptr [rbx], rsi
je SHORT G_M59274_IG17
;; size=15 bbWeight=0.50 PerfScore 2.12
G_M59274_IG16:
mov rsi, rbx
mov rdi, 0xD1FFAB1E ; System.Boolean
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_UNBOX
call [rax]CORINFO_HELP_UNBOX
;; size=25 bbWeight=0.25 PerfScore 0.94
G_M59274_IG17:
movzx rsi, byte ptr [rbx+0x08]
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Xml.Serialization.CodeGenerator:Ldc(ubyte):this
;; size=18 bbWeight=0.50 PerfScore 1.25
G_M59274_IG18:
- add rsp, 40
+ add rsp, 72
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
tail.jmp [rax]System.Xml.Serialization.CodeGenerator:Ldc(ubyte):this
;; size=17 bbWeight=0.50 PerfScore 2.62
G_M59274_IG19:
- mov rdi, 0xD1FFAB1E ; 'System.TimeSpan'
- cmp r14, rdi
+ mov r13, 0xD1FFAB1E ; 'System.TimeSpan'
+ cmp r14, r13
je G_M59274_IG28
mov rdi, 0xD1FFAB1E ; 'System.DateTimeOffset'
cmp r14, rdi
- jne G_M59274_IG74
+ jne G_M59274_IG72
;; size=38 bbWeight=0.50 PerfScore 1.50
G_M59274_IG20:
mov rdi, 0xD1FFAB1E ; System.Type[]
mov esi, 2
call CORINFO_HELP_NEWARR_1_OBJ
mov r14, rax
mov rdi, 0xD1FFAB1E ; 'System.Int64'
mov gword ptr [r14+0x10], rdi
- mov rdi, 0xD1FFAB1E ; 'System.TimeSpan'
- mov gword ptr [r14+0x18], rdi
+ mov gword ptr [r14+0x18], r13
mov rdi, r14
mov r13, 0xD1FFAB1E ; 'types'
mov rsi, r13
mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
call [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
lea r12, bword ptr [r14+0x10]
- mov dword ptr [rbp-0x34], 2
- ;; size=90 bbWeight=0.25 PerfScore 2.44
+ mov dword ptr [rbp-0x54], 2
+ ;; size=80 bbWeight=0.25 PerfScore 2.38
G_M59274_IG21:
mov rdi, gword ptr [r12]
mov rsi, r13
mov rcx, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
call [rcx]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
add r12, 8
- mov eax, dword ptr [rbp-0x34]
+ mov eax, dword ptr [rbp-0x54]
dec eax
- mov dword ptr [rbp-0x34], eax
+ mov dword ptr [rbp-0x54], eax
jne SHORT G_M59274_IG21
;; size=33 bbWeight=4 PerfScore 36.00
G_M59274_IG22:
mov rdi, 0xD1FFAB1E ; 'System.DateTimeOffset'
mov r8, r14
mov esi, 52
xor rdx, rdx
mov ecx, 3
xor r9, r9
mov rax, 0xD1FFAB1E ; code for System.RuntimeType:GetConstructorImpl(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this
call [rax]System.RuntimeType:GetConstructorImpl(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this
mov r13, rax
- mov rsi, 0xD1FFAB1E ; System.DateTimeOffset
- cmp qword ptr [rbx], rsi
+ mov r14, 0xD1FFAB1E ; System.DateTimeOffset
+ cmp qword ptr [rbx], r14
je SHORT G_M59274_IG24
;; size=58 bbWeight=0.50 PerfScore 4.62
G_M59274_IG23:
mov rsi, rbx
- mov rdi, 0xD1FFAB1E ; System.DateTimeOffset
+ mov rdi, r14
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_UNBOX
call [rax]CORINFO_HELP_UNBOX
- ;; size=25 bbWeight=0.25 PerfScore 0.94
+ ;; size=18 bbWeight=0.25 PerfScore 0.94
G_M59274_IG24:
- mov r14d, dword ptr [rbx+0x08]
+ mov r12d, dword ptr [rbx+0x08]
mov rsi, qword ptr [rbx+0x10]
- movsxd rdi, r14d
+ movsxd rdi, r12d
imul rdi, rdi, 0xD1FFAB1E
add rsi, rdi
mov rdi, 0xD1FFAB1E
and rsi, rdi
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Xml.Serialization.CodeGenerator:Ldc(long):this
call [rax]System.Xml.Serialization.CodeGenerator:Ldc(long):this
- mov rsi, 0xD1FFAB1E ; System.DateTimeOffset
- cmp qword ptr [rbx], rsi
+ cmp qword ptr [rbx], r14
je SHORT G_M59274_IG26
- ;; size=64 bbWeight=0.50 PerfScore 7.38
+ ;; size=54 bbWeight=0.50 PerfScore 7.25
G_M59274_IG25:
mov rsi, rbx
- mov rdi, 0xD1FFAB1E ; System.DateTimeOffset
+ mov rdi, r14
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_UNBOX
call [rax]CORINFO_HELP_UNBOX
- ;; size=25 bbWeight=0.25 PerfScore 0.94
+ ;; size=18 bbWeight=0.25 PerfScore 0.94
G_M59274_IG26:
- mov r14d, dword ptr [rbx+0x08]
- movsxd rdi, r14d
+ mov r12d, dword ptr [rbx+0x08]
+ movsxd rdi, r12d
imul rbx, rdi, 0xD1FFAB1E
mov rdi, 0xD1FFAB1E ; System.TimeSpan
call CORINFO_HELP_NEWSFAST
mov qword ptr [rax+0x08], rbx
mov rsi, rax
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Xml.Serialization.CodeGenerator:Ldc(System.Object):this
call [rax]System.Xml.Serialization.CodeGenerator:Ldc(System.Object):this
mov rdi, r15
mov rsi, r13
mov rax, 0xD1FFAB1E ; code for System.Xml.Serialization.CodeGenerator:New(System.Reflection.ConstructorInfo):this
;; size=67 bbWeight=0.50 PerfScore 5.50
G_M59274_IG27:
- add rsp, 40
+ add rsp, 72
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
tail.jmp [rax]System.Xml.Serialization.CodeGenerator:New(System.Reflection.ConstructorInfo):this
;; size=17 bbWeight=0.50 PerfScore 2.62
G_M59274_IG28:
mov rdi, 0xD1FFAB1E ; System.Type[]
mov esi, 1
call CORINFO_HELP_NEWARR_1_OBJ
mov r14, rax
mov rdi, 0xD1FFAB1E ; 'System.Int64'
mov gword ptr [r14+0x10], rdi
mov rdi, r14
mov r13, 0xD1FFAB1E ; 'types'
mov rsi, r13
mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
call [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
lea r12, bword ptr [r14+0x10]
- mov dword ptr [rbp-0x38], 1
+ mov dword ptr [rbp-0x58], 1
;; size=76 bbWeight=0.25 PerfScore 2.12
G_M59274_IG29:
mov rdi, gword ptr [r12]
mov rsi, r13
mov rcx, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
call [rcx]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
add r12, 8
- mov eax, dword ptr [rbp-0x38]
+ mov eax, dword ptr [rbp-0x58]
dec eax
- mov dword ptr [rbp-0x38], eax
+ mov dword ptr [rbp-0x58], eax
jne SHORT G_M59274_IG29
;; size=33 bbWeight=4 PerfScore 36.00
G_M59274_IG30:
mov rdi, 0xD1FFAB1E ; 'System.TimeSpan'
mov r8, r14
mov esi, 52
xor rdx, rdx
mov ecx, 3
xor r9, r9
mov rax, 0xD1FFAB1E ; code for System.RuntimeType:GetConstructorImpl(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this
call [rax]System.RuntimeType:GetConstructorImpl(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this
mov r13, rax
mov rsi, 0xD1FFAB1E ; System.TimeSpan
cmp qword ptr [rbx], rsi
je SHORT G_M59274_IG32
;; size=58 bbWeight=0.50 PerfScore 4.62
G_M59274_IG31:
mov rsi, rbx
mov rdi, 0xD1FFAB1E ; System.TimeSpan
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_UNBOX
call [rax]CORINFO_HELP_UNBOX
;; size=25 bbWeight=0.25 PerfScore 0.94
G_M59274_IG32:
mov rsi, qword ptr [rbx+0x08]
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Xml.Serialization.CodeGenerator:Ldc(long):this
call [rax]System.Xml.Serialization.CodeGenerator:Ldc(long):this
mov rdi, r15
mov rsi, r13
mov rax, 0xD1FFAB1E ; code for System.Xml.Serialization.CodeGenerator:New(System.Reflection.ConstructorInfo):this
;; size=35 bbWeight=0.50 PerfScore 3.12
G_M59274_IG33:
- add rsp, 40
+ add rsp, 72
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
tail.jmp [rax]System.Xml.Serialization.CodeGenerator:New(System.Reflection.ConstructorInfo):this
;; size=17 bbWeight=0.50 PerfScore 2.62
G_M59274_IG34:
mov rsi, rbx
mov rdi, 0xD1FFAB1E ; System.String
cmp qword ptr [rsi], rdi
- jne G_M59274_IG72
+ jne G_M59274_IG71
;; size=22 bbWeight=0.25 PerfScore 1.12
G_M59274_IG35:
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Xml.Serialization.CodeGenerator:Ldstr(System.String):this
;; size=13 bbWeight=0.50 PerfScore 0.25
G_M59274_IG36:
- add rsp, 40
+ add rsp, 72
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
tail.jmp [rax]System.Xml.Serialization.CodeGenerator:Ldstr(System.String):this
;; size=17 bbWeight=0.50 PerfScore 2.62
G_M59274_IG37:
mov rdi, 0xD1FFAB1E ; System.Type[]
mov esi, 1
call CORINFO_HELP_NEWARR_1_OBJ
mov r14, rax
mov rdi, 0xD1FFAB1E ; 'System.Int64'
mov gword ptr [r14+0x10], rdi
mov rdi, r14
mov r13, 0xD1FFAB1E ; 'types'
mov rsi, r13
mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
call [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
lea r12, bword ptr [r14+0x10]
- mov dword ptr [rbp-0x2C], 1
+ mov dword ptr [rbp-0x4C], 1
;; size=76 bbWeight=0.25 PerfScore 2.12
G_M59274_IG38:
mov rdi, gword ptr [r12]
mov rsi, r13
mov rcx, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
call [rcx]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
add r12, 8
- mov eax, dword ptr [rbp-0x2C]
+ mov eax, dword ptr [rbp-0x4C]
dec eax
- mov dword ptr [rbp-0x2C], eax
+ mov dword ptr [rbp-0x4C], eax
jne SHORT G_M59274_IG38
;; size=33 bbWeight=4 PerfScore 36.00
G_M59274_IG39:
mov rdi, 0xD1FFAB1E ; 'System.DateTime'
mov r8, r14
mov esi, 52
xor rdx, rdx
mov ecx, 3
xor r9, r9
mov rax, 0xD1FFAB1E ; code for System.RuntimeType:GetConstructorImpl(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this
call [rax]System.RuntimeType:GetConstructorImpl(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this
mov r13, rax
mov rsi, 0xD1FFAB1E ; System.DateTime
cmp qword ptr [rbx], rsi
je SHORT G_M59274_IG41
;; size=58 bbWeight=0.50 PerfScore 4.62
G_M59274_IG40:
mov rsi, rbx
mov rdi, 0xD1FFAB1E ; System.DateTime
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_UNBOX
call [rax]CORINFO_HELP_UNBOX
;; size=25 bbWeight=0.25 PerfScore 0.94
G_M59274_IG41:
mov rsi, qword ptr [rbx+0x08]
mov rdi, 0xD1FFAB1E
and rsi, rdi
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Xml.Serialization.CodeGenerator:Ldc(long):this
call [rax]System.Xml.Serialization.CodeGenerator:Ldc(long):this
mov rdi, r15
mov rsi, r13
mov rax, 0xD1FFAB1E ; code for System.Xml.Serialization.CodeGenerator:New(System.Reflection.ConstructorInfo):this
;; size=48 bbWeight=0.50 PerfScore 3.38
G_M59274_IG42:
- add rsp, 40
+ add rsp, 72
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
tail.jmp [rax]System.Xml.Serialization.CodeGenerator:New(System.Reflection.ConstructorInfo):this
;; size=17 bbWeight=0.50 PerfScore 2.62
G_M59274_IG43:
mov rdi, 0xD1FFAB1E ; System.Type[]
mov esi, 5
call CORINFO_HELP_NEWARR_1_OBJ
mov r14, rax
mov rdi, 0xD1FFAB1E ; 'System.Int32'
mov gword ptr [r14+0x10], rdi
mov gword ptr [r14+0x18], rdi
mov gword ptr [r14+0x20], rdi
mov rdi, 0xD1FFAB1E ; 'System.Boolean'
mov gword ptr [r14+0x28], rdi
mov rdi, 0xD1FFAB1E ; 'System.Byte'
mov gword ptr [r14+0x30], rdi
mov rdi, r14
mov r13, 0xD1FFAB1E ; 'types'
mov rsi, r13
mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
call [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
lea r12, bword ptr [r14+0x10]
- mov dword ptr [rbp-0x30], 5
+ mov dword ptr [rbp-0x50], 5
;; size=112 bbWeight=0.25 PerfScore 3.25
G_M59274_IG44:
mov rdi, gword ptr [r12]
mov rsi, r13
mov rcx, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
call [rcx]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
add r12, 8
- mov eax, dword ptr [rbp-0x30]
+ mov eax, dword ptr [rbp-0x50]
dec eax
- mov dword ptr [rbp-0x30], eax
+ mov dword ptr [rbp-0x50], eax
jne SHORT G_M59274_IG44
;; size=33 bbWeight=4 PerfScore 36.00
G_M59274_IG45:
mov rdi, 0xD1FFAB1E ; 'System.Decimal'
mov r8, r14
mov esi, 52
xor rdx, rdx
mov ecx, 3
xor r9, r9
mov rax, 0xD1FFAB1E ; code for System.RuntimeType:GetConstructorImpl(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this
call [rax]System.RuntimeType:GetConstructorImpl(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this
mov r13, rax
mov rsi, 0xD1FFAB1E ; System.Decimal
cmp qword ptr [rbx], rsi
je SHORT G_M59274_IG47
;; size=58 bbWeight=0.50 PerfScore 4.62
G_M59274_IG46:
mov rsi, rbx
mov rdi, 0xD1FFAB1E ; System.Decimal
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_UNBOX
call [rax]CORINFO_HELP_UNBOX
;; size=25 bbWeight=0.25 PerfScore 0.94
G_M59274_IG47:
- mov rdi, qword ptr [rbx+0x08]
- mov rsi, qword ptr [rbx+0x10]
- mov rax, 0xD1FFAB1E ; code for System.Decimal:GetBits(System.Decimal):int[]
- call [rax]System.Decimal:GetBits(System.Decimal):int[]
- mov rbx, rax
- mov r14d, dword ptr [rbx+0x08]
- mov eax, r14d
- cmp eax, 3
- jle G_M59274_IG73
+ mov esi, dword ptr [rbx+0x08]
+ mov edi, dword ptr [rbx+0x0C]
+ mov rax, qword ptr [rbx+0x10]
+ vxorps ymm0, ymm0, ymm0
+ vmovdqu ymmword ptr [rbp-0x48], ymm0
+ mov rcx, 0xD1FFAB1E ; int[]
+ mov qword ptr [rbp-0x48], rcx
+ lea rcx, [rbp-0x48]
+ mov dword ptr [rcx+0x08], 4
+ lea rbx, [rbp-0x48]
+ mov dword ptr [rbx+0x10], eax
+ shr rax, 32
+ mov dword ptr [rbx+0x14], eax
+ mov dword ptr [rbx+0x18], edi
+ mov dword ptr [rbx+0x1C], esi
mov esi, dword ptr [rbx+0x10]
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Xml.Serialization.CodeGenerator:Ldc(int):this
call [rax]System.Xml.Serialization.CodeGenerator:Ldc(int):this
mov esi, dword ptr [rbx+0x14]
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Xml.Serialization.CodeGenerator:Ldc(int):this
call [rax]System.Xml.Serialization.CodeGenerator:Ldc(int):this
mov esi, dword ptr [rbx+0x18]
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Xml.Serialization.CodeGenerator:Ldc(int):this
call [rax]System.Xml.Serialization.CodeGenerator:Ldc(int):this
movsxd rsi, dword ptr [rbx+0x1C]
mov edi, 0xD1FFAB1E
test rsi, rdi
setne sil
movzx rsi, sil
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Xml.Serialization.CodeGenerator:Ldc(ubyte):this
call [rax]System.Xml.Serialization.CodeGenerator:Ldc(ubyte):this
- ;; size=128 bbWeight=0.50 PerfScore 18.38
-G_M59274_IG48:
mov esi, dword ptr [rbx+0x1C]
sar esi, 16
movzx rsi, sil
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Xml.Serialization.CodeGenerator:Ldc(int):this
call [rax]System.Xml.Serialization.CodeGenerator:Ldc(int):this
mov rdi, r15
mov rsi, r13
mov rax, 0xD1FFAB1E ; code for System.Xml.Serialization.CodeGenerator:New(System.Reflection.ConstructorInfo):this
- ;; size=41 bbWeight=0.50 PerfScore 3.50
-G_M59274_IG49:
- add rsp, 40
+ ;; size=194 bbWeight=0.50 PerfScore 23.92
+G_M59274_IG48:
+ add rsp, 72
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
tail.jmp [rax]System.Xml.Serialization.CodeGenerator:New(System.Reflection.ConstructorInfo):this
;; size=17 bbWeight=0.50 PerfScore 2.62
-G_M59274_IG50:
+G_M59274_IG49:
mov rsi, 0xD1FFAB1E ; System.Double
cmp qword ptr [rbx], rsi
- je SHORT G_M59274_IG52
+ je SHORT G_M59274_IG51
;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M59274_IG51:
+G_M59274_IG50:
mov rsi, rbx
mov rdi, 0xD1FFAB1E ; System.Double
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_UNBOX
call [rax]CORINFO_HELP_UNBOX
;; size=25 bbWeight=0.25 PerfScore 0.94
-G_M59274_IG52:
+G_M59274_IG51:
vmovsd xmm0, qword ptr [rbx+0x08]
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Xml.Serialization.CodeGenerator:Ldc(double):this
;; size=18 bbWeight=0.50 PerfScore 2.25
-G_M59274_IG53:
- add rsp, 40
+G_M59274_IG52:
+ add rsp, 72
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
tail.jmp [rax]System.Xml.Serialization.CodeGenerator:Ldc(double):this
;; size=17 bbWeight=0.50 PerfScore 2.62
-G_M59274_IG54:
+G_M59274_IG53:
mov rsi, 0xD1FFAB1E ; System.Single
cmp qword ptr [rbx], rsi
- je SHORT G_M59274_IG56
+ je SHORT G_M59274_IG55
;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M59274_IG55:
+G_M59274_IG54:
mov rsi, rbx
mov rdi, 0xD1FFAB1E ; System.Single
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_UNBOX
call [rax]CORINFO_HELP_UNBOX
;; size=25 bbWeight=0.25 PerfScore 0.94
-G_M59274_IG56:
+G_M59274_IG55:
vmovss xmm0, dword ptr [rbx+0x08]
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Xml.Serialization.CodeGenerator:Ldc(float):this
;; size=18 bbWeight=0.50 PerfScore 2.25
-G_M59274_IG57:
- add rsp, 40
+G_M59274_IG56:
+ add rsp, 72
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
tail.jmp [rax]System.Xml.Serialization.CodeGenerator:Ldc(float):this
;; size=17 bbWeight=0.50 PerfScore 2.62
-G_M59274_IG58:
+G_M59274_IG57:
mov rsi, 0xD1FFAB1E ; System.UInt64
cmp qword ptr [rbx], rsi
- je SHORT G_M59274_IG61
+ je SHORT G_M59274_IG60
;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M59274_IG59:
+G_M59274_IG58:
mov rsi, rbx
mov rdi, 0xD1FFAB1E ; System.UInt64
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_UNBOX
call [rax]CORINFO_HELP_UNBOX
- jmp SHORT G_M59274_IG61
+ jmp SHORT G_M59274_IG60
;; size=27 bbWeight=0.25 PerfScore 1.44
-G_M59274_IG60:
+G_M59274_IG59:
mov rsi, 0xD1FFAB1E ; System.Int64
cmp qword ptr [rbx], rsi
- je SHORT G_M59274_IG61
+ je SHORT G_M59274_IG60
mov rsi, rbx
mov rdi, 0xD1FFAB1E ; System.Int64
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_UNBOX
call [rax]CORINFO_HELP_UNBOX
;; size=40 bbWeight=0.50 PerfScore 4.00
-G_M59274_IG61:
+G_M59274_IG60:
mov rsi, qword ptr [rbx+0x08]
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Xml.Serialization.CodeGenerator:Ldc(long):this
;; size=17 bbWeight=0.50 PerfScore 1.25
-G_M59274_IG62:
- add rsp, 40
+G_M59274_IG61:
+ add rsp, 72
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
tail.jmp [rax]System.Xml.Serialization.CodeGenerator:Ldc(long):this
;; size=17 bbWeight=0.50 PerfScore 2.62
-G_M59274_IG63:
+G_M59274_IG62:
mov rsi, 0xD1FFAB1E ; System.UInt32
cmp qword ptr [rbx], rsi
- je SHORT G_M59274_IG65
+ je SHORT G_M59274_IG64
;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M59274_IG64:
+G_M59274_IG63:
mov rsi, rbx
mov rdi, 0xD1FFAB1E ; System.UInt32
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_UNBOX
call [rax]CORINFO_HELP_UNBOX
;; size=25 bbWeight=0.25 PerfScore 0.94
-G_M59274_IG65:
+G_M59274_IG64:
mov esi, dword ptr [rbx+0x08]
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Xml.Serialization.CodeGenerator:Ldc(int):this
;; size=16 bbWeight=0.50 PerfScore 1.25
-G_M59274_IG66:
- add rsp, 40
+G_M59274_IG65:
+ add rsp, 72
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
tail.jmp [rax]System.Xml.Serialization.CodeGenerator:Ldc(int):this
;; size=17 bbWeight=0.50 PerfScore 2.62
-G_M59274_IG67:
+G_M59274_IG66:
mov rsi, 0xD1FFAB1E ; System.Int32
cmp qword ptr [rbx], rsi
- je SHORT G_M59274_IG69
+ je SHORT G_M59274_IG68
;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M59274_IG68:
+G_M59274_IG67:
mov rsi, rbx
mov rdi, 0xD1FFAB1E ; System.Int32
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_UNBOX
call [rax]CORINFO_HELP_UNBOX
;; size=25 bbWeight=0.25 PerfScore 0.94
-G_M59274_IG69:
+G_M59274_IG68:
mov esi, dword ptr [rbx+0x08]
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Xml.Serialization.CodeGenerator:Ldc(int):this
;; size=16 bbWeight=0.50 PerfScore 1.25
-G_M59274_IG70:
- add rsp, 40
+G_M59274_IG69:
+ add rsp, 72
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
tail.jmp [rax]System.Xml.Serialization.CodeGenerator:Ldc(int):this
;; size=17 bbWeight=0.50 PerfScore 2.62
-G_M59274_IG71:
+G_M59274_IG70:
mov rdi, 0xD1FFAB1E ; System.NotSupportedException
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov rax, 0xD1FFAB1E ; code for System.SR:get_XmlInvalidCharSchemaPrimitive():System.String
call [rax]System.SR:get_XmlInvalidCharSchemaPrimitive():System.String
mov rsi, rax
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.NotSupportedException:.ctor(System.String):this
call [rax]System.NotSupportedException:.ctor(System.String):this
mov rdi, rbx
call CORINFO_HELP_THROW
int3
;; size=57 bbWeight=0 PerfScore 0.00
-G_M59274_IG72:
+G_M59274_IG71:
mov rsi, rbx
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS
call [rax]CORINFO_HELP_CHKCASTCLASS
int3
;; size=16 bbWeight=0 PerfScore 0.00
-G_M59274_IG73:
- test eax, eax
- je G_M59274_IG75
- mov esi, dword ptr [rbx+0x10]
- mov rdi, r15
- mov rax, 0xD1FFAB1E ; code for System.Xml.Serialization.CodeGenerator:Ldc(int):this
- call [rax]System.Xml.Serialization.CodeGenerator:Ldc(int):this
- cmp r14d, 1
- jbe G_M59274_IG75
- mov esi, dword ptr [rbx+0x14]
- mov rdi, r15
- mov rax, 0xD1FFAB1E ; code for System.Xml.Serialization.CodeGenerator:Ldc(int):this
- call [rax]System.Xml.Serialization.CodeGenerator:Ldc(int):this
- cmp r14d, 2
- jbe G_M59274_IG75
- mov esi, dword ptr [rbx+0x18]
- mov rdi, r15
- mov rax, 0xD1FFAB1E ; code for System.Xml.Serialization.CodeGenerator:Ldc(int):this
- call [rax]System.Xml.Serialization.CodeGenerator:Ldc(int):this
- cmp r14d, 3
- jbe G_M59274_IG75
- movsxd rsi, dword ptr [rbx+0x1C]
- mov edi, 0xD1FFAB1E
- test rsi, rdi
- setne sil
- movzx rsi, sil
- mov rdi, r15
- mov rax, 0xD1FFAB1E ; code for System.Xml.Serialization.CodeGenerator:Ldc(ubyte):this
- call [rax]System.Xml.Serialization.CodeGenerator:Ldc(ubyte):this
- jmp G_M59274_IG48
- ;; size=132 bbWeight=0 PerfScore 0.00
-G_M59274_IG74:
+G_M59274_IG72:
mov rax, 0xD1FFAB1E ; code for System.SR:get_UnknownConstantType():System.String
call [rax]System.SR:get_UnknownConstantType():System.String
mov r15, rax
mov rdi, 0xD1FFAB1E ; System.NotSupportedException
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov rdi, r14
mov rax, 0xD1FFAB1E ; code for System.RuntimeType:get_AssemblyQualifiedName():System.String:this
call [rax]System.RuntimeType:get_AssemblyQualifiedName():System.String:this
mov rsi, rax
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.SR:Format(System.String,System.Object):System.String
call [rax]System.SR:Format(System.String,System.Object):System.String
mov rsi, rax
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.NotSupportedException:.ctor(System.String):this
call [rax]System.NotSupportedException:.ctor(System.String):this
mov rdi, rbx
call CORINFO_HELP_THROW
int3
;; size=93 bbWeight=0 PerfScore 0.00
-G_M59274_IG75:
+G_M59274_IG73:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
RWD00 dd G_M59274_IG19 - G_M59274_IG02
dd G_M59274_IG19 - G_M59274_IG02
dd G_M59274_IG19 - G_M59274_IG02
dd G_M59274_IG15 - G_M59274_IG02
- dd G_M59274_IG71 - G_M59274_IG02
+ dd G_M59274_IG70 - G_M59274_IG02
dd G_M59274_IG13 - G_M59274_IG02
dd G_M59274_IG13 - G_M59274_IG02
dd G_M59274_IG13 - G_M59274_IG02
dd G_M59274_IG13 - G_M59274_IG02
- dd G_M59274_IG67 - G_M59274_IG02
- dd G_M59274_IG63 - G_M59274_IG02
- dd G_M59274_IG60 - G_M59274_IG02
- dd G_M59274_IG58 - G_M59274_IG02
- dd G_M59274_IG54 - G_M59274_IG02
- dd G_M59274_IG50 - G_M59274_IG02
+ dd G_M59274_IG66 - G_M59274_IG02
+ dd G_M59274_IG62 - G_M59274_IG02
+ dd G_M59274_IG59 - G_M59274_IG02
+ dd G_M59274_IG57 - G_M59274_IG02
+ dd G_M59274_IG53 - G_M59274_IG02
+ dd G_M59274_IG49 - G_M59274_IG02
dd G_M59274_IG43 - G_M59274_IG02
dd G_M59274_IG37 - G_M59274_IG02
dd G_M59274_IG19 - G_M59274_IG02
dd G_M59274_IG34 - G_M59274_IG02
-; Total bytes of code 2773, prolog size 19, PerfScore 518.79, instruction count 611, allocated bytes for code 2773 (MethodHash=cb621875) for method System.Xml.Serialization.CodeGenerator:Ldc(System.Object):this (FullOpts)
+; Total bytes of code 2632, prolog size 19, PerfScore 520.64, instruction count 586, allocated bytes for code 2632 (MethodHash=cb621875) for method System.Xml.Serialization.CodeGenerator:Ldc(System.Object):this (FullOpts)
; ============================================================ Larger list of diffs: https://gist.github.com/MihuBot/89e2c435c5941ea11c00f1fd88094e0f |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Job completed in 15 minutes 10 seconds (remote runner delay: 42 seconds).
dotnet/runtime#114806
Diffs
Diffs
Artifacts:
The text was updated successfully, but these errors were encountered: