Untitled Diff
57 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
; ============================================================
; ============================================================