Untitled diff

Erstellt Diff läuft nie ab
52 Entfernungen
95 Zeilen
50 Hinzufügungen
94 Zeilen
; 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_IG07
00001C ble SHORT G_M4135_IG08
;; 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=0x0036
;; size=30 bbWeight=8 PerfScore 88.00
000036 nop
G_M4135_IG05: ;; offset=0x003C
;; size=2 bbWeight=8 PerfScore 8.00
00003C nop
G_M4135_IG06: ;; offset=0x0038
000038 nop
;; size=2 bbWeight=1 PerfScore 1.00
;; size=2 bbWeight=1 PerfScore 1.00
G_M4135_IG06: ;; offset=0x003E
G_M4135_IG07: ;; offset=0x003A
00003E ldr r3, [sp+0x04] // [V02 loc1]
00003A ldr r3, [sp+0x04] // [V02 loc1]
000040 adds r3, r3, 1
00003C adds r3, r3, 1
000042 str r3, [sp+0x04] // [V02 loc1]
00003E str r3, [sp+0x04] // [V02 loc1]
000044 ldr r3, [sp+0x04] // [V02 loc1]
000040 ldr r3, [sp+0x04] // [V02 loc1]
000046 ldr r0, [sp+0x14] // [V00 arg0]
000042 ldr r0, [sp+0x14] // [V00 arg0]
000048 cmp r3, r0
000044 cmp r3, r0
00004A blt SHORT G_M4135_IG04
000046 blt SHORT G_M4135_IG04
;; size=14 bbWeight=8 PerfScore 56.00
;; size=14 bbWeight=8 PerfScore 56.00
G_M4135_IG07: ;; offset=0x004C
G_M4135_IG08: ;; offset=0x0048
00004C ldr r0, [sp+0x08] // [V01 loc0]
000048 ldr r0, [sp+0x08] // [V01 loc0]
00004E ldr r1, [sp+0x0C] // [V01 loc0+0x04]
00004A ldr r1, [sp+0x0C] // [V01 loc0+0x04]
;; size=4 bbWeight=1 PerfScore 2.00
;; size=4 bbWeight=1 PerfScore 2.00
G_M4135_IG08: ;; offset=0x0050
G_M4135_IG09: ;; offset=0x004C
000050 add sp, 32
00004C add sp, 32
000052 pop {r11,pc}
00004E pop {r11,pc}
;; size=6 bbWeight=1 PerfScore 2.00
;; size=6 bbWeight=1 PerfScore 2.00
G_M4135_IG09: ;; offset=0x0056
G_M4135_IG10: ;; offset=0x0052
000056 push {r2,r3,r11,lr}
000052 push {r2,r3,r11,lr}
00005A add r3, r11, 8
000056 add r3, r11, 8
00005E str r3, [sp+0x04]
00005A str r3, [sp+0x04]
;; size=10 bbWeight=1 PerfScore 3.00
;; size=10 bbWeight=1 PerfScore 3.00
G_M4135_IG10: ;; offset=0x0060
G_M4135_IG11: ;; offset=0x005C
000060 ldr r3, [r11-0x18] // [V01 loc0]
00005C ldr r3, [r11-0x18] // [V01 loc0]
000064 ldr r2, [r11-0x14] // [V01 loc0+0x04]
000060 ldr r2, [r11-0x14] // [V01 loc0+0x04]
000068 ldr r1, [r11-0x1C] // [V02 loc1]
000064 ldr r1, [r11-0x1C] // [V02 loc1]
00006C lsls r1, r1, 1
000068 lsls r1, r1, 1
00006E asrs r0, r1, 31
00006A asrs r0, r1, 31
000070 adds r3, r3, r1
00006C adds r3, r3, r1
000072 adcs r2, r0
00006E adcs r2, r0
000074 str r3, [r11-0x18] // [V01 loc0]
000070 str r3, [r11-0x18] // [V01 loc0]
000078 str r2, [r11-0x14] // [V01 loc0+0x04]
000074 str r2, [r11-0x14] // [V01 loc0+0x04]
;; size=28 bbWeight=1 PerfScore 9.00
;; size=28 bbWeight=1 PerfScore 9.00
G_M4135_IG11: ;; offset=0x007C
G_M4135_IG12: ;; offset=0x0078
00007C pop {r2,r3,r11,pc}
000078 pop {r2,r3,r11,pc}
;; size=4 bbWeight=1 PerfScore 1.00
;; 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)
; 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)
; ============================================================
; ============================================================

Elapsed: 966ms