Untitled Diff

Created Diff never expires
50 removals
Words removed92
Total words505
Words removed (%)18.22
116 lines
52 additions
Words added176
Total words589
Words added (%)29.88
116 lines
; Assembly listing for method System.TimeZoneInfo+StringSerializer:SerializeSubstitute(System.String,byref)
; Assembly listing for method System.TimeZoneInfo+StringSerializer:SerializeSubstitute(System.String,byref)
; Emitting BLENDED_CODE for X64 CPU with SSE2 - Windows
; Emitting BLENDED_CODE for X64 CPU with SSE2 - Windows
; ReadyToRun compilation
; ReadyToRun compilation
; optimized code
; optimized code
; rsp based frame
; rsp based frame
; fully interruptible
; fully interruptible
; No PGO data
; No PGO data
; 0 inlinees with PGO data; 0 single block inlinees; 2 inlinees without PGO data
; 0 inlinees with PGO data; 0 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
; Final local variable assignments
;
;
; V00 arg0 [V00,T09] ( 3, 3 ) ref -> rcx class-hnd single-def
; V00 arg0 [V00,T11] ( 3, 3 ) ref -> rcx class-hnd single-def
; V01 arg1 [V01,T00] ( 12, 26 ) byref -> rsi single-def
; V01 arg1 [V01,T00] ( 10, 22 ) byref -> rsi single-def
; V02 loc0 [V02,T07] ( 3, 6 ) ref -> rdi class-hnd single-def
; V02 loc0 [V02,T08] ( 3, 6 ) ref -> rdi class-hnd single-def
; V03 loc1 [V03,T02] ( 5, 17 ) int -> rbx
; V03 loc1 [V03,T03] ( 5, 17 ) int -> rbx
; V04 loc2 [V04,T01] ( 7, 18 ) ushort -> r14
; V04 loc2 [V04,T02] ( 7, 18 ) ushort -> r14
; V05 OutArgs [V05 ] ( 1, 1 ) lclBlk (32) [rsp+00H] "OutgoingArgSpace"
; V05 OutArgs [V05 ] ( 1, 1 ) lclBlk (32) [rsp+00H] "OutgoingArgSpace"
; V06 tmp1 [V06,T06] ( 5, 10 ) int -> rcx "Inline stloc first use temp"
; V06 tmp1 [V06,T06] ( 4, 8 ) int -> rcx "Inline stloc first use temp"
; V07 tmp2 [V07,T04] ( 3, 12 ) byref -> rdx "Span.get_Item ptrToSpan"
;* V07 tmp2 [V07 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp"
; V08 tmp3 [V08,T03] ( 5, 14 ) int -> rcx "Inline stloc first use temp"
; V08 tmp3 [V08,T04] ( 4, 12 ) int -> rcx "Inline stloc first use temp"
; V09 tmp4 [V09,T05] ( 3, 12 ) byref -> rdx "Span.get_Item ptrToSpan"
;* V09 tmp4 [V09 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp"
; V10 cse0 [V10,T08] ( 3, 6 ) int -> rbp "CSE - aggressive"
; V10 tmp5 [V10,T12] ( 2, 4 ) byref -> rax V07._reference(offs=0x00) P-INDEP "field V07._reference (fldOffset=0x0)"
; V11 tmp6 [V11,T13] ( 2, 4 ) int -> rdx V07._length(offs=0x08) P-INDEP "field V07._length (fldOffset=0x8)"
; V12 tmp7 [V12,T10] ( 2, 6 ) byref -> rax V09._reference(offs=0x00) P-INDEP "field V09._reference (fldOffset=0x0)"
; V13 tmp8 [V13,T07] ( 2, 8 ) int -> rdx V09._length(offs=0x08) P-INDEP "field V09._length (fldOffset=0x8)"
; V14 tmp9 [V14,T05] ( 3, 12 ) byref -> rdx "BlockOp address local"
; V15 tmp10 [V15,T01] ( 3, 24 ) byref -> rdx "BlockOp address local"
; V16 cse0 [V16,T09] ( 3, 6 ) int -> rbp "CSE - aggressive"
;
;
; Lcl frame size = 32
; Lcl frame size = 32


G_M45441_IG01:
G_M45441_IG01:
push r14
push r14
push rdi
push rdi
push rsi
push rsi
push rbp
push rbp
push rbx
push rbx
sub rsp, 32
sub rsp, 32
mov rsi, rdx
mov rsi, rdx
;; size=13 bbWeight=1 PerfScore 5.50
;; size=13 bbWeight=1 PerfScore 5.50
G_M45441_IG02:
G_M45441_IG02:
mov rdi, rcx
mov rdi, rcx
xor ebx, ebx
xor ebx, ebx
mov ebp, dword ptr [rdi+08H]
mov ebp, dword ptr [rdi+08H]
test ebp, ebp
test ebp, ebp
jle G_M45441_IG11
jle G_M45441_IG11
;; size=16 bbWeight=1 PerfScore 3.75
;; size=16 bbWeight=1 PerfScore 3.75
G_M45441_IG03:
G_M45441_IG03:
mov ecx, ebx
mov ecx, ebx
movzx r14, word ptr [rdi+2*rcx+0CH]
movzx r14, word ptr [rdi+2*rcx+0CH]
cmp r14d, 92
cmp r14d, 92
je SHORT G_M45441_IG05
je SHORT G_M45441_IG05
;; size=14 bbWeight=4 PerfScore 14.00
;; size=14 bbWeight=4 PerfScore 14.00
G_M45441_IG04:
G_M45441_IG04:
cmp r14d, 91
cmp r14d, 91
je SHORT G_M45441_IG05
je SHORT G_M45441_IG05
cmp r14d, 93
cmp r14d, 93
je SHORT G_M45441_IG05
je SHORT G_M45441_IG05
cmp r14d, 59
cmp r14d, 59
jne SHORT G_M45441_IG07
jne SHORT G_M45441_IG07
;; size=18 bbWeight=2 PerfScore 7.50
;; size=18 bbWeight=2 PerfScore 7.50
G_M45441_IG05:
G_M45441_IG05:
mov ecx, dword ptr [rsi+08H]
mov ecx, dword ptr [rsi+08H]
cmp ecx, dword ptr [rsi+18H]
jae SHORT G_M45441_IG06
lea rdx, bword ptr [rsi+10H]
lea rdx, bword ptr [rsi+10H]
cmp ecx, dword ptr [rdx+08H]
mov rax, bword ptr [rdx]
jae SHORT G_M45441_IG12
mov edx, dword ptr [rdx+08H]
mov rdx, bword ptr [rdx]
cmp ecx, edx
mov eax, ecx
jae SHORT G_M45441_IG06
mov word ptr [rdx+2*rax], 92
mov edx, ecx
mov word ptr [rax+2*rdx], 92
inc ecx
inc ecx
mov dword ptr [rsi+08H], ecx
mov dword ptr [rsi+08H], ecx
jmp SHORT G_M45441_IG07
jmp SHORT G_M45441_IG07
;; size=35 bbWeight=2 PerfScore 34.00
;; size=32 bbWeight=2 PerfScore 24.50
G_M45441_IG06:
G_M45441_IG06:
mov rcx, rsi
mov rcx, rsi
mov edx, 92
mov edx, 92
call [System.Text.ValueStringBuilder:GrowAndAppend(ushort):this]
call [System.Text.ValueStringBuilder:GrowAndAppend(ushort):this]
;; size=14 bbWeight=2 PerfScore 7.00
;; size=14 bbWeight=2 PerfScore 7.00
G_M45441_IG07:
G_M45441_IG07:
mov ecx, dword ptr [rsi+08H]
mov ecx, dword ptr [rsi+08H]
cmp ecx, dword ptr [rsi+18H]
lea rdx, bword ptr [rsi+10H]
mov rax, bword ptr [rdx]
mov edx, dword ptr [rdx+08H]
cmp ecx, edx
jae SHORT G_M45441_IG09
jae SHORT G_M45441_IG09
;; size=8 bbWeight=4 PerfScore 24.00
;; size=17 bbWeight=4 PerfScore 31.00
G_M45441_IG08:
G_M45441_IG08:
lea rdx, bword ptr [rsi+10H]
mov edx, ecx
cmp ecx, dword ptr [rdx+08H]
mov word ptr [rax+2*rdx], r14w
jae SHORT G_M45441_IG12
mov rdx, bword ptr [rdx]
mov eax, ecx
mov word ptr [rdx+2*rax], r14w
inc ecx
inc ecx
mov dword ptr [rsi+08H], ecx
mov dword ptr [rsi+08H], ecx
jmp SHORT G_M45441_IG10
jmp SHORT G_M45441_IG10
;; size=26 bbWeight=2 PerfScore 22.00
;; size=14 bbWeight=2 PerfScore 9.00
G_M45441_IG09:
G_M45441_IG09:
mov rcx, rsi
mov rcx, rsi
mov edx, r14d
mov edx, r14d
call [System.Text.ValueStringBuilder:GrowAndAppend(ushort):this]
call [System.Text.ValueStringBuilder:GrowAndAppend(ushort):this]
;; size=12 bbWeight=2 PerfScore 7.00
;; size=12 bbWeight=2 PerfScore 7.00
G_M45441_IG10:
G_M45441_IG10:
inc ebx
inc ebx
cmp ebp, ebx
cmp ebp, ebx
jg G_M45441_IG03
jg SHORT G_M45441_IG03
;; size=10 bbWeight=4 PerfScore 6.00
;; size=6 bbWeight=4 PerfScore 6.00
G_M45441_IG11:
G_M45441_IG11:
add rsp, 32
add rsp, 32
pop rbx
pop rbx
pop rbp
pop rbp
pop rsi
pop rsi
pop rdi
pop rdi
pop r14
pop r14
ret
ret
;; size=11 bbWeight=1 PerfScore 3.75
;; size=11 bbWeight=1 PerfScore 3.75
G_M45441_IG12:
call [CORINFO_HELP_RNGCHKFAIL]
int3
;; size=7 bbWeight=0 PerfScore 0.00


; Total bytes of code 184, prolog size 13, PerfScore 152.90, instruction count 64, allocated bytes for code 184 (MethodHash=a0f64e7e) for method System.TimeZoneInfo+StringSerializer:SerializeSubstitute(System.String,byref)
; Total bytes of code 167, prolog size 13, PerfScore 135.70, instruction count 60, allocated bytes for code 167 (MethodHash=a0f64e7e) for method System.TimeZoneInfo+StringSerializer:SerializeSubstitute(System.String,byref)
; ============================================================
; ============================================================