Untitled Diff

Created Diff never expires
23 removals
Lines
Total
Removed
Words
Total
Removed
To continue using this feature, upgrade to
Diffchecker logo
Diffchecker Pro
57 lines
21 additions
Lines
Total
Added
Words
Total
Added
To continue using this feature, upgrade to
Diffchecker logo
Diffchecker Pro
56 lines
; Assembly listing for method System.Threading.SpinLock:Exit(bool):this
; Assembly listing for method System.Threading.SpinLock:Exit(bool):this
; Emitting BLENDED_CODE for generic ARM64 CPU - Unix
; Emitting BLENDED_CODE for generic ARM64 CPU - Unix
; Tier-1 compilation
; Tier-1 compilation
; optimized code
; optimized code
; optimized using profile data
; optimized using profile data
; fp based frame
; fp based frame
; fully interruptible
; fully interruptible
; with PGO: edge weights are invalid, and fgCalledCount is 66
; with PGO: edge weights are invalid, and fgCalledCount is 66
; Final local variable assignments
; Final local variable assignments
;
;
; V00 this [V00,T00] ( 5, 3.45) byref -> x0 this single-def
; V00 this [V00,T00] ( 5, 3.45) byref -> x0 this single-def
; V01 arg1 [V01,T01] ( 3, 3 ) bool -> x1 single-def
; V01 arg1 [V01,T01] ( 3, 3 ) bool -> x1 single-def
; V02 loc0 [V02,T03] ( 3, 2 ) int -> x19
; V02 loc0 [V02,T03] ( 3, 2 ) int -> x19
;# V03 OutArgs [V03 ] ( 1, 1 ) lclBlk ( 0) [sp+00H] "OutgoingArgSpace"
;# V03 OutArgs [V03 ] ( 1, 1 ) lclBlk ( 0) [sp+00H] "OutgoingArgSpace"
; V04 cse0 [V04,T02] ( 3, 2.45) int -> x1 "CSE - stress mode"
; V04 cse0 [V04,T02] ( 3, 2.45) int -> x1 "CSE - stress mode"
;
;
; Lcl frame size = 8
; Lcl frame size = 8


G_M57783_IG01: ;; offset=0000H
G_M57783_IG01: ;; offset=0000H
A9BE7BFD stp fp, lr, [sp,#-32]!
A9BE7BFD stp fp, lr, [sp,#-32]!
F9000FF3 str x19, [sp,#24]
F9000FF3 str x19, [sp,#24]
910003FD mov fp, sp
910003FD mov fp, sp
;; size=12 bbWeight=1 PerfScore 2.50
;; size=12 bbWeight=1 PerfScore 2.50
G_M57783_IG02: ;; offset=000CH
G_M57783_IG02: ;; offset=000CH
88DFFC13 ldar w19, [x0]
88DFFC13 ldar w19, [x0]
53001C21 uxtb w1, w1
53001C21 uxtb w1, w1
52B00002 mov w2, #0x80000000
7100003F cmp w1, #0
7100003F cmp w1, #0
9A9F17E2 cset x2, eq
7A420264 ccmp w19, w2, z, eq
7201027F tst w19, #0x80000000
9A9F07E2 cset x2, ne
9A9F07E3 cset x3, ne
35000162 cbnz w2, G_M57783_IG06
6A03005F tst w2, w3
;; size=28 bbWeight=1 PerfScore 6.50
54000161 bne G_M57783_IG06
G_M57783_IG03: ;; offset=0028H
;; size=32 bbWeight=1 PerfScore 7.00
D296C302 movz x2, #0xb618 // code for System.Threading.SpinLock:ExitSlowPath
G_M57783_IG03: ;; offset=002CH
F2AC3E42 movk x2, #0x61f2 LSL #16
D28F4D02 movz x2, #0x7a68 // code for System.Threading.SpinLock:ExitSlowPath
F2A88C22 movk x2, #0x4461 LSL #16
F2DFFFE2 movk x2, #0xffff LSL #32
F2DFFFE2 movk x2, #0xffff LSL #32
F9400042 ldr x2, [x2]
F9400042 ldr x2, [x2]
;; size=16 bbWeight=0.45 PerfScore 2.05
;; size=16 bbWeight=0.45 PerfScore 2.05
G_M57783_IG04: ;; offset=003CH
G_M57783_IG04: ;; offset=0038H
F9400FF3 ldr x19, [sp,#24]
F9400FF3 ldr x19, [sp,#24]
A8C27BFD ldp fp, lr, [sp],#32
A8C27BFD ldp fp, lr, [sp],#32
D61F0040 br x2
D61F0040 br x2
;; size=12 bbWeight=0.45 PerfScore 1.82
;; size=12 bbWeight=0.45 PerfScore 1.82
G_M57783_IG05: ;; offset=0048H
G_M57783_IG05: ;; offset=0044H
F9400FF3 ldr x19, [sp,#24]
F9400FF3 ldr x19, [sp,#24]
A8C27BFD ldp fp, lr, [sp],#32
A8C27BFD ldp fp, lr, [sp],#32
D65F03C0 ret lr
D65F03C0 ret lr
;; size=12 bbWeight=0 PerfScore 0.00
;; size=12 bbWeight=0 PerfScore 0.00
G_M57783_IG06: ;; offset=0054H
G_M57783_IG06: ;; offset=0050H
121F7A61 and w1, w19, #0xfffffffe
121F7A61 and w1, w19, #0xfffffffe
889FFC01 stlr w1, [x0]
889FFC01 stlr w1, [x0]
17FFFFFB b G_M57783_IG05
17FFFFFB b G_M57783_IG05
;; size=12 bbWeight=0 PerfScore 0.00
;; size=12 bbWeight=0 PerfScore 0.00


; Total bytes of code 96, prolog size 12, PerfScore 22.96, instruction count 24, allocated bytes for code 96 (MethodHash=9f381e48) for method System.Threading.SpinLock:Exit(bool):this
; Total bytes of code 92, prolog size 12, PerfScore 22.06, instruction count 23, allocated bytes for code 92 (MethodHash=9f381e48) for method System.Threading.SpinLock:Exit(bool):this
; ============================================================
; ============================================================