28 (4.96 % of base) - System.Collections.Concurrent.ConcurrentStack`1[double]:TryPopCore(int,byref):int:this
; Assembly listing for method System.Collections.Concurrent.ConcurrentStack`1[double]:TryPopCore(int,byref):int:this (FullOpts)
; Emitting BLENDED_CODE for generic ARM64 - Unix
; FullOpts code
; optimized code
; fp based frame
; fully interruptible
; No PGO data
; 0 inlinees with PGO data; 12 single block inlinees; 9 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T10] ( 4, 14 ) ref -> x20 this class-hnd single-def <System.Collections.Concurrent.ConcurrentStack`1[double]>
; V01 arg1 [V01,T03] ( 5, 35 ) int -> x19 single-def
; V02 arg2 [V02,T15] ( 4, 3 ) byref -> x21 single-def
; V03 loc0 [V03 ] ( 5, 22 ) struct ( 8) [fp+0x18] do-not-enreg[XS] addr-exposed ld-addr-op <System.Threading.SpinWait>
; V04 loc1 [V04,T06] ( 6, 28.50) ref -> x23 class-hnd exact <System.Collections.Concurrent.ConcurrentStack`1+Node[double]>
; V05 loc2 [V05,T04] ( 4, 32 ) ref -> x1 class-hnd <System.Collections.Concurrent.ConcurrentStack`1+Node[double]>
; V06 loc3 [V06,T09] ( 6, 18 ) int -> x22
; V07 loc4 [V07,T00] ( 5, 52.50) int -> x24
;* V08 loc5 [V08,T16] ( 0, 0 ) int -> zero-ref
;# V09 OutArgs [V09 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V10 tmp1 [V10,T13] ( 5, 5 ) ref -> x20 class-hnd exact "impAppendStmt" <System.Collections.Concurrent.CDSCollectionETWBCLProvider>
; V11 tmp2 [V11,T14] ( 5, 5 ) ref -> x19 class-hnd exact "impAppendStmt" <System.Collections.Concurrent.CDSCollectionETWBCLProvider>
;* V12 tmp3 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Concurrent.CDSCollectionETWBCLProvider>
; V13 tmp4 [V13,T18] ( 2, 2 ) int -> x20 "Inlining Arg"
;* V14 tmp5 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V15 tmp6 [V15,T11] ( 2, 16 ) byref -> x0 "Inlining Arg"
; V16 tmp7 [V16,T12] ( 2, 16 ) ref -> x1 class-hnd exact "Inlining Arg" <System.Collections.Concurrent.ConcurrentStack`1+Node[double]>
;* V17 tmp8 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Concurrent.CDSCollectionETWBCLProvider>
; V18 tmp9 [V18,T19] ( 2, 2 ) int -> x19 "Inlining Arg"
;* V19 tmp10 [V19 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V20 tmp11 [V20,T05] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V21 tmp12 [V21 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
;* V22 tmp13 [V22 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V23 tmp14 [V23 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V24 tmp15 [V24 ] ( 5, 22 ) int -> [fp+0x18] do-not-enreg[X] addr-exposed "field V03._count (fldOffset=0x0)" P-DEP
;* V25 tmp16 [V25 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
; V26 tmp17 [V26,T07] ( 3, 24 ) ref -> x0 "argument with side effect"
; V27 cse0 [V27,T20] ( 3, 1.50) int -> x1 "CSE #05: moderate"
; V28 cse1 [V28,T21] ( 3, 1.50) int -> x1 "CSE #06: moderate"
; V29 cse2 [V29,T17] ( 6, 3 ) ref -> x20 multi-def "CSE #04: moderate"
; V30 cse3 [V30,T02] ( 5, 48 ) ref -> x2 multi-def "CSE #01: aggressive"
; V31 cse4 [V31,T08] ( 3, 20 ) byref -> x0 "CSE #02: aggressive"
; V32 rat0 [V32,T01] ( 4, 49 ) int -> x23 "Trip count IV"
;
; Lcl frame size = 16
G_M776_IG01:
stp fp, lr, [sp, #-0x50]!
stp x19, x20, [sp, #0x20]
stp x21, x22, [sp, #0x30]
stp x23, x24, [sp, #0x40]
mov fp, sp
mov x20, x0
mov w19, w1
mov x21, x2
;; size=32 bbWeight=1 PerfScore 6.00
G_M776_IG02:
str wzr, [fp, #0x18] // [V03 loc0]
mov w22, #1
b G_M776_IG04
- align [0 bytes for IG06]
- align [0 bytes]
- align [0 bytes]
- align [0 bytes]
- ;; size=12 bbWeight=1 PerfScore 2.50
+ align [4 bytes for IG06]
+ align [4 bytes]
+ align [4 bytes]
+ align [4 bytes]
+ ;; size=28 bbWeight=1 PerfScore 2.50
G_M776_IG03:
movz x0, #0xD1FFAB1E // data for System.Random:<Shared>k__BackingField
+ movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
mov w1, #1
mov w2, #8
ldr x3, [x0]
ldr x3, [x3, #0x40]
ldr x3, [x3, #0x30]
blr x3
sxtw w22, w0
- ;; size=40 bbWeight=4 PerfScore 62.00
+ ;; size=44 bbWeight=4 PerfScore 64.00
G_M776_IG04:
add x0, x20, #8
ldapr x23, [x0]
cbz x23, G_M776_IG17
;; size=12 bbWeight=8 PerfScore 36.00
G_M776_IG05:
mov x1, x23
mov w24, #1
b G_M776_IG07
;; size=12 bbWeight=4 PerfScore 8.00
G_M776_IG06:
mov x1, x2
add w24, w24, #1
;; size=8 bbWeight=8 PerfScore 8.00
G_M776_IG07:
cmp w24, w19
bge G_M776_IG09
;; size=8 bbWeight=32 PerfScore 48.00
G_M776_IG08:
ldr x2, [x1, #0x08]
cbnz x2, G_M776_IG06
;; size=8 bbWeight=16 PerfScore 64.00
G_M776_IG09:
ldrsb wzr, [x20]
ldr x2, [x1, #0x08]
mov x1, x2
mov x2, x23
bl System.Threading.Interlocked:CompareExchangeObject(byref,System.Object,System.Object):System.Object
cmp x0, x23
beq G_M776_IG14
cmp w22, #0
ble G_M776_IG12
;; size=36 bbWeight=4 PerfScore 44.00
G_M776_IG10:
sxtw w23, w22
;; size=4 bbWeight=1 PerfScore 0.50
G_M776_IG11:
add x0, fp, #24 // [V03 loc0]
movn w1, #0
movz x2, #0xD1FFAB1E // code for System.Threading.SpinWait:SpinOnceCore(int):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
sub w23, w23, #1
cbnz w23, G_M776_IG11
;; size=36 bbWeight=16 PerfScore 128.00
G_M776_IG12:
ldr w0, [fp, #0x18] // [V24 tmp15]
cmp w0, #10
blt G_M776_IG13
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldapr w0, [x0]
tbnz w0, #0, G_M776_IG03
b G_M776_IG20
;; size=36 bbWeight=4 PerfScore 40.00
G_M776_IG13:
lsl w22, w22, #1
b G_M776_IG04
;; size=8 bbWeight=4 PerfScore 8.00
G_M776_IG14:
cmp w19, #1
bne G_M776_IG15
movz x1, #0xD1FFAB1E
+ movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x20, [x1]
ldrb w1, [x20, #0x9D]
cbz w1, G_M776_IG15
ldr w19, [fp, #0x18] // [V24 tmp15]
ldr x3, [x20, #0x80]
ldr w2, [x20, #0x98]
mov x0, x20
mov w4, #3
movn x5, #0
mov w6, wzr
movz x7, #0xD1FFAB1E // code for System.Diagnostics.Tracing.EventSource:IsEnabledCommon(ubyte,int,long,int,long,ubyte):ubyte:this
movk x7, #0xD1FFAB1E LSL #16
movk x7, #0xD1FFAB1E LSL #32
ldr x7, [x7]
blr x7
cbz w0, G_M776_IG15
mov x0, x20
mov w2, w19
mov w1, #2
movz x3, #0xD1FFAB1E // code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,int):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
- ;; size=112 bbWeight=0.50 PerfScore 16.50
+ ;; size=116 bbWeight=0.50 PerfScore 16.75
G_M776_IG15:
mov x14, x21
mov x15, x23
bl CORINFO_HELP_CHECKED_ASSIGN_REF
mov w0, w24
;; size=16 bbWeight=0.50 PerfScore 1.25
G_M776_IG16:
ldp x23, x24, [sp, #0x40]
ldp x21, x22, [sp, #0x30]
ldp x19, x20, [sp, #0x20]
ldp fp, lr, [sp], #0x50
ret lr
;; size=20 bbWeight=0.50 PerfScore 2.50
G_M776_IG17:
cmp w19, #1
bne G_M776_IG18
movz x1, #0xD1FFAB1E
+ movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x20, [x1]
ldrb w1, [x20, #0x9D]
cbz w1, G_M776_IG18
mov x19, x20
ldr w20, [fp, #0x18] // [V24 tmp15]
ldr x3, [x19, #0x80]
ldr w2, [x19, #0x98]
mov x0, x19
mov w4, #3
movn x5, #0
mov w6, wzr
movz x7, #0xD1FFAB1E // code for System.Diagnostics.Tracing.EventSource:IsEnabledCommon(ubyte,int,long,int,long,ubyte):ubyte:this
movk x7, #0xD1FFAB1E LSL #16
movk x7, #0xD1FFAB1E LSL #32
ldr x7, [x7]
blr x7
cbz w0, G_M776_IG18
mov x0, x19
mov w2, w20
mov w1, #2
movz x3, #0xD1FFAB1E // code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,int):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
- ;; size=116 bbWeight=0.50 PerfScore 16.75
+ ;; size=120 bbWeight=0.50 PerfScore 17.00
G_M776_IG18:
str xzr, [x21]
mov w0, wzr
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M776_IG19:
ldp x23, x24, [sp, #0x40]
ldp x21, x22, [sp, #0x30]
ldp x19, x20, [sp, #0x20]
ldp fp, lr, [sp], #0x50
ret lr
;; size=20 bbWeight=0.50 PerfScore 2.50
G_M776_IG20:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M776_IG03
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 564, prolog size 32, PerfScore 495.25, instruction count 145, allocated bytes for code 564 (MethodHash=c878fcf7) for method System.Collections.Concurrent.ConcurrentStack`1[double]:TryPopCore(int,byref):int:this (FullOpts)
+; Total bytes of code 592, prolog size 32, PerfScore 497.75, instruction count 148, allocated bytes for code 592 (MethodHash=c878fcf7) for method System.Collections.Concurrent.ConcurrentStack`1[double]:TryPopCore(int,byref):int:this (FullOpts)
; ============================================================
28 (4.96 % of base) - System.Collections.Concurrent.ConcurrentStack`1[int]:TryPopCore(int,byref):int:this
; Assembly listing for method System.Collections.Concurrent.ConcurrentStack`1[int]:TryPopCore(int,byref):int:this (FullOpts)
; Emitting BLENDED_CODE for generic ARM64 - Unix
; FullOpts code
; optimized code
; fp based frame
; fully interruptible
; No PGO data
; 0 inlinees with PGO data; 12 single block inlinees; 9 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T10] ( 4, 14 ) ref -> x20 this class-hnd single-def <System.Collections.Concurrent.ConcurrentStack`1[int]>
; V01 arg1 [V01,T03] ( 5, 35 ) int -> x19 single-def
; V02 arg2 [V02,T15] ( 4, 3 ) byref -> x21 single-def
; V03 loc0 [V03 ] ( 5, 22 ) struct ( 8) [fp+0x18] do-not-enreg[XS] addr-exposed ld-addr-op <System.Threading.SpinWait>
; V04 loc1 [V04,T06] ( 6, 28.50) ref -> x23 class-hnd exact <System.Collections.Concurrent.ConcurrentStack`1+Node[int]>
; V05 loc2 [V05,T04] ( 4, 32 ) ref -> x1 class-hnd <System.Collections.Concurrent.ConcurrentStack`1+Node[int]>
; V06 loc3 [V06,T09] ( 6, 18 ) int -> x22
; V07 loc4 [V07,T00] ( 5, 52.50) int -> x24
;* V08 loc5 [V08,T16] ( 0, 0 ) int -> zero-ref
;# V09 OutArgs [V09 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V10 tmp1 [V10,T13] ( 5, 5 ) ref -> x20 class-hnd exact "impAppendStmt" <System.Collections.Concurrent.CDSCollectionETWBCLProvider>
; V11 tmp2 [V11,T14] ( 5, 5 ) ref -> x19 class-hnd exact "impAppendStmt" <System.Collections.Concurrent.CDSCollectionETWBCLProvider>
;* V12 tmp3 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Concurrent.CDSCollectionETWBCLProvider>
; V13 tmp4 [V13,T18] ( 2, 2 ) int -> x20 "Inlining Arg"
;* V14 tmp5 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V15 tmp6 [V15,T11] ( 2, 16 ) byref -> x0 "Inlining Arg"
; V16 tmp7 [V16,T12] ( 2, 16 ) ref -> x1 class-hnd exact "Inlining Arg" <System.Collections.Concurrent.ConcurrentStack`1+Node[int]>
;* V17 tmp8 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Concurrent.CDSCollectionETWBCLProvider>
; V18 tmp9 [V18,T19] ( 2, 2 ) int -> x19 "Inlining Arg"
;* V19 tmp10 [V19 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V20 tmp11 [V20,T05] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V21 tmp12 [V21 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
;* V22 tmp13 [V22 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V23 tmp14 [V23 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V24 tmp15 [V24 ] ( 5, 22 ) int -> [fp+0x18] do-not-enreg[X] addr-exposed "field V03._count (fldOffset=0x0)" P-DEP
;* V25 tmp16 [V25 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
; V26 tmp17 [V26,T07] ( 3, 24 ) ref -> x0 "argument with side effect"
; V27 cse0 [V27,T20] ( 3, 1.50) int -> x1 "CSE #05: moderate"
; V28 cse1 [V28,T21] ( 3, 1.50) int -> x1 "CSE #06: moderate"
; V29 cse2 [V29,T17] ( 6, 3 ) ref -> x20 multi-def "CSE #04: moderate"
; V30 cse3 [V30,T02] ( 5, 48 ) ref -> x2 multi-def "CSE #01: aggressive"
; V31 cse4 [V31,T08] ( 3, 20 ) byref -> x0 "CSE #02: aggressive"
; V32 rat0 [V32,T01] ( 4, 49 ) int -> x23 "Trip count IV"
;
; Lcl frame size = 16
G_M47726_IG01:
stp fp, lr, [sp, #-0x50]!
stp x19, x20, [sp, #0x20]
stp x21, x22, [sp, #0x30]
stp x23, x24, [sp, #0x40]
mov fp, sp
mov x20, x0
mov w19, w1
mov x21, x2
;; size=32 bbWeight=1 PerfScore 6.00
G_M47726_IG02:
str wzr, [fp, #0x18] // [V03 loc0]
mov w22, #1
b G_M47726_IG04
- align [0 bytes for IG06]
- align [0 bytes]
- align [0 bytes]
- align [0 bytes]
- ;; size=12 bbWeight=1 PerfScore 2.50
+ align [4 bytes for IG06]
+ align [4 bytes]
+ align [4 bytes]
+ align [4 bytes]
+ ;; size=28 bbWeight=1 PerfScore 2.50
G_M47726_IG03:
movz x0, #0xD1FFAB1E // data for System.Random:<Shared>k__BackingField
+ movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
mov w1, #1
mov w2, #8
ldr x3, [x0]
ldr x3, [x3, #0x40]
ldr x3, [x3, #0x30]
blr x3
sxtw w22, w0
- ;; size=40 bbWeight=4 PerfScore 62.00
+ ;; size=44 bbWeight=4 PerfScore 64.00
G_M47726_IG04:
add x0, x20, #8
ldapr x23, [x0]
cbz x23, G_M47726_IG17
;; size=12 bbWeight=8 PerfScore 36.00
G_M47726_IG05:
mov x1, x23
mov w24, #1
b G_M47726_IG07
;; size=12 bbWeight=4 PerfScore 8.00
G_M47726_IG06:
mov x1, x2
add w24, w24, #1
;; size=8 bbWeight=8 PerfScore 8.00
G_M47726_IG07:
cmp w24, w19
bge G_M47726_IG09
;; size=8 bbWeight=32 PerfScore 48.00
G_M47726_IG08:
ldr x2, [x1, #0x08]
cbnz x2, G_M47726_IG06
;; size=8 bbWeight=16 PerfScore 64.00
G_M47726_IG09:
ldrsb wzr, [x20]
ldr x2, [x1, #0x08]
mov x1, x2
mov x2, x23
bl System.Threading.Interlocked:CompareExchangeObject(byref,System.Object,System.Object):System.Object
cmp x0, x23
beq G_M47726_IG14
cmp w22, #0
ble G_M47726_IG12
;; size=36 bbWeight=4 PerfScore 44.00
G_M47726_IG10:
sxtw w23, w22
;; size=4 bbWeight=1 PerfScore 0.50
G_M47726_IG11:
add x0, fp, #24 // [V03 loc0]
movn w1, #0
movz x2, #0xD1FFAB1E // code for System.Threading.SpinWait:SpinOnceCore(int):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
sub w23, w23, #1
cbnz w23, G_M47726_IG11
;; size=36 bbWeight=16 PerfScore 128.00
G_M47726_IG12:
ldr w0, [fp, #0x18] // [V24 tmp15]
cmp w0, #10
blt G_M47726_IG13
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldapr w0, [x0]
tbnz w0, #0, G_M47726_IG03
b G_M47726_IG20
;; size=36 bbWeight=4 PerfScore 40.00
G_M47726_IG13:
lsl w22, w22, #1
b G_M47726_IG04
;; size=8 bbWeight=4 PerfScore 8.00
G_M47726_IG14:
cmp w19, #1
bne G_M47726_IG15
movz x1, #0xD1FFAB1E
+ movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x20, [x1]
ldrb w1, [x20, #0x9D]
cbz w1, G_M47726_IG15
ldr w19, [fp, #0x18] // [V24 tmp15]
ldr x3, [x20, #0x80]
ldr w2, [x20, #0x98]
mov x0, x20
mov w4, #3
movn x5, #0
mov w6, wzr
movz x7, #0xD1FFAB1E // code for System.Diagnostics.Tracing.EventSource:IsEnabledCommon(ubyte,int,long,int,long,ubyte):ubyte:this
movk x7, #0xD1FFAB1E LSL #16
movk x7, #0xD1FFAB1E LSL #32
ldr x7, [x7]
blr x7
cbz w0, G_M47726_IG15
mov x0, x20
mov w2, w19
mov w1, #2
movz x3, #0xD1FFAB1E // code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,int):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
- ;; size=112 bbWeight=0.50 PerfScore 16.50
+ ;; size=116 bbWeight=0.50 PerfScore 16.75
G_M47726_IG15:
mov x14, x21
mov x15, x23
bl CORINFO_HELP_CHECKED_ASSIGN_REF
mov w0, w24
;; size=16 bbWeight=0.50 PerfScore 1.25
G_M47726_IG16:
ldp x23, x24, [sp, #0x40]
ldp x21, x22, [sp, #0x30]
ldp x19, x20, [sp, #0x20]
ldp fp, lr, [sp], #0x50
ret lr
;; size=20 bbWeight=0.50 PerfScore 2.50
G_M47726_IG17:
cmp w19, #1
bne G_M47726_IG18
movz x1, #0xD1FFAB1E
+ movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x20, [x1]
ldrb w1, [x20, #0x9D]
cbz w1, G_M47726_IG18
mov x19, x20
ldr w20, [fp, #0x18] // [V24 tmp15]
ldr x3, [x19, #0x80]
ldr w2, [x19, #0x98]
mov x0, x19
mov w4, #3
movn x5, #0
mov w6, wzr
movz x7, #0xD1FFAB1E // code for System.Diagnostics.Tracing.EventSource:IsEnabledCommon(ubyte,int,long,int,long,ubyte):ubyte:this
movk x7, #0xD1FFAB1E LSL #16
movk x7, #0xD1FFAB1E LSL #32
ldr x7, [x7]
blr x7
cbz w0, G_M47726_IG18
mov x0, x19
mov w2, w20
mov w1, #2
movz x3, #0xD1FFAB1E // code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,int):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
- ;; size=116 bbWeight=0.50 PerfScore 16.75
+ ;; size=120 bbWeight=0.50 PerfScore 17.00
G_M47726_IG18:
str xzr, [x21]
mov w0, wzr
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M47726_IG19:
ldp x23, x24, [sp, #0x40]
ldp x21, x22, [sp, #0x30]
ldp x19, x20, [sp, #0x20]
ldp fp, lr, [sp], #0x50
ret lr
;; size=20 bbWeight=0.50 PerfScore 2.50
G_M47726_IG20:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M47726_IG03
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 564, prolog size 32, PerfScore 495.25, instruction count 145, allocated bytes for code 564 (MethodHash=cb914591) for method System.Collections.Concurrent.ConcurrentStack`1[int]:TryPopCore(int,byref):int:this (FullOpts)
+; Total bytes of code 592, prolog size 32, PerfScore 497.75, instruction count 148, allocated bytes for code 592 (MethodHash=cb914591) for method System.Collections.Concurrent.ConcurrentStack`1[int]:TryPopCore(int,byref):int:this (FullOpts)
; ============================================================
28 (4.96 % of base) - System.Collections.Concurrent.ConcurrentStack`1[long]:TryPopCore(int,byref):int:this
; Assembly listing for method System.Collections.Concurrent.ConcurrentStack`1[long]:TryPopCore(int,byref):int:this (FullOpts)
; Emitting BLENDED_CODE for generic ARM64 - Unix
; FullOpts code
; optimized code
; fp based frame
; fully interruptible
; No PGO data
; 0 inlinees with PGO data; 12 single block inlinees; 9 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T10] ( 4, 14 ) ref -> x20 this class-hnd single-def <System.Collections.Concurrent.ConcurrentStack`1[long]>
; V01 arg1 [V01,T03] ( 5, 35 ) int -> x19 single-def
; V02 arg2 [V02,T15] ( 4, 3 ) byref -> x21 single-def
; V03 loc0 [V03 ] ( 5, 22 ) struct ( 8) [fp+0x18] do-not-enreg[XS] addr-exposed ld-addr-op <System.Threading.SpinWait>
; V04 loc1 [V04,T06] ( 6, 28.50) ref -> x23 class-hnd exact <System.Collections.Concurrent.ConcurrentStack`1+Node[long]>
; V05 loc2 [V05,T04] ( 4, 32 ) ref -> x1 class-hnd <System.Collections.Concurrent.ConcurrentStack`1+Node[long]>
; V06 loc3 [V06,T09] ( 6, 18 ) int -> x22
; V07 loc4 [V07,T00] ( 5, 52.50) int -> x24
;* V08 loc5 [V08,T16] ( 0, 0 ) int -> zero-ref
;# V09 OutArgs [V09 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V10 tmp1 [V10,T13] ( 5, 5 ) ref -> x20 class-hnd exact "impAppendStmt" <System.Collections.Concurrent.CDSCollectionETWBCLProvider>
; V11 tmp2 [V11,T14] ( 5, 5 ) ref -> x19 class-hnd exact "impAppendStmt" <System.Collections.Concurrent.CDSCollectionETWBCLProvider>
;* V12 tmp3 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Concurrent.CDSCollectionETWBCLProvider>
; V13 tmp4 [V13,T18] ( 2, 2 ) int -> x20 "Inlining Arg"
;* V14 tmp5 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V15 tmp6 [V15,T11] ( 2, 16 ) byref -> x0 "Inlining Arg"
; V16 tmp7 [V16,T12] ( 2, 16 ) ref -> x1 class-hnd exact "Inlining Arg" <System.Collections.Concurrent.ConcurrentStack`1+Node[long]>
;* V17 tmp8 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Concurrent.CDSCollectionETWBCLProvider>
; V18 tmp9 [V18,T19] ( 2, 2 ) int -> x19 "Inlining Arg"
;* V19 tmp10 [V19 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V20 tmp11 [V20,T05] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V21 tmp12 [V21 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
;* V22 tmp13 [V22 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V23 tmp14 [V23 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V24 tmp15 [V24 ] ( 5, 22 ) int -> [fp+0x18] do-not-enreg[X] addr-exposed "field V03._count (fldOffset=0x0)" P-DEP
;* V25 tmp16 [V25 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
; V26 tmp17 [V26,T07] ( 3, 24 ) ref -> x0 "argument with side effect"
; V27 cse0 [V27,T20] ( 3, 1.50) int -> x1 "CSE #05: moderate"
; V28 cse1 [V28,T21] ( 3, 1.50) int -> x1 "CSE #06: moderate"
; V29 cse2 [V29,T17] ( 6, 3 ) ref -> x20 multi-def "CSE #04: moderate"
; V30 cse3 [V30,T02] ( 5, 48 ) ref -> x2 multi-def "CSE #01: aggressive"
; V31 cse4 [V31,T08] ( 3, 20 ) byref -> x0 "CSE #02: aggressive"
; V32 rat0 [V32,T01] ( 4, 49 ) int -> x23 "Trip count IV"
;
; Lcl frame size = 16
G_M53559_IG01:
stp fp, lr, [sp, #-0x50]!
stp x19, x20, [sp, #0x20]
stp x21, x22, [sp, #0x30]
stp x23, x24, [sp, #0x40]
mov fp, sp
mov x20, x0
mov w19, w1
mov x21, x2
;; size=32 bbWeight=1 PerfScore 6.00
G_M53559_IG02:
str wzr, [fp, #0x18] // [V03 loc0]
mov w22, #1
b G_M53559_IG04
- align [0 bytes for IG06]
- align [0 bytes]
- align [0 bytes]
- align [0 bytes]
- ;; size=12 bbWeight=1 PerfScore 2.50
+ align [4 bytes for IG06]
+ align [4 bytes]
+ align [4 bytes]
+ align [4 bytes]
+ ;; size=28 bbWeight=1 PerfScore 2.50
G_M53559_IG03:
movz x0, #0xD1FFAB1E // data for System.Random:<Shared>k__BackingField
+ movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
mov w1, #1
mov w2, #8
ldr x3, [x0]
ldr x3, [x3, #0x40]
ldr x3, [x3, #0x30]
blr x3
sxtw w22, w0
- ;; size=40 bbWeight=4 PerfScore 62.00
+ ;; size=44 bbWeight=4 PerfScore 64.00
G_M53559_IG04:
add x0, x20, #8
ldapr x23, [x0]
cbz x23, G_M53559_IG17
;; size=12 bbWeight=8 PerfScore 36.00
G_M53559_IG05:
mov x1, x23
mov w24, #1
b G_M53559_IG07
;; size=12 bbWeight=4 PerfScore 8.00
G_M53559_IG06:
mov x1, x2
add w24, w24, #1
;; size=8 bbWeight=8 PerfScore 8.00
G_M53559_IG07:
cmp w24, w19
bge G_M53559_IG09
;; size=8 bbWeight=32 PerfScore 48.00
G_M53559_IG08:
ldr x2, [x1, #0x08]
cbnz x2, G_M53559_IG06
;; size=8 bbWeight=16 PerfScore 64.00
G_M53559_IG09:
ldrsb wzr, [x20]
ldr x2, [x1, #0x08]
mov x1, x2
mov x2, x23
bl System.Threading.Interlocked:CompareExchangeObject(byref,System.Object,System.Object):System.Object
cmp x0, x23
beq G_M53559_IG14
cmp w22, #0
ble G_M53559_IG12
;; size=36 bbWeight=4 PerfScore 44.00
G_M53559_IG10:
sxtw w23, w22
;; size=4 bbWeight=1 PerfScore 0.50
G_M53559_IG11:
add x0, fp, #24 // [V03 loc0]
movn w1, #0
movz x2, #0xD1FFAB1E // code for System.Threading.SpinWait:SpinOnceCore(int):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
sub w23, w23, #1
cbnz w23, G_M53559_IG11
;; size=36 bbWeight=16 PerfScore 128.00
G_M53559_IG12:
ldr w0, [fp, #0x18] // [V24 tmp15]
cmp w0, #10
blt G_M53559_IG13
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldapr w0, [x0]
tbnz w0, #0, G_M53559_IG03
b G_M53559_IG20
;; size=36 bbWeight=4 PerfScore 40.00
G_M53559_IG13:
lsl w22, w22, #1
b G_M53559_IG04
;; size=8 bbWeight=4 PerfScore 8.00
G_M53559_IG14:
cmp w19, #1
bne G_M53559_IG15
movz x1, #0xD1FFAB1E
+ movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x20, [x1]
ldrb w1, [x20, #0x9D]
cbz w1, G_M53559_IG15
ldr w19, [fp, #0x18] // [V24 tmp15]
ldr x3, [x20, #0x80]
ldr w2, [x20, #0x98]
mov x0, x20
mov w4, #3
movn x5, #0
mov w6, wzr
movz x7, #0xD1FFAB1E // code for System.Diagnostics.Tracing.EventSource:IsEnabledCommon(ubyte,int,long,int,long,ubyte):ubyte:this
movk x7, #0xD1FFAB1E LSL #16
movk x7, #0xD1FFAB1E LSL #32
ldr x7, [x7]
blr x7
cbz w0, G_M53559_IG15
mov x0, x20
mov w2, w19
mov w1, #2
movz x3, #0xD1FFAB1E // code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,int):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
- ;; size=112 bbWeight=0.50 PerfScore 16.50
+ ;; size=116 bbWeight=0.50 PerfScore 16.75
G_M53559_IG15:
mov x14, x21
mov x15, x23
bl CORINFO_HELP_CHECKED_ASSIGN_REF
mov w0, w24
;; size=16 bbWeight=0.50 PerfScore 1.25
G_M53559_IG16:
ldp x23, x24, [sp, #0x40]
ldp x21, x22, [sp, #0x30]
ldp x19, x20, [sp, #0x20]
ldp fp, lr, [sp], #0x50
ret lr
;; size=20 bbWeight=0.50 PerfScore 2.50
G_M53559_IG17:
cmp w19, #1
bne G_M53559_IG18
movz x1, #0xD1FFAB1E
+ movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x20, [x1]
ldrb w1, [x20, #0x9D]
cbz w1, G_M53559_IG18
mov x19, x20
ldr w20, [fp, #0x18] // [V24 tmp15]
ldr x3, [x19, #0x80]
ldr w2, [x19, #0x98]
mov x0, x19
mov w4, #3
movn x5, #0
mov w6, wzr
movz x7, #0xD1FFAB1E // code for System.Diagnostics.Tracing.EventSource:IsEnabledCommon(ubyte,int,long,int,long,ubyte):ubyte:this
movk x7, #0xD1FFAB1E LSL #16
movk x7, #0xD1FFAB1E LSL #32
ldr x7, [x7]
blr x7
cbz w0, G_M53559_IG18
mov x0, x19
mov w2, w20
mov w1, #2
movz x3, #0xD1FFAB1E // code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,int):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
- ;; size=116 bbWeight=0.50 PerfScore 16.75
+ ;; size=120 bbWeight=0.50 PerfScore 17.00
G_M53559_IG18:
str xzr, [x21]
mov w0, wzr
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M53559_IG19:
ldp x23, x24, [sp, #0x40]
ldp x21, x22, [sp, #0x30]
ldp x19, x20, [sp, #0x20]
ldp fp, lr, [sp], #0x50
ret lr
;; size=20 bbWeight=0.50 PerfScore 2.50
G_M53559_IG20:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M53559_IG03
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 564, prolog size 32, PerfScore 495.25, instruction count 145, allocated bytes for code 564 (MethodHash=252f2ec8) for method System.Collections.Concurrent.ConcurrentStack`1[long]:TryPopCore(int,byref):int:this (FullOpts)
+; Total bytes of code 592, prolog size 32, PerfScore 497.75, instruction count 148, allocated bytes for code 592 (MethodHash=252f2ec8) for method System.Collections.Concurrent.ConcurrentStack`1[long]:TryPopCore(int,byref):int:this (FullOpts)
; ============================================================
28 (4.96 % of base) - System.Collections.Concurrent.ConcurrentStack`1[short]:TryPopCore(int,byref):int:this
; Assembly listing for method System.Collections.Concurrent.ConcurrentStack`1[short]:TryPopCore(int,byref):int:this (FullOpts)
; Emitting BLENDED_CODE for generic ARM64 - Unix
; FullOpts code
; optimized code
; fp based frame
; fully interruptible
; No PGO data
; 0 inlinees with PGO data; 12 single block inlinees; 9 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T10] ( 4, 14 ) ref -> x20 this class-hnd single-def <System.Collections.Concurrent.ConcurrentStack`1[short]>
; V01 arg1 [V01,T03] ( 5, 35 ) int -> x19 single-def
; V02 arg2 [V02,T15] ( 4, 3 ) byref -> x21 single-def
; V03 loc0 [V03 ] ( 5, 22 ) struct ( 8) [fp+0x18] do-not-enreg[XS] addr-exposed ld-addr-op <System.Threading.SpinWait>
; V04 loc1 [V04,T06] ( 6, 28.50) ref -> x23 class-hnd exact <System.Collections.Concurrent.ConcurrentStack`1+Node[short]>
; V05 loc2 [V05,T04] ( 4, 32 ) ref -> x1 class-hnd <System.Collections.Concurrent.ConcurrentStack`1+Node[short]>
; V06 loc3 [V06,T09] ( 6, 18 ) int -> x22
; V07 loc4 [V07,T00] ( 5, 52.50) int -> x24
;* V08 loc5 [V08,T16] ( 0, 0 ) int -> zero-ref
;# V09 OutArgs [V09 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V10 tmp1 [V10,T13] ( 5, 5 ) ref -> x20 class-hnd exact "impAppendStmt" <System.Collections.Concurrent.CDSCollectionETWBCLProvider>
; V11 tmp2 [V11,T14] ( 5, 5 ) ref -> x19 class-hnd exact "impAppendStmt" <System.Collections.Concurrent.CDSCollectionETWBCLProvider>
;* V12 tmp3 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Concurrent.CDSCollectionETWBCLProvider>
; V13 tmp4 [V13,T18] ( 2, 2 ) int -> x20 "Inlining Arg"
;* V14 tmp5 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V15 tmp6 [V15,T11] ( 2, 16 ) byref -> x0 "Inlining Arg"
; V16 tmp7 [V16,T12] ( 2, 16 ) ref -> x1 class-hnd exact "Inlining Arg" <System.Collections.Concurrent.ConcurrentStack`1+Node[short]>
;* V17 tmp8 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Concurrent.CDSCollectionETWBCLProvider>
; V18 tmp9 [V18,T19] ( 2, 2 ) int -> x19 "Inlining Arg"
;* V19 tmp10 [V19 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V20 tmp11 [V20,T05] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V21 tmp12 [V21 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
;* V22 tmp13 [V22 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V23 tmp14 [V23 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V24 tmp15 [V24 ] ( 5, 22 ) int -> [fp+0x18] do-not-enreg[X] addr-exposed "field V03._count (fldOffset=0x0)" P-DEP
;* V25 tmp16 [V25 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
; V26 tmp17 [V26,T07] ( 3, 24 ) ref -> x0 "argument with side effect"
; V27 cse0 [V27,T20] ( 3, 1.50) int -> x1 "CSE #05: moderate"
; V28 cse1 [V28,T21] ( 3, 1.50) int -> x1 "CSE #06: moderate"
; V29 cse2 [V29,T17] ( 6, 3 ) ref -> x20 multi-def "CSE #04: moderate"
; V30 cse3 [V30,T02] ( 5, 48 ) ref -> x2 multi-def "CSE #01: aggressive"
; V31 cse4 [V31,T08] ( 3, 20 ) byref -> x0 "CSE #02: aggressive"
; V32 rat0 [V32,T01] ( 4, 49 ) int -> x23 "Trip count IV"
;
; Lcl frame size = 16
G_M18927_IG01:
stp fp, lr, [sp, #-0x50]!
stp x19, x20, [sp, #0x20]
stp x21, x22, [sp, #0x30]
stp x23, x24, [sp, #0x40]
mov fp, sp
mov x20, x0
mov w19, w1
mov x21, x2
;; size=32 bbWeight=1 PerfScore 6.00
G_M18927_IG02:
str wzr, [fp, #0x18] // [V03 loc0]
mov w22, #1
b G_M18927_IG04
- align [0 bytes for IG06]
- align [0 bytes]
- align [0 bytes]
- align [0 bytes]
- ;; size=12 bbWeight=1 PerfScore 2.50
+ align [4 bytes for IG06]
+ align [4 bytes]
+ align [4 bytes]
+ align [4 bytes]
+ ;; size=28 bbWeight=1 PerfScore 2.50
G_M18927_IG03:
movz x0, #0xD1FFAB1E // data for System.Random:<Shared>k__BackingField
+ movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
mov w1, #1
mov w2, #8
ldr x3, [x0]
ldr x3, [x3, #0x40]
ldr x3, [x3, #0x30]
blr x3
sxtw w22, w0
- ;; size=40 bbWeight=4 PerfScore 62.00
+ ;; size=44 bbWeight=4 PerfScore 64.00
G_M18927_IG04:
add x0, x20, #8
ldapr x23, [x0]
cbz x23, G_M18927_IG17
;; size=12 bbWeight=8 PerfScore 36.00
G_M18927_IG05:
mov x1, x23
mov w24, #1
b G_M18927_IG07
;; size=12 bbWeight=4 PerfScore 8.00
G_M18927_IG06:
mov x1, x2
add w24, w24, #1
;; size=8 bbWeight=8 PerfScore 8.00
G_M18927_IG07:
cmp w24, w19
bge G_M18927_IG09
;; size=8 bbWeight=32 PerfScore 48.00
G_M18927_IG08:
ldr x2, [x1, #0x08]
cbnz x2, G_M18927_IG06
;; size=8 bbWeight=16 PerfScore 64.00
G_M18927_IG09:
ldrsb wzr, [x20]
ldr x2, [x1, #0x08]
mov x1, x2
mov x2, x23
bl System.Threading.Interlocked:CompareExchangeObject(byref,System.Object,System.Object):System.Object
cmp x0, x23
beq G_M18927_IG14
cmp w22, #0
ble G_M18927_IG12
;; size=36 bbWeight=4 PerfScore 44.00
G_M18927_IG10:
sxtw w23, w22
;; size=4 bbWeight=1 PerfScore 0.50
G_M18927_IG11:
add x0, fp, #24 // [V03 loc0]
movn w1, #0
movz x2, #0xD1FFAB1E // code for System.Threading.SpinWait:SpinOnceCore(int):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
sub w23, w23, #1
cbnz w23, G_M18927_IG11
;; size=36 bbWeight=16 PerfScore 128.00
G_M18927_IG12:
ldr w0, [fp, #0x18] // [V24 tmp15]
cmp w0, #10
blt G_M18927_IG13
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldapr w0, [x0]
tbnz w0, #0, G_M18927_IG03
b G_M18927_IG20
;; size=36 bbWeight=4 PerfScore 40.00
G_M18927_IG13:
lsl w22, w22, #1
b G_M18927_IG04
;; size=8 bbWeight=4 PerfScore 8.00
G_M18927_IG14:
cmp w19, #1
bne G_M18927_IG15
movz x1, #0xD1FFAB1E
+ movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x20, [x1]
ldrb w1, [x20, #0x9D]
cbz w1, G_M18927_IG15
ldr w19, [fp, #0x18] // [V24 tmp15]
ldr x3, [x20, #0x80]
ldr w2, [x20, #0x98]
mov x0, x20
mov w4, #3
movn x5, #0
mov w6, wzr
movz x7, #0xD1FFAB1E // code for System.Diagnostics.Tracing.EventSource:IsEnabledCommon(ubyte,int,long,int,long,ubyte):ubyte:this
movk x7, #0xD1FFAB1E LSL #16
movk x7, #0xD1FFAB1E LSL #32
ldr x7, [x7]
blr x7
cbz w0, G_M18927_IG15
mov x0, x20
mov w2, w19
mov w1, #2
movz x3, #0xD1FFAB1E // code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,int):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
- ;; size=112 bbWeight=0.50 PerfScore 16.50
+ ;; size=116 bbWeight=0.50 PerfScore 16.75
G_M18927_IG15:
mov x14, x21
mov x15, x23
bl CORINFO_HELP_CHECKED_ASSIGN_REF
mov w0, w24
;; size=16 bbWeight=0.50 PerfScore 1.25
G_M18927_IG16:
ldp x23, x24, [sp, #0x40]
ldp x21, x22, [sp, #0x30]
ldp x19, x20, [sp, #0x20]
ldp fp, lr, [sp], #0x50
ret lr
;; size=20 bbWeight=0.50 PerfScore 2.50
G_M18927_IG17:
cmp w19, #1
bne G_M18927_IG18
movz x1, #0xD1FFAB1E
+ movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x20, [x1]
ldrb w1, [x20, #0x9D]
cbz w1, G_M18927_IG18
mov x19, x20
ldr w20, [fp, #0x18] // [V24 tmp15]
ldr x3, [x19, #0x80]
ldr w2, [x19, #0x98]
mov x0, x19
mov w4, #3
movn x5, #0
mov w6, wzr
movz x7, #0xD1FFAB1E // code for System.Diagnostics.Tracing.EventSource:IsEnabledCommon(ubyte,int,long,int,long,ubyte):ubyte:this
movk x7, #0xD1FFAB1E LSL #16
movk x7, #0xD1FFAB1E LSL #32
ldr x7, [x7]
blr x7
cbz w0, G_M18927_IG18
mov x0, x19
mov w2, w20
mov w1, #2
movz x3, #0xD1FFAB1E // code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,int):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
- ;; size=116 bbWeight=0.50 PerfScore 16.75
+ ;; size=120 bbWeight=0.50 PerfScore 17.00
G_M18927_IG18:
str xzr, [x21]
mov w0, wzr
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M18927_IG19:
ldp x23, x24, [sp, #0x40]
ldp x21, x22, [sp, #0x30]
ldp x19, x20, [sp, #0x20]
ldp fp, lr, [sp], #0x50
ret lr
;; size=20 bbWeight=0.50 PerfScore 2.50
G_M18927_IG20:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M18927_IG03
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 564, prolog size 32, PerfScore 495.25, instruction count 145, allocated bytes for code 564 (MethodHash=3a4ab610) for method System.Collections.Concurrent.ConcurrentStack`1[short]:TryPopCore(int,byref):int:this (FullOpts)
+; Total bytes of code 592, prolog size 32, PerfScore 497.75, instruction count 148, allocated bytes for code 592 (MethodHash=3a4ab610) for method System.Collections.Concurrent.ConcurrentStack`1[short]:TryPopCore(int,byref):int:this (FullOpts)
; ============================================================
28 (4.96 % of base) - System.Collections.Concurrent.ConcurrentStack`1[System.Nullable`1[int]]:TryPopCore(int,byref):int:this
; Assembly listing for method System.Collections.Concurrent.ConcurrentStack`1[System.Nullable`1[int]]:TryPopCore(int,byref):int:this (FullOpts)
; Emitting BLENDED_CODE for generic ARM64 - Unix
; FullOpts code
; optimized code
; fp based frame
; fully interruptible
; No PGO data
; 0 inlinees with PGO data; 12 single block inlinees; 9 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T10] ( 4, 14 ) ref -> x20 this class-hnd single-def <System.Collections.Concurrent.ConcurrentStack`1[System.Nullable`1[int]]>
; V01 arg1 [V01,T03] ( 5, 35 ) int -> x19 single-def
; V02 arg2 [V02,T15] ( 4, 3 ) byref -> x21 single-def
; V03 loc0 [V03 ] ( 5, 22 ) struct ( 8) [fp+0x18] do-not-enreg[XS] addr-exposed ld-addr-op <System.Threading.SpinWait>
; V04 loc1 [V04,T06] ( 6, 28.50) ref -> x23 class-hnd exact <System.Collections.Concurrent.ConcurrentStack`1+Node[System.Nullable`1[int]]>
; V05 loc2 [V05,T04] ( 4, 32 ) ref -> x1 class-hnd <System.Collections.Concurrent.ConcurrentStack`1+Node[System.Nullable`1[int]]>
; V06 loc3 [V06,T09] ( 6, 18 ) int -> x22
; V07 loc4 [V07,T00] ( 5, 52.50) int -> x24
;* V08 loc5 [V08,T16] ( 0, 0 ) int -> zero-ref
;# V09 OutArgs [V09 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V10 tmp1 [V10,T13] ( 5, 5 ) ref -> x20 class-hnd exact "impAppendStmt" <System.Collections.Concurrent.CDSCollectionETWBCLProvider>
; V11 tmp2 [V11,T14] ( 5, 5 ) ref -> x19 class-hnd exact "impAppendStmt" <System.Collections.Concurrent.CDSCollectionETWBCLProvider>
;* V12 tmp3 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Concurrent.CDSCollectionETWBCLProvider>
; V13 tmp4 [V13,T18] ( 2, 2 ) int -> x20 "Inlining Arg"
;* V14 tmp5 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V15 tmp6 [V15,T11] ( 2, 16 ) byref -> x0 "Inlining Arg"
; V16 tmp7 [V16,T12] ( 2, 16 ) ref -> x1 class-hnd exact "Inlining Arg" <System.Collections.Concurrent.ConcurrentStack`1+Node[System.Nullable`1[int]]>
;* V17 tmp8 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Concurrent.CDSCollectionETWBCLProvider>
; V18 tmp9 [V18,T19] ( 2, 2 ) int -> x19 "Inlining Arg"
;* V19 tmp10 [V19 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V20 tmp11 [V20,T05] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V21 tmp12 [V21 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
;* V22 tmp13 [V22 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V23 tmp14 [V23 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V24 tmp15 [V24 ] ( 5, 22 ) int -> [fp+0x18] do-not-enreg[X] addr-exposed "field V03._count (fldOffset=0x0)" P-DEP
;* V25 tmp16 [V25 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
; V26 tmp17 [V26,T07] ( 3, 24 ) ref -> x0 "argument with side effect"
; V27 cse0 [V27,T20] ( 3, 1.50) int -> x1 "CSE #05: moderate"
; V28 cse1 [V28,T21] ( 3, 1.50) int -> x1 "CSE #06: moderate"
; V29 cse2 [V29,T17] ( 6, 3 ) ref -> x20 multi-def "CSE #04: moderate"
; V30 cse3 [V30,T02] ( 5, 48 ) ref -> x2 multi-def "CSE #01: aggressive"
; V31 cse4 [V31,T08] ( 3, 20 ) byref -> x0 "CSE #02: aggressive"
; V32 rat0 [V32,T01] ( 4, 49 ) int -> x23 "Trip count IV"
;
; Lcl frame size = 16
G_M14467_IG01:
stp fp, lr, [sp, #-0x50]!
stp x19, x20, [sp, #0x20]
stp x21, x22, [sp, #0x30]
stp x23, x24, [sp, #0x40]
mov fp, sp
mov x20, x0
mov w19, w1
mov x21, x2
;; size=32 bbWeight=1 PerfScore 6.00
G_M14467_IG02:
str wzr, [fp, #0x18] // [V03 loc0]
mov w22, #1
b G_M14467_IG04
- align [0 bytes for IG06]
- align [0 bytes]
- align [0 bytes]
- align [0 bytes]
- ;; size=12 bbWeight=1 PerfScore 2.50
+ align [4 bytes for IG06]
+ align [4 bytes]
+ align [4 bytes]
+ align [4 bytes]
+ ;; size=28 bbWeight=1 PerfScore 2.50
G_M14467_IG03:
movz x0, #0xD1FFAB1E // data for System.Random:<Shared>k__BackingField
+ movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
mov w1, #1
mov w2, #8
ldr x3, [x0]
ldr x3, [x3, #0x40]
ldr x3, [x3, #0x30]
blr x3
sxtw w22, w0
- ;; size=40 bbWeight=4 PerfScore 62.00
+ ;; size=44 bbWeight=4 PerfScore 64.00
G_M14467_IG04:
add x0, x20, #8
ldapr x23, [x0]
cbz x23, G_M14467_IG17
;; size=12 bbWeight=8 PerfScore 36.00
G_M14467_IG05:
mov x1, x23
mov w24, #1
b G_M14467_IG07
;; size=12 bbWeight=4 PerfScore 8.00
G_M14467_IG06:
mov x1, x2
add w24, w24, #1
;; size=8 bbWeight=8 PerfScore 8.00
G_M14467_IG07:
cmp w24, w19
bge G_M14467_IG09
;; size=8 bbWeight=32 PerfScore 48.00
G_M14467_IG08:
ldr x2, [x1, #0x08]
cbnz x2, G_M14467_IG06
;; size=8 bbWeight=16 PerfScore 64.00
G_M14467_IG09:
ldrsb wzr, [x20]
ldr x2, [x1, #0x08]
mov x1, x2
mov x2, x23
bl System.Threading.Interlocked:CompareExchangeObject(byref,System.Object,System.Object):System.Object
cmp x0, x23
beq G_M14467_IG14
cmp w22, #0
ble G_M14467_IG12
;; size=36 bbWeight=4 PerfScore 44.00
G_M14467_IG10:
sxtw w23, w22
;; size=4 bbWeight=1 PerfScore 0.50
G_M14467_IG11:
add x0, fp, #24 // [V03 loc0]
movn w1, #0
movz x2, #0xD1FFAB1E // code for System.Threading.SpinWait:SpinOnceCore(int):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
sub w23, w23, #1
cbnz w23, G_M14467_IG11
;; size=36 bbWeight=16 PerfScore 128.00
G_M14467_IG12:
ldr w0, [fp, #0x18] // [V24 tmp15]
cmp w0, #10
blt G_M14467_IG13
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldapr w0, [x0]
tbnz w0, #0, G_M14467_IG03
b G_M14467_IG20
;; size=36 bbWeight=4 PerfScore 40.00
G_M14467_IG13:
lsl w22, w22, #1
b G_M14467_IG04
;; size=8 bbWeight=4 PerfScore 8.00
G_M14467_IG14:
cmp w19, #1
bne G_M14467_IG15
movz x1, #0xD1FFAB1E
+ movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x20, [x1]
ldrb w1, [x20, #0x9D]
cbz w1, G_M14467_IG15
ldr w19, [fp, #0x18] // [V24 tmp15]
ldr x3, [x20, #0x80]
ldr w2, [x20, #0x98]
mov x0, x20
mov w4, #3
movn x5, #0
mov w6, wzr
movz x7, #0xD1FFAB1E // code for System.Diagnostics.Tracing.EventSource:IsEnabledCommon(ubyte,int,long,int,long,ubyte):ubyte:this
movk x7, #0xD1FFAB1E LSL #16
movk x7, #0xD1FFAB1E LSL #32
ldr x7, [x7]
blr x7
cbz w0, G_M14467_IG15
mov x0, x20
mov w2, w19
mov w1, #2
movz x3, #0xD1FFAB1E // code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,int):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
- ;; size=112 bbWeight=0.50 PerfScore 16.50
+ ;; size=116 bbWeight=0.50 PerfScore 16.75
G_M14467_IG15:
mov x14, x21
mov x15, x23
bl CORINFO_HELP_CHECKED_ASSIGN_REF
mov w0, w24
;; size=16 bbWeight=0.50 PerfScore 1.25
G_M14467_IG16:
ldp x23, x24, [sp, #0x40]
ldp x21, x22, [sp, #0x30]
ldp x19, x20, [sp, #0x20]
ldp fp, lr, [sp], #0x50
ret lr
;; size=20 bbWeight=0.50 PerfScore 2.50
G_M14467_IG17:
cmp w19, #1
bne G_M14467_IG18
movz x1, #0xD1FFAB1E
+ movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x20, [x1]
ldrb w1, [x20, #0x9D]
cbz w1, G_M14467_IG18
mov x19, x20
ldr w20, [fp, #0x18] // [V24 tmp15]
ldr x3, [x19, #0x80]
ldr w2, [x19, #0x98]
mov x0, x19
mov w4, #3
movn x5, #0
mov w6, wzr
movz x7, #0xD1FFAB1E // code for System.Diagnostics.Tracing.EventSource:IsEnabledCommon(ubyte,int,long,int,long,ubyte):ubyte:this
movk x7, #0xD1FFAB1E LSL #16
movk x7, #0xD1FFAB1E LSL #32
ldr x7, [x7]
blr x7
cbz w0, G_M14467_IG18
mov x0, x19
mov w2, w20
mov w1, #2
movz x3, #0xD1FFAB1E // code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,int):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
- ;; size=116 bbWeight=0.50 PerfScore 16.75
+ ;; size=120 bbWeight=0.50 PerfScore 17.00
G_M14467_IG18:
str xzr, [x21]
mov w0, wzr
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M14467_IG19:
ldp x23, x24, [sp, #0x40]
ldp x21, x22, [sp, #0x30]
ldp x19, x20, [sp, #0x20]
ldp fp, lr, [sp], #0x50
ret lr
;; size=20 bbWeight=0.50 PerfScore 2.50
G_M14467_IG20:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M14467_IG03
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 564, prolog size 32, PerfScore 495.25, instruction count 145, allocated bytes for code 564 (MethodHash=3ee2c77c) for method System.Collections.Concurrent.ConcurrentStack`1[System.Nullable`1[int]]:TryPopCore(int,byref):int:this (FullOpts)
+; Total bytes of code 592, prolog size 32, PerfScore 497.75, instruction count 148, allocated bytes for code 592 (MethodHash=3ee2c77c) for method System.Collections.Concurrent.ConcurrentStack`1[System.Nullable`1[int]]:TryPopCore(int,byref):int:this (FullOpts)
; ============================================================
28 (4.96 % of base) - System.Collections.Concurrent.ConcurrentStack`1[System.Numerics.Vector`1[float]]:TryPopCore(int,byref):int:this
; Assembly listing for method System.Collections.Concurrent.ConcurrentStack`1[System.Numerics.Vector`1[float]]:TryPopCore(int,byref):int:this (FullOpts)
; Emitting BLENDED_CODE for generic ARM64 - Unix
; FullOpts code
; optimized code
; fp based frame
; fully interruptible
; No PGO data
; 0 inlinees with PGO data; 12 single block inlinees; 9 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T10] ( 4, 14 ) ref -> x20 this class-hnd single-def <System.Collections.Concurrent.ConcurrentStack`1[System.Numerics.Vector`1[float]]>
; V01 arg1 [V01,T03] ( 5, 35 ) int -> x19 single-def
; V02 arg2 [V02,T15] ( 4, 3 ) byref -> x21 single-def
; V03 loc0 [V03 ] ( 5, 22 ) struct ( 8) [fp+0x18] do-not-enreg[XS] addr-exposed ld-addr-op <System.Threading.SpinWait>
; V04 loc1 [V04,T06] ( 6, 28.50) ref -> x23 class-hnd exact <System.Collections.Concurrent.ConcurrentStack`1+Node[System.Numerics.Vector`1[float]]>
; V05 loc2 [V05,T04] ( 4, 32 ) ref -> x1 class-hnd <System.Collections.Concurrent.ConcurrentStack`1+Node[System.Numerics.Vector`1[float]]>
; V06 loc3 [V06,T09] ( 6, 18 ) int -> x22
; V07 loc4 [V07,T00] ( 5, 52.50) int -> x24
;* V08 loc5 [V08,T16] ( 0, 0 ) int -> zero-ref
;# V09 OutArgs [V09 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V10 tmp1 [V10,T13] ( 5, 5 ) ref -> x20 class-hnd exact "impAppendStmt" <System.Collections.Concurrent.CDSCollectionETWBCLProvider>
; V11 tmp2 [V11,T14] ( 5, 5 ) ref -> x19 class-hnd exact "impAppendStmt" <System.Collections.Concurrent.CDSCollectionETWBCLProvider>
;* V12 tmp3 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Concurrent.CDSCollectionETWBCLProvider>
; V13 tmp4 [V13,T18] ( 2, 2 ) int -> x20 "Inlining Arg"
;* V14 tmp5 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V15 tmp6 [V15,T11] ( 2, 16 ) byref -> x0 "Inlining Arg"
; V16 tmp7 [V16,T12] ( 2, 16 ) ref -> x1 class-hnd exact "Inlining Arg" <System.Collections.Concurrent.ConcurrentStack`1+Node[System.Numerics.Vector`1[float]]>
;* V17 tmp8 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Concurrent.CDSCollectionETWBCLProvider>
; V18 tmp9 [V18,T19] ( 2, 2 ) int -> x19 "Inlining Arg"
;* V19 tmp10 [V19 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V20 tmp11 [V20,T05] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V21 tmp12 [V21 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
;* V22 tmp13 [V22 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V23 tmp14 [V23 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V24 tmp15 [V24 ] ( 5, 22 ) int -> [fp+0x18] do-not-enreg[X] addr-exposed "field V03._count (fldOffset=0x0)" P-DEP
;* V25 tmp16 [V25 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
; V26 tmp17 [V26,T07] ( 3, 24 ) ref -> x0 "argument with side effect"
; V27 cse0 [V27,T20] ( 3, 1.50) int -> x1 "CSE #05: moderate"
; V28 cse1 [V28,T21] ( 3, 1.50) int -> x1 "CSE #06: moderate"
; V29 cse2 [V29,T17] ( 6, 3 ) ref -> x20 multi-def "CSE #04: moderate"
; V30 cse3 [V30,T02] ( 5, 48 ) ref -> x2 multi-def "CSE #01: aggressive"
; V31 cse4 [V31,T08] ( 3, 20 ) byref -> x0 "CSE #02: aggressive"
; V32 rat0 [V32,T01] ( 4, 49 ) int -> x23 "Trip count IV"
;
; Lcl frame size = 16
G_M20990_IG01:
stp fp, lr, [sp, #-0x50]!
stp x19, x20, [sp, #0x20]
stp x21, x22, [sp, #0x30]
stp x23, x24, [sp, #0x40]
mov fp, sp
mov x20, x0
mov w19, w1
mov x21, x2
;; size=32 bbWeight=1 PerfScore 6.00
G_M20990_IG02:
str wzr, [fp, #0x18] // [V03 loc0]
mov w22, #1
b G_M20990_IG04
- align [0 bytes for IG06]
- align [0 bytes]
- align [0 bytes]
- align [0 bytes]
- ;; size=12 bbWeight=1 PerfScore 2.50
+ align [4 bytes for IG06]
+ align [4 bytes]
+ align [4 bytes]
+ align [4 bytes]
+ ;; size=28 bbWeight=1 PerfScore 2.50
G_M20990_IG03:
movz x0, #0xD1FFAB1E // data for System.Random:<Shared>k__BackingField
+ movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
mov w1, #1
mov w2, #8
ldr x3, [x0]
ldr x3, [x3, #0x40]
ldr x3, [x3, #0x30]
blr x3
sxtw w22, w0
- ;; size=40 bbWeight=4 PerfScore 62.00
+ ;; size=44 bbWeight=4 PerfScore 64.00
G_M20990_IG04:
add x0, x20, #8
ldapr x23, [x0]
cbz x23, G_M20990_IG17
;; size=12 bbWeight=8 PerfScore 36.00
G_M20990_IG05:
mov x1, x23
mov w24, #1
b G_M20990_IG07
;; size=12 bbWeight=4 PerfScore 8.00
G_M20990_IG06:
mov x1, x2
add w24, w24, #1
;; size=8 bbWeight=8 PerfScore 8.00
G_M20990_IG07:
cmp w24, w19
bge G_M20990_IG09
;; size=8 bbWeight=32 PerfScore 48.00
G_M20990_IG08:
ldr x2, [x1, #0x08]
cbnz x2, G_M20990_IG06
;; size=8 bbWeight=16 PerfScore 64.00
G_M20990_IG09:
ldrsb wzr, [x20]
ldr x2, [x1, #0x08]
mov x1, x2
mov x2, x23
bl System.Threading.Interlocked:CompareExchangeObject(byref,System.Object,System.Object):System.Object
cmp x0, x23
beq G_M20990_IG14
cmp w22, #0
ble G_M20990_IG12
;; size=36 bbWeight=4 PerfScore 44.00
G_M20990_IG10:
sxtw w23, w22
;; size=4 bbWeight=1 PerfScore 0.50
G_M20990_IG11:
add x0, fp, #24 // [V03 loc0]
movn w1, #0
movz x2, #0xD1FFAB1E // code for System.Threading.SpinWait:SpinOnceCore(int):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
sub w23, w23, #1
cbnz w23, G_M20990_IG11
;; size=36 bbWeight=16 PerfScore 128.00
G_M20990_IG12:
ldr w0, [fp, #0x18] // [V24 tmp15]
cmp w0, #10
blt G_M20990_IG13
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldapr w0, [x0]
tbnz w0, #0, G_M20990_IG03
b G_M20990_IG20
;; size=36 bbWeight=4 PerfScore 40.00
G_M20990_IG13:
lsl w22, w22, #1
b G_M20990_IG04
;; size=8 bbWeight=4 PerfScore 8.00
G_M20990_IG14:
cmp w19, #1
bne G_M20990_IG15
movz x1, #0xD1FFAB1E
+ movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x20, [x1]
ldrb w1, [x20, #0x9D]
cbz w1, G_M20990_IG15
ldr w19, [fp, #0x18] // [V24 tmp15]
ldr x3, [x20, #0x80]
ldr w2, [x20, #0x98]
mov x0, x20
mov w4, #3
movn x5, #0
mov w6, wzr
movz x7, #0xD1FFAB1E // code for System.Diagnostics.Tracing.EventSource:IsEnabledCommon(ubyte,int,long,int,long,ubyte):ubyte:this
movk x7, #0xD1FFAB1E LSL #16
movk x7, #0xD1FFAB1E LSL #32
ldr x7, [x7]
blr x7
cbz w0, G_M20990_IG15
mov x0, x20
mov w2, w19
mov w1, #2
movz x3, #0xD1FFAB1E // code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,int):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
- ;; size=112 bbWeight=0.50 PerfScore 16.50
+ ;; size=116 bbWeight=0.50 PerfScore 16.75
G_M20990_IG15:
mov x14, x21
mov x15, x23
bl CORINFO_HELP_CHECKED_ASSIGN_REF
mov w0, w24
;; size=16 bbWeight=0.50 PerfScore 1.25
G_M20990_IG16:
ldp x23, x24, [sp, #0x40]
ldp x21, x22, [sp, #0x30]
ldp x19, x20, [sp, #0x20]
ldp fp, lr, [sp], #0x50
ret lr
;; size=20 bbWeight=0.50 PerfScore 2.50
G_M20990_IG17:
cmp w19, #1
bne G_M20990_IG18
movz x1, #0xD1FFAB1E
+ movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x20, [x1]
ldrb w1, [x20, #0x9D]
cbz w1, G_M20990_IG18
mov x19, x20
ldr w20, [fp, #0x18] // [V24 tmp15]
ldr x3, [x19, #0x80]
ldr w2, [x19, #0x98]
mov x0, x19
mov w4, #3
movn x5, #0
mov w6, wzr
movz x7, #0xD1FFAB1E // code for System.Diagnostics.Tracing.EventSource:IsEnabledCommon(ubyte,int,long,int,long,ubyte):ubyte:this
movk x7, #0xD1FFAB1E LSL #16
movk x7, #0xD1FFAB1E LSL #32
ldr x7, [x7]
blr x7
cbz w0, G_M20990_IG18
mov x0, x19
mov w2, w20
mov w1, #2
movz x3, #0xD1FFAB1E // code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,int):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
- ;; size=116 bbWeight=0.50 PerfScore 16.75
+ ;; size=120 bbWeight=0.50 PerfScore 17.00
G_M20990_IG18:
str xzr, [x21]
mov w0, wzr
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M20990_IG19:
ldp x23, x24, [sp, #0x40]
ldp x21, x22, [sp, #0x30]
ldp x19, x20, [sp, #0x20]
ldp fp, lr, [sp], #0x50
ret lr
;; size=20 bbWeight=0.50 PerfScore 2.50
G_M20990_IG20:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M20990_IG03
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 564, prolog size 32, PerfScore 495.25, instruction count 145, allocated bytes for code 564 (MethodHash=4a16ae01) for method System.Collections.Concurrent.ConcurrentStack`1[System.Numerics.Vector`1[float]]:TryPopCore(int,byref):int:this (FullOpts)
+; Total bytes of code 592, prolog size 32, PerfScore 497.75, instruction count 148, allocated bytes for code 592 (MethodHash=4a16ae01) for method System.Collections.Concurrent.ConcurrentStack`1[System.Numerics.Vector`1[float]]:TryPopCore(int,byref):int:this (FullOpts)
; ============================================================
28 (4.96 % of base) - System.Collections.Concurrent.ConcurrentStack`1[ubyte]:TryPopCore(int,byref):int:this
; Assembly listing for method System.Collections.Concurrent.ConcurrentStack`1[ubyte]:TryPopCore(int,byref):int:this (FullOpts)
; Emitting BLENDED_CODE for generic ARM64 - Unix
; FullOpts code
; optimized code
; fp based frame
; fully interruptible
; No PGO data
; 0 inlinees with PGO data; 12 single block inlinees; 9 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T10] ( 4, 14 ) ref -> x20 this class-hnd single-def <System.Collections.Concurrent.ConcurrentStack`1[ubyte]>
; V01 arg1 [V01,T03] ( 5, 35 ) int -> x19 single-def
; V02 arg2 [V02,T15] ( 4, 3 ) byref -> x21 single-def
; V03 loc0 [V03 ] ( 5, 22 ) struct ( 8) [fp+0x18] do-not-enreg[XS] addr-exposed ld-addr-op <System.Threading.SpinWait>
; V04 loc1 [V04,T06] ( 6, 28.50) ref -> x23 class-hnd exact <System.Collections.Concurrent.ConcurrentStack`1+Node[ubyte]>
; V05 loc2 [V05,T04] ( 4, 32 ) ref -> x1 class-hnd <System.Collections.Concurrent.ConcurrentStack`1+Node[ubyte]>
; V06 loc3 [V06,T09] ( 6, 18 ) int -> x22
; V07 loc4 [V07,T00] ( 5, 52.50) int -> x24
;* V08 loc5 [V08,T16] ( 0, 0 ) int -> zero-ref
;# V09 OutArgs [V09 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V10 tmp1 [V10,T13] ( 5, 5 ) ref -> x20 class-hnd exact "impAppendStmt" <System.Collections.Concurrent.CDSCollectionETWBCLProvider>
; V11 tmp2 [V11,T14] ( 5, 5 ) ref -> x19 class-hnd exact "impAppendStmt" <System.Collections.Concurrent.CDSCollectionETWBCLProvider>
;* V12 tmp3 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Concurrent.CDSCollectionETWBCLProvider>
; V13 tmp4 [V13,T18] ( 2, 2 ) int -> x20 "Inlining Arg"
;* V14 tmp5 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V15 tmp6 [V15,T11] ( 2, 16 ) byref -> x0 "Inlining Arg"
; V16 tmp7 [V16,T12] ( 2, 16 ) ref -> x1 class-hnd exact "Inlining Arg" <System.Collections.Concurrent.ConcurrentStack`1+Node[ubyte]>
;* V17 tmp8 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Concurrent.CDSCollectionETWBCLProvider>
; V18 tmp9 [V18,T19] ( 2, 2 ) int -> x19 "Inlining Arg"
;* V19 tmp10 [V19 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V20 tmp11 [V20,T05] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V21 tmp12 [V21 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
;* V22 tmp13 [V22 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V23 tmp14 [V23 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V24 tmp15 [V24 ] ( 5, 22 ) int -> [fp+0x18] do-not-enreg[X] addr-exposed "field V03._count (fldOffset=0x0)" P-DEP
;* V25 tmp16 [V25 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
; V26 tmp17 [V26,T07] ( 3, 24 ) ref -> x0 "argument with side effect"
; V27 cse0 [V27,T20] ( 3, 1.50) int -> x1 "CSE #05: moderate"
; V28 cse1 [V28,T21] ( 3, 1.50) int -> x1 "CSE #06: moderate"
; V29 cse2 [V29,T17] ( 6, 3 ) ref -> x20 multi-def "CSE #04: moderate"
; V30 cse3 [V30,T02] ( 5, 48 ) ref -> x2 multi-def "CSE #01: aggressive"
; V31 cse4 [V31,T08] ( 3, 20 ) byref -> x0 "CSE #02: aggressive"
; V32 rat0 [V32,T01] ( 4, 49 ) int -> x23 "Trip count IV"
;
; Lcl frame size = 16
G_M32866_IG01:
stp fp, lr, [sp, #-0x50]!
stp x19, x20, [sp, #0x20]
stp x21, x22, [sp, #0x30]
stp x23, x24, [sp, #0x40]
mov fp, sp
mov x20, x0
mov w19, w1
mov x21, x2
;; size=32 bbWeight=1 PerfScore 6.00
G_M32866_IG02:
str wzr, [fp, #0x18] // [V03 loc0]
mov w22, #1
b G_M32866_IG04
- align [0 bytes for IG06]
- align [0 bytes]
- align [0 bytes]
- align [0 bytes]
- ;; size=12 bbWeight=1 PerfScore 2.50
+ align [4 bytes for IG06]
+ align [4 bytes]
+ align [4 bytes]
+ align [4 bytes]
+ ;; size=28 bbWeight=1 PerfScore 2.50
G_M32866_IG03:
movz x0, #0xD1FFAB1E // data for System.Random:<Shared>k__BackingField
+ movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
mov w1, #1
mov w2, #8
ldr x3, [x0]
ldr x3, [x3, #0x40]
ldr x3, [x3, #0x30]
blr x3
sxtw w22, w0
- ;; size=40 bbWeight=4 PerfScore 62.00
+ ;; size=44 bbWeight=4 PerfScore 64.00
G_M32866_IG04:
add x0, x20, #8
ldapr x23, [x0]
cbz x23, G_M32866_IG17
;; size=12 bbWeight=8 PerfScore 36.00
G_M32866_IG05:
mov x1, x23
mov w24, #1
b G_M32866_IG07
;; size=12 bbWeight=4 PerfScore 8.00
G_M32866_IG06:
mov x1, x2
add w24, w24, #1
;; size=8 bbWeight=8 PerfScore 8.00
G_M32866_IG07:
cmp w24, w19
bge G_M32866_IG09
;; size=8 bbWeight=32 PerfScore 48.00
G_M32866_IG08:
ldr x2, [x1, #0x08]
cbnz x2, G_M32866_IG06
;; size=8 bbWeight=16 PerfScore 64.00
G_M32866_IG09:
ldrsb wzr, [x20]
ldr x2, [x1, #0x08]
mov x1, x2
mov x2, x23
bl System.Threading.Interlocked:CompareExchangeObject(byref,System.Object,System.Object):System.Object
cmp x0, x23
beq G_M32866_IG14
cmp w22, #0
ble G_M32866_IG12
;; size=36 bbWeight=4 PerfScore 44.00
G_M32866_IG10:
sxtw w23, w22
;; size=4 bbWeight=1 PerfScore 0.50
G_M32866_IG11:
add x0, fp, #24 // [V03 loc0]
movn w1, #0
movz x2, #0xD1FFAB1E // code for System.Threading.SpinWait:SpinOnceCore(int):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
sub w23, w23, #1
cbnz w23, G_M32866_IG11
;; size=36 bbWeight=16 PerfScore 128.00
G_M32866_IG12:
ldr w0, [fp, #0x18] // [V24 tmp15]
cmp w0, #10
blt G_M32866_IG13
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldapr w0, [x0]
tbnz w0, #0, G_M32866_IG03
b G_M32866_IG20
;; size=36 bbWeight=4 PerfScore 40.00
G_M32866_IG13:
lsl w22, w22, #1
b G_M32866_IG04
;; size=8 bbWeight=4 PerfScore 8.00
G_M32866_IG14:
cmp w19, #1
bne G_M32866_IG15
movz x1, #0xD1FFAB1E
+ movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x20, [x1]
ldrb w1, [x20, #0x9D]
cbz w1, G_M32866_IG15
ldr w19, [fp, #0x18] // [V24 tmp15]
ldr x3, [x20, #0x80]
ldr w2, [x20, #0x98]
mov x0, x20
mov w4, #3
movn x5, #0
mov w6, wzr
movz x7, #0xD1FFAB1E // code for System.Diagnostics.Tracing.EventSource:IsEnabledCommon(ubyte,int,long,int,long,ubyte):ubyte:this
movk x7, #0xD1FFAB1E LSL #16
movk x7, #0xD1FFAB1E LSL #32
ldr x7, [x7]
blr x7
cbz w0, G_M32866_IG15
mov x0, x20
mov w2, w19
mov w1, #2
movz x3, #0xD1FFAB1E // code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,int):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
- ;; size=112 bbWeight=0.50 PerfScore 16.50
+ ;; size=116 bbWeight=0.50 PerfScore 16.75
G_M32866_IG15:
mov x14, x21
mov x15, x23
bl CORINFO_HELP_CHECKED_ASSIGN_REF
mov w0, w24
;; size=16 bbWeight=0.50 PerfScore 1.25
G_M32866_IG16:
ldp x23, x24, [sp, #0x40]
ldp x21, x22, [sp, #0x30]
ldp x19, x20, [sp, #0x20]
ldp fp, lr, [sp], #0x50
ret lr
;; size=20 bbWeight=0.50 PerfScore 2.50
G_M32866_IG17:
cmp w19, #1
bne G_M32866_IG18
movz x1, #0xD1FFAB1E
+ movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x20, [x1]
ldrb w1, [x20, #0x9D]
cbz w1, G_M32866_IG18
mov x19, x20
ldr w20, [fp, #0x18] // [V24 tmp15]
ldr x3, [x19, #0x80]
ldr w2, [x19, #0x98]
mov x0, x19
mov w4, #3
movn x5, #0
mov w6, wzr
movz x7, #0xD1FFAB1E // code for System.Diagnostics.Tracing.EventSource:IsEnabledCommon(ubyte,int,long,int,long,ubyte):ubyte:this
movk x7, #0xD1FFAB1E LSL #16
movk x7, #0xD1FFAB1E LSL #32
ldr x7, [x7]
blr x7
cbz w0, G_M32866_IG18
mov x0, x19
mov w2, w20
mov w1, #2
movz x3, #0xD1FFAB1E // code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,int):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
- ;; size=116 bbWeight=0.50 PerfScore 16.75
+ ;; size=120 bbWeight=0.50 PerfScore 17.00
G_M32866_IG18:
str xzr, [x21]
mov w0, wzr
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M32866_IG19:
ldp x23, x24, [sp, #0x40]
ldp x21, x22, [sp, #0x30]
ldp x19, x20, [sp, #0x20]
ldp fp, lr, [sp], #0x50
ret lr
;; size=20 bbWeight=0.50 PerfScore 2.50
G_M32866_IG20:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M32866_IG03
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 564, prolog size 32, PerfScore 495.25, instruction count 145, allocated bytes for code 564 (MethodHash=fe3a7f9d) for method System.Collections.Concurrent.ConcurrentStack`1[ubyte]:TryPopCore(int,byref):int:this (FullOpts)
+; Total bytes of code 592, prolog size 32, PerfScore 497.75, instruction count 148, allocated bytes for code 592 (MethodHash=fe3a7f9d) for method System.Collections.Concurrent.ConcurrentStack`1[ubyte]:TryPopCore(int,byref):int:this (FullOpts)
; ============================================================
16 (2.13 % of base) - System.Net.NameResolutionTelemetry:OnEventCommand(System.Diagnostics.Tracing.EventCommandEventArgs):this
; Assembly listing for method System.Net.NameResolutionTelemetry:OnEventCommand(System.Diagnostics.Tracing.EventCommandEventArgs):this (FullOpts)
; Emitting BLENDED_CODE for generic ARM64 - Unix
; FullOpts code
; optimized code
; fp based frame
; fully interruptible
; No PGO data
; 0 inlinees with PGO data; 17 single block inlinees; 15 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T05] ( 13, 7.25) ref -> x19 this class-hnd single-def <System.Net.NameResolutionTelemetry>
; V01 arg1 [V01,T06] ( 3, 3 ) ref -> x1 class-hnd single-def <System.Diagnostics.Tracing.EventCommandEventArgs>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V03 tmp1 [V03,T02] ( 14, 10.50) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Diagnostics.Tracing.EventCounter>
-; V04 tmp2 [V04,T07] ( 4, 4 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <System.Func`1[double]>
-; V05 tmp3 [V05,T03] ( 10, 10 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Diagnostics.Tracing.PollingCounter>
-; V06 tmp4 [V06,T08] ( 4, 4 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <System.Func`1[double]>
-; V07 tmp5 [V07,T04] ( 10, 10 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Diagnostics.Tracing.PollingCounter>
+; V04 tmp2 [V04,T07] ( 4, 4 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Func`1[double]>
+; V05 tmp3 [V05,T03] ( 10, 10 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <System.Diagnostics.Tracing.PollingCounter>
+; V06 tmp4 [V06,T08] ( 4, 4 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Func`1[double]>
+; V07 tmp5 [V07,T04] ( 10, 10 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <System.Diagnostics.Tracing.PollingCounter>
;* V08 tmp6 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
;* V09 tmp7 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
-; V10 tmp8 [V10,T11] ( 3, 1 ) ref -> x0 class-hnd exact single-def "Inline stloc first use temp" <double[]>
-;* V11 tmp9 [V11,T13] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V10 tmp8 [V10,T10] ( 3, 1 ) ref -> x0 class-hnd exact single-def "Inline stloc first use temp" <double[]>
+;* V11 tmp9 [V11,T12] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V12 tmp10 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
;* V13 tmp11 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
-; V14 cse0 [V14,T14] ( 3, 4.50) double -> d8 "CSE #04: aggressive"
-; V15 cse1 [V15,T12] ( 2, 0.50) byref -> x14 hoist "CSE #05: aggressive"
-; V16 cse2 [V16,T09] ( 9, 3.75) ref -> x22 multi-def "CSE #02: aggressive"
-; V17 cse3 [V17,T10] ( 6, 3 ) long -> x20 multi-def "CSE #01: aggressive"
-; V18 rat0 [V18,T00] ( 4, 12.25) byref -> x14 "Strength reduced derived IV"
-; V19 rat1 [V19,T01] ( 4, 12.25) int -> x15 "Trip count IV"
+; V14 cse0 [V14,T13] ( 3, 4.50) double -> d8 "CSE #05: aggressive"
+; V15 cse1 [V15,T11] ( 2, 0.50) byref -> x14 hoist "CSE #06: aggressive"
+; V16 cse2 [V16,T09] ( 9, 3.75) ref -> x22 multi-def "CSE #01: aggressive"
+; V17 rat0 [V17,T00] ( 4, 12.25) byref -> x14 "Strength reduced derived IV"
+; V18 rat1 [V18,T01] ( 4, 12.25) int -> x15 "Trip count IV"
;
; Lcl frame size = 8
G_M14000_IG01:
stp fp, lr, [sp, #-0x40]!
str d8, [sp, #0x18]
stp x19, x20, [sp, #0x20]
stp x21, x22, [sp, #0x30]
mov fp, sp
mov x19, x0
;; size=24 bbWeight=1 PerfScore 5.00
G_M14000_IG02:
ldr w0, [x1, #0x38]
cmn w0, #2
bne G_M14000_IG09
;; size=12 bbWeight=1 PerfScore 4.50
G_M14000_IG03:
ldr x0, [x19, #0xB0]
cbnz x0, G_M14000_IG04
- movz x20, #0xD1FFAB1E
- movk x20, #0xD1FFAB1E LSL #16
- movk x20, #0xD1FFAB1E LSL #32
- add x0, x20, #0xD1FFAB1E
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
- mov x21, x0
- add x14, x21, #8
+ mov x20, x0
+ add x14, x20, #8
mov x15, x19
bl CORINFO_HELP_ASSIGN_REF
movz x0, #0xD1FFAB1E // code for System.Net.NameResolutionTelemetry:<OnEventCommand>b__9_0():double:this
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- str x0, [x21, #0x18]
- mov x0, x20
+ str x0, [x20, #0x18]
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
- mov x20, x0
+ mov x21, x0
movz x22, #0xD1FFAB1E
movk x22, #0xD1FFAB1E LSL #16
movk x22, #0xD1FFAB1E LSL #32
- stp x22, x22, [x20, #0x08]
+ stp x22, x22, [x21, #0x08]
movz x14, #0xD1FFAB1E
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
- str x14, [x20, #0x18]
- add x14, x20, #32
+ str x14, [x21, #0x18]
+ add x14, x21, #32
mov x15, x19
bl CORINFO_HELP_ASSIGN_REF
- add x14, x20, #56
- mov x15, x21
+ add x14, x21, #56
+ mov x15, x20
bl CORINFO_HELP_ASSIGN_REF
- mov x0, x20
+ mov x0, x21
movz x1, #0xD1FFAB1E // code for System.Diagnostics.Tracing.DiagnosticCounter:Publish():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
- ldr x14, [x20, #0x08]
+ ldr x14, [x21, #0x08]
cbz x14, G_M14000_IG11
movz x14, #0xD1FFAB1E
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
- str x14, [x20, #0x08]
+ str x14, [x21, #0x08]
add x14, x19, #176
- mov x15, x20
+ mov x15, x21
bl CORINFO_HELP_ASSIGN_REF
- ;; size=188 bbWeight=0.50 PerfScore 18.75
+ ;; size=192 bbWeight=0.50 PerfScore 19.00
G_M14000_IG04:
ldr x0, [x19, #0xB8]
cbnz x0, G_M14000_IG05
- movz x20, #0xD1FFAB1E
- movk x20, #0xD1FFAB1E LSL #16
- movk x20, #0xD1FFAB1E LSL #32
- add x0, x20, #0xD1FFAB1E
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
- mov x21, x0
- add x14, x21, #8
+ mov x20, x0
+ add x14, x20, #8
mov x15, x19
bl CORINFO_HELP_ASSIGN_REF
movz x0, #0xD1FFAB1E // code for System.Net.NameResolutionTelemetry:<OnEventCommand>b__9_1():double:this
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- str x0, [x21, #0x18]
- mov x0, x20
+ str x0, [x20, #0x18]
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
- mov x20, x0
+ mov x21, x0
movz x22, #0xD1FFAB1E
movk x22, #0xD1FFAB1E LSL #16
movk x22, #0xD1FFAB1E LSL #32
- stp x22, x22, [x20, #0x08]
+ stp x22, x22, [x21, #0x08]
movz x14, #0xD1FFAB1E
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
- str x14, [x20, #0x18]
- add x14, x20, #32
+ str x14, [x21, #0x18]
+ add x14, x21, #32
mov x15, x19
bl CORINFO_HELP_ASSIGN_REF
- add x14, x20, #56
- mov x15, x21
+ add x14, x21, #56
+ mov x15, x20
bl CORINFO_HELP_ASSIGN_REF
- mov x0, x20
+ mov x0, x21
movz x1, #0xD1FFAB1E // code for System.Diagnostics.Tracing.DiagnosticCounter:Publish():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
- ldr x14, [x20, #0x08]
+ ldr x14, [x21, #0x08]
cbz x14, G_M14000_IG11
movz x14, #0xD1FFAB1E
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
- str x14, [x20, #0x08]
+ str x14, [x21, #0x08]
add x14, x19, #184
- mov x15, x20
+ mov x15, x21
bl CORINFO_HELP_ASSIGN_REF
- ;; size=188 bbWeight=0.50 PerfScore 18.75
+ ;; size=192 bbWeight=0.50 PerfScore 19.00
G_M14000_IG05:
ldr x0, [x19, #0xC0]
cbnz x0, G_M14000_IG09
;; size=8 bbWeight=0.50 PerfScore 2.00
G_M14000_IG06:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x20, x0
movz x22, #0xD1FFAB1E
movk x22, #0xD1FFAB1E LSL #16
movk x22, #0xD1FFAB1E LSL #32
stp x22, x22, [x20, #0x08]
movz x14, #0xD1FFAB1E
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
str x14, [x20, #0x18]
add x14, x20, #32
mov x15, x19
bl CORINFO_HELP_ASSIGN_REF
ldr d16, [@RWD00]
str d16, [x20, #0x50]
ldr d8, [@RWD08]
str d8, [x20, #0x58]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov x1, #10
bl CORINFO_HELP_NEWARR_1_VC
add x14, x0, #16
mov w15, #10
- align [0 bytes for IG07]
+ align [4 bytes for IG07]
+ align [4 bytes]
align [0 bytes]
align [0 bytes]
- align [0 bytes]
- ;; size=108 bbWeight=0.25 PerfScore 5.00
+ ;; size=116 bbWeight=0.25 PerfScore 5.25
G_M14000_IG07:
str d8, [x14], #0x08
sub w15, w15, #1
cbnz w15, G_M14000_IG07
;; size=12 bbWeight=4 PerfScore 10.00
G_M14000_IG08:
add x14, x20, #56
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
mov x0, x20
movz x1, #0xD1FFAB1E // code for System.Diagnostics.Tracing.DiagnosticCounter:Publish():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
ldr x14, [x20, #0x08]
cbz x14, G_M14000_IG11
movz x14, #0xD1FFAB1E
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
str x14, [x20, #0x08]
ldr x14, [x20, #0x10]
cbz x14, G_M14000_IG10
movz x14, #0xD1FFAB1E
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
str x14, [x20, #0x10]
add x14, x19, #192
mov x15, x20
bl CORINFO_HELP_ASSIGN_REF
;; size=96 bbWeight=0.50 PerfScore 11.50
G_M14000_IG09:
ldp x21, x22, [sp, #0x30]
ldp x19, x20, [sp, #0x20]
ldr d8, [sp, #0x18]
ldp fp, lr, [sp], #0x40
ret lr
;; size=20 bbWeight=1 PerfScore 6.00
G_M14000_IG10:
movz w0, #0xD1FFAB1E
movk w0, #1 LSL #16
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_STRCNS
movz x1, #0xD1FFAB1E // code for System.ArgumentNullException:Throw(System.String)
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
brk #0
;; size=48 bbWeight=0 PerfScore 0.00
G_M14000_IG11:
movz w0, #0xD1FFAB1E
movk w0, #1 LSL #16
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_STRCNS
movz x1, #0xD1FFAB1E // code for System.ArgumentNullException:Throw(System.String)
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
brk #0
;; size=48 bbWeight=0 PerfScore 0.00
RWD00 dq 7FF0000000000000h ; inf
RWD08 dq FFF0000000000000h ; -inf
-; Total bytes of code 752, prolog size 24, PerfScore 81.50, instruction count 192, allocated bytes for code 752 (MethodHash=81b4c94f) for method System.Net.NameResolutionTelemetry:OnEventCommand(System.Diagnostics.Tracing.EventCommandEventArgs):this (FullOpts)
+; Total bytes of code 768, prolog size 24, PerfScore 82.25, instruction count 194, allocated bytes for code 768 (MethodHash=81b4c94f) for method System.Net.NameResolutionTelemetry:OnEventCommand(System.Diagnostics.Tracing.EventCommandEventArgs):this (FullOpts)
; ============================================================
12 (0.62 % of base) - Microsoft.VisualBasic.CompilerServices.ConversionResolution:.cctor()
; Assembly listing for method Microsoft.VisualBasic.CompilerServices.ConversionResolution:.cctor() (FullOpts)
; Emitting BLENDED_CODE for generic ARM64 - Unix
; FullOpts code
; optimized code
; fp based frame
; partially interruptible
; No PGO data
; Final local variable assignments
;
;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V01 tmp1 [V01,T00] ( 21, 42 ) ref -> x20 class-hnd exact single-def "dup spill" <byte[][]>
-; V02 tmp2 [V02,T37] ( 2, 4 ) ref -> x15 class-hnd exact single-def "Strict ordering of exceptions for Array store" <byte[]>
-; V03 tmp3 [V03,T07] ( 3, 6 ) ref -> x0 class-hnd exact single-def "dup spill" <byte[]>
-; V04 tmp4 [V04,T38] ( 2, 4 ) ref -> x15 class-hnd exact single-def "Strict ordering of exceptions for Array store" <byte[]>
-; V05 tmp5 [V05,T08] ( 3, 6 ) ref -> x0 class-hnd exact single-def "dup spill" <byte[]>
-; V06 tmp6 [V06,T09] ( 3, 6 ) ref -> x0 class-hnd exact single-def "dup spill" <byte[]>
-; V07 tmp7 [V07,T10] ( 3, 6 ) ref -> x0 class-hnd exact single-def "dup spill" <byte[]>
-; V08 tmp8 [V08,T11] ( 3, 6 ) ref -> x0 class-hnd exact single-def "dup spill" <byte[]>
-; V09 tmp9 [V09,T12] ( 3, 6 ) ref -> x0 class-hnd exact single-def "dup spill" <byte[]>
-; V10 tmp10 [V10,T13] ( 3, 6 ) ref -> x0 class-hnd exact single-def "dup spill" <byte[]>
-; V11 tmp11 [V11,T14] ( 3, 6 ) ref -> x0 class-hnd exact single-def "dup spill" <byte[]>
-; V12 tmp12 [V12,T15] ( 3, 6 ) ref -> x0 class-hnd exact single-def "dup spill" <byte[]>
-; V13 tmp13 [V13,T16] ( 3, 6 ) ref -> x0 class-hnd exact single-def "dup spill" <byte[]>
-; V14 tmp14 [V14,T17] ( 3, 6 ) ref -> x0 class-hnd exact single-def "dup spill" <byte[]>
-; V15 tmp15 [V15,T18] ( 3, 6 ) ref -> x0 class-hnd exact single-def "dup spill" <byte[]>
-; V16 tmp16 [V16,T19] ( 3, 6 ) ref -> x0 class-hnd exact single-def "dup spill" <byte[]>
-; V17 tmp17 [V17,T20] ( 3, 6 ) ref -> x0 class-hnd exact single-def "dup spill" <byte[]>
-; V18 tmp18 [V18,T21] ( 3, 6 ) ref -> x0 class-hnd exact single-def "dup spill" <byte[]>
-; V19 tmp19 [V19,T39] ( 2, 4 ) ref -> x15 class-hnd exact single-def "Strict ordering of exceptions for Array store" <byte[]>
-; V20 tmp20 [V20,T22] ( 3, 6 ) ref -> x0 class-hnd exact single-def "dup spill" <byte[]>
+; V02 tmp2 [V02,T38] ( 2, 4 ) ref -> x15 class-hnd exact single-def "Strict ordering of exceptions for Array store" <byte[]>
+; V03 tmp3 [V03,T08] ( 3, 6 ) ref -> x0 class-hnd exact single-def "dup spill" <byte[]>
+; V04 tmp4 [V04,T39] ( 2, 4 ) ref -> x15 class-hnd exact single-def "Strict ordering of exceptions for Array store" <byte[]>
+; V05 tmp5 [V05,T09] ( 3, 6 ) ref -> x0 class-hnd exact single-def "dup spill" <byte[]>
+; V06 tmp6 [V06,T10] ( 3, 6 ) ref -> x0 class-hnd exact single-def "dup spill" <byte[]>
+; V07 tmp7 [V07,T11] ( 3, 6 ) ref -> x0 class-hnd exact single-def "dup spill" <byte[]>
+; V08 tmp8 [V08,T12] ( 3, 6 ) ref -> x0 class-hnd exact single-def "dup spill" <byte[]>
+; V09 tmp9 [V09,T13] ( 3, 6 ) ref -> x0 class-hnd exact single-def "dup spill" <byte[]>
+; V10 tmp10 [V10,T14] ( 3, 6 ) ref -> x0 class-hnd exact single-def "dup spill" <byte[]>
+; V11 tmp11 [V11,T15] ( 3, 6 ) ref -> x0 class-hnd exact single-def "dup spill" <byte[]>
+; V12 tmp12 [V12,T16] ( 3, 6 ) ref -> x0 class-hnd exact single-def "dup spill" <byte[]>
+; V13 tmp13 [V13,T17] ( 3, 6 ) ref -> x0 class-hnd exact single-def "dup spill" <byte[]>
+; V14 tmp14 [V14,T18] ( 3, 6 ) ref -> x0 class-hnd exact single-def "dup spill" <byte[]>
+; V15 tmp15 [V15,T19] ( 3, 6 ) ref -> x0 class-hnd exact single-def "dup spill" <byte[]>
+; V16 tmp16 [V16,T20] ( 3, 6 ) ref -> x0 class-hnd exact single-def "dup spill" <byte[]>
+; V17 tmp17 [V17,T21] ( 3, 6 ) ref -> x0 class-hnd exact single-def "dup spill" <byte[]>
+; V18 tmp18 [V18,T22] ( 3, 6 ) ref -> x0 class-hnd exact single-def "dup spill" <byte[]>
+; V19 tmp19 [V19,T40] ( 2, 4 ) ref -> x15 class-hnd exact single-def "Strict ordering of exceptions for Array store" <byte[]>
+; V20 tmp20 [V20,T23] ( 3, 6 ) ref -> x0 class-hnd exact single-def "dup spill" <byte[]>
; V21 tmp21 [V21,T01] ( 21, 42 ) ref -> x20 class-hnd exact single-def "dup spill" <int[][]>
-; V22 tmp22 [V22,T40] ( 2, 4 ) ref -> x15 class-hnd exact single-def "Strict ordering of exceptions for Array store" <int[]>
-; V23 tmp23 [V23,T41] ( 2, 4 ) ref -> x15 class-hnd exact single-def "Strict ordering of exceptions for Array store" <int[]>
-; V24 tmp24 [V24,T42] ( 2, 4 ) ref -> x15 class-hnd exact single-def "Strict ordering of exceptions for Array store" <int[]>
-; V25 tmp25 [V25,T23] ( 3, 6 ) ref -> x0 class-hnd exact single-def "dup spill" <int[]>
-; V26 tmp26 [V26,T43] ( 2, 4 ) ref -> x15 class-hnd exact single-def "Strict ordering of exceptions for Array store" <int[]>
-; V27 tmp27 [V27,T24] ( 3, 6 ) ref -> x0 class-hnd exact single-def "dup spill" <int[]>
-; V28 tmp28 [V28,T25] ( 3, 6 ) ref -> x0 class-hnd exact single-def "dup spill" <int[]>
-; V29 tmp29 [V29,T26] ( 3, 6 ) ref -> x0 class-hnd exact single-def "dup spill" <int[]>
-; V30 tmp30 [V30,T27] ( 3, 6 ) ref -> x0 class-hnd exact single-def "dup spill" <int[]>
-; V31 tmp31 [V31,T28] ( 3, 6 ) ref -> x0 class-hnd exact single-def "dup spill" <int[]>
-; V32 tmp32 [V32,T29] ( 3, 6 ) ref -> x0 class-hnd exact single-def "dup spill" <int[]>
-; V33 tmp33 [V33,T30] ( 3, 6 ) ref -> x0 class-hnd exact single-def "dup spill" <int[]>
-; V34 tmp34 [V34,T31] ( 3, 6 ) ref -> x0 class-hnd exact single-def "dup spill" <int[]>
-; V35 tmp35 [V35,T32] ( 3, 6 ) ref -> x0 class-hnd exact single-def "dup spill" <int[]>
-; V36 tmp36 [V36,T33] ( 3, 6 ) ref -> x0 class-hnd exact single-def "dup spill" <int[]>
-; V37 tmp37 [V37,T34] ( 3, 6 ) ref -> x0 class-hnd exact single-def "dup spill" <int[]>
-; V38 tmp38 [V38,T44] ( 2, 4 ) ref -> x15 class-hnd exact single-def "Strict ordering of exceptions for Array store" <int[]>
-; V39 tmp39 [V39,T45] ( 2, 4 ) ref -> x15 class-hnd exact single-def "Strict ordering of exceptions for Array store" <int[]>
-; V40 tmp40 [V40,T46] ( 2, 4 ) ref -> x15 class-hnd exact single-def "Strict ordering of exceptions for Array store" <int[]>
-; V41 tmp41 [V41,T35] ( 3, 6 ) ref -> x1 single-def "arr expr"
-; V42 tmp42 [V42,T47] ( 2, 4 ) ref -> x1 single-def "arr expr"
-; V43 tmp43 [V43,T48] ( 2, 4 ) ref -> x1 single-def "arr expr"
-; V44 tmp44 [V44,T49] ( 2, 4 ) ref -> x1 single-def "arr expr"
-; V45 tmp45 [V45,T50] ( 2, 4 ) ref -> x1 single-def "arr expr"
-; V46 tmp46 [V46,T51] ( 2, 4 ) ref -> x1 single-def "arr expr"
-; V47 tmp47 [V47,T52] ( 2, 4 ) ref -> x1 single-def "arr expr"
-; V48 tmp48 [V48,T53] ( 2, 4 ) ref -> x1 single-def "arr expr"
-; V49 tmp49 [V49,T54] ( 2, 4 ) ref -> x1 single-def "arr expr"
-; V50 tmp50 [V50,T55] ( 2, 4 ) ref -> x1 single-def "arr expr"
-; V51 tmp51 [V51,T56] ( 2, 4 ) ref -> x0 single-def "arr expr"
-; V52 cse0 [V52,T04] ( 12, 12 ) ref -> x0 "CSE #05: aggressive"
-; V53 cse1 [V53,T02] ( 41, 41 ) long -> x19 "CSE #01: aggressive"
-; V54 cse2 [V54,T03] ( 24, 24 ) long -> x21 "CSE #02: aggressive"
-; V55 cse3 [V55,T36] ( 5, 5 ) long -> x23 "CSE #04: moderate"
-; V56 cse4 [V56,T05] ( 9, 9 ) int -> x2 "CSE #06: aggressive"
-; V57 cse5 [V57,T06] ( 6, 6 ) long -> x22 "CSE #03: moderate"
+; V22 tmp22 [V22,T41] ( 2, 4 ) ref -> x15 class-hnd exact single-def "Strict ordering of exceptions for Array store" <int[]>
+; V23 tmp23 [V23,T42] ( 2, 4 ) ref -> x15 class-hnd exact single-def "Strict ordering of exceptions for Array store" <int[]>
+; V24 tmp24 [V24,T43] ( 2, 4 ) ref -> x15 class-hnd exact single-def "Strict ordering of exceptions for Array store" <int[]>
+; V25 tmp25 [V25,T24] ( 3, 6 ) ref -> x0 class-hnd exact single-def "dup spill" <int[]>
+; V26 tmp26 [V26,T44] ( 2, 4 ) ref -> x15 class-hnd exact single-def "Strict ordering of exceptions for Array store" <int[]>
+; V27 tmp27 [V27,T25] ( 3, 6 ) ref -> x0 class-hnd exact single-def "dup spill" <int[]>
+; V28 tmp28 [V28,T26] ( 3, 6 ) ref -> x0 class-hnd exact single-def "dup spill" <int[]>
+; V29 tmp29 [V29,T27] ( 3, 6 ) ref -> x0 class-hnd exact single-def "dup spill" <int[]>
+; V30 tmp30 [V30,T28] ( 3, 6 ) ref -> x0 class-hnd exact single-def "dup spill" <int[]>
+; V31 tmp31 [V31,T29] ( 3, 6 ) ref -> x0 class-hnd exact single-def "dup spill" <int[]>
+; V32 tmp32 [V32,T30] ( 3, 6 ) ref -> x0 class-hnd exact single-def "dup spill" <int[]>
+; V33 tmp33 [V33,T31] ( 3, 6 ) ref -> x0 class-hnd exact single-def "dup spill" <int[]>
+; V34 tmp34 [V34,T32] ( 3, 6 ) ref -> x0 class-hnd exact single-def "dup spill" <int[]>
+; V35 tmp35 [V35,T33] ( 3, 6 ) ref -> x0 class-hnd exact single-def "dup spill" <int[]>
+; V36 tmp36 [V36,T34] ( 3, 6 ) ref -> x0 class-hnd exact single-def "dup spill" <int[]>
+; V37 tmp37 [V37,T35] ( 3, 6 ) ref -> x0 class-hnd exact single-def "dup spill" <int[]>
+; V38 tmp38 [V38,T45] ( 2, 4 ) ref -> x15 class-hnd exact single-def "Strict ordering of exceptions for Array store" <int[]>
+; V39 tmp39 [V39,T46] ( 2, 4 ) ref -> x15 class-hnd exact single-def "Strict ordering of exceptions for Array store" <int[]>
+; V40 tmp40 [V40,T47] ( 2, 4 ) ref -> x15 class-hnd exact single-def "Strict ordering of exceptions for Array store" <int[]>
+; V41 tmp41 [V41,T36] ( 3, 6 ) ref -> x1 single-def "arr expr"
+; V42 tmp42 [V42,T48] ( 2, 4 ) ref -> x1 single-def "arr expr"
+; V43 tmp43 [V43,T49] ( 2, 4 ) ref -> x1 single-def "arr expr"
+; V44 tmp44 [V44,T50] ( 2, 4 ) ref -> x1 single-def "arr expr"
+; V45 tmp45 [V45,T51] ( 2, 4 ) ref -> x1 single-def "arr expr"
+; V46 tmp46 [V46,T52] ( 2, 4 ) ref -> x1 single-def "arr expr"
+; V47 tmp47 [V47,T53] ( 2, 4 ) ref -> x1 single-def "arr expr"
+; V48 tmp48 [V48,T54] ( 2, 4 ) ref -> x1 single-def "arr expr"
+; V49 tmp49 [V49,T55] ( 2, 4 ) ref -> x1 single-def "arr expr"
+; V50 tmp50 [V50,T56] ( 2, 4 ) ref -> x1 single-def "arr expr"
+; V51 tmp51 [V51,T57] ( 2, 4 ) ref -> x0 single-def "arr expr"
+; V52 cse0 [V52,T05] ( 12, 12 ) ref -> x0 "CSE #05: aggressive"
+; V53 cse1 [V53,T02] ( 24, 24 ) long -> x22 "CSE #02: aggressive"
+; V54 cse2 [V54,T03] ( 22, 22 ) long -> x19 "CSE #07: aggressive"
+; V55 cse3 [V55,T04] ( 20, 20 ) long -> x21 "CSE #01: aggressive"
+; V56 cse4 [V56,T37] ( 5, 5 ) long -> x21 "CSE #04: moderate"
+; V57 cse5 [V57,T06] ( 9, 9 ) int -> x2 "CSE #06: aggressive"
+; V58 cse6 [V58,T07] ( 6, 6 ) long -> x23 "CSE #03: moderate"
;
; Lcl frame size = 8
G_M52393_IG01:
stp fp, lr, [sp, #-0x40]!
stp x19, x20, [sp, #0x18]
stp x21, x22, [sp, #0x28]
str x23, [sp, #0x38]
mov fp, sp
;; size=20 bbWeight=1 PerfScore 4.50
G_M52393_IG02:
movz x19, #0xD1FFAB1E
movk x19, #0xD1FFAB1E LSL #16
movk x19, #0xD1FFAB1E LSL #32
- add x0, x19, #0xD1FFAB1E
+ mov x0, x19
mov x1, #19
bl CORINFO_HELP_NEWARR_1_OBJ
mov x20, x0
- mov x0, x19
+ movz x21, #0xD1FFAB1E
+ movk x21, #0xD1FFAB1E LSL #16
+ movk x21, #0xD1FFAB1E LSL #32
+ mov x0, x21
mov x1, #19
bl CORINFO_HELP_NEWARR_1_VC
mov x15, x0
add x14, x20, #16
bl CORINFO_HELP_ASSIGN_REF
- mov x0, x19
+ mov x0, x21
mov x1, #19
bl CORINFO_HELP_NEWARR_1_VC
- movz x21, #0xD1FFAB1E
- movk x21, #0xD1FFAB1E LSL #16
- movk x21, #0xD1FFAB1E LSL #32
- ;; size=76 bbWeight=1 PerfScore 11.50
+ movz x22, #0xD1FFAB1E
+ movk x22, #0xD1FFAB1E LSL #16
+ movk x22, #0xD1FFAB1E LSL #32
+ ;; size=88 bbWeight=1 PerfScore 13.00
G_M52393_IG03:
- add x12, x21, #0xD1FFAB1E
+ add x12, x22, #0xD1FFAB1E
ldp x14, x15, [x12, #0x10]
stp x14, x15, [x0, #0x10]
ldr w14, [x12, #0x1F]
str w14, [x0, #0x1F]
;; size=20 bbWeight=1 PerfScore 9.50
G_M52393_IG04:
add x14, x20, #24
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
- mov x0, x19
+ mov x0, x21
mov x1, #19
bl CORINFO_HELP_NEWARR_1_VC
mov x15, x0
add x14, x20, #32
bl CORINFO_HELP_ASSIGN_REF
- mov x0, x19
+ mov x0, x21
mov x1, #19
bl CORINFO_HELP_NEWARR_1_VC
;; size=48 bbWeight=1 PerfScore 8.00
G_M52393_IG05:
- add x12, x21, #0xD1FFAB1E
+ add x12, x22, #0xD1FFAB1E
ldp x14, x15, [x12, #0x10]
stp x14, x15, [x0, #0x10]
ldr w14, [x12, #0x1F]
str w14, [x0, #0x1F]
;; size=20 bbWeight=1 PerfScore 9.50
G_M52393_IG06:
add x14, x20, #40
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
- mov x0, x19
+ mov x0, x21
mov x1, #19
bl CORINFO_HELP_NEWARR_1_VC
;; size=24 bbWeight=1 PerfScore 4.00
G_M52393_IG07:
- add x12, x21, #0xD1FFAB1E
+ add x12, x22, #0xD1FFAB1E
ldp x14, x15, [x12, #0x10]
stp x14, x15, [x0, #0x10]
ldr w14, [x12, #0x1F]
str w14, [x0, #0x1F]
;; size=20 bbWeight=1 PerfScore 9.50
G_M52393_IG08:
add x14, x20, #48
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
- mov x0, x19
+ mov x0, x21
mov x1, #19
bl CORINFO_HELP_NEWARR_1_VC
- movz x22, #0xD1FFAB1E
- movk x22, #0xD1FFAB1E LSL #16
- movk x22, #0xD1FFAB1E LSL #32
- ldp x14, x15, [x22]
+ movz x23, #0xD1FFAB1E
+ movk x23, #0xD1FFAB1E LSL #16
+ movk x23, #0xD1FFAB1E LSL #32
+ ldp x14, x15, [x23]
stp x14, x15, [x0, #0x10]
- ldr w14, [x22, #0x0F]
+ ldr w14, [x23, #0x0F]
str w14, [x0, #0x1F]
add x14, x20, #56
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
- mov x0, x19
+ mov x0, x21
mov x1, #19
bl CORINFO_HELP_NEWARR_1_VC
;; size=76 bbWeight=1 PerfScore 18.50
G_M52393_IG09:
- add x12, x21, #0xD1FFAB1E
+ add x12, x22, #0xD1FFAB1E
ldp x14, x15, [x12, #0x10]
stp x14, x15, [x0, #0x10]
ldr w14, [x12, #0x1F]
str w14, [x0, #0x1F]
;; size=20 bbWeight=1 PerfScore 9.50
G_M52393_IG10:
add x14, x20, #64
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
- mov x0, x19
+ mov x0, x21
mov x1, #19
bl CORINFO_HELP_NEWARR_1_VC
;; size=24 bbWeight=1 PerfScore 4.00
G_M52393_IG11:
- add x12, x21, #0xD1FFAB1E
+ add x12, x22, #0xD1FFAB1E
ldp x14, x15, [x12, #0x10]
stp x14, x15, [x0, #0x10]
ldr w14, [x12, #0x1F]
str w14, [x0, #0x1F]
;; size=20 bbWeight=1 PerfScore 9.50
G_M52393_IG12:
add x14, x20, #72
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
- mov x0, x19
+ mov x0, x21
mov x1, #19
bl CORINFO_HELP_NEWARR_1_VC
- ldp x14, x15, [x21]
+ ldp x14, x15, [x22]
stp x14, x15, [x0, #0x10]
- ldr w14, [x21, #0x0F]
+ ldr w14, [x22, #0x0F]
str w14, [x0, #0x1F]
add x14, x20, #80
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
- mov x0, x19
+ mov x0, x21
mov x1, #19
bl CORINFO_HELP_NEWARR_1_VC
;; size=64 bbWeight=1 PerfScore 17.00
G_M52393_IG13:
- add x12, x21, #0xD1FFAB1E
+ add x12, x22, #0xD1FFAB1E
ldp x14, x15, [x12, #0x10]
stp x14, x15, [x0, #0x10]
ldr w14, [x12, #0x1F]
str w14, [x0, #0x1F]
;; size=20 bbWeight=1 PerfScore 9.50
G_M52393_IG14:
add x14, x20, #88
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
- mov x0, x19
+ mov x0, x21
mov x1, #19
bl CORINFO_HELP_NEWARR_1_VC
;; size=24 bbWeight=1 PerfScore 4.00
G_M52393_IG15:
- add x12, x21, #0xD1FFAB1E
+ add x12, x22, #0xD1FFAB1E
ldp x14, x15, [x12, #0x10]
stp x14, x15, [x0, #0x10]
ldr w14, [x12, #0x1F]
str w14, [x0, #0x1F]
;; size=20 bbWeight=1 PerfScore 9.50
G_M52393_IG16:
add x14, x20, #96
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
- mov x0, x19
+ mov x0, x21
mov x1, #19
bl CORINFO_HELP_NEWARR_1_VC
;; size=24 bbWeight=1 PerfScore 4.00
G_M52393_IG17:
- add x12, x21, #0xD1FFAB1E
+ add x12, x22, #0xD1FFAB1E
ldp x14, x15, [x12, #0x10]
stp x14, x15, [x0, #0x10]
ldr w14, [x12, #0x1F]
str w14, [x0, #0x1F]
;; size=20 bbWeight=1 PerfScore 9.50
G_M52393_IG18:
add x14, x20, #104
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
- mov x0, x19
+ mov x0, x21
mov x1, #19
bl CORINFO_HELP_NEWARR_1_VC
;; size=24 bbWeight=1 PerfScore 4.00
G_M52393_IG19:
- add x12, x21, #3
+ add x12, x22, #3
ldp x14, x15, [x12, #0x10]
stp x14, x15, [x0, #0x10]
ldr w14, [x12, #0x1F]
str w14, [x0, #0x1F]
;; size=20 bbWeight=1 PerfScore 9.50
G_M52393_IG20:
add x14, x20, #112
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
- mov x0, x19
+ mov x0, x21
mov x1, #19
bl CORINFO_HELP_NEWARR_1_VC
;; size=24 bbWeight=1 PerfScore 4.00
G_M52393_IG21:
- add x12, x21, #0xD1FFAB1E
+ add x12, x22, #0xD1FFAB1E
ldp x14, x15, [x12, #0x10]
stp x14, x15, [x0, #0x10]
ldr w14, [x12, #0x1F]
str w14, [x0, #0x1F]
;; size=20 bbWeight=1 PerfScore 9.50
G_M52393_IG22:
add x14, x20, #120
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
- mov x0, x19
+ mov x0, x21
mov x1, #19
bl CORINFO_HELP_NEWARR_1_VC
;; size=24 bbWeight=1 PerfScore 4.00
G_M52393_IG23:
- add x12, x21, #0xD1FFAB1E
+ add x12, x22, #0xD1FFAB1E
ldp x14, x15, [x12, #0x10]
stp x14, x15, [x0, #0x10]
ldr w14, [x12, #0x1F]
str w14, [x0, #0x1F]
;; size=20 bbWeight=1 PerfScore 9.50
G_M52393_IG24:
add x14, x20, #128
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
- mov x0, x19
+ mov x0, x21
mov x1, #19
bl CORINFO_HELP_NEWARR_1_VC
;; size=24 bbWeight=1 PerfScore 4.00
G_M52393_IG25:
- sub x12, x22, #111
+ sub x12, x23, #111
ldp x14, x15, [x12, #0x10]
stp x14, x15, [x0, #0x10]
ldr w14, [x12, #0x1F]
str w14, [x0, #0x1F]
;; size=20 bbWeight=1 PerfScore 9.50
G_M52393_IG26:
add x14, x20, #136
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
- mov x0, x19
+ mov x0, x21
mov x1, #19
bl CORINFO_HELP_NEWARR_1_VC
;; size=24 bbWeight=1 PerfScore 4.00
G_M52393_IG27:
- add x12, x21, #0xD1FFAB1E
+ add x12, x22, #0xD1FFAB1E
ldp x14, x15, [x12, #0x10]
stp x14, x15, [x0, #0x10]
ldr w14, [x12, #0x1F]
str w14, [x0, #0x1F]
;; size=20 bbWeight=1 PerfScore 9.50
G_M52393_IG28:
add x14, x20, #144
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
- mov x0, x19
+ mov x0, x21
mov x1, #19
bl CORINFO_HELP_NEWARR_1_VC
mov x15, x0
add x14, x20, #152
bl CORINFO_HELP_ASSIGN_REF
- mov x0, x19
+ mov x0, x21
mov x1, #19
bl CORINFO_HELP_NEWARR_1_VC
;; size=48 bbWeight=1 PerfScore 8.00
G_M52393_IG29:
- add x12, x21, #0xD1FFAB1E
+ add x12, x22, #0xD1FFAB1E
ldp x14, x15, [x12, #0x10]
stp x14, x15, [x0, #0x10]
ldr w14, [x12, #0x1F]
str w14, [x0, #0x1F]
;; size=20 bbWeight=1 PerfScore 9.50
G_M52393_IG30:
add x14, x20, #160
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
- movz x23, #0xD1FFAB1E // data for Microsoft.VisualBasic.CompilerServices.ConversionResolution:s_conversionTable
- movk x23, #0xD1FFAB1E LSL #16
- movk x23, #0xD1FFAB1E LSL #32
- mov x14, x23
+ movz x21, #0xD1FFAB1E // data for Microsoft.VisualBasic.CompilerServices.ConversionResolution:s_conversionTable
+ movk x21, #0xD1FFAB1E LSL #16
+ movk x21, #0xD1FFAB1E LSL #32
+ mov x14, x21
mov x15, x20
bl CORINFO_HELP_ASSIGN_REF
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov x1, #19
bl CORINFO_HELP_NEWARR_1_VC
- add x14, x23, #8
+ add x14, x21, #8
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
- ldr x0, [x23, #0x08]
+ ldr x0, [x21, #0x08]
mov x1, x0
ldr w2, [x1, #0x08]
cmp w2, #6
bls G_M52393_IG56
mov w3, #1
str w3, [x1, #0x28]
mov x1, x0
mov w3, #2
str w3, [x1, #0x24]
mov x1, x0
cmp w2, #7
bls G_M52393_IG56
mov w3, #3
str w3, [x1, #0x2C]
mov x1, x0
cmp w2, #8
bls G_M52393_IG56
mov w3, #4
str w3, [x1, #0x30]
mov x1, x0
cmp w2, #9
bls G_M52393_IG56
mov w3, #5
str w3, [x1, #0x34]
mov x1, x0
cmp w2, #10
bls G_M52393_IG56
mov w3, #6
str w3, [x1, #0x38]
mov x1, x0
cmp w2, #11
bls G_M52393_IG56
mov w3, #7
str w3, [x1, #0x3C]
mov x1, x0
cmp w2, #12
bls G_M52393_IG56
mov w3, #8
str w3, [x1, #0x40]
mov x1, x0
cmp w2, #15
bls G_M52393_IG56
mov w2, #9
str w2, [x1, #0x4C]
mov x1, x0
mov w2, #10
str w2, [x1, #0x44]
mov w1, #11
str w1, [x0, #0x48]
add x0, x19, #0xD1FFAB1E
mov x1, #19
bl CORINFO_HELP_NEWARR_1_OBJ
mov x20, x0
add x0, x19, #0xD1FFAB1E
mov x1, #19
bl CORINFO_HELP_NEWARR_1_VC
mov x15, x0
add x14, x20, #16
bl CORINFO_HELP_ASSIGN_REF
add x0, x19, #0xD1FFAB1E
mov x1, #19
bl CORINFO_HELP_NEWARR_1_VC
mov x15, x0
add x14, x20, #24
bl CORINFO_HELP_ASSIGN_REF
add x0, x19, #0xD1FFAB1E
mov x1, #19
bl CORINFO_HELP_NEWARR_1_VC
mov x15, x0
add x14, x20, #32
bl CORINFO_HELP_ASSIGN_REF
add x0, x19, #0xD1FFAB1E
mov x1, #19
bl CORINFO_HELP_NEWARR_1_VC
;; size=368 bbWeight=1 PerfScore 66.50
G_M52393_IG31:
- add x12, x21, #191
+ add x12, x22, #191
ldp q16, q17, [x12, #0x10]
stp q16, q17, [x0, #0x10]
ldp q16, q17, [x12, #0x30]
stp q16, q17, [x0, #0x30]
ldr q16, [x12, #0x4C]
str q16, [x0, #0x4C]
;; size=28 bbWeight=1 PerfScore 12.50
G_M52393_IG32:
add x14, x20, #40
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x0, x19, #0xD1FFAB1E
mov x1, #19
bl CORINFO_HELP_NEWARR_1_VC
mov x15, x0
add x14, x20, #48
bl CORINFO_HELP_ASSIGN_REF
add x0, x19, #0xD1FFAB1E
mov x1, #19
bl CORINFO_HELP_NEWARR_1_VC
;; size=48 bbWeight=1 PerfScore 8.00
G_M52393_IG33:
- add x12, x21, #0xD1FFAB1E
+ add x12, x22, #0xD1FFAB1E
ldp q16, q17, [x12, #0x10]
stp q16, q17, [x0, #0x10]
ldp q16, q17, [x12, #0x30]
stp q16, q17, [x0, #0x30]
ldr q16, [x12, #0x4C]
str q16, [x0, #0x4C]
;; size=28 bbWeight=1 PerfScore 12.50
G_M52393_IG34:
add x14, x20, #56
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x0, x19, #0xD1FFAB1E
mov x1, #19
bl CORINFO_HELP_NEWARR_1_VC
;; size=24 bbWeight=1 PerfScore 4.00
G_M52393_IG35:
- add x12, x22, #79
+ add x12, x23, #79
ldp q16, q17, [x12, #0x10]
stp q16, q17, [x0, #0x10]
ldp q16, q17, [x12, #0x30]
stp q16, q17, [x0, #0x30]
ldr q16, [x12, #0x4C]
str q16, [x0, #0x4C]
;; size=28 bbWeight=1 PerfScore 12.50
G_M52393_IG36:
add x14, x20, #64
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x0, x19, #0xD1FFAB1E
mov x1, #19
bl CORINFO_HELP_NEWARR_1_VC
;; size=24 bbWeight=1 PerfScore 4.00
G_M52393_IG37:
- add x12, x21, #0xD1FFAB1E
+ add x12, x22, #0xD1FFAB1E
ldp q16, q17, [x12, #0x10]
stp q16, q17, [x0, #0x10]
ldp q16, q17, [x12, #0x30]
stp q16, q17, [x0, #0x30]
ldr q16, [x12, #0x4C]
str q16, [x0, #0x4C]
;; size=28 bbWeight=1 PerfScore 12.50
G_M52393_IG38:
add x14, x20, #72
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x0, x19, #0xD1FFAB1E
mov x1, #19
bl CORINFO_HELP_NEWARR_1_VC
;; size=24 bbWeight=1 PerfScore 4.00
G_M52393_IG39:
- add x12, x21, #0xD1FFAB1E
+ add x12, x22, #0xD1FFAB1E
ldp q16, q17, [x12, #0x10]
stp q16, q17, [x0, #0x10]
ldp q16, q17, [x12, #0x30]
stp q16, q17, [x0, #0x30]
ldr q16, [x12, #0x4C]
str q16, [x0, #0x4C]
;; size=28 bbWeight=1 PerfScore 12.50
G_M52393_IG40:
add x14, x20, #80
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x0, x19, #0xD1FFAB1E
mov x1, #19
bl CORINFO_HELP_NEWARR_1_VC
;; size=24 bbWeight=1 PerfScore 4.00
G_M52393_IG41:
- add x12, x21, #0xD1FFAB1E
+ add x12, x22, #0xD1FFAB1E
ldp q16, q17, [x12, #0x10]
stp q16, q17, [x0, #0x10]
ldp q16, q17, [x12, #0x30]
stp q16, q17, [x0, #0x30]
ldr q16, [x12, #0x4C]
str q16, [x0, #0x4C]
;; size=28 bbWeight=1 PerfScore 12.50
G_M52393_IG42:
add x14, x20, #88
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x0, x19, #0xD1FFAB1E
mov x1, #19
bl CORINFO_HELP_NEWARR_1_VC
;; size=24 bbWeight=1 PerfScore 4.00
G_M52393_IG43:
- add x12, x21, #0xD1FFAB1E
+ add x12, x22, #0xD1FFAB1E
ldp q16, q17, [x12, #0x10]
stp q16, q17, [x0, #0x10]
ldp q16, q17, [x12, #0x30]
stp q16, q17, [x0, #0x30]
ldr q16, [x12, #0x4C]
str q16, [x0, #0x4C]
;; size=28 bbWeight=1 PerfScore 12.50
G_M52393_IG44:
add x14, x20, #96
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x0, x19, #0xD1FFAB1E
mov x1, #19
bl CORINFO_HELP_NEWARR_1_VC
;; size=24 bbWeight=1 PerfScore 4.00
G_M52393_IG45:
- add x12, x21, #0xD1FFAB1E
+ add x12, x22, #0xD1FFAB1E
ldp q16, q17, [x12, #0x10]
stp q16, q17, [x0, #0x10]
ldp q16, q17, [x12, #0x30]
stp q16, q17, [x0, #0x30]
ldr q16, [x12, #0x4C]
str q16, [x0, #0x4C]
;; size=28 bbWeight=1 PerfScore 12.50
G_M52393_IG46:
add x14, x20, #104
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x0, x19, #0xD1FFAB1E
mov x1, #19
bl CORINFO_HELP_NEWARR_1_VC
;; size=24 bbWeight=1 PerfScore 4.00
G_M52393_IG47:
- sub x12, x22, #92
+ sub x12, x23, #92
ldp q16, q17, [x12, #0x10]
stp q16, q17, [x0, #0x10]
ldp q16, q17, [x12, #0x30]
stp q16, q17, [x0, #0x30]
ldr q16, [x12, #0x4C]
str q16, [x0, #0x4C]
;; size=28 bbWeight=1 PerfScore 12.50
G_M52393_IG48:
add x14, x20, #112
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x0, x19, #0xD1FFAB1E
mov x1, #19
bl CORINFO_HELP_NEWARR_1_VC
;; size=24 bbWeight=1 PerfScore 4.00
G_M52393_IG49:
- add x12, x21, #0xD1FFAB1E
+ add x12, x22, #0xD1FFAB1E
ldp q16, q17, [x12, #0x10]
stp q16, q17, [x0, #0x10]
ldp q16, q17, [x12, #0x30]
stp q16, q17, [x0, #0x30]
ldr q16, [x12, #0x4C]
str q16, [x0, #0x4C]
;; size=28 bbWeight=1 PerfScore 12.50
G_M52393_IG50:
add x14, x20, #120
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x0, x19, #0xD1FFAB1E
mov x1, #19
bl CORINFO_HELP_NEWARR_1_VC
;; size=24 bbWeight=1 PerfScore 4.00
G_M52393_IG51:
- add x12, x22, #3
+ add x12, x23, #3
ldp q16, q17, [x12, #0x10]
stp q16, q17, [x0, #0x10]
ldp q16, q17, [x12, #0x30]
stp q16, q17, [x0, #0x30]
ldr q16, [x12, #0x4C]
str q16, [x0, #0x4C]
;; size=28 bbWeight=1 PerfScore 12.50
G_M52393_IG52:
add x14, x20, #128
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x0, x19, #0xD1FFAB1E
mov x1, #19
bl CORINFO_HELP_NEWARR_1_VC
;; size=24 bbWeight=1 PerfScore 4.00
G_M52393_IG53:
- add x12, x21, #0xD1FFAB1E
+ add x12, x22, #0xD1FFAB1E
ldp q16, q17, [x12, #0x10]
stp q16, q17, [x0, #0x10]
ldp q16, q17, [x12, #0x30]
stp q16, q17, [x0, #0x30]
ldr q16, [x12, #0x4C]
str q16, [x0, #0x4C]
;; size=28 bbWeight=1 PerfScore 12.50
G_M52393_IG54:
add x14, x20, #136
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x0, x19, #0xD1FFAB1E
mov x1, #19
bl CORINFO_HELP_NEWARR_1_VC
mov x15, x0
add x14, x20, #144
bl CORINFO_HELP_ASSIGN_REF
add x0, x19, #0xD1FFAB1E
mov x1, #19
bl CORINFO_HELP_NEWARR_1_VC
mov x15, x0
add x14, x20, #152
bl CORINFO_HELP_ASSIGN_REF
add x0, x19, #0xD1FFAB1E
mov x1, #19
bl CORINFO_HELP_NEWARR_1_VC
mov x15, x0
add x14, x20, #160
bl CORINFO_HELP_ASSIGN_REF
- add x14, x23, #16
+ add x14, x21, #16
mov x15, x20
bl CORINFO_HELP_ASSIGN_REF
;; size=96 bbWeight=1 PerfScore 16.00
G_M52393_IG55:
ldr x23, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x40
ret lr
;; size=20 bbWeight=1 PerfScore 6.00
G_M52393_IG56:
bl CORINFO_HELP_RNGCHKFAIL
brk #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1944, prolog size 20, PerfScore 523.00, instruction count 486, allocated bytes for code 1944 (MethodHash=83483356) for method Microsoft.VisualBasic.CompilerServices.ConversionResolution:.cctor() (FullOpts)
+; Total bytes of code 1956, prolog size 20, PerfScore 524.50, instruction count 489, allocated bytes for code 1956 (MethodHash=83483356) for method Microsoft.VisualBasic.CompilerServices.ConversionResolution:.cctor() (FullOpts)
; ============================================================
8 (1.37 % of base) - System.Collections.Concurrent.ConcurrentStack`1[System.__Canon]:TryPopCore(int,byref):int:this
; Assembly listing for method System.Collections.Concurrent.ConcurrentStack`1[System.__Canon]:TryPopCore(int,byref):int:this (FullOpts)
; Emitting BLENDED_CODE for generic ARM64 - Unix
; FullOpts code
; optimized code
; fp based frame
; fully interruptible
; No PGO data
; 0 inlinees with PGO data; 12 single block inlinees; 9 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T10] ( 4, 14 ) ref -> x20 this class-hnd single-def <System.Collections.Concurrent.ConcurrentStack`1[System.__Canon]>
; V01 arg1 [V01,T03] ( 5, 35 ) int -> x19 single-def
; V02 arg2 [V02,T15] ( 4, 3 ) byref -> x21 single-def
; V03 loc0 [V03 ] ( 5, 22 ) struct ( 8) [fp+0x10] do-not-enreg[XS] addr-exposed ld-addr-op <System.Threading.SpinWait>
; V04 loc1 [V04,T06] ( 6, 28.50) ref -> x23 class-hnd exact <System.Collections.Concurrent.ConcurrentStack`1+Node[System.__Canon]>
; V05 loc2 [V05,T04] ( 4, 32 ) ref -> x1 class-hnd <System.Collections.Concurrent.ConcurrentStack`1+Node[System.__Canon]>
; V06 loc3 [V06,T09] ( 6, 18 ) int -> x22
; V07 loc4 [V07,T00] ( 5, 52.50) int -> x24
;* V08 loc5 [V08,T16] ( 0, 0 ) int -> zero-ref
;# V09 OutArgs [V09 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V10 tmp1 [V10 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
; V11 tmp2 [V11,T13] ( 5, 5 ) ref -> x22 class-hnd exact "impAppendStmt" <System.Collections.Concurrent.CDSCollectionETWBCLProvider>
; V12 tmp3 [V12,T14] ( 5, 5 ) ref -> x19 class-hnd exact "impAppendStmt" <System.Collections.Concurrent.CDSCollectionETWBCLProvider>
;* V13 tmp4 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Concurrent.CDSCollectionETWBCLProvider>
; V14 tmp5 [V14,T18] ( 2, 2 ) int -> x22 "Inlining Arg"
;* V15 tmp6 [V15 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V16 tmp7 [V16,T11] ( 2, 16 ) byref -> x0 "Inlining Arg"
; V17 tmp8 [V17,T12] ( 2, 16 ) ref -> x1 class-hnd exact "Inlining Arg" <System.Collections.Concurrent.ConcurrentStack`1+Node[System.__Canon]>
;* V18 tmp9 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Concurrent.CDSCollectionETWBCLProvider>
; V19 tmp10 [V19,T19] ( 2, 2 ) int -> x19 "Inlining Arg"
;* V20 tmp11 [V20 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V21 tmp12 [V21,T05] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V22 tmp13 [V22 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
;* V23 tmp14 [V23 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V24 tmp15 [V24 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V25 tmp16 [V25 ] ( 5, 22 ) int -> [fp+0x10] do-not-enreg[X] addr-exposed "field V03._count (fldOffset=0x0)" P-DEP
;* V26 tmp17 [V26 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
; V27 tmp18 [V27,T07] ( 3, 24 ) ref -> x0 "argument with side effect"
; V28 cse0 [V28,T20] ( 3, 1.50) int -> x1 "CSE #05: moderate"
; V29 cse1 [V29,T21] ( 3, 1.50) int -> x1 "CSE #06: moderate"
; V30 cse2 [V30,T17] ( 6, 3 ) ref -> x22 multi-def "CSE #04: moderate"
; V31 cse3 [V31,T02] ( 5, 48 ) ref -> x2 multi-def "CSE #01: aggressive"
; V32 cse4 [V32,T08] ( 3, 20 ) byref -> x0 "CSE #02: aggressive"
; V33 rat0 [V33,T01] ( 4, 49 ) int -> x23 "Trip count IV"
;
; Lcl frame size = 16
G_M38843_IG01:
stp fp, lr, [sp, #-0x50]!
stp x19, x20, [sp, #0x20]
stp x21, x22, [sp, #0x30]
stp x23, x24, [sp, #0x40]
mov fp, sp
str x0, [fp, #0x18]
mov x20, x0
mov w19, w1
mov x21, x2
;; size=36 bbWeight=1 PerfScore 7.00
G_M38843_IG02:
str wzr, [fp, #0x10] // [V03 loc0]
mov w22, #1
b G_M38843_IG04
align [4 bytes for IG06]
align [4 bytes]
align [4 bytes]
- align [4 bytes]
- ;; size=28 bbWeight=1 PerfScore 2.50
+ align [0 bytes]
+ ;; size=24 bbWeight=1 PerfScore 2.50
G_M38843_IG03:
movz x0, #0xD1FFAB1E // data for System.Random:<Shared>k__BackingField
+ movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
mov w1, #1
mov w2, #8
ldr x3, [x0]
ldr x3, [x3, #0x40]
ldr x3, [x3, #0x30]
blr x3
sxtw w22, w0
- ;; size=40 bbWeight=4 PerfScore 62.00
+ ;; size=44 bbWeight=4 PerfScore 64.00
G_M38843_IG04:
add x0, x20, #8
ldapr x23, [x0]
cbz x23, G_M38843_IG17
;; size=12 bbWeight=8 PerfScore 36.00
G_M38843_IG05:
mov x1, x23
mov w24, #1
b G_M38843_IG07
;; size=12 bbWeight=4 PerfScore 8.00
G_M38843_IG06:
mov x1, x2
add w24, w24, #1
;; size=8 bbWeight=8 PerfScore 8.00
G_M38843_IG07:
cmp w24, w19
bge G_M38843_IG09
;; size=8 bbWeight=32 PerfScore 48.00
G_M38843_IG08:
ldr x2, [x1, #0x10]
cbnz x2, G_M38843_IG06
;; size=8 bbWeight=16 PerfScore 64.00
G_M38843_IG09:
ldr xzr, [x20]
ldr x2, [x1, #0x10]
mov x1, x2
mov x2, x23
bl System.Threading.Interlocked:CompareExchangeObject(byref,System.Object,System.Object):System.Object
cmp x0, x23
beq G_M38843_IG14
cmp w22, #0
ble G_M38843_IG12
;; size=36 bbWeight=4 PerfScore 44.00
G_M38843_IG10:
sxtw w23, w22
;; size=4 bbWeight=1 PerfScore 0.50
G_M38843_IG11:
add x0, fp, #16 // [V03 loc0]
movn w1, #0
movz x2, #0xD1FFAB1E // code for System.Threading.SpinWait:SpinOnceCore(int):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
sub w23, w23, #1
cbnz w23, G_M38843_IG11
;; size=36 bbWeight=16 PerfScore 128.00
G_M38843_IG12:
ldr w0, [fp, #0x10] // [V25 tmp16]
cmp w0, #10
blt G_M38843_IG13
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldapr w0, [x0]
tbnz w0, #0, G_M38843_IG03
b G_M38843_IG20
;; size=36 bbWeight=4 PerfScore 40.00
G_M38843_IG13:
lsl w22, w22, #1
b G_M38843_IG04
;; size=8 bbWeight=4 PerfScore 8.00
G_M38843_IG14:
cmp w19, #1
bne G_M38843_IG15
movz x1, #0xD1FFAB1E
+ movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x22, [x1]
ldrb w1, [x22, #0x9D]
cbz w1, G_M38843_IG15
ldr w19, [fp, #0x10] // [V25 tmp16]
ldr x3, [x22, #0x80]
ldr w2, [x22, #0x98]
mov x0, x22
mov w4, #3
movn x5, #0
mov w6, wzr
movz x7, #0xD1FFAB1E // code for System.Diagnostics.Tracing.EventSource:IsEnabledCommon(ubyte,int,long,int,long,ubyte):ubyte:this
movk x7, #0xD1FFAB1E LSL #16
movk x7, #0xD1FFAB1E LSL #32
ldr x7, [x7]
blr x7
cbz w0, G_M38843_IG15
mov x0, x22
mov w2, w19
mov w1, #2
movz x3, #0xD1FFAB1E // code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,int):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
- ;; size=112 bbWeight=0.50 PerfScore 16.50
+ ;; size=116 bbWeight=0.50 PerfScore 16.75
G_M38843_IG15:
mov x14, x21
mov x15, x23
bl CORINFO_HELP_CHECKED_ASSIGN_REF
mov w0, w24
;; size=16 bbWeight=0.50 PerfScore 1.25
G_M38843_IG16:
ldp x23, x24, [sp, #0x40]
ldp x21, x22, [sp, #0x30]
ldp x19, x20, [sp, #0x20]
ldp fp, lr, [sp], #0x50
ret lr
;; size=20 bbWeight=0.50 PerfScore 2.50
G_M38843_IG17:
cmp w19, #1
bne G_M38843_IG18
movz x1, #0xD1FFAB1E
+ movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x22, [x1]
ldrb w1, [x22, #0x9D]
cbz w1, G_M38843_IG18
mov x19, x22
ldr w22, [fp, #0x10] // [V25 tmp16]
ldr x3, [x19, #0x80]
ldr w2, [x19, #0x98]
mov x0, x19
mov w4, #3
movn x5, #0
mov w6, wzr
movz x7, #0xD1FFAB1E // code for System.Diagnostics.Tracing.EventSource:IsEnabledCommon(ubyte,int,long,int,long,ubyte):ubyte:this
movk x7, #0xD1FFAB1E LSL #16
movk x7, #0xD1FFAB1E LSL #32
ldr x7, [x7]
blr x7
cbz w0, G_M38843_IG18
mov x0, x19
mov w2, w22
mov w1, #2
movz x3, #0xD1FFAB1E // code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,int):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
- ;; size=116 bbWeight=0.50 PerfScore 16.75
+ ;; size=120 bbWeight=0.50 PerfScore 17.00
G_M38843_IG18:
str xzr, [x21]
mov w0, wzr
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M38843_IG19:
ldp x23, x24, [sp, #0x40]
ldp x21, x22, [sp, #0x30]
ldp x19, x20, [sp, #0x20]
ldp fp, lr, [sp], #0x50
ret lr
;; size=20 bbWeight=0.50 PerfScore 2.50
G_M38843_IG20:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M38843_IG03
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 584, prolog size 36, PerfScore 496.25, instruction count 146, allocated bytes for code 584 (MethodHash=8a846844) for method System.Collections.Concurrent.ConcurrentStack`1[System.__Canon]:TryPopCore(int,byref):int:this (FullOpts)
+; Total bytes of code 592, prolog size 36, PerfScore 498.75, instruction count 149, allocated bytes for code 592 (MethodHash=8a846844) for method System.Collections.Concurrent.ConcurrentStack`1[System.__Canon]:TryPopCore(int,byref):int:this (FullOpts)
; ============================================================
8 (2.35 % of base) - System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:.ctor(System.Collections.Generic.IEqualityComparer`1[double],int):this
; Assembly listing for method System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:.ctor(System.Collections.Generic.IEqualityComparer`1[double],int):this (FullOpts)
; Emitting BLENDED_CODE for generic ARM64 - Unix
; FullOpts code
; optimized code
; fp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 4 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 5, 5 ) ref -> x19 this class-hnd single-def <System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]>
; V01 arg1 [V01,T03] ( 3, 3 ) ref -> x21 class-hnd single-def <System.Collections.Generic.IEqualityComparer`1[double]>
; V02 arg2 [V02,T01] ( 5, 5 ) int -> x20 single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04,T02] ( 3, 6 ) ref -> x23 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.Nullable`1[int]]>
;* V05 tmp2 [V05 ] ( 0, 0 ) ref -> zero-ref single-def
; V06 tmp3 [V06,T04] ( 4, 3.50) ref -> x15
;* V07 tmp4 [V07 ] ( 0, 0 ) ref -> zero-ref
;* V08 tmp5 [V08 ] ( 0, 0 ) ref -> zero-ref single-def
; V09 tmp6 [V09,T06] ( 2, 2 ) int -> x0
; V10 tmp7 [V10,T07] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.ArgumentOutOfRangeException>
; V11 tmp8 [V11,T08] ( 2, 0 ) ref -> x20 single-def "argument with side effect"
; V12 tmp9 [V12,T09] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
; V13 cse0 [V13,T05] ( 3, 2 ) long -> x22 "CSE #01: aggressive"
;
; Lcl frame size = 8
G_M15496_IG01:
stp fp, lr, [sp, #-0x40]!
stp x19, x20, [sp, #0x18]
stp x21, x22, [sp, #0x28]
str x23, [sp, #0x38]
mov fp, sp
mov x19, x0
mov x21, x1
mov w20, w2
;; size=32 bbWeight=1 PerfScore 6.00
G_M15496_IG02:
movz x22, #0xD1FFAB1E
movk x22, #0xD1FFAB1E LSL #16
movk x22, #0xD1FFAB1E LSL #32
mov x0, x22
bl CORINFO_HELP_NEWSFAST
mov x23, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldapr w0, [x0]
tbz w0, #0, G_M15496_IG08
;; size=44 bbWeight=1 PerfScore 9.00
G_M15496_IG03:
movz x14, #0xD1FFAB1E // data for System.Collections.Generic.List`1[System.Nullable`1[int]]:s_emptyArray
+ movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x23, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x19, #8
mov x15, x23
bl CORINFO_HELP_ASSIGN_REF
cmn w20, #1
blt G_M15496_IG10
mov x15, x21
cbnz x15, G_M15496_IG06
- ;; size=48 bbWeight=1 PerfScore 10.50
+ ;; size=52 bbWeight=1 PerfScore 11.00
G_M15496_IG04:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldapr w0, [x0]
tbz w0, #0, G_M15496_IG09
;; size=20 bbWeight=0.50 PerfScore 2.75
G_M15496_IG05:
movz x14, #0xD1FFAB1E // data for System.Collections.Generic.EqualityComparer`1[double]:<Default>k__BackingField
+ movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
- ;; size=12 bbWeight=0.50 PerfScore 2.00
+ ;; size=16 bbWeight=0.50 PerfScore 2.25
G_M15496_IG06:
add x14, x19, #16
bl CORINFO_HELP_ASSIGN_REF
movn w0, #0xD1FFAB1E LSL #16
cmn w20, #1
csel w0, w0, w20, eq
str w0, [x19, #0x24]
;; size=24 bbWeight=1 PerfScore 4.00
G_M15496_IG07:
ldr x23, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x40
ret lr
;; size=20 bbWeight=1 PerfScore 6.00
G_M15496_IG08:
mov x0, x22
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M15496_IG03
;; size=12 bbWeight=0 PerfScore 0.00
G_M15496_IG09:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M15496_IG05
;; size=20 bbWeight=0 PerfScore 0.00
G_M15496_IG10:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x19, x0
mov w0, #0xD1FFAB1E
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_STRCNS
mov x20, x0
movz x0, #0xD1FFAB1E // code for System.SR:get_ArgumentOutOfRange_InvalidThreshold():System.String
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
mov x2, x0
mov x1, x20
mov x0, x19
movz x3, #0xD1FFAB1E // code for System.ArgumentOutOfRangeException:.ctor(System.String,System.String):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x0, x19
bl CORINFO_HELP_THROW
brk #0
;; size=108 bbWeight=0 PerfScore 0.00
-; Total bytes of code 340, prolog size 20, PerfScore 40.25, instruction count 85, allocated bytes for code 340 (MethodHash=d4ebc377) for method System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:.ctor(System.Collections.Generic.IEqualityComparer`1[double],int):this (FullOpts)
+; Total bytes of code 348, prolog size 20, PerfScore 41.00, instruction count 87, allocated bytes for code 348 (MethodHash=d4ebc377) for method System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:.ctor(System.Collections.Generic.IEqualityComparer`1[double],int):this (FullOpts)
; ============================================================
8 (4.00 % of base) - System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:.ctor(System.Collections.Generic.IEqualityComparer`1[double]):this
; Assembly listing for method System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:.ctor(System.Collections.Generic.IEqualityComparer`1[double]):this (FullOpts)
; Emitting BLENDED_CODE for generic ARM64 - Unix
; FullOpts code
; optimized code
; fp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 4 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 5, 5 ) ref -> x19 this class-hnd single-def <System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]>
; V01 arg1 [V01,T02] ( 3, 3 ) ref -> x20 class-hnd single-def <System.Collections.Generic.IEqualityComparer`1[double]>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V03 tmp1 [V03,T01] ( 3, 6 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.Nullable`1[int]]>
;* V04 tmp2 [V04 ] ( 0, 0 ) ref -> zero-ref single-def
; V05 tmp3 [V05,T03] ( 4, 3.50) ref -> x15
;* V06 tmp4 [V06 ] ( 0, 0 ) ref -> zero-ref
;* V07 tmp5 [V07 ] ( 0, 0 ) ref -> zero-ref
;* V08 tmp6 [V08 ] ( 0, 0 ) int -> zero-ref
; V09 cse0 [V09,T04] ( 3, 2 ) long -> x21 "CSE #01: aggressive"
;
; Lcl frame size = 0
G_M52759_IG01:
stp fp, lr, [sp, #-0x30]!
stp x19, x20, [sp, #0x10]
stp x21, x22, [sp, #0x20]
mov fp, sp
mov x19, x0
mov x20, x1
;; size=24 bbWeight=1 PerfScore 4.50
G_M52759_IG02:
movz x21, #0xD1FFAB1E
movk x21, #0xD1FFAB1E LSL #16
movk x21, #0xD1FFAB1E LSL #32
mov x0, x21
bl CORINFO_HELP_NEWSFAST
mov x22, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldapr w0, [x0]
tbz w0, #0, G_M52759_IG08
;; size=44 bbWeight=1 PerfScore 9.00
G_M52759_IG03:
movz x14, #0xD1FFAB1E // data for System.Collections.Generic.List`1[System.Nullable`1[int]]:s_emptyArray
+ movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x22, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x19, #8
mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
mov x15, x20
cbnz x15, G_M52759_IG06
- ;; size=40 bbWeight=1 PerfScore 9.00
+ ;; size=44 bbWeight=1 PerfScore 9.50
G_M52759_IG04:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldapr w0, [x0]
tbz w0, #0, G_M52759_IG09
;; size=20 bbWeight=0.50 PerfScore 2.75
G_M52759_IG05:
movz x14, #0xD1FFAB1E // data for System.Collections.Generic.EqualityComparer`1[double]:<Default>k__BackingField
+ movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
- ;; size=12 bbWeight=0.50 PerfScore 2.00
+ ;; size=16 bbWeight=0.50 PerfScore 2.25
G_M52759_IG06:
add x14, x19, #16
bl CORINFO_HELP_ASSIGN_REF
str wzr, [x19, #0x24]
;; size=12 bbWeight=1 PerfScore 2.50
G_M52759_IG07:
ldp x21, x22, [sp, #0x20]
ldp x19, x20, [sp, #0x10]
ldp fp, lr, [sp], #0x30
ret lr
;; size=16 bbWeight=1 PerfScore 4.00
G_M52759_IG08:
mov x0, x21
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M52759_IG03
;; size=12 bbWeight=0 PerfScore 0.00
G_M52759_IG09:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M52759_IG05
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 200, prolog size 16, PerfScore 33.75, instruction count 50, allocated bytes for code 200 (MethodHash=9ed731e8) for method System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:.ctor(System.Collections.Generic.IEqualityComparer`1[double]):this (FullOpts)
+; Total bytes of code 208, prolog size 16, PerfScore 34.50, instruction count 52, allocated bytes for code 208 (MethodHash=9ed731e8) for method System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:.ctor(System.Collections.Generic.IEqualityComparer`1[double]):this (FullOpts)
; ============================================================
8 (2.35 % of base) - System.Collections.ObjectModel.KeyedCollection`2[int,System.Nullable`1[int]]:.ctor(System.Collections.Generic.IEqualityComparer`1[int],int):this
; Assembly listing for method System.Collections.ObjectModel.KeyedCollection`2[int,System.Nullable`1[int]]:.ctor(System.Collections.Generic.IEqualityComparer`1[int],int):this (FullOpts)
; Emitting BLENDED_CODE for generic ARM64 - Unix
; FullOpts code
; optimized code
; fp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 4 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 5, 5 ) ref -> x19 this class-hnd single-def <System.Collections.ObjectModel.KeyedCollection`2[int,System.Nullable`1[int]]>
; V01 arg1 [V01,T03] ( 3, 3 ) ref -> x21 class-hnd single-def <System.Collections.Generic.IEqualityComparer`1[int]>
; V02 arg2 [V02,T01] ( 5, 5 ) int -> x20 single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04,T02] ( 3, 6 ) ref -> x23 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.Nullable`1[int]]>
;* V05 tmp2 [V05 ] ( 0, 0 ) ref -> zero-ref single-def
; V06 tmp3 [V06,T04] ( 4, 3.50) ref -> x15
;* V07 tmp4 [V07 ] ( 0, 0 ) ref -> zero-ref
;* V08 tmp5 [V08 ] ( 0, 0 ) ref -> zero-ref single-def
; V09 tmp6 [V09,T06] ( 2, 2 ) int -> x0
; V10 tmp7 [V10,T07] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.ArgumentOutOfRangeException>
; V11 tmp8 [V11,T08] ( 2, 0 ) ref -> x20 single-def "argument with side effect"
; V12 tmp9 [V12,T09] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
; V13 cse0 [V13,T05] ( 3, 2 ) long -> x22 "CSE #01: aggressive"
;
; Lcl frame size = 8
G_M45416_IG01:
stp fp, lr, [sp, #-0x40]!
stp x19, x20, [sp, #0x18]
stp x21, x22, [sp, #0x28]
str x23, [sp, #0x38]
mov fp, sp
mov x19, x0
mov x21, x1
mov w20, w2
;; size=32 bbWeight=1 PerfScore 6.00
G_M45416_IG02:
movz x22, #0xD1FFAB1E
movk x22, #0xD1FFAB1E LSL #16
movk x22, #0xD1FFAB1E LSL #32
mov x0, x22
bl CORINFO_HELP_NEWSFAST
mov x23, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldapr w0, [x0]
tbz w0, #0, G_M45416_IG08
;; size=44 bbWeight=1 PerfScore 9.00
G_M45416_IG03:
movz x14, #0xD1FFAB1E // data for System.Collections.Generic.List`1[System.Nullable`1[int]]:s_emptyArray
+ movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x23, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x19, #8
mov x15, x23
bl CORINFO_HELP_ASSIGN_REF
cmn w20, #1
blt G_M45416_IG10
mov x15, x21
cbnz x15, G_M45416_IG06
- ;; size=48 bbWeight=1 PerfScore 10.50
+ ;; size=52 bbWeight=1 PerfScore 11.00
G_M45416_IG04:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldapr w0, [x0]
tbz w0, #0, G_M45416_IG09
;; size=20 bbWeight=0.50 PerfScore 2.75
G_M45416_IG05:
movz x14, #0xD1FFAB1E // data for System.Collections.Generic.EqualityComparer`1[int]:<Default>k__BackingField
+ movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
- ;; size=12 bbWeight=0.50 PerfScore 2.00
+ ;; size=16 bbWeight=0.50 PerfScore 2.25
G_M45416_IG06:
add x14, x19, #16
bl CORINFO_HELP_ASSIGN_REF
movn w0, #0xD1FFAB1E LSL #16
cmn w20, #1
csel w0, w0, w20, eq
str w0, [x19, #0x24]
;; size=24 bbWeight=1 PerfScore 4.00
G_M45416_IG07:
ldr x23, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x40
ret lr
;; size=20 bbWeight=1 PerfScore 6.00
G_M45416_IG08:
mov x0, x22
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M45416_IG03
;; size=12 bbWeight=0 PerfScore 0.00
G_M45416_IG09:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M45416_IG05
;; size=20 bbWeight=0 PerfScore 0.00
G_M45416_IG10:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x19, x0
mov w0, #0xD1FFAB1E
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_STRCNS
mov x20, x0
movz x0, #0xD1FFAB1E // code for System.SR:get_ArgumentOutOfRange_InvalidThreshold():System.String
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
mov x2, x0
mov x1, x20
mov x0, x19
movz x3, #0xD1FFAB1E // code for System.ArgumentOutOfRangeException:.ctor(System.String,System.String):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x0, x19
bl CORINFO_HELP_THROW
brk #0
;; size=108 bbWeight=0 PerfScore 0.00
-; Total bytes of code 340, prolog size 20, PerfScore 40.25, instruction count 85, allocated bytes for code 340 (MethodHash=bb804e97) for method System.Collections.ObjectModel.KeyedCollection`2[int,System.Nullable`1[int]]:.ctor(System.Collections.Generic.IEqualityComparer`1[int],int):this (FullOpts)
+; Total bytes of code 348, prolog size 20, PerfScore 41.00, instruction count 87, allocated bytes for code 348 (MethodHash=bb804e97) for method System.Collections.ObjectModel.KeyedCollection`2[int,System.Nullable`1[int]]:.ctor(System.Collections.Generic.IEqualityComparer`1[int],int):this (FullOpts)
; ============================================================
8 (4.00 % of base) - System.Collections.ObjectModel.KeyedCollection`2[int,System.Nullable`1[int]]:.ctor(System.Collections.Generic.IEqualityComparer`1[int]):this
; Assembly listing for method System.Collections.ObjectModel.KeyedCollection`2[int,System.Nullable`1[int]]:.ctor(System.Collections.Generic.IEqualityComparer`1[int]):this (FullOpts)
; Emitting BLENDED_CODE for generic ARM64 - Unix
; FullOpts code
; optimized code
; fp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 4 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 5, 5 ) ref -> x19 this class-hnd single-def <System.Collections.ObjectModel.KeyedCollection`2[int,System.Nullable`1[int]]>
; V01 arg1 [V01,T02] ( 3, 3 ) ref -> x20 class-hnd single-def <System.Collections.Generic.IEqualityComparer`1[int]>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V03 tmp1 [V03,T01] ( 3, 6 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.Nullable`1[int]]>
;* V04 tmp2 [V04 ] ( 0, 0 ) ref -> zero-ref single-def
; V05 tmp3 [V05,T03] ( 4, 3.50) ref -> x15
;* V06 tmp4 [V06 ] ( 0, 0 ) ref -> zero-ref
;* V07 tmp5 [V07 ] ( 0, 0 ) ref -> zero-ref
;* V08 tmp6 [V08 ] ( 0, 0 ) int -> zero-ref
; V09 cse0 [V09,T04] ( 3, 2 ) long -> x21 "CSE #01: aggressive"
;
; Lcl frame size = 0
G_M38007_IG01:
stp fp, lr, [sp, #-0x30]!
stp x19, x20, [sp, #0x10]
stp x21, x22, [sp, #0x20]
mov fp, sp
mov x19, x0
mov x20, x1
;; size=24 bbWeight=1 PerfScore 4.50
G_M38007_IG02:
movz x21, #0xD1FFAB1E
movk x21, #0xD1FFAB1E LSL #16
movk x21, #0xD1FFAB1E LSL #32
mov x0, x21
bl CORINFO_HELP_NEWSFAST
mov x22, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldapr w0, [x0]
tbz w0, #0, G_M38007_IG08
;; size=44 bbWeight=1 PerfScore 9.00
G_M38007_IG03:
movz x14, #0xD1FFAB1E // data for System.Collections.Generic.List`1[System.Nullable`1[int]]:s_emptyArray
+ movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x22, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x19, #8
mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
mov x15, x20
cbnz x15, G_M38007_IG06
- ;; size=40 bbWeight=1 PerfScore 9.00
+ ;; size=44 bbWeight=1 PerfScore 9.50
G_M38007_IG04:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldapr w0, [x0]
tbz w0, #0, G_M38007_IG09
;; size=20 bbWeight=0.50 PerfScore 2.75
G_M38007_IG05:
movz x14, #0xD1FFAB1E // data for System.Collections.Generic.EqualityComparer`1[int]:<Default>k__BackingField
+ movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
- ;; size=12 bbWeight=0.50 PerfScore 2.00
+ ;; size=16 bbWeight=0.50 PerfScore 2.25
G_M38007_IG06:
add x14, x19, #16
bl CORINFO_HELP_ASSIGN_REF
str wzr, [x19, #0x24]
;; size=12 bbWeight=1 PerfScore 2.50
G_M38007_IG07:
ldp x21, x22, [sp, #0x20]
ldp x19, x20, [sp, #0x10]
ldp fp, lr, [sp], #0x30
ret lr
;; size=16 bbWeight=1 PerfScore 4.00
G_M38007_IG08:
mov x0, x21
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M38007_IG03
;; size=12 bbWeight=0 PerfScore 0.00
G_M38007_IG09:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M38007_IG05
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 200, prolog size 16, PerfScore 33.75, instruction count 50, allocated bytes for code 200 (MethodHash=24cd6b88) for method System.Collections.ObjectModel.KeyedCollection`2[int,System.Nullable`1[int]]:.ctor(System.Collections.Generic.IEqualityComparer`1[int]):this (FullOpts)
+; Total bytes of code 208, prolog size 16, PerfScore 34.50, instruction count 52, allocated bytes for code 208 (MethodHash=24cd6b88) for method System.Collections.ObjectModel.KeyedCollection`2[int,System.Nullable`1[int]]:.ctor(System.Collections.Generic.IEqualityComparer`1[int]):this (FullOpts)
; ============================================================
8 (2.35 % of base) - System.Collections.ObjectModel.KeyedCollection`2[long,System.Nullable`1[int]]:.ctor(System.Collections.Generic.IEqualityComparer`1[long],int):this
; Assembly listing for method System.Collections.ObjectModel.KeyedCollection`2[long,System.Nullable`1[int]]:.ctor(System.Collections.Generic.IEqualityComparer`1[long],int):this (FullOpts)
; Emitting BLENDED_CODE for generic ARM64 - Unix
; FullOpts code
; optimized code
; fp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 4 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 5, 5 ) ref -> x19 this class-hnd single-def <System.Collections.ObjectModel.KeyedCollection`2[long,System.Nullable`1[int]]>
; V01 arg1 [V01,T03] ( 3, 3 ) ref -> x21 class-hnd single-def <System.Collections.Generic.IEqualityComparer`1[long]>
; V02 arg2 [V02,T01] ( 5, 5 ) int -> x20 single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04,T02] ( 3, 6 ) ref -> x23 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.Nullable`1[int]]>
;* V05 tmp2 [V05 ] ( 0, 0 ) ref -> zero-ref single-def
; V06 tmp3 [V06,T04] ( 4, 3.50) ref -> x15
;* V07 tmp4 [V07 ] ( 0, 0 ) ref -> zero-ref
;* V08 tmp5 [V08 ] ( 0, 0 ) ref -> zero-ref single-def
; V09 tmp6 [V09,T06] ( 2, 2 ) int -> x0
; V10 tmp7 [V10,T07] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.ArgumentOutOfRangeException>
; V11 tmp8 [V11,T08] ( 2, 0 ) ref -> x20 single-def "argument with side effect"
; V12 tmp9 [V12,T09] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
; V13 cse0 [V13,T05] ( 3, 2 ) long -> x22 "CSE #01: aggressive"
;
; Lcl frame size = 8
G_M34952_IG01:
stp fp, lr, [sp, #-0x40]!
stp x19, x20, [sp, #0x18]
stp x21, x22, [sp, #0x28]
str x23, [sp, #0x38]
mov fp, sp
mov x19, x0
mov x21, x1
mov w20, w2
;; size=32 bbWeight=1 PerfScore 6.00
G_M34952_IG02:
movz x22, #0xD1FFAB1E
movk x22, #0xD1FFAB1E LSL #16
movk x22, #0xD1FFAB1E LSL #32
mov x0, x22
bl CORINFO_HELP_NEWSFAST
mov x23, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldapr w0, [x0]
tbz w0, #0, G_M34952_IG08
;; size=44 bbWeight=1 PerfScore 9.00
G_M34952_IG03:
movz x14, #0xD1FFAB1E // data for System.Collections.Generic.List`1[System.Nullable`1[int]]:s_emptyArray
+ movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x23, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x19, #8
mov x15, x23
bl CORINFO_HELP_ASSIGN_REF
cmn w20, #1
blt G_M34952_IG10
mov x15, x21
cbnz x15, G_M34952_IG06
- ;; size=48 bbWeight=1 PerfScore 10.50
+ ;; size=52 bbWeight=1 PerfScore 11.00
G_M34952_IG04:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldapr w0, [x0]
tbz w0, #0, G_M34952_IG09
;; size=20 bbWeight=0.50 PerfScore 2.75
G_M34952_IG05:
movz x14, #0xD1FFAB1E // data for System.Collections.Generic.EqualityComparer`1[long]:<Default>k__BackingField
+ movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
- ;; size=12 bbWeight=0.50 PerfScore 2.00
+ ;; size=16 bbWeight=0.50 PerfScore 2.25
G_M34952_IG06:
add x14, x19, #16
bl CORINFO_HELP_ASSIGN_REF
movn w0, #0xD1FFAB1E LSL #16
cmn w20, #1
csel w0, w0, w20, eq
str w0, [x19, #0x24]
;; size=24 bbWeight=1 PerfScore 4.00
G_M34952_IG07:
ldr x23, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x40
ret lr
;; size=20 bbWeight=1 PerfScore 6.00
G_M34952_IG08:
mov x0, x22
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M34952_IG03
;; size=12 bbWeight=0 PerfScore 0.00
G_M34952_IG09:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M34952_IG05
;; size=20 bbWeight=0 PerfScore 0.00
G_M34952_IG10:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x19, x0
mov w0, #0xD1FFAB1E
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_STRCNS
mov x20, x0
movz x0, #0xD1FFAB1E // code for System.SR:get_ArgumentOutOfRange_InvalidThreshold():System.String
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
mov x2, x0
mov x1, x20
mov x0, x19
movz x3, #0xD1FFAB1E // code for System.ArgumentOutOfRangeException:.ctor(System.String,System.String):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x0, x19
bl CORINFO_HELP_THROW
brk #0
;; size=108 bbWeight=0 PerfScore 0.00
-; Total bytes of code 340, prolog size 20, PerfScore 40.25, instruction count 85, allocated bytes for code 340 (MethodHash=d0947777) for method System.Collections.ObjectModel.KeyedCollection`2[long,System.Nullable`1[int]]:.ctor(System.Collections.Generic.IEqualityComparer`1[long],int):this (FullOpts)
+; Total bytes of code 348, prolog size 20, PerfScore 41.00, instruction count 87, allocated bytes for code 348 (MethodHash=d0947777) for method System.Collections.ObjectModel.KeyedCollection`2[long,System.Nullable`1[int]]:.ctor(System.Collections.Generic.IEqualityComparer`1[long],int):this (FullOpts)
; ============================================================
8 (4.00 % of base) - System.Collections.ObjectModel.KeyedCollection`2[long,System.Nullable`1[int]]:.ctor(System.Collections.Generic.IEqualityComparer`1[long]):this
; Assembly listing for method System.Collections.ObjectModel.KeyedCollection`2[long,System.Nullable`1[int]]:.ctor(System.Collections.Generic.IEqualityComparer`1[long]):this (FullOpts)
; Emitting BLENDED_CODE for generic ARM64 - Unix
; FullOpts code
; optimized code
; fp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 4 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 5, 5 ) ref -> x19 this class-hnd single-def <System.Collections.ObjectModel.KeyedCollection`2[long,System.Nullable`1[int]]>
; V01 arg1 [V01,T02] ( 3, 3 ) ref -> x20 class-hnd single-def <System.Collections.Generic.IEqualityComparer`1[long]>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V03 tmp1 [V03,T01] ( 3, 6 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.Nullable`1[int]]>
;* V04 tmp2 [V04 ] ( 0, 0 ) ref -> zero-ref single-def
; V05 tmp3 [V05,T03] ( 4, 3.50) ref -> x15
;* V06 tmp4 [V06 ] ( 0, 0 ) ref -> zero-ref
;* V07 tmp5 [V07 ] ( 0, 0 ) ref -> zero-ref
;* V08 tmp6 [V08 ] ( 0, 0 ) int -> zero-ref
; V09 cse0 [V09,T04] ( 3, 2 ) long -> x21 "CSE #01: aggressive"
;
; Lcl frame size = 0
G_M6679_IG01:
stp fp, lr, [sp, #-0x30]!
stp x19, x20, [sp, #0x10]
stp x21, x22, [sp, #0x20]
mov fp, sp
mov x19, x0
mov x20, x1
;; size=24 bbWeight=1 PerfScore 4.50
G_M6679_IG02:
movz x21, #0xD1FFAB1E
movk x21, #0xD1FFAB1E LSL #16
movk x21, #0xD1FFAB1E LSL #32
mov x0, x21
bl CORINFO_HELP_NEWSFAST
mov x22, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldapr w0, [x0]
tbz w0, #0, G_M6679_IG08
;; size=44 bbWeight=1 PerfScore 9.00
G_M6679_IG03:
movz x14, #0xD1FFAB1E // data for System.Collections.Generic.List`1[System.Nullable`1[int]]:s_emptyArray
+ movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x22, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x19, #8
mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
mov x15, x20
cbnz x15, G_M6679_IG06
- ;; size=40 bbWeight=1 PerfScore 9.00
+ ;; size=44 bbWeight=1 PerfScore 9.50
G_M6679_IG04:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldapr w0, [x0]
tbz w0, #0, G_M6679_IG09
;; size=20 bbWeight=0.50 PerfScore 2.75
G_M6679_IG05:
movz x14, #0xD1FFAB1E // data for System.Collections.Generic.EqualityComparer`1[long]:<Default>k__BackingField
+ movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
- ;; size=12 bbWeight=0.50 PerfScore 2.00
+ ;; size=16 bbWeight=0.50 PerfScore 2.25
G_M6679_IG06:
add x14, x19, #16
bl CORINFO_HELP_ASSIGN_REF
str wzr, [x19, #0x24]
;; size=12 bbWeight=1 PerfScore 2.50
G_M6679_IG07:
ldp x21, x22, [sp, #0x20]
ldp x19, x20, [sp, #0x10]
ldp fp, lr, [sp], #0x30
ret lr
;; size=16 bbWeight=1 PerfScore 4.00
G_M6679_IG08:
mov x0, x21
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M6679_IG03
;; size=12 bbWeight=0 PerfScore 0.00
G_M6679_IG09:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M6679_IG05
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 200, prolog size 16, PerfScore 33.75, instruction count 50, allocated bytes for code 200 (MethodHash=da45e5e8) for method System.Collections.ObjectModel.KeyedCollection`2[long,System.Nullable`1[int]]:.ctor(System.Collections.Generic.IEqualityComparer`1[long]):this (FullOpts)
+; Total bytes of code 208, prolog size 16, PerfScore 34.50, instruction count 52, allocated bytes for code 208 (MethodHash=da45e5e8) for method System.Collections.ObjectModel.KeyedCollection`2[long,System.Nullable`1[int]]:.ctor(System.Collections.Generic.IEqualityComparer`1[long]):this (FullOpts)
; ============================================================
8 (2.35 % of base) - System.Collections.ObjectModel.KeyedCollection`2[short,System.Nullable`1[int]]:.ctor(System.Collections.Generic.IEqualityComparer`1[short],int):this
; Assembly listing for method System.Collections.ObjectModel.KeyedCollection`2[short,System.Nullable`1[int]]:.ctor(System.Collections.Generic.IEqualityComparer`1[short],int):this (FullOpts)
; Emitting BLENDED_CODE for generic ARM64 - Unix
; FullOpts code
; optimized code
; fp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 4 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 5, 5 ) ref -> x19 this class-hnd single-def <System.Collections.ObjectModel.KeyedCollection`2[short,System.Nullable`1[int]]>
; V01 arg1 [V01,T03] ( 3, 3 ) ref -> x21 class-hnd single-def <System.Collections.Generic.IEqualityComparer`1[short]>
; V02 arg2 [V02,T01] ( 5, 5 ) int -> x20 single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04,T02] ( 3, 6 ) ref -> x23 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.Nullable`1[int]]>
;* V05 tmp2 [V05 ] ( 0, 0 ) ref -> zero-ref single-def
; V06 tmp3 [V06,T04] ( 4, 3.50) ref -> x15
;* V07 tmp4 [V07 ] ( 0, 0 ) ref -> zero-ref
;* V08 tmp5 [V08 ] ( 0, 0 ) ref -> zero-ref single-def
; V09 tmp6 [V09,T06] ( 2, 2 ) int -> x0
; V10 tmp7 [V10,T07] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.ArgumentOutOfRangeException>
; V11 tmp8 [V11,T08] ( 2, 0 ) ref -> x20 single-def "argument with side effect"
; V12 tmp9 [V12,T09] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
; V13 cse0 [V13,T05] ( 3, 2 ) long -> x22 "CSE #01: aggressive"
;
; Lcl frame size = 8
G_M50504_IG01:
stp fp, lr, [sp, #-0x40]!
stp x19, x20, [sp, #0x18]
stp x21, x22, [sp, #0x28]
str x23, [sp, #0x38]
mov fp, sp
mov x19, x0
mov x21, x1
mov w20, w2
;; size=32 bbWeight=1 PerfScore 6.00
G_M50504_IG02:
movz x22, #0xD1FFAB1E
movk x22, #0xD1FFAB1E LSL #16
movk x22, #0xD1FFAB1E LSL #32
mov x0, x22
bl CORINFO_HELP_NEWSFAST
mov x23, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldapr w0, [x0]
tbz w0, #0, G_M50504_IG08
;; size=44 bbWeight=1 PerfScore 9.00
G_M50504_IG03:
movz x14, #0xD1FFAB1E // data for System.Collections.Generic.List`1[System.Nullable`1[int]]:s_emptyArray
+ movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x23, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x19, #8
mov x15, x23
bl CORINFO_HELP_ASSIGN_REF
cmn w20, #1
blt G_M50504_IG10
mov x15, x21
cbnz x15, G_M50504_IG06
- ;; size=48 bbWeight=1 PerfScore 10.50
+ ;; size=52 bbWeight=1 PerfScore 11.00
G_M50504_IG04:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldapr w0, [x0]
tbz w0, #0, G_M50504_IG09
;; size=20 bbWeight=0.50 PerfScore 2.75
G_M50504_IG05:
movz x14, #0xD1FFAB1E // data for System.Collections.Generic.EqualityComparer`1[short]:<Default>k__BackingField
+ movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
- ;; size=12 bbWeight=0.50 PerfScore 2.00
+ ;; size=16 bbWeight=0.50 PerfScore 2.25
G_M50504_IG06:
add x14, x19, #16
bl CORINFO_HELP_ASSIGN_REF
movn w0, #0xD1FFAB1E LSL #16
cmn w20, #1
csel w0, w0, w20, eq
str w0, [x19, #0x24]
;; size=24 bbWeight=1 PerfScore 4.00
G_M50504_IG07:
ldr x23, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x40
ret lr
;; size=20 bbWeight=1 PerfScore 6.00
G_M50504_IG08:
mov x0, x22
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M50504_IG03
;; size=12 bbWeight=0 PerfScore 0.00
G_M50504_IG09:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M50504_IG05
;; size=20 bbWeight=0 PerfScore 0.00
G_M50504_IG10:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x19, x0
mov w0, #0xD1FFAB1E
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_STRCNS
mov x20, x0
movz x0, #0xD1FFAB1E // code for System.SR:get_ArgumentOutOfRange_InvalidThreshold():System.String
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
mov x2, x0
mov x1, x20
mov x0, x19
movz x3, #0xD1FFAB1E // code for System.ArgumentOutOfRangeException:.ctor(System.String,System.String):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x0, x19
bl CORINFO_HELP_THROW
brk #0
;; size=108 bbWeight=0 PerfScore 0.00
-; Total bytes of code 340, prolog size 20, PerfScore 40.25, instruction count 85, allocated bytes for code 340 (MethodHash=54dc3ab7) for method System.Collections.ObjectModel.KeyedCollection`2[short,System.Nullable`1[int]]:.ctor(System.Collections.Generic.IEqualityComparer`1[short],int):this (FullOpts)
+; Total bytes of code 348, prolog size 20, PerfScore 41.00, instruction count 87, allocated bytes for code 348 (MethodHash=54dc3ab7) for method System.Collections.ObjectModel.KeyedCollection`2[short,System.Nullable`1[int]]:.ctor(System.Collections.Generic.IEqualityComparer`1[short],int):this (FullOpts)
; ============================================================
8 (4.00 % of base) - System.Collections.ObjectModel.KeyedCollection`2[short,System.Nullable`1[int]]:.ctor(System.Collections.Generic.IEqualityComparer`1[short]):this
; Assembly listing for method System.Collections.ObjectModel.KeyedCollection`2[short,System.Nullable`1[int]]:.ctor(System.Collections.Generic.IEqualityComparer`1[short]):this (FullOpts)
; Emitting BLENDED_CODE for generic ARM64 - Unix
; FullOpts code
; optimized code
; fp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 4 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 5, 5 ) ref -> x19 this class-hnd single-def <System.Collections.ObjectModel.KeyedCollection`2[short,System.Nullable`1[int]]>
; V01 arg1 [V01,T02] ( 3, 3 ) ref -> x20 class-hnd single-def <System.Collections.Generic.IEqualityComparer`1[short]>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V03 tmp1 [V03,T01] ( 3, 6 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.Nullable`1[int]]>
;* V04 tmp2 [V04 ] ( 0, 0 ) ref -> zero-ref single-def
; V05 tmp3 [V05,T03] ( 4, 3.50) ref -> x15
;* V06 tmp4 [V06 ] ( 0, 0 ) ref -> zero-ref
;* V07 tmp5 [V07 ] ( 0, 0 ) ref -> zero-ref
;* V08 tmp6 [V08 ] ( 0, 0 ) int -> zero-ref
; V09 cse0 [V09,T04] ( 3, 2 ) long -> x21 "CSE #01: aggressive"
;
; Lcl frame size = 0
G_M42327_IG01:
stp fp, lr, [sp, #-0x30]!
stp x19, x20, [sp, #0x10]
stp x21, x22, [sp, #0x20]
mov fp, sp
mov x19, x0
mov x20, x1
;; size=24 bbWeight=1 PerfScore 4.50
G_M42327_IG02:
movz x21, #0xD1FFAB1E
movk x21, #0xD1FFAB1E LSL #16
movk x21, #0xD1FFAB1E LSL #32
mov x0, x21
bl CORINFO_HELP_NEWSFAST
mov x22, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldapr w0, [x0]
tbz w0, #0, G_M42327_IG08
;; size=44 bbWeight=1 PerfScore 9.00
G_M42327_IG03:
movz x14, #0xD1FFAB1E // data for System.Collections.Generic.List`1[System.Nullable`1[int]]:s_emptyArray
+ movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x22, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x19, #8
mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
mov x15, x20
cbnz x15, G_M42327_IG06
- ;; size=40 bbWeight=1 PerfScore 9.00
+ ;; size=44 bbWeight=1 PerfScore 9.50
G_M42327_IG04:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldapr w0, [x0]
tbz w0, #0, G_M42327_IG09
;; size=20 bbWeight=0.50 PerfScore 2.75
G_M42327_IG05:
movz x14, #0xD1FFAB1E // data for System.Collections.Generic.EqualityComparer`1[short]:<Default>k__BackingField
+ movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
- ;; size=12 bbWeight=0.50 PerfScore 2.00
+ ;; size=16 bbWeight=0.50 PerfScore 2.25
G_M42327_IG06:
add x14, x19, #16
bl CORINFO_HELP_ASSIGN_REF
str wzr, [x19, #0x24]
;; size=12 bbWeight=1 PerfScore 2.50
G_M42327_IG07:
ldp x21, x22, [sp, #0x20]
ldp x19, x20, [sp, #0x10]
ldp fp, lr, [sp], #0x30
ret lr
;; size=16 bbWeight=1 PerfScore 4.00
G_M42327_IG08:
mov x0, x21
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M42327_IG03
;; size=12 bbWeight=0 PerfScore 0.00
G_M42327_IG09:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M42327_IG05
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 200, prolog size 16, PerfScore 33.75, instruction count 50, allocated bytes for code 200 (MethodHash=a0fe5aa8) for method System.Collections.ObjectModel.KeyedCollection`2[short,System.Nullable`1[int]]:.ctor(System.Collections.Generic.IEqualityComparer`1[short]):this (FullOpts)
+; Total bytes of code 208, prolog size 16, PerfScore 34.50, instruction count 52, allocated bytes for code 208 (MethodHash=a0fe5aa8) for method System.Collections.ObjectModel.KeyedCollection`2[short,System.Nullable`1[int]]:.ctor(System.Collections.Generic.IEqualityComparer`1[short]):this (FullOpts)
; ============================================================
8 (2.35 % of base) - System.Collections.ObjectModel.KeyedCollection`2[System.Nullable`1[int],System.Nullable`1[int]]:.ctor(System.Collections.Generic.IEqualityComparer`1[System.Nullable`1[int]],int):this
; Assembly listing for method System.Collections.ObjectModel.KeyedCollection`2[System.Nullable`1[int],System.Nullable`1[int]]:.ctor(System.Collections.Generic.IEqualityComparer`1[System.Nullable`1[int]],int):this (FullOpts)
; Emitting BLENDED_CODE for generic ARM64 - Unix
; FullOpts code
; optimized code
; fp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 4 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 5, 5 ) ref -> x19 this class-hnd single-def <System.Collections.ObjectModel.KeyedCollection`2[System.Nullable`1[int],System.Nullable`1[int]]>
; V01 arg1 [V01,T03] ( 3, 3 ) ref -> x21 class-hnd single-def <System.Collections.Generic.IEqualityComparer`1[System.Nullable`1[int]]>
; V02 arg2 [V02,T01] ( 5, 5 ) int -> x20 single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04,T02] ( 3, 6 ) ref -> x23 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.Nullable`1[int]]>
;* V05 tmp2 [V05 ] ( 0, 0 ) ref -> zero-ref single-def
; V06 tmp3 [V06,T04] ( 4, 3.50) ref -> x15
;* V07 tmp4 [V07 ] ( 0, 0 ) ref -> zero-ref
;* V08 tmp5 [V08 ] ( 0, 0 ) ref -> zero-ref single-def
; V09 tmp6 [V09,T06] ( 2, 2 ) int -> x0
; V10 tmp7 [V10,T07] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.ArgumentOutOfRangeException>
; V11 tmp8 [V11,T08] ( 2, 0 ) ref -> x20 single-def "argument with side effect"
; V12 tmp9 [V12,T09] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
; V13 cse0 [V13,T05] ( 3, 2 ) long -> x22 "CSE #01: aggressive"
;
; Lcl frame size = 8
G_M30536_IG01:
stp fp, lr, [sp, #-0x40]!
stp x19, x20, [sp, #0x18]
stp x21, x22, [sp, #0x28]
str x23, [sp, #0x38]
mov fp, sp
mov x19, x0
mov x21, x1
mov w20, w2
;; size=32 bbWeight=1 PerfScore 6.00
G_M30536_IG02:
movz x22, #0xD1FFAB1E
movk x22, #0xD1FFAB1E LSL #16
movk x22, #0xD1FFAB1E LSL #32
mov x0, x22
bl CORINFO_HELP_NEWSFAST
mov x23, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldapr w0, [x0]
tbz w0, #0, G_M30536_IG08
;; size=44 bbWeight=1 PerfScore 9.00
G_M30536_IG03:
movz x14, #0xD1FFAB1E // data for System.Collections.Generic.List`1[System.Nullable`1[int]]:s_emptyArray
+ movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x23, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x19, #8
mov x15, x23
bl CORINFO_HELP_ASSIGN_REF
cmn w20, #1
blt G_M30536_IG10
mov x15, x21
cbnz x15, G_M30536_IG06
- ;; size=48 bbWeight=1 PerfScore 10.50
+ ;; size=52 bbWeight=1 PerfScore 11.00
G_M30536_IG04:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldapr w0, [x0]
tbz w0, #0, G_M30536_IG09
;; size=20 bbWeight=0.50 PerfScore 2.75
G_M30536_IG05:
movz x14, #0xD1FFAB1E // data for System.Collections.Generic.EqualityComparer`1[System.Nullable`1[int]]:<Default>k__BackingField
+ movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
- ;; size=12 bbWeight=0.50 PerfScore 2.00
+ ;; size=16 bbWeight=0.50 PerfScore 2.25
G_M30536_IG06:
add x14, x19, #16
bl CORINFO_HELP_ASSIGN_REF
movn w0, #0xD1FFAB1E LSL #16
cmn w20, #1
csel w0, w0, w20, eq
str w0, [x19, #0x24]
;; size=24 bbWeight=1 PerfScore 4.00
G_M30536_IG07:
ldr x23, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x40
ret lr
;; size=20 bbWeight=1 PerfScore 6.00
G_M30536_IG08:
mov x0, x22
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M30536_IG03
;; size=12 bbWeight=0 PerfScore 0.00
G_M30536_IG09:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M30536_IG05
;; size=20 bbWeight=0 PerfScore 0.00
G_M30536_IG10:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x19, x0
mov w0, #0xD1FFAB1E
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_STRCNS
mov x20, x0
movz x0, #0xD1FFAB1E // code for System.SR:get_ArgumentOutOfRange_InvalidThreshold():System.String
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
mov x2, x0
mov x1, x20
mov x0, x19
movz x3, #0xD1FFAB1E // code for System.ArgumentOutOfRangeException:.ctor(System.String,System.String):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x0, x19
bl CORINFO_HELP_THROW
brk #0
;; size=108 bbWeight=0 PerfScore 0.00
-; Total bytes of code 340, prolog size 20, PerfScore 40.25, instruction count 85, allocated bytes for code 340 (MethodHash=825a88b7) for method System.Collections.ObjectModel.KeyedCollection`2[System.Nullable`1[int],System.Nullable`1[int]]:.ctor(System.Collections.Generic.IEqualityComparer`1[System.Nullable`1[int]],int):this (FullOpts)
+; Total bytes of code 348, prolog size 20, PerfScore 41.00, instruction count 87, allocated bytes for code 348 (MethodHash=825a88b7) for method System.Collections.ObjectModel.KeyedCollection`2[System.Nullable`1[int],System.Nullable`1[int]]:.ctor(System.Collections.Generic.IEqualityComparer`1[System.Nullable`1[int]],int):this (FullOpts)
; ============================================================
8 (4.00 % of base) - System.Collections.ObjectModel.KeyedCollection`2[System.Nullable`1[int],System.Nullable`1[int]]:.ctor(System.Collections.Generic.IEqualityComparer`1[System.Nullable`1[int]]):this
; Assembly listing for method System.Collections.ObjectModel.KeyedCollection`2[System.Nullable`1[int],System.Nullable`1[int]]:.ctor(System.Collections.Generic.IEqualityComparer`1[System.Nullable`1[int]]):this (FullOpts)
; Emitting BLENDED_CODE for generic ARM64 - Unix
; FullOpts code
; optimized code
; fp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 4 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 5, 5 ) ref -> x19 this class-hnd single-def <System.Collections.ObjectModel.KeyedCollection`2[System.Nullable`1[int],System.Nullable`1[int]]>
; V01 arg1 [V01,T02] ( 3, 3 ) ref -> x20 class-hnd single-def <System.Collections.Generic.IEqualityComparer`1[System.Nullable`1[int]]>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V03 tmp1 [V03,T01] ( 3, 6 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.Nullable`1[int]]>
;* V04 tmp2 [V04 ] ( 0, 0 ) ref -> zero-ref single-def
; V05 tmp3 [V05,T03] ( 4, 3.50) ref -> x15
;* V06 tmp4 [V06 ] ( 0, 0 ) ref -> zero-ref
;* V07 tmp5 [V07 ] ( 0, 0 ) ref -> zero-ref
;* V08 tmp6 [V08 ] ( 0, 0 ) int -> zero-ref
; V09 cse0 [V09,T04] ( 3, 2 ) long -> x21 "CSE #01: aggressive"
;
; Lcl frame size = 0
G_M22359_IG01:
stp fp, lr, [sp, #-0x30]!
stp x19, x20, [sp, #0x10]
stp x21, x22, [sp, #0x20]
mov fp, sp
mov x19, x0
mov x20, x1
;; size=24 bbWeight=1 PerfScore 4.50
G_M22359_IG02:
movz x21, #0xD1FFAB1E
movk x21, #0xD1FFAB1E LSL #16
movk x21, #0xD1FFAB1E LSL #32
mov x0, x21
bl CORINFO_HELP_NEWSFAST
mov x22, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldapr w0, [x0]
tbz w0, #0, G_M22359_IG08
;; size=44 bbWeight=1 PerfScore 9.00
G_M22359_IG03:
movz x14, #0xD1FFAB1E // data for System.Collections.Generic.List`1[System.Nullable`1[int]]:s_emptyArray
+ movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x22, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x19, #8
mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
mov x15, x20
cbnz x15, G_M22359_IG06
- ;; size=40 bbWeight=1 PerfScore 9.00
+ ;; size=44 bbWeight=1 PerfScore 9.50
G_M22359_IG04:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldapr w0, [x0]
tbz w0, #0, G_M22359_IG09
;; size=20 bbWeight=0.50 PerfScore 2.75
G_M22359_IG05:
movz x14, #0xD1FFAB1E // data for System.Collections.Generic.EqualityComparer`1[System.Nullable`1[int]]:<Default>k__BackingField
+ movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
- ;; size=12 bbWeight=0.50 PerfScore 2.00
+ ;; size=16 bbWeight=0.50 PerfScore 2.25
G_M22359_IG06:
add x14, x19, #16
bl CORINFO_HELP_ASSIGN_REF
str wzr, [x19, #0x24]
;; size=12 bbWeight=1 PerfScore 2.50
G_M22359_IG07:
ldp x21, x22, [sp, #0x20]
ldp x19, x20, [sp, #0x10]
ldp fp, lr, [sp], #0x30
ret lr
;; size=16 bbWeight=1 PerfScore 4.00
G_M22359_IG08:
mov x0, x21
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M22359_IG03
;; size=12 bbWeight=0 PerfScore 0.00
G_M22359_IG09:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M22359_IG05
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 200, prolog size 16, PerfScore 33.75, instruction count 50, allocated bytes for code 200 (MethodHash=5f85a8a8) for method System.Collections.ObjectModel.KeyedCollection`2[System.Nullable`1[int],System.Nullable`1[int]]:.ctor(System.Collections.Generic.IEqualityComparer`1[System.Nullable`1[int]]):this (FullOpts)
+; Total bytes of code 208, prolog size 16, PerfScore 34.50, instruction count 52, allocated bytes for code 208 (MethodHash=5f85a8a8) for method System.Collections.ObjectModel.KeyedCollection`2[System.Nullable`1[int],System.Nullable`1[int]]:.ctor(System.Collections.Generic.IEqualityComparer`1[System.Nullable`1[int]]):this (FullOpts)
; ============================================================