Untitled Diff
55 lines
; Assembly listing for method Pa:IsAssignableTo():bool
; Assembly listing for method Pa:IsAssignableTo():bool
; 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; 0 single block inlinees; 1 inlinees without PGO data
; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
; Final local variable assignments
;
;
; V00 TypeCtx [V00,T00] ( 4, 4 ) long -> rcx single-def
; V00 TypeCtx [V00,T00] ( 5, 4.50) long -> rsi single-def
; V01 OutArgs [V01 ] ( 1, 1 ) lclBlk (32) [rsp+00H] "OutgoingArgSpace"
; V01 OutArgs [V01 ] ( 1, 1 ) lclBlk (32) [rsp+00H] "OutgoingArgSpace"
; V02 tmp1 [V02,T04] ( 3, 2 ) bool -> rax "Inline return value spill temp"
; V02 tmp1 [V02,T02] ( 3, 2 ) bool -> rax "Inline return value spill temp"
; V03 tmp2 [V03,T01] ( 3, 5 ) ref -> rax class-hnd single-def "Inlining Arg"
; V03 tmp2 [V03,T03] ( 2, 2 ) ref -> rdi single-def "argument with side effect"
; V04 tmp3 [V04,T03] ( 2, 3 ) ref -> rdi class-hnd single-def "Inlining Arg"
; V04 tmp3 [V04,T04] ( 2, 2 ) ref -> rdx single-def "argument with side effect"
; V05 cse0 [V05,T02] ( 3, 3 ) long -> rsi "CSE - aggressive"
; V05 cse0 [V05,T01] ( 3, 2.50) ref -> rdi "CSE - aggressive"
;
;
; Lcl frame size = 40
; Lcl frame size = 40
G_M15054_IG01: ;; offset=0000H
G_M15054_IG01: ;; offset=0000H
57 push rdi
57 push rdi
56 push rsi
56 push rsi
4883EC28 sub rsp, 40
4883EC28 sub rsp, 40
48894C2420 mov qword ptr [rsp+20H], rcx
48894C2420 mov qword ptr [rsp+20H], rcx
;; size=11 bbWeight=1 PerfScore 3.25
488BF1 mov rsi, rcx
G_M15054_IG02: ;; offset=000BH
;; size=14 bbWeight=1 PerfScore 3.50
488B7138 mov rsi, qword ptr [rcx+56]
G_M15054_IG02: ;; offset=000EH
488B0E mov rcx, qword ptr [rsi]
488B4E38 mov rcx, qword ptr [rsi+56]
E839FE4F5F call CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
488B4908 mov rcx, qword ptr [rcx+8]
E8452B505F call CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
488BF8 mov rdi, rax
488BF8 mov rdi, rax
488B4E08 mov rcx, qword ptr [rsi+8]
4885FF test rdi, rdi
E82DFE4F5F call CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
4885C0 test rax, rax
7504 jne SHORT G_M15054_IG04
7504 jne SHORT G_M15054_IG04
;; size=29 bbWeight=1 PerfScore 9.50
;; size=21 bbWeight=1 PerfScore 6.50
G_M15054_IG03: ;; offset=0028H
G_M15054_IG03: ;; offset=0023H
33C0 xor eax, eax
33C0 xor eax, eax
EB0C jmp SHORT G_M15054_IG05
EB18 jmp SHORT G_M15054_IG05
;; size=4 bbWeight=0.50 PerfScore 1.12
;; size=4 bbWeight=0.50 PerfScore 1.12
G_M15054_IG04: ;; offset=002CH
G_M15054_IG04: ;; offset=0027H
488BC8 mov rcx, rax
488B4E38 mov rcx, qword ptr [rsi+56]
488BD7 mov rdx, rdi
488B09 mov rcx, qword ptr [rcx]
FF15588BE5FF call [System.RuntimeType:IsAssignableFrom(System.Type):bool:this]
E82D2B505F call CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
;; size=12 bbWeight=0.50 PerfScore 1.75
488BD0 mov rdx, rax
G_M15054_IG05: ;; offset=0038H
488BCF mov rcx, rdi
FF15898BE5FF call [System.RuntimeType:IsAssignableFrom(System.Type):bool:this]
;; size=24 bbWeight=0.50 PerfScore 4.25
G_M15054_IG05: ;; offset=003FH
90 nop
90 nop
;; size=1 bbWeight=1 PerfScore 0.25
;; size=1 bbWeight=1 PerfScore 0.25
G_M15054_IG06: ;; offset=0039H
G_M15054_IG06: ;; offset=0040H
4883C428 add rsp, 40
4883C428 add rsp, 40
5E pop rsi
5E pop rsi
5F pop rdi
5F pop rdi
C3 ret
C3 ret
;; size=7 bbWeight=1 PerfScore 2.25
;; size=7 bbWeight=1 PerfScore 2.25
; Total bytes of code 64, prolog size 11, PerfScore 24.53, instruction count 22, allocated bytes for code 64 (MethodHash=e866c531) for method Pa:IsAssignableTo():bool
; Total bytes of code 71, prolog size 11, PerfScore 24.98, instruction count 24, allocated bytes for code 71 (MethodHash=e866c531) for method Pa:IsAssignableTo():bool
; ============================================================
; ============================================================