Untitled diff
86 removals
Words removed | 100 |
Total words | 958 |
Words removed (%) | 10.44 |
171 lines
138 additions
Words added | 345 |
Total words | 1203 |
Words added (%) | 28.68 |
221 lines
; Assembly listing for method System.Text.EncodingTable:GetEncodings():System.Text.EncodingInfo[] (FullOpts)
; Assembly listing for method System.Text.EncodingTable:GetEncodings():System.Text.EncodingInfo[] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; FullOpts code
; optimized code
; optimized code
; rbp based frame
; rbp based frame
; fully interruptible
; fully interruptible
; No PGO data
; No PGO data
; 0 inlinees with PGO data; 6 single block inlinees; 2 inlinees without PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
; Final local variable assignments
; Final local variable assignments
;
;
;* V00 loc0 [V00 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.ReadOnlySpan`1[ushort]>
;* V00 loc0 [V00 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.ReadOnlySpan`1[ushort]>
; V01 loc1 [V01,T09] ( 4, 5.21) ref -> r14 class-hnd exact single-def <System.Text.EncodingInfo[]>
; V01 loc1 [V01,T11] ( 4, 5.21) ref -> r14 class-hnd exact single-def <System.Text.EncodingInfo[]>
;* V02 loc2 [V02,T21] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <System.String>
;* V02 loc2 [V02,T24] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <System.String>
;* V03 loc3 [V03 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.ReadOnlySpan`1[int]>
;* V03 loc3 [V03 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.ReadOnlySpan`1[int]>
; V04 loc4 [V04,T12] ( 3, 4.21) int -> [rbp-0x2C]
; V04 loc4 [V04,T14] ( 3, 4.21) int -> [rbp-0x2C]
;* V05 loc5 [V05,T22] ( 0, 0 ) int -> zero-ref
;* V05 loc5 [V05,T25] ( 0, 0 ) int -> zero-ref
; V06 loc6 [V06,T03] ( 4, 11.88) int -> [rbp-0x30] spill-single-def
; V06 loc6 [V06,T06] ( 4, 11.88) int -> [rbp-0x30] spill-single-def
; V07 loc7 [V07,T07] ( 3, 5.94) int -> rsi
; V07 loc7 [V07,T07] ( 5, 8.42) int -> [rbp-0x34] spill-single-def
;# V08 OutArgs [V08 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
;# V08 OutArgs [V08 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
; V09 tmp1 [V09,T16] ( 3, 1.25) int -> rsi
; V09 tmp1 [V09,T19] ( 3, 1.25) int -> rsi
;* V10 tmp2 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewArr temp" <System.Text.EncodingInfo[]>
;* V10 tmp2 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewArr temp" <System.Text.EncodingInfo[]>
; V11 tmp3 [V11,T02] ( 4, 15.84) int -> r12 "impSpillLclRefs"
; V11 tmp3 [V11,T05] ( 4, 15.84) int -> r12 "impSpillLclRefs"
; V12 tmp4 [V12,T04] ( 2, 7.92) ref -> [rbp-0x40] class-hnd exact spill-single-def "non-inline candidate call" <System.String>
; V12 tmp4 [V12,T03] ( 4, 15.84) ref -> [rbp-0x50] class-hnd exact "non-inline candidate call" <System.String>
; V13 tmp5 [V13,T01] ( 5, 19.80) ref -> [rbp-0x48] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.EncodingInfo>
; V13 tmp5 [V13,T02] ( 5, 19.80) ref -> [rbp-0x58] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.EncodingInfo>
;* V14 tmp6 [V14 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[ushort]>
;* V14 tmp6 [V14 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[ushort]>
; V15 tmp7 [V15,T17] ( 2, 1 ) ubyte -> rax "Inline return value spill temp"
; V15 tmp7 [V15,T20] ( 2, 1 ) ubyte -> rax "Inline return value spill temp"
;* V16 tmp8 [V16 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[int]>
;* V16 tmp8 [V16 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[int]>
; V17 tmp9 [V17,T13] ( 2, 3.96) ubyte -> rax "Inline return value spill temp"
; V17 tmp9 [V17,T15] ( 2, 3.96) ubyte -> rax "Inline return value spill temp"
; V18 tmp10 [V18,T05] ( 2, 7.92) ref -> [rbp-0x50] class-hnd exact spill-single-def "Inlining Arg" <System.String>
; V18 tmp10 [V18,T00] ( 7, 24.76) int -> r8 "Inlining Arg"
; V19 tmp11 [V19,T10] ( 2, 4.96) byref -> rbx single-def "field V00._reference (fldOffset=0x0)" P-INDEP
;* V19 tmp11 [V19 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V20 tmp12 [V20,T18] ( 0, 0 ) int -> zero-ref "field V00._length (fldOffset=0x8)" P-INDEP
; V20 tmp12 [V20,T16] ( 2, 3.96) long -> [rbp-0x40] spill-single-def "Inline stloc first use temp"
; V21 tmp13 [V21,T11] ( 3, 4.21) byref -> r13 single-def "field V03._reference (fldOffset=0x0)" P-INDEP
; V21 tmp13 [V21,T04] ( 4, 15.84) ref -> [rbp-0x60] class-hnd exact spill-single-def "dup spill" <System.String>
;* V22 tmp14 [V22,T23] ( 0, 0 ) int -> zero-ref "field V03._length (fldOffset=0x8)" P-INDEP
;* V22 tmp14 [V22 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
; V23 tmp15 [V23,T15] ( 2, 2 ) byref -> rbx single-def "field V14._reference (fldOffset=0x0)" P-INDEP
;* V23 tmp15 [V23 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V24 tmp16 [V24,T19] ( 0, 0 ) int -> zero-ref "field V14._length (fldOffset=0x8)" P-INDEP
; V24 tmp16 [V24,T08] ( 2, 7.92) ref -> [rbp-0x68] class-hnd exact spill-single-def "Inlining Arg" <System.String>
; V25 tmp17 [V25,T20] ( 2, 0.50) byref -> r13 single-def "field V16._reference (fldOffset=0x0)" P-INDEP
; V25 tmp17 [V25,T12] ( 2, 4.96) byref -> rbx single-def "field V00._reference (fldOffset=0x0)" P-INDEP
;* V26 tmp18 [V26,T24] ( 0, 0 ) int -> zero-ref "field V16._length (fldOffset=0x8)" P-INDEP
;* V26 tmp18 [V26,T21] ( 0, 0 ) int -> zero-ref "field V00._length (fldOffset=0x8)" P-INDEP
; V27 cse0 [V27,T08] ( 3, 5.94) int -> rdi "CSE #03: moderate"
; V27 tmp19 [V27,T13] ( 3, 4.21) byref -> r13 single-def "field V03._reference (fldOffset=0x0)" P-INDEP
; V28 cse1 [V28,T14] ( 3, 2.50) int -> rdi "CSE #02: moderate"
;* V28 tmp20 [V28,T26] ( 0, 0 ) int -> zero-ref "field V03._length (fldOffset=0x8)" P-INDEP
; V29 cse2 [V29,T06] ( 5, 6.46) byref -> r15 "CSE #01: moderate"
; V29 tmp21 [V29,T18] ( 2, 2 ) byref -> rbx single-def "field V14._reference (fldOffset=0x0)" P-INDEP
; V30 rat0 [V30,T00] ( 7, 20.05) long -> [rbp-0x38] "Widened IV V05"
;* V30 tmp22 [V30,T22] ( 0, 0 ) int -> zero-ref "field V14._length (fldOffset=0x8)" P-INDEP
; V31 tmp23 [V31,T23] ( 2, 0.50) byref -> r13 single-def "field V16._reference (fldOffset=0x0)" P-INDEP
;* V32 tmp24 [V32,T27] ( 0, 0 ) int -> zero-ref "field V16._length (fldOffset=0x8)" P-INDEP
; V33 cse0 [V33,T10] ( 3, 5.94) int -> rdi "CSE #03: moderate"
; V34 cse1 [V34,T17] ( 3, 2.50) int -> rdi "CSE #02: moderate"
; V35 cse2 [V35,T09] ( 5, 6.46) byref -> r15 "CSE #01: moderate"
; V36 rat0 [V36,T01] ( 7, 20.05) long -> [rbp-0x48] "Widened IV V05"
;
;
; Lcl frame size = 40
; Lcl frame size = 72
G_M46987_IG01:
G_M46987_IG01:
push rbp
push rbp
push r15
push r15
push r14
push r14
push r13
push r13
push r12
push r12
push rbx
push rbx
sub rsp, 40
sub rsp, 72
lea rbp, [rsp+0x50]
lea rbp, [rsp+0x70]
;; size=19 bbWeight=1 PerfScore 6.75
;; size=19 bbWeight=1 PerfScore 6.75
G_M46987_IG02:
G_M46987_IG02:
mov rbx, 0xD1FFAB1E ; static handle
mov rbx, 0xD1FFAB1E ; static handle
mov r15, 0xD1FFAB1E ; static handle
mov r15, 0xD1FFAB1E ; static handle
mov edi, dword ptr [r15]
mov edi, dword ptr [r15]
test edi, edi
test edi, edi
jl SHORT G_M46987_IG05
jl SHORT G_M46987_IG05
;; size=27 bbWeight=1 PerfScore 3.75
;; size=27 bbWeight=1 PerfScore 3.75
G_M46987_IG03:
G_M46987_IG03:
test edi, edi
test edi, edi
jg SHORT G_M46987_IG04
jg SHORT G_M46987_IG04
mov rdi, 0xD1FFAB1E ; 'System.Text.Encoding.EnableUnsafeUTF7Encoding'
mov rdi, 0xD1FFAB1E ; 'System.Text.Encoding.EnableUnsafeUTF7Encoding'
mov rsi, r15
mov rsi, r15
mov rax, 0xD1FFAB1E ; code for System.LocalAppContextSwitches:GetCachedSwitchValueInternal(System.String,byref):ubyte
mov rax, 0xD1FFAB1E ; code for System.LocalAppContextSwitches:GetCachedSwitchValueInternal(System.String,byref):ubyte
call [rax]System.LocalAppContextSwitches:GetCachedSwitchValueInternal(System.String,byref):ubyte
call [rax]System.LocalAppContextSwitches:GetCachedSwitchValueInternal(System.String,byref):ubyte
test eax, eax
test eax, eax
je SHORT G_M46987_IG05
je SHORT G_M46987_IG05
;; size=33 bbWeight=0.50 PerfScore 3.12
;; size=33 bbWeight=0.50 PerfScore 3.12
G_M46987_IG04:
G_M46987_IG04:
mov esi, 8
mov esi, 8
jmp SHORT G_M46987_IG06
jmp SHORT G_M46987_IG06
;; size=7 bbWeight=0.50 PerfScore 1.12
;; size=7 bbWeight=0.50 PerfScore 1.12
G_M46987_IG05:
G_M46987_IG05:
mov esi, 7
mov esi, 7
;; size=5 bbWeight=0.50 PerfScore 0.12
;; size=5 bbWeight=0.50 PerfScore 0.12
G_M46987_IG06:
G_M46987_IG06:
movsxd rsi, esi
movsxd rsi, esi
mov rdi, 0xD1FFAB1E ; System.Text.EncodingInfo[]
mov rdi, 0xD1FFAB1E ; System.Text.EncodingInfo[]
call CORINFO_HELP_NEWARR_1_OBJ
call CORINFO_HELP_NEWARR_1_OBJ
mov r14, rax
mov r14, rax
mov r13, 0xD1FFAB1E ; static handle
mov r13, 0xD1FFAB1E ; static handle
xor r12d, r12d
xor r12d, r12d
xor eax, eax
xor eax, eax
;; size=36 bbWeight=0.25 PerfScore 0.62
;; size=36 bbWeight=0.25 PerfScore 0.62
G_M46987_IG07:
G_M46987_IG07:
mov qword ptr [rbp-0x38], rax
mov qword ptr [rbp-0x48], rax
movzx rcx, word ptr [rbx+2*rax]
movzx rcx, word ptr [rbx+2*rax]
mov dword ptr [rbp-0x30], ecx
mov dword ptr [rbp-0x30], ecx
cmp ecx, 0xFDE8
cmp ecx, 0xFDE8
jne SHORT G_M46987_IG09
jne SHORT G_M46987_IG09
;; size=19 bbWeight=3.96 PerfScore 20.79
;; size=19 bbWeight=3.96 PerfScore 20.79
G_M46987_IG08:
G_M46987_IG08:
mov edi, dword ptr [r15]
mov edi, dword ptr [r15]
test edi, edi
test edi, edi
jl G_M46987_IG10
jl G_M46987_IG13
test edi, edi
test edi, edi
jg SHORT G_M46987_IG09
jg SHORT G_M46987_IG09
mov rdi, 0xD1FFAB1E ; 'System.Text.Encoding.EnableUnsafeUTF7Encoding'
mov rdi, 0xD1FFAB1E ; 'System.Text.Encoding.EnableUnsafeUTF7Encoding'
mov rsi, r15
mov rsi, r15
mov rdx, 0xD1FFAB1E ; code for System.LocalAppContextSwitches:GetCachedSwitchValueInternal(System.String,byref):ubyte
mov rdx, 0xD1FFAB1E ; code for System.LocalAppContextSwitches:GetCachedSwitchValueInternal(System.String,byref):ubyte
call [rdx]System.LocalAppContextSwitches:GetCachedSwitchValueInternal(System.String,byref):ubyte
call [rdx]System.LocalAppContextSwitches:GetCachedSwitchValueInternal(System.String,byref):ubyte
test eax, eax
test eax, eax
je G_M46987_IG10
je G_M46987_IG13
;; size=48 bbWeight=1.98 PerfScore 18.81
;; size=48 bbWeight=1.98 PerfScore 18.81
G_M46987_IG09:
G_M46987_IG09:
lea edx, [r12+0x01]
lea edi, [r12+0x01]
mov dword ptr [rbp-0x2C], edx
mov dword ptr [rbp-0x2C], edi
mov rax, qword ptr [rbp-0x38]
mov rax, qword ptr [rbp-0x48]
mov esi, dword ptr [r13+4*rax]
mov esi, dword ptr [r13+4*rax]
mov qword ptr [rbp-0x38], rax
mov dword ptr [rbp-0x34], esi
lea edx, [rax+0x01]
mov qword ptr [rbp-0x48], rax
mov edx, dword ptr [r13+4*rdx]
lea edi, [rax+0x01]
sub edx, esi
mov edi, dword ptr [r13+4*rdi]
sub edi, esi
mov r8d, edi
mov edi, esi
mov r9d, r8d
add rdi, r9
cmp rdi, 56
ja G_M46987_IG16
test r8d, r8d
je SHORT G_M46987_IG11
cmp r8d, 56
je SHORT G_M46987_IG10
mov r9d, r8d
mov qword ptr [rbp-0x40], r9
mov edi, r8d
call System.String:FastAllocateString(int):System.String
mov gword ptr [rbp-0x60], rax
mov rsi, 0xD1FFAB1E
mov edi, dword ptr [rbp-0x34]
lea rsi, bword ptr [rsi+2*rdi]
cmp byte ptr [rax], al
lea rdi, bword ptr [rax+0x0C]
mov rdx, qword ptr [rbp-0x40]
add rdx, rdx
mov rcx, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
call [rcx]System.SpanHelpers:Memmove(byref,byref,ulong)
mov rax, gword ptr [rbp-0x60]
mov gword ptr [rbp-0x50], rax
jmp SHORT G_M46987_IG12
;; size=137 bbWeight=1.98 PerfScore 61.87
G_M46987_IG10:
mov rdi, 0xD1FFAB1E ; 'utf-16utf-16BEutf-32utf-32BEus-asciiiso-8859-1utf-7utf-8'
mov rdi, 0xD1FFAB1E ; 'utf-16utf-16BEutf-32utf-32BEus-asciiiso-8859-1utf-7utf-8'
mov r9, 0xD1FFAB1E ; code for System.String:Substring(int,int):System.String:this
mov rsi, rdi
call [r9]System.String:Substring(int,int):System.String:this
mov gword ptr [rbp-0x50], rsi
mov gword ptr [rbp-0x40], rax
jmp SHORT G_M46987_IG12
;; size=19 bbWeight=1.98 PerfScore 6.93
G_M46987_IG11:
mov rsi, 0xD1FFAB1E ; ''
mov gword ptr [rbp-0x50], rsi
;; size=14 bbWeight=1.98 PerfScore 2.48
G_M46987_IG12:
mov rdi, 0xD1FFAB1E ; System.Text.EncodingInfo
mov rdi, 0xD1FFAB1E ; System.Text.EncodingInfo
call CORINFO_HELP_NEWSFAST
call CORINFO_HELP_NEWSFAST
mov gword ptr [rbp-0x48], rax
mov gword ptr [rbp-0x58], rax
mov edi, dword ptr [rbp-0x30]
mov edi, dword ptr [rbp-0x30]
mov rcx, 0xD1FFAB1E ; code for System.Text.EncodingTable:GetDisplayName(int):System.String
mov rcx, 0xD1FFAB1E ; code for System.Text.EncodingTable:GetDisplayName(int):System.String
call [rcx]System.Text.EncodingTable:GetDisplayName(int):System.String
call [rcx]System.Text.EncodingTable:GetDisplayName(int):System.String
mov gword ptr [rbp-0x50], rax
mov gword ptr [rbp-0x68], rax
mov rcx, gword ptr [rbp-0x48]
mov rcx, gword ptr [rbp-0x58]
mov edi, dword ptr [rbp-0x30]
mov edi, dword ptr [rbp-0x30]
mov dword ptr [rcx+0x20], edi
mov dword ptr [rcx+0x20], edi
lea rdi, bword ptr [rcx+0x08]
lea rdi, bword ptr [rcx+0x08]
mov rsi, gword ptr [rbp-0x40]
mov rsi, gword ptr [rbp-0x50]
call CORINFO_HELP_ASSIGN_REF
call CORINFO_HELP_ASSIGN_REF
mov rax, gword ptr [rbp-0x48]
mov rax, gword ptr [rbp-0x58]
lea rdi, bword ptr [rax+0x10]
lea rdi, bword ptr [rax+0x10]
mov rsi, gword ptr [rbp-0x50]
mov rsi, gword ptr [rbp-0x68]
call CORINFO_HELP_ASSIGN_REF
call CORINFO_HELP_ASSIGN_REF
cmp r12d, dword ptr [r14+0x08]
cmp r12d, dword ptr [r14+0x08]
jae SHORT G_M46987_IG13
jae SHORT G_M46987_IG17
mov edi, r12d
mov edi, r12d
lea rdi, bword ptr [r14+8*rdi+0x10]
lea rdi, bword ptr [r14+8*rdi+0x10]
mov rsi, gword ptr [rbp-0x48]
mov rsi, gword ptr [rbp-0x58]
call CORINFO_HELP_ASSIGN_REF
call CORINFO_HELP_ASSIGN_REF
mov r12d, dword ptr [rbp-0x2C]
mov r12d, dword ptr [rbp-0x2C]
;; size=163 bbWeight=1.98 PerfScore 74.25
;; size=105 bbWeight=1.98 PerfScore 49.00
G_M46987_IG10:
G_M46987_IG13:
mov rax, qword ptr [rbp-0x38]
mov rax, qword ptr [rbp-0x48]
inc eax
inc eax
cmp eax, 8
cmp eax, 8
jl G_M46987_IG07
jl G_M46987_IG07
;; size=15 bbWeight=3.96 PerfScore 9.90
;; size=15 bbWeight=3.96 PerfScore 9.90
G_M46987_IG11:
G_M46987_IG14:
mov rax, r14
mov rax, r14
;; size=3 bbWeight=1 PerfScore 0.25
;; size=3 bbWeight=1 PerfScore 0.25
G_M46987_IG12:
G_M46987_IG15:
add rsp, 40
add rsp, 72
pop rbx
pop rbx
pop r12
pop r12
pop r13
pop r13
pop r14
pop r14
pop r15
pop r15
pop rbp
pop rbp
ret
ret
;; size=15 bbWeight=1 PerfScore 4.25
;; size=15 bbWeight=1 PerfScore 4.25
G_M46987_IG13:
G_M46987_IG16:
mov rdi, 0xD1FFAB1E ; 'utf-16utf-16BEutf-32utf-32BEus-asciiiso-8859-1utf-7utf-8'
mov esi, dword ptr [rbp-0x34]
mov edx, r8d
mov rax, 0xD1FFAB1E ; code for System.String:ThrowSubstringArgumentOutOfRange(int,int):this
call [rax]System.String:ThrowSubstringArgumentOutOfRange(int,int):this
int3
;; size=29 bbWeight=0.50 PerfScore 2.50
G_M46987_IG17:
call CORINFO_HELP_RNGCHKFAIL
call CORINFO_HELP_RNGCHKFAIL
int3
int3
;; size=6 bbWeight=0 PerfScore 0.00
;; size=6 bbWeight=0 PerfScore 0.00
; Total bytes of code 396, prolog size 19, PerfScore 143.75, instruction count 98, allocated bytes for code 396 (MethodHash=f2cf4874) for method System.Text.EncodingTable:GetEncodings():System.Text.EncodingInfo[] (FullOpts)
; Total bytes of code 537, prolog size 19, PerfScore 192.28, instruction count 134, allocated bytes for code 537 (MethodHash=f2cf4874) for method System.Text.EncodingTable:GetEncodings():System.Text.EncodingInfo[] (FullOpts)
; ============================================================
; ============================================================