-160 (-8.097% of base) - System.Threading.Tasks.Task:RunContinuations(System.Object):this
; Assembly listing for method System.Threading.Tasks.Task:RunContinuations(System.Object):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; 11 single block inlinees; 15 inlinees without PGO data
+; 0 inlinees with PGO data; 8 single block inlinees; 14 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T03] ( 17, 26.50) ref -> x19 this class-hnd single-def <System.Threading.Tasks.Task>
-; V01 arg1 [V01,T32] ( 8, 5.12) ref -> x20 class-hnd single-def <System.Object>
-; V02 loc0 [V02,T09] ( 13, 16.50) ref -> x22 class-hnd exact single-def <System.Threading.Tasks.TplEventSource>
-; V03 loc1 [V03,T23] ( 5, 8 ) ubyte -> x23
-; V04 loc2 [V04,T17] ( 10, 11.50) ubyte -> x24
-; V05 loc3 [V05,T00] ( 16, 32.50) ref -> x25 class-hnd single-def <System.Collections.Generic.List`1[System.Object]>
-; V06 loc4 [V06,T20] ( 5, 9.50) int -> x20
+; V00 this [V00,T03] ( 16, 24.50) ref -> x19 this class-hnd single-def <System.Threading.Tasks.Task>
+; V01 arg1 [V01,T33] ( 8, 5.12) ref -> x20 class-hnd single-def <System.Object>
+; V02 loc0 [V02,T07] ( 13, 16.50) ref -> x21 class-hnd exact single-def <System.Threading.Tasks.TplEventSource>
+; V03 loc1 [V03,T18] ( 5, 8 ) ubyte -> x22
+; V04 loc2 [V04,T12] ( 10, 11.50) ubyte -> x23
+; V05 loc3 [V05,T00] ( 16, 32.50) ref -> x24 class-hnd single-def <System.Collections.Generic.List`1[System.Object]>
+; V06 loc4 [V06,T15] ( 5, 9.50) int -> x20
; V07 loc5 [V07,T42] ( 3, 2.50) ref -> x0 class-hnd single-def <System.Runtime.CompilerServices.IAsyncStateMachineBox>
; V08 loc6 [V08,T46] ( 4, 1.75) ref -> x0 class-hnd exact <System.Action>
; V09 loc7 [V09,T43] ( 4, 2 ) ref -> x0 class-hnd single-def <System.Threading.Tasks.TaskContinuation>
; V10 loc8 [V10,T47] ( 3, 1.50) ref -> x1 class-hnd single-def <System.Threading.Tasks.ITaskCompletionAction>
-; V11 loc9 [V11,T52] ( 2, 0 ) ref -> [fp+0x20] class-hnd EH-live single-def <System.Collections.Generic.List`1[System.Object]>
+; V11 loc9 [V11,T52] ( 2, 0 ) ref -> [fp+0x28] class-hnd EH-live single-def <System.Collections.Generic.List`1[System.Object]>
; V12 loc10 [V12 ] ( 5, 2 ) ubyte -> [fp+0x50] do-not-enreg[X] addr-exposed ld-addr-op
-; V13 loc11 [V13,T36] ( 3, 4.50) ubyte -> x26
-; V14 loc12 [V14,T01] ( 11, 32.50) int -> x27
-; V15 loc13 [V15,T06] ( 9, 20.50) ref -> [fp+0x18] class-hnd spill-single-def <System.Object>
-; V16 loc14 [V16,T18] ( 5, 10 ) ref -> [fp+0x10] class-hnd exact spill-single-def <System.Threading.Tasks.ContinueWithTaskContinuation>
-; V17 loc15 [V17,T33] ( 3, 6 ) ref -> x0 class-hnd <System.Runtime.CompilerServices.IAsyncStateMachineBox>
-; V18 loc16 [V18,T35] ( 2, 4 ) ref -> x0 class-hnd exact <System.Action>
-; V19 loc17 [V19,T02] ( 10, 30.50) int -> x26
-; V20 loc18 [V20,T08] ( 7, 18 ) ref -> x27 class-hnd <System.Object>
-; V21 loc19 [V21,T34] ( 3, 6 ) ref -> x0 class-hnd <System.Runtime.CompilerServices.IAsyncStateMachineBox>
-; V22 loc20 [V22,T24] ( 3, 6 ) ref -> x0 class-hnd exact <System.Action>
-; V23 loc21 [V23,T25] ( 4, 8 ) ref -> x0 class-hnd <System.Threading.Tasks.TaskContinuation>
+; V13 loc11 [V13,T37] ( 3, 4.50) ubyte -> x25
+; V14 loc12 [V14,T01] ( 9, 28.50) int -> x26
+; V15 loc13 [V15,T04] ( 9, 20.50) ref -> [fp+0x20] class-hnd spill-single-def <System.Object>
+; V16 loc14 [V16,T13] ( 5, 10 ) ref -> [fp+0x18] class-hnd exact spill-single-def <System.Threading.Tasks.ContinueWithTaskContinuation>
+; V17 loc15 [V17,T34] ( 3, 6 ) ref -> x0 class-hnd <System.Runtime.CompilerServices.IAsyncStateMachineBox>
+; V18 loc16 [V18,T36] ( 2, 4 ) ref -> x0 class-hnd exact <System.Action>
+; V19 loc17 [V19,T02] ( 9, 28.50) int -> x25
+; V20 loc18 [V20,T06] ( 7, 18 ) ref -> x26 class-hnd <System.Object>
+; V21 loc19 [V21,T35] ( 3, 6 ) ref -> x0 class-hnd <System.Runtime.CompilerServices.IAsyncStateMachineBox>
+; V22 loc20 [V22,T19] ( 3, 6 ) ref -> x0 class-hnd exact <System.Action>
+; V23 loc21 [V23,T20] ( 4, 8 ) ref -> x0 class-hnd <System.Threading.Tasks.TaskContinuation>
;# V24 OutArgs [V24 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V25 tmp1 [V25,T44] ( 3, 2 ) int -> x0
;* V26 tmp2 [V26 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <System.Action>
; V27 tmp3 [V27,T49] ( 3, 1.25) long -> x1 "fgMakeTemp is creating a new local variable"
-; V28 tmp4 [V28,T41] ( 5, 3.75) ref -> x25 class-hnd "spilling QMark2" <System.Collections.Generic.List`1[System.Object]>
+; V28 tmp4 [V28,T41] ( 5, 3.75) ref -> x24 class-hnd "spilling QMark2" <System.Collections.Generic.List`1[System.Object]>
;* V29 tmp5 [V29 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <System.Action>
;* V30 tmp6 [V30 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <System.Threading.Tasks.ContinueWithTaskContinuation>
;* V31 tmp7 [V31 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <System.Action>
-; V32 tmp8 [V32,T22] ( 3, 9 ) long -> x1 "fgMakeTemp is creating a new local variable"
-; V33 tmp9 [V33,T21] ( 3, 9 ) ref -> x0 class-hnd "spilling QMark2" <System.Threading.Tasks.TaskContinuation>
-; V34 tmp10 [V34,T45] ( 2, 2 ) int -> x24 "Inlining Arg"
+; V32 tmp8 [V32,T17] ( 3, 9 ) long -> x1 "fgMakeTemp is creating a new local variable"
+; V33 tmp9 [V33,T16] ( 3, 9 ) ref -> x0 class-hnd "spilling QMark2" <System.Threading.Tasks.TaskContinuation>
+; V34 tmp10 [V34,T45] ( 2, 2 ) int -> x23 "Inlining Arg"
;* V35 tmp11 [V35,T50] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V36 tmp12 [V36,T38] ( 2, 4 ) int -> x0 "Inline stloc first use temp"
-; V37 tmp13 [V37,T26] ( 2, 8 ) int -> x3 "Inlining Arg"
-; V38 tmp14 [V38 ] ( 2, 8 ) ref -> [fp+0x48] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inlining Arg" <System.Object>
-; V39 tmp15 [V39,T27] ( 2, 8 ) long -> x4 "Inlining Arg"
-; V40 tmp16 [V40,T39] ( 2, 4 ) int -> x0 "Inline stloc first use temp"
-; V41 tmp17 [V41,T28] ( 2, 8 ) int -> x2 "Inlining Arg"
-; V42 tmp18 [V42 ] ( 2, 8 ) ref -> [fp+0x40] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inlining Arg" <System.Object>
-; V43 tmp19 [V43,T29] ( 2, 8 ) long -> x4 "Inlining Arg"
-; V44 tmp20 [V44,T40] ( 2, 4 ) int -> x0 "Inline stloc first use temp"
-; V45 tmp21 [V45,T30] ( 2, 8 ) int -> x2 "Inlining Arg"
-; V46 tmp22 [V46 ] ( 2, 8 ) ref -> [fp+0x38] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inlining Arg" <System.Object>
-; V47 tmp23 [V47,T31] ( 2, 8 ) long -> x4 "Inlining Arg"
-; V48 tmp24 [V48,T10] ( 4, 16 ) ref -> x27 class-hnd "Inlining Arg" <System.Object>
-; V49 tmp25 [V49,T11] ( 4, 16 ) ref -> x1 class-hnd exact "NewObj constructor temp" <System.Threading.Tasks.CompletionActionInvoker>
-; V50 tmp26 [V50,T04] ( 3, 24 ) ref -> x0 "arr expr"
-; V51 tmp27 [V51,T14] ( 3, 12 ) ref -> x28 "arr expr"
-; V52 tmp28 [V52,T15] ( 3, 12 ) ref -> x0 "arr expr"
-; V53 tmp29 [V53,T05] ( 3, 24 ) ref -> x0 "arr expr"
-; V54 tmp30 [V54,T16] ( 3, 12 ) ref -> x0 "arr expr"
-; V55 PSPSym [V55,T51] ( 1, 1 ) long -> [fp+0x58] do-not-enreg[V] "PSPSym"
-; V56 cse0 [V56,T48] ( 3, 1.50) int -> x1 "CSE - moderate"
-; V57 cse1 [V57,T12] ( 4, 12 ) ref -> x28 "CSE - moderate"
-; V58 cse2 [V58,T13] ( 4, 12 ) long -> [fp+0x30] spill-single-def "CSE - moderate"
-; V59 cse3 [V59,T07] ( 9, 18 ) byref -> x28 "CSE - aggressive"
-; V60 cse4 [V60,T19] ( 5, 10 ) long -> [fp+0x28] spill-single-def "CSE - moderate"
-; V61 cse5 [V61,T37] ( 3, 4 ) long -> x21 "CSE - moderate"
+;* V36 tmp12 [V36 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Object>
+; V37 tmp13 [V37,T10] ( 3, 12 ) ref -> x0 class-hnd "Inline stloc first use temp" <System.Object[]>
+; V38 tmp14 [V38,T38] ( 2, 4 ) int -> x0 "Inline stloc first use temp"
+; V39 tmp15 [V39,T25] ( 2, 8 ) int -> x2 "Inlining Arg"
+; V40 tmp16 [V40 ] ( 2, 8 ) ref -> [fp+0x48] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inlining Arg" <System.Object>
+; V41 tmp17 [V41,T26] ( 2, 8 ) long -> x4 "Inlining Arg"
+; V42 tmp18 [V42,T39] ( 2, 4 ) int -> x0 "Inline stloc first use temp"
+; V43 tmp19 [V43,T27] ( 2, 8 ) int -> x2 "Inlining Arg"
+; V44 tmp20 [V44 ] ( 2, 8 ) ref -> [fp+0x40] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inlining Arg" <System.Object>
+; V45 tmp21 [V45,T28] ( 2, 8 ) long -> x4 "Inlining Arg"
+;* V46 tmp22 [V46 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Object>
+; V47 tmp23 [V47,T11] ( 3, 12 ) ref -> x0 class-hnd "Inline stloc first use temp" <System.Object[]>
+; V48 tmp24 [V48,T40] ( 2, 4 ) int -> x0 "Inline stloc first use temp"
+; V49 tmp25 [V49,T29] ( 2, 8 ) int -> x2 "Inlining Arg"
+; V50 tmp26 [V50 ] ( 2, 8 ) ref -> [fp+0x38] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inlining Arg" <System.Object>
+; V51 tmp27 [V51,T30] ( 2, 8 ) long -> x4 "Inlining Arg"
+; V52 tmp28 [V52,T21] ( 2, 8 ) ref -> x27 "arr expr"
+; V53 tmp29 [V53,T22] ( 2, 8 ) ref -> x0 "arr expr"
+; V54 tmp30 [V54,T23] ( 2, 8 ) ref -> x0 "arr expr"
+; V55 tmp31 [V55,T24] ( 2, 8 ) ref -> x1 "argument with side effect"
+; V56 PSPSym [V56,T51] ( 1, 1 ) long -> [fp+0x58] do-not-enreg[V] "PSPSym"
+; V57 cse0 [V57,T48] ( 3, 1.50) int -> x1 "CSE - moderate"
+; V58 cse1 [V58,T08] ( 4, 12 ) ref -> x27 "CSE - aggressive"
+; V59 cse2 [V59,T09] ( 4, 12 ) long -> x28 "CSE - aggressive"
+; V60 cse3 [V60,T31] ( 2, 8 ) int -> x1 "CSE - aggressive"
+; V61 cse4 [V61,T32] ( 2, 8 ) int -> x1 "CSE - aggressive"
+; V62 cse5 [V62,T05] ( 9, 18 ) byref -> x27 "CSE - aggressive"
+; V63 cse6 [V63,T14] ( 5, 10 ) long -> [fp+0x30] spill-single-def "CSE - moderate"
;
; Lcl frame size = 80
G_M51094_IG01:
stp fp, lr, [sp, #-0xB0]!
stp x19, x20, [sp, #0x60]
stp x21, x22, [sp, #0x70]
stp x23, x24, [sp, #0x80]
stp x25, x26, [sp, #0x90]
stp x27, x28, [sp, #0xA0]
mov fp, sp
- stp xzr, xzr, [fp, #0x40] // [V42 tmp18], [V38 tmp14]
- str xzr, [fp, #0x38] // [V46 tmp22]
+ stp xzr, xzr, [fp, #0x40] // [V44 tmp20], [V40 tmp16]
+ str xzr, [fp, #0x38] // [V50 tmp26]
add x2, sp, #176
- str x2, [fp, #0x58] // [V55 PSPSym]
+ str x2, [fp, #0x58] // [V56 PSPSym]
mov x19, x0
mov x20, x1
;; size=52 bbWeight=1 PerfScore 11.00
G_M51094_IG02:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr w0, [x0]
- tbz w0, #0, G_M51094_IG57
+ tbz w0, #0, G_M51094_IG55
;; size=20 bbWeight=1 PerfScore 5.50
G_M51094_IG03:
- movz x21, #0xD1FFAB1E
- movk x21, #0xD1FFAB1E LSL #16
- movk x21, #0xD1FFAB1E LSL #32
- ldr x22, [x21, #0xD1FFAB1E]
- ldrb w23, [x22, #0x9D]
- cbz w23, G_M51094_IG05
+ movz x0, #0xD1FFAB1E // data for System.Threading.Tasks.TplEventSource:Log
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
+ ldr x21, [x0]
+ ldrb w22, [x21, #0x9D]
+ cbz w22, G_M51094_IG05
;; size=24 bbWeight=1 PerfScore 8.50
G_M51094_IG04:
mov x0, x19
movz x1, #0xD1FFAB1E // code for System.Threading.Tasks.Task:get_Id():int:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
- sxtw w24, w0
- ldrb w1, [x22, #0x9D]
+ sxtw w23, w0
+ ldrb w1, [x21, #0x9D]
cbz w1, G_M51094_IG05
- ldr x3, [x22, #0x80]
- ldr w2, [x22, #0x98]
- mov x0, x22
+ ldr x3, [x21, #0x80]
+ ldr w2, [x21, #0x98]
+ mov x0, x21
mov w4, #4
mov x5, #32
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_M51094_IG05
- mov x0, x22
- mov w2, w24
+ mov x0, x21
+ mov w2, w23
mov w1, #17
mov w3, wzr
movz x4, #0xD1FFAB1E // code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,int,int):this
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
ldr x4, [x4]
blr x4
;; size=120 bbWeight=0.50 PerfScore 16.25
G_M51094_IG05:
add x0, x19, #52
ldapr w0, [x0]
tbnz w0, #6, G_M51094_IG07
;; size=12 bbWeight=1 PerfScore 4.50
G_M51094_IG06:
bl System.Runtime.CompilerServices.RuntimeHelpers:TryEnsureSufficientExecutionStack():ubyte
b G_M51094_IG08
;; size=8 bbWeight=0.50 PerfScore 1.00
G_M51094_IG07:
mov w0, wzr
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M51094_IG08:
- uxtb w24, w0
+ uxtb w23, w0
mov x1, x20
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_ISINSTANCEOFINTERFACE
cbnz x0, G_M51094_IG12
;; size=28 bbWeight=1 PerfScore 4.50
G_M51094_IG09:
mov x0, x20
cbz x0, G_M51094_IG11
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M51094_IG10:
ldr x1, [x0]
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
cmp x1, x2
beq G_M51094_IG13
;; size=24 bbWeight=0.25 PerfScore 1.50
G_M51094_IG11:
mov x1, x20
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_ISINSTANCEOFCLASS
cbnz x0, G_M51094_IG14
mov x1, x20
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_ISINSTANCEOFINTERFACE
mov x1, x0
cbnz x1, G_M51094_IG15
b G_M51094_IG16
;; size=56 bbWeight=0.50 PerfScore 4.75
G_M51094_IG12:
- mov w1, w24
+ mov w1, w23
movz x2, #0xD1FFAB1E // code for System.Threading.Tasks.AwaitTaskContinuation:RunOrScheduleAction(System.Runtime.CompilerServices.IAsyncStateMachineBox,ubyte)
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- b G_M51094_IG54
+ b G_M51094_IG52
;; size=28 bbWeight=0.50 PerfScore 3.50
G_M51094_IG13:
- mov w1, w24
+ mov w1, w23
movz x2, #0xD1FFAB1E // code for System.Threading.Tasks.AwaitTaskContinuation:RunOrScheduleAction(System.Action,ubyte)
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- b G_M51094_IG54
+ b G_M51094_IG52
;; size=28 bbWeight=0.50 PerfScore 3.50
G_M51094_IG14:
mov x1, x19
- mov w2, w24
+ mov w2, w23
ldr x3, [x0]
ldr x3, [x3, #0x40]
ldr x3, [x3, #0x20]
blr x3
- b G_M51094_IG54
+ b G_M51094_IG52
;; size=28 bbWeight=0.50 PerfScore 6.00
G_M51094_IG15:
mov x0, x19
- mov w2, w24
+ mov w2, w23
movz x3, #0xD1FFAB1E // code for System.Threading.Tasks.Task:RunOrQueueCompletionAction(System.Threading.Tasks.ITaskCompletionAction,ubyte):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
- b G_M51094_IG54
+ b G_M51094_IG52
;; size=32 bbWeight=0.50 PerfScore 3.75
G_M51094_IG16:
- mov x25, x20
- cbz x25, G_M51094_IG19
+ mov x24, x20
+ cbz x24, G_M51094_IG19
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M51094_IG17:
- ldr x0, [x25]
+ ldr x0, [x24]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
cmp x0, x1
beq G_M51094_IG19
;; size=24 bbWeight=0.25 PerfScore 1.50
G_M51094_IG18:
mov x0, x1
mov x1, x20
bl CORINFO_HELP_CHKCASTCLASS_SPECIAL
- mov x25, x0
+ mov x24, x0
;; size=16 bbWeight=0.12 PerfScore 0.31
G_M51094_IG19:
- str x25, [fp, #0x20] // [V11 loc9]
+ str x24, [fp, #0x28] // [V11 loc9]
str wzr, [fp, #0x50] // [V12 loc10]
;; size=8 bbWeight=0.50 PerfScore 1.00
G_M51094_IG20:
ldrb w1, [fp, #0x50] // [V12 loc10]
cbnz w1, G_M51094_IG21
add x1, fp, #80 // [V12 loc10]
- mov x0, x25
+ mov x0, x24
bl System.Threading.Monitor:ReliableEnter(System.Object,byref)
b G_M51094_IG22
;; size=24 bbWeight=0.50 PerfScore 3.00
G_M51094_IG21:
movz x0, #0xD1FFAB1E // code for System.Threading.Monitor:ThrowLockTakenException()
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
G_M51094_IG22:
ldrb w0, [fp, #0x50] // [V12 loc10]
cbz w0, G_M51094_IG23
- mov x0, x25
+ mov x0, x24
bl System.Threading.Monitor:Exit(System.Object)
;; size=16 bbWeight=0.50 PerfScore 2.25
G_M51094_IG23:
- ldr w20, [x25, #0x10]
- cbz w24, G_M51094_IG42
+ ldr w20, [x24, #0x10]
+ cbz w23, G_M51094_IG42
+ mov w25, wzr
mov w26, wzr
- mov w27, wzr
cmp w20, #0
ble G_M51094_IG42
;; size=24 bbWeight=0.50 PerfScore 3.25
G_M51094_IG24:
- ldr w0, [x25, #0x10]
- cmp w27, w0
- bhs G_M51094_IG56
- ldr x28, [x25, #0x08]
- mov x0, x28
+ ldr x27, [x24, #0x08]
+ mov x0, x27
+ ldr w1, [x24, #0x10]
+ cmp w26, w1
+ bhs G_M51094_IG54
ldr w1, [x0, #0x08]
- cmp w27, w1
- bhs G_M51094_IG58
+ cmp w1, w26
+ bls G_M51094_IG54
add x0, x0, #16
- ubfiz x1, x27, #3, #32
- str x1, [fp, #0x30] // [V58 cse2]
- ldr x0, [x0, x1]
- str x0, [fp, #0x18] // [V15 loc13]
+ ubfiz x28, x26, #3, #32
+ ldr x0, [x0, x28]
+ str x0, [fp, #0x20] // [V15 loc13]
cbz x0, G_M51094_IG41
- ;; size=56 bbWeight=4 PerfScore 80.00
+ ;; size=52 bbWeight=4 PerfScore 76.00
G_M51094_IG25:
- mov x2, x0
- str x2, [fp, #0x10] // [V16 loc14]
- ldr x3, [x2]
- str x3, [fp, #0x28] // [V60 cse4]
- movz x4, #0xD1FFAB1E
- movk x4, #0xD1FFAB1E LSL #16
- movk x4, #0xD1FFAB1E LSL #32
- cmp x3, x4
+ mov x1, x0
+ str x1, [fp, #0x18] // [V16 loc14]
+ ldr x2, [x1]
+ str x2, [fp, #0x30] // [V63 cse6]
+ movz x3, #0xD1FFAB1E
+ movk x3, #0xD1FFAB1E LSL #16
+ movk x3, #0xD1FFAB1E LSL #32
+ cmp x2, x3
bne G_M51094_IG30
- ldr w0, [x2, #0x18]
+ ldr w0, [x1, #0x18]
tbnz w0, #19, G_M51094_IG41
- ldr w0, [x28, #0x08]
- cmp w27, w0
- bhs G_M51094_IG58
- add x0, x28, #16
- str xzr, [x0, x1]
- ldr w0, [x25, #0x14]
+ add x0, x27, #16
+ str xzr, [x0, x28]
+ ldr w0, [x24, #0x14]
add w0, w0, #1
- str w0, [x25, #0x14]
- cbz w23, G_M51094_IG29
- add x28, x19, #48
- ldapr w0, [x28]
+ str w0, [x24, #0x14]
+ cbz w22, G_M51094_IG29
+ add x27, x19, #48
+ ldapr w0, [x27]
cbnz w0, G_M51094_IG26
movz x0, #0xD1FFAB1E // code for System.Threading.Tasks.Task:NewId():int
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
mov w2, wzr
- casal w2, w0, [x28]
- ;; size=120 bbWeight=2 PerfScore 75.00
+ casal w2, w0, [x27]
+ ;; size=108 bbWeight=2 PerfScore 66.00
G_M51094_IG26:
- ldr w3, [x19, #0x30]
- ldr x2, [fp, #0x10] // [V16 loc14]
- str x2, [fp, #0x48] // [V38 tmp14]
- ldr x4, [fp, #0x48] // [V38 tmp14]
- ldrb w0, [x22, #0xB1]
- cbz w0, G_M51094_IG28
- sxtw x2, w3
- sxtw x3, w27
- mov x0, x22
+ ldr w2, [x19, #0x30]
+ ldr x1, [fp, #0x18] // [V16 loc14]
+ str x1, [fp, #0x48] // [V40 tmp16]
+ ldr x4, [fp, #0x48] // [V40 tmp16]
+ ldrb w3, [x21, #0xB1]
+ cbz w3, G_M51094_IG28
+ sxtw x2, w2
+ sxtw x3, w26
+ mov x0, x21
mov w1, #21
movz x5, #0xD1FFAB1E // code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,long,long,long):this
movk x5, #0xD1FFAB1E LSL #16
movk x5, #0xD1FFAB1E LSL #32
ldr x5, [x5]
blr x5
- ldr x2, [fp, #0x10] // [V16 loc14]
+ ldr x1, [fp, #0x18] // [V16 loc14]
;; size=64 bbWeight=2 PerfScore 43.00
G_M51094_IG27:
- mov x0, x2
+ mov x0, x1
mov x1, x19
mov w2, wzr
movz x3, #0xD1FFAB1E // code for System.Threading.Tasks.ContinueWithTaskContinuation:Run(System.Threading.Tasks.Task,ubyte):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
b G_M51094_IG41
;; size=36 bbWeight=2 PerfScore 16.00
G_M51094_IG28:
- ldr x2, [fp, #0x10] // [V16 loc14]
+ ldr x1, [fp, #0x18] // [V16 loc14]
b G_M51094_IG27
;; size=8 bbWeight=1 PerfScore 3.00
G_M51094_IG29:
- ldr x2, [fp, #0x10] // [V16 loc14]
+ ldr x1, [fp, #0x18] // [V16 loc14]
b G_M51094_IG27
;; size=8 bbWeight=1 PerfScore 3.00
G_M51094_IG30:
mov x1, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_ISINSTANCEOFINTERFACE
cbnz x0, G_M51094_IG41
- cbz w26, G_M51094_IG40
- mov x0, x28
- ldr w1, [x0, #0x08]
- cmp w27, w1
- bhs G_M51094_IG58
+ cbz w25, G_M51094_IG40
+ mov x0, x27
add x0, x0, #16
- ldr x26, [fp, #0x30] // [V58 cse2]
- str xzr, [x0, x26]
- ldr w0, [x25, #0x14]
+ str xzr, [x0, x28]
+ ldr w0, [x24, #0x14]
add w0, w0, #1
- str w0, [x25, #0x14]
- cbz w23, G_M51094_IG34
- add x28, x19, #48
- ldapr w0, [x28]
+ str w0, [x24, #0x14]
+ cbz w22, G_M51094_IG34
+ add x27, x19, #48
+ ldapr w0, [x27]
cbnz w0, G_M51094_IG31
movz x0, #0xD1FFAB1E // code for System.Threading.Tasks.Task:NewId():int
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
mov w2, wzr
- casal w2, w0, [x28]
- ;; size=112 bbWeight=2 PerfScore 65.00
+ casal w2, w0, [x27]
+ ;; size=96 bbWeight=2 PerfScore 52.00
G_M51094_IG31:
ldr w2, [x19, #0x30]
- ldr x28, [fp, #0x18] // [V15 loc13]
- str x28, [fp, #0x40] // [V42 tmp18]
- ldr x4, [fp, #0x40] // [V42 tmp18]
- ldrb w3, [x22, #0xB1]
+ ldr x25, [fp, #0x20] // [V15 loc13]
+ str x25, [fp, #0x40] // [V44 tmp20]
+ ldr x4, [fp, #0x40] // [V44 tmp20]
+ ldrb w3, [x21, #0xB1]
cbz w3, G_M51094_IG32
sxtw x2, w2
- sxtw x3, w27
- mov x0, x22
+ sxtw x3, w26
+ mov x0, x21
mov w1, #21
movz x5, #0xD1FFAB1E // code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,long,long,long):this
movk x5, #0xD1FFAB1E LSL #16
movk x5, #0xD1FFAB1E LSL #32
ldr x5, [x5]
blr x5
;; size=60 bbWeight=2 PerfScore 39.00
G_M51094_IG32:
- mov x1, x28
+ mov x1, x25
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_ISINSTANCEOFINTERFACE
cbnz x0, G_M51094_IG35
- mov x0, x28
+ mov x0, x25
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- ldr x26, [fp, #0x28] // [V60 cse4]
- cmp x26, x1
+ ldr x27, [fp, #0x30] // [V63 cse6]
+ cmp x27, x1
beq G_M51094_IG36
;; size=52 bbWeight=2 PerfScore 19.00
G_M51094_IG33:
b G_M51094_IG37
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M51094_IG34:
- ldr x28, [fp, #0x18] // [V15 loc13]
+ ldr x25, [fp, #0x20] // [V15 loc13]
b G_M51094_IG32
;; size=8 bbWeight=1 PerfScore 3.00
G_M51094_IG35:
mov w1, wzr
movz x2, #0xD1FFAB1E // code for System.Threading.Tasks.AwaitTaskContinuation:RunOrScheduleAction(System.Runtime.CompilerServices.IAsyncStateMachineBox,ubyte)
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
b G_M51094_IG40
;; size=28 bbWeight=2 PerfScore 14.00
G_M51094_IG36:
mov w1, wzr
movz x2, #0xD1FFAB1E // code for System.Threading.Tasks.AwaitTaskContinuation:RunOrScheduleAction(System.Action,ubyte)
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
b G_M51094_IG40
;; size=28 bbWeight=2 PerfScore 14.00
G_M51094_IG37:
- mov x0, x28
+ mov x0, x25
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- cmp x26, x1
+ cmp x27, x1
beq G_M51094_IG39
;; size=24 bbWeight=2 PerfScore 7.00
G_M51094_IG38:
mov x0, x1
- mov x1, x28
+ mov x1, x25
bl CORINFO_HELP_CHKCASTCLASS_SPECIAL
;; size=12 bbWeight=0.50 PerfScore 1.00
G_M51094_IG39:
mov x1, x19
mov w2, wzr
- ldr x3, [x26, #0x40]
+ ldr x3, [x27, #0x40]
ldr x3, [x3, #0x20]
blr x3
;; size=20 bbWeight=2 PerfScore 16.00
G_M51094_IG40:
- mov w26, #1
+ mov w25, #1
;; size=4 bbWeight=2 PerfScore 1.00
G_M51094_IG41:
- add w27, w27, #1
- cmp w27, w20
+ add w26, w26, #1
+ cmp w26, w20
blt G_M51094_IG24
;; size=12 bbWeight=4 PerfScore 8.00
G_M51094_IG42:
- mov w26, wzr
+ mov w25, wzr
cmp w20, #0
- ble G_M51094_IG54
+ ble G_M51094_IG52
;; size=12 bbWeight=0.50 PerfScore 1.00
G_M51094_IG43:
- ldr w0, [x25, #0x10]
- cmp w26, w0
- bhs G_M51094_IG56
- ldr x0, [x25, #0x08]
+ ldr x0, [x24, #0x08]
+ ldr w1, [x24, #0x10]
+ cmp w25, w1
+ bhs G_M51094_IG54
ldr w1, [x0, #0x08]
- cmp w26, w1
- bhs G_M51094_IG58
+ cmp w1, w25
+ bls G_M51094_IG54
add x0, x0, #16
- ldr x27, [x0, w26, UXTW #3]
- cbz x27, G_M51094_IG53
+ ldr x26, [x0, w25, UXTW #3]
+ cbz x26, G_M51094_IG51
;; size=40 bbWeight=4 PerfScore 66.00
G_M51094_IG44:
- ldr x0, [x25, #0x08]
- ldr w1, [x0, #0x08]
- cmp w26, w1
- bhs G_M51094_IG58
+ ldr x0, [x24, #0x08]
add x0, x0, #16
- str xzr, [x0, w26, UXTW #3]
- ldr w0, [x25, #0x14]
+ str xzr, [x0, w25, UXTW #3]
+ ldr w0, [x24, #0x14]
add w0, w0, #1
- str w0, [x25, #0x14]
- cbz w23, G_M51094_IG46
- add x28, x19, #48
- ldapr w0, [x28]
+ str w0, [x24, #0x14]
+ cbz w22, G_M51094_IG46
+ add x27, x19, #48
+ ldapr w0, [x27]
cbnz w0, G_M51094_IG45
movz x0, #0xD1FFAB1E // code for System.Threading.Tasks.Task:NewId():int
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
mov w2, wzr
- casal w2, w0, [x28]
- ;; size=80 bbWeight=2 PerfScore 56.00
+ casal w2, w0, [x27]
+ ;; size=68 bbWeight=2 PerfScore 47.00
G_M51094_IG45:
ldr w2, [x19, #0x30]
- str x27, [fp, #0x38] // [V46 tmp22]
- ldr x4, [fp, #0x38] // [V46 tmp22]
- ldrb w3, [x22, #0xB1]
+ str x26, [fp, #0x38] // [V50 tmp26]
+ ldr x4, [fp, #0x38] // [V50 tmp26]
+ ldrb w3, [x21, #0xB1]
cbz w3, G_M51094_IG46
sxtw x2, w2
- sxtw x3, w26
- mov x0, x22
+ sxtw x3, w25
+ mov x0, x21
mov w1, #21
movz x5, #0xD1FFAB1E // code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,long,long,long):this
movk x5, #0xD1FFAB1E LSL #16
movk x5, #0xD1FFAB1E LSL #32
ldr x5, [x5]
blr x5
;; size=56 bbWeight=2 PerfScore 35.00
G_M51094_IG46:
- mov x1, x27
+ mov x1, x26
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_ISINSTANCEOFINTERFACE
cbnz x0, G_M51094_IG47
- mov x0, x27
+ mov x0, x26
ldr x1, [x0]
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
cmp x1, x2
beq G_M51094_IG48
- mov x1, x27
+ mov x1, x26
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_ISINSTANCEOFCLASS
cbnz x0, G_M51094_IG49
b G_M51094_IG50
;; size=80 bbWeight=2 PerfScore 31.00
G_M51094_IG47:
- mov w1, w24
+ mov w1, w23
movz x2, #0xD1FFAB1E // code for System.Threading.Tasks.AwaitTaskContinuation:RunOrScheduleAction(System.Runtime.CompilerServices.IAsyncStateMachineBox,ubyte)
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- b G_M51094_IG53
+ b G_M51094_IG51
;; size=28 bbWeight=2 PerfScore 14.00
G_M51094_IG48:
- mov w1, w24
+ mov w1, w23
movz x2, #0xD1FFAB1E // code for System.Threading.Tasks.AwaitTaskContinuation:RunOrScheduleAction(System.Action,ubyte)
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- b G_M51094_IG53
+ b G_M51094_IG51
;; size=28 bbWeight=2 PerfScore 14.00
G_M51094_IG49:
mov x1, x19
- mov w2, w24
+ mov w2, w23
ldr x3, [x0]
ldr x3, [x3, #0x40]
ldr x3, [x3, #0x20]
blr x3
- b G_M51094_IG53
+ b G_M51094_IG51
;; size=28 bbWeight=2 PerfScore 24.00
G_M51094_IG50:
- mov x1, x27
+ mov x1, x26
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_CHKCASTINTERFACE
- mov x27, x0
- cbnz w24, G_M51094_IG51
- mov x0, x27
- movz x11, #0xD1FFAB1E // code for System.Threading.Tasks.ITaskCompletionAction:get_InvokeMayRunArbitraryCode():ubyte:this
- movk x11, #0xD1FFAB1E LSL #16
- movk x11, #0xD1FFAB1E LSL #32
- ldr x1, [x11]
- blr x1
- cbnz w0, G_M51094_IG52
- ;; size=56 bbWeight=2 PerfScore 23.00
-G_M51094_IG51:
- mov x0, x27
- mov x1, x19
- movz x11, #0xD1FFAB1E // code for System.Threading.Tasks.ITaskCompletionAction:Invoke(System.Threading.Tasks.Task):this
- movk x11, #0xD1FFAB1E LSL #16
- movk x11, #0xD1FFAB1E LSL #32
- ldr x2, [x11]
- blr x2
- b G_M51094_IG53
- ;; size=32 bbWeight=2 PerfScore 15.00
-G_M51094_IG52:
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_NEWSFAST
mov x1, x0
- add x14, x1, #8
- mov x15, x27
- bl CORINFO_HELP_ASSIGN_REF
- add x14, x1, #16
- mov x15, x19
- bl CORINFO_HELP_ASSIGN_REF
- ldr x0, [x21]
- mov w2, wzr
- movz x3, #0xD1FFAB1E // code for System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this
+ mov x0, x19
+ mov w2, w23
+ movz x3, #0xD1FFAB1E // code for System.Threading.Tasks.Task:RunOrQueueCompletionAction(System.Threading.Tasks.ITaskCompletionAction,ubyte):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
- ;; size=72 bbWeight=2 PerfScore 32.00
-G_M51094_IG53:
- add w26, w26, #1
- cmp w26, w20
+ ;; size=52 bbWeight=2 PerfScore 20.00
+G_M51094_IG51:
+ add w25, w25, #1
+ cmp w25, w20
blt G_M51094_IG43
;; size=12 bbWeight=4 PerfScore 8.00
-G_M51094_IG54:
+G_M51094_IG52:
movz x0, #0xD1FFAB1E // code for System.Threading.Tasks.Task:LogFinishCompletionNotification()
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
;; size=20 bbWeight=1 PerfScore 5.50
-G_M51094_IG55:
+G_M51094_IG53:
ldp x27, x28, [sp, #0xA0]
ldp x25, x26, [sp, #0x90]
ldp x23, x24, [sp, #0x80]
ldp x21, x22, [sp, #0x70]
ldp x19, x20, [sp, #0x60]
ldp fp, lr, [sp], #0xB0
ret lr
;; size=28 bbWeight=1 PerfScore 7.00
-G_M51094_IG56:
+G_M51094_IG54:
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
-G_M51094_IG57:
+G_M51094_IG55:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov w1, #0xD1FFAB1E
bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
b G_M51094_IG03
;; size=24 bbWeight=0 PerfScore 0.00
-G_M51094_IG58:
- bl CORINFO_HELP_RNGCHKFAIL
- brk_unix #0
- ;; size=8 bbWeight=0 PerfScore 0.00
-G_M51094_IG59:
+G_M51094_IG56:
stp fp, lr, [sp, #-0x70]!
stp x19, x20, [sp, #0x20]
stp x21, x22, [sp, #0x30]
stp x23, x24, [sp, #0x40]
stp x25, x26, [sp, #0x50]
stp x27, x28, [sp, #0x60]
add x3, fp, #176
str x3, [sp, #0x18]
;; size=32 bbWeight=0 PerfScore 0.00
-G_M51094_IG60:
+G_M51094_IG57:
ldrb w0, [fp, #0x50] // [V12 loc10]
- cbz w0, G_M51094_IG61
- ldr x0, [fp, #0x20] // [V11 loc9]
+ cbz w0, G_M51094_IG58
+ ldr x0, [fp, #0x28] // [V11 loc9]
bl System.Threading.Monitor:Exit(System.Object)
;; size=16 bbWeight=0 PerfScore 0.00
-G_M51094_IG61:
+G_M51094_IG58:
ldp x27, x28, [sp, #0x60]
ldp x25, x26, [sp, #0x50]
ldp x23, x24, [sp, #0x40]
ldp x21, x22, [sp, #0x30]
ldp x19, x20, [sp, #0x20]
ldp fp, lr, [sp], #0x70
ret lr
;; size=28 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1976, prolog size 52, PerfScore 1023.91, instruction count 494, allocated bytes for code 1976 (MethodHash=8bc43869) for method System.Threading.Tasks.Task:RunContinuations(System.Object):this (FullOpts)
+; Total bytes of code 1816, prolog size 52, PerfScore 922.91, instruction count 454, allocated bytes for code 1816 (MethodHash=8bc43869) for method System.Threading.Tasks.Task:RunContinuations(System.Object):this (FullOpts)
-24 (-2.239% of base) - System.Collections.ObjectModel.ReadOnlyDictionary`2[long,System.Nullable`1[int]]:System.Collections.ICollection.CopyTo(System.Array,int):this
; Assembly listing for method System.Collections.ObjectModel.ReadOnlyDictionary`2[long,System.Nullable`1[int]]:System.Collections.ICollection.CopyTo(System.Array,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; 7 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T16] ( 6, 4.50) ref -> x21 this class-hnd single-def <System.Collections.ObjectModel.ReadOnlyDictionary`2[long,System.Nullable`1[int]]>
; V01 arg1 [V01,T15] ( 6, 5 ) ref -> x20 class-hnd single-def <System.Array>
; V02 arg2 [V02,T05] ( 8, 15.50) int -> registers
; V03 loc0 [V03,T25] ( 4, 2.75) ref -> x1 class-hnd exact <System.Collections.Generic.KeyValuePair`2[long,System.Nullable`1[int]][]>
-; V04 loc1 [V04,T09] ( 5, 9.25) ref -> x22 class-hnd exact <System.Collections.DictionaryEntry[]>
+; V04 loc1 [V04,T09] ( 5, 9.25) ref -> x23 class-hnd exact <System.Collections.DictionaryEntry[]>
; V05 loc2 [V05,T10] ( 7, 9 ) ref -> [fp+0x20] class-hnd EH-live spill-single-def <System.Collections.Generic.IEnumerator`1[System.Collections.Generic.KeyValuePair`2[long,System.Nullable`1[int]]]>
; V06 loc3 [V06,T07] ( 3, 12 ) struct (16) [fp+0x40] do-not-enreg[SFR] multireg-ret ld-addr-op <System.Collections.Generic.KeyValuePair`2[long,System.Nullable`1[int]]>
; V07 loc4 [V07,T24] ( 3, 3 ) ref -> x20 class-hnd single-def <System.Object[]>
; V08 loc5 [V08,T17] ( 6, 6.50) ref -> [fp+0x18] class-hnd EH-live spill-single-def <System.Collections.Generic.IEnumerator`1[System.Collections.Generic.KeyValuePair`2[long,System.Nullable`1[int]]]>
; V09 loc6 [V09,T11] ( 4, 8 ) struct (16) [fp+0x30] do-not-enreg[SFR] multireg-ret ld-addr-op <System.Collections.Generic.KeyValuePair`2[long,System.Nullable`1[int]]>
;# V10 OutArgs [V10 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V11 tmp1 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <System.Collections.Generic.KeyValuePair`2[long,System.Nullable`1[int]][]>
;* V12 tmp2 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <System.Collections.DictionaryEntry[]>
;* V13 tmp3 [V13 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SR] multireg-ret "Return value temp for multireg return" <System.Collections.Generic.KeyValuePair`2[long,System.Nullable`1[int]]>
; V14 tmp4 [V14,T08] ( 3, 12 ) int -> x21 "impSpillLclRefs"
-; V15 tmp5 [V15,T14] ( 2, 8 ) long -> x22 "impAppendStmt"
+; V15 tmp5 [V15,T14] ( 2, 8 ) long -> x23 "impAppendStmt"
;* V16 tmp6 [V16 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Collections.Generic.KeyValuePair`2[long,System.Nullable`1[int]]>
;* V17 tmp7 [V17 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Nullable`1[int]>
; V18 tmp8 [V18,T03] ( 5, 20 ) ref -> x0 class-hnd exact "Single-def Box Helper" <System.Collections.Generic.KeyValuePair`2[long,System.Nullable`1[int]]>
;* V19 tmp9 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd "impSpillSpecialSideEff" <System.ArrayTypeMismatchException>
; V20 tmp10 [V20,T27] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
-; V21 tmp11 [V21,T28] ( 3, 0 ) ref -> x23 class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
+; V21 tmp11 [V21,T28] ( 3, 0 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
;* V22 tmp12 [V22 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SR] multireg-ret "Return value temp for multireg return" <System.Collections.Generic.KeyValuePair`2[long,System.Nullable`1[int]]>
; V23 tmp13 [V23,T00] ( 4, 32 ) int -> x19 "impSpillLclRefs"
; V24 tmp14 [V24,T01] ( 3, 24 ) ref -> x25 class-hnd exact "Single-def Box Helper" <System.Int64>
; V25 tmp15 [V25 ] ( 2, 16 ) struct ( 8) [fp+0x28] do-not-enreg[XS] addr-exposed "location for address-of(RValue)" <System.Nullable`1[int]>
;* V26 tmp16 [V26 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.DictionaryEntry>
;* V27 tmp17 [V27 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Int64>
; V28 tmp18 [V28,T06] ( 2, 16 ) ref -> x0 class-hnd "Inlining Arg" <System.Object>
; V29 tmp19 [V29,T20] ( 2, 4 ) ubyte -> x24 "field V17.hasValue (fldOffset=0x0)" P-INDEP
; V30 tmp20 [V30,T21] ( 2, 4 ) int -> x25 "field V17.value (fldOffset=0x4)" P-INDEP
; V31 tmp21 [V31 ] ( 2, 16 ) ubyte -> [fp+0x28] do-not-enreg[X] addr-exposed "field V25.hasValue (fldOffset=0x0)" P-DEP
; V32 tmp22 [V32 ] ( 2, 16 ) int -> [fp+0x2C] do-not-enreg[X] addr-exposed "field V25.value (fldOffset=0x4)" P-DEP
; V33 tmp23 [V33,T12] ( 2, 8 ) ref -> x15 "field V26._key (fldOffset=0x0)" P-INDEP
; V34 tmp24 [V34,T13] ( 2, 8 ) ref -> x0 "field V26._value (fldOffset=0x8)" P-INDEP
;* V35 tmp25 [V35 ] ( 0, 0 ) long -> zero-ref "V16.[000..008)"
; V36 tmp26 [V36,T22] ( 2, 4 ) ubyte -> x24 "V16.[008..009)"
;* V37 tmp27 [V37 ] ( 0, 0 ) int -> zero-ref "V16.[012..016)"
; V38 tmp28 [V38,T23] ( 2, 4 ) int -> x0 "argument with side effect"
; V39 tmp29 [V39,T02] ( 3, 24 ) byref -> x11 "BlockOp address local"
; V40 tmp30 [V40,T29] ( 2, 0 ) ref -> x19 single-def "argument with side effect"
; V41 tmp31 [V41,T30] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
; V42 tmp32 [V42,T31] ( 2, 0 ) ref -> x20 single-def "argument with side effect"
; V43 tmp33 [V43,T32] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
; V44 PSPSym [V44,T26] ( 1, 1 ) long -> [fp+0x50] do-not-enreg[V] "PSPSym"
-; V45 cse0 [V45,T04] ( 15, 17.50) long -> x23 "CSE - aggressive"
+; V45 cse0 [V45,T04] ( 16, 19 ) long -> x22 "CSE - aggressive"
; V46 cse1 [V46,T18] ( 2, 4.50) long -> x20 "CSE - moderate"
; V47 cse2 [V47,T19] ( 2, 4.50) long -> x21 "CSE - moderate"
;
; Lcl frame size = 72
G_M16025_IG01:
stp fp, lr, [sp, #-0x90]!
stp x19, x20, [sp, #0x58]
stp x21, x22, [sp, #0x68]
stp x23, x24, [sp, #0x78]
str x25, [sp, #0x88]
mov fp, sp
add x3, sp, #144
str x3, [fp, #0x50] // [V44 PSPSym]
mov x21, x0
mov x20, x1
mov w19, w2
;; size=44 bbWeight=1 PerfScore 8.50
G_M16025_IG02:
ldr x0, [x21, #0x08]
- movz x11, #8 // code for System.Collections.Generic.ICollection`1[System.Collections.Generic.KeyValuePair`2[long,System.Nullable`1[int]]]:get_Count():int:this
- movk x11, #0xD1FFAB1E LSL #16
- movk x11, #0xD1FFAB1E LSL #32
+ movz x22, #0xD1FFAB1E // code for System.Collections.Generic.ICollection`1[System.Collections.Generic.KeyValuePair`2[long,System.Nullable`1[int]]]:get_Count():int:this
+ movk x22, #0xD1FFAB1E LSL #16
+ movk x22, #0xD1FFAB1E LSL #32
+ mov x11, x22
ldr x1, [x11]
blr x1
mov x1, x20
mov w2, w19
movz x3, #0xD1FFAB1E // code for System.Collections.ObjectModel.CollectionHelpers:ValidateCopyToArguments(int,System.Array,int)
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x1, x20
cbz x1, G_M16025_IG04
- ;; size=60 bbWeight=1 PerfScore 16.50
+ ;; size=64 bbWeight=1 PerfScore 17.00
G_M16025_IG03:
ldr x0, [x1]
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
cmp x0, x2
beq G_M16025_IG07
;; size=24 bbWeight=0.25 PerfScore 1.50
G_M16025_IG04:
- mov x22, x20
- cbz x22, G_M16025_IG13
+ mov x23, x20
+ cbz x23, G_M16025_IG13
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M16025_IG05:
- ldr x0, [x22]
+ ldr x0, [x23]
movz x11, #0xD1FFAB1E
movk x11, #0xD1FFAB1E LSL #16
movk x11, #0xD1FFAB1E LSL #32
cmp x0, x11
bne G_M16025_IG13
;; size=24 bbWeight=0.25 PerfScore 1.50
G_M16025_IG06:
ldr x0, [x21, #0x08]
- movz x23, #0xD1FFAB1E // code for System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[long,System.Nullable`1[int]]]:GetEnumerator():System.Collections.Generic.IEnumerator`1[System.Collections.Generic.KeyValuePair`2[long,System.Nullable`1[int]]]:this
- movk x23, #0xD1FFAB1E LSL #16
- movk x23, #0xD1FFAB1E LSL #32
- mov x11, x23
+ sub x11, x22, #40
ldr x1, [x11]
blr x1
str x0, [fp, #0x20] // [V05 loc2]
b G_M16025_IG09
- ;; size=36 bbWeight=0.50 PerfScore 5.50
+ ;; size=24 bbWeight=0.50 PerfScore 4.75
G_M16025_IG07:
ldr x0, [x21, #0x08]
mov w2, w19
- movz x11, #0xD1FFAB1E LSL #16
- movk x11, #0xD1FFAB1E LSL #32
+ sub x11, x22, #8
ldr x3, [x11]
blr x3
- ;; size=24 bbWeight=0.50 PerfScore 4.25
+ ;; size=20 bbWeight=0.50 PerfScore 4.00
G_M16025_IG08:
ldr x25, [sp, #0x88]
ldp x23, x24, [sp, #0x78]
ldp x21, x22, [sp, #0x68]
ldp x19, x20, [sp, #0x58]
ldp fp, lr, [sp], #0x90
ret lr
;; size=24 bbWeight=0.50 PerfScore 3.50
G_M16025_IG09:
- add x11, x23, #8
+ sub x11, x22, #32
ldr x1, [x11]
blr x1
cbz w0, G_M16025_IG12
movz x20, #0xD1FFAB1E
movk x20, #0xD1FFAB1E LSL #16
movk x20, #0xD1FFAB1E LSL #32
movz x21, #0xD1FFAB1E
movk x21, #0xD1FFAB1E LSL #16
movk x21, #0xD1FFAB1E LSL #32
b G_M16025_IG11
;; size=44 bbWeight=0.50 PerfScore 4.75
G_M16025_IG10:
bl CORINFO_HELP_RNGCHKFAIL
;; size=4 bbWeight=0 PerfScore 0.00
G_M16025_IG11:
ldr x0, [fp, #0x20] // [V05 loc2]
- add x11, x23, #16
+ sub x11, x22, #24
ldr x1, [x11]
blr x1
stp x0, x1, [fp, #0x40] // [V06 loc3], [V06 loc3+0x08]
add w0, w19, #1
sxtw w24, w0
mov x0, x20
bl CORINFO_HELP_NEWSFAST
mov x25, x0
ldr x1, [fp, #0x40] // [V06 loc3]
str x1, [x25, #0x08]
ldr x1, [fp, #0x48] // [V06 loc3+0x08]
str x1, [fp, #0x28] // [V25 tmp15]
add x1, fp, #40 // [V25 tmp15]
mov x0, x21
bl CORINFO_HELP_BOX_NULLABLE
mov x15, x25
- ldr w14, [x22, #0x08]
+ ldr w14, [x23, #0x08]
cmp w19, w14
bhs G_M16025_IG10
ubfiz x14, x19, #4, #32
add x14, x14, #16
- add x11, x22, x14
+ add x11, x23, x14
mov x14, x11
bl CORINFO_HELP_CHECKED_ASSIGN_REF
add x14, x11, #8
mov x15, x0
bl CORINFO_HELP_CHECKED_ASSIGN_REF
ldr x0, [fp, #0x20] // [V05 loc2]
- add x11, x23, #8
+ sub x11, x22, #32
ldr x1, [x11]
blr x1
mov w19, w24
cbnz w0, G_M16025_IG11
;; size=140 bbWeight=4 PerfScore 148.00
G_M16025_IG12:
ldr x0, [fp, #0x20] // [V05 loc2]
- add x11, x23, #24
+ sub x11, x22, #16
ldr x1, [x11]
blr x1
b G_M16025_IG19
;; size=20 bbWeight=0.50 PerfScore 3.75
G_M16025_IG13:
mov x1, x20
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_ISINSTANCEOFARRAY
mov x20, x0
cbz x20, G_M16025_IG20
;; size=28 bbWeight=0.50 PerfScore 2.25
G_M16025_IG14:
ldr x0, [x21, #0x08]
- movz x23, #0xD1FFAB1E
- movk x23, #0xD1FFAB1E LSL #16
- movk x23, #0xD1FFAB1E LSL #32
- sub x11, x23, #32
+ sub x11, x22, #72
ldr x1, [x11]
blr x1
str x0, [fp, #0x18] // [V08 loc5]
- ;; size=32 bbWeight=0.50 PerfScore 5.00
+ ;; size=20 bbWeight=0.50 PerfScore 4.25
G_M16025_IG15:
b G_M16025_IG17
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M16025_IG16:
ldr x0, [fp, #0x18] // [V08 loc5]
- sub x11, x23, #16
+ sub x11, x22, #56
ldr x1, [x11]
blr x1
stp x0, x1, [fp, #0x30] // [V09 loc6], [V09 loc6+0x08]
sxtw w21, w19
add w19, w21, #1
- ldr x22, [fp, #0x30] // [V09 loc6]
+ ldr x23, [fp, #0x30] // [V09 loc6]
ldrb w24, [fp, #0x38] // [V09 loc6+0x08]
ldr w25, [fp, #0x3C] // [V09 loc6+0x0c]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
- str x22, [x0, #0x08]
+ str x23, [x0, #0x08]
strb w24, [x0, #0x10]
str w25, [x0, #0x14]
mov x2, x0
sxtw x1, w21
mov x0, x20
bl CORINFO_HELP_ARRADDR_ST
ldr x0, [fp, #0x18] // [V08 loc5]
;; size=88 bbWeight=2 PerfScore 49.00
G_M16025_IG17:
- sub x11, x23, #24
+ sub x11, x22, #64
ldr x1, [x11]
blr x1
cbnz w0, G_M16025_IG16
;; size=16 bbWeight=4 PerfScore 22.00
G_M16025_IG18:
ldr x0, [fp, #0x18] // [V08 loc5]
- sub x11, x23, #8
+ sub x11, x22, #48
ldr x1, [x11]
blr x1
;; size=16 bbWeight=0.50 PerfScore 3.25
G_M16025_IG19:
ldr x25, [sp, #0x88]
ldp x23, x24, [sp, #0x78]
ldp x21, x22, [sp, #0x68]
ldp x19, x20, [sp, #0x58]
ldp fp, lr, [sp], #0x90
ret lr
;; size=24 bbWeight=0.50 PerfScore 3.50
G_M16025_IG20:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
- mov x23, x0
+ mov x22, x0
movz x0, #0xD1FFAB1E // code for System.SR:get_Argument_IncompatibleArrayType():System.String
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
mov x19, x0
mov w0, #0xD1FFAB1E
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_STRCNS
mov x2, x0
mov x1, x19
- mov x0, x23
+ mov x0, x22
movz x3, #0xD1FFAB1E // code for System.ArgumentException:.ctor(System.String,System.String):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
- mov x0, x23
+ mov x0, x22
bl CORINFO_HELP_THROW
brk_unix #0
;; size=108 bbWeight=0 PerfScore 0.00
G_M16025_IG21:
stp fp, lr, [sp, #-0x50]!
stp x19, x20, [sp, #0x18]
stp x21, x22, [sp, #0x28]
stp x23, x24, [sp, #0x38]
str x25, [sp, #0x48]
add x3, fp, #144
str x3, [sp, #0x10]
;; size=28 bbWeight=0 PerfScore 0.00
G_M16025_IG22:
ldr x0, [fp, #0x20] // [V05 loc2]
cbz x0, G_M16025_IG23
- movz x23, #0xD1FFAB1E
- movk x23, #0xD1FFAB1E LSL #16
- movk x23, #0xD1FFAB1E LSL #32
- add x11, x23, #24
+ movz x22, #0xD1FFAB1E
+ movk x22, #0xD1FFAB1E LSL #16
+ movk x22, #0xD1FFAB1E LSL #32
+ sub x11, x22, #16
ldr x1, [x11]
blr x1
;; size=32 bbWeight=0 PerfScore 0.00
G_M16025_IG23:
ldr x25, [sp, #0x48]
ldp x23, x24, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x50
ret lr
;; size=24 bbWeight=0 PerfScore 0.00
G_M16025_IG24:
stp fp, lr, [sp, #-0x50]!
stp x19, x20, [sp, #0x18]
stp x21, x22, [sp, #0x28]
stp x23, x24, [sp, #0x38]
str x25, [sp, #0x48]
add x3, fp, #144
str x3, [sp, #0x10]
;; size=28 bbWeight=0 PerfScore 0.00
G_M16025_IG25:
ldr x0, [fp, #0x18] // [V08 loc5]
cbz x0, G_M16025_IG26
- movz x23, #0xD1FFAB1E
- movk x23, #0xD1FFAB1E LSL #16
- movk x23, #0xD1FFAB1E LSL #32
- sub x11, x23, #8
+ movz x22, #0xD1FFAB1E
+ movk x22, #0xD1FFAB1E LSL #16
+ movk x22, #0xD1FFAB1E LSL #32
+ sub x11, x22, #48
ldr x1, [x11]
blr x1
;; size=32 bbWeight=0 PerfScore 0.00
G_M16025_IG26:
ldr x25, [sp, #0x48]
ldp x23, x24, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x50
ret lr
;; size=24 bbWeight=0 PerfScore 0.00
G_M16025_IG27:
stp fp, lr, [sp, #-0x50]!
stp x19, x20, [sp, #0x18]
stp x21, x22, [sp, #0x28]
stp x23, x24, [sp, #0x38]
str x25, [sp, #0x48]
add x3, fp, #144
str x3, [sp, #0x10]
;; size=28 bbWeight=0 PerfScore 0.00
G_M16025_IG28:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x19, x0
movz x0, #0xD1FFAB1E // code for System.SR:get_Argument_IncompatibleArrayType():System.String
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
mov x20, x0
mov w0, #0xD1FFAB1E
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_STRCNS
mov x2, x0
mov x1, x20
mov x0, x19
movz x3, #0xD1FFAB1E // code for System.ArgumentException:.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_unix #0
;; size=108 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1072, prolog size 44, PerfScore 391.20, instruction count 268, allocated bytes for code 1072 (MethodHash=103fc166) for method System.Collections.ObjectModel.ReadOnlyDictionary`2[long,System.Nullable`1[int]]:System.Collections.ICollection.CopyTo(System.Array,int):this (FullOpts)
+; Total bytes of code 1048, prolog size 44, PerfScore 387.55, instruction count 262, allocated bytes for code 1048 (MethodHash=103fc166) for method System.Collections.ObjectModel.ReadOnlyDictionary`2[long,System.Nullable`1[int]]:System.Collections.ICollection.CopyTo(System.Array,int):this (FullOpts)
-16 (-13.333% of base) - System.Collections.Generic.List`1[double]:System.Collections.IList.get_Item(int):System.Object:this
; Assembly listing for method System.Collections.Generic.List`1[double]:System.Collections.IList.get_Item(int):System.Object: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; 0 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T01] ( 4, 4 ) ref -> x20 this class-hnd single-def <System.Collections.Generic.List`1[double]>
-; V01 arg1 [V01,T00] ( 5, 5 ) int -> x19 single-def
+; V00 this [V00,T01] ( 4, 4 ) ref -> x0 this class-hnd single-def <System.Collections.Generic.List`1[double]>
+; V01 arg1 [V01,T00] ( 5, 5 ) int -> x1 single-def
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V03 tmp1 [V03,T02] ( 3, 6 ) ref -> x0 class-hnd exact single-def "Single-def Box Helper" <System.Double>
-; V04 tmp2 [V04,T03] ( 3, 6 ) ref -> x1 single-def "arr expr"
+; V04 tmp2 [V04,T05] ( 2, 2 ) double -> d8 "Inline return value spill temp"
+; V05 tmp3 [V05,T03] ( 3, 3 ) ref -> x2 class-hnd single-def "Inline stloc first use temp" <double[]>
+; V06 cse0 [V06,T04] ( 2, 2 ) int -> x0 "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M35276_IG01:
stp fp, lr, [sp, #-0x20]!
- stp x19, x20, [sp, #0x10]
+ str d8, [sp, #0x18]
mov fp, sp
- mov x20, x0
- mov w19, w1
- ;; size=20 bbWeight=1 PerfScore 3.50
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M35276_IG02:
- ldr w0, [x20, #0x10]
- cmp w19, w0
+ ldr x2, [x0, #0x08]
+ ldr w0, [x0, #0x10]
+ cmp w1, w0
bhs G_M35276_IG04
+ ldr w0, [x2, #0x08]
+ cmp w0, w1
+ bls G_M35276_IG04
+ add x0, x2, #16
+ ldr d8, [x0, w1, UXTW #3]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
- ldr x1, [x20, #0x08]
- ldr w2, [x1, #0x08]
- cmp w19, w2
- bhs G_M35276_IG05
- add x1, x1, #16
- ldr d16, [x1, w19, UXTW #3]
- str d16, [x0, #0x08]
+ str d8, [x0, #0x08]
;; size=56 bbWeight=1 PerfScore 19.00
G_M35276_IG03:
- ldp x19, x20, [sp, #0x10]
+ ldr d8, [sp, #0x18]
ldp fp, lr, [sp], #0x20
ret lr
- ;; size=12 bbWeight=1 PerfScore 3.00
+ ;; size=12 bbWeight=1 PerfScore 4.00
G_M35276_IG04:
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
-G_M35276_IG05:
- bl CORINFO_HELP_RNGCHKFAIL
- brk_unix #0
- ;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 120, prolog size 12, PerfScore 37.50, instruction count 30, allocated bytes for code 120 (MethodHash=02867633) for method System.Collections.Generic.List`1[double]:System.Collections.IList.get_Item(int):System.Object:this (FullOpts)
+; Total bytes of code 104, prolog size 12, PerfScore 35.90, instruction count 26, allocated bytes for code 104 (MethodHash=02867633) for method System.Collections.Generic.List`1[double]:System.Collections.IList.get_Item(int):System.Object:this (FullOpts)
-16 (-13.333% of base) - System.Collections.Generic.List`1[int]:System.Collections.IList.get_Item(int):System.Object:this
; Assembly listing for method System.Collections.Generic.List`1[int]:System.Collections.IList.get_Item(int):System.Object: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; 0 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T01] ( 4, 4 ) ref -> x20 this class-hnd single-def <System.Collections.Generic.List`1[int]>
-; V01 arg1 [V01,T00] ( 5, 5 ) int -> x19 single-def
+; V00 this [V00,T01] ( 4, 4 ) ref -> x0 this class-hnd single-def <System.Collections.Generic.List`1[int]>
+; V01 arg1 [V01,T00] ( 5, 5 ) int -> x1 single-def
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V03 tmp1 [V03,T02] ( 3, 6 ) ref -> x0 class-hnd exact single-def "Single-def Box Helper" <System.Int32>
-; V04 tmp2 [V04,T03] ( 3, 6 ) ref -> x1 single-def "arr expr"
+; V04 tmp2 [V04,T04] ( 2, 2 ) int -> x19 "Inline return value spill temp"
+; V05 tmp3 [V05,T03] ( 3, 3 ) ref -> x2 class-hnd single-def "Inline stloc first use temp" <int[]>
+; V06 cse0 [V06,T05] ( 2, 2 ) int -> x0 "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M9802_IG01:
stp fp, lr, [sp, #-0x20]!
- stp x19, x20, [sp, #0x10]
+ str x19, [sp, #0x18]
mov fp, sp
- mov x20, x0
- mov w19, w1
- ;; size=20 bbWeight=1 PerfScore 3.50
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M9802_IG02:
- ldr w0, [x20, #0x10]
- cmp w19, w0
+ ldr x2, [x0, #0x08]
+ ldr w0, [x0, #0x10]
+ cmp w1, w0
bhs G_M9802_IG04
+ ldr w0, [x2, #0x08]
+ cmp w0, w1
+ bls G_M9802_IG04
+ add x0, x2, #16
+ ldr w19, [x0, w1, UXTW #2]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
- ldr x1, [x20, #0x08]
- ldr w2, [x1, #0x08]
- cmp w19, w2
- bhs G_M9802_IG05
- add x1, x1, #16
- ldr w1, [x1, w19, UXTW #2]
- str w1, [x0, #0x08]
+ str w19, [x0, #0x08]
;; size=56 bbWeight=1 PerfScore 19.00
G_M9802_IG03:
- ldp x19, x20, [sp, #0x10]
+ ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
ret lr
- ;; size=12 bbWeight=1 PerfScore 3.00
+ ;; size=12 bbWeight=1 PerfScore 4.00
G_M9802_IG04:
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
-G_M9802_IG05:
- bl CORINFO_HELP_RNGCHKFAIL
- brk_unix #0
- ;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 120, prolog size 12, PerfScore 37.50, instruction count 30, allocated bytes for code 120 (MethodHash=9e0bd9b5) for method System.Collections.Generic.List`1[int]:System.Collections.IList.get_Item(int):System.Object:this (FullOpts)
+; Total bytes of code 104, prolog size 12, PerfScore 35.90, instruction count 26, allocated bytes for code 104 (MethodHash=9e0bd9b5) for method System.Collections.Generic.List`1[int]:System.Collections.IList.get_Item(int):System.Object:this (FullOpts)
-16 (-13.333% of base) - System.Collections.Generic.List`1[long]:System.Collections.IList.get_Item(int):System.Object:this
; Assembly listing for method System.Collections.Generic.List`1[long]:System.Collections.IList.get_Item(int):System.Object: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; 0 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T01] ( 4, 4 ) ref -> x20 this class-hnd single-def <System.Collections.Generic.List`1[long]>
-; V01 arg1 [V01,T00] ( 5, 5 ) int -> x19 single-def
+; V00 this [V00,T01] ( 4, 4 ) ref -> x0 this class-hnd single-def <System.Collections.Generic.List`1[long]>
+; V01 arg1 [V01,T00] ( 5, 5 ) int -> x1 single-def
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V03 tmp1 [V03,T02] ( 3, 6 ) ref -> x0 class-hnd exact single-def "Single-def Box Helper" <System.Int64>
-; V04 tmp2 [V04,T03] ( 3, 6 ) ref -> x1 single-def "arr expr"
+; V04 tmp2 [V04,T04] ( 2, 2 ) long -> x19 "Inline return value spill temp"
+; V05 tmp3 [V05,T03] ( 3, 3 ) ref -> x2 class-hnd single-def "Inline stloc first use temp" <long[]>
+; V06 cse0 [V06,T05] ( 2, 2 ) int -> x0 "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M63187_IG01:
stp fp, lr, [sp, #-0x20]!
- stp x19, x20, [sp, #0x10]
+ str x19, [sp, #0x18]
mov fp, sp
- mov x20, x0
- mov w19, w1
- ;; size=20 bbWeight=1 PerfScore 3.50
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M63187_IG02:
- ldr w0, [x20, #0x10]
- cmp w19, w0
+ ldr x2, [x0, #0x08]
+ ldr w0, [x0, #0x10]
+ cmp w1, w0
bhs G_M63187_IG04
+ ldr w0, [x2, #0x08]
+ cmp w0, w1
+ bls G_M63187_IG04
+ add x0, x2, #16
+ ldr x19, [x0, w1, UXTW #3]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
- ldr x1, [x20, #0x08]
- ldr w2, [x1, #0x08]
- cmp w19, w2
- bhs G_M63187_IG05
- add x1, x1, #16
- ldr x1, [x1, w19, UXTW #3]
- str x1, [x0, #0x08]
+ str x19, [x0, #0x08]
;; size=56 bbWeight=1 PerfScore 19.00
G_M63187_IG03:
- ldp x19, x20, [sp, #0x10]
+ ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
ret lr
- ;; size=12 bbWeight=1 PerfScore 3.00
+ ;; size=12 bbWeight=1 PerfScore 4.00
G_M63187_IG04:
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
-G_M63187_IG05:
- bl CORINFO_HELP_RNGCHKFAIL
- brk_unix #0
- ;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 120, prolog size 12, PerfScore 37.50, instruction count 30, allocated bytes for code 120 (MethodHash=4679092c) for method System.Collections.Generic.List`1[long]:System.Collections.IList.get_Item(int):System.Object:this (FullOpts)
+; Total bytes of code 104, prolog size 12, PerfScore 35.90, instruction count 26, allocated bytes for code 104 (MethodHash=4679092c) for method System.Collections.Generic.List`1[long]:System.Collections.IList.get_Item(int):System.Object:this (FullOpts)
-16 (-13.333% of base) - System.Collections.Generic.List`1[short]:System.Collections.IList.get_Item(int):System.Object:this
; Assembly listing for method System.Collections.Generic.List`1[short]:System.Collections.IList.get_Item(int):System.Object: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; 0 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T01] ( 4, 4 ) ref -> x20 this class-hnd single-def <System.Collections.Generic.List`1[short]>
-; V01 arg1 [V01,T00] ( 5, 5 ) int -> x19 single-def
+; V00 this [V00,T01] ( 4, 4 ) ref -> x0 this class-hnd single-def <System.Collections.Generic.List`1[short]>
+; V01 arg1 [V01,T00] ( 5, 5 ) int -> x1 single-def
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V03 tmp1 [V03,T02] ( 3, 6 ) ref -> x0 class-hnd exact single-def "Single-def Box Helper" <System.Int16>
-; V04 tmp2 [V04,T03] ( 3, 6 ) ref -> x1 single-def "arr expr"
+; V04 tmp2 [V04,T04] ( 2, 2 ) short -> x19 "Inline return value spill temp"
+; V05 tmp3 [V05,T03] ( 3, 3 ) ref -> x2 class-hnd single-def "Inline stloc first use temp" <short[]>
+; V06 cse0 [V06,T05] ( 2, 2 ) int -> x0 "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M7979_IG01:
stp fp, lr, [sp, #-0x20]!
- stp x19, x20, [sp, #0x10]
+ str x19, [sp, #0x18]
mov fp, sp
- mov x20, x0
- mov w19, w1
- ;; size=20 bbWeight=1 PerfScore 3.50
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M7979_IG02:
- ldr w0, [x20, #0x10]
- cmp w19, w0
+ ldr x2, [x0, #0x08]
+ ldr w0, [x0, #0x10]
+ cmp w1, w0
bhs G_M7979_IG04
+ ldr w0, [x2, #0x08]
+ cmp w0, w1
+ bls G_M7979_IG04
+ add x0, x2, #16
+ ldrsh w19, [x0, w1, UXTW #2]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
- ldr x1, [x20, #0x08]
- ldr w2, [x1, #0x08]
- cmp w19, w2
- bhs G_M7979_IG05
- add x1, x1, #16
- ldrsh w1, [x1, w19, UXTW #2]
- strh w1, [x0, #0x08]
+ strh w19, [x0, #0x08]
;; size=56 bbWeight=1 PerfScore 19.00
G_M7979_IG03:
- ldp x19, x20, [sp, #0x10]
+ ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
ret lr
- ;; size=12 bbWeight=1 PerfScore 3.00
+ ;; size=12 bbWeight=1 PerfScore 4.00
G_M7979_IG04:
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
-G_M7979_IG05:
- bl CORINFO_HELP_RNGCHKFAIL
- brk_unix #0
- ;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 120, prolog size 12, PerfScore 37.50, instruction count 30, allocated bytes for code 120 (MethodHash=8c07e0d4) for method System.Collections.Generic.List`1[short]:System.Collections.IList.get_Item(int):System.Object:this (FullOpts)
+; Total bytes of code 104, prolog size 12, PerfScore 35.90, instruction count 26, allocated bytes for code 104 (MethodHash=8c07e0d4) for method System.Collections.Generic.List`1[short]:System.Collections.IList.get_Item(int):System.Object:this (FullOpts)
-16 (-13.333% of base) - System.Collections.Generic.List`1[ubyte]:System.Collections.IList.get_Item(int):System.Object:this
; Assembly listing for method System.Collections.Generic.List`1[ubyte]:System.Collections.IList.get_Item(int):System.Object: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; 0 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T01] ( 4, 4 ) ref -> x20 this class-hnd single-def <System.Collections.Generic.List`1[ubyte]>
-; V01 arg1 [V01,T00] ( 5, 5 ) int -> x19 single-def
+; V00 this [V00,T01] ( 4, 4 ) ref -> x0 this class-hnd single-def <System.Collections.Generic.List`1[ubyte]>
+; V01 arg1 [V01,T00] ( 5, 5 ) int -> x1 single-def
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V03 tmp1 [V03,T02] ( 3, 6 ) ref -> x0 class-hnd exact single-def "Single-def Box Helper" <System.Byte>
-; V04 tmp2 [V04,T03] ( 3, 6 ) ref -> x1 single-def "arr expr"
+; V04 tmp2 [V04,T04] ( 2, 2 ) ubyte -> x19 "Inline return value spill temp"
+; V05 tmp3 [V05,T03] ( 3, 3 ) ref -> x2 class-hnd single-def "Inline stloc first use temp" <ubyte[]>
+; V06 cse0 [V06,T05] ( 2, 2 ) int -> x0 "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M11718_IG01:
stp fp, lr, [sp, #-0x20]!
- stp x19, x20, [sp, #0x10]
+ str x19, [sp, #0x18]
mov fp, sp
- mov x20, x0
- mov w19, w1
- ;; size=20 bbWeight=1 PerfScore 3.50
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M11718_IG02:
- ldr w0, [x20, #0x10]
- cmp w19, w0
+ ldr x2, [x0, #0x08]
+ ldr w0, [x0, #0x10]
+ cmp w1, w0
bhs G_M11718_IG04
+ ldr w0, [x2, #0x08]
+ cmp w0, w1
+ bls G_M11718_IG04
+ add x0, x2, #16
+ ldrb w19, [x0, w1, UXTW #2]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
- ldr x1, [x20, #0x08]
- ldr w2, [x1, #0x08]
- cmp w19, w2
- bhs G_M11718_IG05
- add x1, x1, #16
- ldrb w1, [x1, w19, UXTW #2]
- strb w1, [x0, #0x08]
+ strb w19, [x0, #0x08]
;; size=56 bbWeight=1 PerfScore 19.00
G_M11718_IG03:
- ldp x19, x20, [sp, #0x10]
+ ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
ret lr
- ;; size=12 bbWeight=1 PerfScore 3.00
+ ;; size=12 bbWeight=1 PerfScore 4.00
G_M11718_IG04:
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
-G_M11718_IG05:
- bl CORINFO_HELP_RNGCHKFAIL
- brk_unix #0
- ;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 120, prolog size 12, PerfScore 37.50, instruction count 30, allocated bytes for code 120 (MethodHash=5408d239) for method System.Collections.Generic.List`1[ubyte]:System.Collections.IList.get_Item(int):System.Object:this (FullOpts)
+; Total bytes of code 104, prolog size 12, PerfScore 35.90, instruction count 26, allocated bytes for code 104 (MethodHash=5408d239) for method System.Collections.Generic.List`1[ubyte]:System.Collections.IList.get_Item(int):System.Object:this (FullOpts)
-12 (-4.225% of base) - System.AggregateException:.ctor(System.String,System.Collections.Generic.List`1[System.Runtime.ExceptionServices.ExceptionDispatchInfo]):this
; Assembly listing for method System.AggregateException:.ctor(System.String,System.Collections.Generic.List`1[System.Runtime.ExceptionServices.ExceptionDispatchInfo]):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; 7 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T02] ( 9, 15 ) ref -> x19 this class-hnd single-def <System.AggregateException>
-; V01 arg1 [V01,T08] ( 3, 3 ) ref -> x1 class-hnd single-def <System.String>
-; V02 arg2 [V02,T07] ( 6, 11.50) ref -> x20 class-hnd single-def <System.Collections.Generic.List`1[System.Runtime.ExceptionServices.ExceptionDispatchInfo]>
+; V00 this [V00,T01] ( 9, 15 ) ref -> x19 this class-hnd single-def <System.AggregateException>
+; V01 arg1 [V01,T06] ( 3, 3 ) ref -> x1 class-hnd single-def <System.String>
+; V02 arg2 [V02,T03] ( 6, 11.50) ref -> x20 class-hnd single-def <System.Collections.Generic.List`1[System.Runtime.ExceptionServices.ExceptionDispatchInfo]>
; V03 loc0 [V03,T00] ( 8, 29 ) int -> x21
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V05 tmp1 [V05,T16] ( 0, 0 ) ref -> zero-ref single-def
-; V06 tmp2 [V06,T11] ( 3, 2 ) ref -> x15 single-def
-;* V07 tmp3 [V07,T15] ( 0, 0 ) ref -> zero-ref
-; V08 tmp4 [V08,T12] ( 3, 2 ) ref -> x15
-; V09 tmp5 [V09,T13] ( 3, 2 ) ref -> x0
-; V10 tmp6 [V10,T03] ( 2, 16 ) ref -> x0 class-hnd "impAppendStmt" <System.Exception[]>
-; V11 tmp7 [V11,T14] ( 2, 2 ) ref -> x14 class-hnd single-def "Inlining Arg" <System.__Canon>
-;* V12 tmp8 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.__Canon>
-; V13 tmp9 [V13,T10] ( 3, 3 ) ref -> x0 single-def "arr expr"
-; V14 tmp10 [V14,T01] ( 3, 24 ) ref -> x2 "arr expr"
-; V15 tmp11 [V15,T04] ( 2, 16 ) ref -> x0 "argument with side effect"
-; V16 tmp12 [V16,T06] ( 2, 16 ) long -> x1 "argument with side effect"
-; V17 tmp13 [V17,T05] ( 2, 16 ) ref -> x2 "argument with side effect"
-; V18 cse0 [V18,T09] ( 4, 3.50) int -> x1 "CSE - aggressive"
+;* V05 tmp1 [V05,T15] ( 0, 0 ) ref -> zero-ref single-def
+; V06 tmp2 [V06,T08] ( 3, 2 ) ref -> x15 single-def
+;* V07 tmp3 [V07,T12] ( 0, 0 ) ref -> zero-ref
+; V08 tmp4 [V08,T09] ( 3, 2 ) ref -> x15
+; V09 tmp5 [V09,T10] ( 3, 2 ) ref -> x0
+; V10 tmp6 [V10,T02] ( 2, 16 ) ref -> x0 class-hnd "impAppendStmt" <System.Exception[]>
+; V11 tmp7 [V11,T13] ( 2, 1 ) ref -> x14 class-hnd exact single-def "Inline return value spill temp" <System.Runtime.ExceptionServices.ExceptionDispatchInfo>
+; V12 tmp8 [V12,T11] ( 3, 1.50) ref -> x0 class-hnd single-def "Inline stloc first use temp" <System.Runtime.ExceptionServices.ExceptionDispatchInfo[]>
+;* V13 tmp9 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Runtime.ExceptionServices.ExceptionDispatchInfo>
+; V14 tmp10 [V14,T04] ( 3, 12 ) ref -> x2 class-hnd "Inline stloc first use temp" <System.Runtime.ExceptionServices.ExceptionDispatchInfo[]>
+; V15 cse0 [V15,T14] ( 2, 1 ) int -> x14 "CSE - moderate"
+; V16 cse1 [V16,T07] ( 4, 3.50) int -> x1 "CSE - aggressive"
+; V17 cse2 [V17,T05] ( 2, 8 ) int -> x1 "CSE - aggressive"
;
; Lcl frame size = 8
G_M37595_IG01:
stp fp, lr, [sp, #-0x30]!
stp x19, x20, [sp, #0x18]
str x21, [sp, #0x28]
mov fp, sp
mov x19, x0
mov x20, x2
;; size=24 bbWeight=1 PerfScore 4.50
G_M37595_IG02:
mov x15, x1
ldr w1, [x20, #0x10]
cbnz w1, G_M37595_IG04
;; size=12 bbWeight=1 PerfScore 4.50
G_M37595_IG03:
mov x0, xzr
b G_M37595_IG05
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M37595_IG04:
- cbz w1, G_M37595_IG08
ldr x0, [x20, #0x08]
+ cbz w1, G_M37595_IG08
ldr w14, [x0, #0x08]
- cmp w14, #0
- bls G_M37595_IG09
+ cbz w14, G_M37595_IG08
ldr x14, [x0, #0x10]
ldr x0, [x14, #0x08]
- ;; size=28 bbWeight=0.50 PerfScore 7.25
+ ;; size=24 bbWeight=0.50 PerfScore 7.00
G_M37595_IG05:
movz x14, #0xD1FFAB1E
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
movk x14, #0xD1FFAB1E LSL #48
str x14, [x19, #0x70]
add x14, x19, #16
bl CORINFO_HELP_ASSIGN_REF
add x14, x19, #32
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
sxtw x1, w1
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWARR_1_OBJ
add x14, x19, #120
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
mov w21, wzr
- ldr x0, [x19, #0x78]
- ldr w0, [x0, #0x08]
- cmp w0, #0
+ ldr x2, [x19, #0x78]
+ ldr w2, [x2, #0x08]
+ cmp w2, #0
ble G_M37595_IG07
;; size=92 bbWeight=1 PerfScore 19.50
G_M37595_IG06:
ldr x0, [x19, #0x78]
+ ldr x2, [x20, #0x08]
ldr w1, [x20, #0x10]
cmp w21, w1
bhs G_M37595_IG08
- sxtw x1, w21
- ldr x2, [x20, #0x08]
- ldr w3, [x2, #0x08]
- cmp w21, w3
- bhs G_M37595_IG09
+ ldr w1, [x2, #0x08]
+ cmp w1, w21
+ bls G_M37595_IG08
add x2, x2, #16
ldr x2, [x2, w21, UXTW #3]
ldr x2, [x2, #0x08]
+ sxtw x1, w21
bl CORINFO_HELP_ARRADDR_ST
add w21, w21, #1
ldr x0, [x19, #0x78]
ldr w0, [x0, #0x08]
cmp w0, w21
bgt G_M37595_IG06
;; size=72 bbWeight=4 PerfScore 124.00
G_M37595_IG07:
ldr x21, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x30
ret lr
;; size=16 bbWeight=1 PerfScore 5.00
G_M37595_IG08:
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
-G_M37595_IG09:
- bl CORINFO_HELP_RNGCHKFAIL
- brk_unix #0
- ;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 284, prolog size 24, PerfScore 193.90, instruction count 71, allocated bytes for code 284 (MethodHash=281b6d24) for method System.AggregateException:.ctor(System.String,System.Collections.Generic.List`1[System.Runtime.ExceptionServices.ExceptionDispatchInfo]):this (FullOpts)
+; Total bytes of code 272, prolog size 24, PerfScore 192.45, instruction count 68, allocated bytes for code 272 (MethodHash=281b6d24) for method System.AggregateException:.ctor(System.String,System.Collections.Generic.List`1[System.Runtime.ExceptionServices.ExceptionDispatchInfo]):this (FullOpts)
-8 (-0.806% of base) - System.AggregateException:Flatten():System.AggregateException:this
; Assembly listing for method System.AggregateException:Flatten():System.AggregateException: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; 7 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T20] ( 9, 6 ) ref -> x19 this class-hnd single-def <System.AggregateException>
; V01 loc0 [V01,T03] ( 8, 50 ) ref -> x21 class-hnd exact single-def <System.Collections.Generic.List`1[System.Exception]>
; V02 loc1 [V02,T01] ( 11, 62 ) ref -> x22 class-hnd exact single-def <System.Collections.Generic.List`1[System.AggregateException]>
-; V03 loc2 [V03,T18] ( 4, 13 ) int -> registers
+; V03 loc2 [V03,T16] ( 4, 13 ) int -> registers
; V04 loc3 [V04,T05] ( 4, 40 ) ref -> x25 class-hnd <System.Collections.ObjectModel.ReadOnlyCollection`1[System.Exception]>
; V05 loc4 [V05,T00] ( 5, 68 ) int -> x23
; V06 loc5 [V06,T02] ( 5, 56 ) ref -> x27 class-hnd <System.Exception>
; V07 loc6 [V07,T07] ( 4, 32 ) ref -> x2 class-hnd <System.AggregateException>
;# V08 OutArgs [V08 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V09 tmp1 [V09,T21] ( 3, 6 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.Exception]>
-; V10 tmp2 [V10,T16] ( 8, 14 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.AggregateException]>
+; V09 tmp1 [V09,T22] ( 3, 6 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.Exception]>
+; V10 tmp2 [V10,T14] ( 8, 14 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.AggregateException]>
; V11 tmp3 [V11,T04] ( 5, 40 ) int -> x23 "impSpillLclRefs"
-; V12 tmp4 [V12,T29] ( 3, 2 ) ref -> x20
-; V13 tmp5 [V13,T22] ( 3, 6 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.AggregateException>
-; V14 tmp6 [V14,T27] ( 3, 2.50) ref -> x0 class-hnd single-def "Inline stloc first use temp" <System.AggregateException[]>
-; V15 tmp7 [V15,T25] ( 4, 3 ) int -> x1 "Inline stloc first use temp"
-;* V16 tmp8 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Collections.ObjectModel.ReadOnlyCollection`1[System.Exception]>
-; V17 tmp9 [V17,T10] ( 4, 24 ) ref -> x23 class-hnd "Inlining Arg" <System.__Canon>
-; V18 tmp10 [V18,T15] ( 2, 16 ) ref -> x25 class-hnd "dup spill" <System.Collections.ObjectModel.ReadOnlyCollection`1[System.Exception]>
-; V19 tmp11 [V19,T17] ( 4, 14 ) ref -> x25
-; V20 tmp12 [V20,T14] ( 4, 16 ) ref -> x25 class-hnd exact "NewObj constructor temp" <System.Collections.ObjectModel.ReadOnlyCollection`1[System.Exception]>
-;* V21 tmp13 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.Collections.ObjectModel.ReadOnlyCollection`1[System.Exception]>
-; V22 tmp14 [V22,T19] ( 3, 12 ) ref -> x15 class-hnd "Inlining Arg" <System.Exception[]>
-; V23 tmp15 [V23,T11] ( 3, 24 ) ref -> x0 class-hnd "Inline stloc first use temp" <System.AggregateException[]>
-; V24 tmp16 [V24,T08] ( 4, 32 ) int -> x1 "Inline stloc first use temp"
-; V25 tmp17 [V25,T12] ( 3, 24 ) ref -> x0 class-hnd "Inline stloc first use temp" <System.Exception[]>
-; V26 tmp18 [V26,T09] ( 4, 32 ) int -> x1 "Inline stloc first use temp"
-; V27 tmp19 [V27,T30] ( 2, 2 ) ref -> x20 class-hnd exact single-def "dup spill" <System.String>
-; V28 tmp20 [V28,T28] ( 4, 2 ) ref -> x20
-;* V29 tmp21 [V29 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.String>
-; V30 tmp22 [V30,T13] ( 3, 24 ) ref -> x0 "arr expr"
-; V31 tmp23 [V31,T31] ( 2, 2 ) ref -> x20 single-def "argument with side effect"
-; V32 tmp24 [V32,T32] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
-; V33 tmp25 [V33,T24] ( 2, 4 ) ref -> x2 single-def "argument with side effect"
-; V34 cse0 [V34,T26] ( 3, 3 ) ref -> x0 "CSE - moderate"
+; V12 tmp4 [V12,T30] ( 3, 2 ) ref -> x20
+; V13 tmp5 [V13,T23] ( 3, 6 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.AggregateException>
+; V14 tmp6 [V14,T28] ( 3, 2.50) ref -> x0 class-hnd single-def "Inline stloc first use temp" <System.AggregateException[]>
+; V15 tmp7 [V15,T26] ( 4, 3 ) int -> x1 "Inline stloc first use temp"
+; V16 tmp8 [V16,T17] ( 4, 12 ) ref -> x23 class-hnd "Inline return value spill temp" <System.AggregateException>
+; V17 tmp9 [V17,T18] ( 3, 12 ) ref -> x0 class-hnd "Inline stloc first use temp" <System.AggregateException[]>
+;* V18 tmp10 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Collections.ObjectModel.ReadOnlyCollection`1[System.Exception]>
+; V19 tmp11 [V19,T13] ( 2, 16 ) ref -> x25 class-hnd "dup spill" <System.Collections.ObjectModel.ReadOnlyCollection`1[System.Exception]>
+; V20 tmp12 [V20,T15] ( 4, 14 ) ref -> x25
+; V21 tmp13 [V21,T12] ( 4, 16 ) ref -> x25 class-hnd exact "NewObj constructor temp" <System.Collections.ObjectModel.ReadOnlyCollection`1[System.Exception]>
+;* V22 tmp14 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.Collections.ObjectModel.ReadOnlyCollection`1[System.Exception]>
+; V23 tmp15 [V23,T19] ( 3, 12 ) ref -> x15 class-hnd "Inlining Arg" <System.Exception[]>
+; V24 tmp16 [V24,T10] ( 3, 24 ) ref -> x0 class-hnd "Inline stloc first use temp" <System.AggregateException[]>
+; V25 tmp17 [V25,T08] ( 4, 32 ) int -> x1 "Inline stloc first use temp"
+; V26 tmp18 [V26,T11] ( 3, 24 ) ref -> x0 class-hnd "Inline stloc first use temp" <System.Exception[]>
+; V27 tmp19 [V27,T09] ( 4, 32 ) int -> x1 "Inline stloc first use temp"
+; V28 tmp20 [V28,T31] ( 2, 2 ) ref -> x20 class-hnd exact single-def "dup spill" <System.String>
+; V29 tmp21 [V29,T29] ( 4, 2 ) ref -> x20
+;* V30 tmp22 [V30 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.String>
+; V31 tmp23 [V31,T32] ( 2, 2 ) ref -> x20 single-def "argument with side effect"
+; V32 tmp24 [V32,T33] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
+; V33 tmp25 [V33,T25] ( 2, 4 ) ref -> x2 single-def "argument with side effect"
+; V34 cse0 [V34,T27] ( 3, 3 ) ref -> x0 "CSE - moderate"
; V35 cse1 [V35,T06] ( 4, 40 ) long -> x26 "CSE - aggressive"
-; V36 cse2 [V36,T23] ( 3, 4 ) long -> x20 "CSE - moderate"
+; V36 cse2 [V36,T21] ( 2, 8 ) int -> x1 "CSE - moderate"
+; V37 cse3 [V37,T24] ( 3, 4 ) long -> x20 "CSE - moderate"
;
; Lcl frame size = 8
G_M60647_IG01:
stp fp, lr, [sp, #-0x60]!
stp x19, x20, [sp, #0x18]
stp x21, x22, [sp, #0x28]
stp x23, x24, [sp, #0x38]
stp x25, x26, [sp, #0x48]
str x27, [sp, #0x58]
mov fp, sp
mov x19, x0
;; size=32 bbWeight=1 PerfScore 7.00
G_M60647_IG02:
movz x20, #0xD1FFAB1E
movk x20, #0xD1FFAB1E LSL #16
movk x20, #0xD1FFAB1E LSL #32
add x0, x20, #0xD1FFAB1E
bl CORINFO_HELP_NEWSFAST
mov x21, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov w1, #144
bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
movz x14, #0xD1FFAB1E // data for System.Collections.Generic.List`1[System.Exception]:s_emptyArray
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x21, #8
bl CORINFO_HELP_ASSIGN_REF
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x22, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov w1, #145
bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
movz x14, #0xD1FFAB1E // data for System.Collections.Generic.List`1[System.AggregateException]:s_emptyArray
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x0, [x14]
add x14, x22, #8
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
ldr w1, [x22, #0x14]
add w1, w1, #1
str w1, [x22, #0x14]
ldr w1, [x22, #0x10]
ldr w2, [x0, #0x08]
cmp w2, w1
bls G_M60647_IG04
;; size=164 bbWeight=1 PerfScore 37.00
G_M60647_IG03:
add w2, w1, #1
str w2, [x22, #0x10]
sxtw x1, w1
mov x2, x19
bl CORINFO_HELP_ARRADDR_ST
b G_M60647_IG05
;; size=24 bbWeight=0.50 PerfScore 2.25
G_M60647_IG04:
mov x0, x22
mov x1, x19
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=28 bbWeight=0.50 PerfScore 3.25
G_M60647_IG05:
mov w23, wzr
ldr w0, [x22, #0x10]
cmp w0, #0
ble G_M60647_IG16
;; size=16 bbWeight=1 PerfScore 5.00
G_M60647_IG06:
add w0, w23, #1
sxtw w24, w0
- ldr w0, [x22, #0x10]
- cmp w23, w0
- bhs G_M60647_IG22
ldr x0, [x22, #0x08]
- ldr w1, [x0, #0x08]
+ ldr w1, [x22, #0x10]
cmp w23, w1
- bhs G_M60647_IG24
+ bhs G_M60647_IG22
+ ldr w1, [x0, #0x08]
+ cmp w1, w23
+ bls G_M60647_IG22
add x0, x0, #16
ldr x23, [x0, w23, UXTW #3]
ldr x25, [x23, #0x80]
cbnz x25, G_M60647_IG08
;; size=52 bbWeight=4 PerfScore 82.00
G_M60647_IG07:
mov x0, x20
bl CORINFO_HELP_NEWSFAST
mov x25, x0
ldr x15, [x23, #0x78]
cbz x15, G_M60647_IG23
add x14, x25, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x23, #128
mov x15, x25
bl CORINFO_HELP_ASSIGN_REF
;; size=40 bbWeight=2 PerfScore 19.00
G_M60647_IG08:
mov w23, wzr
ldr x0, [x25, #0x08]
movz x26, #0xD1FFAB1E // code for System.Collections.Generic.ICollection`1[System.__Canon]:get_Count():int:this
movk x26, #0xD1FFAB1E LSL #16
movk x26, #0xD1FFAB1E LSL #32
mov x11, x26
ldr x1, [x11]
blr x1
cmp w0, #0
ble G_M60647_IG15
;; size=40 bbWeight=4 PerfScore 44.00
G_M60647_IG09:
ldr x0, [x25, #0x08]
mov w1, w23
sub x11, x26, #8
ldr x2, [x11]
blr x2
mov x27, x0
cbz x27, G_M60647_IG14
;; size=28 bbWeight=16 PerfScore 152.00
G_M60647_IG10:
mov x1, x27
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_ISINSTANCEOFCLASS
mov x2, x0
cbz x2, G_M60647_IG12
ldr w1, [x22, #0x14]
add w1, w1, #1
str w1, [x22, #0x14]
ldr x0, [x22, #0x08]
ldr w1, [x22, #0x10]
ldr w3, [x0, #0x08]
cmp w3, w1
bls G_M60647_IG11
add w3, w1, #1
str w3, [x22, #0x10]
sxtw x1, w1
bl CORINFO_HELP_ARRADDR_ST
b G_M60647_IG14
;; size=80 bbWeight=8 PerfScore 188.00
G_M60647_IG11:
mov x0, x22
mov x1, x2
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
b G_M60647_IG14
;; size=32 bbWeight=8 PerfScore 60.00
G_M60647_IG12:
ldr w1, [x21, #0x14]
add w1, w1, #1
str w1, [x21, #0x14]
ldr x0, [x21, #0x08]
ldr w1, [x21, #0x10]
ldr w2, [x0, #0x08]
cmp w2, w1
bls G_M60647_IG13
add w2, w1, #1
str w2, [x21, #0x10]
sxtw x1, w1
mov x2, x27
bl CORINFO_HELP_ARRADDR_ST
b G_M60647_IG14
;; size=56 bbWeight=8 PerfScore 156.00
G_M60647_IG13:
mov x0, x21
mov x1, x27
movz x2, #0xD1FFAB1E // code for System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=28 bbWeight=8 PerfScore 52.00
G_M60647_IG14:
add w23, w23, #1
ldr x0, [x25, #0x08]
mov x11, x26
ldr x1, [x11]
blr x1
cmp w0, w23
bgt G_M60647_IG09
;; size=28 bbWeight=16 PerfScore 152.00
G_M60647_IG15:
ldr w0, [x22, #0x10]
cmp w0, w24
mov w23, w24
bgt G_M60647_IG06
;; size=16 bbWeight=4 PerfScore 20.00
G_M60647_IG16:
ldr x0, [x19]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
cmp x0, x1
beq G_M60647_IG20
;; size=24 bbWeight=1 PerfScore 6.00
G_M60647_IG17:
mov x0, x19
ldr x1, [x19]
ldr x1, [x1, #0x40]
ldr x1, [x1, #0x20]
blr x1
mov x20, x0
;; size=24 bbWeight=0.50 PerfScore 5.50
G_M60647_IG18:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x19, x0
mov x0, x21
movz x1, #0xD1FFAB1E // code for System.Collections.Generic.List`1[System.__Canon]:ToArray():System.__Canon[]:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
mov x2, x0
mov x1, x20
mov x0, x19
mov w3, wzr
movz x4, #0xD1FFAB1E // code for System.AggregateException:.ctor(System.String,System.Exception[],ubyte):this
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
ldr x4, [x4]
blr x4
mov x0, x19
;; size=84 bbWeight=1 PerfScore 17.00
G_M60647_IG19:
ldr x27, [sp, #0x58]
ldp x25, x26, [sp, #0x48]
ldp x23, x24, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x60
ret lr
;; size=28 bbWeight=1 PerfScore 8.00
G_M60647_IG20:
ldr x20, [x19, #0x10]
cbnz x20, G_M60647_IG21
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x1, #0xD1FFAB1E // code for System.SR:GetResourceString(System.String):System.String
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
mov x20, x0
mov x0, x19
bl System.Object:GetType():System.Type:this
movz x1, #0xD1FFAB1E // code for System.RuntimeType:ToString():System.String:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
mov x1, x0
mov x0, x20
movz x2, #0xD1FFAB1E // code for System.SR:Format(System.String,System.Object):System.String
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x20, x0
;; size=104 bbWeight=0.50 PerfScore 12.75
G_M60647_IG21:
b G_M60647_IG18
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M60647_IG22:
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
G_M60647_IG23:
mov w0, #20
movz x1, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentNullException(int)
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
brk_unix #0
;; size=28 bbWeight=0 PerfScore 0.00
-G_M60647_IG24:
- bl CORINFO_HELP_RNGCHKFAIL
- brk_unix #0
- ;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 992, prolog size 32, PerfScore 1128.45, instruction count 248, allocated bytes for code 992 (MethodHash=1e3b1318) for method System.AggregateException:Flatten():System.AggregateException:this (FullOpts)
+; Total bytes of code 984, prolog size 32, PerfScore 1127.65, instruction count 246, allocated bytes for code 984 (MethodHash=1e3b1318) for method System.AggregateException:Flatten():System.AggregateException:this (FullOpts)
-8 (-9.524% of base) - System.Collections.Generic.List`1[double]:get_Item(int):double:this
; Assembly listing for method System.Collections.Generic.List`1[double]:get_Item(int):double:this (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 this [V00,T01] ( 4, 4 ) ref -> x0 this class-hnd single-def <System.Collections.Generic.List`1[double]>
; V01 arg1 [V01,T00] ( 5, 5 ) int -> x1 single-def
-;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T02] ( 3, 6 ) ref -> x0 single-def "arr expr"
+; V02 loc0 [V02,T02] ( 3, 3 ) ref -> x2 class-hnd single-def <double[]>
+;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V04 cse0 [V04,T03] ( 2, 2 ) int -> x0 "CSE - aggressive"
;
; Lcl frame size = 0
G_M60546_IG01:
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
G_M60546_IG02:
- ldr w2, [x0, #0x10]
- cmp w1, w2
+ ldr x2, [x0, #0x08]
+ ldr w0, [x0, #0x10]
+ cmp w1, w0
bhs G_M60546_IG04
- ldr x0, [x0, #0x08]
- ldr w2, [x0, #0x08]
- cmp w1, w2
- bhs G_M60546_IG05
- add x0, x0, #16
+ ldr w0, [x2, #0x08]
+ cmp w0, w1
+ bls G_M60546_IG04
+ add x0, x2, #16
ldr d0, [x0, w1, UXTW #3]
;; size=36 bbWeight=1 PerfScore 15.50
G_M60546_IG03:
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
G_M60546_IG04:
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
-G_M60546_IG05:
- bl CORINFO_HELP_RNGCHKFAIL
- brk_unix #0
- ;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 84, prolog size 8, PerfScore 27.40, instruction count 21, allocated bytes for code 84 (MethodHash=039b137d) for method System.Collections.Generic.List`1[double]:get_Item(int):double:this (FullOpts)
+; Total bytes of code 76, prolog size 8, PerfScore 26.60, instruction count 19, allocated bytes for code 76 (MethodHash=039b137d) for method System.Collections.Generic.List`1[double]:get_Item(int):double:this (FullOpts)
-8 (-9.524% of base) - System.Collections.Generic.List`1[int]:get_Item(int):int:this
; Assembly listing for method System.Collections.Generic.List`1[int]:get_Item(int):int:this (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 this [V00,T01] ( 4, 4 ) ref -> x0 this class-hnd single-def <System.Collections.Generic.List`1[int]>
; V01 arg1 [V01,T00] ( 5, 5 ) int -> x1 single-def
-;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T02] ( 3, 6 ) ref -> x0 single-def "arr expr"
+; V02 loc0 [V02,T02] ( 3, 3 ) ref -> x2 class-hnd single-def <int[]>
+;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V04 cse0 [V04,T03] ( 2, 2 ) int -> x0 "CSE - aggressive"
;
; Lcl frame size = 0
G_M10434_IG01:
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
G_M10434_IG02:
- ldr w2, [x0, #0x10]
- cmp w1, w2
+ ldr x2, [x0, #0x08]
+ ldr w0, [x0, #0x10]
+ cmp w1, w0
bhs G_M10434_IG04
- ldr x0, [x0, #0x08]
- ldr w2, [x0, #0x08]
- cmp w1, w2
- bhs G_M10434_IG05
- add x0, x0, #16
+ ldr w0, [x2, #0x08]
+ cmp w0, w1
+ bls G_M10434_IG04
+ add x0, x2, #16
ldr w0, [x0, w1, UXTW #2]
;; size=36 bbWeight=1 PerfScore 15.50
G_M10434_IG03:
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
G_M10434_IG04:
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
-G_M10434_IG05:
- bl CORINFO_HELP_RNGCHKFAIL
- brk_unix #0
- ;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 84, prolog size 8, PerfScore 27.40, instruction count 21, allocated bytes for code 84 (MethodHash=9a7ed73d) for method System.Collections.Generic.List`1[int]:get_Item(int):int:this (FullOpts)
+; Total bytes of code 76, prolog size 8, PerfScore 26.60, instruction count 19, allocated bytes for code 76 (MethodHash=9a7ed73d) for method System.Collections.Generic.List`1[int]:get_Item(int):int:this (FullOpts)
-8 (-9.524% of base) - System.Collections.Generic.List`1[long]:get_Item(int):long:this
; Assembly listing for method System.Collections.Generic.List`1[long]:get_Item(int):long:this (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 this [V00,T01] ( 4, 4 ) ref -> x0 this class-hnd single-def <System.Collections.Generic.List`1[long]>
; V01 arg1 [V01,T00] ( 5, 5 ) int -> x1 single-def
-;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T02] ( 3, 6 ) ref -> x0 single-def "arr expr"
+; V02 loc0 [V02,T02] ( 3, 3 ) ref -> x2 class-hnd single-def <long[]>
+;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V04 cse0 [V04,T03] ( 2, 2 ) int -> x0 "CSE - aggressive"
;
; Lcl frame size = 0
G_M30658_IG01:
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
G_M30658_IG02:
- ldr w2, [x0, #0x10]
- cmp w1, w2
+ ldr x2, [x0, #0x08]
+ ldr w0, [x0, #0x10]
+ cmp w1, w0
bhs G_M30658_IG04
- ldr x0, [x0, #0x08]
- ldr w2, [x0, #0x08]
- cmp w1, w2
- bhs G_M30658_IG05
- add x0, x0, #16
+ ldr w0, [x2, #0x08]
+ cmp w0, w1
+ bls G_M30658_IG04
+ add x0, x2, #16
ldr x0, [x0, w1, UXTW #3]
;; size=36 bbWeight=1 PerfScore 15.50
G_M30658_IG03:
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
G_M30658_IG04:
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
-G_M30658_IG05:
- bl CORINFO_HELP_RNGCHKFAIL
- brk_unix #0
- ;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 84, prolog size 8, PerfScore 27.40, instruction count 21, allocated bytes for code 84 (MethodHash=163e883d) for method System.Collections.Generic.List`1[long]:get_Item(int):long:this (FullOpts)
+; Total bytes of code 76, prolog size 8, PerfScore 26.60, instruction count 19, allocated bytes for code 76 (MethodHash=163e883d) for method System.Collections.Generic.List`1[long]:get_Item(int):long:this (FullOpts)
-8 (-9.524% of base) - System.Collections.Generic.List`1[short]:get_Item(int):short:this
; Assembly listing for method System.Collections.Generic.List`1[short]:get_Item(int):short:this (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 this [V00,T01] ( 4, 4 ) ref -> x0 this class-hnd single-def <System.Collections.Generic.List`1[short]>
; V01 arg1 [V01,T00] ( 5, 5 ) int -> x1 single-def
-;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T02] ( 3, 6 ) ref -> x0 single-def "arr expr"
+; V02 loc0 [V02,T02] ( 3, 3 ) ref -> x2 class-hnd single-def <short[]>
+;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V04 cse0 [V04,T03] ( 2, 2 ) int -> x0 "CSE - aggressive"
;
; Lcl frame size = 0
G_M55138_IG01:
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
G_M55138_IG02:
- ldr w2, [x0, #0x10]
- cmp w1, w2
+ ldr x2, [x0, #0x08]
+ ldr w0, [x0, #0x10]
+ cmp w1, w0
bhs G_M55138_IG04
- ldr x0, [x0, #0x08]
- ldr w2, [x0, #0x08]
- cmp w1, w2
- bhs G_M55138_IG05
- add x0, x0, #16
+ ldr w0, [x2, #0x08]
+ cmp w0, w1
+ bls G_M55138_IG04
+ add x0, x2, #16
ldrsh w0, [x0, w1, UXTW #2]
;; size=36 bbWeight=1 PerfScore 15.50
G_M55138_IG03:
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
G_M55138_IG04:
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
-G_M55138_IG05:
- bl CORINFO_HELP_RNGCHKFAIL
- brk_unix #0
- ;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 84, prolog size 8, PerfScore 27.40, instruction count 21, allocated bytes for code 84 (MethodHash=efb1289d) for method System.Collections.Generic.List`1[short]:get_Item(int):short:this (FullOpts)
+; Total bytes of code 76, prolog size 8, PerfScore 26.60, instruction count 19, allocated bytes for code 76 (MethodHash=efb1289d) for method System.Collections.Generic.List`1[short]:get_Item(int):short:this (FullOpts)
-8 (-9.524% of base) - System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this
; Assembly listing for method System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this (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 this [V00,T01] ( 4, 4 ) ref -> x0 this class-hnd single-def <System.Collections.Generic.List`1[System.__Canon]>
; V01 arg1 [V01,T00] ( 5, 5 ) int -> x1 single-def
-;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T02] ( 3, 6 ) ref -> x0 single-def "arr expr"
+; V02 loc0 [V02,T02] ( 3, 3 ) ref -> x2 class-hnd single-def <System.__Canon[]>
+;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V04 cse0 [V04,T03] ( 2, 2 ) int -> x0 "CSE - aggressive"
;
; Lcl frame size = 0
G_M15554_IG01:
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
G_M15554_IG02:
- ldr w2, [x0, #0x10]
- cmp w1, w2
+ ldr x2, [x0, #0x08]
+ ldr w0, [x0, #0x10]
+ cmp w1, w0
bhs G_M15554_IG04
- ldr x0, [x0, #0x08]
- ldr w2, [x0, #0x08]
- cmp w1, w2
- bhs G_M15554_IG05
- add x0, x0, #16
+ ldr w0, [x2, #0x08]
+ cmp w0, w1
+ bls G_M15554_IG04
+ add x0, x2, #16
ldr x0, [x0, w1, UXTW #3]
;; size=36 bbWeight=1 PerfScore 15.50
G_M15554_IG03:
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
G_M15554_IG04:
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
-G_M15554_IG05:
- bl CORINFO_HELP_RNGCHKFAIL
- brk_unix #0
- ;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 84, prolog size 8, PerfScore 27.40, instruction count 21, allocated bytes for code 84 (MethodHash=5cebc33d) for method System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this (FullOpts)
+; Total bytes of code 76, prolog size 8, PerfScore 26.60, instruction count 19, allocated bytes for code 76 (MethodHash=5cebc33d) for method System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this (FullOpts)
-8 (-9.524% of base) - System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.get_Item(int):System.Object:this
; Assembly listing for method System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.get_Item(int):System.Object: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; 0 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T01] ( 4, 4 ) ref -> x0 this class-hnd single-def <System.Collections.Generic.List`1[System.__Canon]>
; V01 arg1 [V01,T00] ( 5, 5 ) int -> x1 single-def
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T02] ( 3, 6 ) ref -> x0 single-def "arr expr"
+;* V03 tmp1 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.__Canon>
+; V04 tmp2 [V04,T02] ( 3, 3 ) ref -> x2 class-hnd single-def "Inline stloc first use temp" <System.__Canon[]>
+; V05 cse0 [V05,T03] ( 2, 2 ) int -> x0 "CSE - aggressive"
;
; Lcl frame size = 0
G_M6239_IG01:
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
G_M6239_IG02:
- ldr w2, [x0, #0x10]
- cmp w1, w2
+ ldr x2, [x0, #0x08]
+ ldr w0, [x0, #0x10]
+ cmp w1, w0
bhs G_M6239_IG04
- ldr x0, [x0, #0x08]
- ldr w2, [x0, #0x08]
- cmp w1, w2
- bhs G_M6239_IG05
- add x0, x0, #16
+ ldr w0, [x2, #0x08]
+ cmp w0, w1
+ bls G_M6239_IG04
+ add x0, x2, #16
ldr x0, [x0, w1, UXTW #3]
;; size=36 bbWeight=1 PerfScore 15.50
G_M6239_IG03:
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
G_M6239_IG04:
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
-G_M6239_IG05:
- bl CORINFO_HELP_RNGCHKFAIL
- brk_unix #0
- ;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 84, prolog size 8, PerfScore 27.40, instruction count 21, allocated bytes for code 84 (MethodHash=98cee7a0) for method System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.get_Item(int):System.Object:this (FullOpts)
+; Total bytes of code 76, prolog size 8, PerfScore 26.60, instruction count 19, allocated bytes for code 76 (MethodHash=98cee7a0) for method System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.get_Item(int):System.Object:this (FullOpts)
-8 (-9.091% of base) - System.Collections.Generic.List`1[System.Nullable`1[int]]:get_Item(int):System.Nullable`1[int]:this
; Assembly listing for method System.Collections.Generic.List`1[System.Nullable`1[int]]:get_Item(int):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
; Final local variable assignments
;
; V00 this [V00,T01] ( 4, 4 ) ref -> x0 this class-hnd single-def <System.Collections.Generic.List`1[System.Nullable`1[int]]>
; V01 arg1 [V01,T00] ( 5, 5 ) int -> x1 single-def
-;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T02] ( 3, 6 ) ref -> x0 single-def "arr expr"
+; V02 loc0 [V02,T02] ( 3, 3 ) ref -> x2 class-hnd exact single-def <System.Nullable`1[int][]>
+;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V04 cse0 [V04,T03] ( 2, 2 ) int -> x0 "CSE - aggressive"
;
; Lcl frame size = 0
G_M56770_IG01:
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
G_M56770_IG02:
- ldr w2, [x0, #0x10]
- cmp w1, w2
+ ldr x2, [x0, #0x08]
+ ldr w0, [x0, #0x10]
+ cmp w1, w0
bhs G_M56770_IG04
- ldr x0, [x0, #0x08]
- ldr w2, [x0, #0x08]
- cmp w1, w2
- bhs G_M56770_IG05
- ubfiz x1, x1, #3, #32
- add x1, x1, #16
- ldr x0, [x0, x1]
+ ldr w0, [x2, #0x08]
+ cmp w0, w1
+ bls G_M56770_IG04
+ ubfiz x0, x1, #3, #32
+ add x0, x0, #16
+ ldr x0, [x2, x0]
;; size=40 bbWeight=1 PerfScore 16.50
G_M56770_IG03:
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
G_M56770_IG04:
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
-G_M56770_IG05:
- bl CORINFO_HELP_RNGCHKFAIL
- brk_unix #0
- ;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 88, prolog size 8, PerfScore 28.80, instruction count 22, allocated bytes for code 88 (MethodHash=7599223d) for method System.Collections.Generic.List`1[System.Nullable`1[int]]:get_Item(int):System.Nullable`1[int]:this (FullOpts)
+; Total bytes of code 80, prolog size 8, PerfScore 28.00, instruction count 20, allocated bytes for code 80 (MethodHash=7599223d) for method System.Collections.Generic.List`1[System.Nullable`1[int]]:get_Item(int):System.Nullable`1[int]:this (FullOpts)
-8 (-7.143% of base) - System.Collections.Generic.List`1[System.Nullable`1[int]]:System.Collections.IList.get_Item(int):System.Object:this
; Assembly listing for method System.Collections.Generic.List`1[System.Nullable`1[int]]:System.Collections.IList.get_Item(int):System.Object: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; 0 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T01] ( 4, 4 ) ref -> x0 this class-hnd single-def <System.Collections.Generic.List`1[System.Nullable`1[int]]>
; V01 arg1 [V01,T00] ( 5, 5 ) int -> x1 single-def
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V03 tmp1 [V03 ] ( 2, 4 ) struct ( 8) [fp+0x18] do-not-enreg[XS] addr-exposed "location for address-of(RValue)" <System.Nullable`1[int]>
-; V04 tmp2 [V04 ] ( 2, 4 ) ubyte -> [fp+0x18] do-not-enreg[X] addr-exposed "field V03.hasValue (fldOffset=0x0)" P-DEP
-; V05 tmp3 [V05 ] ( 2, 4 ) int -> [fp+0x1C] do-not-enreg[X] addr-exposed "field V03.value (fldOffset=0x4)" P-DEP
-; V06 tmp4 [V06,T02] ( 3, 6 ) ref -> x0 single-def "arr expr"
+;* V04 tmp2 [V04 ] ( 0, 0 ) struct ( 8) zero-ref "Inline return value spill temp" <System.Nullable`1[int]>
+; V05 tmp3 [V05,T02] ( 3, 3 ) ref -> x2 class-hnd exact single-def "Inline stloc first use temp" <System.Nullable`1[int][]>
+; V06 tmp4 [V06 ] ( 2, 4 ) ubyte -> [fp+0x18] do-not-enreg[X] addr-exposed "field V03.hasValue (fldOffset=0x0)" P-DEP
+; V07 tmp5 [V07 ] ( 2, 4 ) int -> [fp+0x1C] do-not-enreg[X] addr-exposed "field V03.value (fldOffset=0x4)" P-DEP
+;* V08 tmp6 [V08 ] ( 0, 0 ) ubyte -> zero-ref "field V04.hasValue (fldOffset=0x0)" P-INDEP
+;* V09 tmp7 [V09 ] ( 0, 0 ) int -> zero-ref "field V04.value (fldOffset=0x4)" P-INDEP
+; V10 cse0 [V10,T03] ( 2, 2 ) int -> x0 "CSE - aggressive"
;
; Lcl frame size = 16
G_M039_IG01:
stp fp, lr, [sp, #-0x20]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
G_M039_IG02:
- ldr w2, [x0, #0x10]
- cmp w1, w2
+ ldr x2, [x0, #0x08]
+ ldr w0, [x0, #0x10]
+ cmp w1, w0
bhs G_M039_IG04
- ldr x0, [x0, #0x08]
- ldr w2, [x0, #0x08]
- cmp w1, w2
- bhs G_M039_IG05
+ ldr w0, [x2, #0x08]
+ cmp w0, w1
+ bls G_M039_IG04
ubfiz x1, x1, #3, #32
add x1, x1, #16
- ldr x1, [x0, x1]
+ ldr x1, [x2, x1]
str x1, [fp, #0x18] // [V03 tmp1]
add x1, fp, #24 // [V03 tmp1]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_BOX_NULLABLE
;; size=64 bbWeight=1 PerfScore 20.50
G_M039_IG03:
ldp fp, lr, [sp], #0x20
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
G_M039_IG04:
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
-G_M039_IG05:
- bl CORINFO_HELP_RNGCHKFAIL
- brk_unix #0
- ;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 112, prolog size 8, PerfScore 35.20, instruction count 28, allocated bytes for code 112 (MethodHash=35f7ffd8) for method System.Collections.Generic.List`1[System.Nullable`1[int]]:System.Collections.IList.get_Item(int):System.Object:this (FullOpts)
+; Total bytes of code 104, prolog size 8, PerfScore 34.40, instruction count 26, allocated bytes for code 104 (MethodHash=35f7ffd8) for method System.Collections.Generic.List`1[System.Nullable`1[int]]:System.Collections.IList.get_Item(int):System.Object:this (FullOpts)
-8 (-9.091% of base) - System.Collections.Generic.List`1[System.Numerics.Vector`1[float]]:get_Item(int):System.Numerics.Vector`1[float]:this
; Assembly listing for method System.Collections.Generic.List`1[System.Numerics.Vector`1[float]]:get_Item(int):System.Numerics.Vector`1[float]:this (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 this [V00,T01] ( 4, 4 ) ref -> x0 this class-hnd single-def <System.Collections.Generic.List`1[System.Numerics.Vector`1[float]]>
; V01 arg1 [V01,T00] ( 5, 5 ) int -> x1 single-def
-;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T02] ( 3, 6 ) ref -> x0 single-def "arr expr"
+; V02 loc0 [V02,T02] ( 3, 3 ) ref -> x2 class-hnd exact single-def <System.Numerics.Vector`1[float][]>
+;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V04 cse0 [V04,T03] ( 2, 2 ) int -> x0 "CSE - aggressive"
;
; Lcl frame size = 0
G_M37890_IG01:
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
G_M37890_IG02:
- ldr w2, [x0, #0x10]
- cmp w1, w2
+ ldr x2, [x0, #0x08]
+ ldr w0, [x0, #0x10]
+ cmp w1, w0
bhs G_M37890_IG04
- ldr x0, [x0, #0x08]
- ldr w2, [x0, #0x08]
- cmp w1, w2
- bhs G_M37890_IG05
- ubfiz x1, x1, #4, #32
- add x1, x1, #16
- ldr q0, [x0, x1]
+ ldr w0, [x2, #0x08]
+ cmp w0, w1
+ bls G_M37890_IG04
+ ubfiz x0, x1, #4, #32
+ add x0, x0, #16
+ ldr q0, [x2, x0]
;; size=40 bbWeight=1 PerfScore 16.50
G_M37890_IG03:
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
G_M37890_IG04:
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
-G_M37890_IG05:
- bl CORINFO_HELP_RNGCHKFAIL
- brk_unix #0
- ;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 88, prolog size 8, PerfScore 28.80, instruction count 22, allocated bytes for code 88 (MethodHash=81b46bfd) for method System.Collections.Generic.List`1[System.Numerics.Vector`1[float]]:get_Item(int):System.Numerics.Vector`1[float]:this (FullOpts)
+; Total bytes of code 80, prolog size 8, PerfScore 28.00, instruction count 20, allocated bytes for code 80 (MethodHash=81b46bfd) for method System.Collections.Generic.List`1[System.Numerics.Vector`1[float]]:get_Item(int):System.Numerics.Vector`1[float]:this (FullOpts)
-8 (-6.452% of base) - System.Collections.Generic.List`1[System.Numerics.Vector`1[float]]:System.Collections.IList.get_Item(int):System.Object:this
; Assembly listing for method System.Collections.Generic.List`1[System.Numerics.Vector`1[float]]:System.Collections.IList.get_Item(int):System.Object: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; 0 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T01] ( 4, 4 ) ref -> x20 this class-hnd single-def <System.Collections.Generic.List`1[System.Numerics.Vector`1[float]]>
-; V01 arg1 [V01,T00] ( 5, 5 ) int -> x19 single-def
+; V00 this [V00,T01] ( 4, 4 ) ref -> x0 this class-hnd single-def <System.Collections.Generic.List`1[System.Numerics.Vector`1[float]]>
+; V01 arg1 [V01,T00] ( 5, 5 ) int -> x1 single-def
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V03 tmp1 [V03,T02] ( 3, 6 ) ref -> x0 class-hnd exact single-def "Single-def Box Helper" <System.Numerics.Vector`1[float]>
-; V04 tmp2 [V04,T03] ( 3, 6 ) ref -> x1 single-def "arr expr"
+; V04 tmp2 [V04,T05] ( 2, 2 ) simd16 -> d8 HFA(simd16) "Inline return value spill temp" <System.Numerics.Vector`1[float]>
+; V05 tmp3 [V05,T03] ( 3, 3 ) ref -> x2 class-hnd exact single-def "Inline stloc first use temp" <System.Numerics.Vector`1[float][]>
+; V06 cse0 [V06,T04] ( 2, 2 ) int -> x0 "CSE - aggressive"
;
; Lcl frame size = 0
G_M55770_IG01:
stp fp, lr, [sp, #-0x20]!
- stp x19, x20, [sp, #0x10]
+ stp d8, d9, [sp, #0x10]
mov fp, sp
- mov x20, x0
- mov w19, w1
- ;; size=20 bbWeight=1 PerfScore 3.50
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M55770_IG02:
- ldr w0, [x20, #0x10]
- cmp w19, w0
+ ldr x2, [x0, #0x08]
+ ldr w0, [x0, #0x10]
+ cmp w1, w0
bhs G_M55770_IG04
+ ldr w0, [x2, #0x08]
+ cmp w0, w1
+ bls G_M55770_IG04
+ ubfiz x0, x1, #4, #32
+ add x0, x0, #16
+ ldr q8, [x2, x0]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
+ mov v9.d[0], v8.d[1]
bl CORINFO_HELP_NEWSFAST
- ldr x1, [x20, #0x08]
- ldr w2, [x1, #0x08]
- cmp w19, w2
- bhs G_M55770_IG05
- ubfiz x2, x19, #4, #32
- add x2, x2, #16
- ldr q16, [x1, x2]
- str q16, [x0, #0x08]
- ;; size=60 bbWeight=1 PerfScore 20.00
+ mov v8.d[1], v9.d[0]
+ str q8, [x0, #0x08]
+ ;; size=68 bbWeight=1 PerfScore 22.00
G_M55770_IG03:
- ldp x19, x20, [sp, #0x10]
+ ldp d8, d9, [sp, #0x10]
ldp fp, lr, [sp], #0x20
ret lr
;; size=12 bbWeight=1 PerfScore 3.00
G_M55770_IG04:
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
-G_M55770_IG05:
- bl CORINFO_HELP_RNGCHKFAIL
- brk_unix #0
- ;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 124, prolog size 12, PerfScore 38.90, instruction count 31, allocated bytes for code 124 (MethodHash=dd4b2625) for method System.Collections.Generic.List`1[System.Numerics.Vector`1[float]]:System.Collections.IList.get_Item(int):System.Object:this (FullOpts)
+; Total bytes of code 116, prolog size 12, PerfScore 39.10, instruction count 29, allocated bytes for code 116 (MethodHash=dd4b2625) for method System.Collections.Generic.List`1[System.Numerics.Vector`1[float]]:System.Collections.IList.get_Item(int):System.Object:this (FullOpts)
-8 (-9.524% of base) - System.Collections.Generic.List`1[ubyte]:get_Item(int):ubyte:this
; Assembly listing for method System.Collections.Generic.List`1[ubyte]:get_Item(int):ubyte:this (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 this [V00,T01] ( 4, 4 ) ref -> x0 this class-hnd single-def <System.Collections.Generic.List`1[ubyte]>
; V01 arg1 [V01,T00] ( 5, 5 ) int -> x1 single-def
-;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T02] ( 3, 6 ) ref -> x0 single-def "arr expr"
+; V02 loc0 [V02,T02] ( 3, 3 ) ref -> x2 class-hnd single-def <ubyte[]>
+;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V04 cse0 [V04,T03] ( 2, 2 ) int -> x0 "CSE - aggressive"
;
; Lcl frame size = 0
G_M6466_IG01:
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
G_M6466_IG02:
- ldr w2, [x0, #0x10]
- cmp w1, w2
+ ldr x2, [x0, #0x08]
+ ldr w0, [x0, #0x10]
+ cmp w1, w0
bhs G_M6466_IG04
- ldr x0, [x0, #0x08]
- ldr w2, [x0, #0x08]
- cmp w1, w2
- bhs G_M6466_IG05
- add x0, x0, #16
+ ldr w0, [x2, #0x08]
+ cmp w0, w1
+ bls G_M6466_IG04
+ add x0, x2, #16
ldrb w0, [x0, w1, UXTW #2]
;; size=36 bbWeight=1 PerfScore 15.50
G_M6466_IG03:
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
G_M6466_IG04:
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
-G_M6466_IG05:
- bl CORINFO_HELP_RNGCHKFAIL
- brk_unix #0
- ;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 84, prolog size 8, PerfScore 27.40, instruction count 21, allocated bytes for code 84 (MethodHash=d8afe6bd) for method System.Collections.Generic.List`1[ubyte]:get_Item(int):ubyte:this (FullOpts)
+; Total bytes of code 76, prolog size 8, PerfScore 26.60, instruction count 19, allocated bytes for code 76 (MethodHash=d8afe6bd) for method System.Collections.Generic.List`1[ubyte]:get_Item(int):ubyte:this (FullOpts)