Cargando el resto de esta comparación.

Untitled Diff

Creado El diff nunca expira
70 eliminaciones
552 líneas
67 adiciones
556 líneas
; Assembly listing for method ConvR8test:Main():int
; Assembly listing for method ConvR8test:Main():int
; Emitting BLENDED_CODE for X64 CPU with AVX - Unix
; Emitting BLENDED_CODE for X64 CPU with AVX - Unix
; optimized code
; optimized code
; rbp based frame
; rbp based frame
; partially interruptible
; partially interruptible
; No matching PGO data
; No matching PGO data
; 0 inlinees with PGO data; 6 single block inlinees; 0 inlinees without PGO data
; 0 inlinees with PGO data; 6 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
; Final local variable assignments
;
;
; V00 loc0 [V00,T00] ( 30, 16 ) bool -> rbx
; V00 loc0 [V00,T00] ( 30, 16 ) bool -> rbx
; V01 loc1 [V01,T01] ( 13, 13 ) ref -> r14 class-hnd exact single-def
; V01 loc1 [V01,T02] ( 13, 13 ) ref -> r14 class-hnd exact single-def
; V02 loc2 [V02,T03] ( 3, 3 ) struct (40) [rbp-40H] do-not-enreg[SF] must-init ld-addr-op
; V02 loc2 [V02,T01] ( 14, 14 ) struct (40) [rbp-40H] do-not-enreg[SF] must-init ld-addr-op
; V03 loc3 [V03,T02] ( 13, 13 ) ref -> r15 class-hnd exact single-def
; V03 loc3 [V03,T03] ( 13, 13 ) ref -> r15 class-hnd exact single-def
;# V04 OutArgs [V04 ] ( 1, 1 ) lclBlk ( 0) [rsp+00H] "OutgoingArgSpace"
;# V04 OutArgs [V04 ] ( 1, 1 ) lclBlk ( 0) [rsp+00H] "OutgoingArgSpace"
; V05 tmp1 [V05,T04] ( 6, 12 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp"
; V05 tmp1 [V05,T04] ( 6, 12 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp"
; V06 tmp2 [V06,T09] ( 2, 4 ) double -> mm1 "Strict ordering of exceptions for Array store"
; V06 tmp2 [V06,T07] ( 2, 4 ) double -> mm1 "Strict ordering of exceptions for Array store"
; V07 tmp3 [V07,T10] ( 2, 4 ) double -> mm2 "Strict ordering of exceptions for Array store"
; V07 tmp3 [V07,T08] ( 2, 4 ) double -> mm2 "Strict ordering of exceptions for Array store"
; V08 tmp4 [V08,T11] ( 2, 4 ) double -> mm1 "Strict ordering of exceptions for Array store"
; V08 tmp4 [V08,T09] ( 2, 4 ) double -> mm1 "Strict ordering of exceptions for Array store"
; V09 tmp5 [V09,T12] ( 2, 4 ) double -> mm1 "Strict ordering of exceptions for Array store"
; V09 tmp5 [V09,T10] ( 2, 4 ) double -> mm1 "Strict ordering of exceptions for Array store"
; V10 tmp6 [V10,T13] ( 2, 4 ) double -> mm2 "Strict ordering of exceptions for Array store"
; V10 tmp6 [V10,T11] ( 2, 4 ) double -> mm2 "Strict ordering of exceptions for Array store"
; V11 tmp7 [V11,T14] ( 2, 4 ) double -> mm1 "Strict ordering of exceptions for Array store"
; V11 tmp7 [V11,T12] ( 2, 4 ) double -> mm1 "Strict ordering of exceptions for Array store"
; V12 tmp8 [V12,T15] ( 2, 4 ) double -> mm1 "Strict ordering of exceptions for Array store"
; V12 tmp8 [V12,T13] ( 2, 4 ) double -> mm1 "Strict ordering of exceptions for Array store"
; V13 tmp9 [V13,T16] ( 2, 4 ) double -> mm2 "Strict ordering of exceptions for Array store"
; V13 tmp9 [V13,T14] ( 2, 4 ) double -> mm2 "Strict ordering of exceptions for Array store"
; V14 tmp10 [V14,T17] ( 2, 4 ) double -> mm1 "Strict ordering of exceptions for Array store"
; V14 tmp10 [V14,T15] ( 2, 4 ) double -> mm1 "Strict ordering of exceptions for Array store"
; V15 tmp11 [V15,T18] ( 2, 4 ) double -> mm1 "Strict ordering of exceptions for Array store"
; V15 tmp11 [V15,T16] ( 2, 4 ) double -> mm1 "Strict ordering of exceptions for Array store"
; V16 tmp12 [V16,T19] ( 2, 4 ) double -> mm2 "Strict ordering of exceptions for Array store"
; V16 tmp12 [V16,T17] ( 2, 4 ) double -> mm2 "Strict ordering of exceptions for Array store"
; V17 tmp13 [V17,T20] ( 2, 4 ) double -> mm1 "Strict ordering of exceptions for Array store"
; V17 tmp13 [V17,T18] ( 2, 4 ) double -> mm1 "Strict ordering of exceptions for Array store"
; V18 cse0 [V18,T21] ( 3, 3 ) double -> mm0 "CSE - aggressive"
; V18 cse0 [V18,T19] ( 3, 3 ) double -> mm0 "CSE - aggressive"
; V19 cse1 [V19,T22] ( 3, 3 ) double -> mm0 "CSE - aggressive"
; V19 cse1 [V19,T20] ( 3, 3 ) double -> mm0 "CSE - aggressive"
; V20 cse2 [V20,T23] ( 3, 3 ) double -> mm0 "CSE - aggressive"
; V20 cse2 [V20,T21] ( 3, 3 ) double -> mm0 "CSE - aggressive"
; V21 cse3 [V21,T24] ( 3, 3 ) double -> mm1 "CSE - aggressive"
; V21 cse3 [V21,T22] ( 3, 3 ) double -> mm1 "CSE - aggressive"
; V22 cse4 [V22,T25] ( 3, 3 ) double -> mm0 "CSE - aggressive"
; V22 cse4 [V22,T23] ( 3, 3 ) double -> mm0 "CSE - aggressive"
; V23 cse5 [V23,T26] ( 3, 3 ) double -> mm0 "CSE - aggressive"
; V23 cse5 [V23,T24] ( 3, 3 ) double -> mm0 "CSE - aggressive"
; V24 cse6 [V24,T27] ( 3, 3 ) double -> mm0 "CSE - aggressive"
; V24 cse6 [V24,T25] ( 3, 3 ) double -> mm0 "CSE - aggressive"
; V25 cse7 [V25,T28] ( 3, 3 ) double -> mm0 "CSE - aggressive"
; V25 cse7 [V25,T26] ( 3, 3 ) double -> mm0 "CSE - aggressive"
; V26 cse8 [V26,T29] ( 3, 3 ) double -> mm0 "CSE - aggressive"
; V26 cse8 [V26,T27] ( 3, 3 ) double -> mm0 "CSE - aggressive"
; V27 cse9 [V27,T30] ( 3, 3 ) double -> mm0 "CSE - aggressive"
; V27 cse9 [V27,T28] ( 3, 3 ) double -> mm0 "CSE - aggressive"
; V28 cse10 [V28,T31] ( 3, 3 ) double -> mm0 "CSE - aggressive"
; V28 cse10 [V28,T29] ( 3, 3 ) double -> mm0 "CSE - aggressive"
;* V29 cse11 [V29,T05] ( 0, 0 ) long -> zero-ref "CSE - aggressive"
;* V29 cse11 [V29,T05] ( 0, 0 ) long -> zero-ref "CSE - aggressive"
; V30 cse12 [V30,T32] ( 3, 3 ) double -> mm0 "CSE - aggressive"
; V30 cse12 [V30,T30] ( 3, 3 ) double -> mm0 "CSE - aggressive"
; V31 cse13 [V31,T33] ( 3, 3 ) double -> mm1 "CSE - aggressive"
; V31 cse13 [V31,T31] ( 3, 3 ) double -> mm1 "CSE - aggressive"
; V32 cse14 [V32,T34] ( 3, 3 ) double -> mm0 "CSE - aggressive"
; V32 cse14 [V32,T32] ( 3, 3 ) double -> mm0 "CSE - aggressive"
; V33 cse15 [V33,T35] ( 3, 3 ) double -> mm1 "CSE - aggressive"
; V33 cse15 [V33,T33] ( 3, 3 ) double -> mm1 "CSE - aggressive"
; V34 cse16 [V34,T36] ( 3, 3 ) double -> mm0 "CSE - aggressive"
; V34 cse16 [V34,T34] ( 3, 3 ) double -> mm0 "CSE - aggressive"
; V35 cse17 [V35,T37] ( 3, 3 ) double -> mm0 "CSE - aggressive"
; V35 cse17 [V35,T35] ( 3, 3 ) double -> mm0 "CSE - aggressive"
; V36 cse18 [V36,T38] ( 3, 3 ) double -> mm1 "CSE - aggressive"
; V36 cse18 [V36,T36] ( 3, 3 ) double -> mm1 "CSE - aggressive"
; V37 cse19 [V37,T39] ( 3, 3 ) double -> mm0 "CSE - aggressive"
; V37 cse19 [V37,T37] ( 3, 3 ) double -> mm0 "CSE - aggressive"
; V38 cse20 [V38,T40] ( 3, 3 ) double -> mm1 "CSE - aggressive"
; V38 cse20 [V38,T38] ( 3, 3 ) double -> mm1 "CSE - aggressive"
; V39 cse21 [V39,T41] ( 3, 3 ) double -> mm1 "CSE - aggressive"
; V39 cse21 [V39,T39] ( 3, 3 ) double -> mm1 "CSE - aggressive"
; V40 cse22 [V40,T42] ( 3, 3 ) double -> mm0 "CSE - aggressive"
; V40 cse22 [V40,T40] ( 3, 3 ) double -> mm0 "CSE - aggressive"
; V41 cse23 [V41,T06] ( 4, 4 ) double -> [rbp-48H] spill-single-def "CSE - aggressive"
; V41 cse23 [V41,T06] ( 4, 4 ) double -> [rbp-48H] spill-single-def "CSE - aggressive"
; V42 cse24 [V42,T07] ( 3, 3 ) double -> [rbp-50H] spill-single-def "CSE - aggressive"
; V43 cse25 [V43,T08] ( 3, 3 ) double -> [rbp-58H] spill-single-def "CSE - aggressive"
;
;
; Lcl frame size = 72
; Lcl frame size = 56


G_M41739_IG01: ; gcVars= {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, nogc <-- Prolog IG
G_M41739_IG01: ; gcVars= {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, nogc <-- Prolog IG
push rbp
push rbp
push r15
push r15
push r14
push r14
push rbx
push rbx
sub rsp, 72
sub rsp, 56
vzeroupper
vzeroupper
lea rbp, [rsp+60H]
lea rbp, [rsp+50H]
vxorps xmm8, xmm8
vxorps xmm8, xmm8
vmovdqa xmmword ptr [rbp-40H], xmm8
vmovdqa xmmword ptr [rbp-40H], xmm8
vmovdqa xmmword ptr [rbp-30H], xmm8
vmovdqa xmmword ptr [rbp-30H], xmm8
xor eax, eax
xor eax, eax
mov qword ptr [rbp-20H], rax
mov qword ptr [rbp-20H], rax
;; bbWeight=1 PerfScore 9.33
;; bbWeight=1 PerfScore 9.33
G_M41739_IG02: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
G_M41739_IG02: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
mov ebx, 1
mov ebx, 1
mov rdi, 0xD1FFAB1E ; System.Double[]
mov rdi, 0xD1FFAB1E ; System.Double[]
mov esi, 3
mov esi, 3
call CORINFO_HELP_NEWARR_1_VC
call CORINFO_HELP_NEWARR_1_VC
; gcrRegs +[rax]
; gcrRegs +[rax]
mov r14, rax
mov r14, rax
; gcrRegs +[r14]
; gcrRegs +[r14]
mov rdi, 0xD1FFAB1E
mov rdi, 0xD1FFAB1E
call CORINFO_HELP_NEWSFAST
call CORINFO_HELP_NEWSFAST
mov r15, rax
mov r15, rax
; gcrRegs +[r15]
; gcrRegs +[r15]
mov rax, 0xD1FFAB1E
mov rax, 0xD1FFAB1E
; gcrRegs -[rax]
; gcrRegs -[rax]
mov qword ptr [r15+8], rax
mov qword ptr [r15+8], rax
vmovsd xmm0, qword ptr [reloc @RWD00]
mov rax, 0xD1FFAB1E
vmovsd qword ptr [rbp-50H], xmm0
mov qword ptr [r15+16], rax
vmovsd qword ptr [r15+16], xmm0
mov dword ptr [r15+40], 3
mov dword ptr [r15+40], 3
vmovsd xmm1, qword ptr [reloc @RWD08]
mov rax, 0xD1FFAB1E
vmovsd qword ptr [rbp-58H], xmm1
mov qword ptr [r15+24], rax
vmovsd qword ptr [r15+24], xmm1
call hackishModuleName:hackishMethodName()
call hackishModuleName:hackishMethodName()
mov rdi, 0xD1FFAB1E ; string handle
mov rdi, 0xD1FFAB1E ; string handle
mov rdi, gword ptr [rdi]
mov rdi, gword ptr [rdi]
; gcrRegs +[rdi]
; gcrRegs +[rdi]
call hackishModuleName:hackishMethodName()
call hackishModuleName:hackishMethodName()
; gcrRegs -[rdi]
; gcrRegs -[rdi]
mov rdi, 0xD1FFAB1E
mov rdi, 0xD1FFAB1E
mov esi, 3
mov esi, 3
call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
mov rdi, 0xD1FFAB1E
mov rdi, 0xD1FFAB1E
vmovsd xmm0, qword ptr [rdi]
vmovsd xmm0, qword ptr [rdi]
mov rdi, 0xD1FFAB1E
mov rdi, 0xD1FFAB1E
vaddsd xmm1, xmm0, qword ptr [rdi]
vaddsd xmm1, xmm0, qword ptr [rdi]
vucomisd xmm1, xmm0
vucomisd xmm1, xmm0
jp SHORT G_M41739_IG03
jp SHORT G_M41739_IG03
je SHORT G_M41739_IG04
je SHORT G_M41739_IG04
;; bbWeight=1 PerfScore 29.00
;; bbWeight=1 PerfScore 25.50
G_M41739_IG03: ; gcrefRegs=0000C000 {r14 r15}, byrefRegs=00000000 {}, byref
G_M41739_IG03: ; gcrefRegs=0000C000 {r14 r15}, byrefRegs=00000000 {}, byref
mov rdi, 0xD1FFAB1E ; string handle
mov rdi, 0xD1FFAB1E ; string handle
mov rdi, gword ptr [rdi]
mov rdi, gword ptr [rdi]
; gcrRegs +[rdi]
; gcrRegs +[rdi]
call hackishModuleName:hackishMethodName()
call hackishModuleName:hackishMethodName()
; gcrRegs -[rdi]
; gcrRegs -[rdi]
xor ebx, ebx
xor ebx, ebx
;; bbWeight=0.50 PerfScore 1.75
;; bbWeight=0.50 PerfScore 1.75
G_M41739_IG04: ; gcrefRegs=0000C000 {r14 r15}, byrefRegs=00000000 {}, byref, isz
G_M41739_IG04: ; gcrefRegs=0000C000 {r14 r15}, byrefRegs=00000000 {}, byref, isz
mov rdi, 0xD1FFAB1E
mov rdi, 0xD1FFAB1E
vmovsd xmm0, qword ptr [rdi]
vmovsd xmm0, qword ptr [rdi]
mov rdi, 0xD1FFAB1E
mov rdi, 0xD1FFAB1E
vaddsd xmm1, xmm0, qword ptr [rdi]
vaddsd xmm1, xmm0, qword ptr [rdi]
vucomisd xmm1, xmm0
vucomisd xmm1, xmm0
jp SHORT G_M41739_IG05
jp SHORT G_M41739_IG05
je SHORT G_M41739_IG06
je SHORT G_M41739_IG06
;; bbWeight=1 PerfScore 11.50
;; bbWeight=1 PerfScore 11.50
G_M41739_IG05: ; gcrefRegs=0000C000 {r14 r15}, byrefRegs=00000000 {}, byref
G_M41739_IG05: ; gcrefRegs=0000C000 {r14 r15}, byrefRegs=00000000 {}, byref
mov rdi, 0xD1FFAB1E ; string handle
mov rdi, 0xD1FFAB1E ; string handle
mov rdi, gword ptr [rdi]
mov rdi, gword ptr [rdi]
; gcrRegs +[rdi]
; gcrRegs +[rdi]
call hackishModuleName:hackishMethodName()
call hackishModuleName:hackishMethodName()
; gcrRegs -[rdi]
; gcrRegs -[rdi]
xor ebx, ebx
xor ebx, ebx
;; bbWeight=0.50 PerfScore 1.75
;; bbWeight=0.50 PerfScore 1.75
G_M41739_IG06: ; gcrefRegs=0000C000 {r14 r15}, byrefRegs=00000000 {}, byref, isz
G_M41739_IG06: ; gcrefRegs=0000C000 {r14 r15}, byrefRegs=00000000 {}, byref, isz
call ConvR8test:doubleadd():double
call ConvR8test:doubleadd():double
mov rdi, 0xD1FFAB1E
mov rdi, 0xD1FFAB1E
vucomisd xmm0, qword ptr [rdi]
vucomisd xmm0, qword ptr [rdi]
jp SHORT G_M41739_IG07
jp SHORT G_M41739_IG07