TrimDateTimeOffset

생성일 비교 결과 만료 없음
67 삭제
254
70 추가
253
; Assembly listing for method System.Text.Json.JsonWriterHelper:TrimDateTimeOffset(System.Span`1[System.Byte],byref)
; Assembly listing for method System.Text.Json.JsonWriterHelper:TrimDateTimeOffset(System.Span`1[System.Byte],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
; discarded IBC profile data due to mismatch in ILSize
; discarded IBC profile data due to mismatch in ILSize
; Final local variable assignments
; Final local variable assignments
;
;
; V00 arg0 [V00,T00] ( 18, 37 ) byref -> rsi ld-addr-op
; V00 arg0 [V00,T00] ( 18, 37 ) byref -> rsi ld-addr-op
; V01 arg1 [V01,T09] ( 5, 4 ) byref -> rdi
; V01 arg1 [V01,T09] ( 5, 4 ) byref -> rdi
; V02 loc0 [V02,T15] ( 2, 2 ) int -> rbx
; V02 loc0 [V02,T15] ( 2, 2 ) int -> rbx
; V03 loc1 [V03,T16] ( 2, 2 ) int -> rdx
; V03 loc1 [V03,T16] ( 2, 2 ) int -> rcx
; V04 loc2 [V04,T17] ( 2, 2 ) int -> r8
; V04 loc2 [V04,T17] ( 2, 2 ) int -> rdx
; V05 loc3 [V05,T18] ( 2, 2 ) int -> rcx
; V05 loc3 [V05,T18] ( 2, 2 ) int -> rax
; V06 loc4 [V06,T19] ( 2, 2 ) int -> r9
; V06 loc4 [V06,T19] ( 2, 2 ) int -> r9
; V07 loc5 [V07,T20] ( 2, 2 ) int -> r10
; V07 loc5 [V07,T20] ( 2, 2 ) int -> r10
; V08 loc6 [V08,T21] ( 2, 2 ) int -> rax
; V08 loc6 [V08,T21] ( 2, 2 ) int -> r8
; V09 loc7 [V09,T01] ( 9, 30 ) int -> rbx
; V09 loc7 [V09,T01] ( 9, 30 ) int -> rbx
; V10 loc8 [V10,T10] ( 7, 4.50) int -> rbp
; V10 loc8 [V10,T10] ( 7, 4.50) int -> rbp
; V11 loc9 [V11,T05] ( 4, 9 ) int -> rbp
; V11 loc9 [V11,T05] ( 4, 9 ) int -> rbp
; V12 loc10 [V12,T14] ( 4, 2 ) int -> rbp
; V12 loc10 [V12,T14] ( 4, 2 ) int -> rbp
; V13 loc11 [V13,T07] ( 2, 8 ) int -> rax
; V13 loc11 [V13,T07] ( 2, 8 ) int -> rax
; V14 loc12 [V14,T08] ( 2, 8 ) int -> rdx
; V14 loc12 [V14,T08] ( 2, 8 ) int -> rdx
; V15 loc13 [V15,T03] ( 6, 20.50) int -> rcx
; V15 loc13 [V15,T03] ( 6, 20.50) int -> rax
; V16 loc14 [V16,T11] ( 8, 4 ) int -> rbp
; V16 loc14 [V16,T11] ( 8, 4 ) int -> rbp
; V17 loc15 [V17,T29] ( 2, 1 ) ubyte -> rcx
; V17 loc15 [V17,T29] ( 2, 1 ) ubyte -> rcx
; V18 loc16 [V18,T30] ( 2, 1 ) ubyte -> r8
; V18 loc16 [V18,T30] ( 2, 1 ) ubyte -> r8
; V19 loc17 [V19,T31] ( 2, 1 ) ubyte -> r9
; V19 loc17 [V19,T31] ( 2, 1 ) ubyte -> r9
; V20 OutArgs [V20 ] ( 1, 1 ) lclBlk (32) [rsp+00H] "OutgoingArgSpace"
; V20 OutArgs [V20 ] ( 1, 1 ) lclBlk (32) [rsp+00H] "OutgoingArgSpace"
; V21 tmp1 [V21,T02] ( 3, 24 ) struct ( 8) [rsp+28H] do-not-enreg[SFB] "dup spill"
; V21 tmp1 [V21,T02] ( 3, 24 ) struct ( 8) [rsp+28H] do-not-enreg[SFB] "dup spill"
; V22 tmp2 [V22,T04] ( 3, 12 ) int -> rdx "Inline stloc first use temp"
; V22 tmp2 [V22,T04] ( 3, 12 ) int -> rdx "Inline stloc first use temp"
; V23 tmp3 [V23 ] ( 3, 24 ) struct ( 8) [rsp+20H] do-not-enreg[XSB] addr-exposed "NewObj constructor temp"
; V23 tmp3 [V23 ] ( 3, 24 ) struct ( 8) [rsp+20H] do-not-enreg[XSB] addr-exposed "NewObj constructor temp"
; V24 cse0 [V24,T22] ( 2, 2 ) int -> rax "CSE - aggressive"
; V24 cse0 [V24,T22] ( 2, 2 ) int -> r8 "CSE - aggressive"
; V25 cse1 [V25,T24] ( 3, 1.50) int -> rax "CSE - aggressive"
; V25 cse1 [V25,T24] ( 3, 1.50) int -> rax "CSE - aggressive"
; V26 cse2 [V26,T13] ( 3, 2.50) int -> rax "CSE - aggressive"
; V26 cse2 [V26,T13] ( 3, 2.50) int -> rax "CSE - aggressive"
; V27 cse3 [V27,T06] ( 8, 8 ) byref -> rax "CSE - aggressive"
; V27 cse3 [V27,T06] ( 8, 8 ) byref -> r8 "CSE - aggressive"
; V28 cse4 [V28,T12] ( 6, 3 ) byref -> rdx "CSE - aggressive"
; V28 cse4 [V28,T12] ( 6, 3 ) byref -> rdx "CSE - aggressive"
; V29 cse5 [V29,T23] ( 3, 1.50) byref -> rax "CSE - moderate"
; V29 cse5 [V29,T23] ( 3, 1.50) byref -> rax "CSE - moderate"
; V30 cse6 [V30,T25] ( 3, 1.50) int -> rax "CSE - moderate"
; V30 cse6 [V30,T25] ( 3, 1.50) int -> rax "CSE - moderate"
; V31 cse7 [V31,T26] ( 3, 1.50) int -> rax "CSE - moderate"
; V31 cse7 [V31,T26] ( 3, 1.50) int -> rax "CSE - moderate"
; V32 cse8 [V32,T27] ( 3, 1.50) int -> rax "CSE - moderate"
; V32 cse8 [V32,T27] ( 3, 1.50) int -> rax "CSE - moderate"
; V33 cse9 [V33,T28] ( 3, 1.50) int -> rax "CSE - moderate"
; V33 cse9 [V33,T28] ( 3, 1.50) int -> rax "CSE - moderate"
;
;
; Lcl frame size = 48
; Lcl frame size = 48


G_M30983_IG01: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
G_M30983_IG01: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push r14
push r14
push rdi
push rdi
push rsi
push rsi
push rbp
push rbp
push rbx
push rbx
sub rsp, 48
sub rsp, 48
mov rsi, rcx
mov rsi, rcx
; byrRegs +[rsi]
; byrRegs +[rsi]
mov rdi, rdx
mov rdi, rdx
; byrRegs +[rdi]
; byrRegs +[rdi]
;; bbWeight=1 PerfScore 5.75
;; bbWeight=1 PerfScore 5.75
G_M30983_IG02: ; gcrefRegs=00000000 {}, byrefRegs=000000C0 {rsi rdi}, byref
G_M30983_IG02: ; gcrefRegs=00000000 {}, byrefRegs=000000C0 {rsi rdi}, byref
mov eax, dword ptr [rsi+8]
mov r8d, dword ptr [rsi+8]
cmp eax, 26
cmp r8d, 26
jbe G_M30983_IG11
jbe G_M30983_IG11
mov rax, bword ptr [rsi]
mov r8, bword ptr [rsi]
; byrRegs +[rax]
; byrRegs +[r8]
movzx rbx, byte ptr [rax+26]
movzx rbx, byte ptr [r8+26]
add ebx, -48
add ebx, -48
movzx rdx, byte ptr [rax+25]
movzx rcx, byte ptr [r8+25]
add edx, -48
movzx r8, byte ptr [rax+24]
add r8d, -48
movzx rcx, byte ptr [rax+23]
add ecx, -48
add ecx, -48
movzx r9, byte ptr [rax+22]
movzx rdx, byte ptr [r8+24]
add edx, -48
movzx rax, byte ptr [r8+23]
add eax, -48
movzx r9, byte ptr [r8+22]
add r9d, -48
add r9d, -48
movzx r10, byte ptr [rax+21]
movzx r10, byte ptr [r8+21]
add r10d, -48
add r10d, -48
movzx rax, byte ptr [rax+20]
movzx r8, byte ptr [r8+20]
; byrRegs -[rax]
; byrRegs -[r8]
add eax, -48
add r8d, -48
imul ebp, eax, 0xD1FFAB1E
imul ebp, r8d, 0xD1FFAB1E
imul r14d, r10d, 0x186A0
imul r14d, r10d, 0x186A0
add ebp, r14d
add ebp, r14d
imul r14d, r9d, 0x2710
imul r14d, r9d, 0x2710
add ebp, r14d
add ebp, r14d
imul r14d, ecx, 0x3E8
imul r14d, eax, 0x3E8
add ebp, r14d
add ebp, r14d
imul r14d, r8d, 100
imul r14d, edx, 100
add ebp, r14d
add ebp, r14d
lea r14d, [rdx+4*rdx]
lea r14d, [rcx+4*rcx]
add r14d, r14d
add r14d, r14d
add ebp, r14d
add ebp, r14d
add ebx, ebp
add ebx, ebp
mov ebp, 19
mov ebp, 19
test ebx, ebx
test ebx, ebx
je G_M30983_IG08
je G_M30983_IG08
;; bbWeight=1 PerfScore 34.75
;; bbWeight=1 PerfScore 34.75
G_M30983_IG03: ; gcrefRegs=00000000 {}, byrefRegs=000000C0 {rsi rdi}, byref
G_M30983_IG03: ; gcrefRegs=00000000 {}, byrefRegs=000000C0 {rsi rdi}, byref
mov ebp, 7
mov ebp, 7
;; bbWeight=0.50 PerfScore 0.12
;; bbWeight=0.50 PerfScore 0.13
G_M30983_IG04: ; gcrefRegs=00000000 {}, byrefRegs=000000C0 {rsi rdi}, byref, isz
G_M30983_IG04: ; gcrefRegs=00000000 {}, byrefRegs=000000C0 {rsi rdi}, byref, isz
mov edx, 0xD1FFAB1E
mov edx, 0xD1FFAB1E
mov eax, ebx
mov r8d, ebx
mul edx:eax, edx
imul rdx, r8
shr edx, 3
shr rdx, 35
xor r8d, r8d
xor r8d, r8d
mov qword ptr [rsp+20H], r8
mov qword ptr [rsp+20H], r8
lea r8d, [rdx+4*rdx]
lea r8d, [rdx+4*rdx]
add r8d, r8d
add r8d, r8d
mov ecx, ebx
mov ecx, ebx
sub ecx, r8d
sub ecx, r8d
mov r8d, ecx
mov r8d, ecx
lea rcx, bword ptr [rsp+20H]
lea rcx, bword ptr [rsp+20H]
; byrRegs +[rcx]
; byrRegs +[rcx]
call [System.ValueTuple`2:.ctor(int,int):this]
call [System.ValueTuple`2:.ctor(int,int):this]
; byrRegs -[rcx]
; byrRegs -[rcx]
; gcr arg pop 0
; gcr arg pop 0
mov rax, qword ptr [rsp+20H]
mov rax, qword ptr [rsp+20H]
mov qword ptr [rsp+28H], rax
mov qword ptr [rsp+28H], rax
mov eax, dword ptr [rsp+28H]
mov eax, dword ptr [rsp+28H]
mov edx, dword ptr [rsp+2CH]
mov edx, dword ptr [rsp+2CH]
test edx, edx
test edx, edx
jne SHORT G_M30983_IG05
jne SHORT G_M30983_IG05
mov ebx, eax
mov ebx, eax
dec ebp
dec ebp
jmp SHORT G_M30983_IG04
jmp SHORT G_M30983_IG04
;; bbWeight=4 PerfScore 74.00
;; bbWeight=4 PerfScore 74.00
G_M30983_IG05: ; gcrefRegs=00000000 {}, byrefRegs=000000C0 {rsi rdi}, byref, isz
G_M30983_IG05: ; gcrefRegs=00000000 {}, byrefRegs=000000C0 {rsi rdi}, byref, isz
add ebp, 19
add ebp, 19
mov ecx, ebp
mov eax, ebp
cmp ebp, 19
cmp ebp, 19
jle SHORT G_M30983_IG07
jle SHORT G_M30983_IG07
;; bbWeight=0.50 PerfScore 0.88
;; bbWeight=0.50 PerfScore 0.88
G_M30983_IG06: ; gcrefRegs=00000000 {}, byrefRegs=000000C0 {rsi rdi}, byref, isz
G_M30983_IG06: ; gcrefRegs=00000000 {}, byrefRegs=000000C0 {rsi rdi}, byref, isz
mov edx, 0xD1FFAB1E
mov edx, 0xD1FFAB1E
mov eax, ebx
mov ecx, ebx
mul edx:eax, edx
imul rdx, rcx
shr edx, 3
shr rdx, 35
imul eax, edx, 10
imul edx, edx, 10
mov edx, ebx
mov ecx, ebx
sub edx, eax
sub ecx, edx
add edx, 48
add ecx, 48
cmp ecx, dword ptr [rsi+8]
cmp eax, dword ptr [rsi+8]
jae G_M30983_IG11
jae G_M30983_IG11
mov rax, bword ptr [rsi]
mov rdx, bword ptr [rsi]
; byrRegs +[rax]
; byrRegs +[rdx]
movsxd r8, ecx
movsxd r8, eax
mov byte ptr [rax+r8], dl
mov byte ptr [rdx+r8], cl
mov edx, 0xD1FFAB1E
mov edx, 0xD1FFAB1E
mov eax, ebx
; byrRegs -[rdx]
; byrRegs -[rax]
mov ebx, ebx
mul edx:eax, edx
imul rbx, rdx
mov ebx, edx
shr rbx, 35
shr ebx, 3
dec eax
dec ecx
cmp eax, 19
cmp ecx, 19
jg SHORT G_M30983_IG06
jg SHORT G_M30983_IG06
;; bbWeight=4 PerfScore 79.00
;; bbWeight=4 PerfScore 78.00
G_M30983_IG07: ; gcrefRegs=00000000 {}, byrefRegs=000000C0 {rsi rdi}, byref
G_M30983_IG07: ; gcrefRegs=00000000 {}, byrefRegs=000000C0 {rsi rdi}, byref
inc ebp
inc ebp
;; bbWeight=0.50 PerfScore 0.12
;; bbWeight=0.50 PerfScore 0.13
G_M30983_IG08: ; gcrefRegs=00000000 {}, byrefRegs=000000C0 {rsi rdi}, byref
G_M30983_IG08: ; gcrefRegs=00000000 {}, byrefRegs=000000C0 {rsi rdi}, byref
mov dword ptr [rdi], ebp
mov dword ptr [rdi], ebp
mov eax, dword ptr [rsi+8]
mov eax, dword ptr [rsi+8]
cmp eax, 27
cmp eax, 27
jle G_M30983_IG10
jle G_M30983_IG10
;; bbWeight=1 PerfScore 4.25
;; bbWeight=1 PerfScore 4.25
G_M30983_IG09: ; gcrefRegs=00000000 {}, byrefRegs=000000C0 {rsi rdi}, byref, isz
G_M30983_IG09: ; gcrefRegs=00000000 {}, byrefRegs=000000C0 {rsi rdi}, byref, isz
cmp ebp, eax
cmp ebp, eax
jae G_M30983_IG11
jae G_M30983_IG11
mov rax, bword ptr [rsi]
mov rax, bword ptr [rsi]
; byrRegs +[rax]
; byrRegs +[rax]
movsxd rdx, ebp
movsxd rdx, ebp
movzx rcx, byte ptr [rax+27]
movzx rcx, byte ptr [rax+27]
mov byte ptr [rax+rdx], cl
mov byte ptr [rax+rdx], cl
lea eax, [rbp+1]
lea eax, [rbp+1]
; byrRegs -[rax]
; byrRegs -[rax]
mov dword ptr [rdi], eax
mov dword ptr [rdi], eax
mov eax, dword ptr [rsi+8]
mov eax, dword ptr [rsi+8]
cmp eax, 33
cmp eax, 33
jne SHORT G_M30983_IG10
jne SHORT G_M30983_IG10
add ebp, 5
add ebp, 5
mov rdx, bword ptr [rsi]
mov rdx, bword ptr [rsi]
; byrRegs +[rdx]
; byrRegs +[rdx]
movzx rcx, byte ptr [rdx+31]
movzx rcx, byte ptr [rdx+31]
movzx r8, byte ptr [rdx+29]
movzx r8, byte ptr [rdx+29]
movzx r9, byte ptr [rdx+28]
movzx r9, byte ptr [rdx+28]
cmp ebp, eax
cmp ebp, eax
jae SHORT G_M30983_IG11
jae SHORT G_M30983_IG11
movsxd rax, ebp
movsxd rax, ebp
movzx r10, byte ptr [rdx+32]
movzx r10, byte ptr [rdx+32]
mov byte ptr [rdx+rax], r10b
mov byte ptr [rdx+rax], r10b
lea eax, [rbp-1]
lea eax, [rbp-1]
cmp eax, dword ptr [rsi+8]
cmp eax, dword ptr [rsi+8]
jae SHORT G_M30983_IG11
jae SHORT G_M30983_IG11
mov rdx, bword ptr [rsi]
mov rdx, bword ptr [rsi]
movsxd rax, eax
movsxd rax, eax
mov byte ptr [rdx+rax], cl
mov byte ptr [rdx+rax], cl
lea eax, [rbp-2]
lea eax, [rbp-2]
cmp eax, dword ptr [rsi+8]
cmp eax, dword ptr [rsi+8]
jae SHORT G_M30983_IG11
jae SHORT G_M30983_IG11
mov rdx, bword ptr [rsi]
mov rdx, bword ptr [rsi]
movsxd rax, eax
movsxd rax, eax
mov byte ptr [rdx+rax], 58
mov byte ptr [rdx+rax], 58
lea eax, [rbp-3]
lea eax, [rbp-3]
cmp eax, dword ptr [rsi+8]
cmp eax, dword ptr [rsi+8]
jae SHORT G_M30983_IG11
jae SHORT G_M30983_IG11
mov rdx, bword ptr [rsi]
mov rdx, bword ptr [rsi]
movsxd rax, eax
movsxd rax, eax
mov byte ptr [rdx+rax], r8b
mov byte ptr [rdx+rax], r8b
lea eax, [rbp-4]
lea eax, [rbp-4]
cmp eax, dword ptr [rsi+8]
cmp eax, dword ptr [rsi+8]
jae SHORT G_M30983_IG11
jae SHORT G_M30983_IG11
mov rdx, bword ptr [rsi]
mov rdx, bword ptr [rsi]
movsxd rax, eax
movsxd rax, eax
mov byte ptr [rdx+rax], r9b
mov byte ptr [rdx+rax], r9b
inc ebp
inc ebp
mov dword ptr [rdi], ebp
mov dword ptr [rdi], ebp
;; bbWeight=0.50 PerfScore 26.12
;; bbWeight=0.50 PerfScore 26.13
G_M30983_IG10: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
G_M30983_IG10: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
; byrRegs -[rdx rsi rdi]
; byrRegs -[rdx rsi rdi]
add rsp, 48
add rsp, 48
pop rbx
pop rbx
pop rbp
pop rbp
pop rsi
pop rsi
pop rdi
pop rdi
pop r14
pop r14
ret
ret
;; bbWeight=1 PerfScore 3.75
;; bbWeight=1 PerfScore 3.75
G_M30983_IG11: ; gcVars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
G_M30983_IG11: ; gcVars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
call [CORINFO_HELP_RNGCHKFAIL]
call [CORINFO_HELP_RNGCHKFAIL]
; gcr arg pop 0
; gcr arg pop 0
int3
int3
;; bbWeight=0 PerfScore 0.00
;; bbWeight=0 PerfScore 0.00


; Total bytes of code 484, prolog size 16, PerfScore 277.15, instruction count 151, allocated bytes for code 484 (MethodHash=a5c286f8) for method System.Text.Json.JsonWriterHelper:TrimDateTimeOffset(System.Span`1[System.Byte],byref)
; Total bytes of code 499, prolog size 16, PerfScore 277.65, instruction count 150, allocated bytes for code 499 (MethodHash=a5c286f8) for method System.Text.Json.JsonWriterHelper:TrimDateTimeOffset(System.Span`1[System.Byte],byref)
; ============================================================
; ============================================================


Unwind Info:
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Version : 1
Flags : 0x00
Flags : 0x00
SizeOfProlog : 0x0A
SizeOfProlog : 0x0A
CountOfUnwindCodes: 6
CountOfUnwindCodes: 6
FrameRegister : none (0)
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
UnwindCodes :
CodeOffset: 0x0A UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 5 * 8 + 8 = 48 = 0x30
CodeOffset: 0x0A UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 5 * 8 + 8 = 48 = 0x30
CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6)
CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6)
CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rdi (7)
CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rdi (7)
CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r14 (14)
CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r14 (14)