Diff
checker
文本
文本
图像
文档
Excel
文件夹
Legal
Enterprise
桌面版
定价
登录
下载 Diffchecker 桌面版
比较文本
查找两个文本文件之间的差异
工具
历史
显示
视图
拆分
统一
实时编辑器
隐藏空白更改
折叠未更改行
关闭换行
比对精度
智能
语法
无
更改外观
处理
忽略
文本转换
转到第一个差异
编辑输入
Diffchecker Desktop
运行Diffchecker最安全的方式。获取Diffchecker桌面应用:您的差异永远不会离开您的电脑!
获取桌面版
Untitled diff
创建于
3年前
差异永不过期
清除
导出
分享
解释
52 删除
行
总计
删除
字符
总计
删除
要继续使用此功能,请升级到
Diff
checker
Pro
查看价格
95 行
全部复制
50 添加
行
总计
添加
字符
总计
添加
要继续使用此功能,请升级到
Diff
checker
Pro
查看价格
94 行
全部复制
; Assembly listing for method Reprotest:Run(int):long (Tier0-FullOpts)
; Assembly listing for method Reprotest:Run(int):long (Tier0-FullOpts)
; Emitting BLENDED_CODE for generic ARM - Unix
; Emitting BLENDED_CODE for generic ARM - Unix
; Tier-0 switched to FullOpts code
; Tier-0 switched to FullOpts code
; optimized code
; optimized code
; r11 based frame
; r11 based frame
; fully interruptible
; fully interruptible
; No PGO data
; No PGO data
; Final local variable assignments
; Final local variable assignments
;
;
; V00 arg0 [V00,T03] ( 4, 11 ) int -> [sp+0x14] EH-live single-def
; V00 arg0 [V00,T03] ( 4, 11 ) int -> [sp+0x14] EH-live single-def
; V01 loc0 [V01,T02] ( 9, 30 ) long -> [sp+0x08] do-not-enreg[Z] EH-live
; V01 loc0 [V01,T02] ( 9, 30 ) long -> [sp+0x08] do-not-enreg[Z] EH-live
; V02 loc1 [V02,T01] ( 6, 34 ) int -> [sp+0x04] do-not-enreg[Z] EH-live
; V02 loc1 [V02,T01] ( 6, 34 ) int -> [sp+0x04] do-not-enreg[Z] EH-live
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 PSPSym [V04,T05] ( 1, 1 ) int -> [sp+0x1C] do-not-enreg[V] "PSPSym"
; V04 PSPSym [V04,T05] ( 1, 1 ) int -> [sp+0x1C] do-not-enreg[V] "PSPSym"
; V05 rat0 [V05,T00] ( 3, 48 ) int -> r2 "ReplaceWithLclVar is creating a new local variable"
; V05 rat0 [V05,T00] ( 3, 48 ) int -> r2 "ReplaceWithLclVar is creating a new local variable"
; V06 rat1 [V06,T04] ( 3, 6 ) int -> r1 "ReplaceWithLclVar is creating a new local variable"
; V06 rat1 [V06,T04] ( 3, 6 ) int -> r1 "ReplaceWithLclVar is creating a new local variable"
;
;
; Lcl frame size = 32
; Lcl frame size = 32
G_M4135_IG01: ;; offset=0x0000
G_M4135_IG01: ;; offset=0x0000
000000 push {r11,lr}
000000 push {r11,lr}
000004 sub sp, 32
000004 sub sp, 32
000006 add r11, sp, 32
000006 add r11, sp, 32
00000A add r1, sp, 40
00000A add r1, sp, 40
00000C str r1, [sp+0x1C] // [V04 PSPSym]
00000C str r1, [sp+0x1C] // [V04 PSPSym]
00000E str r0, [sp+0x14] // [V00 arg0]
00000E str r0, [sp+0x14] // [V00 arg0]
;; size=16 bbWeight=1 PerfScore 6.00
;; size=16 bbWeight=1 PerfScore 6.00
G_M4135_IG02: ;; offset=0x0010
G_M4135_IG02: ;; offset=0x0010
000010 movs r1, 0
000010 movs r1, 0
000012 movs r3, 0
000012 movs r3, 0
000014 str r1, [sp+0x08]
000014 str r1, [sp+0x08]
000016 str r3, [sp+0x0C]
000016 str r3, [sp+0x0C]
;; size=8 bbWeight=1 PerfScore 4.00
;; size=8 bbWeight=1 PerfScore 4.00
G_M4135_IG03: ;; offset=0x0018
G_M4135_IG03: ;; offset=0x0018
000018 str r1, [sp+0x04] // [V02 loc1]
000018 str r1, [sp+0x04] // [V02 loc1]
00001A cmp r0, 0
00001A cmp r0, 0
复制
已复制
复制
已复制
00001C ble SHORT G_M4135_IG0
7
00001C ble SHORT G_M4135_IG0
8
;; size=6 bbWeight=1 PerfScore 3.00
;; size=6 bbWeight=1 PerfScore 3.00
G_M4135_IG04: ;; offset=0x001E
G_M4135_IG04: ;; offset=0x001E
00001E ldr r1, [sp+0x08] // [V01 loc0]
00001E ldr r1, [sp+0x08] // [V01 loc0]
000020 ldr r3, [sp+0x0C] // [V01 loc0+0x04]
000020 ldr r3, [sp+0x0C] // [V01 loc0+0x04]
000022 ldr r2, [sp+0x04] // [V02 loc1]
000022 ldr r2, [sp+0x04] // [V02 loc1]
000024 asr lr, r2, 31
000024 asr lr, r2, 31
000028 adds r1, r1, r2
000028 adds r1, r1, r2
00002A adc r3, r3, lr
00002A adc r3, r3, lr
00002E str r1, [sp+0x08] // [V01 loc0]
00002E str r1, [sp+0x08] // [V01 loc0]
000030 str r3, [sp+0x0C] // [V01 loc0+0x04]
000030 str r3, [sp+0x0C] // [V01 loc0+0x04]
复制
已复制
复制
已复制
000032
movw lr, LOW ADDRESS G_M4135_IG06
000032
bl
G_M4135_
IG10
000036
movt lr, HIGH ADDRESS
G_M4135_
IG06
;; size=
24
bbWeight=8 PerfScore
72
.00
00003A b SHORT G_M4135_IG09
G_M4135_IG05: ;; offset=0x003
6
;; size=
30
bbWeight=8 PerfScore
88
.00
00003
6 nop
G_M4135_IG05: ;; offset=0x003
C
;; size=2 bbWeight=8 PerfScore 8.00
00003
C nop
G_M4135_IG06: ;; offset=0x0038
000038 nop
;; size=2 bbWeight=1 PerfScore 1.00
;; size=2 bbWeight=1 PerfScore 1.00
复制
已复制
复制
已复制
G_M4135_IG0
6
: ;; offset=0x003
E
G_M4135_IG0
7
: ;; offset=0x003
A
00003
E
ldr r3, [sp+0x04] // [V02 loc1]
00003
A
ldr r3, [sp+0x04] // [V02 loc1]
0000
40
adds r3, r3, 1
0000
3C
adds r3, r3, 1
0000
42
str r3, [sp+0x04] // [V02 loc1]
0000
3E
str r3, [sp+0x04] // [V02 loc1]
00004
4
ldr r3, [sp+0x04] // [V02 loc1]
00004
0
ldr r3, [sp+0x04] // [V02 loc1]
00004
6
ldr r0, [sp+0x14] // [V00 arg0]
00004
2
ldr r0, [sp+0x14] // [V00 arg0]
00004
8
cmp r3, r0
00004
4
cmp r3, r0
00004
A
blt SHORT G_M4135_IG04
00004
6
blt SHORT G_M4135_IG04
;; size=14 bbWeight=8 PerfScore 56.00
;; size=14 bbWeight=8 PerfScore 56.00
复制
已复制
复制
已复制
G_M4135_IG0
7
: ;; offset=0x004
C
G_M4135_IG0
8
: ;; offset=0x004
8
00004
C
ldr r0, [sp+0x08] // [V01 loc0]
00004
8
ldr r0, [sp+0x08] // [V01 loc0]
00004
E
ldr r1, [sp+0x0C] // [V01 loc0+0x04]
00004
A
ldr r1, [sp+0x0C] // [V01 loc0+0x04]
;; size=4 bbWeight=1 PerfScore 2.00
;; size=4 bbWeight=1 PerfScore 2.00
复制
已复制
复制
已复制
G_M4135_IG0
8
: ;; offset=0x00
50
G_M4135_IG0
9
: ;; offset=0x00
4C
0000
50
add sp, 32
0000
4C
add sp, 32
0000
52
pop {r11,pc}
0000
4E
pop {r11,pc}
;; size=6 bbWeight=1 PerfScore 2.00
;; size=6 bbWeight=1 PerfScore 2.00
复制
已复制
复制
已复制
G_M4135_IG
09
: ;; offset=0x005
6
G_M4135_IG
10
: ;; offset=0x005
2
00005
6
push {r2,r3,r11,lr}
00005
2
push {r2,r3,r11,lr}
00005
A
add r3, r11, 8
00005
6
add r3, r11, 8
00005
E
str r3, [sp+0x04]
00005
A
str r3, [sp+0x04]
;; size=10 bbWeight=1 PerfScore 3.00
;; size=10 bbWeight=1 PerfScore 3.00
复制
已复制
复制
已复制
G_M4135_IG1
0
: ;; offset=0x00
60
G_M4135_IG1
1
: ;; offset=0x00
5C
0000
60
ldr r3, [r11-0x18] // [V01 loc0]
0000
5C
ldr r3, [r11-0x18] // [V01 loc0]
00006
4
ldr r2, [r11-0x14] // [V01 loc0+0x04]
00006
0
ldr r2, [r11-0x14] // [V01 loc0+0x04]
00006
8
ldr r1, [r11-0x1C] // [V02 loc1]
00006
4
ldr r1, [r11-0x1C] // [V02 loc1]
00006
C
lsls r1, r1, 1
00006
8
lsls r1, r1, 1
00006
E
asrs r0, r1, 31
00006
A
asrs r0, r1, 31
0000
70
adds r3, r3, r1
0000
6C
adds r3, r3, r1
0000
72
adcs r2, r0
0000
6E
adcs r2, r0
00007
4
str r3, [r11-0x18] // [V01 loc0]
00007
0
str r3, [r11-0x18] // [V01 loc0]
00007
8
str r2, [r11-0x14] // [V01 loc0+0x04]
00007
4
str r2, [r11-0x14] // [V01 loc0+0x04]
;; size=28 bbWeight=1 PerfScore 9.00
;; size=28 bbWeight=1 PerfScore 9.00
复制
已复制
复制
已复制
G_M4135_IG1
1
: ;; offset=0x007
C
G_M4135_IG1
2
: ;; offset=0x007
8
00007
C
pop {r2,r3,r11,pc}
00007
8
pop {r2,r3,r11,pc}
;; size=4 bbWeight=1 PerfScore 1.00
;; size=4 bbWeight=1 PerfScore 1.00
复制
已复制
复制
已复制
; Total bytes of code 12
8
, prolog size 16, PerfScore 1
87.80
, instruction count
49
, allocated bytes for code 12
8
(MethodHash=f7a5efd8) for method Reprotest:Run(int):long (Tier0-FullOpts)
; Total bytes of code 12
4
, prolog size 16, PerfScore 1
79.40
, instruction count
48
, allocated bytes for code 12
4
(MethodHash=f7a5efd8) for method Reprotest:Run(int):long (Tier0-FullOpts)
; ============================================================
; ============================================================
复制
已复制
复制
已复制
Elapsed: 966ms
已保存差异
原始文本
打开文件
; Assembly listing for method Reprotest:Run(int):long (Tier0-FullOpts) ; Emitting BLENDED_CODE for generic ARM - Unix ; Tier-0 switched to FullOpts code ; optimized code ; r11 based frame ; fully interruptible ; No PGO data ; Final local variable assignments ; ; V00 arg0 [V00,T03] ( 4, 11 ) int -> [sp+0x14] EH-live single-def ; V01 loc0 [V01,T02] ( 9, 30 ) long -> [sp+0x08] do-not-enreg[Z] EH-live ; V02 loc1 [V02,T01] ( 6, 34 ) int -> [sp+0x04] do-not-enreg[Z] EH-live ;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V04 PSPSym [V04,T05] ( 1, 1 ) int -> [sp+0x1C] do-not-enreg[V] "PSPSym" ; V05 rat0 [V05,T00] ( 3, 48 ) int -> r2 "ReplaceWithLclVar is creating a new local variable" ; V06 rat1 [V06,T04] ( 3, 6 ) int -> r1 "ReplaceWithLclVar is creating a new local variable" ; ; Lcl frame size = 32 G_M4135_IG01: ;; offset=0x0000 000000 push {r11,lr} 000004 sub sp, 32 000006 add r11, sp, 32 00000A add r1, sp, 40 00000C str r1, [sp+0x1C] // [V04 PSPSym] 00000E str r0, [sp+0x14] // [V00 arg0] ;; size=16 bbWeight=1 PerfScore 6.00 G_M4135_IG02: ;; offset=0x0010 000010 movs r1, 0 000012 movs r3, 0 000014 str r1, [sp+0x08] 000016 str r3, [sp+0x0C] ;; size=8 bbWeight=1 PerfScore 4.00 G_M4135_IG03: ;; offset=0x0018 000018 str r1, [sp+0x04] // [V02 loc1] 00001A cmp r0, 0 00001C ble SHORT G_M4135_IG07 ;; size=6 bbWeight=1 PerfScore 3.00 G_M4135_IG04: ;; offset=0x001E 00001E ldr r1, [sp+0x08] // [V01 loc0] 000020 ldr r3, [sp+0x0C] // [V01 loc0+0x04] 000022 ldr r2, [sp+0x04] // [V02 loc1] 000024 asr lr, r2, 31 000028 adds r1, r1, r2 00002A adc r3, r3, lr 00002E str r1, [sp+0x08] // [V01 loc0] 000030 str r3, [sp+0x0C] // [V01 loc0+0x04] 000032 movw lr, LOW ADDRESS G_M4135_IG06 000036 movt lr, HIGH ADDRESS G_M4135_IG06 00003A b SHORT G_M4135_IG09 ;; size=30 bbWeight=8 PerfScore 88.00 G_M4135_IG05: ;; offset=0x003C 00003C nop ;; size=2 bbWeight=1 PerfScore 1.00 G_M4135_IG06: ;; offset=0x003E 00003E ldr r3, [sp+0x04] // [V02 loc1] 000040 adds r3, r3, 1 000042 str r3, [sp+0x04] // [V02 loc1] 000044 ldr r3, [sp+0x04] // [V02 loc1] 000046 ldr r0, [sp+0x14] // [V00 arg0] 000048 cmp r3, r0 00004A blt SHORT G_M4135_IG04 ;; size=14 bbWeight=8 PerfScore 56.00 G_M4135_IG07: ;; offset=0x004C 00004C ldr r0, [sp+0x08] // [V01 loc0] 00004E ldr r1, [sp+0x0C] // [V01 loc0+0x04] ;; size=4 bbWeight=1 PerfScore 2.00 G_M4135_IG08: ;; offset=0x0050 000050 add sp, 32 000052 pop {r11,pc} ;; size=6 bbWeight=1 PerfScore 2.00 G_M4135_IG09: ;; offset=0x0056 000056 push {r2,r3,r11,lr} 00005A add r3, r11, 8 00005E str r3, [sp+0x04] ;; size=10 bbWeight=1 PerfScore 3.00 G_M4135_IG10: ;; offset=0x0060 000060 ldr r3, [r11-0x18] // [V01 loc0] 000064 ldr r2, [r11-0x14] // [V01 loc0+0x04] 000068 ldr r1, [r11-0x1C] // [V02 loc1] 00006C lsls r1, r1, 1 00006E asrs r0, r1, 31 000070 adds r3, r3, r1 000072 adcs r2, r0 000074 str r3, [r11-0x18] // [V01 loc0] 000078 str r2, [r11-0x14] // [V01 loc0+0x04] ;; size=28 bbWeight=1 PerfScore 9.00 G_M4135_IG11: ;; offset=0x007C 00007C pop {r2,r3,r11,pc} ;; size=4 bbWeight=1 PerfScore 1.00 ; Total bytes of code 128, prolog size 16, PerfScore 187.80, instruction count 49, allocated bytes for code 128 (MethodHash=f7a5efd8) for method Reprotest:Run(int):long (Tier0-FullOpts) ; ============================================================ Elapsed: 966ms
更改后文本
打开文件
; Assembly listing for method Reprotest:Run(int):long (Tier0-FullOpts) ; Emitting BLENDED_CODE for generic ARM - Unix ; Tier-0 switched to FullOpts code ; optimized code ; r11 based frame ; fully interruptible ; No PGO data ; Final local variable assignments ; ; V00 arg0 [V00,T03] ( 4, 11 ) int -> [sp+0x14] EH-live single-def ; V01 loc0 [V01,T02] ( 9, 30 ) long -> [sp+0x08] do-not-enreg[Z] EH-live ; V02 loc1 [V02,T01] ( 6, 34 ) int -> [sp+0x04] do-not-enreg[Z] EH-live ;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V04 PSPSym [V04,T05] ( 1, 1 ) int -> [sp+0x1C] do-not-enreg[V] "PSPSym" ; V05 rat0 [V05,T00] ( 3, 48 ) int -> r2 "ReplaceWithLclVar is creating a new local variable" ; V06 rat1 [V06,T04] ( 3, 6 ) int -> r1 "ReplaceWithLclVar is creating a new local variable" ; ; Lcl frame size = 32 G_M4135_IG01: ;; offset=0x0000 000000 push {r11,lr} 000004 sub sp, 32 000006 add r11, sp, 32 00000A add r1, sp, 40 00000C str r1, [sp+0x1C] // [V04 PSPSym] 00000E str r0, [sp+0x14] // [V00 arg0] ;; size=16 bbWeight=1 PerfScore 6.00 G_M4135_IG02: ;; offset=0x0010 000010 movs r1, 0 000012 movs r3, 0 000014 str r1, [sp+0x08] 000016 str r3, [sp+0x0C] ;; size=8 bbWeight=1 PerfScore 4.00 G_M4135_IG03: ;; offset=0x0018 000018 str r1, [sp+0x04] // [V02 loc1] 00001A cmp r0, 0 00001C ble SHORT G_M4135_IG08 ;; size=6 bbWeight=1 PerfScore 3.00 G_M4135_IG04: ;; offset=0x001E 00001E ldr r1, [sp+0x08] // [V01 loc0] 000020 ldr r3, [sp+0x0C] // [V01 loc0+0x04] 000022 ldr r2, [sp+0x04] // [V02 loc1] 000024 asr lr, r2, 31 000028 adds r1, r1, r2 00002A adc r3, r3, lr 00002E str r1, [sp+0x08] // [V01 loc0] 000030 str r3, [sp+0x0C] // [V01 loc0+0x04] 000032 bl G_M4135_IG10 ;; size=24 bbWeight=8 PerfScore 72.00 G_M4135_IG05: ;; offset=0x0036 000036 nop ;; size=2 bbWeight=8 PerfScore 8.00 G_M4135_IG06: ;; offset=0x0038 000038 nop ;; size=2 bbWeight=1 PerfScore 1.00 G_M4135_IG07: ;; offset=0x003A 00003A ldr r3, [sp+0x04] // [V02 loc1] 00003C adds r3, r3, 1 00003E str r3, [sp+0x04] // [V02 loc1] 000040 ldr r3, [sp+0x04] // [V02 loc1] 000042 ldr r0, [sp+0x14] // [V00 arg0] 000044 cmp r3, r0 000046 blt SHORT G_M4135_IG04 ;; size=14 bbWeight=8 PerfScore 56.00 G_M4135_IG08: ;; offset=0x0048 000048 ldr r0, [sp+0x08] // [V01 loc0] 00004A ldr r1, [sp+0x0C] // [V01 loc0+0x04] ;; size=4 bbWeight=1 PerfScore 2.00 G_M4135_IG09: ;; offset=0x004C 00004C add sp, 32 00004E pop {r11,pc} ;; size=6 bbWeight=1 PerfScore 2.00 G_M4135_IG10: ;; offset=0x0052 000052 push {r2,r3,r11,lr} 000056 add r3, r11, 8 00005A str r3, [sp+0x04] ;; size=10 bbWeight=1 PerfScore 3.00 G_M4135_IG11: ;; offset=0x005C 00005C ldr r3, [r11-0x18] // [V01 loc0] 000060 ldr r2, [r11-0x14] // [V01 loc0+0x04] 000064 ldr r1, [r11-0x1C] // [V02 loc1] 000068 lsls r1, r1, 1 00006A asrs r0, r1, 31 00006C adds r3, r3, r1 00006E adcs r2, r0 000070 str r3, [r11-0x18] // [V01 loc0] 000074 str r2, [r11-0x14] // [V01 loc0+0x04] ;; size=28 bbWeight=1 PerfScore 9.00 G_M4135_IG12: ;; offset=0x0078 000078 pop {r2,r3,r11,pc} ;; size=4 bbWeight=1 PerfScore 1.00 ; Total bytes of code 124, prolog size 16, PerfScore 179.40, instruction count 48, allocated bytes for code 124 (MethodHash=f7a5efd8) for method Reprotest:Run(int):long (Tier0-FullOpts) ; ============================================================
查找差异