Untitled Diff
17 removals
Words removed | 21 |
Total words | 424 |
Words removed (%) | 4.95 |
84 lines
15 additions
Words added | 20 |
Total words | 423 |
Words added (%) | 4.73 |
83 lines
; Assembly listing for method <PrivateImplementationDetails>:ComputeStringHash(System.String):int
; Assembly listing for method <PrivateImplementationDetails>:ComputeStringHash(System.String):int
; Emitting BLENDED_CODE for generic ARM64 CPU - Unix
; Emitting BLENDED_CODE for generic ARM64 CPU - Unix
; optimized code
; optimized code
; fp based frame
; fp based frame
; fully interruptible
; fully interruptible
; No matching PGO data
; No matching PGO data
; Final local variable assignments
; Final local variable assignments
;
;
; V00 arg0 [V00,T01] ( 5, 7.50) ref -> x0 class-hnd single-def
; V00 arg0 [V00,T01] ( 5, 7.50) ref -> x0 class-hnd single-def
; V01 loc0 [V01,T02] ( 4, 9.50) int -> x1 must-init
; V01 loc0 [V01,T02] ( 4, 9.50) int -> x1 must-init
; V02 loc1 [V02,T00] ( 5, 16.50) int -> x2
; V02 loc1 [V02,T00] ( 5, 16.50) int -> x2
;# V03 OutArgs [V03 ] ( 1, 1 ) lclBlk ( 0) [sp+00H] "OutgoingArgSpace"
;# V03 OutArgs [V03 ] ( 1, 1 ) lclBlk ( 0) [sp+00H] "OutgoingArgSpace"
; V04 cse0 [V04,T04] ( 2, 4.50) int -> x4 "CSE - aggressive"
; V04 cse0 [V04,T04] ( 2, 4.50) int -> x4 "CSE - aggressive"
; V05 cse1 [V05,T03] ( 3, 5 ) int -> x3 "CSE - aggressive"
; V05 cse1 [V05,T03] ( 3, 5 ) int -> x3 "CSE - aggressive"
;
;
; Lcl frame size = 0
; Lcl frame size = 0
G_M61339_IG01: ; gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
G_M61339_IG01: ; gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp,#-16]!
stp fp, lr, [sp,#-16]!
mov fp, sp
mov fp, sp
mov x1, #0
mov x1, #0
;; bbWeight=1 PerfScore 2.00
;; bbWeight=1 PerfScore 2.00
G_M61339_IG02: ; gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
G_M61339_IG02: ; gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0]
; gcrRegs +[x0]
cbz x0, G_M61339_IG05
cbz x0, G_M61339_IG05
;; bbWeight=1 PerfScore 1.00
;; bbWeight=1 PerfScore 1.00
G_M61339_IG03: ; gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
G_M61339_IG03: ; gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz, align
movz w1, #0xd1ffab1e
movz w1, #0xd1ffab1e
movk w1, #0xd1ffab1e LSL #16
movk w1, #0xd1ffab1e LSL #16
mov w2, wzr
mov w2, wzr
ldr w3, [x0,#8]
ldr w3, [x0,#8]
cmp w3, #0
cmp w3, #0
ble G_M61339_IG05
ble G_M61339_IG05
movz w4, #0xd1ffab1e
movz w4, #0xd1ffab1e
movk w4, #0xd1ffab1e LSL #16
movk w4, #0xd1ffab1e LSL #16
align [0 bytes]
align [4 bytes]
align [0 bytes]
align [4 bytes]
align [0 bytes]
align [4 bytes]
align [0 bytes]
align [4 bytes]
;; bbWeight=0.50 PerfScore 3.50
;; bbWeight=0.50 PerfScore 4.50
G_M61339_IG04: ; gcrefRegs=0001 {x0}, byrefRegs=0000 {}, loop=IG04, byref, isz
G_M61339_IG04: ; gcrefRegs=0001 {x0}, byrefRegs=0000 {}, loop=IG04, byref, isz
mov w5, w2
ubfiz x5, x2, #1, #32
lsl x5, x5, #1
add x5, x5, #12
add x5, x5, #12
ldrh w5, [x0, x5]
ldrh w5, [x0, x5]
eor w1, w5, w1
eor w1, w5, w1
mul w1, w1, w4
mul w1, w1, w4
add w2, w2, #1
add w2, w2, #1
cmp w3, w2
cmp w3, w2
bgt G_M61339_IG04
bgt G_M61339_IG04
;; bbWeight=4 PerfScore 38.00
;; bbWeight=4 PerfScore 36.00
G_M61339_IG05: ; gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
G_M61339_IG05: ; gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
; gcrRegs -[x0]
mov w0, w1
mov w0, w1
;; bbWeight=1 PerfScore 0.50
;; bbWeight=1 PerfScore 0.50
G_M61339_IG06: ; , epilog, nogc, extend
G_M61339_IG06: ; , epilog, nogc, extend
ldp fp, lr, [sp],#16
ldp fp, lr, [sp],#16
ret lr
ret lr
;; bbWeight=1 PerfScore 2.00
;; bbWeight=1 PerfScore 2.00
; Total bytes of code 96, prolog size 12, PerfScore 56.60, instruction count 28, allocated bytes for code 96 (MethodHash=d7591064) for method <PrivateImplementationDetails>:ComputeStringHash(System.String):int
; Total bytes of code 108, prolog size 12, PerfScore 56.80, instruction count 27, allocated bytes for code 108 (MethodHash=d7591064) for method <PrivateImplementationDetails>:ComputeStringHash(System.String):int
; ============================================================
; ============================================================
Unwind Info:
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
Code Words : 1
Code Words : 1
Epilog Count : 1
Epilog Count : 1
E bit : 0
E bit : 0
X bit : 0
X bit : 0
Vers : 0
Vers : 0
Function Length : 24 (0x00018) Actual length = 96 (0x000060)
Function Length : 27 (0x0001b) Actual length = 108 (0x00006c)
---- Epilog scopes ----
---- Epilog scopes ----
---- Scope 0
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
Epilog Start Index : 1 (0x01)
Epilog Start Index : 1 (0x01)
---- Unwind codes ----
---- Unwind codes ----
E1 set_fp; mov fp, sp
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
---- Epilog start at index 1 ----
81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end
E4 end
E4 end
E4 end