Diff
checker
文本
文本
图像
文档
Excel
文件夹
Legal
Enterprise
桌面版
定价
登录
下载 Diffchecker 桌面版
比较文本
查找两个文本文件之间的差异
工具
历史
显示
视图
拆分
统一
实时编辑器
隐藏空白更改
折叠未更改行
关闭换行
比对精度
智能
语法
无
更改外观
处理
忽略
文本转换
转到第一个差异
编辑输入
Diffchecker Desktop
运行Diffchecker最安全的方式。获取Diffchecker桌面应用:您的差异永远不会离开您的电脑!
获取桌面版
Untitled Diff
创建于
5年前
差异永不过期
清除
导出
分享
解释
85 删除
行
总计
删除
字符
总计
删除
要继续使用此功能,请升级到
Diff
checker
Pro
查看价格
529 行
全部复制
54 添加
行
总计
添加
字符
总计
添加
要继续使用此功能,请升级到
Diff
checker
Pro
查看价格
523 行
全部复制
; Assembly listing for method System.Numerics.Tests.Vector4Tests:Vector4ToStringTest():this
; Assembly listing for method System.Numerics.Tests.Vector4Tests:Vector4ToStringTest():this
; 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; 8 single block inlinees; 0 inlinees without PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
; Final local variable assignments
;
;
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def
; V01 loc0 [V01,T22] ( 4, 4 ) ref -> rbx class-hnd single-def
; V01 loc0 [V01,T22] ( 4, 4 ) ref -> rbx class-hnd single-def
;* V02 loc1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def
;* V02 loc1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def
; V03 loc2 [V03 ] ( 5, 5 ) simd16 -> [rbp-40H] do-not-enreg[XSB] addr-exposed ld-addr-op single-def
; V03 loc2 [V03 ] ( 5, 5 ) simd16 -> [rbp-40H] do-not-enreg[XSB] addr-exposed ld-addr-op single-def
; V04 loc3 [V04,T35] ( 2, 2 ) ref -> r15 class-hnd single-def
; V04 loc3 [V04,T35] ( 2, 2 ) ref -> r15 class-hnd single-def
; V05 loc4 [V05,T36] ( 2, 2 ) ref -> rdi class-hnd single-def
; V05 loc4 [V05,T36] ( 2, 2 ) ref -> rdi class-hnd single-def
; V06 loc5 [V06,T37] ( 2, 2 ) ref -> r12 class-hnd single-def
; V06 loc5 [V06,T37] ( 2, 2 ) ref -> r12 class-hnd single-def
; V07 loc6 [V07,T38] ( 2, 2 ) ref -> rdi class-hnd single-def
; V07 loc6 [V07,T38] ( 2, 2 ) ref -> rdi class-hnd single-def
; V08 loc7 [V08,T39] ( 2, 2 ) ref -> r12 class-hnd single-def
; V08 loc7 [V08,T39] ( 2, 2 ) ref -> r12 class-hnd single-def
; V09 loc8 [V09,T40] ( 2, 2 ) ref -> rdi class-hnd single-def
; V09 loc8 [V09,T40] ( 2, 2 ) ref -> rdi class-hnd single-def
; V10 loc9 [V10,T41] ( 2, 2 ) ref -> r14 class-hnd single-def
; V10 loc9 [V10,T41] ( 2, 2 ) ref -> r14 class-hnd single-def
; V11 loc10 [V11,T42] ( 2, 2 ) ref -> rdi class-hnd single-def
; V11 loc10 [V11,T42] ( 2, 2 ) ref -> rdi class-hnd single-def
;# V12 OutArgs [V12 ] ( 1, 1 ) lclBlk ( 0) [rsp+00H] "OutgoingArgSpace"
;# V12 OutArgs [V12 ] ( 1, 1 ) lclBlk ( 0) [rsp+00H] "OutgoingArgSpace"
; V13 tmp1 [V13,T04] ( 5, 10 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp"
; V13 tmp1 [V13,T04] ( 5, 10 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp"
; V14 tmp2 [V14,T00] ( 7, 14 ) ref -> r13 class-hnd exact single-def "dup spill"
; V14 tmp2 [V14,T00] ( 7, 14 ) ref -> r13 class-hnd exact single-def "dup spill"
; V15 tmp3 [V15,T25] ( 2, 4 ) ref -> r12 class-hnd single-def "impAppendStmt"
; V15 tmp3 [V15,T25] ( 2, 4 ) ref -> r12 class-hnd single-def "impAppendStmt"
; V16 tmp4 [V16,T05] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper"
; V16 tmp4 [V16,T05] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper"
; V17 tmp5 [V17,T06] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper"
; V17 tmp5 [V17,T06] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper"
; V18 tmp6 [V18,T07] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper"
; V18 tmp6 [V18,T07] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper"
; V19 tmp7 [V19,T08] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper"
; V19 tmp7 [V19,T08] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper"
复制
已复制
复制
已复制
; V20 tmp8 [V20,T01] ( 7, 14 ) ref -> [rbp-
5
8H] class-hnd exact spill-single-def "dup spill"
; V20 tmp8 [V20,T01] ( 7, 14 ) ref -> [rbp-
4
8H] class-hnd exact spill-single-def "dup spill"
; V21 tmp9 [V21,T26] ( 2, 4 ) ref -> r13 class-hnd single-def "impAppendStmt"
; V21 tmp9 [V21,T26] ( 2, 4 ) ref -> r13 class-hnd single-def "impAppendStmt"
; V22 tmp10 [V22,T09] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper"
; V22 tmp10 [V22,T09] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper"
; V23 tmp11 [V23,T10] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper"
; V23 tmp11 [V23,T10] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper"
; V24 tmp12 [V24,T11] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper"
; V24 tmp12 [V24,T11] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper"
; V25 tmp13 [V25,T12] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper"
; V25 tmp13 [V25,T12] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper"
; V26 tmp14 [V26,T02] ( 7, 14 ) ref -> r13 class-hnd exact single-def "dup spill"
; V26 tmp14 [V26,T02] ( 7, 14 ) ref -> r13 class-hnd exact single-def "dup spill"
; V27 tmp15 [V27,T27] ( 2, 4 ) ref -> rsi class-hnd single-def "Strict ordering of exceptions for Array store"
; V27 tmp15 [V27,T27] ( 2, 4 ) ref -> rsi class-hnd single-def "Strict ordering of exceptions for Array store"
; V28 tmp16 [V28,T13] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper"
; V28 tmp16 [V28,T13] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper"
; V29 tmp17 [V29,T14] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper"
; V29 tmp17 [V29,T14] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper"
; V30 tmp18 [V30,T15] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper"
; V30 tmp18 [V30,T15] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper"
; V31 tmp19 [V31,T16] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper"
; V31 tmp19 [V31,T16] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper"
; V32 tmp20 [V32,T03] ( 7, 14 ) ref -> r12 class-hnd exact single-def "dup spill"
; V32 tmp20 [V32,T03] ( 7, 14 ) ref -> r12 class-hnd exact single-def "dup spill"
; V33 tmp21 [V33,T28] ( 2, 4 ) ref -> r15 class-hnd single-def "impAppendStmt"
; V33 tmp21 [V33,T28] ( 2, 4 ) ref -> r15 class-hnd single-def "impAppendStmt"
; V34 tmp22 [V34,T17] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper"
; V34 tmp22 [V34,T17] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper"
; V35 tmp23 [V35,T18] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper"
; V35 tmp23 [V35,T18] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper"
; V36 tmp24 [V36,T19] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper"
; V36 tmp24 [V36,T19] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper"
; V37 tmp25 [V37,T20] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper"
; V37 tmp25 [V37,T20] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper"
; V38 tmp26 [V38,T29] ( 2, 4 ) ref -> rax class-hnd single-def "Inlining Arg"
; V38 tmp26 [V38,T29] ( 2, 4 ) ref -> rax class-hnd single-def "Inlining Arg"
; V39 tmp27 [V39,T30] ( 2, 4 ) ref -> rax class-hnd single-def "Inlining Arg"
; V39 tmp27 [V39,T30] ( 2, 4 ) ref -> rax class-hnd single-def "Inlining Arg"
; V40 tmp28 [V40,T21] ( 3, 6 ) ref -> rax single-def "argument with side effect"
; V40 tmp28 [V40,T21] ( 3, 6 ) ref -> rax single-def "argument with side effect"
; V41 tmp29 [V41,T31] ( 2, 4 ) ref -> rdx single-def "argument with side effect"
; V41 tmp29 [V41,T31] ( 2, 4 ) ref -> rdx single-def "argument with side effect"
; V42 tmp30 [V42,T32] ( 2, 4 ) ref -> r12 single-def "argument with side effect"
; V42 tmp30 [V42,T32] ( 2, 4 ) ref -> r12 single-def "argument with side effect"
; V43 tmp31 [V43,T33] ( 2, 4 ) ref -> rdx single-def "argument with side effect"
; V43 tmp31 [V43,T33] ( 2, 4 ) ref -> rdx single-def "argument with side effect"
; V44 tmp32 [V44,T34] ( 2, 4 ) ref -> r15 single-def "argument with side effect"
; V44 tmp32 [V44,T34] ( 2, 4 ) ref -> r15 single-def "argument with side effect"
; V45 cse0 [V45,T23] ( 4, 4 ) ref -> r15 "CSE - moderate"
; V45 cse0 [V45,T23] ( 4, 4 ) ref -> r15 "CSE - moderate"
复制
已复制
复制
已复制
; V46 cse1 [V46,T24] ( 4, 4 ) ref ->
[rbp-60H] spill-single-def "CSE - moderate"
; V46 cse1 [V46,T24] ( 4, 4 ) ref ->
[rbp-50H] spill-single-def "CSE - moderate"
; V47 cse2 [V47,T43] ( 5, 5 ) double -> [rbp-48H] spill-single-def "CSE - moderate"
; V48 cse3 [V48,T44] ( 5, 5 ) double ->
[rbp-50H] spill-single-def "CSE - moderate"
;
;
复制
已复制
复制
已复制
; Lcl frame size =
56
; Lcl frame size =
40
G_M22870_IG01: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
G_M22870_IG01: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push rbp
push rbp
push r15
push r15
push r14
push r14
push r13
push r13
push r12
push r12
push rbx
push rbx
复制
已复制
复制
已复制
sub rsp,
56
sub rsp,
40
vzeroupper
vzeroupper
复制
已复制
复制
已复制
lea rbp, [rsp+
6
0H]
lea rbp, [rsp+
5
0H]
;; bbWeight=1 PerfScore 7.75
;; bbWeight=1 PerfScore 7.75
G_M22870_IG02: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
G_M22870_IG02: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
call System.Globalization.CultureInfo:get_CurrentCulture():System.Globalization.CultureInfo
call System.Globalization.CultureInfo:get_CurrentCulture():System.Globalization.CultureInfo
; gcrRegs +[rax]
; gcrRegs +[rax]
mov rdi, rax
mov rdi, rax
; gcrRegs +[rdi]
; gcrRegs +[rdi]
mov rax, qword ptr [rax]
mov rax, qword ptr [rax]
; gcrRegs -[rax]
; gcrRegs -[rax]
mov rax, qword ptr [rax+88]
mov rax, qword ptr [rax+88]
call gword ptr [rax+16]System.Globalization.CultureInfo:get_NumberFormat():System.Globalization.NumberFormatInfo:this
call gword ptr [rax+16]System.Globalization.CultureInfo:get_NumberFormat():System.Globalization.NumberFormatInfo:this
; gcrRegs -[rdi] +[rax]
; gcrRegs -[rdi] +[rax]
mov rbx, gword ptr [rax+56]
mov rbx, gword ptr [rax+56]
; gcrRegs +[rbx]
; gcrRegs +[rbx]
mov rdi, 0xD1FFAB1E
mov rdi, 0xD1FFAB1E
call CORINFO_HELP_NEWSFAST
call CORINFO_HELP_NEWSFAST
mov r14, rax
mov r14, rax
; gcrRegs +[r14]
; gcrRegs +[r14]
mov rsi, 0xD1FFAB1E ; string handle
mov rsi, 0xD1FFAB1E ; string handle
mov rsi, gword ptr [rsi]
mov rsi, gword ptr [rsi]
; gcrRegs +[rsi]
; gcrRegs +[rsi]
mov rdi, r14
mov rdi, r14
; gcrRegs +[rdi]
; gcrRegs +[rdi]
mov edx, 1
mov edx, 1
call System.Globalization.CultureInfo:.ctor(System.String,bool):this
call System.Globalization.CultureInfo:.ctor(System.String,bool):this
; gcrRegs -[rax rsi rdi]
; gcrRegs -[rax rsi rdi]
vmovupd xmm0, xmmword ptr [reloc @RWD00]
vmovupd xmm0, xmmword ptr [reloc @RWD00]
vmovapd xmmword ptr [rbp-40H], xmm0
vmovapd xmmword ptr [rbp-40H], xmm0
lea rdi, bword ptr [rbp-40H]
lea rdi, bword ptr [rbp-40H]
; byrRegs +[rdi]
; byrRegs +[rdi]
call System.Numerics.Vector4:ToString():System.String:this
call System.Numerics.Vector4:ToString():System.String:this
; gcrRegs +[rax]
; gcrRegs +[rax]
已保存差异
原始文本
打开文件
; Assembly listing for method System.Numerics.Tests.Vector4Tests:Vector4ToStringTest():this ; Emitting BLENDED_CODE for X64 CPU with AVX - Unix ; optimized code ; rbp based frame ; partially interruptible ; No matching PGO data ; 0 inlinees with PGO data; 8 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ; ;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def ; V01 loc0 [V01,T22] ( 4, 4 ) ref -> rbx class-hnd single-def ;* V02 loc1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def ; V03 loc2 [V03 ] ( 5, 5 ) simd16 -> [rbp-40H] do-not-enreg[XSB] addr-exposed ld-addr-op single-def ; V04 loc3 [V04,T35] ( 2, 2 ) ref -> r15 class-hnd single-def ; V05 loc4 [V05,T36] ( 2, 2 ) ref -> rdi class-hnd single-def ; V06 loc5 [V06,T37] ( 2, 2 ) ref -> r12 class-hnd single-def ; V07 loc6 [V07,T38] ( 2, 2 ) ref -> rdi class-hnd single-def ; V08 loc7 [V08,T39] ( 2, 2 ) ref -> r12 class-hnd single-def ; V09 loc8 [V09,T40] ( 2, 2 ) ref -> rdi class-hnd single-def ; V10 loc9 [V10,T41] ( 2, 2 ) ref -> r14 class-hnd single-def ; V11 loc10 [V11,T42] ( 2, 2 ) ref -> rdi class-hnd single-def ;# V12 OutArgs [V12 ] ( 1, 1 ) lclBlk ( 0) [rsp+00H] "OutgoingArgSpace" ; V13 tmp1 [V13,T04] ( 5, 10 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" ; V14 tmp2 [V14,T00] ( 7, 14 ) ref -> r13 class-hnd exact single-def "dup spill" ; V15 tmp3 [V15,T25] ( 2, 4 ) ref -> r12 class-hnd single-def "impAppendStmt" ; V16 tmp4 [V16,T05] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" ; V17 tmp5 [V17,T06] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" ; V18 tmp6 [V18,T07] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" ; V19 tmp7 [V19,T08] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" ; V20 tmp8 [V20,T01] ( 7, 14 ) ref -> [rbp-58H] class-hnd exact spill-single-def "dup spill" ; V21 tmp9 [V21,T26] ( 2, 4 ) ref -> r13 class-hnd single-def "impAppendStmt" ; V22 tmp10 [V22,T09] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" ; V23 tmp11 [V23,T10] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" ; V24 tmp12 [V24,T11] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" ; V25 tmp13 [V25,T12] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" ; V26 tmp14 [V26,T02] ( 7, 14 ) ref -> r13 class-hnd exact single-def "dup spill" ; V27 tmp15 [V27,T27] ( 2, 4 ) ref -> rsi class-hnd single-def "Strict ordering of exceptions for Array store" ; V28 tmp16 [V28,T13] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" ; V29 tmp17 [V29,T14] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" ; V30 tmp18 [V30,T15] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" ; V31 tmp19 [V31,T16] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" ; V32 tmp20 [V32,T03] ( 7, 14 ) ref -> r12 class-hnd exact single-def "dup spill" ; V33 tmp21 [V33,T28] ( 2, 4 ) ref -> r15 class-hnd single-def "impAppendStmt" ; V34 tmp22 [V34,T17] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" ; V35 tmp23 [V35,T18] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" ; V36 tmp24 [V36,T19] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" ; V37 tmp25 [V37,T20] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" ; V38 tmp26 [V38,T29] ( 2, 4 ) ref -> rax class-hnd single-def "Inlining Arg" ; V39 tmp27 [V39,T30] ( 2, 4 ) ref -> rax class-hnd single-def "Inlining Arg" ; V40 tmp28 [V40,T21] ( 3, 6 ) ref -> rax single-def "argument with side effect" ; V41 tmp29 [V41,T31] ( 2, 4 ) ref -> rdx single-def "argument with side effect" ; V42 tmp30 [V42,T32] ( 2, 4 ) ref -> r12 single-def "argument with side effect" ; V43 tmp31 [V43,T33] ( 2, 4 ) ref -> rdx single-def "argument with side effect" ; V44 tmp32 [V44,T34] ( 2, 4 ) ref -> r15 single-def "argument with side effect" ; V45 cse0 [V45,T23] ( 4, 4 ) ref -> r15 "CSE - moderate" ; V46 cse1 [V46,T24] ( 4, 4 ) ref -> [rbp-60H] spill-single-def "CSE - moderate" ; V47 cse2 [V47,T43] ( 5, 5 ) double -> [rbp-48H] spill-single-def "CSE - moderate" ; V48 cse3 [V48,T44] ( 5, 5 ) double -> [rbp-50H] spill-single-def "CSE - moderate" ; ; Lcl frame size = 56 G_M22870_IG01: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push rbp push r15 push r14 push r13 push r12 push rbx sub rsp, 56 vzeroupper lea rbp, [rsp+60H] ;; bbWeight=1 PerfScore 7.75 G_M22870_IG02: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref call System.Globalization.CultureInfo:get_CurrentCulture():System.Globalization.CultureInfo ; gcrRegs +[rax] mov rdi, rax ; gcrRegs +[rdi] mov rax, qword ptr [rax] ; gcrRegs -[rax] mov rax, qword ptr [rax+88] call gword ptr [rax+16]System.Globalization.CultureInfo:get_NumberFormat():System.Globalization.NumberFormatInfo:this ; gcrRegs -[rdi] +[rax] mov rbx, gword ptr [rax+56] ; gcrRegs +[rbx] mov rdi, 0xD1FFAB1E call CORINFO_HELP_NEWSFAST mov r14, rax ; gcrRegs +[r14] mov rsi, 0xD1FFAB1E ; string handle mov rsi, gword ptr [rsi] ; gcrRegs +[rsi] mov rdi, r14 ; gcrRegs +[rdi] mov edx, 1 call System.Globalization.CultureInfo:.ctor(System.String,bool):this ; gcrRegs -[rax rsi rdi] vmovupd xmm0, xmmword ptr [reloc @RWD00] vmovapd xmmword ptr [rbp-40H], xmm0 lea rdi, bword ptr [rbp-40H] ; byrRegs +[rdi] call System.Numerics.Vector4:ToString():System.String:this ; gcrRegs +[rax] ; byrRegs -[rdi] mov r15, rax ; gcrRegs +[r15] call System.Globalization.CultureInfo:get_CurrentCulture():System.Globalization.CultureInfo mov r12, rax ; gcrRegs +[r12] mov rdi, 0xD1FFAB1E ; System.Object[] mov esi, 5 call CORINFO_HELP_NEWARR_1_OBJ mov r13, rax ; gcrRegs +[r13] lea rdi, bword ptr [r13+16] ; byrRegs +[rdi] mov rsi, rbx ; gcrRegs +[rsi] call CORINFO_HELP_ASSIGN_REF ; gcrRegs -[rax rsi] ; byrRegs -[rdi] mov rdi, 0xD1FFAB1E ; hackishClassName call CORINFO_HELP_NEWSFAST ; gcrRegs +[rax] vmovsd xmm0, qword ptr [reloc @RWD16] vmovsd qword ptr [rbp-48H], xmm0 vmovsd qword ptr [rax+8], xmm0 lea rdi, bword ptr [r13+24] ; byrRegs +[rdi] mov rsi, rax ; gcrRegs +[rsi] call CORINFO_HELP_ASSIGN_REF ; gcrRegs -[rax rsi] ; byrRegs -[rdi] mov rdi, 0xD1FFAB1E ; hackishClassName call CORINFO_HELP_NEWSFAST ; gcrRegs +[rax] mov dword ptr [rax+8], 2 lea rdi, bword ptr [r13+32] ; byrRegs +[rdi] mov rsi, rax ; gcrRegs +[rsi] call CORINFO_HELP_ASSIGN_REF ; gcrRegs -[rax rsi] ; byrRegs -[rdi] mov rdi, 0xD1FFAB1E ; hackishClassName call CORINFO_HELP_NEWSFAST ; gcrRegs +[rax] mov dword ptr [rax+8], 3 lea rdi, bword ptr [r13+40] ; byrRegs +[rdi] mov rsi, rax ; gcrRegs +[rsi] call CORINFO_HELP_ASSIGN_REF ; gcrRegs -[rax rsi] ; byrRegs -[rdi] mov rdi, 0xD1FFAB1E ; hackishClassName call CORINFO_HELP_NEWSFAST ; gcrRegs +[rax] vmovsd xmm0, qword ptr [reloc @RWD24] vmovsd qword ptr [rbp-50H], xmm0 vmovsd qword ptr [rax+8], xmm0 lea rdi, bword ptr [r13+48] ; byrRegs +[rdi] mov rsi, rax ; gcrRegs +[rsi] call CORINFO_HELP_ASSIGN_REF ; gcrRegs -[rax rsi] ; byrRegs -[rdi] mov rsi, 0xD1FFAB1E ; string handle mov rsi, gword ptr [rsi] ; gcrRegs +[rsi] mov rdi, r12 ; gcrRegs +[rdi] mov rdx, r13 ; gcrRegs +[rdx] call System.String:Format(System.IFormatProvider,System.String,System.Object[]):System.String ; gcrRegs -[rdx rsi rdi r12-r13] +[rax] ;; bbWeight=1 PerfScore 50.75 G_M22870_IG03: ; , extend mov rdi, rax ; gcrRegs +[rdi] mov rsi, r15 ; gcrRegs +[rsi] xor edx, edx xor ecx, ecx xor r8d, r8d call hackishModuleName:hackishMethodName() ; gcrRegs -[rax rsi rdi r15] mov rax, 0xD1FFAB1E ; string handle mov r15, gword ptr [rax] ; gcrRegs +[r15] mov r12, r15 ; gcrRegs +[r12] call System.Globalization.CultureInfo:get_CurrentCulture():System.Globalization.CultureInfo ; gcrRegs +[rax] mov rdx, rax ; gcrRegs +[rdx] mov rsi, r12 ; gcrRegs +[rsi] lea rdi, bword ptr [rbp-40H] ; byrRegs +[rdi] call System.Numerics.Vector4:ToString(System.String,System.IFormatProvider):System.String:this ; gcrRegs -[rdx rsi r12] ; byrRegs -[rdi] mov r12, rax ; gcrRegs +[r12] call System.Globalization.CultureInfo:get_CurrentCulture():System.Globalization.CultureInfo mov r13, rax ; gcrRegs +[r13] mov rdi, 0xD1FFAB1E ; System.Object[] mov esi, 5 call CORINFO_HELP_NEWARR_1_OBJ mov gword ptr [rbp-58H], rax ; GC ptr vars +{V20} lea rdi, bword ptr [rax+16] ; byrRegs +[rdi] mov rsi, rbx ; gcrRegs +[rsi] call CORINFO_HELP_ASSIGN_REF ; gcrRegs -[rax rsi] ; byrRegs -[rdi] mov rdi, 0xD1FFAB1E ; hackishClassName call CORINFO_HELP_NEWSFAST ; gcrRegs +[rax] vmovsd xmm0, qword ptr [rbp-48H] vmovsd qword ptr [rax+8], xmm0 mov rdx, gword ptr [rbp-58H] ; gcrRegs +[rdx] lea rdi, bword ptr [rdx+24] ; byrRegs +[rdi] mov rsi, rax ; gcrRegs +[rsi] call CORINFO_HELP_ASSIGN_REF ; gcrRegs -[rax rdx rsi] ; byrRegs -[rdi] mov rdi, 0xD1FFAB1E ; hackishClassName call CORINFO_HELP_NEWSFAST ; gcrRegs +[rax] mov dword ptr [rax+8], 2 mov rdx, gword ptr [rbp-58H] ; gcrRegs +[rdx] lea rdi, bword ptr [rdx+32] ; byrRegs +[rdi] mov rsi, rax ; gcrRegs +[rsi] call CORINFO_HELP_ASSIGN_REF ; gcrRegs -[rax rdx rsi] ; byrRegs -[rdi] mov rdi, 0xD1FFAB1E ; hackishClassName call CORINFO_HELP_NEWSFAST ; gcrRegs +[rax] mov dword ptr [rax+8], 3 mov rdx, gword ptr [rbp-58H] ; gcrRegs +[rdx] lea rdi, bword ptr [rdx+40] ; byrRegs +[rdi] mov rsi, rax ; gcrRegs +[rsi] call CORINFO_HELP_ASSIGN_REF ; gcrRegs -[rax rdx rsi] ; byrRegs -[rdi] mov rdi, 0xD1FFAB1E ; hackishClassName call CORINFO_HELP_NEWSFAST ; gcrRegs +[rax] vmovsd xmm0, qword ptr [rbp-50H] vmovsd qword ptr [rax+8], xmm0 mov rdx, gword ptr [rbp-58H] ; gcrRegs +[rdx] ;; bbWeight=1 PerfScore 34.75 G_M22870_IG04: ; , extend lea rdi, bword ptr [rdx+48] ; byrRegs +[rdi] mov rsi, rax ; gcrRegs +[rsi] call CORINFO_HELP_ASSIGN_REF ; gcrRegs -[rax rdx rsi] ; byrRegs -[rdi] mov rsi, 0xD1FFAB1E ; string handle mov rax, gword ptr [rsi] ; gcrRegs +[rax] mov gword ptr [rbp-60H], rax ; GC ptr vars +{V46} mov rsi, rax ; gcrRegs +[rsi] mov rdi, r13 ; gcrRegs +[rdi] mov rdx, gword ptr [rbp-58H] ; gcrRegs +[rdx] ; GC ptr vars -{V20} call System.String:Format(System.IFormatProvider,System.String,System.Object[]):System.String ; gcrRegs -[rdx rsi rdi r13] mov rdi, rax ; gcrRegs +[rdi] mov rsi, r12 ; gcrRegs +[rsi] xor edx, edx xor ecx, ecx xor r8d, r8d call hackishModuleName:hackishMethodName() ; gcrRegs -[rax rsi rdi r12] mov rsi, r15 ; gcrRegs +[rsi] lea rdi, bword ptr [rbp-40H] ; byrRegs +[rdi] mov rdx, r14 ; gcrRegs +[rdx] call System.Numerics.Vector4:ToString(System.String,System.IFormatProvider):System.String:this ; gcrRegs -[rdx rsi] +[rax] ; byrRegs -[rdi] mov r12, rax ; gcrRegs +[r12] mov rdi, 0xD1FFAB1E ; System.Object[] mov esi, 5 call CORINFO_HELP_NEWARR_1_OBJ mov r13, rax ; gcrRegs +[r13] mov rdi, r14 ; gcrRegs +[rdi] mov rax, 0xD1FFAB1E ; gcrRegs -[rax] call gword ptr [rax]System.Globalization.CultureInfo:get_NumberFormat():System.Globalization.NumberFormatInfo:this ; gcrRegs -[rdi] +[rax] mov rsi, gword ptr [rax+56] ; gcrRegs +[rsi] lea rdi, bword ptr [r13+16] ; byrRegs +[rdi] call CORINFO_HELP_ASSIGN_REF ; gcrRegs -[rax rsi] ; byrRegs -[rdi] mov rdi, 0xD1FFAB1E ; hackishClassName call CORINFO_HELP_NEWSFAST ; gcrRegs +[rax] vmovsd xmm0, qword ptr [rbp-48H] vmovsd qword ptr [rax+8], xmm0 lea rdi, bword ptr [r13+24] ; byrRegs +[rdi] mov rsi, rax ; gcrRegs +[rsi] call CORINFO_HELP_ASSIGN_REF ; gcrRegs -[rax rsi] ; byrRegs -[rdi] mov rdi, 0xD1FFAB1E ; hackishClassName call CORINFO_HELP_NEWSFAST ; gcrRegs +[rax] mov dword ptr [rax+8], 2 lea rdi, bword ptr [r13+32] ; byrRegs +[rdi] mov rsi, rax ; gcrRegs +[rsi] call CORINFO_HELP_ASSIGN_REF ; gcrRegs -[rax rsi] ; byrRegs -[rdi] mov rdi, 0xD1FFAB1E ; hackishClassName call CORINFO_HELP_NEWSFAST ; gcrRegs +[rax] ;; bbWeight=1 PerfScore 31.50 G_M22870_IG05: ; , extend mov dword ptr [rax+8], 3 lea rdi, bword ptr [r13+40] ; byrRegs +[rdi] mov rsi, rax ; gcrRegs +[rsi] call CORINFO_HELP_ASSIGN_REF ; gcrRegs -[rax rsi] ; byrRegs -[rdi] mov rdi, 0xD1FFAB1E ; hackishClassName call CORINFO_HELP_NEWSFAST ; gcrRegs +[rax] vmovsd xmm0, qword ptr [rbp-50H] vmovsd qword ptr [rax+8], xmm0 lea rdi, bword ptr [r13+48] ; byrRegs +[rdi] mov rsi, rax ; gcrRegs +[rsi] call CORINFO_HELP_ASSIGN_REF ; gcrRegs -[rax rsi] ; byrRegs -[rdi] mov rsi, gword ptr [rbp-60H] ; gcrRegs +[rsi] mov rdi, r14 ; gcrRegs +[rdi] mov rdx, r13 ; gcrRegs +[rdx] call System.String:Format(System.IFormatProvider,System.String,System.Object[]):System.String ; gcrRegs -[rdx rsi rdi r13-r14] +[rax] mov rdi, rax ; gcrRegs +[rdi] mov rsi, r12 ; gcrRegs +[rsi] xor edx, edx xor ecx, ecx xor r8d, r8d call hackishModuleName:hackishMethodName() ; gcrRegs -[rax rsi rdi r12] call System.Globalization.CultureInfo:get_CurrentCulture():System.Globalization.CultureInfo ; gcrRegs +[rax] mov rdx, rax ; gcrRegs +[rdx] mov rsi, r15 ; gcrRegs +[rsi] lea rdi, bword ptr [rbp-40H] ; byrRegs +[rdi] call System.Numerics.Vector4:ToString(System.String,System.IFormatProvider):System.String:this ; gcrRegs -[rdx rsi r15] ; byrRegs -[rdi] mov r14, rax ; gcrRegs +[r14] call System.Globalization.CultureInfo:get_CurrentCulture():System.Globalization.CultureInfo mov r15, rax ; gcrRegs +[r15] mov rdi, 0xD1FFAB1E ; System.Object[] mov esi, 5 call CORINFO_HELP_NEWARR_1_OBJ mov r12, rax ; gcrRegs +[r12] lea rdi, bword ptr [r12+16] ; byrRegs +[rdi] mov rsi, rbx ; gcrRegs +[rsi] call CORINFO_HELP_ASSIGN_REF ; gcrRegs -[rax rbx rsi] ; byrRegs -[rdi] mov rdi, 0xD1FFAB1E ; hackishClassName call CORINFO_HELP_NEWSFAST ; gcrRegs +[rax] vmovsd xmm0, qword ptr [rbp-48H] vmovsd qword ptr [rax+8], xmm0 lea rdi, bword ptr [r12+24] ; byrRegs +[rdi] mov rsi, rax ; gcrRegs +[rsi] call CORINFO_HELP_ASSIGN_REF ; gcrRegs -[rax rsi] ; byrRegs -[rdi] mov rdi, 0xD1FFAB1E ; hackishClassName call CORINFO_HELP_NEWSFAST ; gcrRegs +[rax] mov dword ptr [rax+8], 2 ;; bbWeight=1 PerfScore 28.75 G_M22870_IG06: ; , extend lea rdi, bword ptr [r12+32] ; byrRegs +[rdi] mov rsi, rax ; gcrRegs +[rsi] call CORINFO_HELP_ASSIGN_REF ; gcrRegs -[rax rsi] ; byrRegs -[rdi] mov rdi, 0xD1FFAB1E ; hackishClassName call CORINFO_HELP_NEWSFAST ; gcrRegs +[rax] mov dword ptr [rax+8], 3 lea rdi, bword ptr [r12+40] ; byrRegs +[rdi] mov rsi, rax ; gcrRegs +[rsi] call CORINFO_HELP_ASSIGN_REF ; gcrRegs -[rax rsi] ; byrRegs -[rdi] mov rdi, 0xD1FFAB1E ; hackishClassName call CORINFO_HELP_NEWSFAST ; gcrRegs +[rax] vmovsd xmm0, qword ptr [rbp-50H] vmovsd qword ptr [rax+8], xmm0 lea rdi, bword ptr [r12+48] ; byrRegs +[rdi] mov rsi, rax ; gcrRegs +[rsi] call CORINFO_HELP_ASSIGN_REF ; gcrRegs -[rax rsi] ; byrRegs -[rdi] mov rsi, gword ptr [rbp-60H] ; gcrRegs +[rsi] mov rdi, r15 ; gcrRegs +[rdi] mov rdx, r12 ; gcrRegs +[rdx] ; GC ptr vars -{V46} call System.String:Format(System.IFormatProvider,System.String,System.Object[]):System.String ; gcrRegs -[rdx rsi rdi r12 r15] +[rax] mov rdi, rax ; gcrRegs +[rdi] mov rsi, r14 ; gcrRegs +[rsi] xor edx, edx xor ecx, ecx xor r8d, r8d call hackishModuleName:hackishMethodName() ; gcrRegs -[rax rsi rdi r14] nop ;; bbWeight=1 PerfScore 16.25 G_M22870_IG07: ; , epilog, nogc, extend add rsp, 56 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; bbWeight=1 PerfScore 4.25 RWD00 dd 40200000h ; 2.5 dd 40000000h ; 2 dd 40400000h ; 3 dd 40533333h ; 3.3 RWD16 dq 4004000000000000h ; 2.5 RWD24 dq 400A666666666666h ; 3.3 ; Total bytes of code 1153, prolog size 22, PerfScore 291.30, instruction count 248, allocated bytes for code 1173 (MethodHash=df59a6a9) for method System.Numerics.Tests.Vector4Tests:Vector4ToStringTest():this ; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00 SizeOfProlog : 0x0E CountOfUnwindCodes: 7 FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes : CodeOffset: 0x0E UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 6 * 8 + 8 = 56 = 0x38 CodeOffset: 0x0A UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) CodeOffset: 0x09 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r12 (12) CodeOffset: 0x07 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r13 (13) CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r14 (14) CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15) CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
更改后文本
打开文件
; Assembly listing for method System.Numerics.Tests.Vector4Tests:Vector4ToStringTest():this ; Emitting BLENDED_CODE for X64 CPU with AVX - Unix ; optimized code ; rbp based frame ; partially interruptible ; No matching PGO data ; 0 inlinees with PGO data; 8 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ; ;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def ; V01 loc0 [V01,T22] ( 4, 4 ) ref -> rbx class-hnd single-def ;* V02 loc1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def ; V03 loc2 [V03 ] ( 5, 5 ) simd16 -> [rbp-40H] do-not-enreg[XSB] addr-exposed ld-addr-op single-def ; V04 loc3 [V04,T35] ( 2, 2 ) ref -> r15 class-hnd single-def ; V05 loc4 [V05,T36] ( 2, 2 ) ref -> rdi class-hnd single-def ; V06 loc5 [V06,T37] ( 2, 2 ) ref -> r12 class-hnd single-def ; V07 loc6 [V07,T38] ( 2, 2 ) ref -> rdi class-hnd single-def ; V08 loc7 [V08,T39] ( 2, 2 ) ref -> r12 class-hnd single-def ; V09 loc8 [V09,T40] ( 2, 2 ) ref -> rdi class-hnd single-def ; V10 loc9 [V10,T41] ( 2, 2 ) ref -> r14 class-hnd single-def ; V11 loc10 [V11,T42] ( 2, 2 ) ref -> rdi class-hnd single-def ;# V12 OutArgs [V12 ] ( 1, 1 ) lclBlk ( 0) [rsp+00H] "OutgoingArgSpace" ; V13 tmp1 [V13,T04] ( 5, 10 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" ; V14 tmp2 [V14,T00] ( 7, 14 ) ref -> r13 class-hnd exact single-def "dup spill" ; V15 tmp3 [V15,T25] ( 2, 4 ) ref -> r12 class-hnd single-def "impAppendStmt" ; V16 tmp4 [V16,T05] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" ; V17 tmp5 [V17,T06] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" ; V18 tmp6 [V18,T07] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" ; V19 tmp7 [V19,T08] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" ; V20 tmp8 [V20,T01] ( 7, 14 ) ref -> [rbp-48H] class-hnd exact spill-single-def "dup spill" ; V21 tmp9 [V21,T26] ( 2, 4 ) ref -> r13 class-hnd single-def "impAppendStmt" ; V22 tmp10 [V22,T09] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" ; V23 tmp11 [V23,T10] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" ; V24 tmp12 [V24,T11] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" ; V25 tmp13 [V25,T12] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" ; V26 tmp14 [V26,T02] ( 7, 14 ) ref -> r13 class-hnd exact single-def "dup spill" ; V27 tmp15 [V27,T27] ( 2, 4 ) ref -> rsi class-hnd single-def "Strict ordering of exceptions for Array store" ; V28 tmp16 [V28,T13] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" ; V29 tmp17 [V29,T14] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" ; V30 tmp18 [V30,T15] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" ; V31 tmp19 [V31,T16] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" ; V32 tmp20 [V32,T03] ( 7, 14 ) ref -> r12 class-hnd exact single-def "dup spill" ; V33 tmp21 [V33,T28] ( 2, 4 ) ref -> r15 class-hnd single-def "impAppendStmt" ; V34 tmp22 [V34,T17] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" ; V35 tmp23 [V35,T18] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" ; V36 tmp24 [V36,T19] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" ; V37 tmp25 [V37,T20] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" ; V38 tmp26 [V38,T29] ( 2, 4 ) ref -> rax class-hnd single-def "Inlining Arg" ; V39 tmp27 [V39,T30] ( 2, 4 ) ref -> rax class-hnd single-def "Inlining Arg" ; V40 tmp28 [V40,T21] ( 3, 6 ) ref -> rax single-def "argument with side effect" ; V41 tmp29 [V41,T31] ( 2, 4 ) ref -> rdx single-def "argument with side effect" ; V42 tmp30 [V42,T32] ( 2, 4 ) ref -> r12 single-def "argument with side effect" ; V43 tmp31 [V43,T33] ( 2, 4 ) ref -> rdx single-def "argument with side effect" ; V44 tmp32 [V44,T34] ( 2, 4 ) ref -> r15 single-def "argument with side effect" ; V45 cse0 [V45,T23] ( 4, 4 ) ref -> r15 "CSE - moderate" ; V46 cse1 [V46,T24] ( 4, 4 ) ref -> [rbp-50H] spill-single-def "CSE - moderate" ; ; Lcl frame size = 40 G_M22870_IG01: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push rbp push r15 push r14 push r13 push r12 push rbx sub rsp, 40 vzeroupper lea rbp, [rsp+50H] ;; bbWeight=1 PerfScore 7.75 G_M22870_IG02: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref call System.Globalization.CultureInfo:get_CurrentCulture():System.Globalization.CultureInfo ; gcrRegs +[rax] mov rdi, rax ; gcrRegs +[rdi] mov rax, qword ptr [rax] ; gcrRegs -[rax] mov rax, qword ptr [rax+88] call gword ptr [rax+16]System.Globalization.CultureInfo:get_NumberFormat():System.Globalization.NumberFormatInfo:this ; gcrRegs -[rdi] +[rax] mov rbx, gword ptr [rax+56] ; gcrRegs +[rbx] mov rdi, 0xD1FFAB1E call CORINFO_HELP_NEWSFAST mov r14, rax ; gcrRegs +[r14] mov rsi, 0xD1FFAB1E ; string handle mov rsi, gword ptr [rsi] ; gcrRegs +[rsi] mov rdi, r14 ; gcrRegs +[rdi] mov edx, 1 call System.Globalization.CultureInfo:.ctor(System.String,bool):this ; gcrRegs -[rax rsi rdi] vmovupd xmm0, xmmword ptr [reloc @RWD00] vmovapd xmmword ptr [rbp-40H], xmm0 lea rdi, bword ptr [rbp-40H] ; byrRegs +[rdi] call System.Numerics.Vector4:ToString():System.String:this ; gcrRegs +[rax] ; byrRegs -[rdi] mov r15, rax ; gcrRegs +[r15] call System.Globalization.CultureInfo:get_CurrentCulture():System.Globalization.CultureInfo mov r12, rax ; gcrRegs +[r12] mov rdi, 0xD1FFAB1E ; System.Object[] mov esi, 5 call CORINFO_HELP_NEWARR_1_OBJ mov r13, rax ; gcrRegs +[r13] lea rdi, bword ptr [r13+16] ; byrRegs +[rdi] mov rsi, rbx ; gcrRegs +[rsi] call CORINFO_HELP_ASSIGN_REF ; gcrRegs -[rax rsi] ; byrRegs -[rdi] mov rdi, 0xD1FFAB1E ; hackishClassName call CORINFO_HELP_NEWSFAST ; gcrRegs +[rax] mov rdi, 0xD1FFAB1E mov qword ptr [rax+8], rdi lea rdi, bword ptr [r13+24] ; byrRegs +[rdi] mov rsi, rax ; gcrRegs +[rsi] call CORINFO_HELP_ASSIGN_REF ; gcrRegs -[rax rsi] ; byrRegs -[rdi] mov rdi, 0xD1FFAB1E ; hackishClassName call CORINFO_HELP_NEWSFAST ; gcrRegs +[rax] mov dword ptr [rax+8], 2 lea rdi, bword ptr [r13+32] ; byrRegs +[rdi] mov rsi, rax ; gcrRegs +[rsi] call CORINFO_HELP_ASSIGN_REF ; gcrRegs -[rax rsi] ; byrRegs -[rdi] mov rdi, 0xD1FFAB1E ; hackishClassName call CORINFO_HELP_NEWSFAST ; gcrRegs +[rax] mov dword ptr [rax+8], 3 lea rdi, bword ptr [r13+40] ; byrRegs +[rdi] mov rsi, rax ; gcrRegs +[rsi] call CORINFO_HELP_ASSIGN_REF ; gcrRegs -[rax rsi] ; byrRegs -[rdi] mov rdi, 0xD1FFAB1E ; hackishClassName call CORINFO_HELP_NEWSFAST ; gcrRegs +[rax] mov rdi, 0xD1FFAB1E mov qword ptr [rax+8], rdi lea rdi, bword ptr [r13+48] ; byrRegs +[rdi] mov rsi, rax ; gcrRegs +[rsi] call CORINFO_HELP_ASSIGN_REF ; gcrRegs -[rax rsi] ; byrRegs -[rdi] mov rsi, 0xD1FFAB1E ; string handle mov rsi, gword ptr [rsi] ; gcrRegs +[rsi] mov rdi, r12 ; gcrRegs +[rdi] mov rdx, r13 ; gcrRegs +[rdx] call System.String:Format(System.IFormatProvider,System.String,System.Object[]):System.String ; gcrRegs -[rdx rsi rdi r12-r13] +[rax] mov rdi, rax ; gcrRegs +[rdi] mov rsi, r15 ; gcrRegs +[rsi] ;; bbWeight=1 PerfScore 47.75 G_M22870_IG03: ; , extend xor edx, edx xor ecx, ecx xor r8d, r8d call hackishModuleName:hackishMethodName() ; gcrRegs -[rax rsi rdi r15] mov rax, 0xD1FFAB1E ; string handle mov r15, gword ptr [rax] ; gcrRegs +[r15] mov r12, r15 ; gcrRegs +[r12] call System.Globalization.CultureInfo:get_CurrentCulture():System.Globalization.CultureInfo ; gcrRegs +[rax] mov rdx, rax ; gcrRegs +[rdx] mov rsi, r12 ; gcrRegs +[rsi] lea rdi, bword ptr [rbp-40H] ; byrRegs +[rdi] call System.Numerics.Vector4:ToString(System.String,System.IFormatProvider):System.String:this ; gcrRegs -[rdx rsi r12] ; byrRegs -[rdi] mov r12, rax ; gcrRegs +[r12] call System.Globalization.CultureInfo:get_CurrentCulture():System.Globalization.CultureInfo mov r13, rax ; gcrRegs +[r13] mov rdi, 0xD1FFAB1E ; System.Object[] mov esi, 5 call CORINFO_HELP_NEWARR_1_OBJ mov gword ptr [rbp-48H], rax ; GC ptr vars +{V20} lea rdi, bword ptr [rax+16] ; byrRegs +[rdi] mov rsi, rbx ; gcrRegs +[rsi] call CORINFO_HELP_ASSIGN_REF ; gcrRegs -[rax rsi] ; byrRegs -[rdi] mov rdi, 0xD1FFAB1E ; hackishClassName call CORINFO_HELP_NEWSFAST ; gcrRegs +[rax] mov rdi, 0xD1FFAB1E mov qword ptr [rax+8], rdi mov rdx, gword ptr [rbp-48H] ; gcrRegs +[rdx] lea rdi, bword ptr [rdx+24] ; byrRegs +[rdi] mov rsi, rax ; gcrRegs +[rsi] call CORINFO_HELP_ASSIGN_REF ; gcrRegs -[rax rdx rsi] ; byrRegs -[rdi] mov rdi, 0xD1FFAB1E ; hackishClassName call CORINFO_HELP_NEWSFAST ; gcrRegs +[rax] mov dword ptr [rax+8], 2 mov rdx, gword ptr [rbp-48H] ; gcrRegs +[rdx] lea rdi, bword ptr [rdx+32] ; byrRegs +[rdi] mov rsi, rax ; gcrRegs +[rsi] call CORINFO_HELP_ASSIGN_REF ; gcrRegs -[rax rdx rsi] ; byrRegs -[rdi] mov rdi, 0xD1FFAB1E ; hackishClassName call CORINFO_HELP_NEWSFAST ; gcrRegs +[rax] mov dword ptr [rax+8], 3 mov rdx, gword ptr [rbp-48H] ; gcrRegs +[rdx] lea rdi, bword ptr [rdx+40] ; byrRegs +[rdi] mov rsi, rax ; gcrRegs +[rsi] call CORINFO_HELP_ASSIGN_REF ; gcrRegs -[rax rdx rsi] ; byrRegs -[rdi] mov rdi, 0xD1FFAB1E ; hackishClassName call CORINFO_HELP_NEWSFAST ; gcrRegs +[rax] mov rdi, 0xD1FFAB1E mov qword ptr [rax+8], rdi mov rdx, gword ptr [rbp-48H] ; gcrRegs +[rdx] lea rdi, bword ptr [rdx+48] ; byrRegs +[rdi] ;; bbWeight=1 PerfScore 32.25 G_M22870_IG04: ; , extend mov rsi, rax ; gcrRegs +[rsi] call CORINFO_HELP_ASSIGN_REF ; gcrRegs -[rax rdx rsi] ; byrRegs -[rdi] mov rsi, 0xD1FFAB1E ; string handle mov rax, gword ptr [rsi] ; gcrRegs +[rax] mov gword ptr [rbp-50H], rax ; GC ptr vars +{V46} mov rsi, rax ; gcrRegs +[rsi] mov rdi, r13 ; gcrRegs +[rdi] mov rdx, gword ptr [rbp-48H] ; gcrRegs +[rdx] ; GC ptr vars -{V20} call System.String:Format(System.IFormatProvider,System.String,System.Object[]):System.String ; gcrRegs -[rdx rsi rdi r13] mov rdi, rax ; gcrRegs +[rdi] mov rsi, r12 ; gcrRegs +[rsi] xor edx, edx xor ecx, ecx xor r8d, r8d call hackishModuleName:hackishMethodName() ; gcrRegs -[rax rsi rdi r12] mov rsi, r15 ; gcrRegs +[rsi] lea rdi, bword ptr [rbp-40H] ; byrRegs +[rdi] mov rdx, r14 ; gcrRegs +[rdx] call System.Numerics.Vector4:ToString(System.String,System.IFormatProvider):System.String:this ; gcrRegs -[rdx rsi] +[rax] ; byrRegs -[rdi] mov r12, rax ; gcrRegs +[r12] mov rdi, 0xD1FFAB1E ; System.Object[] mov esi, 5 call CORINFO_HELP_NEWARR_1_OBJ mov r13, rax ; gcrRegs +[r13] mov rdi, r14 ; gcrRegs +[rdi] mov rax, 0xD1FFAB1E ; gcrRegs -[rax] call gword ptr [rax]System.Globalization.CultureInfo:get_NumberFormat():System.Globalization.NumberFormatInfo:this ; gcrRegs -[rdi] +[rax] mov rsi, gword ptr [rax+56] ; gcrRegs +[rsi] lea rdi, bword ptr [r13+16] ; byrRegs +[rdi] call CORINFO_HELP_ASSIGN_REF ; gcrRegs -[rax rsi] ; byrRegs -[rdi] mov rdi, 0xD1FFAB1E ; hackishClassName call CORINFO_HELP_NEWSFAST ; gcrRegs +[rax] mov rdi, 0xD1FFAB1E mov qword ptr [rax+8], rdi lea rdi, bword ptr [r13+24] ; byrRegs +[rdi] mov rsi, rax ; gcrRegs +[rsi] call CORINFO_HELP_ASSIGN_REF ; gcrRegs -[rax rsi] ; byrRegs -[rdi] mov rdi, 0xD1FFAB1E ; hackishClassName call CORINFO_HELP_NEWSFAST ; gcrRegs +[rax] mov dword ptr [rax+8], 2 lea rdi, bword ptr [r13+32] ; byrRegs +[rdi] mov rsi, rax ; gcrRegs +[rsi] call CORINFO_HELP_ASSIGN_REF ; gcrRegs -[rax rsi] ; byrRegs -[rdi] mov rdi, 0xD1FFAB1E ; hackishClassName call CORINFO_HELP_NEWSFAST ; gcrRegs +[rax] mov dword ptr [rax+8], 3 ;; bbWeight=1 PerfScore 30.75 G_M22870_IG05: ; , extend lea rdi, bword ptr [r13+40] ; byrRegs +[rdi] mov rsi, rax ; gcrRegs +[rsi] call CORINFO_HELP_ASSIGN_REF ; gcrRegs -[rax rsi] ; byrRegs -[rdi] mov rdi, 0xD1FFAB1E ; hackishClassName call CORINFO_HELP_NEWSFAST ; gcrRegs +[rax] mov rdi, 0xD1FFAB1E mov qword ptr [rax+8], rdi lea rdi, bword ptr [r13+48] ; byrRegs +[rdi] mov rsi, rax ; gcrRegs +[rsi] call CORINFO_HELP_ASSIGN_REF ; gcrRegs -[rax rsi] ; byrRegs -[rdi] mov rsi, gword ptr [rbp-50H] ; gcrRegs +[rsi] mov rdi, r14 ; gcrRegs +[rdi] mov rdx, r13 ; gcrRegs +[rdx] call System.String:Format(System.IFormatProvider,System.String,System.Object[]):System.String ; gcrRegs -[rdx rsi rdi r13-r14] +[rax] mov rdi, rax ; gcrRegs +[rdi] mov rsi, r12 ; gcrRegs +[rsi] xor edx, edx xor ecx, ecx xor r8d, r8d call hackishModuleName:hackishMethodName() ; gcrRegs -[rax rsi rdi r12] call System.Globalization.CultureInfo:get_CurrentCulture():System.Globalization.CultureInfo ; gcrRegs +[rax] mov rdx, rax ; gcrRegs +[rdx] mov rsi, r15 ; gcrRegs +[rsi] lea rdi, bword ptr [rbp-40H] ; byrRegs +[rdi] call System.Numerics.Vector4:ToString(System.String,System.IFormatProvider):System.String:this ; gcrRegs -[rdx rsi r15] ; byrRegs -[rdi] mov r14, rax ; gcrRegs +[r14] call System.Globalization.CultureInfo:get_CurrentCulture():System.Globalization.CultureInfo mov r15, rax ; gcrRegs +[r15] mov rdi, 0xD1FFAB1E ; System.Object[] mov esi, 5 call CORINFO_HELP_NEWARR_1_OBJ mov r12, rax ; gcrRegs +[r12] lea rdi, bword ptr [r12+16] ; byrRegs +[rdi] mov rsi, rbx ; gcrRegs +[rsi] call CORINFO_HELP_ASSIGN_REF ; gcrRegs -[rax rbx rsi] ; byrRegs -[rdi] mov rdi, 0xD1FFAB1E ; hackishClassName call CORINFO_HELP_NEWSFAST ; gcrRegs +[rax] mov rdi, 0xD1FFAB1E mov qword ptr [rax+8], rdi lea rdi, bword ptr [r12+24] ; byrRegs +[rdi] mov rsi, rax ; gcrRegs +[rsi] call CORINFO_HELP_ASSIGN_REF ; gcrRegs -[rax rsi] ; byrRegs -[rdi] mov rdi, 0xD1FFAB1E ; hackishClassName call CORINFO_HELP_NEWSFAST ; gcrRegs +[rax] mov dword ptr [rax+8], 2 ;; bbWeight=1 PerfScore 25.25 G_M22870_IG06: ; , extend lea rdi, bword ptr [r12+32] ; byrRegs +[rdi] mov rsi, rax ; gcrRegs +[rsi] call CORINFO_HELP_ASSIGN_REF ; gcrRegs -[rax rsi] ; byrRegs -[rdi] mov rdi, 0xD1FFAB1E ; hackishClassName call CORINFO_HELP_NEWSFAST ; gcrRegs +[rax] mov dword ptr [rax+8], 3 lea rdi, bword ptr [r12+40] ; byrRegs +[rdi] mov rsi, rax ; gcrRegs +[rsi] call CORINFO_HELP_ASSIGN_REF ; gcrRegs -[rax rsi] ; byrRegs -[rdi] mov rdi, 0xD1FFAB1E ; hackishClassName call CORINFO_HELP_NEWSFAST ; gcrRegs +[rax] mov rdi, 0xD1FFAB1E mov qword ptr [rax+8], rdi lea rdi, bword ptr [r12+48] ; byrRegs +[rdi] mov rsi, rax ; gcrRegs +[rsi] call CORINFO_HELP_ASSIGN_REF ; gcrRegs -[rax rsi] ; byrRegs -[rdi] mov rsi, gword ptr [rbp-50H] ; gcrRegs +[rsi] mov rdi, r15 ; gcrRegs +[rdi] mov rdx, r12 ; gcrRegs +[rdx] ; GC ptr vars -{V46} call System.String:Format(System.IFormatProvider,System.String,System.Object[]):System.String ; gcrRegs -[rdx rsi rdi r12 r15] +[rax] mov rdi, rax ; gcrRegs +[rdi] mov rsi, r14 ; gcrRegs +[rsi] xor edx, edx xor ecx, ecx xor r8d, r8d call hackishModuleName:hackishMethodName() ; gcrRegs -[rax rsi rdi r14] nop ;; bbWeight=1 PerfScore 15.00 G_M22870_IG07: ; , epilog, nogc, extend add rsp, 40 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; bbWeight=1 PerfScore 4.25 RWD00 dd 40200000h ; 2.5 dd 40000000h ; 2 dd 40400000h ; 3 dd 40533333h ; 3.3 ; Total bytes of code 1169, prolog size 22, PerfScore 280.10, instruction count 246, allocated bytes for code 1171 (MethodHash=df59a6a9) for method System.Numerics.Tests.Vector4Tests:Vector4ToStringTest():this ; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00 SizeOfProlog : 0x0E CountOfUnwindCodes: 7 FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes : CodeOffset: 0x0E UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28 CodeOffset: 0x0A UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) CodeOffset: 0x09 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r12 (12) CodeOffset: 0x07 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r13 (13) CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r14 (14) CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15) CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
查找差异