forked from MihaZupan/runtime-utils
-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[JitDiff X64] [EgorBo] Optimize redundant sign extensions in assertprop #881
Comments
Top method regressions117 (4.37 % of base) - Microsoft.VisualBasic.CompilerServices.VBBinder:GetMethodsByName(System.Type,System.Reflection.IReflect,System.String,int):System.Reflection.MethodBase[]:this ; Assembly listing for method Microsoft.VisualBasic.CompilerServices.VBBinder:GetMethodsByName(System.Type,System.Reflection.IReflect,System.String,int):System.Reflection.MethodBase[]:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
; 0 inlinees with PGO data; 28 single block inlinees; 4 inlinees without PGO data
; Final local variable assignments
;
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <Microsoft.VisualBasic.CompilerServices.VBBinder>
; V01 arg1 [V01,T61] ( 3, 2 ) ref -> r14 class-hnd single-def <System.Type>
; V02 arg2 [V02,T60] ( 3, 3 ) ref -> rdx class-hnd single-def <System.Reflection.IReflect>
; V03 arg3 [V03,T59] ( 4, 3 ) ref -> r15 class-hnd single-def <System.String>
; V04 arg4 [V04,T45] ( 5, 9 ) int -> rbx single-def
; V05 loc0 [V05,T63] ( 3, 2 ) ref -> rax class-hnd <System.Reflection.MethodBase[]>
; V06 loc1 [V06,T03] ( 42, 483 ) ref -> r12 class-hnd single-def <System.Reflection.MemberInfo[]>
; V07 loc2 [V07,T58] ( 6, 5 ) ref -> r15 class-hnd exact single-def <System.Reflection.MethodBase[]>
; V08 loc3 [V08,T15] ( 23, 96 ) ref -> [rbp-0x98] class-hnd spill-single-def <System.Reflection.MemberInfo>
;* V09 loc4 [V09,T64] ( 0, 0 ) int -> zero-ref
; V10 loc5 [V10,T09] ( 13, 340 ) ref -> [rbp-0xA0] class-hnd <System.Reflection.MethodInfo>
; V11 loc6 [V11,T26] ( 4, 40 ) ref -> [rbp-0xA8] class-hnd spill-single-def <System.Reflection.PropertyInfo>
; V12 loc7 [V12,T08] ( 20, 344 ) ref -> [rbp-0xB0] class-hnd <System.Type>
; V13 loc8 [V13,T11] ( 22, 320.50) int -> r13 must-init
; V14 loc9 [V14,T47] ( 9, 8.50) int -> r14
; V15 loc10 [V15,T38] ( 3, 17 ) int -> [rbp-0x2C] spill-single-def
; V16 loc11 [V16,T19] ( 14, 82.08) int -> [rbp-0x30]
; V17 loc12 [V17,T35] ( 5, 21 ) int -> [rbp-0x34] spill-single-def
; V18 loc13 [V18,T20] ( 14, 82.08) int -> [rbp-0x38]
; V19 loc14 [V19,T36] ( 5, 21 ) int -> [rbp-0x3C] spill-single-def
; V20 loc15 [V20,T04] ( 5, 396 ) int -> [rbp-0x40]
; V21 loc16 [V21,T00] ( 13,1186.56) int -> [rbp-0x44]
; V22 loc17 [V22,T10] ( 5, 336 ) int -> [rbp-0x48] spill-single-def
; V23 loc18 [V23,T18] ( 14, 84.08) int -> [rbp-0x4C]
; V24 loc19 [V24,T31] ( 5, 25 ) int -> [rbp-0x50] spill-single-def
; V25 loc20 [V25,T57] ( 5, 5.25) int -> r13 single-def
; V26 loc21 [V26,T39] ( 10, 16.54) int -> [rbp-0x54]
;# V27 OutArgs [V27 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V28 tmp1 [V28,T70] ( 2, 0 ) ref -> r12 class-hnd exact "impAppendStmt" <System.String>
; V29 tmp2 [V29,T69] ( 3, 0 ) ref -> r13 class-hnd exact "NewObj constructor temp" <System.ArgumentException>
;* V30 tmp3 [V30 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewArr temp" <System.Reflection.MethodBase[]>
; V31 tmp4 [V31,T48] ( 4, 8 ) ref -> rax class-hnd "Strict ordering of exceptions for Array store" <System.Reflection.MethodBase>
; V32 tmp5 [V32,T55] ( 3, 6 ) int -> rcx "Inline return value spill temp"
;* V33 tmp6 [V33 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V34 tmp7 [V34,T52] ( 3, 6 ) byref -> rcx "Inline stloc first use temp"
;* V35 tmp8 [V35 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.IndexOutOfRangeException>
; V36 tmp9 [V36,T43] ( 3, 12 ) int -> rdi "impAppendStmt"
; V37 tmp10 [V37,T50] ( 2, 8 ) byref -> rdi "Inlining Arg"
; V38 tmp11 [V38,T56] ( 3, 6 ) int -> rcx "Inline return value spill temp"
;* V39 tmp12 [V39 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V40 tmp13 [V40,T53] ( 3, 6 ) byref -> rcx "Inline stloc first use temp"
;* V41 tmp14 [V41 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.IndexOutOfRangeException>
; V42 tmp15 [V42,T44] ( 3, 12 ) int -> rdi "impAppendStmt"
; V43 tmp16 [V43,T51] ( 2, 8 ) byref -> rdi "Inlining Arg"
; V44 tmp17 [V44,T17] ( 3, 96 ) int -> rcx "Inline return value spill temp"
;* V45 tmp18 [V45 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V46 tmp19 [V46,T16] ( 3, 96 ) byref -> rcx "Inline stloc first use temp"
;* V47 tmp20 [V47 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.IndexOutOfRangeException>
; V48 tmp21 [V48,T12] ( 3, 192 ) int -> rdi "impAppendStmt"
; V49 tmp22 [V49,T14] ( 2, 128 ) byref -> rdi "Inlining Arg"
; V50 tmp23 [V50,T49] ( 3, 8 ) int -> rcx "Inline return value spill temp"
;* V51 tmp24 [V51 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V52 tmp25 [V52,T54] ( 3, 6 ) byref -> rcx "Inline stloc first use temp"
;* V53 tmp26 [V53 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.IndexOutOfRangeException>
; V54 tmp27 [V54,T37] ( 3, 20 ) int -> rdi "impAppendStmt"
; V55 tmp28 [V55,T40] ( 2, 16 ) byref -> rdi "Inlining Arg"
;* V56 tmp29 [V56 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
; V57 tmp30 [V57,T22] ( 6, 48 ) ref -> rdi "argument with side effect"
; V58 tmp31 [V58,T28] ( 4, 32 ) ref -> rax "argument with side effect"
; V59 tmp32 [V59,T71] ( 2, 0 ) ref -> rdx "argument with side effect"
; V60 tmp33 [V60,T72] ( 2, 0 ) ref -> rsi "argument with side effect"
;* V61 tmp34 [V61 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
; V62 tmp35 [V62,T01] ( 6, 768 ) ref -> rdi "argument with side effect"
; V63 tmp36 [V63,T02] ( 4, 512 ) ref -> rax "argument with side effect"
; V64 tmp37 [V64,T42] ( 3, 12 ) ref -> rax "argument with side effect"
;* V65 tmp38 [V65 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
; V66 tmp39 [V66,T23] ( 6, 48 ) ref -> rdi "argument with side effect"
; V67 tmp40 [V67,T29] ( 4, 32 ) ref -> rax "argument with side effect"
;* V68 tmp41 [V68 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
; V69 tmp42 [V69,T24] ( 6, 48 ) ref -> rdi "argument with side effect"
; V70 tmp43 [V70,T30] ( 4, 32 ) ref -> rax "argument with side effect"
; V71 cse0 [V71,T62] ( 3, 3.84) ref -> rdi "CSE #29: conservative"
; V72 cse1 [V72,T65] ( 3, 0.24) ref -> rdi "CSE #08: conservative"
; V73 cse2 [V73,T66] ( 3, 0.24) ref -> rdi "CSE #19: conservative"
; V74 cse3 [V74,T67] ( 3, 0.24) ref -> rdi "CSE #37: conservative"
; V75 cse4 [V75,T68] ( 3, 0.10) ref -> rsi "CSE #47: conservative"
; V76 cse5 [V76,T05] ( 3, 380.16) ref -> rdi "CSE #26: aggressive"
; V77 cse6 [V77,T13] ( 5, 160 ) long -> [rbp-0x60] spill-single-def "CSE #24: moderate"
; V78 cse7 [V78,T21] ( 9, 54 ) long -> [rbp-0x68] spill-single-def "CSE #02: moderate"
; V79 cse8 [V79,T25] ( 5, 48 ) long -> [rbp-0x70] spill-single-def hoist "CSE #22: moderate"
; V80 cse9 [V80,T41] ( 6, 12 ) long -> [rbp-0x78] spill-single-def "CSE #12: conservative"
; V81 cse10 [V81,T32] ( 3, 23.76) ref -> rdi "CSE #05: moderate"
; V82 cse11 [V82,T33] ( 3, 23.76) ref -> rdi "CSE #16: moderate"
; V83 cse12 [V83,T34] ( 3, 23.76) ref -> rdi "CSE #34: moderate"
; V84 cse13 [V84,T46] ( 3, 9.90) ref -> rsi "CSE #44: conservative"
; V85 cse14 [V85,T27] ( 16, 34.31) int -> [rbp-0x7C] multi-def "CSE #03: moderate"
; V86 cse15 [V86,T06] ( 3, 380.16) long -> [rbp-0x88] spill-single-def "CSE #25: aggressive"
; V87 rat0 [V87,T07] ( 16, 368.50) long -> [rbp-0x90] "Widened IV V09"
;
; Lcl frame size = 136
G_M42178_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 136
lea rbp, [rsp+0xB0]
mov r14, rsi
mov r15, rcx
mov ebx, r8d
xor r13d, r13d
;; size=37 bbWeight=1 PerfScore 7.75
G_M42178_IG02:
mov rdi, rdx
mov edx, ebx
mov rsi, r15
mov r11, 0xD1FFAB1E ; code for System.Reflection.IReflect:GetMember(System.String,int):System.Reflection.MemberInfo[]:this
call [r11]System.Reflection.IReflect:GetMember(System.String,int):System.Reflection.MemberInfo[]:this
mov rdi, rax
mov rax, 0xD1FFAB1E ; code for Microsoft.VisualBasic.CompilerServices.LateBinding:GetNonGenericMembers(System.Reflection.MemberInfo[]):System.Reflection.MemberInfo[]
call [rax]Microsoft.VisualBasic.CompilerServices.LateBinding:GetNonGenericMembers(System.Reflection.MemberInfo[]):System.Reflection.MemberInfo[]
mov r12, rax
test r12, r12
- je G_M42178_IG105
+ je G_M42178_IG114
;; size=48 bbWeight=1 PerfScore 9.00
G_M42178_IG03:
mov rdi, r12
xor esi, esi
mov rax, 0xD1FFAB1E ; code for System.Array:GetUpperBound(int):int:this
call [rax]System.Array:GetUpperBound(int):int:this
mov dword ptr [rbp-0x2C], eax
xor ecx, ecx
test eax, eax
- jl G_M42178_IG71
+ jl G_M42178_IG80
;; size=30 bbWeight=0.50 PerfScore 3.12
G_M42178_IG04:
mov edx, dword ptr [r12+0x08]
mov dword ptr [rbp-0x7C], edx
cmp ecx, edx
- jae G_M42178_IG108
+ jae G_M42178_IG117
mov qword ptr [rbp-0x90], rcx
mov rsi, gword ptr [r12+8*rcx+0x10]
mov gword ptr [rbp-0x98], rsi
test rsi, rsi
- je G_M42178_IG70
+ je G_M42178_IG79
;; size=44 bbWeight=4 PerfScore 38.00
G_M42178_IG05:
mov rdi, rsi
mov r8, qword ptr [rsi]
mov r8, qword ptr [r8+0x40]
mov qword ptr [rbp-0x68], r8
call [r8+0x28]System.Reflection.MemberInfo:get_MemberType():int:this
cmp eax, 4
- je G_M42178_IG84
+ je G_M42178_IG93
mov rdi, gword ptr [rbp-0x98]
mov rax, qword ptr [rbp-0x68]
call [rax+0x28]System.Reflection.MemberInfo:get_MemberType():int:this
cmp eax, 8
- je G_M42178_IG57
+ je G_M42178_IG66
;; size=50 bbWeight=2 PerfScore 31.50
G_M42178_IG06:
mov rdi, gword ptr [rbp-0x98]
mov rax, qword ptr [rbp-0x68]
call [rax+0x28]System.Reflection.MemberInfo:get_MemberType():int:this
cmp eax, 16
je G_M42178_IG26
mov rdi, gword ptr [rbp-0x98]
mov rax, qword ptr [rbp-0x68]
call [rax+0x28]System.Reflection.MemberInfo:get_MemberType():int:this
cmp eax, 128
- jne G_M42178_IG70
+ jne G_M42178_IG79
mov rdi, gword ptr [rbp-0x98]
mov rax, qword ptr [rbp-0x68]
call [rax+0x38]System.Reflection.MemberInfo:get_DeclaringType():System.Type:this
mov gword ptr [rbp-0xB0], rax
mov rdi, qword ptr [r12]
mov edi, dword ptr [rdi+0x04]
add edi, -24
shr edi, 3
je SHORT G_M42178_IG08
;; size=84 bbWeight=4 PerfScore 97.00
G_M42178_IG07:
lea rcx, bword ptr [r12+0x10]
mov edx, dword ptr [rcx]
movsxd rdi, edi
mov edi, dword ptr [rcx+4*rdi]
lea ecx, [rdx+rdi-0x01]
jmp SHORT G_M42178_IG09
;; size=19 bbWeight=2 PerfScore 15.50
G_M42178_IG08:
mov ecx, dword ptr [r12+0x08]
test ecx, ecx
- jl G_M42178_IG109
+ jl G_M42178_IG118
dec ecx
;; size=15 bbWeight=2 PerfScore 7.00
G_M42178_IG09:
mov dword ptr [rbp-0x50], ecx
xor edx, edx
test ecx, ecx
jl G_M42178_IG18
;; size=13 bbWeight=4 PerfScore 10.00
G_M42178_IG10:
cmp dword ptr [rbp-0x7C], ecx
jle G_M42178_IG23
;; size=9 bbWeight=1 PerfScore 3.00
G_M42178_IG11:
cmp dword ptr [rbp-0x90], edx
je SHORT G_M42178_IG17
;; size=8 bbWeight=15.84 PerfScore 47.52
G_M42178_IG12:
mov dword ptr [rbp-0x4C], edx
mov edi, edx
mov rdi, gword ptr [r12+8*rdi+0x10]
test rdi, rdi
jne SHORT G_M42178_IG14
;; size=15 bbWeight=7.92 PerfScore 35.64
G_M42178_IG13:
mov edx, dword ptr [rbp-0x4C]
jmp SHORT G_M42178_IG17
;; size=5 bbWeight=3.96 PerfScore 11.88
G_M42178_IG14:
mov r9, qword ptr [rdi]
mov r9, qword ptr [r9+0x40]
call [r9+0x38]System.Reflection.MemberInfo:get_DeclaringType():System.Type:this
mov rsi, rax
mov rdi, gword ptr [rbp-0xB0]
mov gword ptr [rbp-0xB0], rdi
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0xB0]
call [rax+0x18]System.Type:IsSubclassOf(System.Type):ubyte:this
test eax, eax
jne SHORT G_M42178_IG16
;; size=45 bbWeight=7.92 PerfScore 138.60
G_M42178_IG15:
mov edx, dword ptr [rbp-0x4C]
jmp SHORT G_M42178_IG17
;; size=5 bbWeight=3.96 PerfScore 11.88
G_M42178_IG16:
mov edi, dword ptr [rbp-0x4C]
mov eax, edi
xor rcx, rcx
mov gword ptr [r12+8*rax+0x10], rcx
add r13d, 1
- jo G_M42178_IG109
+ jo G_M42178_IG118
mov edx, edi
;; size=24 bbWeight=7.92 PerfScore 31.68
G_M42178_IG17:
add edx, 1
- jo G_M42178_IG109
+ jo G_M42178_IG118
cmp edx, dword ptr [rbp-0x50]
jle SHORT G_M42178_IG11
;; size=14 bbWeight=15.84 PerfScore 67.32
G_M42178_IG18:
mov esi, dword ptr [rbp-0x7C]
sub esi, 1
- jo G_M42178_IG109
+ jo G_M42178_IG118
cmp esi, r13d
- je G_M42178_IG107
+ je G_M42178_IG116
xor rsi, rsi
mov r8, qword ptr [rbp-0x90]
mov gword ptr [r12+8*r8+0x10], rsi
add r13d, 1
- jo G_M42178_IG109
- jmp G_M42178_IG70
+ jo G_M42178_IG118
+ jmp G_M42178_IG79
;; size=50 bbWeight=4 PerfScore 36.00
G_M42178_IG19:
mov r9, qword ptr [rdi]
mov r9, qword ptr [r9+0x40]
call [r9+0x38]System.Reflection.MemberInfo:get_DeclaringType():System.Type:this
mov rsi, rax
mov rdi, gword ptr [rbp-0xB0]
mov gword ptr [rbp-0xB0], rdi
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0xB0]
call [rax+0x18]System.Type:IsSubclassOf(System.Type):ubyte:this
test eax, eax
jne SHORT G_M42178_IG21
;; size=45 bbWeight=0.08 PerfScore 1.40
G_M42178_IG20:
mov edx, dword ptr [rbp-0x4C]
jmp SHORT G_M42178_IG22
;; size=5 bbWeight=0.04 PerfScore 0.12
G_M42178_IG21:
mov esi, dword ptr [rbp-0x4C]
mov edi, esi
xor rax, rax
mov gword ptr [r12+8*rdi+0x10], rax
add r13d, 1
- jo G_M42178_IG109
+ jo G_M42178_IG118
mov edx, esi
;; size=24 bbWeight=0.08 PerfScore 0.32
G_M42178_IG22:
add edx, 1
- jo G_M42178_IG109
+ jo G_M42178_IG118
mov ecx, dword ptr [rbp-0x50]
cmp edx, ecx
jg G_M42178_IG18
;; size=20 bbWeight=0.16 PerfScore 0.56
G_M42178_IG23:
cmp dword ptr [rbp-0x90], edx
je SHORT G_M42178_IG22
;; size=8 bbWeight=0.16 PerfScore 0.48
G_M42178_IG24:
cmp edx, dword ptr [rbp-0x7C]
- jae G_M42178_IG108
+ jae G_M42178_IG117
mov dword ptr [rbp-0x4C], edx
mov edi, edx
mov rdi, gword ptr [r12+8*rdi+0x10]
test rdi, rdi
jne SHORT G_M42178_IG19
;; size=24 bbWeight=0.08 PerfScore 0.60
G_M42178_IG25:
mov edx, dword ptr [rbp-0x4C]
jmp SHORT G_M42178_IG22
;; size=5 bbWeight=0.04 PerfScore 0.12
G_M42178_IG26:
mov rsi, gword ptr [rbp-0x98]
mov rdi, 0xD1FFAB1E ; System.Reflection.PropertyInfo
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS
call [rax]CORINFO_HELP_CHKCASTCLASS
mov gword ptr [rbp-0xA8], rax
mov dword ptr [rbp-0x40], 1
mov rdx, gword ptr [rbp-0x98]
mov rdi, qword ptr [rdx]
mov r8, qword ptr [rdi+0x58]
mov qword ptr [rbp-0x70], r8
;; size=61 bbWeight=4 PerfScore 50.00
G_M42178_IG27:
mov rdi, rdx
xor esi, esi
call [r8+0x08]System.Reflection.PropertyInfo:GetGetMethod(ubyte):System.Reflection.MethodInfo:this
;; size=9 bbWeight=32 PerfScore 112.00
G_M42178_IG28:
test rax, rax
- je G_M42178_IG41
- ;; size=9 bbWeight=128 PerfScore 160.00
+ jne SHORT G_M42178_IG30
+ ;; size=5 bbWeight=128 PerfScore 160.00
G_M42178_IG29:
+ mov r8, qword ptr [rbp-0x90]
+ jmp G_M42178_IG49
+ ;; size=12 bbWeight=64 PerfScore 192.00
+G_M42178_IG30:
mov rdi, rax
mov gword ptr [rbp-0xA0], rax
mov rcx, qword ptr [rax]
mov rcx, qword ptr [rcx+0x50]
mov qword ptr [rbp-0x60], rcx
call [rcx+0x20]System.Reflection.MethodBase:get_Attributes():int:this
test al, 128
- jne G_M42178_IG41
+ je SHORT G_M42178_IG32
+ ;; size=28 bbWeight=32 PerfScore 336.00
+G_M42178_IG31:
+ mov r8, qword ptr [rbp-0x90]
+ jmp G_M42178_IG49
+ ;; size=12 bbWeight=16 PerfScore 48.00
+G_M42178_IG32:
mov rdi, gword ptr [rbp-0xA0]
mov rax, qword ptr [rbp-0x60]
call [rax+0x20]System.Reflection.MethodBase:get_Attributes():int:this
test al, 64
- je SHORT G_M42178_IG30
+ je SHORT G_M42178_IG36
mov rdi, gword ptr [rbp-0xA0]
mov rax, qword ptr [rbp-0x60]
call [rax+0x20]System.Reflection.MethodBase:get_Attributes():int:this
test al, 64
- je G_M42178_IG41
+ jne SHORT G_M42178_IG34
+ ;; size=36 bbWeight=32 PerfScore 400.00
+G_M42178_IG33:
+ mov r8, qword ptr [rbp-0x90]
+ jmp G_M42178_IG49
+ ;; size=12 bbWeight=16 PerfScore 48.00
+G_M42178_IG34:
mov rdi, gword ptr [rbp-0xA0]
mov rax, qword ptr [rbp-0x60]
call [rax+0x20]System.Reflection.MethodBase:get_Attributes():int:this
test eax, 256
- je G_M42178_IG41
- ;; size=97 bbWeight=32 PerfScore 936.00
-G_M42178_IG30:
+ jne SHORT G_M42178_IG36
+ ;; size=21 bbWeight=32 PerfScore 200.00
+G_M42178_IG35:
+ mov r8, qword ptr [rbp-0x90]
+ jmp G_M42178_IG49
+ ;; size=12 bbWeight=16 PerfScore 48.00
+G_M42178_IG36:
mov rdi, gword ptr [rbp-0xA8]
mov rax, qword ptr [rbp-0x68]
call [rax+0x38]System.Reflection.MemberInfo:get_DeclaringType():System.Type:this
mov gword ptr [rbp-0xB0], rax
mov rdi, qword ptr [r12]
mov edi, dword ptr [rdi+0x04]
add edi, -24
shr edi, 3
- je SHORT G_M42178_IG31
+ je SHORT G_M42178_IG37
lea rcx, bword ptr [r12+0x10]
mov edx, dword ptr [rcx]
movsxd rdi, edi
mov edi, dword ptr [rcx+4*rdi]
lea ecx, [rdx+rdi-0x01]
- jmp SHORT G_M42178_IG32
+ jmp SHORT G_M42178_IG38
;; size=55 bbWeight=32 PerfScore 624.00
-G_M42178_IG31:
+G_M42178_IG37:
mov ecx, dword ptr [r12+0x08]
test ecx, ecx
- jl G_M42178_IG109
+ jl G_M42178_IG118
dec ecx
;; size=15 bbWeight=32 PerfScore 112.00
-G_M42178_IG32:
+G_M42178_IG38:
mov dword ptr [rbp-0x48], ecx
xor edx, edx
test ecx, ecx
- jl G_M42178_IG41
- ;; size=13 bbWeight=32 PerfScore 80.00
-G_M42178_IG33:
+ jge SHORT G_M42178_IG40
+ ;; size=9 bbWeight=32 PerfScore 80.00
+G_M42178_IG39:
+ mov r8, qword ptr [rbp-0x90]
+ jmp G_M42178_IG49
+ ;; size=12 bbWeight=16 PerfScore 48.00
+G_M42178_IG40:
cmp dword ptr [rbp-0x7C], ecx
- jle G_M42178_IG48
+ jle G_M42178_IG57
;; size=9 bbWeight=16 PerfScore 48.00
-G_M42178_IG34:
+G_M42178_IG41:
cmp dword ptr [rbp-0x90], edx
- je SHORT G_M42178_IG40
+ je SHORT G_M42178_IG47
;; size=8 bbWeight=253.44 PerfScore 760.32
-G_M42178_IG35:
+G_M42178_IG42:
mov dword ptr [rbp-0x44], edx
mov r9d, edx
mov qword ptr [rbp-0x88], r9
mov rdi, gword ptr [r12+8*r9+0x10]
test rdi, rdi
- jne SHORT G_M42178_IG37
+ jne SHORT G_M42178_IG44
;; size=23 bbWeight=126.72 PerfScore 696.96
-G_M42178_IG36:
+G_M42178_IG43:
mov edx, dword ptr [rbp-0x44]
- jmp SHORT G_M42178_IG40
+ jmp SHORT G_M42178_IG47
;; size=5 bbWeight=63.36 PerfScore 190.08
-G_M42178_IG37:
+G_M42178_IG44:
mov r10, qword ptr [rdi]
mov r10, qword ptr [r10+0x40]
call [r10+0x38]System.Reflection.MemberInfo:get_DeclaringType():System.Type:this
mov rsi, rax
mov rdi, gword ptr [rbp-0xB0]
mov gword ptr [rbp-0xB0], rdi
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0xB0]
call [rax+0x18]System.Type:IsSubclassOf(System.Type):ubyte:this
test eax, eax
- jne SHORT G_M42178_IG39
+ jne SHORT G_M42178_IG46
;; size=45 bbWeight=126.72 PerfScore 2217.60
-G_M42178_IG38:
+G_M42178_IG45:
mov edx, dword ptr [rbp-0x44]
- jmp SHORT G_M42178_IG40
+ jmp SHORT G_M42178_IG47
;; size=5 bbWeight=63.36 PerfScore 190.08
-G_M42178_IG39:
+G_M42178_IG46:
xor rdi, rdi
mov r9, qword ptr [rbp-0x88]
mov gword ptr [r12+8*r9+0x10], rdi
add r13d, 1
- jo G_M42178_IG109
+ jo G_M42178_IG118
mov edx, dword ptr [rbp-0x44]
;; size=27 bbWeight=126.72 PerfScore 570.24
-G_M42178_IG40:
+G_M42178_IG47:
add edx, 1
- jo G_M42178_IG109
+ jo G_M42178_IG118
cmp edx, dword ptr [rbp-0x48]
- jle SHORT G_M42178_IG34
+ jle SHORT G_M42178_IG41
;; size=14 bbWeight=253.44 PerfScore 1077.12
-G_M42178_IG41:
+G_M42178_IG48:
+ mov r8, qword ptr [rbp-0x90]
+ ;; size=7 bbWeight=126.72 PerfScore 126.72
+G_M42178_IG49:
mov ecx, dword ptr [rbp-0x40]
add ecx, 1
- jo G_M42178_IG109
+ jo G_M42178_IG118
cmp ecx, 2
- jle G_M42178_IG51
+ jle G_M42178_IG60
;; size=21 bbWeight=128 PerfScore 448.00
-G_M42178_IG42:
+G_M42178_IG50:
test ebx, 0x1000
- je G_M42178_IG52
+ je G_M42178_IG61
;; size=12 bbWeight=4 PerfScore 5.00
-G_M42178_IG43:
+G_M42178_IG51:
+ mov qword ptr [rbp-0x90], r8
mov rdi, gword ptr [rbp-0xA8]
xor esi, esi
mov rcx, qword ptr [rbp-0x70]
call [rcx+0x08]System.Reflection.PropertyInfo:GetGetMethod(ubyte):System.Reflection.MethodInfo:this
- jmp G_M42178_IG56
- ;; size=21 bbWeight=2 PerfScore 14.50
-G_M42178_IG44:
+ jmp G_M42178_IG65
+ ;; size=28 bbWeight=2 PerfScore 16.50
+G_M42178_IG52:
+ mov qword ptr [rbp-0x90], r8
mov r9, qword ptr [rdi]
mov r9, qword ptr [r9+0x40]
call [r9+0x38]System.Reflection.MemberInfo:get_DeclaringType():System.Type:this
mov rsi, rax
mov rdi, gword ptr [rbp-0xB0]
mov gword ptr [rbp-0xB0], rdi
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0xB0]
call [rax+0x18]System.Type:IsSubclassOf(System.Type):ubyte:this
test eax, eax
- jne SHORT G_M42178_IG46
- ;; size=45 bbWeight=1.28 PerfScore 22.40
-G_M42178_IG45:
+ jne SHORT G_M42178_IG54
+ ;; size=52 bbWeight=1.28 PerfScore 23.68
+G_M42178_IG53:
mov edx, dword ptr [rbp-0x44]
- jmp SHORT G_M42178_IG47
- ;; size=5 bbWeight=0.64 PerfScore 1.92
-G_M42178_IG46:
+ mov r8, qword ptr [rbp-0x90]
+ jmp SHORT G_M42178_IG55
+ ;; size=12 bbWeight=0.64 PerfScore 2.56
+G_M42178_IG54:
mov edi, dword ptr [rbp-0x44]
mov esi, edi
xor rax, rax
mov gword ptr [r12+8*rsi+0x10], rax
add r13d, 1
- jo G_M42178_IG109
+ jo G_M42178_IG118
mov edx, edi
- ;; size=24 bbWeight=1.28 PerfScore 5.12
-G_M42178_IG47:
+ mov r8, qword ptr [rbp-0x90]
+ ;; size=31 bbWeight=1.28 PerfScore 6.40
+G_M42178_IG55:
add edx, 1
- jo G_M42178_IG109
+ jo G_M42178_IG118
mov ecx, dword ptr [rbp-0x48]
cmp edx, ecx
- jg G_M42178_IG41
+ jg G_M42178_IG49
;; size=20 bbWeight=2.56 PerfScore 8.96
-G_M42178_IG48:
+G_M42178_IG56:
+ mov qword ptr [rbp-0x90], r8
+ ;; size=7 bbWeight=1.28 PerfScore 1.28
+G_M42178_IG57:
cmp dword ptr [rbp-0x90], edx
- je SHORT G_M42178_IG47
- ;; size=8 bbWeight=2.56 PerfScore 7.68
-G_M42178_IG49:
+ mov r8, qword ptr [rbp-0x90]
+ je SHORT G_M42178_IG55
+ ;; size=15 bbWeight=2.56 PerfScore 10.24
+G_M42178_IG58:
cmp edx, dword ptr [rbp-0x7C]
- jae G_M42178_IG108
+ jae G_M42178_IG117
mov dword ptr [rbp-0x44], edx
mov edi, edx
mov rdi, gword ptr [r12+8*rdi+0x10]
test rdi, rdi
- jne SHORT G_M42178_IG44
- ;; size=24 bbWeight=1.28 PerfScore 9.60
-G_M42178_IG50:
+ jne G_M42178_IG52
+ ;; size=28 bbWeight=1.28 PerfScore 9.60
+G_M42178_IG59:
mov edx, dword ptr [rbp-0x44]
- jmp SHORT G_M42178_IG47
+ jmp SHORT G_M42178_IG55
;; size=5 bbWeight=0.64 PerfScore 1.92
-G_M42178_IG51:
+G_M42178_IG60:
mov dword ptr [rbp-0x40], ecx
cmp ecx, 1
+ mov qword ptr [rbp-0x90], r8
mov rdx, gword ptr [rbp-0x98]
mov r8, qword ptr [rbp-0x70]
je G_M42178_IG27
mov rdi, rdx
xor esi, esi
call [r8+0x18]System.Reflection.PropertyInfo:GetSetMethod(ubyte):System.Reflection.MethodInfo:this
jmp G_M42178_IG28
- ;; size=37 bbWeight=8 PerfScore 78.00
-G_M42178_IG52:
+ ;; size=44 bbWeight=8 PerfScore 86.00
+G_M42178_IG61:
test ebx, 0x2000
- jne SHORT G_M42178_IG55
+ jne SHORT G_M42178_IG64
xor rax, rax
;; size=10 bbWeight=2 PerfScore 3.00
-G_M42178_IG53:
+G_M42178_IG62:
add r13d, 1
- jo G_M42178_IG109
+ jo G_M42178_IG118
;; size=10 bbWeight=2 PerfScore 2.50
-G_M42178_IG54:
- movsxd rsi, dword ptr [rbp-0x90]
+G_M42178_IG63:
+ mov qword ptr [rbp-0x90], r8
+ mov rsi, r8
mov rdi, r12
mov rdx, rax
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
call [rax]CORINFO_HELP_ARRADDR_ST
- jmp G_M42178_IG70
- ;; size=30 bbWeight=4 PerfScore 35.00
-G_M42178_IG55:
+ jmp G_M42178_IG79
+ ;; size=33 bbWeight=4 PerfScore 28.00
+G_M42178_IG64:
+ mov qword ptr [rbp-0x90], r8
mov rdi, gword ptr [rbp-0xA8]
xor esi, esi
mov rcx, qword ptr [rbp-0x70]
call [rcx+0x18]System.Reflection.PropertyInfo:GetSetMethod(ubyte):System.Reflection.MethodInfo:this
- ;; size=16 bbWeight=2 PerfScore 10.50
-G_M42178_IG56:
+ ;; size=23 bbWeight=2 PerfScore 12.50
+G_M42178_IG65:
test rax, rax
- jne SHORT G_M42178_IG54
- jmp SHORT G_M42178_IG53
- ;; size=7 bbWeight=2 PerfScore 6.50
-G_M42178_IG57:
+ mov r8, qword ptr [rbp-0x90]
+ jne SHORT G_M42178_IG63
+ jmp SHORT G_M42178_IG62
+ ;; size=14 bbWeight=2 PerfScore 8.50
+G_M42178_IG66:
mov rsi, gword ptr [rbp-0x98]
mov rdi, 0xD1FFAB1E ; System.Reflection.MethodInfo
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS
call [rax]CORINFO_HELP_CHKCASTCLASS
mov rdi, gword ptr [rbp-0x98]
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x50]
mov qword ptr [rbp-0x78], rax
call [rax+0x20]System.Reflection.MethodBase:get_Attributes():int:this
test al, 128
- jne G_M42178_IG70
+ jne G_M42178_IG79
mov rdi, gword ptr [rbp-0x98]
mov rax, qword ptr [rbp-0x78]
call [rax+0x20]System.Reflection.MethodBase:get_Attributes():int:this
test al, 64
- je SHORT G_M42178_IG59
+ je SHORT G_M42178_IG68
mov rdi, gword ptr [rbp-0x98]
mov rax, qword ptr [rbp-0x78]
call [rax+0x20]System.Reflection.MethodBase:get_Attributes():int:this
test al, 64
- je SHORT G_M42178_IG58
+ je SHORT G_M42178_IG67
mov rdi, gword ptr [rbp-0x98]
mov rax, qword ptr [rbp-0x78]
call [rax+0x20]System.Reflection.MethodBase:get_Attributes():int:this
test eax, 256
- jne SHORT G_M42178_IG59
+ jne SHORT G_M42178_IG68
;; size=115 bbWeight=2 PerfScore 67.00
-G_M42178_IG58:
+G_M42178_IG67:
mov rdi, gword ptr [rbp-0x98]
mov rax, qword ptr [rbp-0x78]
call [rax+0x20]System.Reflection.MethodBase:get_Attributes():int:this
test al, 64
- je G_M42178_IG70
+ je G_M42178_IG79
mov rdi, gword ptr [rbp-0x98]
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x68]
call [rax]System.Reflection.MethodInfo:GetBaseDefinition():System.Reflection.MethodInfo:this
mov rdi, rax
mov rax, qword ptr [rax]
mov rax, qword ptr [rax+0x50]
call [rax+0x20]System.Reflection.MethodBase:get_Attributes():int:this
test eax, 256
- je G_M42178_IG70
+ je G_M42178_IG79
;; size=62 bbWeight=2 PerfScore 45.50
-G_M42178_IG59:
+G_M42178_IG68:
mov rdi, gword ptr [rbp-0x98]
mov rax, qword ptr [rbp-0x68]
call [rax+0x38]System.Reflection.MemberInfo:get_DeclaringType():System.Type:this
mov gword ptr [rbp-0xB0], rax
mov rdi, qword ptr [r12]
mov edi, dword ptr [rdi+0x04]
add edi, -24
shr edi, 3
- je SHORT G_M42178_IG60
+ je SHORT G_M42178_IG69
lea rcx, bword ptr [r12+0x10]
mov edx, dword ptr [rcx]
movsxd rdi, edi
mov edi, dword ptr [rcx+4*rdi]
lea ecx, [rdx+rdi-0x01]
- jmp SHORT G_M42178_IG61
+ jmp SHORT G_M42178_IG70
;; size=55 bbWeight=2 PerfScore 39.00
-G_M42178_IG60:
+G_M42178_IG69:
mov ecx, dword ptr [r12+0x08]
test ecx, ecx
- jl G_M42178_IG109
+ jl G_M42178_IG118
dec ecx
;; size=15 bbWeight=2 PerfScore 7.00
-G_M42178_IG61:
+G_M42178_IG70:
mov dword ptr [rbp-0x3C], ecx
xor edx, edx
test ecx, ecx
- jl G_M42178_IG70
+ jl G_M42178_IG79
;; size=13 bbWeight=2 PerfScore 5.00
-G_M42178_IG62:
+G_M42178_IG71:
mov esi, dword ptr [rbp-0x7C]
cmp esi, ecx
- jle G_M42178_IG81
+ jle G_M42178_IG90
;; size=11 bbWeight=1 PerfScore 2.25
-G_M42178_IG63:
+G_M42178_IG72:
cmp dword ptr [rbp-0x90], edx
- je SHORT G_M42178_IG69
+ je SHORT G_M42178_IG78
;; size=8 bbWeight=15.84 PerfScore 47.52
-G_M42178_IG64:
+G_M42178_IG73:
mov dword ptr [rbp-0x38], edx
mov edi, edx
mov rdi, gword ptr [r12+8*rdi+0x10]
test rdi, rdi
- jne SHORT G_M42178_IG66
+ jne SHORT G_M42178_IG75
;; size=15 bbWeight=7.92 PerfScore 35.64
-G_M42178_IG65:
+G_M42178_IG74:
mov edx, dword ptr [rbp-0x38]
- jmp SHORT G_M42178_IG69
+ jmp SHORT G_M42178_IG78
;; size=5 bbWeight=3.96 PerfScore 11.88
-G_M42178_IG66:
+G_M42178_IG75:
mov rsi, qword ptr [rdi]
mov rsi, qword ptr [rsi+0x40]
call [rsi+0x38]System.Reflection.MemberInfo:get_DeclaringType():System.Type:this
mov rsi, rax
mov rdi, gword ptr [rbp-0xB0]
mov gword ptr [rbp-0xB0], rdi
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0xB0]
call [rax+0x18]System.Type:IsSubclassOf(System.Type):ubyte:this
test eax, eax
- jne SHORT G_M42178_IG68
+ jne SHORT G_M42178_IG77
;; size=44 bbWeight=7.92 PerfScore 138.60
-G_M42178_IG67:
+G_M42178_IG76:
mov edx, dword ptr [rbp-0x38]
- jmp SHORT G_M42178_IG69
+ jmp SHORT G_M42178_IG78
;; size=5 bbWeight=3.96 PerfScore 11.88
-G_M42178_IG68:
+G_M42178_IG77:
mov edi, dword ptr [rbp-0x38]
mov eax, edi
xor rcx, rcx
mov gword ptr [r12+8*rax+0x10], rcx
add r13d, 1
- jo G_M42178_IG109
+ jo G_M42178_IG118
mov edx, edi
;; size=24 bbWeight=7.92 PerfScore 31.68
-G_M42178_IG69:
+G_M42178_IG78:
add edx, 1
- jo G_M42178_IG109
+ jo G_M42178_IG118
cmp edx, dword ptr [rbp-0x3C]
- jle SHORT G_M42178_IG63
+ jle SHORT G_M42178_IG72
;; size=14 bbWeight=15.84 PerfScore 67.32
-G_M42178_IG70:
+G_M42178_IG79:
mov r8, qword ptr [rbp-0x90]
add r8d, 1
- jo G_M42178_IG109
+ jo G_M42178_IG118
mov eax, dword ptr [rbp-0x2C]
cmp r8d, eax
mov rcx, r8
jle G_M42178_IG04
;; size=32 bbWeight=16 PerfScore 76.00
-G_M42178_IG71:
+G_M42178_IG80:
mov esi, dword ptr [r12+0x08]
mov ebx, esi
mov esi, ebx
sub esi, r13d
- jo G_M42178_IG109
+ jo G_M42178_IG118
sub esi, 1
- jo G_M42178_IG109
+ jo G_M42178_IG118
add esi, 1
- jo G_M42178_IG109
+ jo G_M42178_IG118
movsxd rsi, esi
mov rdi, 0xD1FFAB1E ; System.Reflection.MethodBase[]
call CORINFO_HELP_NEWARR_1_OBJ
mov r15, rax
xor r14d, r14d
mov r13d, ebx
sub r13d, 1
- jo G_M42178_IG109
+ jo G_M42178_IG118
xor eax, eax
test r13d, r13d
- jl SHORT G_M42178_IG76
+ jl SHORT G_M42178_IG85
;; size=80 bbWeight=0.50 PerfScore 5.62
-G_M42178_IG72:
+G_M42178_IG81:
cmp ebx, r13d
- jle G_M42178_IG102
+ jle G_M42178_IG111
;; size=9 bbWeight=0.25 PerfScore 0.31
-G_M42178_IG73:
+G_M42178_IG82:
mov dword ptr [rbp-0x54], eax
mov esi, eax
mov rsi, gword ptr [r12+8*rsi+0x10]
test rsi, rsi
- je SHORT G_M42178_IG75
+ je SHORT G_M42178_IG84
;; size=15 bbWeight=3.96 PerfScore 17.82
-G_M42178_IG74:
+G_M42178_IG83:
mov rdi, 0xD1FFAB1E ; System.Reflection.MethodBase
mov rcx, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS
call [rcx]CORINFO_HELP_CHKCASTCLASS
cmp r14d, dword ptr [r15+0x08]
- jae G_M42178_IG108
+ jae G_M42178_IG117
mov edi, r14d
lea rdi, bword ptr [r15+8*rdi+0x10]
mov rsi, rax
call CORINFO_HELP_ASSIGN_REF
add r14d, 1
- jo G_M42178_IG109
+ jo G_M42178_IG118
;; size=58 bbWeight=1.98 PerfScore 22.28
-G_M42178_IG75:
+G_M42178_IG84:
mov eax, dword ptr [rbp-0x54]
add eax, 1
- jo G_M42178_IG109
+ jo G_M42178_IG118
cmp eax, r13d
- jle SHORT G_M42178_IG73
+ jle SHORT G_M42178_IG82
;; size=17 bbWeight=3.96 PerfScore 13.86
-G_M42178_IG76:
+G_M42178_IG85:
mov rax, r15
- jmp G_M42178_IG106
+ jmp G_M42178_IG115
;; size=8 bbWeight=0.50 PerfScore 1.12
-G_M42178_IG77:
+G_M42178_IG86:
mov r9, qword ptr [rdi]
mov r9, qword ptr [r9+0x40]
call [r9+0x38]System.Reflection.MemberInfo:get_DeclaringType():System.Type:this
mov rsi, rax
mov rdi, gword ptr [rbp-0xB0]
mov gword ptr [rbp-0xB0], rdi
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0xB0]
call [rax+0x18]System.Type:IsSubclassOf(System.Type):ubyte:this
test eax, eax
- jne SHORT G_M42178_IG79
+ jne SHORT G_M42178_IG88
;; size=45 bbWeight=0.08 PerfScore 1.40
-G_M42178_IG78:
+G_M42178_IG87:
mov edx, dword ptr [rbp-0x38]
mov esi, dword ptr [rbp-0x7C]
- jmp SHORT G_M42178_IG80
+ jmp SHORT G_M42178_IG89
;; size=8 bbWeight=0.04 PerfScore 0.16
-G_M42178_IG79:
+G_M42178_IG88:
mov edi, dword ptr [rbp-0x38]
mov eax, edi
xor rcx, rcx
mov gword ptr [r12+8*rax+0x10], rcx
add r13d, 1
- jo G_M42178_IG109
+ jo G_M42178_IG118
mov edx, edi
mov esi, dword ptr [rbp-0x7C]
;; size=27 bbWeight=0.08 PerfScore 0.40
-G_M42178_IG80:
+G_M42178_IG89:
add edx, 1
- jo G_M42178_IG109
+ jo G_M42178_IG118
mov ecx, dword ptr [rbp-0x3C]
cmp edx, ecx
- jg G_M42178_IG70
+ jg G_M42178_IG79
;; size=20 bbWeight=0.16 PerfScore 0.56
-G_M42178_IG81:
+G_M42178_IG90:
cmp dword ptr [rbp-0x90], edx
- je SHORT G_M42178_IG80
+ je SHORT G_M42178_IG89
;; size=8 bbWeight=0.16 PerfScore 0.48
-G_M42178_IG82:
+G_M42178_IG91:
mov dword ptr [rbp-0x7C], esi
cmp edx, esi
- jae G_M42178_IG108
+ jae G_M42178_IG117
mov dword ptr [rbp-0x38], edx
mov edi, edx
mov rdi, gword ptr [r12+8*rdi+0x10]
test rdi, rdi
- jne G_M42178_IG77
+ jne G_M42178_IG86
;; size=30 bbWeight=0.08 PerfScore 0.54
-G_M42178_IG83:
+G_M42178_IG92:
mov edx, dword ptr [rbp-0x38]
mov esi, dword ptr [rbp-0x7C]
- jmp SHORT G_M42178_IG80
+ jmp SHORT G_M42178_IG89
;; size=8 bbWeight=0.04 PerfScore 0.16
-G_M42178_IG84:
+G_M42178_IG93:
mov rdi, gword ptr [rbp-0x98]
mov rax, qword ptr [rbp-0x68]
call [rax+0x38]System.Reflection.MemberInfo:get_DeclaringType():System.Type:this
mov gword ptr [rbp-0xB0], rax
mov rdi, qword ptr [r12]
mov edi, dword ptr [rdi+0x04]
add edi, -24
shr edi, 3
- je SHORT G_M42178_IG85
+ je SHORT G_M42178_IG94
lea rcx, bword ptr [r12+0x10]
mov edx, dword ptr [rcx]
movsxd rdi, edi
mov edi, dword ptr [rcx+4*rdi]
lea ecx, [rdx+rdi-0x01]
- jmp SHORT G_M42178_IG86
+ jmp SHORT G_M42178_IG95
;; size=55 bbWeight=2 PerfScore 39.00
-G_M42178_IG85:
+G_M42178_IG94:
mov ecx, dword ptr [r12+0x08]
test ecx, ecx
- jl G_M42178_IG109
+ jl G_M42178_IG118
dec ecx
;; size=15 bbWeight=2 PerfScore 7.00
-G_M42178_IG86:
+G_M42178_IG95:
mov dword ptr [rbp-0x34], ecx
xor edx, edx
test ecx, ecx
- jl G_M42178_IG70
+ jl G_M42178_IG79
;; size=13 bbWeight=2 PerfScore 5.00
-G_M42178_IG87:
+G_M42178_IG96:
mov esi, dword ptr [rbp-0x7C]
cmp esi, ecx
- jle G_M42178_IG99
- jmp SHORT G_M42178_IG92
+ jle G_M42178_IG108
+ jmp SHORT G_M42178_IG101
;; size=13 bbWeight=1 PerfScore 4.25
-G_M42178_IG88:
+G_M42178_IG97:
mov rsi, qword ptr [rdi]
mov rsi, qword ptr [rsi+0x40]
call [rsi+0x38]System.Reflection.MemberInfo:get_DeclaringType():System.Type:this
mov rsi, rax
mov rdi, gword ptr [rbp-0xB0]
mov gword ptr [rbp-0xB0], rdi
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0xB0]
call [rax+0x18]System.Type:IsSubclassOf(System.Type):ubyte:this
test eax, eax
- jne SHORT G_M42178_IG90
+ jne SHORT G_M42178_IG99
;; size=44 bbWeight=7.92 PerfScore 138.60
-G_M42178_IG89:
+G_M42178_IG98:
mov edx, dword ptr [rbp-0x30]
- jmp SHORT G_M42178_IG91
+ jmp SHORT G_M42178_IG100
;; size=5 bbWeight=3.96 PerfScore 11.88
-G_M42178_IG90:
+G_M42178_IG99:
mov edi, dword ptr [rbp-0x30]
mov eax, edi
xor rcx, rcx
mov gword ptr [r12+8*rax+0x10], rcx
add r13d, 1
- jo G_M42178_IG109
+ jo G_M42178_IG118
mov edx, edi
;; size=24 bbWeight=7.92 PerfScore 31.68
-G_M42178_IG91:
+G_M42178_IG100:
add edx, 1
- jo G_M42178_IG109
+ jo G_M42178_IG118
cmp edx, dword ptr [rbp-0x34]
- jg G_M42178_IG70
+ jg G_M42178_IG79
;; size=18 bbWeight=15.84 PerfScore 67.32
-G_M42178_IG92:
+G_M42178_IG101:
cmp dword ptr [rbp-0x90], edx
- je SHORT G_M42178_IG91
+ je SHORT G_M42178_IG100
;; size=8 bbWeight=15.84 PerfScore 47.52
-G_M42178_IG93:
+G_M42178_IG102:
mov dword ptr [rbp-0x30], edx
mov edi, edx
mov rdi, gword ptr [r12+8*rdi+0x10]
test rdi, rdi
- jne SHORT G_M42178_IG88
+ jne SHORT G_M42178_IG97
;; size=15 bbWeight=7.92 PerfScore 35.64
-G_M42178_IG94:
+G_M42178_IG103:
mov edx, dword ptr [rbp-0x30]
- jmp SHORT G_M42178_IG91
+ jmp SHORT G_M42178_IG100
;; size=5 bbWeight=3.96 PerfScore 11.88
-G_M42178_IG95:
+G_M42178_IG104:
mov r9, qword ptr [rdi]
mov r9, qword ptr [r9+0x40]
call [r9+0x38]System.Reflection.MemberInfo:get_DeclaringType():System.Type:this
mov rsi, rax
mov rdi, gword ptr [rbp-0xB0]
mov gword ptr [rbp-0xB0], rdi
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0xB0]
call [rax+0x18]System.Type:IsSubclassOf(System.Type):ubyte:this
test eax, eax
- jne SHORT G_M42178_IG97
+ jne SHORT G_M42178_IG106
;; size=45 bbWeight=0.08 PerfScore 1.40
-G_M42178_IG96:
+G_M42178_IG105:
mov edx, dword ptr [rbp-0x30]
mov esi, dword ptr [rbp-0x7C]
- jmp SHORT G_M42178_IG98
+ jmp SHORT G_M42178_IG107
;; size=8 bbWeight=0.04 PerfScore 0.16
-G_M42178_IG97:
+G_M42178_IG106:
mov edx, dword ptr [rbp-0x30]
mov eax, edx
xor rcx, rcx
mov gword ptr [r12+8*rax+0x10], rcx
add r13d, 1
- jo G_M42178_IG109
+ jo G_M42178_IG118
mov esi, dword ptr [rbp-0x7C]
;; size=25 bbWeight=0.08 PerfScore 0.38
-G_M42178_IG98:
+G_M42178_IG107:
add edx, 1
- jo G_M42178_IG109
+ jo G_M42178_IG118
mov ecx, dword ptr [rbp-0x34]
cmp edx, ecx
- jg G_M42178_IG70
+ jg G_M42178_IG79
;; size=20 bbWeight=0.16 PerfScore 0.56
-G_M42178_IG99:
+G_M42178_IG108:
cmp dword ptr [rbp-0x90], edx
- je SHORT G_M42178_IG98
+ je SHORT G_M42178_IG107
;; size=8 bbWeight=0.16 PerfScore 0.48
-G_M42178_IG100:
+G_M42178_IG109:
mov dword ptr [rbp-0x7C], esi
cmp edx, esi
- jae G_M42178_IG108
+ jae G_M42178_IG117
mov dword ptr [rbp-0x30], edx
mov edi, edx
mov rdi, gword ptr [r12+8*rdi+0x10]
test rdi, rdi
- jne G_M42178_IG95
+ jne G_M42178_IG104
;; size=30 bbWeight=0.08 PerfScore 0.54
-G_M42178_IG101:
+G_M42178_IG110:
mov edx, dword ptr [rbp-0x30]
mov esi, dword ptr [rbp-0x7C]
- jmp SHORT G_M42178_IG98
+ jmp SHORT G_M42178_IG107
;; size=8 bbWeight=0.04 PerfScore 0.16
-G_M42178_IG102:
+G_M42178_IG111:
cmp eax, ebx
- jae G_M42178_IG108
+ jae G_M42178_IG117
mov dword ptr [rbp-0x54], eax
mov esi, eax
mov rsi, gword ptr [r12+8*rsi+0x10]
test rsi, rsi
- je SHORT G_M42178_IG104
+ je SHORT G_M42178_IG113
;; size=23 bbWeight=0.04 PerfScore 0.23
-G_M42178_IG103:
+G_M42178_IG112:
mov rdi, 0xD1FFAB1E ; System.Reflection.MethodBase
mov rcx, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS
call [rcx]CORINFO_HELP_CHKCASTCLASS
cmp r14d, dword ptr [r15+0x08]
- jae G_M42178_IG108
+ jae G_M42178_IG117
mov edi, r14d
lea rdi, bword ptr [r15+8*rdi+0x10]
mov rsi, rax
call CORINFO_HELP_ASSIGN_REF
add r14d, 1
- jo G_M42178_IG109
+ jo G_M42178_IG118
;; size=58 bbWeight=0.02 PerfScore 0.23
-G_M42178_IG104:
+G_M42178_IG113:
mov eax, dword ptr [rbp-0x54]
add eax, 1
- jo G_M42178_IG109
+ jo G_M42178_IG118
cmp eax, r13d
- jle SHORT G_M42178_IG102
- jmp G_M42178_IG76
+ jle SHORT G_M42178_IG111
+ jmp G_M42178_IG85
;; size=22 bbWeight=0.04 PerfScore 0.22
-G_M42178_IG105:
+G_M42178_IG114:
xor rax, rax
;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M42178_IG106:
+G_M42178_IG115:
add rsp, 136
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=18 bbWeight=1 PerfScore 4.25
-G_M42178_IG107:
+G_M42178_IG116:
mov rax, 0xD1FFAB1E ; code for System.SR:get_Argument_IllegalNestedType2():System.String
call [rax]System.SR:get_Argument_IllegalNestedType2():System.String
mov r12, rax
mov rdi, 0xD1FFAB1E ; System.ArgumentException
call CORINFO_HELP_NEWSFAST
mov r13, rax
mov rdi, r14
xor esi, esi
mov rax, 0xD1FFAB1E ; code for Microsoft.VisualBasic.CompilerServices.Utils:VBFriendlyNameOfType(System.Type,ubyte):System.String
call [rax]Microsoft.VisualBasic.CompilerServices.Utils:VBFriendlyNameOfType(System.Type,ubyte):System.String
mov rdx, rax
mov rsi, r15
mov rdi, r12
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 rsi, rax
mov rdi, r13
mov rax, 0xD1FFAB1E ; code for System.ArgumentException:.ctor(System.String):this
call [rax]System.ArgumentException:.ctor(System.String):this
mov rdi, r13
call CORINFO_HELP_THROW
int3
;; size=98 bbWeight=0 PerfScore 0.00
-G_M42178_IG108:
+G_M42178_IG117:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-G_M42178_IG109:
+G_M42178_IG118:
call CORINFO_HELP_OVERFLOW
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2679, prolog size 37, PerfScore 10150.48, instruction count 688, allocated bytes for code 2679 (MethodHash=afac5b3d) for method Microsoft.VisualBasic.CompilerServices.VBBinder:GetMethodsByName(System.Type,System.Reflection.IReflect,System.String,int):System.Reflection.MethodBase[]:this (FullOpts)
+; Total bytes of code 2796, prolog size 37, PerfScore 10675.24, instruction count 709, allocated bytes for code 2796 (MethodHash=afac5b3d) for method Microsoft.VisualBasic.CompilerServices.VBBinder:GetMethodsByName(System.Type,System.Reflection.IReflect,System.String,int):System.Reflection.MethodBase[]:this (FullOpts)
; ============================================================ 27 (9.82 % of base) - System.Reflection.MethodBaseInvoker:CopyBack(System.Object[],System.Span`1[System.Object],System.Span`1[ubyte]):this ; Assembly listing for method System.Reflection.MethodBaseInvoker:CopyBack(System.Object[],System.Span`1[System.Object],System.Span`1[ubyte]):this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T10] ( 3, 4 ) ref -> [rbp-0x38] this class-hnd single-def <System.Reflection.MethodBaseInvoker>
+; V00 this [V00,T10] ( 3, 4 ) ref -> [rbp-0x40] this class-hnd single-def <System.Reflection.MethodBaseInvoker>
; V01 arg1 [V01,T04] ( 5, 7 ) ref -> rbx class-hnd single-def <System.Object[]>
;* V02 arg2 [V02 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op single-def <System.Span`1[System.Object]>
;* V03 arg3 [V03 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op single-def <System.Span`1[ubyte]>
-; V04 loc0 [V04,T00] ( 11, 31 ) int -> [rbp-0x2C]
+;* V04 loc0 [V04,T13] ( 0, 0 ) int -> zero-ref
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V06 tmp1 [V06,T05] ( 4, 8 ) ref -> registers class-hnd "Inline return value spill temp" <System.Object>
; V07 tmp2 [V07,T01] ( 5, 20 ) ref -> rsi class-hnd "Inlining Arg" <System.Object>
; V08 tmp3 [V08,T11] ( 3, 6 ) long -> rdi "Inline stloc first use temp"
; V09 tmp4 [V09,T06] ( 3, 5 ) byref -> r15 single-def "field V02._reference (fldOffset=0x0)" P-INDEP
; V10 tmp5 [V10,T07] ( 3, 5 ) int -> r14 single-def "field V02._length (fldOffset=0x8)" P-INDEP
; V11 tmp6 [V11,T08] ( 2, 5 ) byref -> r13 single-def "field V03._reference (fldOffset=0x0)" P-INDEP
; V12 tmp7 [V12,T09] ( 2, 5 ) int -> r12 single-def "field V03._length (fldOffset=0x8)" P-INDEP
; V13 tmp8 [V13,T03] ( 3, 12 ) ref -> rdx "arr expr"
-; V14 cse0 [V14,T12] ( 3, 6 ) int -> [rbp-0x30] spill-single-def "CSE #05: aggressive"
+; V14 cse0 [V14,T12] ( 3, 6 ) int -> [rbp-0x2C] spill-single-def "CSE #05: aggressive"
; V15 cse1 [V15,T02] ( 5, 14 ) long -> r9 "CSE #01: aggressive"
+; V16 rat0 [V16,T00] ( 11, 31 ) long -> [rbp-0x38] "Widened IV V04"
;
; Lcl frame size = 24
G_M15840_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 24
lea rbp, [rsp+0x40]
mov rax, rdi
mov rbx, rsi
mov r15, rdx
mov r14d, ecx
mov r13, r8
mov r12d, r9d
;; size=37 bbWeight=1 PerfScore 8.25
G_M15840_IG02:
xor ecx, ecx
mov r8d, dword ptr [rbx+0x08]
- mov dword ptr [rbp-0x30], r8d
+ mov dword ptr [rbp-0x2C], r8d
test r8d, r8d
jle G_M15840_IG10
;; size=19 bbWeight=1 PerfScore 4.50
G_M15840_IG03:
cmp ecx, r12d
jae G_M15840_IG11
- mov r9d, ecx
+ mov r9, rcx
cmp byte ptr [r9+r13], 0
je G_M15840_IG09
;; size=23 bbWeight=4 PerfScore 22.00
G_M15840_IG04:
- mov gword ptr [rbp-0x38], rax
+ mov gword ptr [rbp-0x40], rax
mov rdx, gword ptr [rax+0x20]
cmp ecx, dword ptr [rdx+0x08]
jae G_M15840_IG11
test byte ptr [rdx+4*r9+0x10], 4
jne SHORT G_M15840_IG05
cmp ecx, r14d
jae G_M15840_IG11
mov rdx, gword ptr [r15+8*r9]
- mov dword ptr [rbp-0x2C], ecx
- movsxd rsi, ecx
+ mov qword ptr [rbp-0x38], rcx
+ mov rsi, rcx
mov rdi, rbx
mov r9, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
call [r9]CORINFO_HELP_ARRADDR_ST
- mov rax, gword ptr [rbp-0x38]
- mov ecx, dword ptr [rbp-0x2C]
+ mov rax, gword ptr [rbp-0x40]
+ mov rcx, qword ptr [rbp-0x38]
jmp SHORT G_M15840_IG09
- ;; size=69 bbWeight=2 PerfScore 46.00
+ ;; size=71 bbWeight=2 PerfScore 46.00
G_M15840_IG05:
- mov dword ptr [rbp-0x2C], ecx
+ mov qword ptr [rbp-0x38], rcx
cmp ecx, r14d
- jae SHORT G_M15840_IG11
+ jae G_M15840_IG11
mov rsi, gword ptr [r15+8*r9]
test rsi, rsi
je SHORT G_M15840_IG07
+ mov rcx, qword ptr [rbp-0x38]
mov rdi, qword ptr [rsi]
mov edx, dword ptr [rdi]
and edx, 0xD1FFAB1E
cmp edx, 0xD1FFAB1E
jne SHORT G_M15840_IG06
+ mov qword ptr [rbp-0x38], rcx
mov rdx, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.CastHelpers:ReboxFromNullable(ulong,System.Object):System.Object
call [rdx]System.Runtime.CompilerServices.CastHelpers:ReboxFromNullable(ulong,System.Object):System.Object
mov r9, rax
+ mov rcx, qword ptr [rbp-0x38]
jmp SHORT G_M15840_IG08
- ;; size=53 bbWeight=2 PerfScore 33.00
+ ;; size=70 bbWeight=2 PerfScore 39.00
G_M15840_IG06:
mov r9, rsi
jmp SHORT G_M15840_IG08
;; size=5 bbWeight=2 PerfScore 4.50
G_M15840_IG07:
+ mov rcx, qword ptr [rbp-0x38]
xor r9, r9
- ;; size=3 bbWeight=2 PerfScore 0.50
+ ;; size=7 bbWeight=2 PerfScore 2.50
G_M15840_IG08:
- movsxd rsi, dword ptr [rbp-0x2C]
+ mov qword ptr [rbp-0x38], rcx
+ mov rsi, rcx
mov rdi, rbx
mov rdx, r9
mov r9, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
call [r9]CORINFO_HELP_ARRADDR_ST
- mov rax, gword ptr [rbp-0x38]
- mov ecx, dword ptr [rbp-0x2C]
- ;; size=30 bbWeight=2 PerfScore 17.50
+ mov rax, gword ptr [rbp-0x40]
+ mov rcx, qword ptr [rbp-0x38]
+ ;; size=34 bbWeight=2 PerfScore 14.00
G_M15840_IG09:
inc ecx
- mov r8d, dword ptr [rbp-0x30]
+ mov r8d, dword ptr [rbp-0x2C]
cmp r8d, ecx
jg G_M15840_IG03
;; size=15 bbWeight=4 PerfScore 10.00
G_M15840_IG10:
add rsp, 24
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.25
G_M15840_IG11:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 275, prolog size 37, PerfScore 150.50, instruction count 80, allocated bytes for code 275 (MethodHash=ac5ac21f) for method System.Reflection.MethodBaseInvoker:CopyBack(System.Object[],System.Span`1[System.Object],System.Span`1[ubyte]):this (FullOpts)
+; Total bytes of code 302, prolog size 37, PerfScore 155.00, instruction count 85, allocated bytes for code 302 (MethodHash=ac5ac21f) for method System.Reflection.MethodBaseInvoker:CopyBack(System.Object[],System.Span`1[System.Object],System.Span`1[ubyte]):this (FullOpts)
; ============================================================ Note: some changes were skipped as they were too large to fit into a comment. Larger list of diffs: https://gist.github.com/MihuBot/4f6e2a928017dc81ec1fd1ffb39ff021 |
Top method improvements-20 (-0.84 % of base) - System.SpanHelpers:IndexOf(byref,int,byref,int):int ; Assembly listing for method System.SpanHelpers:IndexOf(byref,int,byref,int):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; 16 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
; V00 arg0 [V00,T02] ( 15, 83 ) byref -> r15 single-def
; V01 arg1 [V01,T29] ( 5, 3.50) int -> rdx single-def
; V02 arg2 [V02,T08] ( 14, 59 ) byref -> r14 single-def
; V03 arg3 [V03,T01] ( 10, 99.50) int -> rbx single-def
; V04 loc0 [V04,T22] ( 10, 8.50) int -> r13
; V05 loc1 [V05,T00] ( 35,230.50) long -> r12
; V06 loc2 [V06,T16] ( 8, 18 ) ushort -> [rbp-0x2C] spill-single-def
; V07 loc3 [V07,T17] ( 11, 16 ) int -> [rbp-0x30] spill-single-def
; V08 loc4 [V08,T31] ( 2, 4.50) byref -> r14 single-def
; V09 loc5 [V09,T15] ( 9, 29 ) int -> rbx
; V10 loc6 [V10,T18] ( 4, 16 ) int -> rax
; V11 loc7 [V11,T26] ( 4, 7 ) ushort -> rdi
; V12 loc8 [V12,T19] ( 6, 14.50) long -> r13
; V13 loc9 [V13,T36] ( 2, 4.50) simd64 -> [rbp-0x70] spill-single-def <System.Runtime.Intrinsics.Vector512`1[ushort]>
; V14 loc10 [V14,T37] ( 2, 4.50) simd64 -> [rbp-0xB0] spill-single-def <System.Runtime.Intrinsics.Vector512`1[ushort]>
; V15 loc11 [V15,T09] ( 3, 32.50) long -> [rbp-0xB8] spill-single-def
;* V16 loc12 [V16 ] ( 0, 0 ) simd64 -> zero-ref <System.Runtime.Intrinsics.Vector512`1[ushort]>
; V17 loc13 [V17,T33] ( 4, 14 ) simd64 -> mm2 <System.Runtime.Intrinsics.Vector512`1[ubyte]>
; V18 loc14 [V18,T03] ( 5, 66 ) long -> [rbp-0xC0]
;* V19 loc15 [V19 ] ( 0, 0 ) int -> zero-ref
; V20 loc16 [V20,T10] ( 3, 32.50) long -> [rbp-0xC8] spill-single-def
; V21 loc17 [V21,T27] ( 4, 7 ) ushort -> rdi
; V22 loc18 [V22,T20] ( 6, 14.50) long -> r13
; V23 loc19 [V23,T38] ( 2, 4.50) simd32 -> [rbp-0xF0] spill-single-def <System.Runtime.Intrinsics.Vector256`1[ushort]>
; V24 loc20 [V24,T39] ( 2, 4.50) simd32 -> [rbp-0x110] spill-single-def <System.Runtime.Intrinsics.Vector256`1[ushort]>
; V25 loc21 [V25,T11] ( 3, 32.50) long -> [rbp-0x118] spill-single-def
;* V26 loc22 [V26 ] ( 0, 0 ) simd32 -> zero-ref <System.Runtime.Intrinsics.Vector256`1[ushort]>
; V27 loc23 [V27,T34] ( 4, 14 ) simd32 -> mm2 <System.Runtime.Intrinsics.Vector256`1[ubyte]>
; V28 loc24 [V28,T04] ( 5, 66 ) int -> [rbp-0x11C]
; V29 loc25 [V29,T12] ( 3, 32.50) long -> [rbp-0x128] spill-single-def
; V30 loc26 [V30,T28] ( 4, 7 ) ushort -> rdi
; V31 loc27 [V31,T21] ( 6, 14.50) long -> r13
; V32 loc28 [V32,T40] ( 2, 4.50) simd16 -> [rbp-0x140] spill-single-def <System.Runtime.Intrinsics.Vector128`1[ushort]>
; V33 loc29 [V33,T41] ( 2, 4.50) simd16 -> [rbp-0x150] spill-single-def <System.Runtime.Intrinsics.Vector128`1[ushort]>
; V34 loc30 [V34,T13] ( 3, 32.50) long -> [rbp-0x158] spill-single-def
;* V35 loc31 [V35 ] ( 0, 0 ) simd16 -> zero-ref <System.Runtime.Intrinsics.Vector128`1[ushort]>
; V36 loc32 [V36,T35] ( 4, 14 ) simd16 -> mm2 <System.Runtime.Intrinsics.Vector128`1[ubyte]>
; V37 loc33 [V37,T05] ( 5, 66 ) int -> [rbp-0x15C]
; V38 loc34 [V38,T14] ( 3, 32.50) long -> [rbp-0x168] spill-single-def
;# V39 OutArgs [V39 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V40 tmp1 [V40 ] ( 0, 0 ) simd16 -> zero-ref "spilled call-like call argument"
;* V41 tmp2 [V41 ] ( 0, 0 ) simd16 -> zero-ref "spilled call-like call argument"
; V42 tmp3 [V42,T23] ( 2, 8 ) long -> r13 "dup spill"
;* V43 tmp4 [V43 ] ( 0, 0 ) simd32 -> zero-ref "spilled call-like call argument"
;* V44 tmp5 [V44 ] ( 0, 0 ) simd32 -> zero-ref "spilled call-like call argument"
; V45 tmp6 [V45,T24] ( 2, 8 ) long -> r13 "dup spill"
;* V46 tmp7 [V46 ] ( 0, 0 ) simd64 -> zero-ref "spilled call-like call argument"
;* V47 tmp8 [V47 ] ( 0, 0 ) simd64 -> zero-ref "spilled call-like call argument"
; V48 tmp9 [V48,T25] ( 2, 8 ) long -> r13 "dup spill"
;* V49 tmp10 [V49 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V50 tmp11 [V50 ] ( 0, 0 ) short -> zero-ref "Inlining Arg"
;* V51 tmp12 [V51 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
; V52 tmp13 [V52,T32] ( 4, 4 ) short -> rsi "Inlining Arg"
;* V53 tmp14 [V53 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V54 tmp15 [V54 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V55 tmp16 [V55 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V56 tmp17 [V56 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
; V57 tmp18 [V57,T06] ( 2, 64 ) int -> rdi "Inlining Arg"
;* V58 tmp19 [V58 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
; V59 tmp20 [V59,T07] ( 2, 64 ) int -> rdi "Inlining Arg"
; V60 tmp21 [V60,T30] ( 5, 5 ) int -> rax "Single return block return value"
;
; Lcl frame size = 328
G_M3489_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 328
lea rbp, [rsp+0x170]
mov r15, rdi
mov r14, rdx
mov edx, esi
mov ebx, ecx
;; size=35 bbWeight=1 PerfScore 7.75
G_M3489_IG02:
test ebx, ebx
je G_M3489_IG46
;; size=8 bbWeight=1 PerfScore 1.25
G_M3489_IG03:
lea r13d, [rbx-0x01]
test r13d, r13d
je G_M3489_IG42
xor r12d, r12d
movzx rax, word ptr [r14]
mov dword ptr [rbp-0x2C], eax
mov ecx, edx
sub ecx, r13d
mov dword ptr [rbp-0x30], ecx
cmp ecx, 8
jl G_M3489_IG36
lea edi, [rcx-0x20]
test edi, edi
jge G_M3489_IG25
lea edi, [rcx-0x10]
test edi, edi
jge G_M3489_IG14
movsxd rdi, r13d
movzx rdi, word ptr [r14+2*rdi]
movsxd r13, r13d
jmp SHORT G_M3489_IG05
;; size=75 bbWeight=0.50 PerfScore 7.88
G_M3489_IG04:
dec r13
movzx rdi, word ptr [r14+2*r13]
;; size=8 bbWeight=2 PerfScore 4.50
G_M3489_IG05:
cmp edi, eax
jne SHORT G_M3489_IG06
cmp r13, 1
jg SHORT G_M3489_IG04
;; size=10 bbWeight=4 PerfScore 10.00
G_M3489_IG06:
vpbroadcastw xmm0, eax
vmovaps xmmword ptr [rbp-0x140], xmm0
vpbroadcastw xmm1, edi
vmovaps xmmword ptr [rbp-0x150], xmm1
- movsxd rax, ecx
+ mov eax, ecx
add rax, -8
mov qword ptr [rbp-0x158], rax
- jmp G_M3489_IG10
- ;; size=47 bbWeight=0.50 PerfScore 3.75
+ jmp SHORT G_M3489_IG10
+ ;; size=43 bbWeight=0.50 PerfScore 3.75
G_M3489_IG07:
lea rdi, [r12+r9]
lea rdi, bword ptr [r15+2*rdi]
mov edx, ebx
add rdx, rdx
mov rsi, r14
mov r10, 0xD1FFAB1E ; code for System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
call [r10]System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
test eax, eax
mov r9, qword ptr [rbp-0x168]
jne G_M3489_IG13
blsr edi, dword ptr [rbp-0x15C]
blsr r8d, edi
mov edi, r8d
test edi, edi
mov r8d, edi
jne SHORT G_M3489_IG12
;; size=68 bbWeight=16 PerfScore 184.00
G_M3489_IG08:
add r12, 8
mov eax, dword ptr [rbp-0x30]
- movsxd rdi, eax
+ mov edi, eax
cmp r12, rdi
je G_M3489_IG38
- ;; size=19 bbWeight=4 PerfScore 11.00
+ ;; size=18 bbWeight=4 PerfScore 11.00
G_M3489_IG09:
mov rdi, qword ptr [rbp-0x158]
cmp r12, rdi
vmovaps xmm0, xmmword ptr [rbp-0x140]
vmovaps xmm1, xmmword ptr [rbp-0x150]
jle SHORT G_M3489_IG10
mov rax, qword ptr [rbp-0x158]
mov r12, rax
;; size=38 bbWeight=16 PerfScore 152.00
G_M3489_IG10:
vpcmpeqw xmm2, xmm0, xmmword ptr [r15+2*r12]
lea rdi, [r12+r13]
vpcmpeqw xmm3, xmm1, xmmword ptr [r15+2*rdi]
vpand xmm2, xmm3, xmm2
vptest xmm2, xmm2
je SHORT G_M3489_IG08
;; size=27 bbWeight=4 PerfScore 43.33
G_M3489_IG11:
vpmovmskb r8d, xmm2
;; size=4 bbWeight=2 PerfScore 4.00
G_M3489_IG12:
mov dword ptr [rbp-0x15C], r8d
xor edi, edi
tzcnt edi, r8d
shr edi, 1
mov r9d, edi
mov qword ptr [rbp-0x168], r9
cmp ebx, 2
jne G_M3489_IG07
;; size=35 bbWeight=16 PerfScore 100.00
G_M3489_IG13:
lea eax, [r12+r9]
jmp G_M3489_IG41
;; size=9 bbWeight=0.50 PerfScore 1.25
G_M3489_IG14:
movsxd rdi, r13d
movzx rdi, word ptr [r14+2*rdi]
movsxd r13, r13d
jmp SHORT G_M3489_IG16
;; size=13 bbWeight=0.50 PerfScore 2.25
G_M3489_IG15:
dec r13
movzx rdi, word ptr [r14+2*r13]
;; size=8 bbWeight=2 PerfScore 4.50
G_M3489_IG16:
cmp edi, eax
jne SHORT G_M3489_IG17
cmp r13, 1
jg SHORT G_M3489_IG15
;; size=10 bbWeight=4 PerfScore 10.00
G_M3489_IG17:
vpbroadcastw ymm0, eax
vmovups ymmword ptr [rbp-0xF0], ymm0
vpbroadcastw ymm1, edi
vmovups ymmword ptr [rbp-0x110], ymm1
- movsxd rax, ecx
+ mov eax, ecx
add rax, -16
mov qword ptr [rbp-0x118], rax
- jmp G_M3489_IG21
- ;; size=47 bbWeight=0.50 PerfScore 4.75
+ jmp SHORT G_M3489_IG21
+ ;; size=43 bbWeight=0.50 PerfScore 4.75
G_M3489_IG18:
lea rdi, [r12+r9]
lea rdi, bword ptr [r15+2*rdi]
mov edx, ebx
add rdx, rdx
mov rsi, r14
mov r10, 0xD1FFAB1E ; code for System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
call [r10]System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
test eax, eax
mov r9, qword ptr [rbp-0x128]
jne G_M3489_IG24
blsr edi, dword ptr [rbp-0x11C]
blsr r8d, edi
mov edi, r8d
test edi, edi
mov r8d, edi
jne SHORT G_M3489_IG23
;; size=68 bbWeight=16 PerfScore 184.00
G_M3489_IG19:
add r12, 16
mov eax, dword ptr [rbp-0x30]
- movsxd rdi, eax
+ mov edi, eax
cmp r12, rdi
je G_M3489_IG38
- ;; size=19 bbWeight=4 PerfScore 11.00
+ ;; size=18 bbWeight=4 PerfScore 11.00
G_M3489_IG20:
mov rdi, qword ptr [rbp-0x118]
cmp r12, rdi
vmovups ymm0, ymmword ptr [rbp-0xF0]
vmovups ymm1, ymmword ptr [rbp-0x110]
jle SHORT G_M3489_IG21
mov rax, qword ptr [rbp-0x118]
mov r12, rax
;; size=38 bbWeight=16 PerfScore 184.00
G_M3489_IG21:
vpcmpeqw ymm2, ymm0, ymmword ptr [r15+2*r12]
lea rdi, [r12+r13]
vpcmpeqw ymm3, ymm1, ymmword ptr [r15+2*rdi]
vpand ymm2, ymm3, ymm2
vptest ymm2, ymm2
je SHORT G_M3489_IG19
;; size=27 bbWeight=4 PerfScore 51.33
G_M3489_IG22:
vpmovmskb r8d, ymm2
;; size=4 bbWeight=2 PerfScore 6.00
G_M3489_IG23:
mov dword ptr [rbp-0x11C], r8d
xor edi, edi
tzcnt edi, r8d
shr edi, 1
mov r9d, edi
mov qword ptr [rbp-0x128], r9
cmp ebx, 2
jne G_M3489_IG18
;; size=35 bbWeight=16 PerfScore 100.00
G_M3489_IG24:
lea eax, [r12+r9]
jmp G_M3489_IG41
;; size=9 bbWeight=0.50 PerfScore 1.25
G_M3489_IG25:
movsxd rdi, r13d
movzx rdi, word ptr [r14+2*rdi]
mov r13d, r13d
jmp SHORT G_M3489_IG27
;; size=13 bbWeight=0.50 PerfScore 2.25
G_M3489_IG26:
dec r13
movzx rdi, word ptr [r14+2*r13]
;; size=8 bbWeight=2 PerfScore 4.50
G_M3489_IG27:
cmp edi, eax
jne SHORT G_M3489_IG28
cmp r13, 1
jg SHORT G_M3489_IG26
;; size=10 bbWeight=4 PerfScore 10.00
G_M3489_IG28:
vpbroadcastw zmm0, eax
vmovups zmmword ptr [rbp-0x70], zmm0
vpbroadcastw zmm1, edi
vmovups zmmword ptr [rbp-0xB0], zmm1
- movsxd rax, ecx
+ mov eax, ecx
add rax, -32
mov qword ptr [rbp-0xB8], rax
jmp G_M3489_IG32
- ;; size=51 bbWeight=0.50 PerfScore 4.75
+ ;; size=50 bbWeight=0.50 PerfScore 4.75
G_M3489_IG29:
lea rdi, [r12+r9]
lea rdi, bword ptr [r15+2*rdi]
mov edx, ebx
add rdx, rdx
mov rsi, r14
mov r10, 0xD1FFAB1E ; code for System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
call [r10]System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
test eax, eax
mov r9, qword ptr [rbp-0xC8]
jne G_M3489_IG35
blsr rdi, qword ptr [rbp-0xC0]
blsr r8, rdi
mov rdi, r8
test rdi, rdi
mov r8, rdi
jne G_M3489_IG34
;; size=73 bbWeight=16 PerfScore 184.00
G_M3489_IG30:
add r12, 32
mov eax, dword ptr [rbp-0x30]
- movsxd rdi, eax
+ mov edi, eax
cmp r12, rdi
je G_M3489_IG38
- ;; size=19 bbWeight=4 PerfScore 11.00
+ ;; size=18 bbWeight=4 PerfScore 11.00
G_M3489_IG31:
mov rdi, qword ptr [rbp-0xB8]
cmp r12, rdi
vmovups zmm0, zmmword ptr [rbp-0x70]
vmovups zmm1, zmmword ptr [rbp-0xB0]
jle SHORT G_M3489_IG32
mov rax, qword ptr [rbp-0xB8]
mov r12, rax
;; size=42 bbWeight=16 PerfScore 152.00
G_M3489_IG32:
vpcmpeqw k1, zmm0, zmmword ptr [r15+2*r12]
vpmovm2w zmm2, k1
lea rdi, [r12+r13]
vpcmpeqw k1, zmm1, zmmword ptr [r15+2*rdi]
vpmovm2w zmm3, k1
vpandd zmm2, zmm3, zmm2
vptestmb k1, zmm2, zmm2
kortestq k1, k1
je SHORT G_M3489_IG30
;; size=49 bbWeight=4 PerfScore 63.33
G_M3489_IG33:
vpmovb2m k1, zmm2
kmovq r8, k1
;; size=11 bbWeight=2 PerfScore 8.00
G_M3489_IG34:
mov qword ptr [rbp-0xC0], r8
xor edi, edi
tzcnt rdi, r8
shr edi, 1
mov r9d, edi
mov qword ptr [rbp-0xC8], r9
cmp ebx, 2
jne G_M3489_IG29
;; size=35 bbWeight=16 PerfScore 100.00
G_M3489_IG35:
lea eax, [r12+r9]
jmp SHORT G_M3489_IG41
;; size=6 bbWeight=0.50 PerfScore 1.25
G_M3489_IG36:
add r14, 2
mov ebx, ecx
test ebx, ebx
jle SHORT G_M3489_IG38
;; size=10 bbWeight=0.50 PerfScore 0.88
G_M3489_IG37:
lea rdi, bword ptr [r15+2*r12]
movsx rsi, ax
mov edx, ebx
mov rcx, 0xD1FFAB1E ; code for System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int
call [rcx]System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int
test eax, eax
jl SHORT G_M3489_IG38
sub ebx, eax
- movsxd rdi, eax
+ mov edi, eax
add r12, rdi
test ebx, ebx
jle SHORT G_M3489_IG38
lea rdi, bword ptr [r15+2*r12+0x02]
mov edx, r13d
add rdx, rdx
mov rsi, r14
mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
call [rax]System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
test eax, eax
jne SHORT G_M3489_IG40
dec ebx
inc r12
test ebx, ebx
mov eax, dword ptr [rbp-0x2C]
jg SHORT G_M3489_IG37
- ;; size=80 bbWeight=4 PerfScore 66.00
+ ;; size=79 bbWeight=4 PerfScore 66.00
G_M3489_IG38:
mov eax, -1
;; size=5 bbWeight=0.50 PerfScore 0.12
G_M3489_IG39:
vzeroupper
add rsp, 328
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=21 bbWeight=0.50 PerfScore 2.62
G_M3489_IG40:
mov eax, r12d
;; size=3 bbWeight=0.50 PerfScore 0.12
G_M3489_IG41:
vzeroupper
add rsp, 328
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=21 bbWeight=0.50 PerfScore 2.62
G_M3489_IG42:
movsx rsi, word ptr [r14]
movzx rdi, si
dec edi
cmp edi, 254
jb SHORT G_M3489_IG44
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int
;; size=30 bbWeight=0.50 PerfScore 3.12
G_M3489_IG43:
vzeroupper
add rsp, 328
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
tail.jmp [rax]System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int
;; size=23 bbWeight=0.50 PerfScore 3.12
G_M3489_IG44:
movsx rsi, si
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.PackedSpanHelpers:IndexOf[System.SpanHelpers+DontNegate`1[short],System.PackedSpanHelpers+NopTransform](byref,short,int):int
;; size=17 bbWeight=0.50 PerfScore 0.38
G_M3489_IG45:
vzeroupper
add rsp, 328
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
tail.jmp [rax]System.PackedSpanHelpers:IndexOf[System.SpanHelpers+DontNegate`1[short],System.PackedSpanHelpers+NopTransform](byref,short,int):int
;; size=23 bbWeight=0.50 PerfScore 3.12
G_M3489_IG46:
xor eax, eax
;; size=2 bbWeight=0.50 PerfScore 0.12
G_M3489_IG47:
vzeroupper
add rsp, 328
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=21 bbWeight=0.50 PerfScore 2.62
-; Total bytes of code 1234, prolog size 35, PerfScore 1715.75, instruction count 311, allocated bytes for code 1240 (MethodHash=624ef25e) for method System.SpanHelpers:IndexOf(byref,int,byref,int):int (FullOpts)
+; Total bytes of code 1221, prolog size 35, PerfScore 1715.75, instruction count 311, allocated bytes for code 1227 (MethodHash=624ef25e) for method System.SpanHelpers:IndexOf(byref,int,byref,int):int (FullOpts)
; ============================================================ -16 (-0.87 % of base) - System.TimeZoneInfo+TransitionTime:System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext):this ; Assembly listing for method System.TimeZoneInfo+TransitionTime:System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext):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; 19 single block inlinees; 8 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T01] ( 8, 7.50) byref -> r15 this single-def
; V01 arg1 [V01,T00] ( 76, 67.50) ref -> rbx class-hnd single-def <System.Runtime.Serialization.SerializationInfo>
;* V02 arg2 [V02 ] ( 0, 0 ) struct (16) zero-ref multireg-arg single-def <System.Runtime.Serialization.StreamingContext>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04,T36] ( 3, 3 ) ref -> r13 class-hnd exact single-def "Single-def Box Helper" <System.DayOfWeek>
;* V05 tmp2 [V05 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.DateTime>
; V06 tmp3 [V06,T05] ( 3, 6 ) ref -> r13 class-hnd exact single-def "Single-def Box Helper" <System.DateTime>
;* V07 tmp4 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.DateTime>
;* V08 tmp5 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.DateTime>
; V09 tmp6 [V09,T50] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.Runtime.Serialization.SerializationException>
; V10 tmp7 [V10,T06] ( 3, 6 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.String,int]>
; V11 tmp8 [V11,T27] ( 2, 4 ) int -> rdx "Inlining Arg"
; V12 tmp9 [V12,T28] ( 2, 4 ) ubyte -> r13 "Inlining Arg"
; V13 tmp10 [V13,T07] ( 3, 6 ) ref -> [rbp-0x38] class-hnd exact spill-single-def "Single-def Box Helper" <System.Byte>
;* V14 tmp11 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Byte>
;* V15 tmp12 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Byte>
; V16 tmp13 [V16,T51] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.Runtime.Serialization.SerializationException>
; V17 tmp14 [V17,T08] ( 3, 6 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.String,int]>
; V18 tmp15 [V18,T29] ( 2, 4 ) int -> rdx "Inlining Arg"
; V19 tmp16 [V19,T30] ( 2, 4 ) ubyte -> [rbp-0x2C] spill-single-def "Inlining Arg"
; V20 tmp17 [V20,T09] ( 3, 6 ) ref -> [rbp-0x40] class-hnd exact spill-single-def "Single-def Box Helper" <System.Byte>
;* V21 tmp18 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Byte>
;* V22 tmp19 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Byte>
; V23 tmp20 [V23,T52] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.Runtime.Serialization.SerializationException>
; V24 tmp21 [V24,T10] ( 3, 6 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.String,int]>
; V25 tmp22 [V25,T31] ( 2, 4 ) int -> rdx "Inlining Arg"
; V26 tmp23 [V26,T32] ( 2, 4 ) ubyte -> [rbp-0x30] spill-single-def "Inlining Arg"
; V27 tmp24 [V27,T24] ( 3, 5 ) ref -> [rbp-0x48] class-hnd exact spill-single-def "Single-def Box Helper" <System.Byte>
;* V28 tmp25 [V28 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Byte>
;* V29 tmp26 [V29 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Byte>
; V30 tmp27 [V30,T53] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.Runtime.Serialization.SerializationException>
; V31 tmp28 [V31,T11] ( 3, 6 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.String,int]>
; V32 tmp29 [V32,T33] ( 2, 4 ) int -> rdx "Inlining Arg"
; V33 tmp30 [V33,T25] ( 3, 4 ) ref -> r13 class-hnd exact single-def "Inlining Arg" <System.DayOfWeek>
;* V34 tmp31 [V34 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "NewObj constructor temp" <System.Runtime.Serialization.SerializationException>
;* V35 tmp32 [V35 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.String,int]>
;* V36 tmp33 [V36 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V37 tmp34 [V37,T26] ( 3, 4 ) ref -> [rbp-0x50] class-hnd exact spill-single-def "Inlining Arg" <System.RuntimeType>
; V38 tmp35 [V38,T54] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.Runtime.Serialization.SerializationException>
; V39 tmp36 [V39,T37] ( 3, 3 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.String,int]>
; V40 tmp37 [V40,T47] ( 2, 2 ) int -> rdx "Inlining Arg"
; V41 tmp38 [V41,T34] ( 2, 4 ) ubyte -> r15 "Inlining Arg"
; V42 tmp39 [V42,T12] ( 3, 6 ) ref -> r13 class-hnd exact single-def "Single-def Box Helper" <System.Boolean>
;* V43 tmp40 [V43 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Boolean>
;* V44 tmp41 [V44 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Boolean>
; V45 tmp42 [V45,T55] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.Runtime.Serialization.SerializationException>
; V46 tmp43 [V46,T13] ( 3, 6 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.String,int]>
; V47 tmp44 [V47,T35] ( 2, 4 ) int -> rdx "Inlining Arg"
; V48 tmp45 [V48,T45] ( 1, 1 ) ref -> rdx single-def "field V02._additionalContext (fldOffset=0x0)" P-INDEP
; V49 tmp46 [V49,T46] ( 1, 1 ) int -> rcx single-def "field V02._state (fldOffset=0x8)" P-INDEP
; V50 tmp47 [V50,T48] ( 2, 2 ) long -> r14 "field V05._dateData (fldOffset=0x0)" P-INDEP
; V51 tmp48 [V51,T14] ( 3, 6 ) ref -> rdx single-def "arr expr"
; V52 tmp49 [V52,T19] ( 3, 6 ) int -> rdi "index expr"
; V53 tmp50 [V53,T15] ( 3, 6 ) ref -> rdx single-def "arr expr"
; V54 tmp51 [V54,T20] ( 3, 6 ) int -> rdi "index expr"
; V55 tmp52 [V55,T16] ( 3, 6 ) ref -> rdx single-def "arr expr"
; V56 tmp53 [V56,T21] ( 3, 6 ) int -> rdi "index expr"
; V57 tmp54 [V57,T38] ( 3, 3 ) ref -> rdx single-def "arr expr"
; V58 tmp55 [V58,T39] ( 3, 3 ) int -> rdi "index expr"
; V59 tmp56 [V59,T17] ( 3, 6 ) ref -> rsi single-def "arr expr"
; V60 tmp57 [V60,T22] ( 3, 6 ) int -> rdx "index expr"
; V61 tmp58 [V61,T56] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
;* V62 tmp59 [V62 ] ( 0, 0 ) ref -> zero-ref single-def "arr expr"
;* V63 tmp60 [V63 ] ( 0, 0 ) int -> zero-ref "index expr"
;* V64 tmp61 [V64 ] ( 0, 0 ) ref -> zero-ref single-def "arr expr"
;* V65 tmp62 [V65 ] ( 0, 0 ) long -> zero-ref "index expr"
; V66 tmp63 [V66,T18] ( 3, 6 ) ref -> rdx single-def "arr expr"
; V67 tmp64 [V67,T23] ( 3, 6 ) int -> rdi "index expr"
; V68 tmp65 [V68,T57] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
;* V69 tmp66 [V69 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
; V70 tmp67 [V70,T58] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
; V71 tmp68 [V71,T59] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
; V72 tmp69 [V72,T60] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
; V73 tmp70 [V73,T61] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
; V74 cse0 [V74,T40] ( 3, 3 ) int -> rsi "CSE #02: conservative"
; V75 cse1 [V75,T41] ( 3, 3 ) int -> rsi "CSE #08: conservative"
; V76 cse2 [V76,T42] ( 3, 3 ) int -> rsi "CSE #12: conservative"
; V77 cse3 [V77,T49] ( 3, 1.50) int -> rsi "CSE #14: conservative"
; V78 cse4 [V78,T43] ( 3, 3 ) int -> rsi "CSE #20: conservative"
; V79 cse5 [V79,T44] ( 3, 3 ) int -> rdi "CSE #18: conservative"
; V80 cse6 [V80,T02] ( 7, 6.50) ref -> r14 "CSE #04: aggressive"
; V81 cse7 [V81,T03] ( 7, 6.50) ref -> r12 "CSE #05: aggressive"
; V82 cse8 [V82,T04] ( 7, 6.50) ref -> r13 "CSE #09: aggressive"
;
; Lcl frame size = 40
G_M13785_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 40
lea rbp, [rsp+0x50]
mov r15, rdi
mov rbx, rsi
;; size=25 bbWeight=1 PerfScore 7.25
G_M13785_IG02:
mov rdi, rbx
mov rsi, 0xD1FFAB1E ; 'info'
mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
call [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
mov r14, qword ptr [r15]
cmp byte ptr [rbx], bl
mov rdi, 0xD1FFAB1E ; System.DateTime
call CORINFO_HELP_NEWSFAST
mov r13, rax
mov qword ptr [r13+0x08], r14
mov rdi, 0xD1FFAB1E ; 'TimeOfDay'
mov r14, 0xD1FFAB1E ; 'name'
mov rsi, r14
mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
call [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
mov rdi, 0xD1FFAB1E ; 'System.DateTime'
mov r12, 0xD1FFAB1E ; 'type'
mov rsi, r12
mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
call [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
mov rdi, gword ptr [rbx+0x20]
mov edx, dword ptr [rbx+0x48]
cmp byte ptr [rdi], dil
mov rsi, 0xD1FFAB1E ; 'TimeOfDay'
xor ecx, ecx
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.Dictionary`2[System.__Canon,int]:TryInsert(System.__Canon,int,ubyte):ubyte:this
call [rax]System.Collections.Generic.Dictionary`2[System.__Canon,int]:TryInsert(System.__Canon,int,ubyte):ubyte:this
test eax, eax
je G_M13785_IG24
mov edi, dword ptr [rbx+0x48]
mov rax, gword ptr [rbx+0x08]
cmp edi, dword ptr [rax+0x08]
jl SHORT G_M13785_IG04
;; size=176 bbWeight=1 PerfScore 39.25
G_M13785_IG03:
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Runtime.Serialization.SerializationInfo:ExpandArrays():this
call [rax]System.Runtime.Serialization.SerializationInfo:ExpandArrays():this
;; size=15 bbWeight=0.50 PerfScore 1.75
G_M13785_IG04:
mov rdx, gword ptr [rbx+0x08]
mov esi, dword ptr [rbx+0x48]
mov edi, esi
cmp edi, dword ptr [rdx+0x08]
jae G_M13785_IG25
mov rax, 0xD1FFAB1E ; 'TimeOfDay'
mov gword ptr [rdx+8*rdi+0x10], rax
mov rdx, r13
- movsxd rsi, esi
mov rdi, gword ptr [rbx+0x10]
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
call [rax]CORINFO_HELP_ARRADDR_ST
movsxd rsi, dword ptr [rbx+0x48]
mov rdi, gword ptr [rbx+0x18]
mov rdx, 0xD1FFAB1E ; 'System.DateTime'
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
call [rax]CORINFO_HELP_ARRADDR_ST
inc dword ptr [rbx+0x48]
movzx r13, byte ptr [r15+0x08]
mov rdi, 0xD1FFAB1E ; System.Byte
call CORINFO_HELP_NEWSFAST
mov gword ptr [rbp-0x38], rax
mov byte ptr [rax+0x08], r13b
mov rdi, 0xD1FFAB1E ; 'Month'
mov rsi, r14
mov rcx, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
call [rcx]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
mov r13, 0xD1FFAB1E ; 'System.Byte'
mov rdi, r13
mov rsi, r12
mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
call [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
mov rdi, gword ptr [rbx+0x20]
mov edx, dword ptr [rbx+0x48]
cmp byte ptr [rdi], dil
mov rsi, 0xD1FFAB1E ; 'Month'
xor ecx, ecx
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.Dictionary`2[System.__Canon,int]:TryInsert(System.__Canon,int,ubyte):ubyte:this
call [rax]System.Collections.Generic.Dictionary`2[System.__Canon,int]:TryInsert(System.__Canon,int,ubyte):ubyte:this
test eax, eax
je G_M13785_IG23
mov edi, dword ptr [rbx+0x48]
mov rax, gword ptr [rbx+0x08]
cmp edi, dword ptr [rax+0x08]
- ;; size=221 bbWeight=1 PerfScore 59.75
+ ;; size=218 bbWeight=1 PerfScore 59.50
G_M13785_IG05:
jl SHORT G_M13785_IG07
;; size=2 bbWeight=1 PerfScore 1.00
G_M13785_IG06:
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Runtime.Serialization.SerializationInfo:ExpandArrays():this
call [rax]System.Runtime.Serialization.SerializationInfo:ExpandArrays():this
;; size=15 bbWeight=0.50 PerfScore 1.75
G_M13785_IG07:
mov rdx, gword ptr [rbx+0x08]
mov esi, dword ptr [rbx+0x48]
mov edi, esi
cmp edi, dword ptr [rdx+0x08]
jae G_M13785_IG25
mov rax, 0xD1FFAB1E ; 'Month'
mov gword ptr [rdx+8*rdi+0x10], rax
mov rdx, gword ptr [rbp-0x38]
- movsxd rsi, esi
mov rdi, gword ptr [rbx+0x10]
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
call [rax]CORINFO_HELP_ARRADDR_ST
movsxd rsi, dword ptr [rbx+0x48]
mov rdi, gword ptr [rbx+0x18]
mov rdx, r13
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
call [rax]CORINFO_HELP_ARRADDR_ST
inc dword ptr [rbx+0x48]
movzx rax, byte ptr [r15+0x09]
mov dword ptr [rbp-0x2C], eax
mov rdi, 0xD1FFAB1E ; System.Byte
call CORINFO_HELP_NEWSFAST
mov gword ptr [rbp-0x40], rax
mov edi, dword ptr [rbp-0x2C]
mov byte ptr [rax+0x08], dil
mov rdi, 0xD1FFAB1E ; 'Week'
mov rsi, r14
mov rcx, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
call [rcx]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
mov rdi, r13
mov rsi, r12
mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
call [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
mov rdi, gword ptr [rbx+0x20]
mov edx, dword ptr [rbx+0x48]
cmp byte ptr [rdi], dil
mov rsi, 0xD1FFAB1E ; 'Week'
xor ecx, ecx
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.Dictionary`2[System.__Canon,int]:TryInsert(System.__Canon,int,ubyte):ubyte:this
call [rax]System.Collections.Generic.Dictionary`2[System.__Canon,int]:TryInsert(System.__Canon,int,ubyte):ubyte:this
test eax, eax
je G_M13785_IG22
mov edi, dword ptr [rbx+0x48]
mov rax, gword ptr [rbx+0x08]
cmp edi, dword ptr [rax+0x08]
- ;; size=211 bbWeight=1 PerfScore 62.25
+ ;; size=208 bbWeight=1 PerfScore 62.00
G_M13785_IG08:
jl SHORT G_M13785_IG10
;; size=2 bbWeight=1 PerfScore 1.00
G_M13785_IG09:
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Runtime.Serialization.SerializationInfo:ExpandArrays():this
call [rax]System.Runtime.Serialization.SerializationInfo:ExpandArrays():this
;; size=15 bbWeight=0.50 PerfScore 1.75
G_M13785_IG10:
mov rdx, gword ptr [rbx+0x08]
mov esi, dword ptr [rbx+0x48]
mov edi, esi
cmp edi, dword ptr [rdx+0x08]
jae G_M13785_IG25
mov rax, 0xD1FFAB1E ; 'Week'
mov gword ptr [rdx+8*rdi+0x10], rax
mov rdx, gword ptr [rbp-0x40]
- movsxd rsi, esi
mov rdi, gword ptr [rbx+0x10]
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
call [rax]CORINFO_HELP_ARRADDR_ST
movsxd rsi, dword ptr [rbx+0x48]
mov rdi, gword ptr [rbx+0x18]
mov rdx, r13
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
call [rax]CORINFO_HELP_ARRADDR_ST
inc dword ptr [rbx+0x48]
movzx rax, byte ptr [r15+0x0A]
mov dword ptr [rbp-0x30], eax
mov rdi, 0xD1FFAB1E ; System.Byte
call CORINFO_HELP_NEWSFAST
mov gword ptr [rbp-0x48], rax
mov edi, dword ptr [rbp-0x30]
mov byte ptr [rax+0x08], dil
mov rdi, 0xD1FFAB1E ; 'Day'
mov rsi, r14
mov rcx, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
call [rcx]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
mov rdi, r13
mov rsi, r12
mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
call [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
mov rdi, gword ptr [rbx+0x20]
mov edx, dword ptr [rbx+0x48]
cmp byte ptr [rdi], dil
mov rsi, 0xD1FFAB1E ; 'Day'
xor ecx, ecx
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.Dictionary`2[System.__Canon,int]:TryInsert(System.__Canon,int,ubyte):ubyte:this
call [rax]System.Collections.Generic.Dictionary`2[System.__Canon,int]:TryInsert(System.__Canon,int,ubyte):ubyte:this
test eax, eax
je G_M13785_IG21
mov edi, dword ptr [rbx+0x48]
mov rax, gword ptr [rbx+0x08]
cmp edi, dword ptr [rax+0x08]
- ;; size=211 bbWeight=1 PerfScore 62.25
+ ;; size=208 bbWeight=1 PerfScore 62.00
G_M13785_IG11:
jl SHORT G_M13785_IG13
;; size=2 bbWeight=1 PerfScore 1.00
G_M13785_IG12:
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Runtime.Serialization.SerializationInfo:ExpandArrays():this
call [rax]System.Runtime.Serialization.SerializationInfo:ExpandArrays():this
;; size=15 bbWeight=0.50 PerfScore 1.75
G_M13785_IG13:
mov rdx, gword ptr [rbx+0x08]
mov esi, dword ptr [rbx+0x48]
mov edi, esi
cmp edi, dword ptr [rdx+0x08]
jae G_M13785_IG25
mov rax, 0xD1FFAB1E ; 'Day'
mov gword ptr [rdx+8*rdi+0x10], rax
mov rdx, gword ptr [rbp-0x48]
- movsxd rsi, esi
mov rdi, gword ptr [rbx+0x10]
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
call [rax]CORINFO_HELP_ARRADDR_ST
movsxd rsi, dword ptr [rbx+0x48]
mov rdi, gword ptr [rbx+0x18]
mov rdx, r13
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
call [rax]CORINFO_HELP_ARRADDR_ST
inc dword ptr [rbx+0x48]
mov rdi, 0xD1FFAB1E ; System.DayOfWeek
call CORINFO_HELP_NEWSFAST
mov r13, rax
mov edi, dword ptr [r15+0x0C]
mov dword ptr [r13+0x08], edi
mov rdi, r13
mov rax, 0xD1FFAB1E ; code for System.Object:GetType():System.Type:this
call [rax]System.Object:GetType():System.Type:this
mov gword ptr [rbp-0x50], rax
mov rdi, 0xD1FFAB1E ; 'DayOfWeek'
mov rsi, r14
mov rcx, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
call [rcx]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
mov rdi, gword ptr [rbp-0x50]
mov rsi, r12
mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
call [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
mov rdi, gword ptr [rbx+0x20]
mov edx, dword ptr [rbx+0x48]
cmp byte ptr [rdi], dil
mov rsi, 0xD1FFAB1E ; 'DayOfWeek'
xor ecx, ecx
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.Dictionary`2[System.__Canon,int]:TryInsert(System.__Canon,int,ubyte):ubyte:this
call [rax]System.Collections.Generic.Dictionary`2[System.__Canon,int]:TryInsert(System.__Canon,int,ubyte):ubyte:this
test eax, eax
je G_M13785_IG20
- ;; size=213 bbWeight=0.50 PerfScore 28.88
-G_M13785_IG14:
mov edi, dword ptr [rbx+0x48]
+ ;; size=213 bbWeight=0.50 PerfScore 29.75
+G_M13785_IG14:
mov rax, gword ptr [rbx+0x08]
cmp edi, dword ptr [rax+0x08]
jl SHORT G_M13785_IG15
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Runtime.Serialization.SerializationInfo:ExpandArrays():this
call [rax]System.Runtime.Serialization.SerializationInfo:ExpandArrays():this
- ;; size=27 bbWeight=0.50 PerfScore 5.75
+ ;; size=24 bbWeight=0.50 PerfScore 4.75
G_M13785_IG15:
mov rsi, gword ptr [rbx+0x08]
mov edi, dword ptr [rbx+0x48]
mov edx, edi
cmp edx, dword ptr [rsi+0x08]
jae G_M13785_IG25
mov rax, 0xD1FFAB1E ; 'DayOfWeek'
mov gword ptr [rsi+8*rdx+0x10], rax
- movsxd rsi, edi
+ mov esi, edi
mov rdi, gword ptr [rbx+0x10]
mov rdx, r13
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
call [rax]CORINFO_HELP_ARRADDR_ST
movsxd rsi, dword ptr [rbx+0x48]
mov rdi, gword ptr [rbx+0x18]
mov rdx, gword ptr [rbp-0x50]
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
call [rax]CORINFO_HELP_ARRADDR_ST
inc dword ptr [rbx+0x48]
movzx r15, byte ptr [r15+0x10]
mov rdi, 0xD1FFAB1E ; System.Boolean
call CORINFO_HELP_NEWSFAST
mov r13, rax
mov byte ptr [r13+0x08], r15b
mov rdi, 0xD1FFAB1E ; 'IsFixedDateRule'
mov rsi, r14
mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
call [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
mov rdi, 0xD1FFAB1E ; 'System.Boolean'
mov rsi, r12
mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
call [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
mov rdi, gword ptr [rbx+0x20]
mov edx, dword ptr [rbx+0x48]
cmp byte ptr [rdi], dil
mov rsi, 0xD1FFAB1E ; 'IsFixedDateRule'
xor ecx, ecx
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.Dictionary`2[System.__Canon,int]:TryInsert(System.__Canon,int,ubyte):ubyte:this
call [rax]System.Collections.Generic.Dictionary`2[System.__Canon,int]:TryInsert(System.__Canon,int,ubyte):ubyte:this
test eax, eax
je G_M13785_IG19
mov edi, dword ptr [rbx+0x48]
mov rax, gword ptr [rbx+0x08]
cmp edi, dword ptr [rax+0x08]
jl SHORT G_M13785_IG17
- ;; size=213 bbWeight=1 PerfScore 60.50
+ ;; size=212 bbWeight=1 PerfScore 60.50
G_M13785_IG16:
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Runtime.Serialization.SerializationInfo:ExpandArrays():this
call [rax]System.Runtime.Serialization.SerializationInfo:ExpandArrays():this
;; size=15 bbWeight=0.50 PerfScore 1.75
G_M13785_IG17:
mov rdx, gword ptr [rbx+0x08]
mov esi, dword ptr [rbx+0x48]
mov edi, esi
cmp edi, dword ptr [rdx+0x08]
jae G_M13785_IG25
mov rax, 0xD1FFAB1E ; 'IsFixedDateRule'
mov gword ptr [rdx+8*rdi+0x10], rax
mov rdx, r13
- movsxd rsi, esi
mov rdi, gword ptr [rbx+0x10]
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
call [rax]CORINFO_HELP_ARRADDR_ST
movsxd rsi, dword ptr [rbx+0x48]
mov rdi, gword ptr [rbx+0x18]
mov rdx, 0xD1FFAB1E ; 'System.Boolean'
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
call [rax]CORINFO_HELP_ARRADDR_ST
inc dword ptr [rbx+0x48]
- ;; size=88 bbWeight=1 PerfScore 27.75
+ ;; size=85 bbWeight=1 PerfScore 27.50
G_M13785_IG18:
add rsp, 40
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.25
G_M13785_IG19:
mov rdi, 0xD1FFAB1E ; System.Runtime.Serialization.SerializationException
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov rax, 0xD1FFAB1E ; code for System.SR:get_Serialization_SameNameTwice():System.String
call [rax]System.SR:get_Serialization_SameNameTwice():System.String
mov rsi, rax
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Runtime.Serialization.SerializationException:.ctor(System.String):this
call [rax]System.Runtime.Serialization.SerializationException:.ctor(System.String):this
mov rdi, rbx
call CORINFO_HELP_THROW
int3
;; size=57 bbWeight=0 PerfScore 0.00
G_M13785_IG20:
mov rdi, 0xD1FFAB1E ; System.Runtime.Serialization.SerializationException
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov rax, 0xD1FFAB1E ; code for System.SR:get_Serialization_SameNameTwice():System.String
call [rax]System.SR:get_Serialization_SameNameTwice():System.String
mov rsi, rax
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Runtime.Serialization.SerializationException:.ctor(System.String):this
call [rax]System.Runtime.Serialization.SerializationException:.ctor(System.String):this
mov rdi, rbx
call CORINFO_HELP_THROW
int3
;; size=57 bbWeight=0 PerfScore 0.00
G_M13785_IG21:
mov rdi, 0xD1FFAB1E ; System.Runtime.Serialization.SerializationException
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov rax, 0xD1FFAB1E ; code for System.SR:get_Serialization_SameNameTwice():System.String
call [rax]System.SR:get_Serialization_SameNameTwice():System.String
mov rsi, rax
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Runtime.Serialization.SerializationException:.ctor(System.String):this
call [rax]System.Runtime.Serialization.SerializationException:.ctor(System.String):this
mov rdi, rbx
call CORINFO_HELP_THROW
int3
;; size=57 bbWeight=0 PerfScore 0.00
G_M13785_IG22:
mov rdi, 0xD1FFAB1E ; System.Runtime.Serialization.SerializationException
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov rax, 0xD1FFAB1E ; code for System.SR:get_Serialization_SameNameTwice():System.String
call [rax]System.SR:get_Serialization_SameNameTwice():System.String
mov rsi, rax
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Runtime.Serialization.SerializationException:.ctor(System.String):this
call [rax]System.Runtime.Serialization.SerializationException:.ctor(System.String):this
mov rdi, rbx
call CORINFO_HELP_THROW
int3
;; size=57 bbWeight=0 PerfScore 0.00
G_M13785_IG23:
mov rdi, 0xD1FFAB1E ; System.Runtime.Serialization.SerializationException
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov rax, 0xD1FFAB1E ; code for System.SR:get_Serialization_SameNameTwice():System.String
call [rax]System.SR:get_Serialization_SameNameTwice():System.String
mov rsi, rax
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Runtime.Serialization.SerializationException:.ctor(System.String):this
call [rax]System.Runtime.Serialization.SerializationException:.ctor(System.String):this
mov rdi, rbx
call CORINFO_HELP_THROW
int3
;; size=57 bbWeight=0 PerfScore 0.00
G_M13785_IG24:
mov rdi, 0xD1FFAB1E ; System.Runtime.Serialization.SerializationException
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov rax, 0xD1FFAB1E ; code for System.SR:get_Serialization_SameNameTwice():System.String
call [rax]System.SR:get_Serialization_SameNameTwice():System.String
mov rsi, rax
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Runtime.Serialization.SerializationException:.ctor(System.String):this
call [rax]System.Runtime.Serialization.SerializationException:.ctor(System.String):this
mov rdi, rbx
call CORINFO_HELP_THROW
int3
;; size=57 bbWeight=0 PerfScore 0.00
G_M13785_IG25:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1829, prolog size 19, PerfScore 369.62, instruction count 390, allocated bytes for code 1829 (MethodHash=62eaca26) for method System.TimeZoneInfo+TransitionTime:System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext):this (FullOpts)
+; Total bytes of code 1813, prolog size 19, PerfScore 368.50, instruction count 385, allocated bytes for code 1813 (MethodHash=62eaca26) for method System.TimeZoneInfo+TransitionTime:System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext):this (FullOpts)
; ============================================================ Note: some changes were skipped as they were too large to fit into a comment. Larger list of diffs: https://gist.github.com/MihuBot/dad1dd3eb768e7b53193ff7ce38f5e3d |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Job completed in 18 minutes 26 seconds.
dotnet/runtime#111305
Diffs
Diffs
Artifacts:
The text was updated successfully, but these errors were encountered: