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
[X64] [EgorBo] Keep this alive for classes with finalizers #463
Comments
Top method regressions94 (7.54 % of base) - System.Diagnostics.Tracing.EventSource:WriteEventString(System.String):this ; Assembly listing for method System.Diagnostics.Tracing.EventSource:WriteEventString(System.String):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; 17 single block inlinees; 4 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 22, 13 ) ref -> rbx this class-hnd single-def <System.Diagnostics.Tracing.EventSource>
-; V01 arg1 [V01,T01] ( 6, 4 ) ref -> r15 class-hnd single-def <System.String>
+; V00 this [V00,T00] ( 22, 13 ) ref -> [rbp-0x90] this class-hnd EH-live single-def <System.Diagnostics.Tracing.EventSource>
+; V01 arg1 [V01,T01] ( 6, 4 ) ref -> rbx class-hnd single-def <System.String>
;* V02 loc0 [V02 ] ( 0, 0 ) int -> zero-ref
;* V03 loc1 [V03 ] ( 0, 0 ) long -> zero-ref
; V04 loc2 [V04 ] ( 5, 2.50) struct (24) [rbp-0x40] do-not-enreg[XS] addr-exposed ld-addr-op <System.Diagnostics.Tracing.EventSourceOptions>
-; V05 loc3 [V05,T31] ( 2, 1 ) ref -> r14 class-hnd exact single-def <System.Diagnostics.Tracing.TraceLoggingEventTypes>
+; V05 loc3 [V05,T31] ( 2, 1 ) ref -> r15 class-hnd exact single-def <System.Diagnostics.Tracing.TraceLoggingEventTypes>
;* V06 loc4 [V06 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[SF] ld-addr-op <System.Diagnostics.Tracing.EventSourceOptions>
;* V07 loc5 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <System.Diagnostics.Tracing.ManifestBuilder>
;* V08 loc6 [V08 ] ( 0, 0 ) long -> zero-ref
; V09 loc7 [V09 ] ( 3, 1.50) byref -> [rbp-0x48] must-init pinned
; V10 loc8 [V10 ] ( 3, 1.50) struct (16) [rbp-0x58] do-not-enreg[XS] addr-exposed ld-addr-op <System.Diagnostics.Tracing.EventDescriptor>
; V11 loc9 [V11 ] ( 6, 3 ) struct (16) [rbp-0x68] do-not-enreg[XS] addr-exposed ld-addr-op <System.Diagnostics.Tracing.EventProvider+EventData>
-; V12 loc10 [V12,T30] ( 4, 1 ) ref -> [rbp-0x90] class-hnd EH-live spill-single-def <System.Object>
+; V12 loc10 [V12,T30] ( 4, 1 ) ref -> [rbp-0x98] class-hnd EH-live spill-single-def <System.Object>
; V13 loc11 [V13 ] ( 5, 2 ) ubyte -> [rbp-0x70] do-not-enreg[X] addr-exposed ld-addr-op
;* V14 loc12 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <System.String>
;* V15 loc13 [V15 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op <System.Diagnostics.Tracing.EventParameterInfo>
; V16 loc14 [V16,T05] ( 7, 3.50) ref -> rax class-hnd single-def <ubyte[]>
;* V17 loc15 [V17 ] ( 0, 0 ) int -> zero-ref
; V18 loc16 [V18,T25] ( 3, 1.50) long -> rsi
; V19 loc17 [V19 ] ( 2, 1 ) ref -> [rbp-0x78] must-init pinned class-hnd <ubyte[]>
; V20 OutArgs [V20 ] ( 1, 1 ) struct (16) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V21 tmp1 [V21,T26] ( 3, 1.50) long -> r14
-; V22 tmp2 [V22,T06] ( 3, 3 ) ref -> rdi class-hnd exact single-def "dup spill" <System.Diagnostics.Tracing.EventSource+OverrideEventProvider>
+; V21 tmp1 [V21,T26] ( 3, 1.50) long -> r15
+; V22 tmp2 [V22,T06] ( 3, 3 ) ref -> rsi class-hnd exact single-def "dup spill" <System.Diagnostics.Tracing.EventSource+OverrideEventProvider>
;* V23 tmp3 [V23 ] ( 0, 0 ) ref -> zero-ref single-def
; V24 tmp4 [V24,T07] ( 3, 3 ) ref -> rax class-hnd exact single-def "dup spill" <System.Diagnostics.Tracing.EventParameterInfo[]>
-; V25 tmp5 [V25,T14] ( 2, 2 ) ref -> r15 class-hnd exact single-def "impAppendStmt" <System.Diagnostics.Tracing.EventPipeMetadataGenerator>
+; V25 tmp5 [V25,T14] ( 2, 2 ) ref -> rbx class-hnd exact single-def "impAppendStmt" <System.Diagnostics.Tracing.EventPipeMetadataGenerator>
; V26 tmp6 [V26,T27] ( 3, 1.50) int -> rdi
; V27 tmp7 [V27,T15] ( 2, 2 ) ref -> rsi class-hnd exact single-def "NewObj constructor temp" <System.Object>
-; V28 tmp8 [V28,T08] ( 3, 3 ) byref -> rdi single-def "impAppendStmt"
-; V29 tmp9 [V29,T16] ( 2, 2 ) ref -> r13 class-hnd exact single-def "impAppendStmt" <System.String>
+; V28 tmp8 [V28,T08] ( 3, 3 ) byref -> rdx single-def "impAppendStmt"
+; V29 tmp9 [V29,T16] ( 2, 2 ) ref -> r14 class-hnd exact single-def "impAppendStmt" <System.String>
; V30 tmp10 [V30,T13] ( 3, 3 ) struct (16) [rbp-0x88] do-not-enreg[SFA] multireg-arg "impAppendStmt" <System.Guid>
-; V31 tmp11 [V31,T02] ( 6, 6 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.Diagnostics.Tracing.ManifestBuilder>
+; V31 tmp11 [V31,T02] ( 6, 6 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Diagnostics.Tracing.ManifestBuilder>
; V32 tmp12 [V32,T03] ( 5, 5 ) ref -> rax class-hnd exact single-def "NewObj constructor temp" <System.Diagnostics.Tracing.EventAttribute>
-; V33 tmp13 [V33,T09] ( 3, 3 ) ref -> r13 class-hnd exact single-def "dup spill" <System.Object[]>
+; V33 tmp13 [V33,T09] ( 3, 3 ) ref -> r14 class-hnd exact single-def "dup spill" <System.Object[]>
;* V34 tmp14 [V34 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V35 tmp15 [V35,T28] ( 3, 1.50) int -> r15 "Inline stloc first use temp"
+; V35 tmp15 [V35,T28] ( 3, 1.50) int -> rbx "Inline stloc first use temp"
;* V36 tmp16 [V36 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V37 tmp17 [V37 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Diagnostics.Tracing.EventSource+OverrideEventProvider>
;* V38 tmp18 [V38 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-; V39 tmp19 [V39,T29] ( 3, 1.50) int -> rbx "Inline stloc first use temp"
+; V39 tmp19 [V39,T29] ( 3, 1.50) int -> r15 "Inline stloc first use temp"
; V40 tmp20 [V40 ] ( 4, 2 ) long -> [rbp-0x68] do-not-enreg[X] addr-exposed "field V11.Ptr (fldOffset=0x0)" P-DEP
; V41 tmp21 [V41 ] ( 4, 2 ) int -> [rbp-0x60] do-not-enreg[X] addr-exposed "field V11.Size (fldOffset=0x8)" P-DEP
; V42 tmp22 [V42 ] ( 4, 2 ) int -> [rbp-0x5C] do-not-enreg[X] addr-exposed "field V11.Reserved (fldOffset=0xc)" P-DEP
;* V43 tmp23 [V43,T33] ( 0, 0 ) ref -> zero-ref single-def "field V15.ParameterName (fldOffset=0x0)" P-INDEP
;* V44 tmp24 [V44,T34] ( 0, 0 ) ref -> zero-ref single-def "field V15.ParameterType (fldOffset=0x8)" P-INDEP
;* V45 tmp25 [V45,T35] ( 0, 0 ) ref -> zero-ref single-def "field V15.TypeInfo (fldOffset=0x10)" P-INDEP
;* V46 tmp26 [V46 ] ( 0, 0 ) long -> zero-ref "V06.[000..008)"
;* V47 tmp27 [V47 ] ( 0, 0 ) ubyte -> zero-ref "V06.[016..017)"
;* V48 tmp28 [V48 ] ( 0, 0 ) ubyte -> zero-ref "V06.[018..019)"
; V49 tmp29 [V49,T17] ( 2, 2 ) ref -> rsi single-def "argument with side effect"
-; V50 tmp30 [V50,T18] ( 2, 2 ) long -> r14 "Cast away GC"
-; V51 tmp31 [V51,T10] ( 3, 3 ) ref -> rdi single-def "argument with side effect"
+; V50 tmp30 [V50,T18] ( 2, 2 ) long -> r15 "Cast away GC"
+; V51 tmp31 [V51,T10] ( 3, 3 ) ref -> rax single-def "argument with side effect"
; V52 tmp32 [V52,T04] ( 4, 4 ) byref -> rdi single-def "BlockOp address local"
; V53 tmp33 [V53,T19] ( 2, 2 ) long -> rsi "Cast away GC"
; V54 tmp34 [V54,T11] ( 3, 3 ) ref -> rax single-def "argument with side effect"
-; V55 tmp35 [V55,T12] ( 3, 3 ) ref -> rdi single-def "argument with side effect"
+; V55 tmp35 [V55,T12] ( 3, 3 ) ref -> rax single-def "argument with side effect"
; V56 PSPSym [V56,T32] ( 1, 1 ) long -> [rbp-0xA0] do-not-enreg[V] "PSPSym"
-; V57 cse0 [V57,T24] ( 3, 1.50) ref -> r14 "CSE #01: moderate"
+; V57 cse0 [V57,T24] ( 3, 1.50) ref -> r15 "CSE #01: moderate"
; V58 rat0 [V58,T20] ( 2, 2 ) long -> rax "TLS field access"
; V59 rat1 [V59,T21] ( 2, 2 ) long -> rax "TLS access"
; V60 rat2 [V60,T22] ( 2, 2 ) long -> rax "TLS field access"
; V61 rat3 [V61,T23] ( 2, 2 ) long -> rax "TLS access"
;
-; Lcl frame size = 136
+; Lcl frame size = 144
G_M12525_IG01:
push rbp
push r15
push r14
push r13
- push r12
push rbx
- sub rsp, 136
+ sub rsp, 144
lea rbp, [rsp+0xB0]
xor eax, eax
mov qword ptr [rbp-0x48], rax
mov qword ptr [rbp-0x78], rax
mov qword ptr [rbp-0xA0], rsp
- mov rbx, rdi
- mov r15, rsi
- ;; size=48 bbWeight=1 PerfScore 10.50
+ mov qword ptr [rbp-0x28], rdi
+ mov gword ptr [rbp-0x90], rdi
+ mov rbx, rsi
+ ;; size=54 bbWeight=1 PerfScore 11.25
G_M12525_IG02:
- cmp gword ptr [rbx+0x30], 0
+ cmp gword ptr [rdi+0x30], 0
sete al
movzx rax, al
- cmp gword ptr [rbx+0x40], 0
+ cmp gword ptr [rdi+0x40], 0
sete cl
movzx rcx, cl
test eax, ecx
je SHORT G_M12525_IG04
;; size=26 bbWeight=1 PerfScore 9.75
G_M12525_IG03:
- add rsp, 136
+ add rsp, 144
pop rbx
- pop r12
pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=18 bbWeight=0.50 PerfScore 2.12
+ ;; size=16 bbWeight=0.50 PerfScore 1.88
G_M12525_IG04:
- test byte ptr [rbx+0x94], 8
+ test byte ptr [rdi+0x94], 8
je G_M12525_IG06
vxorps xmm0, xmm0, xmm0
vmovdqu xmmword ptr [rbp-0x40], xmm0
vmovdqu xmmword ptr [rbp-0x38], xmm0
mov qword ptr [rbp-0x40], -1
mov byte ptr [rbp-0x30], 0
mov byte ptr [rbp-0x2E], 5
mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.EventSource:<WriteEventString>g__GetTrimSafeTraceLoggingEventTypes|80_0():System.Diagnostics.Tracing.TraceLoggingEventTypes
call [rax]System.Diagnostics.Tracing.EventSource:<WriteEventString>g__GetTrimSafeTraceLoggingEventTypes|80_0():System.Diagnostics.Tracing.TraceLoggingEventTypes
- mov r14, rax
+ mov r15, rax
mov rdi, 0xD1FFAB1E ; System.Object[]
mov esi, 1
call CORINFO_HELP_NEWARR_1_OBJ
- mov r13, rax
- lea rdi, bword ptr [r13+0x10]
- mov rsi, r15
+ mov r14, rax
+ lea rdi, bword ptr [r14+0x10]
+ mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
- mov gword ptr [rsp], r13
+ mov gword ptr [rsp], r14
lea rdx, [rbp-0x40]
- mov rdi, rbx
- mov rcx, r14
+ mov rdi, gword ptr [rbp-0x90]
+ mov rcx, r15
mov rsi, 0xD1FFAB1E ; 'EventSourceMessage'
xor r8d, r8d
xor r9d, r9d
mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.EventSource:WriteMultiMergeInner(System.String,byref,System.Diagnostics.Tracing.TraceLoggingEventTypes,ulong,ulong,System.Object[]):this
call [rax]System.Diagnostics.Tracing.EventSource:WriteMultiMergeInner(System.String,byref,System.Diagnostics.Tracing.TraceLoggingEventTypes,ulong,ulong,System.Object[]):this
nop
- ;; size=136 bbWeight=0.50 PerfScore 11.29
+ ;; size=140 bbWeight=0.50 PerfScore 11.67
G_M12525_IG05:
- add rsp, 136
+ add rsp, 144
pop rbx
- pop r12
pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=18 bbWeight=0.50 PerfScore 2.12
+ ;; size=16 bbWeight=0.50 PerfScore 1.88
G_M12525_IG06:
- cmp gword ptr [rbx+0x18], 0
- jne G_M12525_IG07
- cmp byte ptr [rbx+0x9F], 1
- jne G_M12525_IG07
- mov r14, gword ptr [rbx+0x08]
- mov r13, r14
- vmovups xmm0, xmmword ptr [rbx+0xA0]
+ mov rdi, gword ptr [rbp-0x90]
+ cmp gword ptr [rdi+0x18], 0
+ jne G_M12525_IG08
+ cmp byte ptr [rdi+0x9F], 1
+ jne G_M12525_IG08
+ mov r15, gword ptr [rdi+0x08]
+ mov r14, r15
+ vmovups xmm0, xmmword ptr [rdi+0xA0]
vmovups xmmword ptr [rbp-0x88], xmm0
mov rdi, 0xD1FFAB1E ; System.Diagnostics.Tracing.ManifestBuilder
call CORINFO_HELP_NEWSFAST
- mov r12, rax
+ mov r13, rax
xor edx, edx
mov dword ptr [rsp], edx
mov rdx, qword ptr [rbp-0x88]
mov rcx, qword ptr [rbp-0x80]
- mov r8, r14
- mov rdi, r12
- mov rsi, r13
+ mov r8, r15
+ mov rdi, r13
+ mov rsi, r14
xor r9, r9
mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.ManifestBuilder:.ctor(System.String,System.Guid,System.String,System.Resources.ResourceManager,int):this
call [rax]System.Diagnostics.Tracing.ManifestBuilder:.ctor(System.String,System.Guid,System.String,System.Resources.ResourceManager,int):this
mov rdi, 0xD1FFAB1E ; System.Diagnostics.Tracing.EventAttribute
call CORINFO_HELP_NEWSFAST
mov rdi, 0xD1FFAB1E
mov qword ptr [rax+0x18], rdi
xor edi, edi
mov dword ptr [rax+0x1C], edi
mov dword ptr [rax+0x20], 0xFFFE
- mov rdi, r12
+ mov rdi, r13
mov rdx, rax
mov rsi, 0xD1FFAB1E ; 'EventSourceMessage'
mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.ManifestBuilder:StartEvent(System.String,System.Diagnostics.Tracing.EventAttribute):this
call [rax]System.Diagnostics.Tracing.ManifestBuilder:StartEvent(System.String,System.Diagnostics.Tracing.EventAttribute):this
- mov rdi, r12
+ mov rdi, r13
mov rsi, 0xD1FFAB1E ; 'System.String'
mov rdx, 0xD1FFAB1E ; 'message'
mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.ManifestBuilder:AddEventParameter(System.Type,System.String):this
call [rax]System.Diagnostics.Tracing.ManifestBuilder:AddEventParameter(System.Type,System.String):this
- mov rdi, r12
+ mov rdi, r13
mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.ManifestBuilder:EndEvent():this
call [rax]System.Diagnostics.Tracing.ManifestBuilder:EndEvent():this
- mov rdi, r12
+ mov rdi, r13
mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.ManifestBuilder:CreateManifest():ubyte[]:this
call [rax]System.Diagnostics.Tracing.ManifestBuilder:CreateManifest():ubyte[]:this
+ ;; size=246 bbWeight=0.50 PerfScore 22.50
+G_M12525_IG07:
mov rsi, rax
- mov rdi, rbx
+ mov rdi, gword ptr [rbp-0x90]
mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.EventSource:SendManifest(ubyte[]):this
call [rax]System.Diagnostics.Tracing.EventSource:SendManifest(ubyte[]):this
- ;; size=257 bbWeight=0.50 PerfScore 23.88
-G_M12525_IG07:
- test r15, r15
- jne SHORT G_M12525_IG08
- xor r14d, r14d
- jmp SHORT G_M12525_IG09
- ;; size=10 bbWeight=0.50 PerfScore 1.75
+ mov rdi, gword ptr [rbp-0x90]
+ ;; size=29 bbWeight=0.50 PerfScore 2.75
G_M12525_IG08:
- lea rdi, bword ptr [r15+0x0C]
- mov bword ptr [rbp-0x48], rdi
- mov r14, bword ptr [rbp-0x48]
- ;; size=12 bbWeight=0.50 PerfScore 1.25
+ test rbx, rbx
+ jne SHORT G_M12525_IG09
+ xor r15d, r15d
+ jmp SHORT G_M12525_IG10
+ ;; size=10 bbWeight=0.50 PerfScore 1.75
G_M12525_IG09:
- xor edi, edi
- mov dword ptr [rsp], edi
+ lea rsi, bword ptr [rbx+0x0C]
+ mov bword ptr [rbp-0x48], rsi
+ mov r15, bword ptr [rbp-0x48]
+ ;; size=12 bbWeight=0.50 PerfScore 1.25
+G_M12525_IG10:
+ xor esi, esi
+ mov dword ptr [rsp], esi
mov qword ptr [rsp+0x08], -1
lea rdi, [rbp-0x58]
- xor esi, esi
+ ;; size=18 bbWeight=0.50 PerfScore 1.38
+G_M12525_IG11:
xor edx, edx
xor ecx, ecx
xor r8d, r8d
xor r9d, r9d
mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.EventDescriptor:.ctor(int,ubyte,ubyte,ubyte,ubyte,int,long):this
call [rax]System.Diagnostics.Tracing.EventDescriptor:.ctor(int,ubyte,ubyte,ubyte,ubyte,int,long):this
vxorps xmm0, xmm0, xmm0
vmovups xmmword ptr [rbp-0x68], xmm0
- mov qword ptr [rbp-0x68], r14
- mov edi, dword ptr [r15+0x08]
+ mov qword ptr [rbp-0x68], r15
+ mov edi, dword ptr [rbx+0x08]
lea edi, [2*rdi+0x02]
mov dword ptr [rbp-0x60], edi
xor edi, edi
mov dword ptr [rbp-0x5C], edi
- mov rdi, gword ptr [rbx+0x30]
- test rdi, rdi
- je SHORT G_M12525_IG10
- mov rdi, gword ptr [rdi+0x08]
+ mov rdi, gword ptr [rbp-0x90]
+ mov rsi, gword ptr [rdi+0x30]
+ test rsi, rsi
+ je SHORT G_M12525_IG12
+ mov rax, gword ptr [rsi+0x08]
lea rsi, [rbp-0x68]
mov qword ptr [rsp], rsi
+ mov rdi, rax
lea rsi, [rbp-0x58]
xor edx, edx
xor ecx, ecx
xor r8d, r8d
mov r9d, 1
- mov rax, qword ptr [rdi]
+ mov rax, qword ptr [rax]
mov rax, qword ptr [rax+0x48]
call [rax]System.Diagnostics.Tracing.EventProviderImpl:EventWriteTransfer(byref,long,ulong,ulong,int,ulong):int:this
- mov r15d, eax
- test r15d, r15d
- je SHORT G_M12525_IG10
+ mov ebx, eax
+ test ebx, ebx
+ je SHORT G_M12525_IG12
mov rdi, 0xD1FFAB1E
mov rax, 0xD1FFAB1E ; function address
call rax
add rax, 56
- mov dword ptr [rax+0x10], r15d
- ;; size=159 bbWeight=0.50 PerfScore 17.92
-G_M12525_IG10:
- cmp gword ptr [rbx+0x40], 0
- je G_M12525_IG23
- cmp qword ptr [rbx+0x88], 0
- jne G_M12525_IG22
- cmp gword ptr [rbx+0x38], 0
- jne SHORT G_M12525_IG11
+ mov dword ptr [rax+0x10], ebx
+ ;; size=145 bbWeight=0.50 PerfScore 17.04
+G_M12525_IG12:
+ mov rdi, gword ptr [rbp-0x90]
+ cmp gword ptr [rdi+0x40], 0
+ je G_M12525_IG25
+ cmp qword ptr [rdi+0x88], 0
+ jne G_M12525_IG24
+ cmp gword ptr [rdi+0x38], 0
+ jne SHORT G_M12525_IG13
mov rdi, 0xD1FFAB1E ; System.Object
call CORINFO_HELP_NEWSFAST
mov rsi, rax
- lea rdi, bword ptr [rbx+0x38]
- test rdi, rdi
- je G_M12525_IG25
+ mov rdi, gword ptr [rbp-0x90]
+ lea rdx, bword ptr [rdi+0x38]
+ test rdx, rdx
+ je G_M12525_IG27
+ mov rdi, rdx
xor rdx, rdx
call System.Threading.Interlocked:CompareExchangeObject(byref,System.Object,System.Object):System.Object
- ;; size=70 bbWeight=0.50 PerfScore 8.25
-G_M12525_IG11:
- mov rdi, gword ptr [rbx+0x38]
- mov gword ptr [rbp-0x90], rdi
- xor esi, esi
- mov dword ptr [rbp-0x70], esi
- ;; size=16 bbWeight=0.50 PerfScore 2.12
-G_M12525_IG12:
+ ;; size=87 bbWeight=0.50 PerfScore 9.38
+G_M12525_IG13:
+ mov rdi, gword ptr [rbp-0x90]
+ mov rsi, gword ptr [rdi+0x38]
+ mov gword ptr [rbp-0x98], rsi
+ xor eax, eax
+ mov dword ptr [rbp-0x70], eax
+ ;; size=23 bbWeight=0.50 PerfScore 2.62
+G_M12525_IG14:
cmp byte ptr [rbp-0x70], 0
- jne G_M12525_IG20
+ jne G_M12525_IG22
lea rsi, [rbp-0x70]
+ mov rdi, gword ptr [rbp-0x98]
call System.Threading.Monitor:ReliableEnter(System.Object,byref)
- cmp qword ptr [rbx+0x88], 0
- jne G_M12525_IG21
- mov rdi, 0xD1FFAB1E ; const ptr
- mov r15, gword ptr [rdi]
+ mov rdi, gword ptr [rbp-0x90]
+ cmp qword ptr [rdi+0x88], 0
+ jne G_M12525_IG23
+ mov rsi, 0xD1FFAB1E ; const ptr
+ mov rbx, gword ptr [rsi]
mov rdi, 0xD1FFAB1E ; System.Diagnostics.Tracing.EventParameterInfo[]
mov esi, 1
call CORINFO_HELP_NEWARR_1_VC
lea rdi, bword ptr [rax+0x10]
mov rsi, 0xD1FFAB1E ; 'message'
mov gword ptr [rdi], rsi
mov rsi, 0xD1FFAB1E ; 'System.String'
mov gword ptr [rdi+0x08], rsi
xor rsi, rsi
mov gword ptr [rdi+0x10], rsi
- ;; size=103 bbWeight=0.50 PerfScore 8.25
-G_M12525_IG13:
+ ;; size=117 bbWeight=0.50 PerfScore 9.25
+G_M12525_IG15:
mov dword ptr [rsp], esi
mov gword ptr [rsp+0x08], rax
- mov rdi, r15
+ mov rdi, rbx
;; size=11 bbWeight=0.50 PerfScore 1.12
-G_M12525_IG14:
+G_M12525_IG16:
mov rdx, 0xD1FFAB1E ; 'EventSourceMessage'
mov rcx, -1
xor r8d, r8d
xor r9d, r9d
mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.EventPipeMetadataGenerator:GenerateMetadata(int,System.String,long,uint,uint,int,System.Diagnostics.Tracing.EventParameterInfo[]):ubyte[]:this
call [rax]System.Diagnostics.Tracing.EventPipeMetadataGenerator:GenerateMetadata(int,System.String,long,uint,uint,int,System.Diagnostics.Tracing.EventParameterInfo[]):ubyte[]:this
test rax, rax
- jne SHORT G_M12525_IG15
+ jne SHORT G_M12525_IG17
xor edi, edi
- jmp SHORT G_M12525_IG16
+ jmp SHORT G_M12525_IG18
;; size=47 bbWeight=0.50 PerfScore 3.88
-G_M12525_IG15:
+G_M12525_IG17:
mov edi, dword ptr [rax+0x08]
;; size=3 bbWeight=0.50 PerfScore 1.00
-G_M12525_IG16:
+G_M12525_IG18:
mov gword ptr [rbp-0x78], rax
test rax, rax
- je SHORT G_M12525_IG17
+ je SHORT G_M12525_IG19
cmp dword ptr [rax+0x08], 0
- jne SHORT G_M12525_IG18
+ jne SHORT G_M12525_IG20
;; size=15 bbWeight=0.50 PerfScore 3.12
-G_M12525_IG17:
+G_M12525_IG19:
xor esi, esi
- jmp SHORT G_M12525_IG19
+ jmp SHORT G_M12525_IG21
;; size=4 bbWeight=0.50 PerfScore 1.12
-G_M12525_IG18:
+G_M12525_IG20:
add rax, 16
mov rsi, rax
;; size=7 bbWeight=0.50 PerfScore 0.25
-G_M12525_IG19:
+G_M12525_IG21:
+ mov rbx, gword ptr [rbp-0x90]
mov rdx, gword ptr [rbx+0x40]
mov rax, gword ptr [rdx+0x08]
mov qword ptr [rsp], rsi
mov dword ptr [rsp+0x08], edi
mov rdi, rax
xor esi, esi
mov rdx, 0xD1FFAB1E ; 'EventSourceMessage'
mov rcx, -1
xor r8d, r8d
xor r9d, r9d
mov rax, qword ptr [rax]
mov rax, qword ptr [rax+0x48]
call [rax+0x08]System.Diagnostics.Tracing.EventProviderImpl:DefineEventHandle(uint,System.String,long,uint,uint,ulong,uint):long:this
mov qword ptr [rbx+0x88], rax
xor rdi, rdi
mov gword ptr [rbp-0x78], rdi
- jmp SHORT G_M12525_IG21
- ;; size=72 bbWeight=0.50 PerfScore 9.38
-G_M12525_IG20:
+ jmp SHORT G_M12525_IG23
+ ;; size=79 bbWeight=0.50 PerfScore 9.88
+G_M12525_IG22:
mov rax, 0xD1FFAB1E ; code for System.Threading.Monitor:ThrowLockTakenException()
call [rax]System.Threading.Monitor:ThrowLockTakenException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M12525_IG21:
+G_M12525_IG23:
cmp byte ptr [rbp-0x70], 0
- je SHORT G_M12525_IG22
- mov rdi, gword ptr [rbp-0x90]
+ je SHORT G_M12525_IG24
+ mov rdi, gword ptr [rbp-0x98]
call System.Threading.Monitor:Exit(System.Object)
;; size=18 bbWeight=0.50 PerfScore 2.50
-G_M12525_IG22:
- mov rdi, gword ptr [rbx+0x40]
- mov rdi, gword ptr [rdi+0x08]
+G_M12525_IG24:
+ mov rdi, gword ptr [rbp-0x90]
+ mov rdx, gword ptr [rdi+0x40]
+ mov rax, gword ptr [rdx+0x08]
lea rdx, [rbp-0x68]
mov qword ptr [rsp], rdx
+ mov rdi, rax
+ mov rbx, gword ptr [rbp-0x90]
mov rdx, qword ptr [rbx+0x88]
lea rsi, [rbp-0x58]
xor ecx, ecx
xor r8d, r8d
mov r9d, 1
- mov rax, qword ptr [rdi]
+ mov rax, qword ptr [rax]
mov rax, qword ptr [rax+0x48]
call [rax]System.Diagnostics.Tracing.EventProviderImpl:EventWriteTransfer(byref,long,ulong,ulong,int,ulong):int:this
- mov ebx, eax
- test ebx, ebx
- je SHORT G_M12525_IG23
+ mov r15d, eax
+ test r15d, r15d
+ je SHORT G_M12525_IG25
mov rdi, 0xD1FFAB1E
mov rax, 0xD1FFAB1E ; function address
call rax
add rax, 56
- mov dword ptr [rax+0x10], ebx
- ;; size=82 bbWeight=0.50 PerfScore 11.00
-G_M12525_IG23:
+ mov dword ptr [rax+0x10], r15d
+ ;; size=102 bbWeight=0.50 PerfScore 12.12
+G_M12525_IG25:
+ mov rdi, gword ptr [rbp-0x90]
xor eax, eax
mov bword ptr [rbp-0x48], rax
- ;; size=6 bbWeight=0.50 PerfScore 0.62
-G_M12525_IG24:
- add rsp, 136
+ ;; size=13 bbWeight=0.50 PerfScore 1.12
+G_M12525_IG26:
+ add rsp, 144
pop rbx
- pop r12
pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=18 bbWeight=0.50 PerfScore 2.12
-G_M12525_IG25:
+ ;; size=16 bbWeight=0.50 PerfScore 1.88
+G_M12525_IG27:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowNullReferenceException()
call [rax]System.ThrowHelper:ThrowNullReferenceException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M12525_IG26:
+G_M12525_IG28:
push rbp
push r15
push r14
push r13
- push r12
push rbx
- sub rsp, 24
+ sub rsp, 32
mov rbp, qword ptr [rdi+0x10]
mov qword ptr [rsp+0x10], rbp
lea rbp, [rbp+0xB0]
- ;; size=30 bbWeight=0 PerfScore 0.00
-G_M12525_IG27:
+ ;; size=28 bbWeight=0 PerfScore 0.00
+G_M12525_IG29:
cmp byte ptr [rbp-0x70], 0
- je SHORT G_M12525_IG28
- mov rdi, gword ptr [rbp-0x90]
+ je SHORT G_M12525_IG30
+ mov rdi, gword ptr [rbp-0x98]
call System.Threading.Monitor:Exit(System.Object)
;; size=18 bbWeight=0 PerfScore 0.00
-G_M12525_IG28:
+G_M12525_IG30:
nop
;; size=1 bbWeight=0 PerfScore 0.00
-G_M12525_IG29:
- add rsp, 24
+G_M12525_IG31:
+ add rsp, 32
pop rbx
- pop r12
pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=15 bbWeight=0 PerfScore 0.00
+ ;; size=13 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1246, prolog size 48, PerfScore 135.33, instruction count 301, allocated bytes for code 1246 (MethodHash=61c7cf12) for method System.Diagnostics.Tracing.EventSource:WriteEventString(System.String):this (FullOpts)
+; Total bytes of code 1340, prolog size 54, PerfScore 142.33, instruction count 310, allocated bytes for code 1340 (MethodHash=61c7cf12) for method System.Diagnostics.Tracing.EventSource:WriteEventString(System.String):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/c54888accd0bed90e3c5cc3d6fef73c8 |
Top method improvements-48 (-3.13 % of base) - System.Data.DataSet:SerializeRelations(System.Runtime.Serialization.SerializationInfo):this ; Assembly listing for method System.Data.DataSet:SerializeRelations(System.Runtime.Serialization.SerializationInfo):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; 15 single block inlinees; 13 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T34] ( 5, 11 ) ref -> r15 this class-hnd single-def <System.Data.DataSet>
+; V00 this [V00,T34] ( 5, 11 ) ref -> [rbp-0x58] this class-hnd EH-live single-def <System.Data.DataSet>
; V01 arg1 [V01,T30] ( 15, 13.50) ref -> rbx class-hnd single-def <System.Runtime.Serialization.SerializationInfo>
-; V02 loc0 [V02,T11] ( 13, 39 ) ref -> r14 class-hnd exact single-def <System.Collections.ArrayList>
-; V03 loc1 [V03,T35] ( 6, 10 ) ref -> [rbp-0x50] class-hnd EH-live spill-single-def <System.Collections.IEnumerator>
-; V04 loc2 [V04,T05] ( 12, 72 ) ref -> r13 class-hnd <System.Data.DataRelation>
-; V05 loc3 [V05,T12] ( 5, 32 ) ref -> [rbp-0x58] class-hnd exact spill-single-def <int[]>
-; V06 loc4 [V06,T13] ( 5, 32 ) ref -> [rbp-0x60] class-hnd exact spill-single-def <int[]>
+; V02 loc0 [V02,T11] ( 13, 39 ) ref -> r15 class-hnd exact single-def <System.Collections.ArrayList>
+; V03 loc1 [V03,T35] ( 6, 10 ) ref -> [rbp-0x60] class-hnd EH-live spill-single-def <System.Collections.IEnumerator>
+; V04 loc2 [V04,T05] ( 12, 72 ) ref -> r14 class-hnd <System.Data.DataRelation>
+; V05 loc3 [V05,T12] ( 5, 32 ) ref -> r12 class-hnd exact <int[]>
+; V06 loc4 [V06,T13] ( 5, 32 ) ref -> [rbp-0x68] class-hnd exact spill-single-def <int[]>
;* V07 loc5 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Collections.ArrayList>
;* V08 loc6 [V08,T50] ( 0, 0 ) int -> zero-ref
;* V09 loc7 [V09,T51] ( 0, 0 ) int -> zero-ref
; V10 loc8 [V10,T53] ( 6, 2.50) ref -> rax class-hnd <System.IDisposable>
;# V11 OutArgs [V11 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V12 tmp1 [V12,T43] ( 3, 6 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Collections.ArrayList>
+; V12 tmp1 [V12,T43] ( 3, 6 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Collections.ArrayList>
;* V13 tmp2 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "non-inline candidate call" <System.Data.DataTableCollection>
; V14 tmp3 [V14,T26] ( 2, 16 ) int -> rax "Strict ordering of exceptions for Array store"
; V15 tmp4 [V15,T06] ( 2, 64 ) int -> rax "Strict ordering of exceptions for Array store"
;* V16 tmp5 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "non-inline candidate call" <System.Data.DataTableCollection>
; V17 tmp6 [V17,T27] ( 2, 16 ) int -> rax "Strict ordering of exceptions for Array store"
; V18 tmp7 [V18,T07] ( 2, 64 ) int -> rax "Strict ordering of exceptions for Array store"
-; V19 tmp8 [V19,T00] ( 47,348 ) ref -> r12 class-hnd exact "NewObj constructor temp" <System.Collections.ArrayList>
-; V20 tmp9 [V20,T17] ( 3, 24 ) ref -> [rbp-0x68] class-hnd exact spill-single-def "Single-def Box Helper" <System.Boolean>
+; V19 tmp8 [V19,T00] ( 47,348 ) ref -> r13 class-hnd exact "NewObj constructor temp" <System.Collections.ArrayList>
+; V20 tmp9 [V20,T17] ( 3, 24 ) ref -> r12 class-hnd exact "Single-def Box Helper" <System.Boolean>
;* V21 tmp10 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Data.DataColumn>
;* V22 tmp11 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Data.DataColumn>
; V23 tmp12 [V23,T20] ( 2, 16 ) ref -> [rbp-0x70] class-hnd exact spill-single-def "Inlining Arg" <System.String>
; V24 tmp13 [V24,T37] ( 2, 8 ) int -> rsi "Inline stloc first use temp"
; V25 tmp14 [V25,T38] ( 2, 8 ) int -> rsi "Inline stloc first use temp"
; V26 tmp15 [V26,T39] ( 2, 8 ) int -> rdi "Inline stloc first use temp"
;* V27 tmp16 [V27 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Boolean>
; V28 tmp17 [V28,T40] ( 2, 8 ) int -> rsi "Inline stloc first use temp"
-; V29 tmp18 [V29,T21] ( 2, 16 ) ref -> r13 class-hnd "Inlining Arg" <System.Data.PropertyCollection>
+; V29 tmp18 [V29,T21] ( 2, 16 ) ref -> r14 class-hnd "Inlining Arg" <System.Data.PropertyCollection>
; V30 tmp19 [V30,T41] ( 2, 8 ) int -> rsi "Inline stloc first use temp"
; V31 tmp20 [V31,T42] ( 2, 8 ) int -> rdi "Inline stloc first use temp"
;* V32 tmp21 [V32 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "NewObj constructor temp" <System.Runtime.Serialization.SerializationException>
;* V33 tmp22 [V33 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.String,int]>
;* V34 tmp23 [V34 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V35 tmp24 [V35,T48] ( 2, 4 ) ref -> r15 class-hnd exact single-def "Inlining Arg" <System.RuntimeType>
+; V35 tmp24 [V35,T48] ( 2, 4 ) ref -> r14 class-hnd exact single-def "Inlining Arg" <System.RuntimeType>
; V36 tmp25 [V36,T58] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.Runtime.Serialization.SerializationException>
; V37 tmp26 [V37,T44] ( 3, 6 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.String,int]>
; V38 tmp27 [V38,T49] ( 2, 4 ) int -> rdx "Inlining Arg"
-; V39 tmp28 [V39,T45] ( 3, 6 ) ref -> rdi single-def "argument with side effect"
+; V39 tmp28 [V39,T45] ( 3, 6 ) ref -> rax single-def "argument with side effect"
; V40 tmp29 [V40,T18] ( 3, 18 ) ref -> rax "argument with side effect"
; V41 tmp30 [V41,T28] ( 2, 16 ) long -> rsi "argument with side effect"
; V42 tmp31 [V42,T22] ( 2, 16 ) ref -> rsi "argument with side effect"
; V43 tmp32 [V43,T23] ( 2, 16 ) ref -> [rbp-0x78] spill-single-def "argument with side effect"
; V44 tmp33 [V44,T01] ( 3, 96 ) ref -> rax "arr expr"
; V45 tmp34 [V45,T29] ( 2, 16 ) long -> rsi "argument with side effect"
; V46 tmp35 [V46,T24] ( 2, 16 ) ref -> rsi "argument with side effect"
; V47 tmp36 [V47,T25] ( 2, 16 ) ref -> [rbp-0x80] spill-single-def "argument with side effect"
; V48 tmp37 [V48,T02] ( 3, 96 ) ref -> rax "arr expr"
;* V49 tmp38 [V49 ] ( 0, 0 ) ref -> zero-ref single-def "arr expr"
;* V50 tmp39 [V50 ] ( 0, 0 ) int -> zero-ref "index expr"
;* V51 tmp40 [V51 ] ( 0, 0 ) ref -> zero-ref single-def "arr expr"
;* V52 tmp41 [V52 ] ( 0, 0 ) long -> zero-ref "index expr"
;* V53 tmp42 [V53 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
; V54 tmp43 [V54,T46] ( 3, 6 ) ref -> rsi single-def "arr expr"
; V55 tmp44 [V55,T47] ( 3, 6 ) int -> rdx "index expr"
; V56 tmp45 [V56,T59] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
; V57 PSPSym [V57,T57] ( 1, 1 ) long -> [rbp-0x90] do-not-enreg[V] "PSPSym"
;* V58 cse0 [V58,T56] ( 0, 0 ) byref -> zero-ref "CSE #10: conservative"
-; V59 cse1 [V59,T08] ( 6, 48 ) long -> r12 "CSE #03: moderate"
-; V60 cse2 [V60,T19] ( 4, 16 ) long -> [rbp-0x30] spill-single-def "CSE #12: moderate"
+; V59 cse1 [V59,T08] ( 6, 48 ) long -> r13 "CSE #03: moderate"
+; V60 cse2 [V60,T19] ( 4, 16 ) long -> [rbp-0x38] spill-single-def "CSE #12: moderate"
; V61 cse3 [V61,T54] ( 2, 2 ) ref -> rdi "CSE #21: conservative"
; V62 cse4 [V62,T55] ( 2, 2 ) int -> rdx "CSE #22: conservative"
; V63 cse5 [V63,T52] ( 3, 3 ) int -> rdi "CSE #24: conservative"
-; V64 cse6 [V64,T15] ( 4, 28 ) int -> [rbp-0x34] spill-single-def "CSE #02: moderate"
-; V65 cse7 [V65,T16] ( 4, 28 ) int -> [rbp-0x38] spill-single-def "CSE #06: moderate"
+; V64 cse6 [V64,T15] ( 4, 28 ) int -> [rbp-0x3C] spill-single-def "CSE #02: moderate"
+; V65 cse7 [V65,T16] ( 4, 28 ) int -> [rbp-0x40] spill-single-def "CSE #06: moderate"
; V66 cse8 [V66,T09] ( 3, 48 ) int -> rcx "CSE #04: moderate"
; V67 cse9 [V67,T10] ( 3, 48 ) int -> rcx "CSE #07: moderate"
; V68 cse10 [V68,T31] ( 4, 14 ) int -> rsi "CSE #14: moderate"
; V69 cse11 [V69,T32] ( 4, 14 ) int -> rsi "CSE #15: moderate"
; V70 cse12 [V70,T33] ( 4, 14 ) int -> rsi "CSE #17: moderate"
-; V71 rat0 [V71,T03] ( 6, 84 ) long -> [rbp-0x40] "Widened IV V08"
-; V72 rat1 [V72,T04] ( 6, 84 ) long -> [rbp-0x48] "Widened IV V09"
-; V73 rat2 [V73,T14] ( 5, 30 ) ref -> r13 "replacement local"
+; V71 rat0 [V71,T03] ( 6, 84 ) long -> [rbp-0x48] "Widened IV V08"
+; V72 rat1 [V72,T04] ( 6, 84 ) long -> [rbp-0x50] "Widened IV V09"
+; V73 rat2 [V73,T14] ( 5, 30 ) ref -> r14 "replacement local"
; V74 rat3 [V74,T36] ( 3, 10 ) long -> rdi "CSE for expectedClsNode"
;
; Lcl frame size = 104
G_M4960_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 104
lea rbp, [rsp+0x90]
mov qword ptr [rbp-0x90], rsp
- mov r15, rdi
+ mov qword ptr [rbp-0x30], rdi
+ mov gword ptr [rbp-0x58], rdi
mov rbx, rsi
- ;; size=35 bbWeight=1 PerfScore 8.25
+ ;; size=40 bbWeight=1 PerfScore 10.00
G_M4960_IG02:
mov rdi, 0xD1FFAB1E ; System.Collections.ArrayList
call CORINFO_HELP_NEWSFAST
- mov r14, rax
+ mov r15, rax
mov rdi, 0xD1FFAB1E ; global ptr
test byte ptr [rdi], 1
- je G_M4960_IG34
+ je G_M4960_IG33
;; size=37 bbWeight=1 PerfScore 5.75
G_M4960_IG03:
mov rdi, 0xD1FFAB1E ; data for System.Array+EmptyArray`1[System.Object]:Value
mov rsi, gword ptr [rdi]
- lea rdi, bword ptr [r14+0x08]
+ lea rdi, bword ptr [r15+0x08]
call CORINFO_HELP_ASSIGN_REF
- mov rdi, gword ptr [r15+0x28]
- mov rax, qword ptr [rdi]
+ mov rdi, gword ptr [rbp-0x58]
+ mov rax, gword ptr [rdi+0x28]
+ mov rdi, rax
+ mov rax, qword ptr [rax]
mov rax, qword ptr [rax+0x40]
call [rax+0x30]System.Data.InternalDataCollectionBase:GetEnumerator():System.Collections.IEnumerator:this
- mov gword ptr [rbp-0x50], rax
- ;; size=40 bbWeight=1 PerfScore 13.75
+ mov gword ptr [rbp-0x60], rax
+ ;; size=47 bbWeight=1 PerfScore 15.00
G_M4960_IG04:
mov rdi, rax
mov r11, 0xD1FFAB1E ; function address
call [r11]System.Collections.IEnumerator:MoveNext():ubyte:this
test eax, eax
- je G_M4960_IG28
+ je G_M4960_IG27
;; size=24 bbWeight=1 PerfScore 4.75
G_M4960_IG05:
- mov rdi, gword ptr [rbp-0x50]
+ mov rdi, gword ptr [rbp-0x60]
mov r11, 0xD1FFAB1E ; code for System.Collections.IEnumerator:get_Current():System.Object:this
call [r11]System.Collections.IEnumerator:get_Current():System.Object:this
- mov r13, rax
- test r13, r13
+ mov r14, rax
+ test r14, r14
je SHORT G_M4960_IG08
;; size=25 bbWeight=4 PerfScore 23.00
G_M4960_IG06:
mov rdi, 0xD1FFAB1E ; System.Data.DataRelation
- cmp qword ptr [r13], rdi
+ cmp qword ptr [r14], rdi
je SHORT G_M4960_IG08
- ;; size=16 bbWeight=2 PerfScore 8.50
+ ;; size=15 bbWeight=2 PerfScore 8.50
G_M4960_IG07:
mov rsi, rax
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL
call [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL
- mov r13, rax
+ mov r14, rax
;; size=18 bbWeight=1 PerfScore 3.75
G_M4960_IG08:
- mov rdi, r13
- mov rax, qword ptr [r13]
- mov r12, qword ptr [rax+0x40]
- call [r12+0x38]System.Data.DataRelation:get_ParentColumns():System.Data.DataColumn[]:this
+ mov rdi, r14
+ mov rax, qword ptr [r14]
+ mov r13, qword ptr [rax+0x40]
+ call [r13+0x38]System.Data.DataRelation:get_ParentColumns():System.Data.DataColumn[]:this
mov esi, dword ptr [rax+0x08]
inc esi
movsxd rsi, esi
mov rdi, 0xD1FFAB1E ; int[]
call CORINFO_HELP_NEWARR_1_VC
- mov gword ptr [rbp-0x58], rax
- mov rcx, gword ptr [r15+0x20]
- mov gword ptr [rbp-0x78], rcx
- mov rdi, r13
- mov rdx, qword ptr [r13]
- mov rdx, qword ptr [rdx+0x48]
- mov qword ptr [rbp-0x30], rdx
- call [rdx]System.Data.DataRelation:get_ParentTable():System.Data.DataTable:this
+ mov r12, rax
+ mov rdi, gword ptr [rbp-0x58]
+ mov rax, gword ptr [rdi+0x20]
+ mov gword ptr [rbp-0x78], rax
+ mov rdi, r14
+ mov rcx, qword ptr [r14]
+ mov rcx, qword ptr [rcx+0x48]
+ mov qword ptr [rbp-0x38], rcx
+ call [rcx]System.Data.DataRelation:get_ParentTable():System.Data.DataTable:this
mov rsi, rax
mov rdi, gword ptr [rbp-0x78]
mov rax, 0xD1FFAB1E ; code for System.Data.DataTableCollection:IndexOf(System.Data.DataTable):int:this
cmp dword ptr [rdi], edi
call [rax]System.Data.DataTableCollection:IndexOf(System.Data.DataTable):int:this
- mov rcx, gword ptr [rbp-0x58]
- mov edx, dword ptr [rcx+0x08]
- mov dword ptr [rbp-0x34], edx
- test edx, edx
- je G_M4960_IG27
- mov dword ptr [rcx+0x10], eax
- mov qword ptr [rbp-0x40], 1
- cmp edx, 1
+ mov ecx, dword ptr [r12+0x08]
+ mov dword ptr [rbp-0x3C], ecx
+ test ecx, ecx
+ je G_M4960_IG26
+ mov dword ptr [r12+0x10], eax
+ mov qword ptr [rbp-0x48], 1
+ cmp ecx, 1
jle SHORT G_M4960_IG10
- ;; size=123 bbWeight=4 PerfScore 157.00
+ ;; size=123 bbWeight=4 PerfScore 154.00
G_M4960_IG09:
- mov rdi, r13
- call [r12+0x38]System.Data.DataRelation:get_ParentColumns():System.Data.DataColumn[]:this
- mov rdi, qword ptr [rbp-0x40]
+ mov rdi, r14
+ call [r13+0x38]System.Data.DataRelation:get_ParentColumns():System.Data.DataColumn[]:this
+ mov rdi, qword ptr [rbp-0x48]
lea ecx, [rdi-0x01]
cmp ecx, dword ptr [rax+0x08]
- jae G_M4960_IG27
+ jae G_M4960_IG26
mov rax, gword ptr [rax+8*rcx+0x10]
mov eax, dword ptr [rax+0xAC]
- mov rcx, gword ptr [rbp-0x58]
- mov dword ptr [rcx+4*rdi+0x10], eax
+ mov dword ptr [r12+4*rdi+0x10], eax
inc edi
- mov edx, dword ptr [rbp-0x34]
- cmp edx, edi
- mov qword ptr [rbp-0x40], rdi
+ mov ecx, dword ptr [rbp-0x3C]
+ cmp ecx, edi
+ mov qword ptr [rbp-0x48], rdi
jg SHORT G_M4960_IG09
- ;; size=56 bbWeight=16 PerfScore 292.00
+ ;; size=52 bbWeight=16 PerfScore 276.00
G_M4960_IG10:
- mov rdi, r13
- call [r12+0x20]System.Data.DataRelation:get_ChildColumns():System.Data.DataColumn[]:this
+ mov rdi, r14
+ call [r13+0x20]System.Data.DataRelation:get_ChildColumns():System.Data.DataColumn[]:this
mov esi, dword ptr [rax+0x08]
inc esi
movsxd rsi, esi
mov rdi, 0xD1FFAB1E ; int[]
call CORINFO_HELP_NEWARR_1_VC
- mov gword ptr [rbp-0x60], rax
- mov rcx, gword ptr [r15+0x20]
+ mov gword ptr [rbp-0x68], rax
+ mov rdi, gword ptr [rbp-0x58]
+ mov rcx, gword ptr [rdi+0x20]
mov gword ptr [rbp-0x80], rcx
- mov rdi, r13
- call [r12+0x28]System.Data.DataRelation:get_ChildTable():System.Data.DataTable:this
+ mov rdi, r14
+ call [r13+0x28]System.Data.DataRelation:get_ChildTable():System.Data.DataTable:this
mov rsi, rax
mov rdi, gword ptr [rbp-0x80]
mov rax, 0xD1FFAB1E ; code for System.Data.DataTableCollection:IndexOf(System.Data.DataTable):int:this
cmp dword ptr [rdi], edi
call [rax]System.Data.DataTableCollection:IndexOf(System.Data.DataTable):int:this
- mov rcx, gword ptr [rbp-0x60]
+ mov rcx, gword ptr [rbp-0x68]
mov edx, dword ptr [rcx+0x08]
- mov dword ptr [rbp-0x38], edx
+ mov dword ptr [rbp-0x40], edx
test edx, edx
- je G_M4960_IG27
+ je G_M4960_IG26
mov dword ptr [rcx+0x10], eax
- mov qword ptr [rbp-0x48], 1
+ mov qword ptr [rbp-0x50], 1
cmp edx, 1
jle SHORT G_M4960_IG12
- ;; size=106 bbWeight=4 PerfScore 121.00
+ ;; size=108 bbWeight=4 PerfScore 125.00
G_M4960_IG11:
- mov rdi, r13
- call [r12+0x20]System.Data.DataRelation:get_ChildColumns():System.Data.DataColumn[]:this
- mov rdi, qword ptr [rbp-0x48]
+ mov rdi, r14
+ call [r13+0x20]System.Data.DataRelation:get_ChildColumns():System.Data.DataColumn[]:this
+ mov rdi, qword ptr [rbp-0x50]
lea ecx, [rdi-0x01]
cmp ecx, dword ptr [rax+0x08]
- jae G_M4960_IG27
+ jae G_M4960_IG26
mov rax, gword ptr [rax+8*rcx+0x10]
mov eax, dword ptr [rax+0xAC]
- mov rcx, gword ptr [rbp-0x60]
+ mov rcx, gword ptr [rbp-0x68]
mov dword ptr [rcx+4*rdi+0x10], eax
inc edi
- mov edx, dword ptr [rbp-0x38]
+ mov edx, dword ptr [rbp-0x40]
cmp edx, edi
- mov qword ptr [rbp-0x48], rdi
+ mov qword ptr [rbp-0x50], rdi
jg SHORT G_M4960_IG11
- ;; size=56 bbWeight=16 PerfScore 292.00
+ ;; size=55 bbWeight=16 PerfScore 292.00
G_M4960_IG12:
mov rdi, 0xD1FFAB1E ; System.Collections.ArrayList
call CORINFO_HELP_NEWSFAST
- mov r12, rax
+ mov r13, rax
mov rdi, 0xD1FFAB1E ; data for System.Array+EmptyArray`1[System.Object]:Value
mov rsi, gword ptr [rdi]
- lea rdi, bword ptr [r12+0x08]
+ lea rdi, bword ptr [r13+0x08]
call CORINFO_HELP_ASSIGN_REF
- mov rdi, r13
- mov rax, qword ptr [rbp-0x30]
+ mov rdi, r14
+ mov rax, qword ptr [rbp-0x38]
call [rax+0x08]System.Data.DataRelation:get_RelationName():System.String:this
mov gword ptr [rbp-0x70], rax
- mov esi, dword ptr [r12+0x10]
- mov rdi, gword ptr [r12+0x08]
+ mov esi, dword ptr [r13+0x10]
+ mov rdi, gword ptr [r13+0x08]
cmp esi, dword ptr [rdi+0x08]
- jne G_M4960_IG26
- ;; size=74 bbWeight=4 PerfScore 74.00
+ jne G_M4960_IG25
+ ;; size=71 bbWeight=4 PerfScore 74.00
G_M4960_IG13:
- mov esi, dword ptr [r12+0x10]
+ mov esi, dword ptr [r13+0x10]
inc esi
- mov rdi, r12
+ mov rdi, r13
mov rcx, 0xD1FFAB1E ; code for System.Collections.ArrayList:EnsureCapacity(int):this
call [rcx]System.Collections.ArrayList:EnsureCapacity(int):this
mov rax, gword ptr [rbp-0x70]
- ;; size=26 bbWeight=2 PerfScore 13.50
+ ;; size=25 bbWeight=2 PerfScore 13.50
G_M4960_IG14:
- movsxd rsi, dword ptr [r12+0x10]
- mov rdi, gword ptr [r12+0x08]
+ movsxd rsi, dword ptr [r13+0x10]
+ mov rdi, gword ptr [r13+0x08]
mov rdx, rax
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
call [rax]CORINFO_HELP_ARRADDR_ST
- inc dword ptr [r12+0x14]
- mov esi, dword ptr [r12+0x10]
+ inc dword ptr [r13+0x14]
+ mov esi, dword ptr [r13+0x10]
inc esi
- mov dword ptr [r12+0x10], esi
- mov rdi, gword ptr [r12+0x08]
+ mov dword ptr [r13+0x10], esi
+ mov rdi, gword ptr [r13+0x08]
cmp dword ptr [rdi+0x08], esi
jne SHORT G_M4960_IG16
- ;; size=52 bbWeight=4 PerfScore 87.00
+ ;; size=46 bbWeight=4 PerfScore 87.00
G_M4960_IG15:
inc esi
- mov rdi, r12
+ mov rdi, r13
mov rax, 0xD1FFAB1E ; code for System.Collections.ArrayList:EnsureCapacity(int):this
call [rax]System.Collections.ArrayList:EnsureCapacity(int):this
;; size=17 bbWeight=2 PerfScore 7.50
G_M4960_IG16:
- movsxd rsi, dword ptr [r12+0x10]
- mov rdi, gword ptr [r12+0x08]
- mov rdx, gword ptr [rbp-0x58]
+ movsxd rsi, dword ptr [r13+0x10]
+ mov rdi, gword ptr [r13+0x08]
+ mov rdx, r12
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
call [rax]CORINFO_HELP_ARRADDR_ST
- inc dword ptr [r12+0x14]
- mov esi, dword ptr [r12+0x10]
+ inc dword ptr [r13+0x14]
+ mov esi, dword ptr [r13+0x10]
inc esi
- mov dword ptr [r12+0x10], esi
- mov rdi, gword ptr [r12+0x08]
+ mov dword ptr [r13+0x10], esi
+ mov rdi, gword ptr [r13+0x08]
cmp dword ptr [rdi+0x08], esi
jne SHORT G_M4960_IG18
- ;; size=53 bbWeight=4 PerfScore 90.00
+ ;; size=46 bbWeight=4 PerfScore 87.00
G_M4960_IG17:
inc esi
- mov rdi, r12
+ mov rdi, r13
mov rax, 0xD1FFAB1E ; code for System.Collections.ArrayList:EnsureCapacity(int):this
call [rax]System.Collections.ArrayList:EnsureCapacity(int):this
;; size=17 bbWeight=2 PerfScore 7.50
G_M4960_IG18:
- movsxd rsi, dword ptr [r12+0x10]
- mov rdi, gword ptr [r12+0x08]
- mov rdx, gword ptr [rbp-0x60]
+ movsxd rsi, dword ptr [r13+0x10]
+ mov rdi, gword ptr [r13+0x08]
+ mov rdx, gword ptr [rbp-0x68]
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
call [rax]CORINFO_HELP_ARRADDR_ST
- inc dword ptr [r12+0x14]
- mov edi, dword ptr [r12+0x10]
+ inc dword ptr [r13+0x14]
+ mov edi, dword ptr [r13+0x10]
inc edi
- mov dword ptr [r12+0x10], edi
+ mov dword ptr [r13+0x10], edi
mov rdi, 0xD1FFAB1E ; System.Boolean
call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0x68], rax
- mov rdi, r13
- mov rcx, qword ptr [rbp-0x30]
- call [rcx+0x18]System.Data.DataRelation:get_Nested():ubyte:this
- mov rcx, gword ptr [rbp-0x68]
- mov byte ptr [rcx+0x08], al
- mov esi, dword ptr [r12+0x10]
- mov rdi, gword ptr [r12+0x08]
+ mov r12, rax
+ mov rdi, r14
+ mov rax, qword ptr [rbp-0x38]
+ call [rax+0x18]System.Data.DataRelation:get_Nested():ubyte:this
+ mov byte ptr [r12+0x08], al
+ mov esi, dword ptr [r13+0x10]
+ mov rdi, gword ptr [r13+0x08]
cmp esi, dword ptr [rdi+0x08]
- jne G_M4960_IG25
- ;; size=98 bbWeight=4 PerfScore 132.00
+ jne SHORT G_M4960_IG20
+ ;; size=84 bbWeight=4 PerfScore 125.00
G_M4960_IG19:
- mov esi, dword ptr [r12+0x10]
+ mov esi, dword ptr [r13+0x10]
inc esi
- mov rdi, r12
+ mov rdi, r13
mov rax, 0xD1FFAB1E ; code for System.Collections.ArrayList:EnsureCapacity(int):this
call [rax]System.Collections.ArrayList:EnsureCapacity(int):this
- mov rcx, gword ptr [rbp-0x68]
- ;; size=26 bbWeight=2 PerfScore 13.50
+ ;; size=21 bbWeight=2 PerfScore 11.50
G_M4960_IG20:
- mov rdx, rcx
- movsxd rsi, dword ptr [r12+0x10]
- mov rdi, gword ptr [r12+0x08]
+ mov rdx, r12
+ movsxd rsi, dword ptr [r13+0x10]
+ mov rdi, gword ptr [r13+0x08]
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
call [rax]CORINFO_HELP_ARRADDR_ST
- inc dword ptr [r12+0x14]
- mov esi, dword ptr [r12+0x10]
+ inc dword ptr [r13+0x14]
+ mov esi, dword ptr [r13+0x10]
inc esi
- mov dword ptr [r12+0x10], esi
- mov r13, gword ptr [r13+0x10]
- mov rdi, gword ptr [r12+0x08]
+ mov dword ptr [r13+0x10], esi
+ mov r14, gword ptr [r14+0x10]
+ mov rdi, gword ptr [r13+0x08]
cmp dword ptr [rdi+0x08], esi
jne SHORT G_M4960_IG22
- ;; size=56 bbWeight=4 PerfScore 95.00
+ ;; size=50 bbWeight=4 PerfScore 95.00
G_M4960_IG21:
inc esi
- mov rdi, r12
+ mov rdi, r13
mov rax, 0xD1FFAB1E ; code for System.Collections.ArrayList:EnsureCapacity(int):this
call [rax]System.Collections.ArrayList:EnsureCapacity(int):this
;; size=17 bbWeight=2 PerfScore 7.50
G_M4960_IG22:
- movsxd rsi, dword ptr [r12+0x10]
- mov rdi, gword ptr [r12+0x08]
- mov rdx, r13
+ movsxd rsi, dword ptr [r13+0x10]
+ mov rdi, gword ptr [r13+0x08]
+ mov rdx, r14
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
call [rax]CORINFO_HELP_ARRADDR_ST
- inc dword ptr [r12+0x14]
- mov esi, dword ptr [r12+0x10]
+ inc dword ptr [r13+0x14]
+ mov esi, dword ptr [r13+0x10]
inc esi
- mov dword ptr [r12+0x10], esi
- mov esi, dword ptr [r14+0x10]
- mov rdi, gword ptr [r14+0x08]
+ mov dword ptr [r13+0x10], esi
+ mov esi, dword ptr [r15+0x10]
+ mov rdi, gword ptr [r15+0x08]
cmp esi, dword ptr [rdi+0x08]
jne SHORT G_M4960_IG24
- ;; size=55 bbWeight=4 PerfScore 95.00
+ ;; size=50 bbWeight=4 PerfScore 95.00
G_M4960_IG23:
- mov esi, dword ptr [r14+0x10]
+ mov esi, dword ptr [r15+0x10]
inc esi
- mov rdi, r14
+ mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Collections.ArrayList:EnsureCapacity(int):this
call [rax]System.Collections.ArrayList:EnsureCapacity(int):this
;; size=21 bbWeight=2 PerfScore 11.50
G_M4960_IG24:
- movsxd rsi, dword ptr [r14+0x10]
- mov rdi, gword ptr [r14+0x08]
- mov rdx, r12
+ movsxd rsi, dword ptr [r15+0x10]
+ mov rdi, gword ptr [r15+0x08]
+ mov rdx, r13
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
call [rax]CORINFO_HELP_ARRADDR_ST
- inc dword ptr [r14+0x14]
- mov edi, dword ptr [r14+0x10]
+ inc dword ptr [r15+0x14]
+ mov edi, dword ptr [r15+0x10]
inc edi
- mov dword ptr [r14+0x10], edi
- mov rdi, gword ptr [rbp-0x50]
+ mov dword ptr [r15+0x10], edi
+ mov rdi, gword ptr [rbp-0x60]
mov r11, 0xD1FFAB1E ; code for System.Collections.IEnumerator:MoveNext():ubyte:this
call [r11]System.Collections.IEnumerator:MoveNext():ubyte:this
test eax, eax
jne G_M4960_IG05
- jmp SHORT G_M4960_IG28
+ jmp SHORT G_M4960_IG27
;; size=64 bbWeight=4 PerfScore 93.00
G_M4960_IG25:
- mov rcx, gword ptr [rbp-0x68]
- jmp G_M4960_IG20
- ;; size=9 bbWeight=2 PerfScore 6.00
-G_M4960_IG26:
mov rax, gword ptr [rbp-0x70]
jmp G_M4960_IG14
;; size=9 bbWeight=2 PerfScore 6.00
-G_M4960_IG27:
+G_M4960_IG26:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-G_M4960_IG28:
- mov rsi, gword ptr [rbp-0x50]
+G_M4960_IG27:
+ mov rsi, gword ptr [rbp-0x60]
mov rdi, 0xD1FFAB1E ; System.IDisposable
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFINTERFACE
call [rax]CORINFO_HELP_ISINSTANCEOFINTERFACE
test rax, rax
- je SHORT G_M4960_IG30
+ je SHORT G_M4960_IG29
;; size=31 bbWeight=1 PerfScore 5.75
-G_M4960_IG29:
+G_M4960_IG28:
mov rdi, rax
mov r11, 0xD1FFAB1E ; code for System.IDisposable:Dispose():this
call [r11]System.IDisposable:Dispose():this
;; size=16 bbWeight=0.50 PerfScore 1.75
-G_M4960_IG30:
+G_M4960_IG29:
cmp byte ptr [rbx], bl
- mov rdi, r14
+ mov rdi, r15
call System.Object:GetType():System.Type:this
- mov r15, rax
+ mov r14, rax
mov rdi, gword ptr [rbx+0x20]
mov edx, dword ptr [rbx+0x48]
cmp byte ptr [rdi], dil
mov rsi, 0xD1FFAB1E ; 'DataSet.Relations'
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_M4960_IG35
+ je G_M4960_IG34
;; size=55 bbWeight=1 PerfScore 16.50
-G_M4960_IG31:
+G_M4960_IG30:
mov edi, dword ptr [rbx+0x48]
mov rax, gword ptr [rbx+0x08]
cmp edi, dword ptr [rax+0x08]
- jl SHORT G_M4960_IG32
+ jl SHORT G_M4960_IG31
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
-G_M4960_IG32:
+G_M4960_IG31:
mov rsi, gword ptr [rbx+0x08]
mov edi, dword ptr [rbx+0x48]
mov edx, edi
cmp edx, dword ptr [rsi+0x08]
- jae G_M4960_IG36
+ jae G_M4960_IG35
mov rax, 0xD1FFAB1E ; 'DataSet.Relations'
mov gword ptr [rsi+8*rdx+0x10], rax
movsxd rsi, edi
mov rdi, gword ptr [rbx+0x10]
- mov rdx, r14
+ mov rdx, r15
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, r15
+ mov rdx, r14
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
call [rax]CORINFO_HELP_ARRADDR_ST
inc dword ptr [rbx+0x48]
;; size=81 bbWeight=1 PerfScore 27.75
-G_M4960_IG33:
+G_M4960_IG32:
add rsp, 104
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.25
-G_M4960_IG34:
+G_M4960_IG33:
mov rdi, 0xD1FFAB1E ; System.Array+EmptyArray`1[System.Object]
call CORINFO_HELP_GET_GCSTATIC_BASE
jmp G_M4960_IG03
;; size=20 bbWeight=0 PerfScore 0.00
-G_M4960_IG35:
+G_M4960_IG34:
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_M4960_IG36:
+G_M4960_IG35:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-G_M4960_IG37:
+G_M4960_IG36:
push rbp
push r15
push r14
push r13
push r12
push rbx
push rax
mov rbp, qword ptr [rdi]
mov qword ptr [rsp], rbp
lea rbp, [rbp+0x90]
;; size=25 bbWeight=0 PerfScore 0.00
-G_M4960_IG38:
- mov rsi, gword ptr [rbp-0x50]
+G_M4960_IG37:
+ mov rsi, gword ptr [rbp-0x60]
mov rdi, 0xD1FFAB1E ; System.IDisposable
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFINTERFACE
call [rax]CORINFO_HELP_ISINSTANCEOFINTERFACE
test rax, rax
- je SHORT G_M4960_IG39
+ je SHORT G_M4960_IG38
mov rdi, rax
mov r11, 0xD1FFAB1E ; code for System.IDisposable:Dispose():this
call [r11]System.IDisposable:Dispose():this
;; size=47 bbWeight=0 PerfScore 0.00
-G_M4960_IG39:
+G_M4960_IG38:
nop
;; size=1 bbWeight=0 PerfScore 0.00
-G_M4960_IG40:
+G_M4960_IG39:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1532, prolog size 35, PerfScore 1730.50, instruction count 367, allocated bytes for code 1532 (MethodHash=8d0cec9f) for method System.Data.DataSet:SerializeRelations(System.Runtime.Serialization.SerializationInfo):this (FullOpts)
+; Total bytes of code 1484, prolog size 40, PerfScore 1700.50, instruction count 366, allocated bytes for code 1484 (MethodHash=8d0cec9f) for method System.Data.DataSet:SerializeRelations(System.Runtime.Serialization.SerializationInfo):this (FullOpts) -37 (-3.78 % of base) - System.Net.WebClient:UploadBits(System.Net.WebRequest,System.IO.FileStream,ubyte[],int,ubyte[],ubyte[]):ubyte[]:this ; Assembly listing for method System.Net.WebClient:UploadBits(System.Net.WebRequest,System.IO.FileStream,ubyte[],int,ubyte[],ubyte[]):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; 8 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T12] ( 3, 3 ) ref -> r12 this class-hnd single-def <System.Net.WebClient>
-; V01 arg1 [V01,T08] ( 8, 7 ) ref -> [rbp-0x38] class-hnd EH-live single-def <System.Net.WebRequest>
+; V00 this [V00,T12] ( 3, 3 ) ref -> [rbp-0x40] this class-hnd EH-live single-def <System.Net.WebClient>
+; V01 arg1 [V01,T08] ( 8, 7 ) ref -> [rbp-0x48] class-hnd EH-live single-def <System.Net.WebRequest>
; V02 arg2 [V02,T05] ( 6, 11.50) ref -> r15 class-hnd single-def <System.IO.FileStream>
; V03 arg3 [V03,T00] ( 7, 18.50) ref -> rbx class-hnd single-def <ubyte[]>
; V04 arg4 [V04,T06] ( 5, 10 ) int -> r14 single-def
-; V05 arg5 [V05,T11] ( 6, 4.50) ref -> [rbp-0x40] class-hnd <ubyte[]>
-; V06 arg6 [V06,T14] ( 4, 2.50) ref -> [rbp+0x10] class-hnd <ubyte[]>
-; V07 loc0 [V07,T02] ( 13, 19.50) ref -> [rbp-0x48] must-init class-hnd EH-live single-def <System.IO.Stream>
-; V08 loc1 [V08,T20] ( 4, 0.50) ref -> [rbp-0x50] must-init class-hnd EH-live single-def <System.IO.FileStream>
+; V05 arg5 [V05,T11] ( 6, 4.50) ref -> r13 class-hnd <ubyte[]>
+; V06 arg6 [V06,T14] ( 4, 2.50) ref -> r12 class-hnd <ubyte[]>
+; V07 loc0 [V07,T02] ( 13, 19.50) ref -> [rbp-0x50] must-init class-hnd EH-live single-def <System.IO.Stream>
+; V08 loc1 [V08,T20] ( 4, 0.50) ref -> [rbp-0x58] must-init class-hnd EH-live single-def <System.IO.FileStream>
; V09 loc2 [V09,T07] ( 3, 12 ) int -> rax
; V10 loc3 [V10,T01] ( 6, 20.50) int -> r15
-; V11 loc4 [V11,T04] ( 5, 16 ) int -> [rbp-0x2C]
+; V11 loc4 [V11,T04] ( 5, 16 ) int -> [rbp-0x34]
; V12 loc5 [V12,T16] ( 2, 2 ) ref -> rax class-hnd single-def <ubyte[]>
-; V13 loc6 [V13,T21] ( 5, 0 ) ref -> [rbp-0x58] must-init class-hnd EH-live single-def <System.Exception>
+; V13 loc6 [V13,T21] ( 5, 0 ) ref -> [rbp-0x60] must-init class-hnd EH-live single-def <System.Exception>
;# V14 OutArgs [V14 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V15 tmp1 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.IO.ChunkedMemoryStream>
; V16 tmp2 [V16,T25] ( 2, 0 ) ref -> rsi class-hnd single-def "impSpillSpecialSideEff" <System.Object>
; V17 tmp3 [V17,T22] ( 3, 0 ) ref -> rsi class-hnd single-def "dup spill" <System.Exception>
;* V18 tmp4 [V18 ] ( 0, 0 ) ref -> zero-ref single-def
; V19 tmp5 [V19,T24] ( 3, 0 ) int -> rax
;* V20 tmp6 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd "impSpillSpecialSideEff" <System.Object>
; V21 tmp7 [V21,T23] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.Net.WebException>
-; V22 tmp8 [V22,T09] ( 5, 7 ) ref -> [rbp-0x60] class-hnd exact single-def "Inlining Arg" <System.String>
+; V22 tmp8 [V22,T09] ( 5, 7 ) ref -> [rbp-0x68] class-hnd exact single-def "Inlining Arg" <System.String>
; V23 tmp9 [V23,T10] ( 5, 7 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.String>
; V24 tmp10 [V24,T15] ( 2, 1 ) ubyte -> rax "Inline return value spill temp"
-; V25 tmp11 [V25,T17] ( 2, 2 ) byref -> r8 single-def "impAppendStmt"
+; V25 tmp11 [V25,T17] ( 2, 2 ) byref -> rcx single-def "impAppendStmt"
; V26 tmp12 [V26,T13] ( 2, 4 ) ref -> rdx single-def "argument with side effect"
; V27 tmp13 [V27,T26] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
; V28 PSPSym [V28,T19] ( 1, 1 ) long -> [rbp-0x70] do-not-enreg[V] "PSPSym"
-; V29 cse0 [V29,T03] ( 6, 17 ) int -> [rbp-0x30] multi-def "CSE #05: aggressive"
-; V30 cse1 [V30,T18] ( 3, 1.50) int -> registers "CSE #01: moderate"
+; V29 cse0 [V29,T03] ( 6, 17 ) int -> r13 multi-def "CSE #05: aggressive"
+; V30 cse1 [V30,T18] ( 3, 1.50) int -> rax "CSE #01: moderate"
;
; Lcl frame size = 72
G_M33478_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 72
lea rbp, [rsp+0x70]
vxorps xmm8, xmm8, xmm8
- vmovdqu xmmword ptr [rbp-0x58], xmm8
+ vmovdqa xmmword ptr [rbp-0x60], xmm8
xor eax, eax
- mov qword ptr [rbp-0x48], rax
+ mov qword ptr [rbp-0x50], rax
mov qword ptr [rbp-0x70], rsp
- mov gword ptr [rbp-0x38], rsi
- mov r12, rdi
+ mov qword ptr [rbp-0x30], rdi
+ mov gword ptr [rbp-0x40], rdi
+ mov gword ptr [rbp-0x48], rsi
mov rax, rsi
mov r15, rdx
mov rbx, rcx
mov r14d, r8d
mov r13, r9
- ;; size=61 bbWeight=1 PerfScore 13.83
+ mov r12, gword ptr [rbp+0x10]
+ ;; size=70 bbWeight=1 PerfScore 16.58
G_M33478_IG02:
mov rdi, rax
- mov rdx, qword ptr [rax]
- mov rdx, qword ptr [rdx+0x48]
- call [rdx+0x28]System.Net.WebRequest:get_RequestUri():System.Uri:this
+ mov rcx, qword ptr [rax]
+ mov rcx, qword ptr [rcx+0x48]
+ call [rcx+0x28]System.Net.WebRequest:get_RequestUri():System.Uri:this
mov rdi, rax
mov rax, 0xD1FFAB1E ; code for System.Uri:get_Scheme():System.String:this
cmp dword ptr [rdi], edi
call [rax]System.Uri:get_Scheme():System.String:this
mov rdi, rax
mov rax, 0xD1FFAB1E ; global ptr
test byte ptr [rax], 1
- je G_M33478_IG26
+ je G_M33478_IG23
;; size=52 bbWeight=1 PerfScore 18.25
G_M33478_IG03:
mov rax, 0xD1FFAB1E ; data for System.Uri:UriSchemeFile
mov rsi, gword ptr [rax]
cmp rdi, rsi
- jne SHORT G_M33478_IG06
+ jne SHORT G_M33478_IG05
;; size=18 bbWeight=1 PerfScore 3.50
G_M33478_IG04:
- xor rcx, rcx
+ xor r12, r12
xor r13, r13
- ;; size=5 bbWeight=0.50 PerfScore 0.25
+ jmp SHORT G_M33478_IG06
+ ;; size=8 bbWeight=0.50 PerfScore 1.25
G_M33478_IG05:
- mov gword ptr [rbp-0x40], rcx
- jmp SHORT G_M33478_IG07
- ;; size=6 bbWeight=0.50 PerfScore 1.50
-G_M33478_IG06:
test rdi, rdi
- je SHORT G_M33478_IG09
+ je SHORT G_M33478_IG06
test rsi, rsi
- je SHORT G_M33478_IG08
+ je SHORT G_M33478_IG06
mov eax, dword ptr [rdi+0x08]
cmp eax, dword ptr [rsi+0x08]
- mov gword ptr [rbp-0x40], r13
- mov r13, gword ptr [rbp+0x10]
- je SHORT G_M33478_IG10
- ;; size=26 bbWeight=0.50 PerfScore 5.25
-G_M33478_IG07:
- mov rdi, gword ptr [rbp-0x38]
- mov rcx, qword ptr [rdi]
- mov rcx, qword ptr [rcx+0x58]
- call [rcx+0x10]System.Net.WebRequest:GetRequestStream():System.IO.Stream:this
- mov gword ptr [rbp-0x48], rax
- jmp SHORT G_M33478_IG11
+ je SHORT G_M33478_IG07
+ ;; size=18 bbWeight=0.50 PerfScore 4.25
+G_M33478_IG06:
+ mov rdi, gword ptr [rbp-0x48]
+ mov rax, qword ptr [rdi]
+ mov rax, qword ptr [rax+0x58]
+ call [rax+0x10]System.Net.WebRequest:GetRequestStream():System.IO.Stream:this
+ mov gword ptr [rbp-0x50], rax
+ jmp SHORT G_M33478_IG08
;; size=20 bbWeight=1 PerfScore 11.00
-G_M33478_IG08:
- mov gword ptr [rbp-0x40], r13
- mov r13, gword ptr [rbp+0x10]
- jmp SHORT G_M33478_IG07
- ;; size=10 bbWeight=0.25 PerfScore 1.00
-G_M33478_IG09:
- mov gword ptr [rbp-0x40], r13
- mov r13, gword ptr [rbp+0x10]
- jmp SHORT G_M33478_IG07
- ;; size=10 bbWeight=0.25 PerfScore 1.00
-G_M33478_IG10:
- mov ecx, eax
+G_M33478_IG07:
mov rdx, rdi
add rdx, 12
- mov r8, rdx
- add ecx, ecx
- mov edx, ecx
+ mov rcx, rdx
+ add eax, eax
+ mov edx, eax
add rsi, 12
- mov rdi, r8
- mov rcx, 0xD1FFAB1E ; code for System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
- call [rcx]System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
+ mov rdi, rcx
+ mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
+ call [rax]System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
test eax, eax
- je SHORT G_M33478_IG07
+ je SHORT G_M33478_IG06
jmp SHORT G_M33478_IG04
- ;; size=41 bbWeight=0.50 PerfScore 4.25
-G_M33478_IG11:
- mov rax, gword ptr [rbp-0x40]
- test rax, rax
- je SHORT G_M33478_IG13
- ;; size=9 bbWeight=1 PerfScore 2.25
-G_M33478_IG12:
- mov ecx, dword ptr [rax+0x08]
- mov rdi, gword ptr [rbp-0x48]
- mov rsi, rax
+ ;; size=39 bbWeight=0.50 PerfScore 4.12
+G_M33478_IG08:
+ test r13, r13
+ je SHORT G_M33478_IG10
+ ;; size=5 bbWeight=1 PerfScore 1.25
+G_M33478_IG09:
+ mov ecx, dword ptr [r13+0x08]
+ mov rdi, gword ptr [rbp-0x50]
+ mov rsi, r13
xor edx, edx
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x60]
call [rax+0x30]System.IO.Stream:Write(ubyte[],int,int):this
- ;; size=22 bbWeight=0.50 PerfScore 5.25
-G_M33478_IG13:
+ ;; size=23 bbWeight=0.50 PerfScore 5.25
+G_M33478_IG10:
test r15, r15
- je SHORT G_M33478_IG15
+ je SHORT G_M33478_IG12
;; size=5 bbWeight=1 PerfScore 1.25
-G_M33478_IG14:
- mov gword ptr [rbp-0x50], r15
- jmp SHORT G_M33478_IG21
+G_M33478_IG11:
+ mov gword ptr [rbp-0x58], r15
+ jmp SHORT G_M33478_IG18
;; size=6 bbWeight=0.50 PerfScore 1.50
-G_M33478_IG15:
+G_M33478_IG12:
xor r15d, r15d
- mov r8d, dword ptr [rbx+0x08]
- test r8d, r8d
- jle SHORT G_M33478_IG19
+ mov r13d, dword ptr [rbx+0x08]
+ test r13d, r13d
+ jle SHORT G_M33478_IG16
;; size=12 bbWeight=0.50 PerfScore 1.75
-G_M33478_IG16:
- mov dword ptr [rbp-0x30], r8d
- mov r9d, r8d
- sub r9d, r15d
+G_M33478_IG13:
+ mov r8d, r13d
+ sub r8d, r15d
test r14d, r14d
- je SHORT G_M33478_IG18
- ;; size=15 bbWeight=4 PerfScore 11.00
-G_M33478_IG17:
- cmp r9d, r14d
- jle SHORT G_M33478_IG18
- mov r9d, r14d
+ je SHORT G_M33478_IG15
+ ;; size=11 bbWeight=4 PerfScore 7.00
+G_M33478_IG14:
+ cmp r8d, r14d
+ jle SHORT G_M33478_IG15
+ mov r8d, r14d
;; size=8 bbWeight=2 PerfScore 3.00
-G_M33478_IG18:
- mov rdi, gword ptr [rbp-0x48]
+G_M33478_IG15:
+ mov rdi, gword ptr [rbp-0x50]
mov rsi, rbx
mov edx, r15d
- mov dword ptr [rbp-0x2C], r9d
- mov ecx, r9d
- mov r10, qword ptr [rdi]
- mov r10, qword ptr [r10+0x60]
- call [r10+0x30]System.IO.Stream:Write(ubyte[],int,int):this
- add r15d, dword ptr [rbp-0x2C]
- mov eax, dword ptr [rbp-0x30]
- cmp eax, r15d
- mov r8d, eax
- jg SHORT G_M33478_IG16
- ;; size=43 bbWeight=4 PerfScore 57.00
-G_M33478_IG19:
- test r13, r13
- je SHORT G_M33478_IG23
+ mov dword ptr [rbp-0x34], r8d
+ mov ecx, r8d
+ mov r9, qword ptr [rdi]
+ mov r9, qword ptr [r9+0x60]
+ call [r9+0x30]System.IO.Stream:Write(ubyte[],int,int):this
+ add r15d, dword ptr [rbp-0x34]
+ cmp r13d, r15d
+ jg SHORT G_M33478_IG13
+ ;; size=37 bbWeight=4 PerfScore 52.00
+G_M33478_IG16:
+ test r12, r12
+ je SHORT G_M33478_IG20
;; size=5 bbWeight=1 PerfScore 1.25
-G_M33478_IG20:
- mov ecx, dword ptr [r13+0x08]
- mov rdi, gword ptr [rbp-0x48]
- mov rsi, r13
+G_M33478_IG17:
+ mov ecx, dword ptr [r12+0x08]
+ mov rdi, gword ptr [rbp-0x50]
+ mov rsi, r12
xor edx, edx
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x60]
call [rax+0x30]System.IO.Stream:Write(ubyte[],int,int):this
- jmp SHORT G_M33478_IG23
- ;; size=25 bbWeight=0.50 PerfScore 6.25
-G_M33478_IG21:
- mov ecx, dword ptr [rbx+0x08]
- mov r14d, ecx
- mov ecx, r14d
+ jmp SHORT G_M33478_IG20
+ ;; size=26 bbWeight=0.50 PerfScore 6.25
+G_M33478_IG18:
+ mov r13d, dword ptr [rbx+0x08]
+ mov ecx, r13d
mov rdi, r15
mov rsi, rbx
xor edx, edx
mov r8, qword ptr [r15]
mov r8, qword ptr [r8+0x60]
call [r8+0x18]System.IO.Stream:Read(ubyte[],int,int):int:this
test eax, eax
- jle SHORT G_M33478_IG22
- mov rdi, gword ptr [rbp-0x48]
+ jle SHORT G_M33478_IG19
+ mov rdi, gword ptr [rbp-0x50]
mov rsi, rbx
mov ecx, eax
xor edx, edx
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x60]
call [rax+0x30]System.IO.Stream:Write(ubyte[],int,int):this
- jmp SHORT G_M33478_IG21
- ;; size=55 bbWeight=4 PerfScore 89.00
-G_M33478_IG22:
- mov rdi, gword ptr [rbp-0x50]
+ jmp SHORT G_M33478_IG18
+ ;; size=53 bbWeight=4 PerfScore 88.00
+G_M33478_IG19:
+ mov rdi, gword ptr [rbp-0x58]
mov r11, 0xD1FFAB1E ; code for System.IDisposable:Dispose():this
call [r11]System.IDisposable:Dispose():this
- jmp SHORT G_M33478_IG19
+ jmp SHORT G_M33478_IG16
;; size=19 bbWeight=0.50 PerfScore 3.12
-G_M33478_IG23:
- mov rdi, gword ptr [rbp-0x48]
+G_M33478_IG20:
+ mov rdi, gword ptr [rbp-0x50]
test rdi, rdi
- je SHORT G_M33478_IG25
+ je SHORT G_M33478_IG22
;; size=9 bbWeight=1 PerfScore 2.25
-G_M33478_IG24:
+G_M33478_IG21:
mov r11, 0xD1FFAB1E ; code for System.IDisposable:Dispose():this
call [r11]System.IDisposable:Dispose():this
;; size=13 bbWeight=0.50 PerfScore 1.62
-G_M33478_IG25:
+G_M33478_IG22:
mov rdi, 0xD1FFAB1E ; System.IO.ChunkedMemoryStream
call CORINFO_HELP_NEWSFAST
mov rdx, rax
- mov rsi, gword ptr [rbp-0x38]
- mov rdi, r12
+ mov rsi, gword ptr [rbp-0x48]
+ mov rdi, gword ptr [rbp-0x40]
mov rax, 0xD1FFAB1E ; code for System.Net.WebClient:DownloadBits(System.Net.WebRequest,System.IO.Stream):ubyte[]:this
call [rax]System.Net.WebClient:DownloadBits(System.Net.WebRequest,System.IO.Stream):ubyte[]:this
- jmp SHORT G_M33478_IG27
- ;; size=39 bbWeight=1 PerfScore 8.00
-G_M33478_IG26:
- mov gword ptr [rbp-0x60], rdi
+ jmp SHORT G_M33478_IG24
+ ;; size=40 bbWeight=1 PerfScore 8.75
+G_M33478_IG23:
+ mov gword ptr [rbp-0x68], rdi
mov rdi, 0xD1FFAB1E ; System.Uri
call CORINFO_HELP_GET_GCSTATIC_BASE
- mov rdi, gword ptr [rbp-0x60]
+ mov rdi, gword ptr [rbp-0x68]
jmp G_M33478_IG03
;; size=28 bbWeight=0 PerfScore 0.00
-G_M33478_IG27:
+G_M33478_IG24:
add rsp, 72
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.25
-G_M33478_IG28:
+G_M33478_IG25:
push rbp
push r15
push r14
push r13
push r12
push rbx
push rax
mov rbp, qword ptr [rdi]
mov qword ptr [rsp], rbp
lea rbp, [rbp+0x70]
;; size=22 bbWeight=0 PerfScore 0.00
-G_M33478_IG29:
- cmp gword ptr [rbp-0x50], 0
- je SHORT G_M33478_IG30
- mov rdi, gword ptr [rbp-0x50]
+G_M33478_IG26:
+ cmp gword ptr [rbp-0x58], 0
+ je SHORT G_M33478_IG27
+ mov rdi, gword ptr [rbp-0x58]
mov r11, 0xD1FFAB1E ; code for System.IDisposable:Dispose():this
call [r11]System.IDisposable:Dispose():this
;; size=24 bbWeight=0 PerfScore 0.00
-G_M33478_IG30:
+G_M33478_IG27:
nop
;; size=1 bbWeight=0 PerfScore 0.00
-G_M33478_IG31:
+G_M33478_IG28:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0 PerfScore 0.00
-G_M33478_IG32:
+G_M33478_IG29:
push rbp
push r15
push r14
push r13
push r12
push rbx
push rax
mov rbp, qword ptr [rdi]
mov qword ptr [rsp], rbp
lea rbp, [rbp+0x70]
;; size=22 bbWeight=0 PerfScore 0.00
-G_M33478_IG33:
- cmp gword ptr [rbp-0x48], 0
- je SHORT G_M33478_IG34
- mov rdi, gword ptr [rbp-0x48]
+G_M33478_IG30:
+ cmp gword ptr [rbp-0x50], 0
+ je SHORT G_M33478_IG31
+ mov rdi, gword ptr [rbp-0x50]
mov r11, 0xD1FFAB1E ; code for System.IDisposable:Dispose():this
call [r11]System.IDisposable:Dispose():this
;; size=24 bbWeight=0 PerfScore 0.00
-G_M33478_IG34:
+G_M33478_IG31:
nop
;; size=1 bbWeight=0 PerfScore 0.00
-G_M33478_IG35:
+G_M33478_IG32:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0 PerfScore 0.00
-G_M33478_IG36:
+G_M33478_IG33:
push rbp
push r15
push r14
push r13
push r12
push rbx
push rax
mov rbp, qword ptr [rdi]
mov qword ptr [rsp], rbp
lea rbp, [rbp+0x70]
;; size=22 bbWeight=0 PerfScore 0.00
-G_M33478_IG37:
+G_M33478_IG34:
mov rdi, 0xD1FFAB1E ; System.Exception
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
mov rsi, rax
test rsi, rsi
- jne SHORT G_M33478_IG38
+ jne SHORT G_M33478_IG35
xor eax, eax
- jmp SHORT G_M33478_IG39
+ jmp SHORT G_M33478_IG36
;; size=34 bbWeight=0 PerfScore 0.00
-G_M33478_IG38:
- mov gword ptr [rbp-0x58], rsi
- mov rsi, gword ptr [rbp-0x58]
+G_M33478_IG35:
+ mov gword ptr [rbp-0x60], rsi
+ mov rsi, gword ptr [rbp-0x60]
mov rdi, 0xD1FFAB1E ; System.OutOfMemoryException
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
test rax, rax
sete al
movzx rax, al
;; size=39 bbWeight=0 PerfScore 0.00
-G_M33478_IG39:
+G_M33478_IG36:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0 PerfScore 0.00
-G_M33478_IG40:
+G_M33478_IG37:
push rbp
push r15
push r14
push r13
push r12
push rbx
push rax
mov rbp, qword ptr [rdi]
mov qword ptr [rsp], rbp
lea rbp, [rbp+0x70]
;; size=22 bbWeight=0 PerfScore 0.00
-G_M33478_IG41:
- mov rdi, gword ptr [rbp-0x38]
+G_M33478_IG38:
+ mov rdi, gword ptr [rbp-0x48]
mov rax, 0xD1FFAB1E ; code for System.Net.WebClient:AbortRequest(System.Net.WebRequest)
call [rax]System.Net.WebClient:AbortRequest(System.Net.WebRequest)
- mov rsi, gword ptr [rbp-0x58]
+ mov rsi, gword ptr [rbp-0x60]
mov rdi, 0xD1FFAB1E ; System.Net.WebException
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
test rax, rax
- jne SHORT G_M33478_IG42
- mov rsi, gword ptr [rbp-0x58]
+ jne SHORT G_M33478_IG39
+ mov rsi, gword ptr [rbp-0x60]
mov rdi, 0xD1FFAB1E ; System.Security.SecurityException
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
test rax, rax
- je SHORT G_M33478_IG43
+ je SHORT G_M33478_IG40
;; size=78 bbWeight=0 PerfScore 0.00
-G_M33478_IG42:
+G_M33478_IG39:
call CORINFO_HELP_RETHROW
int3
;; size=6 bbWeight=0 PerfScore 0.00
-G_M33478_IG43:
+G_M33478_IG40:
mov rdi, 0xD1FFAB1E ; System.Net.WebException
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov rax, 0xD1FFAB1E ; code for System.SR:get_net_webclient():System.String
call [rax]System.SR:get_net_webclient():System.String
mov rsi, rax
mov rdi, rbx
- mov rdx, gword ptr [rbp-0x58]
+ mov rdx, gword ptr [rbp-0x60]
mov rax, 0xD1FFAB1E ; code for System.Net.WebException:.ctor(System.String,System.Exception):this
call [rax]System.Net.WebException:.ctor(System.String,System.Exception):this
mov rdi, rbx
call CORINFO_HELP_THROW
int3
;; size=61 bbWeight=0 PerfScore 0.00
-; Total bytes of code 978, prolog size 61, PerfScore 258.58, instruction count 294, allocated bytes for code 978 (MethodHash=14827d39) for method System.Net.WebClient:UploadBits(System.Net.WebRequest,System.IO.FileStream,ubyte[],int,ubyte[],ubyte[]):ubyte[]:this (FullOpts)
+; Total bytes of code 941, prolog size 70, PerfScore 247.46, instruction count 281, allocated bytes for code 941 (MethodHash=14827d39) for method System.Net.WebClient:UploadBits(System.Net.WebRequest,System.IO.FileStream,ubyte[],int,ubyte[],ubyte[]):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/c35e5bc125dac4b410662da81d33240c |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Job completed in 16 minutes.
dotnet/runtime#103813
Diffs
Diffs
Artifacts:
The text was updated successfully, but these errors were encountered: