Untitled Diff

Criado O diff nunca expira
19 remoções
45 linhas
32 adições
58 linhas
; Assembly listing for method JsonObject:GetItem(String):JsonNode:this
; Assembly listing for method JsonObject:GetItem(String):JsonNode:this
; Emitting BLENDED_CODE for X64 CPU with AVX - Windows
; Emitting BLENDED_CODE for X64 CPU with AVX - Windows
; optimized code
; optimized code
; rsp based frame
; rsp based frame
; partially interruptible
; partially interruptible
; No PGO data
; No PGO data
; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
; Final local variable assignments
;
;
; V00 this [V00,T00] ( 3, 3 ) ref -> rcx this class-hnd single-def
; V00 this [V00,T00] ( 5, 5 ) ref -> rsi this class-hnd single-def
; V01 arg1 [V01,T01] ( 3, 3 ) ref -> rdx class-hnd single-def
; V01 arg1 [V01,T01] ( 3, 3 ) ref -> rdi class-hnd single-def
; V02 loc0 [V02 ] ( 2, 1.50) ref -> [rsp+20H] do-not-enreg[XB] must-init addr-exposed ld-addr-op class-hnd
; V02 loc0 [V02 ] ( 2, 1.50) ref -> [rsp+20H] do-not-enreg[XB] must-init addr-exposed ld-addr-op class-hnd
; V03 OutArgs [V03 ] ( 1, 1 ) lclBlk (32) [rsp+00H] "OutgoingArgSpace"
; V03 OutArgs [V03 ] ( 1, 1 ) lclBlk (32) [rsp+00H] "OutgoingArgSpace"
;
;
; Lcl frame size = 40
; Lcl frame size = 40


G_M36228_IG01:
G_M36228_IG01:
push rdi
push rsi
sub rsp, 40
sub rsp, 40
xor eax, eax
xor eax, eax
mov qword ptr [rsp+20H], rax
mov qword ptr [rsp+20H], rax
;; bbWeight=1 PerfScore 1.50
mov rsi, rcx
mov rdi, rdx
;; bbWeight=1 PerfScore 4.00
G_M36228_IG02:
G_M36228_IG02:
cmp dword ptr [rsi], esi
mov rcx, rsi
call JsonObject:InitializeIfRequired():this
mov rcx, gword ptr [rsi+24]
lea r8, [rsp+20H]
lea r8, [rsp+20H]
mov r11, 0xD1FFAB1E
mov rdx, rdi
call [IDictionary`2:TryGetValue(__Canon,byref):bool:this]
cmp dword ptr [rcx], ecx
test eax, eax
call JsonPropertyDictionary`1:TryGetValue(String,byref):bool:this
test al, al
je SHORT G_M36228_IG05
je SHORT G_M36228_IG05
;; bbWeight=1 PerfScore 5.00
;; bbWeight=1 PerfScore 10.25
G_M36228_IG03:
G_M36228_IG03:
mov rax, gword ptr [rsp+20H]
mov rax, gword ptr [rsp+20H]
;; bbWeight=0.50 PerfScore 0.50
;; bbWeight=0.50 PerfScore 0.50
G_M36228_IG04:
G_M36228_IG04:
add rsp, 40
add rsp, 40
pop rsi
pop rdi
ret
ret
;; bbWeight=0.50 PerfScore 0.62
;; bbWeight=0.50 PerfScore 1.12
G_M36228_IG05:
G_M36228_IG05:
xor rax, rax
xor rax, rax
;; bbWeight=0.50 PerfScore 0.12
;; bbWeight=0.50 PerfScore 0.12
G_M36228_IG06:
G_M36228_IG06:
add rsp, 40
add rsp, 40
pop rsi
pop rdi
ret
ret
;; bbWeight=0.50 PerfScore 0.62
;; bbWeight=0.50 PerfScore 1.12


; Total bytes of code 53, prolog size 11, PerfScore 13.68, instruction count 14, allocated bytes for code 53 (MethodHash=d463727b) for method JsonObject:GetItem(String):JsonNode:this
; Total bytes of code 73, prolog size 13, PerfScore 24.43, instruction count 27, allocated bytes for code 73 (MethodHash=d463727b) for method JsonObject:GetItem(String):JsonNode:this
; ============================================================
; ============================================================