-32 (-2.65 % of base) - System.Reflection.Emit.DynamicILGenerator:EmitCall(System.Reflection.Emit.OpCode,System.Reflection.MethodInfo,System.Type[]):this
; Assembly listing for method System.Reflection.Emit.DynamicILGenerator:EmitCall(System.Reflection.Emit.OpCode,System.Reflection.MethodInfo,System.Type[]):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; 19 single block inlinees; 6 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 23, 19 ) ref -> x19 this class-hnd single-def <System.Reflection.Emit.DynamicILGenerator>
-; V01 arg1 [V01,T04] ( 5, 5 ) struct ( 8) [fp+0x10] do-not-enreg[SF] ld-addr-op single-def <System.Reflection.Emit.OpCode>
+; V01 arg1 [V01,T04] ( 5, 5 ) struct ( 8) [fp+0x18] do-not-enreg[SF] ld-addr-op single-def <System.Reflection.Emit.OpCode>
; V02 arg2 [V02,T01] ( 11, 10 ) ref -> x20 class-hnd single-def <System.Reflection.MethodInfo>
; V03 arg3 [V03,T05] ( 5, 4.50) ref -> x21 class-hnd single-def <System.Type[]>
-; V04 loc0 [V04,T21] ( 2, 2 ) int -> x25
-; V05 loc1 [V05,T02] ( 11, 8.50) int -> x24
+; V04 loc0 [V04,T22] ( 2, 2 ) int -> x26
+; V05 loc1 [V05,T02] ( 11, 8.50) int -> x25
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V07 tmp1 [V07,T19] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <System.Reflection.Emit.SymbolMethod>
-; V08 tmp2 [V08,T33] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
-; V09 tmp3 [V09,T34] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
-; V10 tmp4 [V10,T35] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
+;* V07 tmp1 [V07,T20] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <System.Reflection.Emit.SymbolMethod>
+; V08 tmp2 [V08,T34] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
+; V09 tmp3 [V09,T35] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
+; V10 tmp4 [V10,T36] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
;* V11 tmp5 [V11 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Emit.OpCode>
;* V12 tmp6 [V12 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V13 tmp7 [V13 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Emit.OpCode>
;* V14 tmp8 [V14 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V15 tmp9 [V15 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Emit.OpCode>
;* V16 tmp10 [V16 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
-; V17 tmp11 [V17,T25] ( 3, 1.50) ref -> x27 class-hnd exact single-def "Inline stloc first use temp" <ubyte[]>
-; V18 tmp12 [V18,T27] ( 2, 1 ) int -> x1 "Inline return value spill temp"
-; V19 tmp13 [V19,T12] ( 3, 3 ) int -> x0 "Inlining Arg"
-; V20 tmp14 [V20,T13] ( 3, 3 ) int -> x1 "Inlining Arg"
+; V17 tmp11 [V17,T26] ( 3, 1.50) ref -> x28 class-hnd exact single-def "Inline stloc first use temp" <ubyte[]>
+; V18 tmp12 [V18,T28] ( 2, 1 ) int -> x1 "Inline return value spill temp"
+; V19 tmp13 [V19,T13] ( 3, 3 ) int -> x0 "Inlining Arg"
+; V20 tmp14 [V20,T14] ( 3, 3 ) int -> x1 "Inlining Arg"
;* V21 tmp15 [V21 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Emit.OpCode>
;* V22 tmp16 [V22 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V23 tmp17 [V23 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Emit.OpCode>
;* V24 tmp18 [V24 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
;* V25 tmp19 [V25 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.Span`1[ubyte]>
; V26 tmp20 [V26,T03] ( 5, 7 ) ref -> x0 class-hnd single-def "Inlining Arg" <ubyte[]>
; V27 tmp21 [V27,T06] ( 5, 6 ) int -> x1 "Inlining Arg"
;* V28 tmp22 [V28 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V29 tmp23 [V29 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
-; V30 tmp24 [V30,T20] ( 2, 2 ) byref -> x2 single-def "Inlining Arg"
-; V31 tmp25 [V31,T22] ( 2, 2 ) int -> x0 "Inlining Arg"
+; V30 tmp24 [V30,T21] ( 2, 2 ) byref -> x2 single-def "Inlining Arg"
+; V31 tmp25 [V31,T23] ( 2, 2 ) int -> x0 "Inlining Arg"
;* V32 tmp26 [V32 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
;* V33 tmp27 [V33 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V34 tmp28 [V34 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
-; V35 tmp29 [V35,T23] ( 2, 2 ) int -> x0 "field V11.m_value (fldOffset=0x0)" P-INDEP
+; V35 tmp29 [V35,T24] ( 2, 2 ) int -> x0 "field V11.m_value (fldOffset=0x0)" P-INDEP
;* V36 tmp30 [V36 ] ( 0, 0 ) int -> zero-ref "field V11.m_flags (fldOffset=0x4)" P-INDEP
-; V37 tmp31 [V37,T28] ( 2, 1 ) int -> x0 "field V13.m_value (fldOffset=0x0)" P-INDEP
+; V37 tmp31 [V37,T29] ( 2, 1 ) int -> x0 "field V13.m_value (fldOffset=0x0)" P-INDEP
;* V38 tmp32 [V38 ] ( 0, 0 ) int -> zero-ref "field V13.m_flags (fldOffset=0x4)" P-INDEP
-; V39 tmp33 [V39,T29] ( 2, 1 ) int -> x0 "field V15.m_value (fldOffset=0x0)" P-INDEP
+; V39 tmp33 [V39,T30] ( 2, 1 ) int -> x0 "field V15.m_value (fldOffset=0x0)" P-INDEP
;* V40 tmp34 [V40 ] ( 0, 0 ) int -> zero-ref "field V15.m_flags (fldOffset=0x4)" P-INDEP
-; V41 tmp35 [V41,T30] ( 2, 1 ) int -> x0 "field V21.m_value (fldOffset=0x0)" P-INDEP
+; V41 tmp35 [V41,T31] ( 2, 1 ) int -> x0 "field V21.m_value (fldOffset=0x0)" P-INDEP
;* V42 tmp36 [V42 ] ( 0, 0 ) int -> zero-ref "field V21.m_flags (fldOffset=0x4)" P-INDEP
;* V43 tmp37 [V43 ] ( 0, 0 ) int -> zero-ref "field V23.m_value (fldOffset=0x0)" P-INDEP
-; V44 tmp38 [V44,T24] ( 2, 2 ) int -> x0 "field V23.m_flags (fldOffset=0x4)" P-INDEP
+; V44 tmp38 [V44,T25] ( 2, 2 ) int -> x0 "field V23.m_flags (fldOffset=0x4)" P-INDEP
;* V45 tmp39 [V45 ] ( 0, 0 ) byref -> zero-ref single-def "field V24._reference (fldOffset=0x0)" P-INDEP
;* V46 tmp40 [V46 ] ( 0, 0 ) int -> zero-ref "field V24._length (fldOffset=0x8)" P-INDEP
-; V47 tmp41 [V47,T17] ( 3, 2 ) byref -> x2 "field V25._reference (fldOffset=0x0)" P-INDEP
-; V48 tmp42 [V48,T18] ( 3, 2 ) int -> x0 "field V25._length (fldOffset=0x8)" P-INDEP
-; V49 tmp43 [V49,T26] ( 2, 1 ) byref -> x2 single-def "field V28._reference (fldOffset=0x0)" P-INDEP
-; V50 tmp44 [V50,T31] ( 2, 1 ) int -> x0 "field V28._length (fldOffset=0x8)" P-INDEP
+; V47 tmp41 [V47,T18] ( 3, 2 ) byref -> x2 "field V25._reference (fldOffset=0x0)" P-INDEP
+; V48 tmp42 [V48,T19] ( 3, 2 ) int -> x0 "field V25._length (fldOffset=0x8)" P-INDEP
+; V49 tmp43 [V49,T27] ( 2, 1 ) byref -> x2 single-def "field V28._reference (fldOffset=0x0)" P-INDEP
+; V50 tmp44 [V50,T32] ( 2, 1 ) int -> x0 "field V28._length (fldOffset=0x8)" P-INDEP
;* V51 tmp45 [V51 ] ( 0, 0 ) byref -> zero-ref single-def "field V29._reference (fldOffset=0x0)" P-INDEP
;* V52 tmp46 [V52 ] ( 0, 0 ) int -> zero-ref "field V29._length (fldOffset=0x8)" P-INDEP
;* V53 tmp47 [V53 ] ( 0, 0 ) byref -> zero-ref single-def "field V33._reference (fldOffset=0x0)" P-INDEP
;* V54 tmp48 [V54 ] ( 0, 0 ) int -> zero-ref "field V33._length (fldOffset=0x8)" P-INDEP
;* V55 tmp49 [V55 ] ( 0, 0 ) byref -> zero-ref single-def "field V34._reference (fldOffset=0x0)" P-INDEP
;* V56 tmp50 [V56 ] ( 0, 0 ) int -> zero-ref "field V34._length (fldOffset=0x8)" P-INDEP
-; V57 tmp51 [V57,T10] ( 5, 3.50) int -> x22 "V01.[000..004)"
-; V58 tmp52 [V58,T11] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
-; V59 tmp53 [V59,T36] ( 2, 0 ) ref -> x20 single-def "argument with side effect"
-; V60 tmp54 [V60,T37] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
-; V61 tmp55 [V61,T38] ( 2, 0 ) ref -> x20 single-def "argument with side effect"
-; V62 tmp56 [V62,T39] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
-; V63 tmp57 [V63,T40] ( 2, 0 ) ref -> x20 single-def "argument with side effect"
-; V64 tmp58 [V64,T41] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
-;* V65 cse0 [V65,T32] ( 0, 0 ) long -> zero-ref "CSE #02: aggressive"
+; V57 tmp51 [V57,T10] ( 5, 3.50) int -> x23 "V01.[000..004)"
+; V58 tmp52 [V58,T12] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
+; V59 tmp53 [V59,T37] ( 2, 0 ) ref -> x20 single-def "argument with side effect"
+; V60 tmp54 [V60,T38] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
+; V61 tmp55 [V61,T39] ( 2, 0 ) ref -> x20 single-def "argument with side effect"
+; V62 tmp56 [V62,T40] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
+; V63 tmp57 [V63,T41] ( 2, 0 ) ref -> x20 single-def "argument with side effect"
+; V64 tmp58 [V64,T42] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
+;* V65 cse0 [V65,T33] ( 0, 0 ) long -> zero-ref "CSE #02: aggressive"
; V66 cse1 [V66,T08] ( 6, 4.50) int -> x1 "CSE #14: aggressive"
-; V67 cse2 [V67,T14] ( 3, 3 ) long -> x26 "CSE #13: moderate"
-; V68 cse3 [V68,T15] ( 3, 2.50) long -> x24 "CSE #09: moderate"
-; V69 cse4 [V69,T16] ( 3, 2.50) int -> x1 "CSE #12: moderate"
-; V70 cse5 [V70,T09] ( 5, 3.50) ref -> x26 "CSE #10: moderate"
-; V71 cse6 [V71,T07] ( 6, 5.50) long -> x23 "CSE #08: aggressive"
+; V67 cse2 [V67,T15] ( 3, 3 ) long -> x27 "CSE #13: moderate"
+; V68 cse3 [V68,T16] ( 3, 2.50) long -> x25 "CSE #09: moderate"
+; V69 cse4 [V69,T17] ( 3, 2.50) int -> x1 "CSE #12: moderate"
+; V70 cse5 [V70,T09] ( 5, 3.50) ref -> x27 "CSE #10: moderate"
+; V71 cse6 [V71,T07] ( 6, 5.50) long -> x24 "CSE #08: aggressive"
+; V72 cse7 [V72,T11] ( 5, 3.50) long -> x22 "CSE #03: moderate"
;
-; Lcl frame size = 8
+; Lcl frame size = 16
G_M31581_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]
+ 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]
mov fp, sp
- str x1, [fp, #0x10] // [V01 arg1]
+ str x1, [fp, #0x18] // [V01 arg1]
mov x19, x0
mov x20, x2
mov x21, x3
;; size=44 bbWeight=1 PerfScore 9.00
G_M31581_IG02:
mov x0, x20
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr w0, [x0]
tbz w0, #0, G_M31581_IG25
;; size=56 bbWeight=1 PerfScore 13.00
G_M31581_IG03:
- movz x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr w0, [x0]
- ldr w22, [fp, #0x10] // [V01 arg1]
+ movz x22, #0xD1FFAB1E // data for System.Reflection.Emit.OpCodes:Call
+ movk x22, #0xD1FFAB1E LSL #16
+ movk x22, #0xD1FFAB1E LSL #32
+ ldr w0, [x22]
+ ldr w23, [fp, #0x18] // [V01 arg1]
sxth w0, w0
- sxth w1, w22
+ sxth w1, w23
cmp w0, w1
beq G_M31581_IG05
- ;; size=32 bbWeight=1 PerfScore 8.50
+ ;; size=36 bbWeight=1 PerfScore 9.00
G_M31581_IG04:
- movz x0, #0xD1FFAB1E // data for System.Reflection.Emit.OpCodes:Callvirt
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr w0, [x0]
+ ldr w0, [x22, #0xD1FFAB1E]
sxth w0, w0
- sxth w1, w22
+ sxth w1, w23
cmp w0, w1
beq G_M31581_IG05
- movz x0, #0xD1FFAB1E // data for System.Reflection.Emit.OpCodes:Newobj
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr w0, [x0]
+ ldr w0, [x22, #0xD1FFAB1E]
sxth w0, w0
- sxth w1, w22
+ sxth w1, w23
cmp w0, w1
bne G_M31581_IG30
- ;; size=64 bbWeight=0.50 PerfScore 7.00
+ ;; size=40 bbWeight=0.50 PerfScore 5.50
G_M31581_IG05:
mov x0, x20
- ldr x23, [x20]
- ldr x1, [x23, #0x58]
+ ldr x24, [x20]
+ ldr x1, [x24, #0x58]
ldr x1, [x1, #0x28]
blr x1
cbnz w0, G_M31581_IG29
mov x0, x20
- ldr x24, [x23, #0x40]
- ldr x1, [x24, #0x38]
+ ldr x25, [x24, #0x40]
+ ldr x1, [x25, #0x38]
blr x1
cbz x0, G_M31581_IG07
;; size=44 bbWeight=1 PerfScore 20.00
G_M31581_IG06:
mov x0, x20
- ldr x1, [x24, #0x38]
+ ldr x1, [x25, #0x38]
blr x1
ldr x1, [x0]
ldr x1, [x1, #0xB0]
ldr x1, [x1]
blr x1
cbnz w0, G_M31581_IG28
;; size=32 bbWeight=0.50 PerfScore 7.75
G_M31581_IG07:
- mov w24, wzr
+ mov w25, wzr
mov x0, x19
mov x1, x20
mov x2, x21
movz x3, #0xD1FFAB1E // code for System.Reflection.Emit.DynamicILGenerator:GetMemberRefToken(System.Reflection.MethodInfo,System.Type[]):int:this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
- sxtw w25, w0
+ sxtw w26, w0
ldr w1, [x19, #0x58]
add w1, w1, #7
- ldr x26, [x19, #0x08]
- ldr w0, [x26, #0x08]
+ ldr x27, [x19, #0x08]
+ ldr w0, [x27, #0x08]
cmp w1, w0
blt G_M31581_IG09
;; size=64 bbWeight=1 PerfScore 19.00
G_M31581_IG08:
- ldr w0, [x26, #0x08]
+ ldr w0, [x27, #0x08]
lsl w0, w0, #1
cmp w0, w1
csel w1, w0, w1, ge
sxtw x1, w1
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWARR_1_VC
- mov x27, x0
- ldr w2, [x26, #0x08]
- mov x0, x26
- mov x1, x27
+ mov x28, x0
+ ldr w2, [x27, #0x08]
+ mov x0, x27
+ mov x1, x28
movz x3, #0xD1FFAB1E // code for System.Array:Copy(System.Array,System.Array,int)
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
add x14, x19, #8
- mov x15, x27
+ mov x15, x28
bl CORINFO_HELP_ASSIGN_REF
;; size=84 bbWeight=0.50 PerfScore 10.00
G_M31581_IG09:
mov x0, x19
- ldr x1, [fp, #0x10] // [V01 arg1]
+ ldr x1, [fp, #0x18] // [V01 arg1]
movz x2, #0xD1FFAB1E // code for System.Reflection.Emit.RuntimeILGenerator:InternalEmit(System.Reflection.Emit.OpCode):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x0, x20
- ldr x26, [x23, #0x60]
- ldr x1, [x26, #0x28]
+ ldr x27, [x24, #0x60]
+ ldr x1, [x27, #0x28]
blr x1
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
mov w2, #1
cmp x0, x1
- csel w24, w24, w2, eq
+ csel w25, w25, w2, eq
mov x0, x20
- ldr x1, [x26, #0x18]
+ ldr x1, [x27, #0x18]
blr x1
ldr w0, [x0, #0x08]
- sub w24, w24, w0
+ sub w25, w25, w0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- cmp x23, x0
+ cmp x24, x0
beq G_M31581_IG11
;; size=108 bbWeight=1 PerfScore 29.50
G_M31581_IG10:
mov x0, x20
- ldr x1, [x23, #0x50]
+ ldr x1, [x24, #0x50]
ldr x1, [x1, #0x20]
blr x1
tbnz w0, #4, G_M31581_IG11
- movz x0, #0xD1FFAB1E // data for System.Reflection.Emit.OpCodes:Newobj
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr w0, [x0]
+ ldr w0, [x22, #0xD1FFAB1E]
sxth w0, w0
- sxth w1, w22
- sub w2, w24, #1
+ sxth w1, w23
+ sub w2, w25, #1
cmp w0, w1
- csel w24, w24, w2, eq
- ;; size=56 bbWeight=0.50 PerfScore 7.75
+ csel w25, w25, w2, eq
+ ;; size=44 bbWeight=0.50 PerfScore 7.00
G_M31581_IG11:
cbz x21, G_M31581_IG13
;; size=4 bbWeight=1 PerfScore 1.00
G_M31581_IG12:
ldr w0, [x21, #0x08]
- sub w24, w24, w0
+ sub w25, w25, w0
;; size=8 bbWeight=0.50 PerfScore 1.75
G_M31581_IG13:
- ldr w0, [fp, #0x14] // [V01 arg1+0x04]
+ ldr w0, [fp, #0x1C] // [V01 arg1+0x04]
ldr w1, [x19, #0x74]
tbz w1, #31, G_M31581_IG15
;; size=12 bbWeight=1 PerfScore 6.00
G_M31581_IG14:
str wzr, [x19, #0x74]
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M31581_IG15:
ldr w1, [x19, #0x74]
- add w1, w1, w24
+ add w1, w1, w25
str w1, [x19, #0x74]
tbnz w1, #31, G_M31581_IG17
;; size=16 bbWeight=1 PerfScore 5.50
G_M31581_IG16:
ldr w2, [x19, #0x7C]
cmp w2, w1
bge G_M31581_IG18
str w1, [x19, #0x7C]
b G_M31581_IG18
;; size=20 bbWeight=0.50 PerfScore 3.25
G_M31581_IG17:
ldr x2, [x19, #0x50]
sub x1, x2, w1, SXTW
str x1, [x19, #0x50]
str wzr, [x19, #0x74]
;; size=16 bbWeight=0.50 PerfScore 3.00
G_M31581_IG18:
ldr w1, [x19, #0x74]
str w1, [x19, #0x78]
tbz w0, #24, G_M31581_IG20
;; size=12 bbWeight=1 PerfScore 5.00
G_M31581_IG19:
movn w0, #0
str w0, [x19, #0x74]
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M31581_IG20:
ldr x0, [x19, #0x08]
ldr w1, [x19, #0x58]
cbz x0, G_M31581_IG22
;; size=12 bbWeight=1 PerfScore 7.00
G_M31581_IG21:
ldr w2, [x0, #0x08]
cmp w2, w1
blo G_M31581_IG27
add x2, x0, #16
mov w3, w1
add x2, x2, x3
ldr w0, [x0, #0x08]
sub w0, w0, w1
b G_M31581_IG23
;; size=36 bbWeight=0.50 PerfScore 5.25
G_M31581_IG22:
cbnz w1, G_M31581_IG27
mov x2, xzr
mov w0, wzr
;; size=12 bbWeight=0.50 PerfScore 1.00
G_M31581_IG23:
cmp w0, #4
blo G_M31581_IG26
- str w25, [x2]
+ str w26, [x2]
ldr w0, [x19, #0x58]
add w0, w0, #4
str w0, [x19, #0x58]
;; size=24 bbWeight=1 PerfScore 7.00
G_M31581_IG24:
- 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
+ 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=1 PerfScore 8.00
+ ;; size=28 bbWeight=1 PerfScore 7.00
G_M31581_IG25:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov w1, #0xD1FFAB1E
bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
b G_M31581_IG03
;; size=24 bbWeight=0 PerfScore 0.00
G_M31581_IG26:
mov w0, #40
movz x1, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRangeException(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_M31581_IG27:
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
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_M31581_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_GenericsInvalid():System.String
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
mov x20, x0
movz w0, #0xD1FFAB1E
movk w0, #1 LSL #16
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_STRCNS
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=112 bbWeight=0 PerfScore 0.00
G_M31581_IG29:
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_GenericsInvalid():System.String
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
mov x20, x0
movz w0, #0xD1FFAB1E
movk w0, #1 LSL #16
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_STRCNS
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=112 bbWeight=0 PerfScore 0.00
G_M31581_IG30:
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_NotMethodCallOpcode():System.String
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
mov x20, x0
movz w0, #0xD1FFAB1E
movk w0, #1 LSL #16
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_STRCNS
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=112 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1208, prolog size 28, PerfScore 186.50, instruction count 302, allocated bytes for code 1208 (MethodHash=414f84a2) for method System.Reflection.Emit.DynamicILGenerator:EmitCall(System.Reflection.Emit.OpCode,System.Reflection.MethodInfo,System.Type[]):this (FullOpts)
+; Total bytes of code 1176, prolog size 28, PerfScore 183.75, instruction count 294, allocated bytes for code 1176 (MethodHash=414f84a2) for method System.Reflection.Emit.DynamicILGenerator:EmitCall(System.Reflection.Emit.OpCode,System.Reflection.MethodInfo,System.Type[]):this (FullOpts)
-28 (-1.81 % of base) - Microsoft.VisualBasic.VBCodeGenerator:GenerateEvent(System.CodeDom.CodeMemberEvent,System.CodeDom.CodeTypeDeclaration):this
; Assembly listing for method Microsoft.VisualBasic.VBCodeGenerator:GenerateEvent(System.CodeDom.CodeMemberEvent,System.CodeDom.CodeTypeDeclaration):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; 22 single block inlinees; 7 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T04] ( 19, 26.50) ref -> x19 this class-hnd single-def <Microsoft.VisualBasic.VBCodeGenerator>
; V01 arg1 [V01,T10] ( 15, 8.50) ref -> x20 class-hnd single-def <System.CodeDom.CodeMemberEvent>
;* V02 arg2 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.CodeDom.CodeTypeDeclaration>
; V03 loc0 [V03,T11] ( 5, 16.50) ref -> x22 class-hnd exact single-def <System.String>
-; V04 loc1 [V04,T37] ( 2, 1 ) ref -> x0 class-hnd single-def <System.String>
+; V04 loc1 [V04,T36] ( 2, 1 ) ref -> x0 class-hnd single-def <System.String>
; V05 loc2 [V05,T18] ( 3, 6.50) ubyte -> x21
-; V06 loc3 [V06,T15] ( 6, 9 ) ref -> [fp+0x18] class-hnd EH-live spill-single-def <System.Collections.IEnumerator>
-; V07 loc4 [V07,T17] ( 2, 8 ) ref -> x24 class-hnd <System.CodeDom.CodeTypeReference>
-; V08 loc5 [V08,T33] ( 6, 1.50) ref -> x0 class-hnd <System.IDisposable>
+; V06 loc3 [V06,T15] ( 6, 9 ) ref -> [fp+0x10] class-hnd EH-live spill-single-def <System.Collections.IEnumerator>
+; V07 loc4 [V07,T17] ( 2, 8 ) ref -> x23 class-hnd <System.CodeDom.CodeTypeReference>
+; V08 loc5 [V08,T32] ( 6, 1.50) ref -> x0 class-hnd <System.IDisposable>
;# V09 OutArgs [V09 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V10 tmp1 [V10,T25] ( 2, 2 ) ref -> x1 class-hnd single-def "impAppendStmt" <System.CodeDom.CodeTypeReference>
-;* V11 tmp2 [V11,T39] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V12 tmp3 [V12,T36] ( 2, 1 ) ubyte -> x0 "Inline return value spill temp"
+; V10 tmp1 [V10,T24] ( 2, 2 ) ref -> x1 class-hnd single-def "impAppendStmt" <System.CodeDom.CodeTypeReference>
+;* V11 tmp2 [V11,T38] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V12 tmp3 [V12,T35] ( 2, 1 ) ubyte -> x0 "Inline return value spill temp"
;* V13 tmp4 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.CodeDom.CodeTypeDeclaration>
;* V14 tmp5 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.CodeDom.CodeAttributeDeclarationCollection>
-; V15 tmp6 [V15,T26] ( 2, 2 ) ref -> x21 class-hnd exact single-def "dup spill" <System.String>
-; V16 tmp7 [V16,T20] ( 6, 3 ) ref -> x21
-; V17 tmp8 [V17,T27] ( 2, 2 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String>
-; V18 tmp9 [V18,T23] ( 5, 2.50) ref -> x2
-; V19 tmp10 [V19,T28] ( 2, 2 ) ref -> x15 class-hnd exact single-def "Inlining Arg" <System.String>
-; V20 tmp11 [V20,T29] ( 2, 2 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String>
-; V21 tmp12 [V21,T24] ( 5, 2.50) ref -> x2
-; V22 tmp13 [V22,T30] ( 2, 2 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.CodeDom.CodeTypeReferenceCollection>
+; V15 tmp6 [V15,T25] ( 2, 2 ) ref -> x21 class-hnd exact single-def "dup spill" <System.String>
+; V16 tmp7 [V16,T19] ( 6, 3 ) ref -> x21
+; V17 tmp8 [V17,T26] ( 2, 2 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String>
+; V18 tmp9 [V18,T22] ( 5, 2.50) ref -> x2
+; V19 tmp10 [V19,T27] ( 2, 2 ) ref -> x15 class-hnd exact single-def "Inlining Arg" <System.String>
+; V20 tmp11 [V20,T28] ( 2, 2 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String>
+; V21 tmp12 [V21,T23] ( 5, 2.50) ref -> x2
+; V22 tmp13 [V22,T29] ( 2, 2 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.CodeDom.CodeTypeReferenceCollection>
;* V23 tmp14 [V23 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
-; V24 tmp15 [V24,T06] ( 2, 16 ) ref -> x24 class-hnd exact "impAppendStmt" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
+; V24 tmp15 [V24,T06] ( 2, 16 ) ref -> x23 class-hnd exact "impAppendStmt" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
; V25 tmp16 [V25,T16] ( 3, 14 ) ref -> x1 class-hnd "Inline return value spill temp" <System.String>
; V26 tmp17 [V26,T09] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
; V27 tmp18 [V27,T12] ( 3, 10 ) int -> x1 "Inline stloc first use temp"
; V28 tmp19 [V28,T00] ( 2, 40 ) ref -> x0 class-hnd exact "Inlining Arg" <System.String[][]>
; V29 tmp20 [V29,T02] ( 3, 34 ) ref -> x0 class-hnd exact "Inline stloc first use temp" <System.String[]>
-; V30 tmp21 [V30,T31] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
-; V31 tmp22 [V31,T32] ( 2, 2 ) ref -> x0 single-def "argument with side effect"
-; V32 tmp23 [V32,T22] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
+; V30 tmp21 [V30,T30] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
+; V31 tmp22 [V31,T31] ( 2, 2 ) ref -> x0 single-def "argument with side effect"
+; V32 tmp23 [V32,T21] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
; V33 tmp24 [V33,T05] ( 3, 18 ) ref -> x0 "argument with side effect"
; V34 tmp25 [V34,T07] ( 2, 16 ) ref -> x1 "argument with side effect"
-; V35 tmp26 [V35,T08] ( 2, 16 ) ref -> x25 "argument with side effect"
-; V36 PSPSym [V36,T38] ( 1, 1 ) long -> [fp+0x20] do-not-enreg[V] "PSPSym"
-; V37 cse0 [V37,T34] ( 3, 1.50) ref -> x0 "CSE #02: moderate"
-; V38 cse1 [V38,T19] ( 2, 4.25) ref -> x23 hoist "CSE #07: aggressive"
-; V39 cse2 [V39,T21] ( 4, 3 ) ref -> x21 "CSE #01: moderate"
-; V40 cse3 [V40,T35] ( 3, 1.50) ref -> x1 "CSE #03: conservative"
-; V41 cse4 [V41,T01] ( 4, 36 ) int -> x1 "CSE #08: aggressive"
-; V42 cse5 [V42,T14] ( 7, 9.50) long -> x20 multi-def "CSE #05: aggressive"
-; V43 rat0 [V43,T03] ( 5, 30 ) ref -> x24 "replacement local"
-; V44 rat1 [V44,T13] ( 3, 10 ) long -> x2 "CSE for expectedClsNode"
+; V35 tmp26 [V35,T08] ( 2, 16 ) ref -> x24 "argument with side effect"
+; V36 PSPSym [V36,T37] ( 1, 1 ) long -> [fp+0x18] do-not-enreg[V] "PSPSym"
+; V37 cse0 [V37,T33] ( 3, 1.50) ref -> x0 "CSE #02: moderate"
+; V38 cse1 [V38,T20] ( 4, 3 ) ref -> x21 "CSE #01: moderate"
+; V39 cse2 [V39,T34] ( 3, 1.50) ref -> x1 "CSE #03: moderate"
+; V40 cse3 [V40,T01] ( 4, 36 ) int -> x1 "CSE #06: aggressive"
+; V41 cse4 [V41,T14] ( 7, 9.50) long -> x20 multi-def "CSE #05: aggressive"
+; V42 rat0 [V42,T03] ( 5, 30 ) ref -> x23 "replacement local"
+; V43 rat1 [V43,T13] ( 3, 10 ) long -> x2 "CSE for expectedClsNode"
;
-; Lcl frame size = 24
+; Lcl frame size = 16
G_M61698_IG01:
- stp fp, lr, [sp, #-0x60]!
- stp x19, x20, [sp, #0x28]
- stp x21, x22, [sp, #0x38]
- stp x23, x24, [sp, #0x48]
- str x25, [sp, #0x58]
+ stp fp, lr, [sp, #-0x50]!
+ stp x19, x20, [sp, #0x20]
+ stp x21, x22, [sp, #0x30]
+ stp x23, x24, [sp, #0x40]
mov fp, sp
- add x3, sp, #96
- str x3, [fp, #0x20] // [V36 PSPSym]
+ add x3, sp, #80
+ str x3, [fp, #0x18] // [V36 PSPSym]
mov x19, x0
mov x20, x1
- ;; size=40 bbWeight=1 PerfScore 8.00
+ ;; size=36 bbWeight=1 PerfScore 7.00
G_M61698_IG02:
ldr x21, [x19, #0x18]
cbz x21, G_M61698_IG05
;; size=8 bbWeight=1 PerfScore 4.00
G_M61698_IG03:
mov x1, x21
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFCLASS
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbnz x0, G_M61698_IG04
cbnz x0, G_M61698_IG05
ldrb w0, [x21, #0x74]
cbz w0, G_M61698_IG05
;; size=52 bbWeight=0.50 PerfScore 6.75
G_M61698_IG04:
- ldr x25, [sp, #0x58]
- ldp x23, x24, [sp, #0x48]
- ldp x21, x22, [sp, #0x38]
- ldp x19, x20, [sp, #0x28]
- ldp fp, lr, [sp], #0x60
+ ldp x23, x24, [sp, #0x40]
+ ldp x21, x22, [sp, #0x30]
+ ldp x19, x20, [sp, #0x20]
+ ldp fp, lr, [sp], #0x50
ret lr
- ;; size=24 bbWeight=0.50 PerfScore 3.50
+ ;; size=20 bbWeight=0.50 PerfScore 2.50
G_M61698_IG05:
mov x0, x20
movz x1, #0xD1FFAB1E // code for System.CodeDom.CodeTypeMember:get_CustomAttributes():System.CodeDom.CodeAttributeDeclarationCollection:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
movz x1, #0xD1FFAB1E // code for System.Collections.CollectionBase:get_Count():int:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
cmp w0, #0
ble G_M61698_IG06
mov x0, x20
movz x1, #0xD1FFAB1E // code for System.CodeDom.CodeTypeMember:get_CustomAttributes():System.CodeDom.CodeAttributeDeclarationCollection:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
mov x1, x0
mov x0, x19
mov w2, wzr
mov x3, xzr
mov w4, wzr
movz x5, #0xD1FFAB1E // code for Microsoft.VisualBasic.VBCodeGenerator:OutputAttributes(System.CodeDom.CodeAttributeDeclarationCollection,ubyte,System.String,ubyte):this
movk x5, #0xD1FFAB1E LSL #16
movk x5, #0xD1FFAB1E LSL #32
ldr x5, [x5]
blr x5
;; size=124 bbWeight=0.50 PerfScore 16.50
G_M61698_IG06:
ldr x21, [x20, #0x10]
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
cmp x21, #0
csel x21, x21, x1, ne
mov x22, x21
ldr x1, [x20, #0x58]
cbz x1, G_M61698_IG07
mov x0, x19
mov w2, wzr
movz x3, #0xD1FFAB1E // code for Microsoft.VisualBasic.VBCodeGenerator:GetBaseTypeOutput(System.CodeDom.CodeTypeReference,ubyte):System.String:this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov w1, #46
mov w2, #95
movz x3, #0xD1FFAB1E // code for System.String:Replace(ushort,ushort):System.String:this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
ldr wzr, [x0]
blr x3
ldr x2, [x20, #0x10]
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
cmp x2, #0
csel x2, x2, x1, ne
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x3, #0xD1FFAB1E // code for System.String:Concat(System.String,System.String,System.String):System.String
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x15, x0
add x14, x20, #16
bl CORINFO_HELP_ASSIGN_REF
;; size=164 bbWeight=0.50 PerfScore 20.25
G_M61698_IG07:
ldr w1, [x20, #0x40]
mov x0, x19
movz x2, #0xD1FFAB1E // code for Microsoft.VisualBasic.VBCodeGenerator:OutputMemberAccessModifier(int):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
ldr x0, [x19, #0x08]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:Write(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
mov x0, x20
movz x1, #0xD1FFAB1E // code for System.CodeDom.CodeMemberEvent:get_Type():System.CodeDom.CodeTypeReference:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
mov x1, x0
ldr x2, [x20, #0x10]
movz x0, #8
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
cmp x2, #0
csel x2, x2, x0, ne
mov x0, x19
movz x3, #0xD1FFAB1E // code for Microsoft.VisualBasic.VBCodeGenerator:OutputTypeNamePair(System.CodeDom.CodeTypeReference,System.String):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x0, x20
movz x1, #0xD1FFAB1E // code for System.CodeDom.CodeMemberEvent:get_ImplementationTypes():System.CodeDom.CodeTypeReferenceCollection:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
movz x1, #0xD1FFAB1E // code for System.Collections.CollectionBase:get_Count():int:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
cmp w0, #0
bgt G_M61698_IG08
ldr x0, [x20, #0x58]
- cbz x0, G_M61698_IG25
+ cbz x0, G_M61698_IG24
ldr x0, [x19, #0x08]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:Write(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
ldr x1, [x20, #0x58]
mov x0, x19
movz x2, #0xD1FFAB1E // code for Microsoft.VisualBasic.VBCodeGenerator:OutputType(System.CodeDom.CodeTypeReference):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
ldr x0, [x19, #0x08]
mov w1, #46
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:Write(ushort):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
mov x0, x19
mov x1, x21
movz x2, #0xD1FFAB1E // code for Microsoft.VisualBasic.VBCodeGenerator:OutputIdentifier(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- b G_M61698_IG25
+ b G_M61698_IG24
;; size=340 bbWeight=0.50 PerfScore 50.75
G_M61698_IG08:
ldr x0, [x19, #0x08]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:Write(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
mov w21, #1
mov x0, x20
movz x1, #0xD1FFAB1E // code for System.CodeDom.CodeMemberEvent:get_ImplementationTypes():System.CodeDom.CodeTypeReferenceCollection:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
ldr x0, [x0, #0x08]
ldr x1, [x0]
ldr x1, [x1, #0x58]
ldr x1, [x1]
blr x1
mov x1, x0
- str x1, [fp, #0x18] // [V06 loc3]
+ str x1, [fp, #0x10] // [V06 loc3]
;; size=96 bbWeight=0.50 PerfScore 17.00
G_M61698_IG09:
mov x0, x1
movz x20, #0xD1FFAB1E
movk x20, #0xD1FFAB1E LSL #16
movk x20, #0xD1FFAB1E LSL #32
mov x11, x20
ldr xip0, [x11]
blr xip0
- cbz w0, G_M61698_IG24
+ cbz w0, G_M61698_IG23
;; size=32 bbWeight=0.50 PerfScore 3.75
G_M61698_IG10:
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr x23, [x0]
- ;; size=16 bbWeight=0.25 PerfScore 1.12
-G_M61698_IG11:
- ldr x0, [fp, #0x18] // [V06 loc3]
+ ldr x0, [fp, #0x10] // [V06 loc3]
add x11, x20, #8
ldr xip0, [x11]
blr xip0
- mov x24, x0
- cbz x24, G_M61698_IG14
+ mov x23, x0
+ cbz x23, G_M61698_IG13
;; size=24 bbWeight=4 PerfScore 32.00
-G_M61698_IG12:
+G_M61698_IG11:
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
- ldr x1, [x24]
+ ldr x1, [x23]
cmp x1, x2
- beq G_M61698_IG14
+ beq G_M61698_IG13
;; size=24 bbWeight=2 PerfScore 12.00
-G_M61698_IG13:
+G_M61698_IG12:
mov x1, x0
mov x0, x2
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_CHKCASTCLASS_SPECIAL
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- mov x24, x0
+ mov x23, x0
;; size=32 bbWeight=1 PerfScore 7.00
-G_M61698_IG14:
- cbnz w21, G_M61698_IG16
+G_M61698_IG13:
+ cbnz w21, G_M61698_IG15
;; size=4 bbWeight=4 PerfScore 4.00
-G_M61698_IG15:
+G_M61698_IG14:
ldr x0, [x19, #0x08]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:Write(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
- b G_M61698_IG17
+ b G_M61698_IG16
;; size=44 bbWeight=2 PerfScore 28.00
-G_M61698_IG16:
+G_M61698_IG15:
mov w21, wzr
;; size=4 bbWeight=2 PerfScore 1.00
-G_M61698_IG17:
- ldr x25, [x19, #0x08]
+G_M61698_IG16:
+ ldr x24, [x19, #0x08]
mov x0, x19
- mov x1, x24
+ mov x1, x23
movz x2, #0xD1FFAB1E // code for Microsoft.VisualBasic.VBCodeGenerator:GetTypeOutputWithoutArrayPostFix(System.CodeDom.CodeTypeReference):System.String:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x1, x0
- mov x0, x25
+ mov x0, x24
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:Write(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
ldr x0, [x19, #0x08]
mov w1, #46
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:Write(ushort):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
- ldr x24, [x19, #0x08]
- mov x0, x23
+ ldr x23, [x19, #0x08]
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #32
+ ldr x0, [x0]
ldr w1, [x22, #0x08]
cmp w1, #0
- ble G_M61698_IG21
- ;; size=116 bbWeight=4 PerfScore 156.00
-G_M61698_IG18:
+ ble G_M61698_IG20
+ ;; size=124 bbWeight=4 PerfScore 170.00
+G_M61698_IG17:
sub w1, w1, #1
cmp w1, #16
- bge G_M61698_IG21
+ bge G_M61698_IG20
;; size=12 bbWeight=2 PerfScore 4.00
-G_M61698_IG19:
+G_M61698_IG18:
cmp w1, #16
- bhs G_M61698_IG23
+ bhs G_M61698_IG22
add x0, x0, #16
ldr x0, [x0, w1, UXTW #3]
- cbz x0, G_M61698_IG21
+ cbz x0, G_M61698_IG20
;; size=20 bbWeight=16 PerfScore 96.00
-G_M61698_IG20:
+G_M61698_IG19:
mov x1, x22
mov w2, #1
movz x3, #0xD1FFAB1E // code for System.Collections.Specialized.FixedStringLookup:Contains(System.String[],System.String,ubyte):ubyte
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
- cbz w0, G_M61698_IG21
+ cbz w0, G_M61698_IG20
mov x1, x22
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
movz x3, #0xD1FFAB1E // code for System.String:Concat(System.String,System.String,System.String):System.String
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x1, x0
- b G_M61698_IG22
+ b G_M61698_IG21
;; size=88 bbWeight=2 PerfScore 36.00
-G_M61698_IG21:
+G_M61698_IG20:
mov x1, x22
;; size=4 bbWeight=8 PerfScore 4.00
-G_M61698_IG22:
- mov x0, x24
+G_M61698_IG21:
+ mov x0, x23
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:Write(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
- ldr x0, [fp, #0x18] // [V06 loc3]
+ ldr x0, [fp, #0x10] // [V06 loc3]
mov x11, x20
ldr xip0, [x11]
blr xip0
- cbnz w0, G_M61698_IG11
- b G_M61698_IG24
+ cbnz w0, G_M61698_IG10
+ b G_M61698_IG23
;; size=52 bbWeight=4 PerfScore 70.00
-G_M61698_IG23:
+G_M61698_IG22:
bl CORINFO_HELP_RNGCHKFAIL
brk_unix #0
;; size=8 bbWeight=0 PerfScore 0.00
-G_M61698_IG24:
- ldr x1, [fp, #0x18] // [V06 loc3]
+G_M61698_IG23:
+ ldr x1, [fp, #0x10] // [V06 loc3]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFINTERFACE
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbz x0, G_M61698_IG25
+ cbz x0, G_M61698_IG24
add x11, x20, #16
ldr xip0, [x11]
blr xip0
;; size=52 bbWeight=0.50 PerfScore 7.25
-G_M61698_IG25:
+G_M61698_IG24:
ldr x0, [x19, #0x08]
movz x1, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:WriteLine():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
;; size=24 bbWeight=0.50 PerfScore 5.25
-G_M61698_IG26:
- ldr x25, [sp, #0x58]
- ldp x23, x24, [sp, #0x48]
- ldp x21, x22, [sp, #0x38]
- ldp x19, x20, [sp, #0x28]
- ldp fp, lr, [sp], #0x60
+G_M61698_IG25:
+ ldp x23, x24, [sp, #0x40]
+ ldp x21, x22, [sp, #0x30]
+ ldp x19, x20, [sp, #0x20]
+ ldp fp, lr, [sp], #0x50
br x1
- ;; size=24 bbWeight=0.50 PerfScore 3.50
-G_M61698_IG27:
+ ;; size=20 bbWeight=0.50 PerfScore 2.50
+G_M61698_IG26:
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, #96
- str x3, [sp, #0x10]
- ;; size=28 bbWeight=0 PerfScore 0.00
-G_M61698_IG28:
- ldr x1, [fp, #0x18] // [V06 loc3]
+ stp x19, x20, [sp, #0x20]
+ stp x21, x22, [sp, #0x30]
+ stp x23, x24, [sp, #0x40]
+ add x3, fp, #80
+ str x3, [sp, #0x18]
+ ;; size=24 bbWeight=0 PerfScore 0.00
+G_M61698_IG27:
+ ldr x1, [fp, #0x10] // [V06 loc3]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFINTERFACE
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbz x0, G_M61698_IG29
+ cbz x0, G_M61698_IG28
movz x20, #0xD1FFAB1E
movk x20, #0xD1FFAB1E LSL #16
movk x20, #0xD1FFAB1E LSL #32
add x11, x20, #16
ldr xip0, [x11]
blr xip0
;; size=64 bbWeight=0 PerfScore 0.00
-G_M61698_IG29:
- ldr x25, [sp, #0x48]
- ldp x23, x24, [sp, #0x38]
- ldp x21, x22, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
+G_M61698_IG28:
+ ldp x23, x24, [sp, #0x40]
+ ldp x21, x22, [sp, #0x30]
+ ldp x19, x20, [sp, #0x20]
ldp fp, lr, [sp], #0x50
ret lr
- ;; size=24 bbWeight=0 PerfScore 0.00
+ ;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1544, prolog size 40, PerfScore 597.62, instruction count 386, allocated bytes for code 1544 (MethodHash=f6220efd) for method Microsoft.VisualBasic.VBCodeGenerator:GenerateEvent(System.CodeDom.CodeMemberEvent,System.CodeDom.CodeTypeDeclaration):this (FullOpts)
+; Total bytes of code 1516, prolog size 36, PerfScore 607.50, instruction count 379, allocated bytes for code 1516 (MethodHash=f6220efd) for method Microsoft.VisualBasic.VBCodeGenerator:GenerateEvent(System.CodeDom.CodeMemberEvent,System.CodeDom.CodeTypeDeclaration):this (FullOpts)
-28 (-0.97 % of base) - Microsoft.VisualBasic.VBCodeGenerator:GenerateMethod(System.CodeDom.CodeMemberMethod,System.CodeDom.CodeTypeDeclaration):this
; Assembly listing for method Microsoft.VisualBasic.VBCodeGenerator:GenerateMethod(System.CodeDom.CodeMemberMethod,System.CodeDom.CodeTypeDeclaration):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; 54 single block inlinees; 15 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T01] ( 37, 35.50) ref -> x19 this class-hnd single-def <Microsoft.VisualBasic.VBCodeGenerator>
; V01 arg1 [V01,T05] ( 30, 16 ) ref -> x20 class-hnd single-def <System.CodeDom.CodeMemberMethod>
; V02 arg2 [V02,T20] ( 3, 2.50) ref -> x21 class-hnd single-def <System.CodeDom.CodeTypeDeclaration>
; V03 loc0 [V03,T11] ( 7, 17.50) ref -> x22 class-hnd exact single-def <System.String>
-; V04 loc1 [V04,T34] ( 4, 2 ) ubyte -> x21
-; V05 loc2 [V05,T60] ( 2, 1 ) ref -> x0 class-hnd single-def <System.String>
+; V04 loc1 [V04,T33] ( 4, 2 ) ubyte -> x21
+; V05 loc2 [V05,T59] ( 2, 1 ) ref -> x0 class-hnd single-def <System.String>
; V06 loc3 [V06,T18] ( 3, 6.50) ubyte -> x23
-; V07 loc4 [V07,T15] ( 6, 9 ) ref -> [fp+0x18] class-hnd EH-live spill-single-def <System.Collections.IEnumerator>
-; V08 loc5 [V08,T17] ( 2, 8 ) ref -> x26 class-hnd <System.CodeDom.CodeTypeReference>
-; V09 loc6 [V09,T54] ( 6, 1.50) ref -> x0 class-hnd <System.IDisposable>
-; V10 loc7 [V10,T35] ( 4, 2 ) int -> x23
+; V07 loc4 [V07,T15] ( 6, 9 ) ref -> [fp+0x10] class-hnd EH-live spill-single-def <System.Collections.IEnumerator>
+; V08 loc5 [V08,T17] ( 2, 8 ) ref -> x25 class-hnd <System.CodeDom.CodeTypeReference>
+; V09 loc6 [V09,T53] ( 6, 1.50) ref -> x0 class-hnd <System.IDisposable>
+; V10 loc7 [V10,T34] ( 4, 2 ) int -> x23
;# V11 OutArgs [V11 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V12 tmp1 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.String>
-; V13 tmp2 [V13,T57] ( 2, 1 ) ubyte -> x0 "Inline return value spill temp"
-; V14 tmp3 [V14,T58] ( 3, 1.50) ubyte -> x0 "Inline return value spill temp"
-; V15 tmp4 [V15,T22] ( 4, 4 ) ref -> x1 class-hnd single-def "Inlining Arg" <System.CodeDom.CodeTypeDeclaration>
-; V16 tmp5 [V16,T59] ( 2, 1 ) ubyte -> x1 "Inline return value spill temp"
+; V13 tmp2 [V13,T56] ( 2, 1 ) ubyte -> x0 "Inline return value spill temp"
+; V14 tmp3 [V14,T57] ( 3, 1.50) ubyte -> x0 "Inline return value spill temp"
+; V15 tmp4 [V15,T21] ( 4, 4 ) ref -> x1 class-hnd single-def "Inlining Arg" <System.CodeDom.CodeTypeDeclaration>
+; V16 tmp5 [V16,T58] ( 2, 1 ) ubyte -> x1 "Inline return value spill temp"
;* V17 tmp6 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.CodeDom.CodeTypeDeclaration>
-;* V18 tmp7 [V18,T64] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V19 tmp8 [V19,T36] ( 2, 2 ) ref -> x22 class-hnd single-def "Inlining Arg" <System.CodeDom.CodeTypeDeclaration>
+;* V18 tmp7 [V18,T63] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V19 tmp8 [V19,T35] ( 2, 2 ) ref -> x22 class-hnd single-def "Inlining Arg" <System.CodeDom.CodeTypeDeclaration>
;* V20 tmp9 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.CodeDom.CodeAttributeDeclarationCollection>
-; V21 tmp10 [V21,T37] ( 2, 2 ) ref -> x22 class-hnd exact single-def "dup spill" <System.String>
-; V22 tmp11 [V22,T28] ( 5, 2.50) ref -> x22
-; V23 tmp12 [V23,T38] ( 2, 2 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String>
-; V24 tmp13 [V24,T29] ( 5, 2.50) ref -> x2
-; V25 tmp14 [V25,T39] ( 2, 2 ) ref -> x15 class-hnd exact single-def "Inlining Arg" <System.String>
-;* V26 tmp15 [V26,T65] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V27 tmp16 [V27,T40] ( 2, 2 ) ref -> x23 class-hnd single-def "Inlining Arg" <System.CodeDom.CodeTypeDeclaration>
+; V21 tmp10 [V21,T36] ( 2, 2 ) ref -> x22 class-hnd exact single-def "dup spill" <System.String>
+; V22 tmp11 [V22,T27] ( 5, 2.50) ref -> x22
+; V23 tmp12 [V23,T37] ( 2, 2 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String>
+; V24 tmp13 [V24,T28] ( 5, 2.50) ref -> x2
+; V25 tmp14 [V25,T38] ( 2, 2 ) ref -> x15 class-hnd exact single-def "Inlining Arg" <System.String>
+;* V26 tmp15 [V26,T64] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V27 tmp16 [V27,T39] ( 2, 2 ) ref -> x23 class-hnd single-def "Inlining Arg" <System.CodeDom.CodeTypeDeclaration>
;* V28 tmp17 [V28 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V29 tmp18 [V29 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V30 tmp19 [V30,T41] ( 2, 2 ) ref -> x1 class-hnd exact single-def "dup spill" <System.String>
-; V31 tmp20 [V31,T30] ( 5, 2.50) ref -> x1
+; V30 tmp19 [V30,T40] ( 2, 2 ) ref -> x1 class-hnd exact single-def "dup spill" <System.String>
+; V31 tmp20 [V31,T29] ( 5, 2.50) ref -> x1
;* V32 tmp21 [V32 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.CodeDom.CodeAttributeDeclarationCollection>
-; V33 tmp22 [V33,T42] ( 2, 2 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.CodeDom.CodeTypeReferenceCollection>
+; V33 tmp22 [V33,T41] ( 2, 2 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.CodeDom.CodeTypeReferenceCollection>
;* V34 tmp23 [V34 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
-; V35 tmp24 [V35,T07] ( 2, 16 ) ref -> x26 class-hnd exact "impAppendStmt" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
+; V35 tmp24 [V35,T07] ( 2, 16 ) ref -> x25 class-hnd exact "impAppendStmt" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
; V36 tmp25 [V36,T16] ( 3, 14 ) ref -> x1 class-hnd "Inline return value spill temp" <System.String>
; V37 tmp26 [V37,T10] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
; V38 tmp27 [V38,T12] ( 3, 10 ) int -> x1 "Inline stloc first use temp"
; V39 tmp28 [V39,T00] ( 2, 40 ) ref -> x0 class-hnd exact "Inlining Arg" <System.String[][]>
; V40 tmp29 [V40,T03] ( 3, 34 ) ref -> x0 class-hnd exact "Inline stloc first use temp" <System.String[]>
-;* V41 tmp30 [V41,T66] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V42 tmp31 [V42,T43] ( 2, 2 ) ref -> x24 class-hnd single-def "Inlining Arg" <System.CodeDom.CodeTypeDeclaration>
+;* V41 tmp30 [V41,T65] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V42 tmp31 [V42,T42] ( 2, 2 ) ref -> x24 class-hnd single-def "Inlining Arg" <System.CodeDom.CodeTypeDeclaration>
;* V43 tmp32 [V43 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
;* V44 tmp33 [V44 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V45 tmp34 [V45,T23] ( 3, 3 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
+; V45 tmp34 [V45,T22] ( 3, 3 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
;* V46 tmp35 [V46 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V47 tmp36 [V47,T61] ( 2, 1 ) int -> x1 "Inline return value spill temp"
-; V48 tmp37 [V48,T26] ( 3, 3 ) int -> x1 "Inlining Arg"
+; V47 tmp36 [V47,T60] ( 2, 1 ) int -> x1 "Inline return value spill temp"
+; V48 tmp37 [V48,T25] ( 3, 3 ) int -> x1 "Inlining Arg"
;* V49 tmp38 [V49 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
;* V50 tmp39 [V50 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V51 tmp40 [V51,T24] ( 3, 3 ) ref -> x1 class-hnd exact single-def "Inlining Arg" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
+; V51 tmp40 [V51,T23] ( 3, 3 ) ref -> x1 class-hnd exact single-def "Inlining Arg" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
;* V52 tmp41 [V52 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V53 tmp42 [V53,T62] ( 2, 1 ) int -> x2 "Inline return value spill temp"
-; V54 tmp43 [V54,T27] ( 3, 3 ) int -> x2 "Inlining Arg"
-; V55 tmp44 [V55,T44] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
-; V56 tmp45 [V56,T45] ( 2, 2 ) ref -> x0 single-def "argument with side effect"
-; V57 tmp46 [V57,T46] ( 2, 2 ) ref -> x23 single-def "argument with side effect"
-; V58 tmp47 [V58,T47] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
-; V59 tmp48 [V59,T48] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
-; V60 tmp49 [V60,T49] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
-; V61 tmp50 [V61,T50] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
-; V62 tmp51 [V62,T51] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
-; V63 tmp52 [V63,T52] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
-; V64 tmp53 [V64,T25] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
+; V53 tmp42 [V53,T61] ( 2, 1 ) int -> x2 "Inline return value spill temp"
+; V54 tmp43 [V54,T26] ( 3, 3 ) int -> x2 "Inlining Arg"
+; V55 tmp44 [V55,T43] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
+; V56 tmp45 [V56,T44] ( 2, 2 ) ref -> x0 single-def "argument with side effect"
+; V57 tmp46 [V57,T45] ( 2, 2 ) ref -> x23 single-def "argument with side effect"
+; V58 tmp47 [V58,T46] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
+; V59 tmp48 [V59,T47] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
+; V60 tmp49 [V60,T48] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
+; V61 tmp50 [V61,T49] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
+; V62 tmp51 [V62,T50] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
+; V63 tmp52 [V63,T51] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
+; V64 tmp53 [V64,T24] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
; V65 tmp54 [V65,T06] ( 3, 18 ) ref -> x0 "argument with side effect"
; V66 tmp55 [V66,T08] ( 2, 16 ) ref -> x1 "argument with side effect"
-; V67 tmp56 [V67,T09] ( 2, 16 ) ref -> x27 "argument with side effect"
-; V68 tmp57 [V68,T53] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
-; V69 PSPSym [V69,T63] ( 1, 1 ) long -> [fp+0x20] do-not-enreg[V] "PSPSym"
-; V70 cse0 [V70,T21] ( 2, 4.25) ref -> x25 hoist "CSE #13: moderate"
-; V71 cse1 [V71,T19] ( 10, 6 ) ref -> x22 "CSE #01: aggressive"
-; V72 cse2 [V72,T31] ( 5, 2.50) ref -> x0 "CSE #19: moderate"
-; V73 cse3 [V73,T32] ( 4, 2 ) ref -> x23 "CSE #08: moderate"
-; V74 cse4 [V74,T33] ( 4, 2 ) ref -> x24 "CSE #17: moderate"
-; V75 cse5 [V75,T55] ( 3, 1.50) ref -> x1 "CSE #06: conservative"
-; V76 cse6 [V76,T56] ( 3, 1.50) ref -> x0 "CSE #18: conservative"
-; V77 cse7 [V77,T02] ( 4, 36 ) int -> x1 "CSE #14: aggressive"
-; V78 cse8 [V78,T14] ( 7, 9.50) long -> x24 multi-def "CSE #11: aggressive"
-; V79 rat0 [V79,T04] ( 5, 30 ) ref -> x26 "replacement local"
-; V80 rat1 [V80,T13] ( 3, 10 ) long -> x2 "CSE for expectedClsNode"
+; V67 tmp56 [V67,T09] ( 2, 16 ) ref -> x26 "argument with side effect"
+; V68 tmp57 [V68,T52] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
+; V69 PSPSym [V69,T62] ( 1, 1 ) long -> [fp+0x18] do-not-enreg[V] "PSPSym"
+; V70 cse0 [V70,T19] ( 10, 6 ) ref -> x22 "CSE #01: aggressive"
+; V71 cse1 [V71,T30] ( 5, 2.50) ref -> x0 "CSE #17: moderate"
+; V72 cse2 [V72,T31] ( 4, 2 ) ref -> x23 "CSE #08: moderate"
+; V73 cse3 [V73,T32] ( 4, 2 ) ref -> x24 "CSE #15: moderate"
+; V74 cse4 [V74,T54] ( 3, 1.50) ref -> x1 "CSE #06: conservative"
+; V75 cse5 [V75,T55] ( 3, 1.50) ref -> x0 "CSE #16: conservative"
+; V76 cse6 [V76,T02] ( 4, 36 ) int -> x1 "CSE #12: aggressive"
+; V77 cse7 [V77,T14] ( 7, 9.50) long -> x24 multi-def "CSE #11: aggressive"
+; V78 rat0 [V78,T04] ( 5, 30 ) ref -> x25 "replacement local"
+; V79 rat1 [V79,T13] ( 3, 10 ) long -> x2 "CSE for expectedClsNode"
;
-; Lcl frame size = 24
+; Lcl frame size = 16
G_M31522_IG01:
- stp fp, lr, [sp, #-0x70]!
- stp x19, x20, [sp, #0x28]
- stp x21, x22, [sp, #0x38]
- stp x23, x24, [sp, #0x48]
- stp x25, x26, [sp, #0x58]
- str x27, [sp, #0x68]
+ stp fp, lr, [sp, #-0x60]!
+ stp x19, x20, [sp, #0x20]
+ stp x21, x22, [sp, #0x30]
+ stp x23, x24, [sp, #0x40]
+ stp x25, x26, [sp, #0x50]
mov fp, sp
- add x3, sp, #112
- str x3, [fp, #0x20] // [V69 PSPSym]
+ add x3, sp, #96
+ str x3, [fp, #0x18] // [V69 PSPSym]
mov x19, x0
mov x20, x1
mov x21, x2
- ;; size=48 bbWeight=1 PerfScore 9.50
+ ;; size=44 bbWeight=1 PerfScore 8.50
G_M31522_IG02:
ldr x22, [x19, #0x18]
cbz x22, G_M31522_IG07
;; size=8 bbWeight=1 PerfScore 4.00
G_M31522_IG03:
mov x1, x22
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFCLASS
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbnz x0, G_M31522_IG07
mov x1, x22
ldr w0, [x1, #0x70]
tbnz w0, #5, G_M31522_IG04
ldrb w0, [x1, #0x74]
cbz w0, G_M31522_IG05
;; size=60 bbWeight=0.50 PerfScore 8.50
G_M31522_IG04:
mov w0, wzr
b G_M31522_IG06
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M31522_IG05:
ldrb w0, [x1, #0x75]
cmp w0, #0
cset x0, eq
;; size=12 bbWeight=0.50 PerfScore 2.00
G_M31522_IG06:
cbnz w0, G_M31522_IG11
b G_M31522_IG08
;; size=8 bbWeight=0.50 PerfScore 1.00
G_M31522_IG07:
cbz x22, G_M31522_IG09
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M31522_IG08:
mov x1, x22
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFCLASS
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbnz x0, G_M31522_IG09
ldrb w1, [x22, #0x75]
cbnz w1, G_M31522_IG11
b G_M31522_IG10
;; size=52 bbWeight=0.50 PerfScore 6.75
G_M31522_IG09:
- cbz x22, G_M31522_IG44
+ cbz x22, G_M31522_IG43
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M31522_IG10:
mov x1, x22
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFCLASS
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbnz x0, G_M31522_IG44
+ cbnz x0, G_M31522_IG43
ldr w0, [x22, #0x70]
- tbz w0, #5, G_M31522_IG44
+ tbz w0, #5, G_M31522_IG43
;; size=48 bbWeight=0.50 PerfScore 6.25
G_M31522_IG11:
mov x0, x20
movz x1, #0xD1FFAB1E // code for System.CodeDom.CodeTypeMember:get_CustomAttributes():System.CodeDom.CodeAttributeDeclarationCollection:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
movz x1, #0xD1FFAB1E // code for System.Collections.CollectionBase:get_Count():int:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
cmp w0, #0
ble G_M31522_IG12
mov x0, x20
movz x1, #0xD1FFAB1E // code for System.CodeDom.CodeTypeMember:get_CustomAttributes():System.CodeDom.CodeAttributeDeclarationCollection:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
mov x1, x0
mov x0, x19
mov w2, wzr
mov x3, xzr
mov w4, wzr
movz x5, #0xD1FFAB1E // code for Microsoft.VisualBasic.VBCodeGenerator:OutputAttributes(System.CodeDom.CodeAttributeDeclarationCollection,ubyte,System.String,ubyte):this
movk x5, #0xD1FFAB1E LSL #16
movk x5, #0xD1FFAB1E LSL #32
ldr x5, [x5]
blr x5
;; size=124 bbWeight=0.50 PerfScore 16.50
G_M31522_IG12:
ldr x22, [x20, #0x10]
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
cmp x22, #0
csel x22, x22, x1, ne
ldr x1, [x20, #0x90]
cbz x1, G_M31522_IG13
mov x0, x19
mov w2, wzr
movz x3, #0xD1FFAB1E // code for Microsoft.VisualBasic.VBCodeGenerator:GetBaseTypeOutput(System.CodeDom.CodeTypeReference,ubyte):System.String:this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov w1, #46
mov w2, #95
movz x3, #0xD1FFAB1E // code for System.String:Replace(ushort,ushort):System.String:this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
ldr wzr, [x0]
blr x3
ldr x2, [x20, #0x10]
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
cmp x2, #0
csel x2, x2, x1, ne
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x3, #0xD1FFAB1E // code for System.String:Concat(System.String,System.String,System.String):System.String
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x15, x0
add x14, x20, #16
bl CORINFO_HELP_ASSIGN_REF
;; size=160 bbWeight=0.50 PerfScore 20.00
G_M31522_IG13:
ldr x23, [x19, #0x18]
cbz x23, G_M31522_IG14
mov x1, x23
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFCLASS
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbnz x0, G_M31522_IG14
ldr w0, [x23, #0x70]
tbz w0, #5, G_M31522_IG14
ldr w0, [x20, #0x40]
and w0, w0, #240
cmp w0, #16
bne G_M31522_IG17
ldr x0, [x19, #0x08]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:Write(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
b G_M31522_IG17
;; size=116 bbWeight=0.50 PerfScore 17.75
G_M31522_IG14:
ldr x1, [x20, #0x90]
cbnz x1, G_M31522_IG15
ldr w1, [x20, #0x40]
mov x0, x19
movz x2, #0xD1FFAB1E // code for Microsoft.VisualBasic.VBCodeGenerator:OutputMemberAccessModifier(int):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x0, x20
mov x1, x21
movz x2, #0xD1FFAB1E // code for Microsoft.VisualBasic.VBCodeGenerator:MethodIsOverloaded(System.CodeDom.CodeMemberMethod,System.CodeDom.CodeTypeDeclaration):ubyte
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz w0, G_M31522_IG15
ldr x0, [x19, #0x08]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:Write(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
;; size=108 bbWeight=0.50 PerfScore 16.75
G_M31522_IG15:
ldr w0, [x20, #0x40]
and w0, w0, #240
cmp w0, #16
bne G_M31522_IG16
ldr x0, [x19, #0x08]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:Write(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
;; size=56 bbWeight=0.50 PerfScore 9.00
G_M31522_IG16:
ldr w1, [x20, #0x40]
mov x0, x19
movz x2, #0xD1FFAB1E // code for Microsoft.VisualBasic.VBCodeGenerator:OutputMemberScopeModifier(int):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=28 bbWeight=0.50 PerfScore 4.50
G_M31522_IG17:
mov w21, wzr
mov x0, x20
movz x1, #0xD1FFAB1E // code for System.CodeDom.CodeMemberMethod:get_ReturnType():System.CodeDom.CodeTypeReference:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
movz x1, #0xD1FFAB1E // code for System.CodeDom.CodeTypeReference:get_BaseType():System.String:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
ldr w0, [x0, #0x08]
cbz w0, G_M31522_IG18
mov x0, x20
movz x1, #0xD1FFAB1E // code for System.CodeDom.CodeMemberMethod:get_ReturnType():System.CodeDom.CodeTypeReference:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
movz x1, #0xD1FFAB1E // code for System.CodeDom.CodeTypeReference:get_BaseType():System.String:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
mov x23, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov w1, #2
movz x2, #0xD1FFAB1E // code for System.RuntimeType:GetCachedName(int):System.String:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x1, x0
mov x0, x23
mov w2, #5
movz x3, #0xD1FFAB1E // code for System.String:Equals(System.String,System.String,int):ubyte
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
cbnz w0, G_M31522_IG18
ldr x0, [x19, #0x08]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:Write(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
b G_M31522_IG19
;; size=228 bbWeight=0.50 PerfScore 31.75
G_M31522_IG18:
mov w21, #1
ldr x0, [x19, #0x08]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:Write(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
;; size=44 bbWeight=0.50 PerfScore 6.75
G_M31522_IG19:
ldr x1, [x20, #0x10]
movz x0, #8
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
cmp x1, #0
csel x1, x1, x0, ne
mov x0, x19
movz x2, #0xD1FFAB1E // code for Microsoft.VisualBasic.VBCodeGenerator:OutputIdentifier(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x0, x20
movz x1, #0xD1FFAB1E // code for System.CodeDom.CodeMemberMethod:get_TypeParameters():System.CodeDom.CodeTypeParameterCollection:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
mov x1, x0
mov x0, x19
movz x2, #0xD1FFAB1E // code for Microsoft.VisualBasic.VBCodeGenerator:OutputTypeParameters(System.CodeDom.CodeTypeParameterCollection):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
ldr x0, [x19, #0x08]
mov w1, #40
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:Write(ushort):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
mov x0, x20
movz x1, #0xD1FFAB1E // code for System.CodeDom.CodeMemberMethod:get_Parameters():System.CodeDom.CodeParameterDeclarationExpressionCollection:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
mov x1, x0
mov x0, x19
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.CodeGenerator:OutputParameters(System.CodeDom.CodeParameterDeclarationExpressionCollection):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
ldr x0, [x19, #0x08]
mov w1, #41
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:Write(ushort):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
cbnz w21, G_M31522_IG21
ldr x0, [x19, #0x08]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:Write(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
mov x0, x20
movz x1, #0xD1FFAB1E // code for System.CodeDom.CodeMemberMethod:get_ReturnTypeCustomAttributes():System.CodeDom.CodeAttributeDeclarationCollection:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
movz x1, #0xD1FFAB1E // code for System.Collections.CollectionBase:get_Count():int:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
cmp w0, #0
ble G_M31522_IG20
mov x0, x20
movz x1, #0xD1FFAB1E // code for System.CodeDom.CodeMemberMethod:get_ReturnTypeCustomAttributes():System.CodeDom.CodeAttributeDeclarationCollection:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
mov x1, x0
mov x0, x19
mov w2, #1
mov x3, xzr
mov w4, wzr
movz x5, #0xD1FFAB1E // code for Microsoft.VisualBasic.VBCodeGenerator:OutputAttributes(System.CodeDom.CodeAttributeDeclarationCollection,ubyte,System.String,ubyte):this
movk x5, #0xD1FFAB1E LSL #16
movk x5, #0xD1FFAB1E LSL #32
ldr x5, [x5]
blr x5
;; size=380 bbWeight=0.50 PerfScore 52.25
G_M31522_IG20:
mov x0, x20
movz x1, #0xD1FFAB1E // code for System.CodeDom.CodeMemberMethod:get_ReturnType():System.CodeDom.CodeTypeReference:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
mov x1, x0
mov x0, x19
movz x2, #0xD1FFAB1E // code for Microsoft.VisualBasic.VBCodeGenerator:OutputType(System.CodeDom.CodeTypeReference):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x0, x20
movz x1, #0xD1FFAB1E // code for System.CodeDom.CodeMemberMethod:get_ReturnType():System.CodeDom.CodeTypeReference:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
mov x1, x0
mov x0, x19
movz x2, #0xD1FFAB1E // code for Microsoft.VisualBasic.VBCodeGenerator:OutputArrayPostfix(System.CodeDom.CodeTypeReference):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=104 bbWeight=0.50 PerfScore 12.50
G_M31522_IG21:
mov x0, x20
movz x1, #0xD1FFAB1E // code for System.CodeDom.CodeMemberMethod:get_ImplementationTypes():System.CodeDom.CodeTypeReferenceCollection:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
movz x1, #0xD1FFAB1E // code for System.Collections.CollectionBase:get_Count():int:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
cmp w0, #0
bgt G_M31522_IG22
ldr x0, [x20, #0x90]
- cbz x0, G_M31522_IG39
+ cbz x0, G_M31522_IG38
ldr x0, [x19, #0x08]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:Write(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
ldr x1, [x20, #0x90]
mov x0, x19
movz x2, #0xD1FFAB1E // code for Microsoft.VisualBasic.VBCodeGenerator:OutputType(System.CodeDom.CodeTypeReference):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
ldr x0, [x19, #0x08]
mov w1, #46
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:Write(ushort):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
mov x0, x19
mov x1, x22
movz x2, #0xD1FFAB1E // code for Microsoft.VisualBasic.VBCodeGenerator:OutputIdentifier(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- b G_M31522_IG39
+ b G_M31522_IG38
;; size=196 bbWeight=0.50 PerfScore 30.75
G_M31522_IG22:
ldr x0, [x19, #0x08]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:Write(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
mov w23, #1
mov x0, x20
movz x1, #0xD1FFAB1E // code for System.CodeDom.CodeMemberMethod:get_ImplementationTypes():System.CodeDom.CodeTypeReferenceCollection:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
ldr x0, [x0, #0x08]
ldr x1, [x0]
ldr x1, [x1, #0x58]
ldr x1, [x1]
blr x1
mov x1, x0
- str x1, [fp, #0x18] // [V07 loc4]
+ str x1, [fp, #0x10] // [V07 loc4]
;; size=96 bbWeight=0.50 PerfScore 17.00
G_M31522_IG23:
mov x0, x1
movz x24, #0xD1FFAB1E
movk x24, #0xD1FFAB1E LSL #16
movk x24, #0xD1FFAB1E LSL #32
mov x11, x24
ldr xip0, [x11]
blr xip0
- cbz w0, G_M31522_IG38
+ cbz w0, G_M31522_IG37
;; size=32 bbWeight=0.50 PerfScore 3.75
G_M31522_IG24:
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr x25, [x0]
- ;; size=16 bbWeight=0.25 PerfScore 1.12
-G_M31522_IG25:
- ldr x0, [fp, #0x18] // [V07 loc4]
+ ldr x0, [fp, #0x10] // [V07 loc4]
add x11, x24, #8
ldr xip0, [x11]
blr xip0
- mov x26, x0
- cbz x26, G_M31522_IG28
+ mov x25, x0
+ cbz x25, G_M31522_IG27
;; size=24 bbWeight=4 PerfScore 32.00
-G_M31522_IG26:
+G_M31522_IG25:
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
- ldr x1, [x26]
+ ldr x1, [x25]
cmp x1, x2
- beq G_M31522_IG28
+ beq G_M31522_IG27
;; size=24 bbWeight=2 PerfScore 12.00
-G_M31522_IG27:
+G_M31522_IG26:
mov x1, x0
mov x0, x2
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_CHKCASTCLASS_SPECIAL
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- mov x26, x0
+ mov x25, x0
;; size=32 bbWeight=1 PerfScore 7.00
-G_M31522_IG28:
- cbnz w23, G_M31522_IG30
+G_M31522_IG27:
+ cbnz w23, G_M31522_IG29
;; size=4 bbWeight=4 PerfScore 4.00
-G_M31522_IG29:
+G_M31522_IG28:
ldr x0, [x19, #0x08]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:Write(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
- b G_M31522_IG31
+ b G_M31522_IG30
;; size=44 bbWeight=2 PerfScore 28.00
-G_M31522_IG30:
+G_M31522_IG29:
mov w23, wzr
;; size=4 bbWeight=2 PerfScore 1.00
-G_M31522_IG31:
- ldr x27, [x19, #0x08]
+G_M31522_IG30:
+ ldr x26, [x19, #0x08]
mov x0, x19
- mov x1, x26
+ mov x1, x25
movz x2, #0xD1FFAB1E // code for Microsoft.VisualBasic.VBCodeGenerator:GetTypeOutputWithoutArrayPostFix(System.CodeDom.CodeTypeReference):System.String:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x1, x0
- mov x0, x27
+ mov x0, x26
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:Write(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
ldr x0, [x19, #0x08]
mov w1, #46
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:Write(ushort):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
- ldr x26, [x19, #0x08]
- mov x0, x25
+ ldr x25, [x19, #0x08]
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #32
+ ldr x0, [x0]
ldr w1, [x22, #0x08]
cmp w1, #0
- ble G_M31522_IG35
- ;; size=116 bbWeight=4 PerfScore 156.00
-G_M31522_IG32:
+ ble G_M31522_IG34
+ ;; size=124 bbWeight=4 PerfScore 170.00
+G_M31522_IG31:
sub w1, w1, #1
cmp w1, #16
- bge G_M31522_IG35
+ bge G_M31522_IG34
;; size=12 bbWeight=2 PerfScore 4.00
-G_M31522_IG33:
+G_M31522_IG32:
cmp w1, #16
- bhs G_M31522_IG37
+ bhs G_M31522_IG36
add x0, x0, #16
ldr x0, [x0, w1, UXTW #3]
- cbz x0, G_M31522_IG35
+ cbz x0, G_M31522_IG34
;; size=20 bbWeight=16 PerfScore 96.00
-G_M31522_IG34:
+G_M31522_IG33:
mov x1, x22
mov w2, #1
movz x3, #0xD1FFAB1E // code for System.Collections.Specialized.FixedStringLookup:Contains(System.String[],System.String,ubyte):ubyte
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
- cbz w0, G_M31522_IG35
+ cbz w0, G_M31522_IG34
mov x1, x22
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
movz x3, #0xD1FFAB1E // code for System.String:Concat(System.String,System.String,System.String):System.String
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x1, x0
- b G_M31522_IG36
+ b G_M31522_IG35
;; size=88 bbWeight=2 PerfScore 36.00
-G_M31522_IG35:
+G_M31522_IG34:
mov x1, x22
;; size=4 bbWeight=8 PerfScore 4.00
-G_M31522_IG36:
- mov x0, x26
+G_M31522_IG35:
+ mov x0, x25
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:Write(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
- ldr x0, [fp, #0x18] // [V07 loc4]
+ ldr x0, [fp, #0x10] // [V07 loc4]
mov x11, x24
ldr xip0, [x11]
blr xip0
- cbnz w0, G_M31522_IG25
- b G_M31522_IG38
+ cbnz w0, G_M31522_IG24
+ b G_M31522_IG37
;; size=52 bbWeight=4 PerfScore 70.00
-G_M31522_IG37:
+G_M31522_IG36:
bl CORINFO_HELP_RNGCHKFAIL
brk_unix #0
;; size=8 bbWeight=0 PerfScore 0.00
-G_M31522_IG38:
- ldr x1, [fp, #0x18] // [V07 loc4]
+G_M31522_IG37:
+ ldr x1, [fp, #0x10] // [V07 loc4]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFINTERFACE
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbz x0, G_M31522_IG39
+ cbz x0, G_M31522_IG38
add x11, x24, #16
ldr xip0, [x11]
blr xip0
;; size=52 bbWeight=0.50 PerfScore 7.25
-G_M31522_IG39:
+G_M31522_IG38:
ldr x0, [x19, #0x08]
movz x1, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:WriteLine():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
ldr x24, [x19, #0x18]
- cbz x24, G_M31522_IG40
+ cbz x24, G_M31522_IG39
mov x1, x24
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFCLASS
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbnz x0, G_M31522_IG40
+ cbnz x0, G_M31522_IG39
ldr w0, [x24, #0x70]
- tbnz w0, #5, G_M31522_IG42
+ tbnz w0, #5, G_M31522_IG41
;; size=84 bbWeight=0.50 PerfScore 14.00
-G_M31522_IG40:
+G_M31522_IG39:
ldr w0, [x20, #0x40]
and w0, w0, #15
cmp w0, #1
- beq G_M31522_IG42
+ beq G_M31522_IG41
ldr x0, [x19, #0x08]
ldr w23, [x0, #0x30]
ldrsb wzr, [x0]
add w1, w23, #1
cmp w1, #0
csel w1, w1, wzr, ge
str w1, [x0, #0x30]
mov x0, x20
movz x1, #0xD1FFAB1E // code for System.CodeDom.CodeMemberMethod:get_Statements():System.CodeDom.CodeStatementCollection:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
mov x1, x0
mov x0, x19
movz x2, #0xD1FFAB1E // code for Microsoft.VisualBasic.VBCodeGenerator:GenerateVBStatements(System.CodeDom.CodeStatementCollection):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
ldr x0, [x19, #0x08]
ldr w23, [x0, #0x30]
mov x1, x0
ldrsb wzr, [x1]
sub w2, w23, #1
cmp w2, #0
csel w2, w2, wzr, ge
str w2, [x1, #0x30]
- cbnz w21, G_M31522_IG41
+ cbnz w21, G_M31522_IG40
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:WriteLine(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- b G_M31522_IG42
+ b G_M31522_IG41
;; size=168 bbWeight=0.50 PerfScore 25.00
-G_M31522_IG41:
+G_M31522_IG40:
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:WriteLine(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=32 bbWeight=0.50 PerfScore 3.50
-G_M31522_IG42:
+G_M31522_IG41:
add x14, x20, #16
mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
;; size=12 bbWeight=0.50 PerfScore 1.00
+G_M31522_IG42:
+ ldp x25, x26, [sp, #0x50]
+ ldp x23, x24, [sp, #0x40]
+ ldp x21, x22, [sp, #0x30]
+ ldp x19, x20, [sp, #0x20]
+ ldp fp, lr, [sp], #0x60
+ ret lr
+ ;; size=24 bbWeight=0.50 PerfScore 3.00
G_M31522_IG43:
- ldr x27, [sp, #0x68]
- ldp x25, x26, [sp, #0x58]
- ldp x23, x24, [sp, #0x48]
- ldp x21, x22, [sp, #0x38]
- ldp x19, x20, [sp, #0x28]
- ldp fp, lr, [sp], #0x70
+ ldp x25, x26, [sp, #0x50]
+ ldp x23, x24, [sp, #0x40]
+ ldp x21, x22, [sp, #0x30]
+ ldp x19, x20, [sp, #0x20]
+ ldp fp, lr, [sp], #0x60
ret lr
- ;; size=28 bbWeight=0.50 PerfScore 4.00
+ ;; size=24 bbWeight=0.50 PerfScore 3.00
G_M31522_IG44:
- ldr x27, [sp, #0x68]
- ldp x25, x26, [sp, #0x58]
- ldp x23, x24, [sp, #0x48]
- ldp x21, x22, [sp, #0x38]
- ldp x19, x20, [sp, #0x28]
- ldp fp, lr, [sp], #0x70
- ret lr
- ;; size=28 bbWeight=0.50 PerfScore 4.00
-G_M31522_IG45:
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]
- add x3, fp, #112
- str x3, [sp, #0x10]
- ;; size=32 bbWeight=0 PerfScore 0.00
-G_M31522_IG46:
- ldr x1, [fp, #0x18] // [V07 loc4]
+ stp x19, x20, [sp, #0x20]
+ stp x21, x22, [sp, #0x30]
+ stp x23, x24, [sp, #0x40]
+ stp x25, x26, [sp, #0x50]
+ add x3, fp, #96
+ str x3, [sp, #0x18]
+ ;; size=28 bbWeight=0 PerfScore 0.00
+G_M31522_IG45:
+ ldr x1, [fp, #0x10] // [V07 loc4]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFINTERFACE
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbz x0, G_M31522_IG47
+ cbz x0, G_M31522_IG46
movz x24, #0xD1FFAB1E
movk x24, #0xD1FFAB1E LSL #16
movk x24, #0xD1FFAB1E LSL #32
add x11, x24, #16
ldr xip0, [x11]
blr xip0
;; size=64 bbWeight=0 PerfScore 0.00
-G_M31522_IG47:
- ldr x27, [sp, #0x58]
- ldp x25, x26, [sp, #0x48]
- ldp x23, x24, [sp, #0x38]
- ldp x21, x22, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
+G_M31522_IG46:
+ ldp x25, x26, [sp, #0x50]
+ ldp x23, x24, [sp, #0x40]
+ ldp x21, x22, [sp, #0x30]
+ ldp x19, x20, [sp, #0x20]
ldp fp, lr, [sp], #0x60
ret lr
- ;; size=28 bbWeight=0 PerfScore 0.00
+ ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2900, prolog size 48, PerfScore 788.88, instruction count 725, allocated bytes for code 2900 (MethodHash=c2cd84dd) for method Microsoft.VisualBasic.VBCodeGenerator:GenerateMethod(System.CodeDom.CodeMemberMethod,System.CodeDom.CodeTypeDeclaration):this (FullOpts)
+; Total bytes of code 2872, prolog size 44, PerfScore 798.75, instruction count 718, allocated bytes for code 2872 (MethodHash=c2cd84dd) for method Microsoft.VisualBasic.VBCodeGenerator:GenerateMethod(System.CodeDom.CodeMemberMethod,System.CodeDom.CodeTypeDeclaration):this (FullOpts)
-28 (-2.34 % of base) - Microsoft.VisualBasic.VBCodeGenerator:GeneratePrimitiveExpression(System.CodeDom.CodePrimitiveExpression):this
; Assembly listing for method Microsoft.VisualBasic.VBCodeGenerator:GeneratePrimitiveExpression(System.CodeDom.CodePrimitiveExpression):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; 33 single block inlinees; 6 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 13, 7.50) ref -> x19 this class-hnd single-def <Microsoft.VisualBasic.VBCodeGenerator>
; V01 arg1 [V01,T02] ( 5, 4 ) ref -> x20 class-hnd single-def <System.CodeDom.CodePrimitiveExpression>
-; V02 loc0 [V02,T15] ( 4, 2 ) int -> x21 ld-addr-op single-def
+; V02 loc0 [V02,T14] ( 4, 2 ) int -> x21 ld-addr-op single-def
; V03 loc1 [V03,T40] ( 2, 1 ) byte -> x20 ld-addr-op single-def
;* V04 loc2 [V04 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op
;* V05 loc3 [V05 ] ( 0, 0 ) int -> zero-ref ld-addr-op
;* V06 loc4 [V06 ] ( 0, 0 ) long -> zero-ref ld-addr-op
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V08 tmp1 [V08,T03] ( 3, 4.50) ref -> x1 single-def "ISINST eval op1"
-;* V09 tmp2 [V09,T28] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <System.Char>
+;* V09 tmp2 [V09,T27] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <System.Char>
; V10 tmp3 [V10,T06] ( 3, 2.50) ref -> x0 single-def "ISINST eval op1"
-;* V11 tmp4 [V11,T29] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <System.SByte>
+;* V11 tmp4 [V11,T28] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <System.SByte>
; V12 tmp5 [V12,T07] ( 3, 2.50) ref -> x1 single-def "ISINST eval op1"
-;* V13 tmp6 [V13,T30] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <System.UInt16>
+;* V13 tmp6 [V13,T29] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <System.UInt16>
; V14 tmp7 [V14,T08] ( 3, 2.50) ref -> x1 single-def "ISINST eval op1"
-;* V15 tmp8 [V15,T31] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <System.UInt32>
+;* V15 tmp8 [V15,T30] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <System.UInt32>
; V16 tmp9 [V16,T09] ( 3, 2.50) ref -> x1 single-def "ISINST eval op1"
-;* V17 tmp10 [V17,T32] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <System.UInt64>
-; V18 tmp11 [V18,T16] ( 2, 2 ) ref -> x20 class-hnd exact single-def "impAppendStmt" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
-; V19 tmp12 [V19,T12] ( 3, 2.50) ref -> x21 single-def "inline UNBOX clone1"
-; V20 tmp13 [V20,T17] ( 2, 2 ) ref -> x20 class-hnd exact single-def "impAppendStmt" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
-; V21 tmp14 [V21,T13] ( 3, 2.50) ref -> x21 single-def "inline UNBOX clone1"
-; V22 tmp15 [V22,T18] ( 2, 2 ) ref -> x20 class-hnd exact single-def "impAppendStmt" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
-; V23 tmp16 [V23,T14] ( 3, 2.50) ref -> x21 single-def "inline UNBOX clone1"
-; V24 tmp17 [V24,T19] ( 2, 2 ) ref -> x21 class-hnd exact single-def "impAppendStmt" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
+;* V17 tmp10 [V17,T31] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <System.UInt64>
+; V18 tmp11 [V18,T15] ( 2, 2 ) ref -> x20 class-hnd exact single-def "impAppendStmt" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
+; V19 tmp12 [V19,T11] ( 3, 2.50) ref -> x21 single-def "inline UNBOX clone1"
+; V20 tmp13 [V20,T16] ( 2, 2 ) ref -> x20 class-hnd exact single-def "impAppendStmt" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
+; V21 tmp14 [V21,T12] ( 3, 2.50) ref -> x21 single-def "inline UNBOX clone1"
+; V22 tmp15 [V22,T17] ( 2, 2 ) ref -> x20 class-hnd exact single-def "impAppendStmt" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
+; V23 tmp16 [V23,T13] ( 3, 2.50) ref -> x21 single-def "inline UNBOX clone1"
+; V24 tmp17 [V24,T18] ( 2, 2 ) ref -> x21 class-hnd exact single-def "impAppendStmt" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
; V25 tmp18 [V25,T10] ( 4, 3.50) ref -> x22 single-def "inline UNBOX clone1"
-; V26 tmp19 [V26,T20] ( 2, 2 ) ref -> x22 class-hnd exact single-def "impAppendStmt" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
+; V26 tmp19 [V26,T19] ( 2, 2 ) ref -> x22 class-hnd exact single-def "impAppendStmt" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
;* V27 tmp20 [V27 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Object>
-; V28 tmp21 [V28,T21] ( 2, 2 ) ref -> x23 class-hnd exact single-def "Inlining Arg" <System.Globalization.CultureInfo>
-; V29 tmp22 [V29,T33] ( 3, 1.50) ref -> x1 class-hnd "Inline return value spill temp" <System.String>
+; V28 tmp21 [V28,T20] ( 2, 2 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.Globalization.CultureInfo>
+; V29 tmp22 [V29,T32] ( 3, 1.50) ref -> x1 class-hnd "Inline return value spill temp" <System.String>
;* V30 tmp23 [V30 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V31 tmp24 [V31 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V32 tmp25 [V32,T38] ( 2, 1 ) ref -> x0 class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
-; V33 tmp26 [V33,T22] ( 2, 2 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.Globalization.CultureInfo>
-; V34 tmp27 [V34,T34] ( 3, 1.50) ref -> x1 class-hnd "Inline return value spill temp" <System.String>
+; V33 tmp26 [V33,T21] ( 2, 2 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.Globalization.CultureInfo>
+; V34 tmp27 [V34,T33] ( 3, 1.50) ref -> x1 class-hnd "Inline return value spill temp" <System.String>
; V35 tmp28 [V35,T05] ( 4, 4 ) int -> x20 "Inlining Arg"
;* V36 tmp29 [V36 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V37 tmp30 [V37,T39] ( 2, 1 ) ref -> x0 class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
-; V38 tmp31 [V38,T23] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
-; V39 tmp32 [V39,T24] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
-; V40 tmp33 [V40,T25] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
-; V41 tmp34 [V41,T26] ( 2, 2 ) ref -> x0 single-def "argument with side effect"
-; V42 tmp35 [V42,T27] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
-; V43 cse0 [V43,T11] ( 5, 2.50) ref -> x23 multi-def "CSE #03: moderate"
-; V44 cse1 [V44,T01] ( 10, 6 ) ref -> x21 "CSE #01: aggressive"
-; V45 cse2 [V45,T04] ( 13, 4 ) long -> x22 multi-def "CSE #04: moderate"
+; V38 tmp31 [V38,T22] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
+; V39 tmp32 [V39,T23] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
+; V40 tmp33 [V40,T24] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
+; V41 tmp34 [V41,T25] ( 2, 2 ) ref -> x0 single-def "argument with side effect"
+; V42 tmp35 [V42,T26] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
+; V43 cse0 [V43,T01] ( 10, 6 ) ref -> x21 "CSE #01: aggressive"
+; V44 cse1 [V44,T04] ( 13, 4 ) long -> x22 multi-def "CSE #04: moderate"
+; V45 cse2 [V45,T34] ( 4, 1.25) long -> x23 "CSE #06: moderate"
; V46 cse3 [V46,T35] ( 4, 1.25) long -> x0 "CSE #07: conservative"
; V47 cse4 [V47,T36] ( 4, 1.25) long -> x0 "CSE #08: conservative"
; V48 cse5 [V48,T37] ( 4, 1.25) long -> x0 "CSE #09: conservative"
;
; Lcl frame size = 8
G_M50917_IG01:
stp fp, lr, [sp, #-0x40]!
stp x19, x20, [sp, #0x18]
stp x21, x22, [sp, #0x28]
str x23, [sp, #0x38]
mov fp, sp
mov x19, x0
mov x20, x1
;; size=28 bbWeight=1 PerfScore 5.50
G_M50917_IG02:
ldr x1, [x20, #0x10]
mov x21, x1
cbz x1, G_M50917_IG07
;; size=12 bbWeight=1 PerfScore 4.50
G_M50917_IG03:
ldr x22, [x1]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
cmp x22, x1
bne G_M50917_IG07
;; size=24 bbWeight=0.25 PerfScore 1.50
G_M50917_IG04:
ldr x22, [x19, #0x08]
mov x1, x21
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_CHKCASTINTERFACE
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
movz x1, #0xD1FFAB1E
- movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- ldr x23, [x1]
- mov x1, x23
+ ldr x1, [x1]
movz x11, #0xD1FFAB1E // code for System.IConvertible:ToInt32(System.IFormatProvider):int:this
movk x11, #0xD1FFAB1E LSL #16
movk x11, #0xD1FFAB1E LSL #32
ldr xip0, [x11]
blr xip0
sxtw w21, w0
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #32
+ ldr x0, [x0]
tbnz w21, #31, G_M50917_IG05
mov w0, w21
movz x1, #0xD1FFAB1E // code for System.Number:UInt32ToDecStr(uint):System.String
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
mov x1, x0
b G_M50917_IG06
- ;; size=120 bbWeight=0.50 PerfScore 15.00
+ ;; size=124 bbWeight=0.50 PerfScore 16.50
G_M50917_IG05:
- mov x0, x23
movz x1, #0xD1FFAB1E // code for System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|58_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
ldr x2, [x0, #0x28]
mov w0, w21
movn w1, #0
movz x3, #0xD1FFAB1E // code for System.Number:NegativeInt32ToDecStr(int,int,System.String):System.String
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x1, x0
- ;; size=60 bbWeight=0.50 PerfScore 8.00
+ ;; size=56 bbWeight=0.50 PerfScore 7.75
G_M50917_IG06:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
movz x3, #0xD1FFAB1E // code for System.String:Concat(System.String,System.String,System.String):System.String
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x1, x0
mov x0, x22
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:Write(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
b G_M50917_IG30
;; size=80 bbWeight=0.50 PerfScore 9.50
G_M50917_IG07:
mov x0, x21
cbz x0, G_M50917_IG14
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M50917_IG08:
ldr x22, [x0]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- cmp x22, x0
+ movz x23, #0xD1FFAB1E
+ movk x23, #0xD1FFAB1E LSL #16
+ movk x23, #0xD1FFAB1E LSL #32
+ cmp x22, x23
bne G_M50917_IG14
;; size=24 bbWeight=0.25 PerfScore 1.50
G_M50917_IG09:
ldr x0, [x19, #0x08]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:Write(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
ldr x21, [x19, #0x08]
ldr x22, [x20, #0x10]
ldr x1, [x22]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- cmp x1, x0
+ cmp x1, x23
beq G_M50917_IG11
- ;; size=72 bbWeight=0.50 PerfScore 12.50
+ ;; size=60 bbWeight=0.50 PerfScore 11.75
G_M50917_IG10:
mov x1, x22
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
+ mov x0, x23
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_UNBOX
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- ;; size=36 bbWeight=0.25 PerfScore 1.88
+ ;; size=28 bbWeight=0.25 PerfScore 1.62
G_M50917_IG11:
ldrsb w20, [x22, #0x08]
movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- ldr x23, [x0]
- mov x0, x23
+ ldr x0, [x0]
tbnz w20, #31, G_M50917_IG12
mov w0, w20
movz x1, #0xD1FFAB1E // code for System.Number:UInt32ToDecStr(uint):System.String
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
mov x1, x0
b G_M50917_IG13
- ;; size=60 bbWeight=0.50 PerfScore 8.25
+ ;; size=52 bbWeight=0.50 PerfScore 7.75
G_M50917_IG12:
movz x1, #0xD1FFAB1E // code for System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|58_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
ldr x2, [x0, #0x28]
mov w0, w20
movn w1, #0
movz x3, #0xD1FFAB1E // code for System.Number:NegativeInt32ToDecStr(int,int,System.String):System.String
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x1, x0
;; size=56 bbWeight=0.50 PerfScore 7.75
G_M50917_IG13:
mov x0, x21
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:Write(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
ldr x0, [x19, #0x08]
mov w1, #41
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:Write(ushort):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
b G_M50917_IG30
;; size=64 bbWeight=0.50 PerfScore 11.00
G_M50917_IG14:
mov x1, x21
cbz x1, G_M50917_IG19
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M50917_IG15:
ldr x22, [x1]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
cmp x22, x0
bne G_M50917_IG19
;; size=24 bbWeight=0.25 PerfScore 1.50
G_M50917_IG16:
ldr x20, [x19, #0x08]
cmp x22, x0
beq G_M50917_IG18
;; size=12 bbWeight=0.50 PerfScore 2.25
G_M50917_IG17:
mov x1, x21
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_UNBOX
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=24 bbWeight=0.25 PerfScore 1.50
G_M50917_IG18:
ldrh w0, [x21, #0x08]
movz x1, #0xD1FFAB1E // code for System.Number:UInt32ToDecStr(uint):System.String
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.CodeDom.Compiler.IndentedTextWriter:Write(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
ldr x0, [x19, #0x08]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:Write(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
b G_M50917_IG30
;; size=100 bbWeight=0.50 PerfScore 16.00
G_M50917_IG19:
mov x1, x21
cbz x1, G_M50917_IG24
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M50917_IG20:
ldr x22, [x1]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
cmp x22, x0
bne G_M50917_IG24
;; size=24 bbWeight=0.25 PerfScore 1.50
G_M50917_IG21:
ldr x20, [x19, #0x08]
cmp x22, x0
beq G_M50917_IG23
;; size=12 bbWeight=0.50 PerfScore 2.25
G_M50917_IG22:
mov x1, x21
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_UNBOX
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=24 bbWeight=0.25 PerfScore 1.50
G_M50917_IG23:
ldr w0, [x21, #0x08]
movz x1, #0xD1FFAB1E // code for System.Number:UInt32ToDecStr(uint):System.String
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.CodeDom.Compiler.IndentedTextWriter:Write(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
ldr x0, [x19, #0x08]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:Write(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
b G_M50917_IG30
;; size=100 bbWeight=0.50 PerfScore 16.00
G_M50917_IG24:
mov x1, x21
cbz x1, G_M50917_IG29
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M50917_IG25:
ldr x22, [x1]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
cmp x22, x0
bne G_M50917_IG29
;; size=24 bbWeight=0.25 PerfScore 1.50
G_M50917_IG26:
ldr x20, [x19, #0x08]
cmp x22, x0
beq G_M50917_IG28
;; size=12 bbWeight=0.50 PerfScore 2.25
G_M50917_IG27:
mov x1, x21
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_UNBOX
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=24 bbWeight=0.25 PerfScore 1.50
G_M50917_IG28:
ldr x0, [x21, #0x08]
movz x1, #0xD1FFAB1E // code for System.Number:UInt64ToDecStr(ulong):System.String
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.CodeDom.Compiler.IndentedTextWriter:Write(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
ldr x0, [x19, #0x08]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:Write(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
b G_M50917_IG30
;; size=100 bbWeight=0.50 PerfScore 16.00
G_M50917_IG29:
mov x0, x19
mov x1, x20
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.CodeGenerator:GeneratePrimitiveExpression(System.CodeDom.CodePrimitiveExpression):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_M50917_IG30:
ldr x23, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x40
ret lr
;; size=20 bbWeight=1 PerfScore 6.00
-; Total bytes of code 1196, prolog size 20, PerfScore 162.88, instruction count 299, allocated bytes for code 1196 (MethodHash=c93e391a) for method Microsoft.VisualBasic.VBCodeGenerator:GeneratePrimitiveExpression(System.CodeDom.CodePrimitiveExpression):this (FullOpts)
+; Total bytes of code 1168, prolog size 20, PerfScore 162.62, instruction count 292, allocated bytes for code 1168 (MethodHash=c93e391a) for method Microsoft.VisualBasic.VBCodeGenerator:GeneratePrimitiveExpression(System.CodeDom.CodePrimitiveExpression):this (FullOpts)
-28 (-0.88 % of base) - Microsoft.VisualBasic.VBCodeGenerator:GenerateProperty(System.CodeDom.CodeMemberProperty,System.CodeDom.CodeTypeDeclaration):this
; Assembly listing for method Microsoft.VisualBasic.VBCodeGenerator:GenerateProperty(System.CodeDom.CodeMemberProperty,System.CodeDom.CodeTypeDeclaration):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; 82 single block inlinees; 22 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 45, 39.50) ref -> x19 this class-hnd single-def <Microsoft.VisualBasic.VBCodeGenerator>
; V01 arg1 [V01,T05] ( 38, 20 ) ref -> x20 class-hnd single-def <System.CodeDom.CodeMemberProperty>
; V02 arg2 [V02,T21] ( 4, 3 ) ref -> x21 class-hnd single-def <System.CodeDom.CodeTypeDeclaration>
; V03 loc0 [V03,T10] ( 8, 18 ) ref -> x22 class-hnd exact single-def <System.String>
-; V04 loc1 [V04,T66] ( 2, 1 ) ref -> x0 class-hnd single-def <System.String>
+; V04 loc1 [V04,T65] ( 2, 1 ) ref -> x0 class-hnd single-def <System.String>
; V05 loc2 [V05,T18] ( 3, 6.50) ubyte -> x23
-; V06 loc3 [V06,T15] ( 6, 9 ) ref -> [fp+0x18] class-hnd EH-live spill-single-def <System.Collections.IEnumerator>
-; V07 loc4 [V07,T17] ( 2, 8 ) ref -> x26 class-hnd <System.CodeDom.CodeTypeReference>
-; V08 loc5 [V08,T57] ( 6, 1.50) ref -> x0 class-hnd <System.IDisposable>
+; V06 loc3 [V06,T15] ( 6, 9 ) ref -> [fp+0x10] class-hnd EH-live spill-single-def <System.Collections.IEnumerator>
+; V07 loc4 [V07,T17] ( 2, 8 ) ref -> x25 class-hnd <System.CodeDom.CodeTypeReference>
+; V08 loc5 [V08,T56] ( 6, 1.50) ref -> x0 class-hnd <System.IDisposable>
; V09 loc6 [V09,T19] ( 12, 6 ) int -> x24
;# V10 OutArgs [V10 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V11 tmp1 [V11 ] ( 0, 0 ) ref -> zero-ref single-def "spilling varStr"
-;* V12 tmp2 [V12,T65] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
-; V13 tmp3 [V13,T62] ( 2, 1 ) ubyte -> x0 "Inline return value spill temp"
-; V14 tmp4 [V14,T63] ( 3, 1.50) ubyte -> x0 "Inline return value spill temp"
-; V15 tmp5 [V15,T23] ( 4, 4 ) ref -> x1 class-hnd single-def "Inlining Arg" <System.CodeDom.CodeTypeDeclaration>
-; V16 tmp6 [V16,T64] ( 2, 1 ) ubyte -> x1 "Inline return value spill temp"
+;* V12 tmp2 [V12,T64] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
+; V13 tmp3 [V13,T61] ( 2, 1 ) ubyte -> x0 "Inline return value spill temp"
+; V14 tmp4 [V14,T62] ( 3, 1.50) ubyte -> x0 "Inline return value spill temp"
+; V15 tmp5 [V15,T22] ( 4, 4 ) ref -> x1 class-hnd single-def "Inlining Arg" <System.CodeDom.CodeTypeDeclaration>
+; V16 tmp6 [V16,T63] ( 2, 1 ) ubyte -> x1 "Inline return value spill temp"
;* V17 tmp7 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.CodeDom.CodeTypeDeclaration>
-;* V18 tmp8 [V18,T74] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V19 tmp9 [V19,T45] ( 2, 2 ) ref -> x22 class-hnd single-def "Inlining Arg" <System.CodeDom.CodeTypeDeclaration>
+;* V18 tmp8 [V18,T73] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V19 tmp9 [V19,T44] ( 2, 2 ) ref -> x22 class-hnd single-def "Inlining Arg" <System.CodeDom.CodeTypeDeclaration>
;* V20 tmp10 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.CodeDom.CodeAttributeDeclarationCollection>
-; V21 tmp11 [V21,T46] ( 2, 2 ) ref -> x22 class-hnd exact single-def "dup spill" <System.String>
-; V22 tmp12 [V22,T38] ( 5, 2.50) ref -> x22
-; V23 tmp13 [V23,T47] ( 2, 2 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String>
-; V24 tmp14 [V24,T39] ( 5, 2.50) ref -> x2
-; V25 tmp15 [V25,T48] ( 2, 2 ) ref -> x15 class-hnd exact single-def "Inlining Arg" <System.String>
-;* V26 tmp16 [V26,T75] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V27 tmp17 [V27,T49] ( 2, 2 ) ref -> x23 class-hnd single-def "Inlining Arg" <System.CodeDom.CodeTypeDeclaration>
+; V21 tmp11 [V21,T45] ( 2, 2 ) ref -> x22 class-hnd exact single-def "dup spill" <System.String>
+; V22 tmp12 [V22,T37] ( 5, 2.50) ref -> x22
+; V23 tmp13 [V23,T46] ( 2, 2 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String>
+; V24 tmp14 [V24,T38] ( 5, 2.50) ref -> x2
+; V25 tmp15 [V25,T47] ( 2, 2 ) ref -> x15 class-hnd exact single-def "Inlining Arg" <System.String>
+;* V26 tmp16 [V26,T74] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V27 tmp17 [V27,T48] ( 2, 2 ) ref -> x23 class-hnd single-def "Inlining Arg" <System.CodeDom.CodeTypeDeclaration>
;* V28 tmp18 [V28 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V29 tmp19 [V29 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V30 tmp20 [V30,T50] ( 2, 2 ) ref -> x0 class-hnd exact single-def "dup spill" <System.String>
-; V31 tmp21 [V31,T37] ( 7, 2.88) ref -> x0
-;* V32 tmp22 [V32,T76] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V33 tmp23 [V33,T77] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V34 tmp24 [V34,T78] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V35 tmp25 [V35,T51] ( 2, 2 ) ref -> x1 class-hnd exact single-def "dup spill" <System.String>
-; V36 tmp26 [V36,T40] ( 5, 2.50) ref -> x1
-; V37 tmp27 [V37,T52] ( 2, 2 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.CodeDom.CodeTypeReferenceCollection>
+; V30 tmp20 [V30,T49] ( 2, 2 ) ref -> x0 class-hnd exact single-def "dup spill" <System.String>
+; V31 tmp21 [V31,T36] ( 7, 2.88) ref -> x0
+;* V32 tmp22 [V32,T75] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V33 tmp23 [V33,T76] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V34 tmp24 [V34,T77] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V35 tmp25 [V35,T50] ( 2, 2 ) ref -> x1 class-hnd exact single-def "dup spill" <System.String>
+; V36 tmp26 [V36,T39] ( 5, 2.50) ref -> x1
+; V37 tmp27 [V37,T51] ( 2, 2 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.CodeDom.CodeTypeReferenceCollection>
;* V38 tmp28 [V38 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
-; V39 tmp29 [V39,T07] ( 2, 16 ) ref -> x26 class-hnd exact "impAppendStmt" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
+; V39 tmp29 [V39,T07] ( 2, 16 ) ref -> x25 class-hnd exact "impAppendStmt" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
; V40 tmp30 [V40,T16] ( 3, 14 ) ref -> x1 class-hnd "Inline return value spill temp" <System.String>
; V41 tmp31 [V41,T11] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
; V42 tmp32 [V42,T12] ( 3, 10 ) int -> x1 "Inline stloc first use temp"
; V43 tmp33 [V43,T01] ( 2, 40 ) ref -> x0 class-hnd exact "Inlining Arg" <System.String[][]>
; V44 tmp34 [V44,T03] ( 3, 34 ) ref -> x0 class-hnd exact "Inline stloc first use temp" <System.String[]>
;* V45 tmp35 [V45 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
;* V46 tmp36 [V46 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V47 tmp37 [V47,T24] ( 3, 3 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
+; V47 tmp37 [V47,T23] ( 3, 3 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
;* V48 tmp38 [V48 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V49 tmp39 [V49,T67] ( 2, 1 ) int -> x1 "Inline return value spill temp"
-; V50 tmp40 [V50,T31] ( 3, 3 ) int -> x1 "Inlining Arg"
+; V49 tmp39 [V49,T66] ( 2, 1 ) int -> x1 "Inline return value spill temp"
+; V50 tmp40 [V50,T30] ( 3, 3 ) int -> x1 "Inlining Arg"
;* V51 tmp41 [V51 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
;* V52 tmp42 [V52 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V53 tmp43 [V53,T25] ( 3, 3 ) ref -> x1 class-hnd exact single-def "Inlining Arg" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
+; V53 tmp43 [V53,T24] ( 3, 3 ) ref -> x1 class-hnd exact single-def "Inlining Arg" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
;* V54 tmp44 [V54 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V55 tmp45 [V55,T68] ( 2, 1 ) int -> x0 "Inline return value spill temp"
-; V56 tmp46 [V56,T32] ( 3, 3 ) int -> x0 "Inlining Arg"
+; V55 tmp45 [V55,T67] ( 2, 1 ) int -> x0 "Inline return value spill temp"
+; V56 tmp46 [V56,T31] ( 3, 3 ) int -> x0 "Inlining Arg"
;* V57 tmp47 [V57 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
;* V58 tmp48 [V58 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V59 tmp49 [V59,T26] ( 3, 3 ) ref -> x1 class-hnd exact single-def "Inlining Arg" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
+; V59 tmp49 [V59,T25] ( 3, 3 ) ref -> x1 class-hnd exact single-def "Inlining Arg" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
;* V60 tmp50 [V60 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V61 tmp51 [V61,T69] ( 2, 1 ) int -> x2 "Inline return value spill temp"
-; V62 tmp52 [V62,T33] ( 3, 3 ) int -> x2 "Inlining Arg"
+; V61 tmp51 [V61,T68] ( 2, 1 ) int -> x2 "Inline return value spill temp"
+; V62 tmp52 [V62,T32] ( 3, 3 ) int -> x2 "Inlining Arg"
;* V63 tmp53 [V63 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
;* V64 tmp54 [V64 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V65 tmp55 [V65,T27] ( 3, 3 ) ref -> x1 class-hnd exact single-def "Inlining Arg" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
+; V65 tmp55 [V65,T26] ( 3, 3 ) ref -> x1 class-hnd exact single-def "Inlining Arg" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
;* V66 tmp56 [V66 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V67 tmp57 [V67,T70] ( 2, 1 ) int -> x0 "Inline return value spill temp"
-; V68 tmp58 [V68,T34] ( 3, 3 ) int -> x0 "Inlining Arg"
+; V67 tmp57 [V67,T69] ( 2, 1 ) int -> x0 "Inline return value spill temp"
+; V68 tmp58 [V68,T33] ( 3, 3 ) int -> x0 "Inlining Arg"
;* V69 tmp59 [V69 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
;* V70 tmp60 [V70 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V71 tmp61 [V71,T28] ( 3, 3 ) ref -> x1 class-hnd exact single-def "Inlining Arg" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
+; V71 tmp61 [V71,T27] ( 3, 3 ) ref -> x1 class-hnd exact single-def "Inlining Arg" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
;* V72 tmp62 [V72 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V73 tmp63 [V73,T71] ( 2, 1 ) int -> x2 "Inline return value spill temp"
-; V74 tmp64 [V74,T35] ( 3, 3 ) int -> x2 "Inlining Arg"
+; V73 tmp63 [V73,T70] ( 2, 1 ) int -> x2 "Inline return value spill temp"
+; V74 tmp64 [V74,T34] ( 3, 3 ) int -> x2 "Inlining Arg"
;* V75 tmp65 [V75 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
;* V76 tmp66 [V76 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V77 tmp67 [V77,T29] ( 3, 3 ) ref -> x1 class-hnd exact single-def "Inlining Arg" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
+; V77 tmp67 [V77,T28] ( 3, 3 ) ref -> x1 class-hnd exact single-def "Inlining Arg" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
;* V78 tmp68 [V78 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V79 tmp69 [V79,T72] ( 2, 1 ) int -> x2 "Inline return value spill temp"
-; V80 tmp70 [V80,T36] ( 3, 3 ) int -> x2 "Inlining Arg"
-; V81 tmp71 [V81,T53] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
-; V82 tmp72 [V82,T54] ( 2, 2 ) ref -> x0 single-def "argument with side effect"
-; V83 tmp73 [V83,T55] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
-; V84 tmp74 [V84,T56] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
-; V85 tmp75 [V85,T30] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
+; V79 tmp69 [V79,T71] ( 2, 1 ) int -> x2 "Inline return value spill temp"
+; V80 tmp70 [V80,T35] ( 3, 3 ) int -> x2 "Inlining Arg"
+; V81 tmp71 [V81,T52] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
+; V82 tmp72 [V82,T53] ( 2, 2 ) ref -> x0 single-def "argument with side effect"
+; V83 tmp73 [V83,T54] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
+; V84 tmp74 [V84,T55] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
+; V85 tmp75 [V85,T29] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
; V86 tmp76 [V86,T06] ( 3, 18 ) ref -> x0 "argument with side effect"
; V87 tmp77 [V87,T08] ( 2, 16 ) ref -> x1 "argument with side effect"
-; V88 tmp78 [V88,T09] ( 2, 16 ) ref -> x27 "argument with side effect"
-; V89 PSPSym [V89,T73] ( 1, 1 ) long -> [fp+0x20] do-not-enreg[V] "PSPSym"
-; V90 cse0 [V90,T22] ( 2, 4.25) ref -> x25 hoist "CSE #13: moderate"
-; V91 cse1 [V91,T20] ( 10, 6 ) ref -> x22 "CSE #01: moderate"
-; V92 cse2 [V92,T41] ( 4, 2 ) ref -> x23 "CSE #08: conservative"
-; V93 cse3 [V93,T42] ( 4, 2 ) ref -> x0 "CSE #19: conservative"
-; V94 cse4 [V94,T43] ( 4, 2 ) ref -> x0 "CSE #21: conservative"
-; V95 cse5 [V95,T44] ( 4, 2 ) ref -> x0 "CSE #22: conservative"
-; V96 cse6 [V96,T58] ( 3, 1.50) ref -> x1 "CSE #06: conservative"
-; V97 cse7 [V97,T59] ( 3, 1.50) ref -> x0 "CSE #17: conservative"
+; V88 tmp78 [V88,T09] ( 2, 16 ) ref -> x26 "argument with side effect"
+; V89 PSPSym [V89,T72] ( 1, 1 ) long -> [fp+0x18] do-not-enreg[V] "PSPSym"
+; V90 cse0 [V90,T20] ( 10, 6 ) ref -> x22 "CSE #01: moderate"
+; V91 cse1 [V91,T40] ( 4, 2 ) ref -> x23 "CSE #08: moderate"
+; V92 cse2 [V92,T41] ( 4, 2 ) ref -> x0 "CSE #17: moderate"
+; V93 cse3 [V93,T42] ( 4, 2 ) ref -> x0 "CSE #19: moderate"
+; V94 cse4 [V94,T43] ( 4, 2 ) ref -> x0 "CSE #20: moderate"
+; V95 cse5 [V95,T57] ( 3, 1.50) ref -> x1 "CSE #06: conservative"
+; V96 cse6 [V96,T58] ( 3, 1.50) ref -> x0 "CSE #15: conservative"
+; V97 cse7 [V97,T59] ( 3, 1.50) ref -> x1 "CSE #16: conservative"
; V98 cse8 [V98,T60] ( 3, 1.50) ref -> x1 "CSE #18: conservative"
-; V99 cse9 [V99,T61] ( 3, 1.50) ref -> x1 "CSE #20: conservative"
-; V100 cse10 [V100,T02] ( 4, 36 ) int -> x1 "CSE #14: aggressive"
-; V101 cse11 [V101,T14] ( 7, 9.50) long -> x24 multi-def "CSE #11: aggressive"
-; V102 rat0 [V102,T04] ( 5, 30 ) ref -> x26 "replacement local"
-; V103 rat1 [V103,T13] ( 3, 10 ) long -> x2 "CSE for expectedClsNode"
+; V99 cse9 [V99,T02] ( 4, 36 ) int -> x1 "CSE #12: aggressive"
+; V100 cse10 [V100,T14] ( 7, 9.50) long -> x24 multi-def "CSE #11: aggressive"
+; V101 rat0 [V101,T04] ( 5, 30 ) ref -> x25 "replacement local"
+; V102 rat1 [V102,T13] ( 3, 10 ) long -> x2 "CSE for expectedClsNode"
;
-; Lcl frame size = 24
+; Lcl frame size = 16
G_M27682_IG01:
- stp fp, lr, [sp, #-0x70]!
- stp x19, x20, [sp, #0x28]
- stp x21, x22, [sp, #0x38]
- stp x23, x24, [sp, #0x48]
- stp x25, x26, [sp, #0x58]
- str x27, [sp, #0x68]
+ stp fp, lr, [sp, #-0x60]!
+ stp x19, x20, [sp, #0x20]
+ stp x21, x22, [sp, #0x30]
+ stp x23, x24, [sp, #0x40]
+ stp x25, x26, [sp, #0x50]
mov fp, sp
- add x3, sp, #112
- str x3, [fp, #0x20] // [V89 PSPSym]
+ add x3, sp, #96
+ str x3, [fp, #0x18] // [V89 PSPSym]
mov x19, x0
mov x20, x1
mov x21, x2
- ;; size=48 bbWeight=1 PerfScore 9.50
+ ;; size=44 bbWeight=1 PerfScore 8.50
G_M27682_IG02:
ldr x22, [x19, #0x18]
cbz x22, G_M27682_IG07
;; size=8 bbWeight=1 PerfScore 4.00
G_M27682_IG03:
mov x1, x22
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFCLASS
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbnz x0, G_M27682_IG07
mov x1, x22
ldr w0, [x1, #0x70]
tbnz w0, #5, G_M27682_IG04
ldrb w0, [x1, #0x74]
cbz w0, G_M27682_IG05
;; size=60 bbWeight=0.50 PerfScore 8.50
G_M27682_IG04:
mov w0, wzr
b G_M27682_IG06
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M27682_IG05:
ldrb w0, [x1, #0x75]
cmp w0, #0
cset x0, eq
;; size=12 bbWeight=0.50 PerfScore 2.00
G_M27682_IG06:
cbnz w0, G_M27682_IG11
b G_M27682_IG08
;; size=8 bbWeight=0.50 PerfScore 1.00
G_M27682_IG07:
cbz x22, G_M27682_IG09
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M27682_IG08:
mov x1, x22
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFCLASS
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbnz x0, G_M27682_IG09
ldrb w1, [x22, #0x75]
cbnz w1, G_M27682_IG11
b G_M27682_IG10
;; size=52 bbWeight=0.50 PerfScore 6.75
G_M27682_IG09:
- cbz x22, G_M27682_IG48
+ cbz x22, G_M27682_IG47
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M27682_IG10:
mov x1, x22
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFCLASS
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbnz x0, G_M27682_IG48
+ cbnz x0, G_M27682_IG47
ldr w0, [x22, #0x70]
- tbz w0, #5, G_M27682_IG48
+ tbz w0, #5, G_M27682_IG47
;; size=48 bbWeight=0.50 PerfScore 6.25
G_M27682_IG11:
mov x0, x20
movz x1, #0xD1FFAB1E // code for System.CodeDom.CodeTypeMember:get_CustomAttributes():System.CodeDom.CodeAttributeDeclarationCollection:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
movz x1, #0xD1FFAB1E // code for System.Collections.CollectionBase:get_Count():int:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
cmp w0, #0
ble G_M27682_IG12
mov x0, x20
movz x1, #0xD1FFAB1E // code for System.CodeDom.CodeTypeMember:get_CustomAttributes():System.CodeDom.CodeAttributeDeclarationCollection:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
mov x1, x0
mov x0, x19
mov w2, wzr
mov x3, xzr
mov w4, wzr
movz x5, #0xD1FFAB1E // code for Microsoft.VisualBasic.VBCodeGenerator:OutputAttributes(System.CodeDom.CodeAttributeDeclarationCollection,ubyte,System.String,ubyte):this
movk x5, #0xD1FFAB1E LSL #16
movk x5, #0xD1FFAB1E LSL #32
ldr x5, [x5]
blr x5
;; size=124 bbWeight=0.50 PerfScore 16.50
G_M27682_IG12:
ldr x22, [x20, #0x10]
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
cmp x22, #0
csel x22, x22, x1, ne
ldr x1, [x20, #0x58]
cbz x1, G_M27682_IG13
mov x0, x19
mov w2, wzr
movz x3, #0xD1FFAB1E // code for Microsoft.VisualBasic.VBCodeGenerator:GetBaseTypeOutput(System.CodeDom.CodeTypeReference,ubyte):System.String:this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov w1, #46
mov w2, #95
movz x3, #0xD1FFAB1E // code for System.String:Replace(ushort,ushort):System.String:this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
ldr wzr, [x0]
blr x3
ldr x2, [x20, #0x10]
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
cmp x2, #0
csel x2, x2, x1, ne
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x3, #0xD1FFAB1E // code for System.String:Concat(System.String,System.String,System.String):System.String
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x15, x0
add x14, x20, #16
bl CORINFO_HELP_ASSIGN_REF
;; size=160 bbWeight=0.50 PerfScore 20.00
G_M27682_IG13:
ldr x23, [x19, #0x18]
cbz x23, G_M27682_IG14
mov x1, x23
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFCLASS
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbnz x0, G_M27682_IG14
ldr w0, [x23, #0x70]
tbz w0, #5, G_M27682_IG14
ldr w0, [x20, #0x40]
and w0, w0, #240
cmp w0, #16
bne G_M27682_IG17
ldr x0, [x19, #0x08]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:Write(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
b G_M27682_IG17
;; size=116 bbWeight=0.50 PerfScore 17.75
G_M27682_IG14:
ldr x1, [x20, #0x58]
cbnz x1, G_M27682_IG15
ldr w1, [x20, #0x40]
mov x0, x19
movz x2, #0xD1FFAB1E // code for Microsoft.VisualBasic.VBCodeGenerator:OutputMemberAccessModifier(int):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x0, x20
mov x1, x21
movz x2, #0xD1FFAB1E // code for Microsoft.VisualBasic.VBCodeGenerator:PropertyIsOverloaded(System.CodeDom.CodeMemberProperty,System.CodeDom.CodeTypeDeclaration):ubyte
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz w0, G_M27682_IG15
ldr x0, [x19, #0x08]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:Write(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
;; size=108 bbWeight=0.50 PerfScore 16.75
G_M27682_IG15:
ldr w0, [x20, #0x40]
and w0, w0, #240
cmp w0, #16
bne G_M27682_IG16
ldr x0, [x19, #0x08]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:Write(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
;; size=56 bbWeight=0.50 PerfScore 9.00
G_M27682_IG16:
ldr w1, [x20, #0x40]
mov x0, x19
movz x2, #0xD1FFAB1E // code for Microsoft.VisualBasic.VBCodeGenerator:OutputMemberScopeModifier(int):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=28 bbWeight=0.50 PerfScore 4.50
G_M27682_IG17:
ldr x0, [x20, #0x70]
movz x1, #0xD1FFAB1E // code for System.Collections.CollectionBase:get_Count():int:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
cmp w0, #0
ble G_M27682_IG21
ldr x0, [x20, #0x10]
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
cmp x0, #0
csel x0, x0, x1, ne
cbz x0, G_M27682_IG21
;; size=64 bbWeight=0.50 PerfScore 9.75
G_M27682_IG18:
ldr w1, [x0, #0x08]
cmp w1, #4
bne G_M27682_IG21
;; size=12 bbWeight=0.25 PerfScore 1.12
G_M27682_IG19:
ldr x0, [x0, #0x0C]
orr x0, x0, #0xD1FFAB1E
movz x1, #105
movk x1, #116 LSL #16
movk x1, #101 LSL #32
movk x1, #109 LSL #48
cmp x0, x1
bne G_M27682_IG21
;; size=32 bbWeight=0.12 PerfScore 0.88
G_M27682_IG20:
ldr x0, [x19, #0x08]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:Write(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
;; size=40 bbWeight=0.50 PerfScore 6.50
G_M27682_IG21:
ldrb w0, [x20, #0x44]
cbnz w0, G_M27682_IG23
ldr x0, [x20, #0x60]
movz x1, #0xD1FFAB1E // code for System.Collections.CollectionBase:get_Count():int:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
cmp w0, #0
bgt G_M27682_IG23
ldrb w0, [x20, #0x45]
cbnz w0, G_M27682_IG22
ldr x0, [x20, #0x68]
movz x1, #0xD1FFAB1E // code for System.Collections.CollectionBase:get_Count():int:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
cmp w0, #0
ble G_M27682_IG24
;; size=88 bbWeight=0.50 PerfScore 17.00
G_M27682_IG22:
ldr x0, [x19, #0x08]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:Write(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
b G_M27682_IG24
;; size=44 bbWeight=0.50 PerfScore 7.00
G_M27682_IG23:
ldrb w0, [x20, #0x45]
cbnz w0, G_M27682_IG24
ldr x0, [x20, #0x68]
movz x1, #0xD1FFAB1E // code for System.Collections.CollectionBase:get_Count():int:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
cmp w0, #0
bgt G_M27682_IG24
ldr x0, [x19, #0x08]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:Write(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
;; size=84 bbWeight=0.50 PerfScore 15.00
G_M27682_IG24:
ldr x0, [x19, #0x08]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:Write(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
ldr x1, [x20, #0x10]
movz x0, #8
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
cmp x1, #0
csel x1, x1, x0, ne
mov x0, x19
movz x2, #0xD1FFAB1E // code for Microsoft.VisualBasic.VBCodeGenerator:OutputIdentifier(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
ldr x0, [x19, #0x08]
mov w1, #40
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:Write(ushort):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
ldr x0, [x20, #0x70]
movz x1, #0xD1FFAB1E // code for System.Collections.CollectionBase:get_Count():int:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
cmp w0, #0
ble G_M27682_IG25
ldr x1, [x20, #0x70]
mov x0, x19
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.CodeGenerator:OutputParameters(System.CodeDom.CodeParameterDeclarationExpressionCollection):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=184 bbWeight=0.50 PerfScore 29.25
G_M27682_IG25:
ldr x0, [x19, #0x08]
mov w1, #41
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:Write(ushort):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
ldr x0, [x19, #0x08]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:Write(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
mov x0, x20
movz x1, #0xD1FFAB1E // code for System.CodeDom.CodeMemberProperty:get_Type():System.CodeDom.CodeTypeReference:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
mov x1, x0
mov x0, x19
movz x2, #0xD1FFAB1E // code for Microsoft.VisualBasic.VBCodeGenerator:OutputType(System.CodeDom.CodeTypeReference):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x0, x20
movz x1, #0xD1FFAB1E // code for System.CodeDom.CodeMemberProperty:get_Type():System.CodeDom.CodeTypeReference:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
mov x1, x0
mov x0, x19
movz x2, #0xD1FFAB1E // code for Microsoft.VisualBasic.VBCodeGenerator:OutputArrayPostfix(System.CodeDom.CodeTypeReference):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x0, x20
movz x1, #0xD1FFAB1E // code for System.CodeDom.CodeMemberProperty:get_ImplementationTypes():System.CodeDom.CodeTypeReferenceCollection:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
movz x1, #0xD1FFAB1E // code for System.Collections.CollectionBase:get_Count():int:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
cmp w0, #0
bgt G_M27682_IG26
ldr x0, [x20, #0x58]
- cbz x0, G_M27682_IG43
+ cbz x0, G_M27682_IG42
ldr x0, [x19, #0x08]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:Write(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
ldr x1, [x20, #0x58]
mov x0, x19
movz x2, #0xD1FFAB1E // code for Microsoft.VisualBasic.VBCodeGenerator:OutputType(System.CodeDom.CodeTypeReference):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
ldr x0, [x19, #0x08]
mov w1, #46
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:Write(ushort):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
mov x0, x19
mov x1, x22
movz x2, #0xD1FFAB1E // code for Microsoft.VisualBasic.VBCodeGenerator:OutputIdentifier(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- b G_M27682_IG43
+ b G_M27682_IG42
;; size=372 bbWeight=0.50 PerfScore 55.75
G_M27682_IG26:
ldr x0, [x19, #0x08]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:Write(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
mov w23, #1
mov x0, x20
movz x1, #0xD1FFAB1E // code for System.CodeDom.CodeMemberProperty:get_ImplementationTypes():System.CodeDom.CodeTypeReferenceCollection:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
ldr x0, [x0, #0x08]
ldr x1, [x0]
ldr x1, [x1, #0x58]
ldr x1, [x1]
blr x1
mov x1, x0
- str x1, [fp, #0x18] // [V06 loc3]
+ str x1, [fp, #0x10] // [V06 loc3]
;; size=96 bbWeight=0.50 PerfScore 17.00
G_M27682_IG27:
mov x0, x1
movz x24, #0xD1FFAB1E
movk x24, #0xD1FFAB1E LSL #16
movk x24, #0xD1FFAB1E LSL #32
mov x11, x24
ldr xip0, [x11]
blr xip0
- cbz w0, G_M27682_IG42
+ cbz w0, G_M27682_IG41
;; size=32 bbWeight=0.50 PerfScore 3.75
G_M27682_IG28:
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr x25, [x0]
- ;; size=16 bbWeight=0.25 PerfScore 1.12
-G_M27682_IG29:
- ldr x0, [fp, #0x18] // [V06 loc3]
+ ldr x0, [fp, #0x10] // [V06 loc3]
add x11, x24, #8
ldr xip0, [x11]
blr xip0
- mov x26, x0
- cbz x26, G_M27682_IG32
+ mov x25, x0
+ cbz x25, G_M27682_IG31
;; size=24 bbWeight=4 PerfScore 32.00
-G_M27682_IG30:
+G_M27682_IG29:
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
- ldr x1, [x26]
+ ldr x1, [x25]
cmp x1, x2
- beq G_M27682_IG32
+ beq G_M27682_IG31
;; size=24 bbWeight=2 PerfScore 12.00
-G_M27682_IG31:
+G_M27682_IG30:
mov x1, x0
mov x0, x2
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_CHKCASTCLASS_SPECIAL
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- mov x26, x0
+ mov x25, x0
;; size=32 bbWeight=1 PerfScore 7.00
-G_M27682_IG32:
- cbnz w23, G_M27682_IG34
+G_M27682_IG31:
+ cbnz w23, G_M27682_IG33
;; size=4 bbWeight=4 PerfScore 4.00
-G_M27682_IG33:
+G_M27682_IG32:
ldr x0, [x19, #0x08]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:Write(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
- b G_M27682_IG35
+ b G_M27682_IG34
;; size=44 bbWeight=2 PerfScore 28.00
-G_M27682_IG34:
+G_M27682_IG33:
mov w23, wzr
;; size=4 bbWeight=2 PerfScore 1.00
-G_M27682_IG35:
- ldr x27, [x19, #0x08]
+G_M27682_IG34:
+ ldr x26, [x19, #0x08]
mov x0, x19
- mov x1, x26
+ mov x1, x25
movz x2, #0xD1FFAB1E // code for Microsoft.VisualBasic.VBCodeGenerator:GetTypeOutputWithoutArrayPostFix(System.CodeDom.CodeTypeReference):System.String:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x1, x0
- mov x0, x27
+ mov x0, x26
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:Write(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
ldr x0, [x19, #0x08]
mov w1, #46
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:Write(ushort):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
- ldr x26, [x19, #0x08]
- mov x0, x25
+ ldr x25, [x19, #0x08]
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #32
+ ldr x0, [x0]
ldr w1, [x22, #0x08]
cmp w1, #0
- ble G_M27682_IG39
- ;; size=116 bbWeight=4 PerfScore 156.00
-G_M27682_IG36:
+ ble G_M27682_IG38
+ ;; size=124 bbWeight=4 PerfScore 170.00
+G_M27682_IG35:
sub w1, w1, #1
cmp w1, #16
- bge G_M27682_IG39
+ bge G_M27682_IG38
;; size=12 bbWeight=2 PerfScore 4.00
-G_M27682_IG37:
+G_M27682_IG36:
cmp w1, #16
- bhs G_M27682_IG41
+ bhs G_M27682_IG40
add x0, x0, #16
ldr x0, [x0, w1, UXTW #3]
- cbz x0, G_M27682_IG39
+ cbz x0, G_M27682_IG38
;; size=20 bbWeight=16 PerfScore 96.00
-G_M27682_IG38:
+G_M27682_IG37:
mov x1, x22
mov w2, #1
movz x3, #0xD1FFAB1E // code for System.Collections.Specialized.FixedStringLookup:Contains(System.String[],System.String,ubyte):ubyte
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
- cbz w0, G_M27682_IG39
+ cbz w0, G_M27682_IG38
mov x1, x22
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
movz x3, #0xD1FFAB1E // code for System.String:Concat(System.String,System.String,System.String):System.String
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x1, x0
- b G_M27682_IG40
+ b G_M27682_IG39
;; size=88 bbWeight=2 PerfScore 36.00
-G_M27682_IG39:
+G_M27682_IG38:
mov x1, x22
;; size=4 bbWeight=8 PerfScore 4.00
-G_M27682_IG40:
- mov x0, x26
+G_M27682_IG39:
+ mov x0, x25
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:Write(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
- ldr x0, [fp, #0x18] // [V06 loc3]
+ ldr x0, [fp, #0x10] // [V06 loc3]
mov x11, x24
ldr xip0, [x11]
blr xip0
- cbnz w0, G_M27682_IG29
- b G_M27682_IG42
+ cbnz w0, G_M27682_IG28
+ b G_M27682_IG41
;; size=52 bbWeight=4 PerfScore 70.00
-G_M27682_IG41:
+G_M27682_IG40:
bl CORINFO_HELP_RNGCHKFAIL
brk_unix #0
;; size=8 bbWeight=0 PerfScore 0.00
-G_M27682_IG42:
- ldr x1, [fp, #0x18] // [V06 loc3]
+G_M27682_IG41:
+ ldr x1, [fp, #0x10] // [V06 loc3]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFINTERFACE
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbz x0, G_M27682_IG43
+ cbz x0, G_M27682_IG42
add x11, x24, #16
ldr xip0, [x11]
blr xip0
;; size=52 bbWeight=0.50 PerfScore 7.25
-G_M27682_IG43:
+G_M27682_IG42:
ldr x0, [x19, #0x08]
movz x1, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:WriteLine():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
ldr w0, [x21, #0x70]
- tbnz w0, #5, G_M27682_IG46
+ tbnz w0, #5, G_M27682_IG45
ldr w0, [x20, #0x40]
and w0, w0, #15
cmp w0, #1
- beq G_M27682_IG46
+ beq G_M27682_IG45
ldr x0, [x19, #0x08]
ldr w24, [x0, #0x30]
ldrsb wzr, [x0]
add w1, w24, #1
cmp w1, #0
csel w1, w1, wzr, ge
str w1, [x0, #0x30]
mov x0, x20
movz x1, #0xD1FFAB1E // code for System.CodeDom.CodeMemberProperty:get_HasGet():ubyte:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
- cbz w0, G_M27682_IG44
+ cbz w0, G_M27682_IG43
ldr x0, [x19, #0x08]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:WriteLine(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
mov x0, x19
movz x1, #0xD1FFAB1E // code for System.CodeDom.Compiler.CodeGenerator:get_IsCurrentInterface():ubyte:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
- cbnz w0, G_M27682_IG44
+ cbnz w0, G_M27682_IG43
ldr x1, [x19, #0x08]
ldr w24, [x1, #0x30]
ldrsb wzr, [x1]
add w0, w24, #1
cmp w0, #0
csel w0, w0, wzr, ge
str w0, [x1, #0x30]
ldr x1, [x20, #0x60]
mov x0, x19
movz x2, #0xD1FFAB1E // code for Microsoft.VisualBasic.VBCodeGenerator:GenerateVBStatements(System.CodeDom.CodeStatementCollection):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
add x14, x20, #16
mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
ldr x0, [x19, #0x08]
ldr w24, [x0, #0x30]
mov x1, x0
ldrsb wzr, [x1]
sub w2, w24, #1
cmp w2, #0
csel w2, w2, wzr, ge
str w2, [x1, #0x30]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:WriteLine(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=308 bbWeight=0.50 PerfScore 50.25
-G_M27682_IG44:
+G_M27682_IG43:
mov x0, x20
movz x1, #0xD1FFAB1E // code for System.CodeDom.CodeMemberProperty:get_HasSet():ubyte:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
- cbz w0, G_M27682_IG45
+ cbz w0, G_M27682_IG44
ldr x0, [x19, #0x08]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:WriteLine(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
mov x0, x19
movz x1, #0xD1FFAB1E // code for System.CodeDom.Compiler.CodeGenerator:get_IsCurrentInterface():ubyte:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
- cbnz w0, G_M27682_IG45
+ cbnz w0, G_M27682_IG44
ldr x1, [x19, #0x08]
ldr w24, [x1, #0x30]
ldrsb wzr, [x1]
add w0, w24, #1
cmp w0, #0
csel w0, w0, wzr, ge
str w0, [x1, #0x30]
ldr x1, [x20, #0x68]
mov x0, x19
movz x2, #0xD1FFAB1E // code for Microsoft.VisualBasic.VBCodeGenerator:GenerateVBStatements(System.CodeDom.CodeStatementCollection):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
ldr x0, [x19, #0x08]
ldr w24, [x0, #0x30]
mov x1, x0
ldrsb wzr, [x1]
sub w2, w24, #1
cmp w2, #0
csel w2, w2, wzr, ge
str w2, [x1, #0x30]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:WriteLine(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=216 bbWeight=0.50 PerfScore 33.25
-G_M27682_IG45:
+G_M27682_IG44:
ldr x0, [x19, #0x08]
ldr w24, [x0, #0x30]
mov x1, x0
ldrsb wzr, [x1]
sub w2, w24, #1
cmp w2, #0
csel w2, w2, wzr, ge
str w2, [x1, #0x30]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:WriteLine(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=64 bbWeight=0.50 PerfScore 9.50
-G_M27682_IG46:
+G_M27682_IG45:
add x14, x20, #16
mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
;; size=12 bbWeight=0.50 PerfScore 1.00
+G_M27682_IG46:
+ ldp x25, x26, [sp, #0x50]
+ ldp x23, x24, [sp, #0x40]
+ ldp x21, x22, [sp, #0x30]
+ ldp x19, x20, [sp, #0x20]
+ ldp fp, lr, [sp], #0x60
+ ret lr
+ ;; size=24 bbWeight=0.50 PerfScore 3.00
G_M27682_IG47:
- ldr x27, [sp, #0x68]
- ldp x25, x26, [sp, #0x58]
- ldp x23, x24, [sp, #0x48]
- ldp x21, x22, [sp, #0x38]
- ldp x19, x20, [sp, #0x28]
- ldp fp, lr, [sp], #0x70
+ ldp x25, x26, [sp, #0x50]
+ ldp x23, x24, [sp, #0x40]
+ ldp x21, x22, [sp, #0x30]
+ ldp x19, x20, [sp, #0x20]
+ ldp fp, lr, [sp], #0x60
ret lr
- ;; size=28 bbWeight=0.50 PerfScore 4.00
+ ;; size=24 bbWeight=0.50 PerfScore 3.00
G_M27682_IG48:
- ldr x27, [sp, #0x68]
- ldp x25, x26, [sp, #0x58]
- ldp x23, x24, [sp, #0x48]
- ldp x21, x22, [sp, #0x38]
- ldp x19, x20, [sp, #0x28]
- ldp fp, lr, [sp], #0x70
- ret lr
- ;; size=28 bbWeight=0.50 PerfScore 4.00
-G_M27682_IG49:
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]
- add x3, fp, #112
- str x3, [sp, #0x10]
- ;; size=32 bbWeight=0 PerfScore 0.00
-G_M27682_IG50:
- ldr x1, [fp, #0x18] // [V06 loc3]
+ stp x19, x20, [sp, #0x20]
+ stp x21, x22, [sp, #0x30]
+ stp x23, x24, [sp, #0x40]
+ stp x25, x26, [sp, #0x50]
+ add x3, fp, #96
+ str x3, [sp, #0x18]
+ ;; size=28 bbWeight=0 PerfScore 0.00
+G_M27682_IG49:
+ ldr x1, [fp, #0x10] // [V06 loc3]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFINTERFACE
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- cbz x0, G_M27682_IG51
+ cbz x0, G_M27682_IG50
movz x24, #0xD1FFAB1E
movk x24, #0xD1FFAB1E LSL #16
movk x24, #0xD1FFAB1E LSL #32
add x11, x24, #16
ldr xip0, [x11]
blr xip0
;; size=64 bbWeight=0 PerfScore 0.00
-G_M27682_IG51:
- ldr x27, [sp, #0x58]
- ldp x25, x26, [sp, #0x48]
- ldp x23, x24, [sp, #0x38]
- ldp x21, x22, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
+G_M27682_IG50:
+ ldp x25, x26, [sp, #0x50]
+ ldp x23, x24, [sp, #0x40]
+ ldp x21, x22, [sp, #0x30]
+ ldp x19, x20, [sp, #0x20]
ldp fp, lr, [sp], #0x60
ret lr
- ;; size=28 bbWeight=0 PerfScore 0.00
+ ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 3172, prolog size 48, PerfScore 847.62, instruction count 793, allocated bytes for code 3172 (MethodHash=e1dd93dd) for method Microsoft.VisualBasic.VBCodeGenerator:GenerateProperty(System.CodeDom.CodeMemberProperty,System.CodeDom.CodeTypeDeclaration):this (FullOpts)
+; Total bytes of code 3144, prolog size 44, PerfScore 857.50, instruction count 786, allocated bytes for code 3144 (MethodHash=e1dd93dd) for method Microsoft.VisualBasic.VBCodeGenerator:GenerateProperty(System.CodeDom.CodeMemberProperty,System.CodeDom.CodeTypeDeclaration):this (FullOpts)
-24 (-2.35 % of base) - System.Reflection.Emit.RuntimeILGenerator:EmitCall(System.Reflection.Emit.OpCode,System.Reflection.MethodInfo,System.Type[]):this
; Assembly listing for method System.Reflection.Emit.RuntimeILGenerator:EmitCall(System.Reflection.Emit.OpCode,System.Reflection.MethodInfo,System.Type[]):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; 20 single block inlinees; 6 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 25, 21 ) ref -> x19 this class-hnd single-def <System.Reflection.Emit.RuntimeILGenerator>
-; V01 arg1 [V01,T04] ( 5, 5 ) struct ( 8) [fp+0x18] do-not-enreg[SF] ld-addr-op single-def <System.Reflection.Emit.OpCode>
+; V01 arg1 [V01,T04] ( 5, 5 ) struct ( 8) [fp+0x10] do-not-enreg[SF] ld-addr-op single-def <System.Reflection.Emit.OpCode>
; V02 arg2 [V02,T01] ( 10, 9 ) ref -> x20 class-hnd single-def <System.Reflection.MethodInfo>
; V03 arg3 [V03,T06] ( 5, 4.50) ref -> x21 class-hnd single-def <System.Type[]>
-; V04 loc0 [V04,T02] ( 11, 7.50) int -> x23
-; V05 loc1 [V05,T24] ( 2, 2 ) int -> x24
-; V06 loc2 [V06,T17] ( 3, 2.50) ref -> x0 class-hnd single-def <System.Type[]>
+; V04 loc0 [V04,T02] ( 11, 7.50) int -> x24
+; V05 loc1 [V05,T25] ( 2, 2 ) int -> x25
+; V06 loc2 [V06,T18] ( 3, 2.50) ref -> x0 class-hnd single-def <System.Type[]>
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V08 tmp1 [V08,T22] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <System.Reflection.Emit.SymbolMethod>
-; V09 tmp2 [V09,T36] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
+;* V08 tmp1 [V08,T23] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <System.Reflection.Emit.SymbolMethod>
+; V09 tmp2 [V09,T37] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
;* V10 tmp3 [V10 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Emit.OpCode>
;* V11 tmp4 [V11 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V12 tmp5 [V12 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Emit.OpCode>
;* V13 tmp6 [V13 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V14 tmp7 [V14 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Emit.OpCode>
;* V15 tmp8 [V15 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
-; V16 tmp9 [V16,T28] ( 3, 1.50) ref -> x26 class-hnd exact single-def "Inline stloc first use temp" <ubyte[]>
-; V17 tmp10 [V17,T30] ( 2, 1 ) int -> x1 "Inline return value spill temp"
-; V18 tmp11 [V18,T14] ( 3, 3 ) int -> x0 "Inlining Arg"
-; V19 tmp12 [V19,T15] ( 3, 3 ) int -> x1 "Inlining Arg"
+; V16 tmp9 [V16,T29] ( 3, 1.50) ref -> x27 class-hnd exact single-def "Inline stloc first use temp" <ubyte[]>
+; V17 tmp10 [V17,T31] ( 2, 1 ) int -> x1 "Inline return value spill temp"
+; V18 tmp11 [V18,T15] ( 3, 3 ) int -> x0 "Inlining Arg"
+; V19 tmp12 [V19,T16] ( 3, 3 ) int -> x1 "Inlining Arg"
;* V20 tmp13 [V20 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Emit.OpCode>
;* V21 tmp14 [V21 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V22 tmp15 [V22 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Emit.OpCode>
;* V23 tmp16 [V23 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
;* V24 tmp17 [V24 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.Span`1[ubyte]>
; V25 tmp18 [V25,T03] ( 5, 7 ) ref -> x0 class-hnd single-def "Inlining Arg" <ubyte[]>
; V26 tmp19 [V26,T07] ( 5, 6 ) int -> x1 "Inlining Arg"
;* V27 tmp20 [V27 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V28 tmp21 [V28 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
-; V29 tmp22 [V29,T23] ( 2, 2 ) byref -> x2 single-def "Inlining Arg"
-; V30 tmp23 [V30,T25] ( 2, 2 ) int -> x0 "Inlining Arg"
+; V29 tmp22 [V29,T24] ( 2, 2 ) byref -> x2 single-def "Inlining Arg"
+; V30 tmp23 [V30,T26] ( 2, 2 ) int -> x0 "Inlining Arg"
;* V31 tmp24 [V31 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
;* V32 tmp25 [V32 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V33 tmp26 [V33 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
-; V34 tmp27 [V34,T26] ( 2, 2 ) int -> x0 "field V10.m_value (fldOffset=0x0)" P-INDEP
+; V34 tmp27 [V34,T27] ( 2, 2 ) int -> x0 "field V10.m_value (fldOffset=0x0)" P-INDEP
;* V35 tmp28 [V35 ] ( 0, 0 ) int -> zero-ref "field V10.m_flags (fldOffset=0x4)" P-INDEP
-; V36 tmp29 [V36,T31] ( 2, 1 ) int -> x0 "field V12.m_value (fldOffset=0x0)" P-INDEP
+; V36 tmp29 [V36,T32] ( 2, 1 ) int -> x0 "field V12.m_value (fldOffset=0x0)" P-INDEP
;* V37 tmp30 [V37 ] ( 0, 0 ) int -> zero-ref "field V12.m_flags (fldOffset=0x4)" P-INDEP
-; V38 tmp31 [V38,T32] ( 2, 1 ) int -> x0 "field V14.m_value (fldOffset=0x0)" P-INDEP
+; V38 tmp31 [V38,T33] ( 2, 1 ) int -> x0 "field V14.m_value (fldOffset=0x0)" P-INDEP
;* V39 tmp32 [V39 ] ( 0, 0 ) int -> zero-ref "field V14.m_flags (fldOffset=0x4)" P-INDEP
-; V40 tmp33 [V40,T33] ( 2, 1 ) int -> x0 "field V20.m_value (fldOffset=0x0)" P-INDEP
+; V40 tmp33 [V40,T34] ( 2, 1 ) int -> x0 "field V20.m_value (fldOffset=0x0)" P-INDEP
;* V41 tmp34 [V41 ] ( 0, 0 ) int -> zero-ref "field V20.m_flags (fldOffset=0x4)" P-INDEP
;* V42 tmp35 [V42 ] ( 0, 0 ) int -> zero-ref "field V22.m_value (fldOffset=0x0)" P-INDEP
-; V43 tmp36 [V43,T27] ( 2, 2 ) int -> x0 "field V22.m_flags (fldOffset=0x4)" P-INDEP
+; V43 tmp36 [V43,T28] ( 2, 2 ) int -> x0 "field V22.m_flags (fldOffset=0x4)" P-INDEP
;* V44 tmp37 [V44 ] ( 0, 0 ) byref -> zero-ref single-def "field V23._reference (fldOffset=0x0)" P-INDEP
;* V45 tmp38 [V45 ] ( 0, 0 ) int -> zero-ref "field V23._length (fldOffset=0x8)" P-INDEP
-; V46 tmp39 [V46,T19] ( 3, 2 ) byref -> x2 "field V24._reference (fldOffset=0x0)" P-INDEP
-; V47 tmp40 [V47,T20] ( 3, 2 ) int -> x0 "field V24._length (fldOffset=0x8)" P-INDEP
-; V48 tmp41 [V48,T29] ( 2, 1 ) byref -> x2 single-def "field V27._reference (fldOffset=0x0)" P-INDEP
-; V49 tmp42 [V49,T34] ( 2, 1 ) int -> x0 "field V27._length (fldOffset=0x8)" P-INDEP
+; V46 tmp39 [V46,T20] ( 3, 2 ) byref -> x2 "field V24._reference (fldOffset=0x0)" P-INDEP
+; V47 tmp40 [V47,T21] ( 3, 2 ) int -> x0 "field V24._length (fldOffset=0x8)" P-INDEP
+; V48 tmp41 [V48,T30] ( 2, 1 ) byref -> x2 single-def "field V27._reference (fldOffset=0x0)" P-INDEP
+; V49 tmp42 [V49,T35] ( 2, 1 ) int -> x0 "field V27._length (fldOffset=0x8)" P-INDEP
;* V50 tmp43 [V50 ] ( 0, 0 ) byref -> zero-ref single-def "field V28._reference (fldOffset=0x0)" P-INDEP
;* V51 tmp44 [V51 ] ( 0, 0 ) int -> zero-ref "field V28._length (fldOffset=0x8)" P-INDEP
;* V52 tmp45 [V52 ] ( 0, 0 ) byref -> zero-ref single-def "field V32._reference (fldOffset=0x0)" P-INDEP
;* V53 tmp46 [V53 ] ( 0, 0 ) int -> zero-ref "field V32._length (fldOffset=0x8)" P-INDEP
;* V54 tmp47 [V54 ] ( 0, 0 ) byref -> zero-ref single-def "field V33._reference (fldOffset=0x0)" P-INDEP
;* V55 tmp48 [V55 ] ( 0, 0 ) int -> zero-ref "field V33._length (fldOffset=0x8)" P-INDEP
-; V56 tmp49 [V56,T13] ( 5, 3.50) int -> x22 "V01.[000..004)"
+; V56 tmp49 [V56,T13] ( 5, 3.50) int -> x23 "V01.[000..004)"
; V57 tmp50 [V57,T08] ( 3, 6 ) ref -> x0 single-def "argument with side effect"
; V58 tmp51 [V58,T10] ( 3, 4 ) ref -> x1 single-def "argument with side effect"
; V59 tmp52 [V59,T11] ( 2, 4 ) ref -> x0 single-def "argument with side effect"
-; V60 tmp53 [V60,T37] ( 2, 0 ) ref -> x20 single-def "argument with side effect"
-; V61 tmp54 [V61,T38] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
-;* V62 cse0 [V62,T35] ( 0, 0 ) long -> zero-ref "CSE #02: moderate"
+; V60 tmp53 [V60,T38] ( 2, 0 ) ref -> x20 single-def "argument with side effect"
+; V61 tmp54 [V61,T39] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
+;* V62 cse0 [V62,T36] ( 0, 0 ) long -> zero-ref "CSE #02: moderate"
; V63 cse1 [V63,T09] ( 6, 4.50) int -> x1 "CSE #10: aggressive"
-; V64 cse2 [V64,T16] ( 3, 3 ) long -> x25 "CSE #09: moderate"
-; V65 cse3 [V65,T18] ( 3, 2.50) int -> x1 "CSE #07: moderate"
-; V66 cse4 [V66,T12] ( 5, 3.50) ref -> x25 "CSE #05: moderate"
-; V67 rat0 [V67,T05] ( 4, 7 ) ref -> x0 "replacement local"
-; V68 rat1 [V68,T21] ( 3, 2 ) long -> x4 "CSE for expectedClsNode"
+; V64 cse2 [V64,T17] ( 3, 3 ) long -> x26 "CSE #09: moderate"
+; V65 cse3 [V65,T19] ( 3, 2.50) int -> x1 "CSE #07: moderate"
+; V66 cse4 [V66,T12] ( 5, 3.50) ref -> x26 "CSE #05: moderate"
+; V67 cse5 [V67,T14] ( 5, 3.50) long -> x22 "CSE #03: moderate"
+; V68 rat0 [V68,T05] ( 4, 7 ) ref -> x0 "replacement local"
+; V69 rat1 [V69,T22] ( 3, 2 ) long -> x4 "CSE for expectedClsNode"
;
-; Lcl frame size = 16
+; Lcl frame size = 8
G_M2260_IG01:
stp fp, lr, [sp, #-0x60]!
- stp x19, x20, [sp, #0x20]
- stp x21, x22, [sp, #0x30]
- stp x23, x24, [sp, #0x40]
- stp x25, x26, [sp, #0x50]
+ 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
- str x1, [fp, #0x18] // [V01 arg1]
+ str x1, [fp, #0x10] // [V01 arg1]
mov x19, x0
mov x20, x2
mov x21, x3
- ;; size=40 bbWeight=1 PerfScore 8.00
+ ;; size=44 bbWeight=1 PerfScore 9.00
G_M2260_IG02:
mov x0, x20
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr w0, [x0]
tbz w0, #0, G_M2260_IG27
;; size=56 bbWeight=1 PerfScore 13.00
G_M2260_IG03:
- movz x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr w0, [x0]
- ldr w22, [fp, #0x18] // [V01 arg1]
+ movz x22, #0xD1FFAB1E // data for System.Reflection.Emit.OpCodes:Call
+ movk x22, #0xD1FFAB1E LSL #16
+ movk x22, #0xD1FFAB1E LSL #32
+ ldr w0, [x22]
+ ldr w23, [fp, #0x10] // [V01 arg1]
sxth w0, w0
- sxth w1, w22
+ sxth w1, w23
cmp w0, w1
beq G_M2260_IG05
- ;; size=32 bbWeight=1 PerfScore 8.50
+ ;; size=36 bbWeight=1 PerfScore 9.00
G_M2260_IG04:
- movz x0, #0xD1FFAB1E // data for System.Reflection.Emit.OpCodes:Callvirt
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr w0, [x0]
+ ldr w0, [x22, #0xD1FFAB1E]
sxth w0, w0
- sxth w1, w22
+ sxth w1, w23
cmp w0, w1
beq G_M2260_IG05
- movz x0, #0xD1FFAB1E // data for System.Reflection.Emit.OpCodes:Newobj
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr w0, [x0]
+ ldr w0, [x22, #0xD1FFAB1E]
sxth w0, w0
- sxth w1, w22
+ sxth w1, w23
cmp w0, w1
bne G_M2260_IG31
- ;; size=64 bbWeight=0.50 PerfScore 7.00
+ ;; size=40 bbWeight=0.50 PerfScore 5.50
G_M2260_IG05:
- mov w23, wzr
+ mov w24, wzr
ldr x0, [x19, #0x40]
ldr x1, [x0]
ldr x1, [x1, #0x48]
ldr x1, [x1, #0x08]
blr x1
mov x1, x0
cbz x0, G_M2260_IG07
;; size=32 bbWeight=1 PerfScore 15.00
G_M2260_IG06:
movz x4, #0xD1FFAB1E
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
ldr x2, [x0]
cmp x2, x4
bne G_M2260_IG30
;; size=24 bbWeight=0.50 PerfScore 3.00
G_M2260_IG07:
mov x1, x20
mov x2, x21
mov w3, wzr
movz x4, #0xD1FFAB1E // code for System.Reflection.Emit.RuntimeModuleBuilder:GetMethodTokenInternal(System.Reflection.MethodBase,System.Type[],ubyte):int:this
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
ldr x4, [x4]
ldr wzr, [x0]
blr x4
- sxtw w24, w0
+ sxtw w25, w0
ldr w1, [x19, #0x58]
add w1, w1, #7
- ldr x25, [x19, #0x08]
- ldr w0, [x25, #0x08]
+ ldr x26, [x19, #0x08]
+ ldr w0, [x26, #0x08]
cmp w1, w0
blt G_M2260_IG09
;; size=64 bbWeight=1 PerfScore 21.50
G_M2260_IG08:
- ldr w0, [x25, #0x08]
+ ldr w0, [x26, #0x08]
lsl w0, w0, #1
cmp w0, w1
csel w1, w0, w1, ge
sxtw x1, w1
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWARR_1_VC
- mov x26, x0
- ldr w2, [x25, #0x08]
- mov x0, x25
- mov x1, x26
+ mov x27, x0
+ ldr w2, [x26, #0x08]
+ mov x0, x26
+ mov x1, x27
movz x3, #0xD1FFAB1E // code for System.Array:Copy(System.Array,System.Array,int)
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
add x14, x19, #8
- mov x15, x26
+ mov x15, x27
bl CORINFO_HELP_ASSIGN_REF
;; size=84 bbWeight=0.50 PerfScore 10.00
G_M2260_IG09:
mov x0, x19
- ldr x1, [fp, #0x18] // [V01 arg1]
+ ldr x1, [fp, #0x10] // [V01 arg1]
movz x2, #0xD1FFAB1E // code for System.Reflection.Emit.RuntimeILGenerator:InternalEmit(System.Reflection.Emit.OpCode):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x0, x20
ldr x1, [x20]
- ldr x25, [x1, #0x60]
- ldr x1, [x25, #0x28]
+ ldr x26, [x1, #0x60]
+ ldr x1, [x26, #0x28]
blr x1
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
mov w2, #1
cmp x0, x1
- csel w23, w23, w2, eq
+ csel w24, w24, w2, eq
mov x0, x20
- ldr x1, [x25, #0x18]
+ ldr x1, [x26, #0x18]
blr x1
cbz x0, G_M2260_IG11
;; size=88 bbWeight=1 PerfScore 27.00
G_M2260_IG10:
ldr w0, [x0, #0x08]
- sub w23, w23, w0
+ sub w24, w24, w0
;; size=8 bbWeight=0.50 PerfScore 1.75
G_M2260_IG11:
ldr x0, [x20]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
cmp x0, x1
beq G_M2260_IG13
;; size=24 bbWeight=1 PerfScore 6.00
G_M2260_IG12:
mov x0, x20
ldr x1, [x20]
ldr x1, [x1, #0x50]
ldr x1, [x1, #0x20]
blr x1
tbnz w0, #4, G_M2260_IG13
- movz x0, #0xD1FFAB1E // data for System.Reflection.Emit.OpCodes:Newobj
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr w0, [x0]
+ ldr w0, [x22, #0xD1FFAB1E]
sxth w0, w0
- sxth w1, w22
- sub w2, w23, #1
+ sxth w1, w23
+ sub w2, w24, #1
cmp w0, w1
- csel w23, w23, w2, eq
- ;; size=60 bbWeight=0.50 PerfScore 9.25
+ csel w24, w24, w2, eq
+ ;; size=48 bbWeight=0.50 PerfScore 8.50
G_M2260_IG13:
cbz x21, G_M2260_IG15
;; size=4 bbWeight=1 PerfScore 1.00
G_M2260_IG14:
ldr w0, [x21, #0x08]
- sub w23, w23, w0
+ sub w24, w24, w0
;; size=8 bbWeight=0.50 PerfScore 1.75
G_M2260_IG15:
- ldr w0, [fp, #0x1C] // [V01 arg1+0x04]
+ ldr w0, [fp, #0x14] // [V01 arg1+0x04]
ldr w1, [x19, #0x74]
tbz w1, #31, G_M2260_IG17
;; size=12 bbWeight=1 PerfScore 6.00
G_M2260_IG16:
str wzr, [x19, #0x74]
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M2260_IG17:
ldr w1, [x19, #0x74]
- add w1, w1, w23
+ add w1, w1, w24
str w1, [x19, #0x74]
tbnz w1, #31, G_M2260_IG19
;; size=16 bbWeight=1 PerfScore 5.50
G_M2260_IG18:
ldr w2, [x19, #0x7C]
cmp w2, w1
bge G_M2260_IG20
str w1, [x19, #0x7C]
b G_M2260_IG20
;; size=20 bbWeight=0.50 PerfScore 3.25
G_M2260_IG19:
ldr x2, [x19, #0x50]
sub x1, x2, w1, SXTW
str x1, [x19, #0x50]
str wzr, [x19, #0x74]
;; size=16 bbWeight=0.50 PerfScore 3.00
G_M2260_IG20:
ldr w1, [x19, #0x74]
str w1, [x19, #0x78]
tbz w0, #24, G_M2260_IG22
;; size=12 bbWeight=1 PerfScore 5.00
G_M2260_IG21:
movn w0, #0
str w0, [x19, #0x74]
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M2260_IG22:
mov x0, x19
ldr x1, [x19]
ldr x1, [x1, #0x68]
ldr x1, [x1, #0x10]
blr x1
ldr x0, [x19, #0x08]
ldr w1, [x19, #0x58]
cbz x0, G_M2260_IG24
;; size=32 bbWeight=1 PerfScore 17.50
G_M2260_IG23:
ldr w2, [x0, #0x08]
cmp w2, w1
blo G_M2260_IG29
add x2, x0, #16
mov w3, w1
add x2, x2, x3
ldr w0, [x0, #0x08]
sub w0, w0, w1
b G_M2260_IG25
;; size=36 bbWeight=0.50 PerfScore 5.25
G_M2260_IG24:
cbnz w1, G_M2260_IG29
mov x2, xzr
mov w0, wzr
;; size=12 bbWeight=0.50 PerfScore 1.00
G_M2260_IG25:
cmp w0, #4
blo G_M2260_IG28
- str w24, [x2]
+ str w25, [x2]
ldr w0, [x19, #0x58]
add w0, w0, #4
str w0, [x19, #0x58]
;; size=24 bbWeight=1 PerfScore 7.00
G_M2260_IG26:
- ldp x25, x26, [sp, #0x50]
- ldp x23, x24, [sp, #0x40]
- ldp x21, x22, [sp, #0x30]
- ldp x19, x20, [sp, #0x20]
+ 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=24 bbWeight=1 PerfScore 6.00
+ ;; size=28 bbWeight=1 PerfScore 8.00
G_M2260_IG27:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
mov w1, #0xD1FFAB1E
bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
b G_M2260_IG03
;; size=24 bbWeight=0 PerfScore 0.00
G_M2260_IG28:
mov w0, #40
movz x1, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRangeException(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_M2260_IG29:
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
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_M2260_IG30:
mov x0, x4
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_CHKCASTCLASS
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
brk_unix #0
;; size=28 bbWeight=0 PerfScore 0.00
G_M2260_IG31:
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_NotMethodCallOpcode():System.String
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
mov x20, x0
movz w0, #0xD1FFAB1E
movk w0, #1 LSL #16
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_STRCNS
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=112 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1020, prolog size 24, PerfScore 193.50, instruction count 255, allocated bytes for code 1020 (MethodHash=1027f72b) for method System.Reflection.Emit.RuntimeILGenerator:EmitCall(System.Reflection.Emit.OpCode,System.Reflection.MethodInfo,System.Type[]):this (FullOpts)
+; Total bytes of code 996, prolog size 28, PerfScore 194.75, instruction count 249, allocated bytes for code 996 (MethodHash=1027f72b) for method System.Reflection.Emit.RuntimeILGenerator:EmitCall(System.Reflection.Emit.OpCode,System.Reflection.MethodInfo,System.Type[]):this (FullOpts)
-20 (-3.52 % of base) - Microsoft.VisualBasic.VBCodeGenerator:GenerateNamespaceStart(System.CodeDom.CodeNamespace):this
; Assembly listing for method Microsoft.VisualBasic.VBCodeGenerator:GenerateNamespaceStart(System.CodeDom.CodeNamespace):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; 12 single block inlinees; 7 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T06] ( 8, 12 ) ref -> x19 this class-hnd single-def <Microsoft.VisualBasic.VBCodeGenerator>
; V01 arg1 [V01,T10] ( 4, 3.50) ref -> x20 class-hnd single-def <System.CodeDom.CodeNamespace>
-; V02 loc0 [V02,T21] ( 4, 1.75) ref -> x20 class-hnd exact single-def <System.String[]>
-; V03 loc1 [V03,T04] ( 5, 16.50) int -> x22
+; V02 loc0 [V02,T21] ( 4, 1.75) ref -> x21 class-hnd exact single-def <System.String[]>
+; V03 loc1 [V03,T04] ( 5, 16.50) int -> x23
; V04 loc2 [V04,T24] ( 2, 1 ) int -> x1 single-def
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V06 tmp1 [V06,T15] ( 2, 4 ) ref -> x0 class-hnd exact single-def "dup spill" <System.String>
; V07 tmp2 [V07,T12] ( 5, 5 ) ref -> x0
;* V08 tmp3 [V08 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V09 tmp4 [V09,T19] ( 2, 2 ) ref -> x0 class-hnd exact single-def "dup spill" <System.String>
; V10 tmp5 [V10,T16] ( 6, 3 ) ref -> x0
; V11 tmp6 [V11,T20] ( 2, 2 ) ref -> x1 class-hnd exact single-def "Inlining Arg" <ushort[]>
;* V12 tmp7 [V12 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V13 tmp8 [V13 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
; V14 tmp9 [V14,T03] ( 5, 40 ) ref -> x24 class-hnd exact "Inlining Arg" <System.String>
; V15 tmp10 [V15,T05] ( 2, 16 ) ref -> x25 class-hnd exact "impAppendStmt" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
; V16 tmp11 [V16,T09] ( 3, 14 ) ref -> x1 class-hnd "Inline return value spill temp" <System.String>
; V17 tmp12 [V17,T07] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
; V18 tmp13 [V18,T08] ( 3, 10 ) int -> x1 "Inline stloc first use temp"
; V19 tmp14 [V19,T00] ( 2, 40 ) ref -> x0 class-hnd exact "Inlining Arg" <System.String[][]>
; V20 tmp15 [V20,T02] ( 3, 34 ) ref -> x0 class-hnd exact "Inline stloc first use temp" <System.String[]>
;* V21 tmp16 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
;* V22 tmp17 [V22 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V23 tmp18 [V23,T17] ( 3, 3 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
;* V24 tmp19 [V24 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V25 tmp20 [V25,T25] ( 2, 1 ) int -> x1 "Inline return value spill temp"
; V26 tmp21 [V26,T18] ( 3, 3 ) int -> x1 "Inlining Arg"
;* V27 tmp22 [V27 ] ( 0, 0 ) byref -> zero-ref "field V12._reference (fldOffset=0x0)" P-INDEP
;* V28 tmp23 [V28 ] ( 0, 0 ) int -> zero-ref "field V12._length (fldOffset=0x8)" P-INDEP
; V29 tmp24 [V29,T23] ( 2, 1 ) byref -> x1 "field V13._reference (fldOffset=0x0)" P-INDEP
;* V30 tmp25 [V30,T26] ( 0, 0 ) int -> zero-ref "field V13._length (fldOffset=0x8)" P-INDEP
-; V31 cse0 [V31,T13] ( 2, 4.25) ref -> x23 hoist "CSE #05: aggressive"
-; V32 cse1 [V32,T22] ( 3, 1.50) ref -> x0 "CSE #07: moderate"
-; V33 cse2 [V33,T01] ( 4, 36 ) int -> x1 "CSE #06: aggressive"
-; V34 cse3 [V34,T11] ( 4, 5.50) int -> x21 "CSE #02: aggressive"
-; V35 cse4 [V35,T14] ( 2, 4.25) byref -> x20 hoist "CSE #04: moderate"
+; V31 cse0 [V31,T22] ( 3, 1.50) ref -> x0 "CSE #06: moderate"
+; V32 cse1 [V32,T01] ( 4, 36 ) int -> x1 "CSE #05: aggressive"
+; V33 cse2 [V33,T11] ( 4, 5.50) int -> x22 "CSE #02: aggressive"
+; V34 cse3 [V34,T14] ( 2, 4.25) byref -> x21 hoist "CSE #03: moderate"
+; V35 cse4 [V35,T13] ( 3, 5 ) long -> x20 "CSE #04: aggressive"
;
; Lcl frame size = 8
G_M61445_IG01:
stp fp, lr, [sp, #-0x50]!
stp x19, x20, [sp, #0x18]
stp x21, x22, [sp, #0x28]
stp x23, x24, [sp, #0x38]
str x25, [sp, #0x48]
mov fp, sp
mov x19, x0
mov x20, x1
;; size=32 bbWeight=1 PerfScore 6.50
G_M61445_IG02:
ldr x0, [x20, #0x10]
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
cmp x0, #0
csel x0, x0, x1, ne
ldr w0, [x0, #0x08]
cbz w0, G_M61445_IG12
;; size=32 bbWeight=1 PerfScore 9.50
G_M61445_IG03:
ldr x0, [x19, #0x08]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:Write(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
ldr x0, [x20, #0x10]
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
cmp x0, #0
csel x0, x0, x1, ne
- movz x1, #0xD1FFAB1E
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- ldr x1, [x1]
+ movz x20, #0xD1FFAB1E
+ movk x20, #0xD1FFAB1E LSL #32
+ ldr x1, [x20]
ldrsb wzr, [x0]
add x1, x1, #16
mov w2, #1
movn w3, #0xD1FFAB1E LSL #16
mov w4, wzr
movz x5, #0xD1FFAB1E // code for System.String:SplitInternal(System.ReadOnlySpan`1[ushort],int,int):System.String[]:this
movk x5, #0xD1FFAB1E LSL #16
movk x5, #0xD1FFAB1E LSL #32
ldr x5, [x5]
blr x5
- mov x20, x0
- ldr w21, [x20, #0x08]
- cmp w21, #0
+ mov x21, x0
+ ldr w22, [x21, #0x08]
+ cmp w22, #0
bls G_M61445_IG13
- ldr x1, [x20, #0x10]
+ ldr x1, [x21, #0x10]
mov x0, x19
movz x2, #0xD1FFAB1E // code for Microsoft.VisualBasic.VBCodeGenerator:OutputIdentifier(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- mov w22, #1
- cmp w21, #1
+ mov w23, #1
+ cmp w22, #1
ble G_M61445_IG11
- ;; size=176 bbWeight=0.50 PerfScore 24.75
+ ;; size=172 bbWeight=0.50 PerfScore 24.50
G_M61445_IG04:
- add x20, x20, #16
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr x23, [x0]
- ;; size=20 bbWeight=0.25 PerfScore 1.25
+ add x21, x21, #16
+ ;; size=4 bbWeight=0.25 PerfScore 0.12
G_M61445_IG05:
ldr x0, [x19, #0x08]
mov w1, #46
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:Write(ushort):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
- ldr x24, [x20, w22, UXTW #3]
+ ldr x24, [x21, w23, UXTW #3]
ldr x25, [x19, #0x08]
- mov x0, x23
+ ldr x0, [x20, #0x08]
ldr w1, [x24, #0x08]
cmp w1, #0
ble G_M61445_IG09
- ;; size=56 bbWeight=4 PerfScore 92.00
+ ;; size=56 bbWeight=4 PerfScore 102.00
G_M61445_IG06:
sub w1, w1, #1
cmp w1, #16
bge G_M61445_IG09
;; size=12 bbWeight=2 PerfScore 4.00
G_M61445_IG07:
cmp w1, #16
bhs G_M61445_IG13
add x0, x0, #16
ldr x0, [x0, w1, UXTW #3]
cbz x0, G_M61445_IG09
;; size=20 bbWeight=16 PerfScore 96.00
G_M61445_IG08:
mov x1, x24
mov w2, #1
movz x3, #0xD1FFAB1E // code for System.Collections.Specialized.FixedStringLookup:Contains(System.String[],System.String,ubyte):ubyte
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
cbz w0, G_M61445_IG09
mov x1, x24
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
movz x3, #0xD1FFAB1E // code for System.String:Concat(System.String,System.String,System.String):System.String
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x1, x0
b G_M61445_IG10
;; size=88 bbWeight=2 PerfScore 36.00
G_M61445_IG09:
mov x1, x24
;; size=4 bbWeight=8 PerfScore 4.00
G_M61445_IG10:
mov x0, x25
movz x2, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:Write(System.String):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr wzr, [x0]
blr x2
- add w22, w22, #1
- cmp w21, w22
+ add w23, w23, #1
+ cmp w22, w23
bgt G_M61445_IG05
;; size=40 bbWeight=4 PerfScore 44.00
G_M61445_IG11:
ldr x0, [x19, #0x08]
movz x1, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:WriteLine():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
ldr x0, [x19, #0x08]
ldr w1, [x0, #0x30]
ldrsb wzr, [x0]
add w1, w1, #1
cmp w1, #0
csel w1, w1, wzr, ge
str w1, [x0, #0x30]
;; size=56 bbWeight=0.50 PerfScore 11.50
G_M61445_IG12:
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=1 PerfScore 7.00
G_M61445_IG13:
bl CORINFO_HELP_RNGCHKFAIL
brk_unix #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 568, prolog size 24, PerfScore 336.50, instruction count 142, allocated bytes for code 568 (MethodHash=8bdb0ffa) for method Microsoft.VisualBasic.VBCodeGenerator:GenerateNamespaceStart(System.CodeDom.CodeNamespace):this (FullOpts)
+; Total bytes of code 548, prolog size 24, PerfScore 345.12, instruction count 137, allocated bytes for code 548 (MethodHash=8bdb0ffa) for method Microsoft.VisualBasic.VBCodeGenerator:GenerateNamespaceStart(System.CodeDom.CodeNamespace):this (FullOpts)
-16 (-1.36 % of base) - Microsoft.CSharp.CSharpCodeGenerator:GenerateConstructors(System.CodeDom.CodeTypeDeclaration):this
; Assembly listing for method Microsoft.CSharp.CSharpCodeGenerator:GenerateConstructors(System.CodeDom.CodeTypeDeclaration):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; 32 single block inlinees; 4 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 16, 30 ) ref -> x19 this class-hnd single-def <Microsoft.CSharp.CSharpCodeGenerator>
; V01 arg1 [V01,T32] ( 3, 3 ) ref -> x1 class-hnd single-def <System.CodeDom.CodeTypeDeclaration>
; V02 loc0 [V02,T19] ( 6, 10 ) ref -> [fp+0x18] class-hnd EH-live spill-single-def <System.Collections.IEnumerator>
; V03 loc1 [V03,T08] ( 4, 12 ) ref -> x21 class-hnd <System.CodeDom.CodeTypeMember>
; V04 loc2 [V04,T21] ( 4, 8 ) ref -> x21 class-hnd <System.CodeDom.CodeConstructor>
; V05 loc3 [V05,T34] ( 6, 2.50) ref -> x0 class-hnd <System.IDisposable>
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V07 tmp1 [V07,T33] ( 2, 4 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.CodeDom.CodeTypeMemberCollection>
; V08 tmp2 [V08,T03] ( 4, 16 ) ref -> x22 class-hnd exact "Inlining Arg" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
;* V09 tmp3 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.CodeDom.CodeDirectiveCollection>
; V10 tmp4 [V10,T09] ( 3, 12 ) ref -> x22 class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
; V11 tmp5 [V11,T26] ( 2, 8 ) ref -> x0 class-hnd "dup spill" <System.CodeDom.CodeDirectiveCollection>
; V12 tmp6 [V12,T22] ( 4, 8 ) ref -> x0
; V13 tmp7 [V13,T04] ( 4, 16 ) ref -> x23 class-hnd exact "NewObj constructor temp" <System.CodeDom.CodeDirectiveCollection>
;* V14 tmp8 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.CodeDom.CodeDirectiveCollection>
; V15 tmp9 [V15,T10] ( 3, 12 ) ref -> x0 class-hnd exact "NewObj constructor temp" <System.Collections.ArrayList>
;* V16 tmp10 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.CodeDom.CodeDirectiveCollection>
; V17 tmp11 [V17,T11] ( 3, 12 ) ref -> x22 class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
; V18 tmp12 [V18,T27] ( 2, 8 ) ref -> x1 class-hnd "dup spill" <System.CodeDom.CodeDirectiveCollection>
; V19 tmp13 [V19,T23] ( 4, 8 ) ref -> x1
; V20 tmp14 [V20,T05] ( 4, 16 ) ref -> x23 class-hnd exact "NewObj constructor temp" <System.CodeDom.CodeDirectiveCollection>
;* V21 tmp15 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.CodeDom.CodeDirectiveCollection>
; V22 tmp16 [V22,T12] ( 3, 12 ) ref -> x0 class-hnd exact "NewObj constructor temp" <System.Collections.ArrayList>
;* V23 tmp17 [V23 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
;* V24 tmp18 [V24 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.CodeDom.CodeDirectiveCollection>
; V25 tmp19 [V25,T13] ( 3, 12 ) ref -> x21 class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
; V26 tmp20 [V26,T28] ( 2, 8 ) ref -> x0 class-hnd "dup spill" <System.CodeDom.CodeDirectiveCollection>
; V27 tmp21 [V27,T24] ( 4, 8 ) ref -> x0
; V28 tmp22 [V28,T06] ( 4, 16 ) ref -> x22 class-hnd exact "NewObj constructor temp" <System.CodeDom.CodeDirectiveCollection>
;* V29 tmp23 [V29 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.CodeDom.CodeDirectiveCollection>
; V30 tmp24 [V30,T14] ( 3, 12 ) ref -> x0 class-hnd exact "NewObj constructor temp" <System.Collections.ArrayList>
;* V31 tmp25 [V31 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.CodeDom.CodeDirectiveCollection>
; V32 tmp26 [V32,T15] ( 3, 12 ) ref -> x21 class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
; V33 tmp27 [V33,T29] ( 2, 8 ) ref -> x1 class-hnd "dup spill" <System.CodeDom.CodeDirectiveCollection>
; V34 tmp28 [V34,T25] ( 4, 8 ) ref -> x1
; V35 tmp29 [V35,T07] ( 4, 16 ) ref -> x22 class-hnd exact "NewObj constructor temp" <System.CodeDom.CodeDirectiveCollection>
;* V36 tmp30 [V36 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.CodeDom.CodeDirectiveCollection>
; V37 tmp31 [V37,T16] ( 3, 12 ) ref -> x0 class-hnd exact "NewObj constructor temp" <System.Collections.ArrayList>
; V38 tmp32 [V38,T30] ( 3, 6 ) ref -> x0 single-def "argument with side effect"
; V39 tmp33 [V39,T02] ( 3, 18 ) ref -> x0 "argument with side effect"
; V40 tmp34 [V40,T17] ( 3, 12 ) ref -> x0 "argument with side effect"
; V41 PSPSym [V41,T35] ( 1, 1 ) long -> [fp+0x20] do-not-enreg[V] "PSPSym"
; V42 cse0 [V42,T31] ( 3, 6 ) ref -> x1 "CSE #06: moderate"
; V43 cse1 [V43,T18] ( 7, 10.50) long -> x20 multi-def "CSE #01: moderate"
; V44 rat0 [V44,T01] ( 5, 30 ) ref -> x21 "replacement local"
; V45 rat1 [V45,T20] ( 3, 10 ) long -> x2 "CSE for expectedClsNode"
;
; Lcl frame size = 24
G_M57116_IG01:
stp fp, lr, [sp, #-0x50]!
stp x19, x20, [sp, #0x28]
stp x21, x22, [sp, #0x38]
str x23, [sp, #0x48]
mov fp, sp
add x2, sp, #80
str x2, [fp, #0x20] // [V41 PSPSym]
mov x19, x0
;; size=32 bbWeight=1 PerfScore 6.50
G_M57116_IG02:
mov x0, x1
movz x1, #0xD1FFAB1E // code for System.CodeDom.CodeTypeDeclaration:get_Members():System.CodeDom.CodeTypeMemberCollection:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
ldr x0, [x0, #0x08]
ldr x1, [x0]
ldr x1, [x1, #0x58]
ldr x1, [x1]
blr x1
mov x1, x0
str x1, [fp, #0x18] // [V02 loc0]
;; size=56 bbWeight=1 PerfScore 23.50
G_M57116_IG03:
mov x0, x1
movz x20, #0xD1FFAB1E
movk x20, #0xD1FFAB1E LSL #16
movk x20, #0xD1FFAB1E LSL #32
mov x11, x20
ldr xip0, [x11]
blr xip0
cbz w0, G_M57116_IG18
;; size=32 bbWeight=1 PerfScore 7.50
G_M57116_IG04:
ldr x0, [fp, #0x18] // [V02 loc0]
add x11, x20, #8
ldr xip0, [x11]
blr xip0
mov x21, x0
cbz x21, G_M57116_IG07
;; size=24 bbWeight=4 PerfScore 32.00
G_M57116_IG05:
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x1, [x21]
cmp x1, x2
beq G_M57116_IG07
;; size=24 bbWeight=2 PerfScore 12.00
G_M57116_IG06:
mov x1, x0
mov x0, x2
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_CHKCASTCLASS_SPECIAL
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x21, x0
;; size=32 bbWeight=1 PerfScore 7.00
G_M57116_IG07:
mov x1, x21
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFCLASS
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz x0, G_M57116_IG17
;; size=40 bbWeight=4 PerfScore 34.00
G_M57116_IG08:
add x14, x19, #32
mov x15, x21
bl CORINFO_HELP_ASSIGN_REF
ldr x0, [x19, #0x10]
movz x1, #0xD1FFAB1E // code for System.CodeDom.Compiler.CodeGeneratorOptions:get_BlankLinesBetweenMembers():ubyte:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
cbz w0, G_M57116_IG09
ldr x22, [x19, #0x08]
mov x0, x22
movz x1, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:OutputTabs():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
ldr x0, [x22, #0x20]
ldr x1, [x0]
ldr x1, [x1, #0x60]
ldr x1, [x1, #0x10]
blr x1
mov w0, #1
strb w0, [x22, #0x34]
;; size=104 bbWeight=2 PerfScore 82.00
G_M57116_IG09:
ldr x22, [x19, #0x20]
ldr x0, [x22, #0x20]
cbnz x0, G_M57116_IG10
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x23, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x0, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x23, #8
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x14, x22, #32
mov x15, x23
bl CORINFO_HELP_ASSIGN_REF
mov x0, x23
- ;; size=100 bbWeight=2 PerfScore 46.00
+ ;; size=96 bbWeight=2 PerfScore 45.00
G_M57116_IG10:
movz x1, #0xD1FFAB1E // code for System.Collections.CollectionBase:get_Count():int:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
cmp w0, #0
ble G_M57116_IG12
ldr x22, [x19, #0x20]
ldr x1, [x22, #0x20]
cbnz x1, G_M57116_IG11
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x23, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x0, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x23, #8
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x14, x22, #32
mov x15, x23
bl CORINFO_HELP_ASSIGN_REF
mov x1, x23
- ;; size=132 bbWeight=2 PerfScore 66.00
+ ;; size=128 bbWeight=2 PerfScore 65.00
G_M57116_IG11:
mov x0, x19
movz x2, #0xD1FFAB1E // code for Microsoft.CSharp.CSharpCodeGenerator:GenerateDirectives(System.CodeDom.CodeDirectiveCollection):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=24 bbWeight=2 PerfScore 12.00
G_M57116_IG12:
ldr x1, [x19, #0x20]
ldr x1, [x1, #0x38]
mov x0, x19
movz x2, #0xD1FFAB1E // code for Microsoft.CSharp.CSharpCodeGenerator:GenerateCommentStatements(System.CodeDom.CodeCommentStatementCollection):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
ldr x1, [x21, #0x30]
cbz x1, G_M57116_IG13
mov x0, x19
movz x2, #0xD1FFAB1E // code for Microsoft.CSharp.CSharpCodeGenerator:GenerateLinePragmaStart(System.CodeDom.CodeLinePragma):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=64 bbWeight=2 PerfScore 44.00
G_M57116_IG13:
mov x0, x19
mov x1, x21
movz x2, #0xD1FFAB1E // code for Microsoft.CSharp.CSharpCodeGenerator:GenerateConstructor(System.CodeDom.CodeConstructor):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
ldr x0, [x21, #0x30]
cbz x0, G_M57116_IG14
mov x0, x19
movz x1, #0xD1FFAB1E // code for Microsoft.CSharp.CSharpCodeGenerator:GenerateLinePragmaEnd():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
;; size=60 bbWeight=2 PerfScore 33.00
G_M57116_IG14:
ldr x21, [x19, #0x20]
ldr x0, [x21, #0x28]
cbnz x0, G_M57116_IG15
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
bl CORINFO_HELP_NEWSFAST
movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x0, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x22, #8
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x14, x21, #40
mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
mov x0, x22
- ;; size=100 bbWeight=2 PerfScore 46.00
+ ;; size=96 bbWeight=2 PerfScore 45.00
G_M57116_IG15:
movz x1, #0xD1FFAB1E // code for System.Collections.CollectionBase:get_Count():int:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
cmp w0, #0
ble G_M57116_IG17
ldr x21, [x19, #0x20]
ldr x1, [x21, #0x28]
cbnz x1, G_M57116_IG16
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
bl CORINFO_HELP_NEWSFAST
movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x0, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x22, #8
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x14, x21, #40
mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
mov x1, x22
- ;; size=132 bbWeight=2 PerfScore 66.00
+ ;; size=128 bbWeight=2 PerfScore 65.00
G_M57116_IG16:
mov x0, x19
movz x2, #0xD1FFAB1E // code for Microsoft.CSharp.CSharpCodeGenerator:GenerateDirectives(System.CodeDom.CodeDirectiveCollection):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=24 bbWeight=2 PerfScore 12.00
G_M57116_IG17:
ldr x0, [fp, #0x18] // [V02 loc0]
mov x11, x20
ldr xip0, [x11]
blr xip0
cbnz w0, G_M57116_IG04
;; size=20 bbWeight=4 PerfScore 30.00
G_M57116_IG18:
ldr x1, [fp, #0x18] // [V02 loc0]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFINTERFACE
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz x0, G_M57116_IG20
;; size=40 bbWeight=1 PerfScore 10.00
G_M57116_IG19:
add x11, x20, #16
ldr xip0, [x11]
blr xip0
;; size=12 bbWeight=0.50 PerfScore 2.25
G_M57116_IG20:
ldr x23, [sp, #0x48]
ldp x21, x22, [sp, #0x38]
ldp x19, x20, [sp, #0x28]
ldp fp, lr, [sp], #0x50
ret lr
;; size=20 bbWeight=1 PerfScore 6.00
G_M57116_IG21:
stp fp, lr, [sp, #-0x40]!
stp x19, x20, [sp, #0x18]
stp x21, x22, [sp, #0x28]
str x23, [sp, #0x38]
add x3, fp, #80
str x3, [sp, #0x10]
;; size=24 bbWeight=0 PerfScore 0.00
G_M57116_IG22:
ldr x1, [fp, #0x18] // [V02 loc0]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFINTERFACE
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz x0, G_M57116_IG23
movz x20, #0xD1FFAB1E
movk x20, #0xD1FFAB1E LSL #16
movk x20, #0xD1FFAB1E LSL #32
add x11, x20, #16
ldr xip0, [x11]
blr xip0
;; size=64 bbWeight=0 PerfScore 0.00
G_M57116_IG23:
ldr x23, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x40
ret lr
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1180, prolog size 32, PerfScore 577.75, instruction count 295, allocated bytes for code 1180 (MethodHash=9b4520e3) for method Microsoft.CSharp.CSharpCodeGenerator:GenerateConstructors(System.CodeDom.CodeTypeDeclaration):this (FullOpts)
+; Total bytes of code 1164, prolog size 32, PerfScore 573.75, instruction count 291, allocated bytes for code 1164 (MethodHash=9b4520e3) for method Microsoft.CSharp.CSharpCodeGenerator:GenerateConstructors(System.CodeDom.CodeTypeDeclaration):this (FullOpts)
-16 (-1.36 % of base) - Microsoft.CSharp.CSharpCodeGenerator:GenerateEvents(System.CodeDom.CodeTypeDeclaration):this
; Assembly listing for method Microsoft.CSharp.CSharpCodeGenerator:GenerateEvents(System.CodeDom.CodeTypeDeclaration):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; 32 single block inlinees; 4 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 16, 30 ) ref -> x19 this class-hnd single-def <Microsoft.CSharp.CSharpCodeGenerator>
; V01 arg1 [V01,T32] ( 3, 3 ) ref -> x1 class-hnd single-def <System.CodeDom.CodeTypeDeclaration>
; V02 loc0 [V02,T19] ( 6, 10 ) ref -> [fp+0x18] class-hnd EH-live spill-single-def <System.Collections.IEnumerator>
; V03 loc1 [V03,T08] ( 4, 12 ) ref -> x21 class-hnd <System.CodeDom.CodeTypeMember>
; V04 loc2 [V04,T21] ( 4, 8 ) ref -> x21 class-hnd <System.CodeDom.CodeMemberEvent>
; V05 loc3 [V05,T34] ( 6, 2.50) ref -> x0 class-hnd <System.IDisposable>
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V07 tmp1 [V07,T33] ( 2, 4 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.CodeDom.CodeTypeMemberCollection>
; V08 tmp2 [V08,T03] ( 4, 16 ) ref -> x22 class-hnd exact "Inlining Arg" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
;* V09 tmp3 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.CodeDom.CodeDirectiveCollection>
; V10 tmp4 [V10,T09] ( 3, 12 ) ref -> x22 class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
; V11 tmp5 [V11,T26] ( 2, 8 ) ref -> x0 class-hnd "dup spill" <System.CodeDom.CodeDirectiveCollection>
; V12 tmp6 [V12,T22] ( 4, 8 ) ref -> x0
; V13 tmp7 [V13,T04] ( 4, 16 ) ref -> x23 class-hnd exact "NewObj constructor temp" <System.CodeDom.CodeDirectiveCollection>
;* V14 tmp8 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.CodeDom.CodeDirectiveCollection>
; V15 tmp9 [V15,T10] ( 3, 12 ) ref -> x0 class-hnd exact "NewObj constructor temp" <System.Collections.ArrayList>
;* V16 tmp10 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.CodeDom.CodeDirectiveCollection>
; V17 tmp11 [V17,T11] ( 3, 12 ) ref -> x22 class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
; V18 tmp12 [V18,T27] ( 2, 8 ) ref -> x1 class-hnd "dup spill" <System.CodeDom.CodeDirectiveCollection>
; V19 tmp13 [V19,T23] ( 4, 8 ) ref -> x1
; V20 tmp14 [V20,T05] ( 4, 16 ) ref -> x23 class-hnd exact "NewObj constructor temp" <System.CodeDom.CodeDirectiveCollection>
;* V21 tmp15 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.CodeDom.CodeDirectiveCollection>
; V22 tmp16 [V22,T12] ( 3, 12 ) ref -> x0 class-hnd exact "NewObj constructor temp" <System.Collections.ArrayList>
;* V23 tmp17 [V23 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
;* V24 tmp18 [V24 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.CodeDom.CodeDirectiveCollection>
; V25 tmp19 [V25,T13] ( 3, 12 ) ref -> x21 class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
; V26 tmp20 [V26,T28] ( 2, 8 ) ref -> x0 class-hnd "dup spill" <System.CodeDom.CodeDirectiveCollection>
; V27 tmp21 [V27,T24] ( 4, 8 ) ref -> x0
; V28 tmp22 [V28,T06] ( 4, 16 ) ref -> x22 class-hnd exact "NewObj constructor temp" <System.CodeDom.CodeDirectiveCollection>
;* V29 tmp23 [V29 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.CodeDom.CodeDirectiveCollection>
; V30 tmp24 [V30,T14] ( 3, 12 ) ref -> x0 class-hnd exact "NewObj constructor temp" <System.Collections.ArrayList>
;* V31 tmp25 [V31 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.CodeDom.CodeDirectiveCollection>
; V32 tmp26 [V32,T15] ( 3, 12 ) ref -> x21 class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
; V33 tmp27 [V33,T29] ( 2, 8 ) ref -> x1 class-hnd "dup spill" <System.CodeDom.CodeDirectiveCollection>
; V34 tmp28 [V34,T25] ( 4, 8 ) ref -> x1
; V35 tmp29 [V35,T07] ( 4, 16 ) ref -> x22 class-hnd exact "NewObj constructor temp" <System.CodeDom.CodeDirectiveCollection>
;* V36 tmp30 [V36 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.CodeDom.CodeDirectiveCollection>
; V37 tmp31 [V37,T16] ( 3, 12 ) ref -> x0 class-hnd exact "NewObj constructor temp" <System.Collections.ArrayList>
; V38 tmp32 [V38,T30] ( 3, 6 ) ref -> x0 single-def "argument with side effect"
; V39 tmp33 [V39,T02] ( 3, 18 ) ref -> x0 "argument with side effect"
; V40 tmp34 [V40,T17] ( 3, 12 ) ref -> x0 "argument with side effect"
; V41 PSPSym [V41,T35] ( 1, 1 ) long -> [fp+0x20] do-not-enreg[V] "PSPSym"
; V42 cse0 [V42,T31] ( 3, 6 ) ref -> x1 "CSE #06: moderate"
; V43 cse1 [V43,T18] ( 7, 10.50) long -> x20 multi-def "CSE #01: moderate"
; V44 rat0 [V44,T01] ( 5, 30 ) ref -> x21 "replacement local"
; V45 rat1 [V45,T20] ( 3, 10 ) long -> x2 "CSE for expectedClsNode"
;
; Lcl frame size = 24
G_M63320_IG01:
stp fp, lr, [sp, #-0x50]!
stp x19, x20, [sp, #0x28]
stp x21, x22, [sp, #0x38]
str x23, [sp, #0x48]
mov fp, sp
add x2, sp, #80
str x2, [fp, #0x20] // [V41 PSPSym]
mov x19, x0
;; size=32 bbWeight=1 PerfScore 6.50
G_M63320_IG02:
mov x0, x1
movz x1, #0xD1FFAB1E // code for System.CodeDom.CodeTypeDeclaration:get_Members():System.CodeDom.CodeTypeMemberCollection:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
ldr x0, [x0, #0x08]
ldr x1, [x0]
ldr x1, [x1, #0x58]
ldr x1, [x1]
blr x1
mov x1, x0
str x1, [fp, #0x18] // [V02 loc0]
;; size=56 bbWeight=1 PerfScore 23.50
G_M63320_IG03:
mov x0, x1
movz x20, #0xD1FFAB1E
movk x20, #0xD1FFAB1E LSL #16
movk x20, #0xD1FFAB1E LSL #32
mov x11, x20
ldr xip0, [x11]
blr xip0
cbz w0, G_M63320_IG18
;; size=32 bbWeight=1 PerfScore 7.50
G_M63320_IG04:
ldr x0, [fp, #0x18] // [V02 loc0]
add x11, x20, #8
ldr xip0, [x11]
blr xip0
mov x21, x0
cbz x21, G_M63320_IG07
;; size=24 bbWeight=4 PerfScore 32.00
G_M63320_IG05:
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x1, [x21]
cmp x1, x2
beq G_M63320_IG07
;; size=24 bbWeight=2 PerfScore 12.00
G_M63320_IG06:
mov x1, x0
mov x0, x2
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_CHKCASTCLASS_SPECIAL
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x21, x0
;; size=32 bbWeight=1 PerfScore 7.00
G_M63320_IG07:
mov x1, x21
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFCLASS
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz x0, G_M63320_IG17
;; size=40 bbWeight=4 PerfScore 34.00
G_M63320_IG08:
add x14, x19, #32
mov x15, x21
bl CORINFO_HELP_ASSIGN_REF
ldr x0, [x19, #0x10]
movz x1, #0xD1FFAB1E // code for System.CodeDom.Compiler.CodeGeneratorOptions:get_BlankLinesBetweenMembers():ubyte:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
cbz w0, G_M63320_IG09
ldr x22, [x19, #0x08]
mov x0, x22
movz x1, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:OutputTabs():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
ldr x0, [x22, #0x20]
ldr x1, [x0]
ldr x1, [x1, #0x60]
ldr x1, [x1, #0x10]
blr x1
mov w0, #1
strb w0, [x22, #0x34]
;; size=104 bbWeight=2 PerfScore 82.00
G_M63320_IG09:
ldr x22, [x19, #0x20]
ldr x0, [x22, #0x20]
cbnz x0, G_M63320_IG10
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x23, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x0, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x23, #8
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x14, x22, #32
mov x15, x23
bl CORINFO_HELP_ASSIGN_REF
mov x0, x23
- ;; size=100 bbWeight=2 PerfScore 46.00
+ ;; size=96 bbWeight=2 PerfScore 45.00
G_M63320_IG10:
movz x1, #0xD1FFAB1E // code for System.Collections.CollectionBase:get_Count():int:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
cmp w0, #0
ble G_M63320_IG12
ldr x22, [x19, #0x20]
ldr x1, [x22, #0x20]
cbnz x1, G_M63320_IG11
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x23, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x0, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x23, #8
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x14, x22, #32
mov x15, x23
bl CORINFO_HELP_ASSIGN_REF
mov x1, x23
- ;; size=132 bbWeight=2 PerfScore 66.00
+ ;; size=128 bbWeight=2 PerfScore 65.00
G_M63320_IG11:
mov x0, x19
movz x2, #0xD1FFAB1E // code for Microsoft.CSharp.CSharpCodeGenerator:GenerateDirectives(System.CodeDom.CodeDirectiveCollection):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=24 bbWeight=2 PerfScore 12.00
G_M63320_IG12:
ldr x1, [x19, #0x20]
ldr x1, [x1, #0x38]
mov x0, x19
movz x2, #0xD1FFAB1E // code for Microsoft.CSharp.CSharpCodeGenerator:GenerateCommentStatements(System.CodeDom.CodeCommentStatementCollection):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
ldr x1, [x21, #0x30]
cbz x1, G_M63320_IG13
mov x0, x19
movz x2, #0xD1FFAB1E // code for Microsoft.CSharp.CSharpCodeGenerator:GenerateLinePragmaStart(System.CodeDom.CodeLinePragma):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=64 bbWeight=2 PerfScore 44.00
G_M63320_IG13:
mov x0, x19
mov x1, x21
movz x2, #0xD1FFAB1E // code for Microsoft.CSharp.CSharpCodeGenerator:GenerateEvent(System.CodeDom.CodeMemberEvent):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
ldr x0, [x21, #0x30]
cbz x0, G_M63320_IG14
mov x0, x19
movz x1, #0xD1FFAB1E // code for Microsoft.CSharp.CSharpCodeGenerator:GenerateLinePragmaEnd():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
;; size=60 bbWeight=2 PerfScore 33.00
G_M63320_IG14:
ldr x21, [x19, #0x20]
ldr x0, [x21, #0x28]
cbnz x0, G_M63320_IG15
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
bl CORINFO_HELP_NEWSFAST
movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x0, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x22, #8
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x14, x21, #40
mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
mov x0, x22
- ;; size=100 bbWeight=2 PerfScore 46.00
+ ;; size=96 bbWeight=2 PerfScore 45.00
G_M63320_IG15:
movz x1, #0xD1FFAB1E // code for System.Collections.CollectionBase:get_Count():int:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
cmp w0, #0
ble G_M63320_IG17
ldr x21, [x19, #0x20]
ldr x1, [x21, #0x28]
cbnz x1, G_M63320_IG16
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
bl CORINFO_HELP_NEWSFAST
movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x0, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x22, #8
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x14, x21, #40
mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
mov x1, x22
- ;; size=132 bbWeight=2 PerfScore 66.00
+ ;; size=128 bbWeight=2 PerfScore 65.00
G_M63320_IG16:
mov x0, x19
movz x2, #0xD1FFAB1E // code for Microsoft.CSharp.CSharpCodeGenerator:GenerateDirectives(System.CodeDom.CodeDirectiveCollection):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=24 bbWeight=2 PerfScore 12.00
G_M63320_IG17:
ldr x0, [fp, #0x18] // [V02 loc0]
mov x11, x20
ldr xip0, [x11]
blr xip0
cbnz w0, G_M63320_IG04
;; size=20 bbWeight=4 PerfScore 30.00
G_M63320_IG18:
ldr x1, [fp, #0x18] // [V02 loc0]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFINTERFACE
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz x0, G_M63320_IG20
;; size=40 bbWeight=1 PerfScore 10.00
G_M63320_IG19:
add x11, x20, #16
ldr xip0, [x11]
blr xip0
;; size=12 bbWeight=0.50 PerfScore 2.25
G_M63320_IG20:
ldr x23, [sp, #0x48]
ldp x21, x22, [sp, #0x38]
ldp x19, x20, [sp, #0x28]
ldp fp, lr, [sp], #0x50
ret lr
;; size=20 bbWeight=1 PerfScore 6.00
G_M63320_IG21:
stp fp, lr, [sp, #-0x40]!
stp x19, x20, [sp, #0x18]
stp x21, x22, [sp, #0x28]
str x23, [sp, #0x38]
add x3, fp, #80
str x3, [sp, #0x10]
;; size=24 bbWeight=0 PerfScore 0.00
G_M63320_IG22:
ldr x1, [fp, #0x18] // [V02 loc0]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFINTERFACE
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz x0, G_M63320_IG23
movz x20, #0xD1FFAB1E
movk x20, #0xD1FFAB1E LSL #16
movk x20, #0xD1FFAB1E LSL #32
add x11, x20, #16
ldr xip0, [x11]
blr xip0
;; size=64 bbWeight=0 PerfScore 0.00
G_M63320_IG23:
ldr x23, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x40
ret lr
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1180, prolog size 32, PerfScore 577.75, instruction count 295, allocated bytes for code 1180 (MethodHash=271108a7) for method Microsoft.CSharp.CSharpCodeGenerator:GenerateEvents(System.CodeDom.CodeTypeDeclaration):this (FullOpts)
+; Total bytes of code 1164, prolog size 32, PerfScore 573.75, instruction count 291, allocated bytes for code 1164 (MethodHash=271108a7) for method Microsoft.CSharp.CSharpCodeGenerator:GenerateEvents(System.CodeDom.CodeTypeDeclaration):this (FullOpts)
-16 (-1.36 % of base) - Microsoft.CSharp.CSharpCodeGenerator:GenerateFields(System.CodeDom.CodeTypeDeclaration):this
; Assembly listing for method Microsoft.CSharp.CSharpCodeGenerator:GenerateFields(System.CodeDom.CodeTypeDeclaration):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; 32 single block inlinees; 4 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 16, 30 ) ref -> x19 this class-hnd single-def <Microsoft.CSharp.CSharpCodeGenerator>
; V01 arg1 [V01,T32] ( 3, 3 ) ref -> x1 class-hnd single-def <System.CodeDom.CodeTypeDeclaration>
; V02 loc0 [V02,T19] ( 6, 10 ) ref -> [fp+0x18] class-hnd EH-live spill-single-def <System.Collections.IEnumerator>
; V03 loc1 [V03,T08] ( 4, 12 ) ref -> x21 class-hnd <System.CodeDom.CodeTypeMember>
; V04 loc2 [V04,T21] ( 4, 8 ) ref -> x21 class-hnd <System.CodeDom.CodeMemberField>
; V05 loc3 [V05,T34] ( 6, 2.50) ref -> x0 class-hnd <System.IDisposable>
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V07 tmp1 [V07,T33] ( 2, 4 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.CodeDom.CodeTypeMemberCollection>
; V08 tmp2 [V08,T03] ( 4, 16 ) ref -> x22 class-hnd exact "Inlining Arg" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
;* V09 tmp3 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.CodeDom.CodeDirectiveCollection>
; V10 tmp4 [V10,T09] ( 3, 12 ) ref -> x22 class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
; V11 tmp5 [V11,T26] ( 2, 8 ) ref -> x0 class-hnd "dup spill" <System.CodeDom.CodeDirectiveCollection>
; V12 tmp6 [V12,T22] ( 4, 8 ) ref -> x0
; V13 tmp7 [V13,T04] ( 4, 16 ) ref -> x23 class-hnd exact "NewObj constructor temp" <System.CodeDom.CodeDirectiveCollection>
;* V14 tmp8 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.CodeDom.CodeDirectiveCollection>
; V15 tmp9 [V15,T10] ( 3, 12 ) ref -> x0 class-hnd exact "NewObj constructor temp" <System.Collections.ArrayList>
;* V16 tmp10 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.CodeDom.CodeDirectiveCollection>
; V17 tmp11 [V17,T11] ( 3, 12 ) ref -> x22 class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
; V18 tmp12 [V18,T27] ( 2, 8 ) ref -> x1 class-hnd "dup spill" <System.CodeDom.CodeDirectiveCollection>
; V19 tmp13 [V19,T23] ( 4, 8 ) ref -> x1
; V20 tmp14 [V20,T05] ( 4, 16 ) ref -> x23 class-hnd exact "NewObj constructor temp" <System.CodeDom.CodeDirectiveCollection>
;* V21 tmp15 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.CodeDom.CodeDirectiveCollection>
; V22 tmp16 [V22,T12] ( 3, 12 ) ref -> x0 class-hnd exact "NewObj constructor temp" <System.Collections.ArrayList>
;* V23 tmp17 [V23 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
;* V24 tmp18 [V24 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.CodeDom.CodeDirectiveCollection>
; V25 tmp19 [V25,T13] ( 3, 12 ) ref -> x21 class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
; V26 tmp20 [V26,T28] ( 2, 8 ) ref -> x0 class-hnd "dup spill" <System.CodeDom.CodeDirectiveCollection>
; V27 tmp21 [V27,T24] ( 4, 8 ) ref -> x0
; V28 tmp22 [V28,T06] ( 4, 16 ) ref -> x22 class-hnd exact "NewObj constructor temp" <System.CodeDom.CodeDirectiveCollection>
;* V29 tmp23 [V29 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.CodeDom.CodeDirectiveCollection>
; V30 tmp24 [V30,T14] ( 3, 12 ) ref -> x0 class-hnd exact "NewObj constructor temp" <System.Collections.ArrayList>
;* V31 tmp25 [V31 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.CodeDom.CodeDirectiveCollection>
; V32 tmp26 [V32,T15] ( 3, 12 ) ref -> x21 class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
; V33 tmp27 [V33,T29] ( 2, 8 ) ref -> x1 class-hnd "dup spill" <System.CodeDom.CodeDirectiveCollection>
; V34 tmp28 [V34,T25] ( 4, 8 ) ref -> x1
; V35 tmp29 [V35,T07] ( 4, 16 ) ref -> x22 class-hnd exact "NewObj constructor temp" <System.CodeDom.CodeDirectiveCollection>
;* V36 tmp30 [V36 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.CodeDom.CodeDirectiveCollection>
; V37 tmp31 [V37,T16] ( 3, 12 ) ref -> x0 class-hnd exact "NewObj constructor temp" <System.Collections.ArrayList>
; V38 tmp32 [V38,T30] ( 3, 6 ) ref -> x0 single-def "argument with side effect"
; V39 tmp33 [V39,T02] ( 3, 18 ) ref -> x0 "argument with side effect"
; V40 tmp34 [V40,T17] ( 3, 12 ) ref -> x0 "argument with side effect"
; V41 PSPSym [V41,T35] ( 1, 1 ) long -> [fp+0x20] do-not-enreg[V] "PSPSym"
; V42 cse0 [V42,T31] ( 3, 6 ) ref -> x1 "CSE #06: moderate"
; V43 cse1 [V43,T18] ( 7, 10.50) long -> x20 multi-def "CSE #01: moderate"
; V44 rat0 [V44,T01] ( 5, 30 ) ref -> x21 "replacement local"
; V45 rat1 [V45,T20] ( 3, 10 ) long -> x2 "CSE for expectedClsNode"
;
; Lcl frame size = 24
G_M374_IG01:
stp fp, lr, [sp, #-0x50]!
stp x19, x20, [sp, #0x28]
stp x21, x22, [sp, #0x38]
str x23, [sp, #0x48]
mov fp, sp
add x2, sp, #80
str x2, [fp, #0x20] // [V41 PSPSym]
mov x19, x0
;; size=32 bbWeight=1 PerfScore 6.50
G_M374_IG02:
mov x0, x1
movz x1, #0xD1FFAB1E // code for System.CodeDom.CodeTypeDeclaration:get_Members():System.CodeDom.CodeTypeMemberCollection:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
ldr x0, [x0, #0x08]
ldr x1, [x0]
ldr x1, [x1, #0x58]
ldr x1, [x1]
blr x1
mov x1, x0
str x1, [fp, #0x18] // [V02 loc0]
;; size=56 bbWeight=1 PerfScore 23.50
G_M374_IG03:
mov x0, x1
movz x20, #0xD1FFAB1E
movk x20, #0xD1FFAB1E LSL #16
movk x20, #0xD1FFAB1E LSL #32
mov x11, x20
ldr xip0, [x11]
blr xip0
cbz w0, G_M374_IG18
;; size=32 bbWeight=1 PerfScore 7.50
G_M374_IG04:
ldr x0, [fp, #0x18] // [V02 loc0]
add x11, x20, #8
ldr xip0, [x11]
blr xip0
mov x21, x0
cbz x21, G_M374_IG07
;; size=24 bbWeight=4 PerfScore 32.00
G_M374_IG05:
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x1, [x21]
cmp x1, x2
beq G_M374_IG07
;; size=24 bbWeight=2 PerfScore 12.00
G_M374_IG06:
mov x1, x0
mov x0, x2
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_CHKCASTCLASS_SPECIAL
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x21, x0
;; size=32 bbWeight=1 PerfScore 7.00
G_M374_IG07:
mov x1, x21
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFCLASS
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz x0, G_M374_IG17
;; size=40 bbWeight=4 PerfScore 34.00
G_M374_IG08:
add x14, x19, #32
mov x15, x21
bl CORINFO_HELP_ASSIGN_REF
ldr x0, [x19, #0x10]
movz x1, #0xD1FFAB1E // code for System.CodeDom.Compiler.CodeGeneratorOptions:get_BlankLinesBetweenMembers():ubyte:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
cbz w0, G_M374_IG09
ldr x22, [x19, #0x08]
mov x0, x22
movz x1, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:OutputTabs():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
ldr x0, [x22, #0x20]
ldr x1, [x0]
ldr x1, [x1, #0x60]
ldr x1, [x1, #0x10]
blr x1
mov w0, #1
strb w0, [x22, #0x34]
;; size=104 bbWeight=2 PerfScore 82.00
G_M374_IG09:
ldr x22, [x19, #0x20]
ldr x0, [x22, #0x20]
cbnz x0, G_M374_IG10
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x23, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x0, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x23, #8
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x14, x22, #32
mov x15, x23
bl CORINFO_HELP_ASSIGN_REF
mov x0, x23
- ;; size=100 bbWeight=2 PerfScore 46.00
+ ;; size=96 bbWeight=2 PerfScore 45.00
G_M374_IG10:
movz x1, #0xD1FFAB1E // code for System.Collections.CollectionBase:get_Count():int:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
cmp w0, #0
ble G_M374_IG12
ldr x22, [x19, #0x20]
ldr x1, [x22, #0x20]
cbnz x1, G_M374_IG11
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x23, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x0, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x23, #8
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x14, x22, #32
mov x15, x23
bl CORINFO_HELP_ASSIGN_REF
mov x1, x23
- ;; size=132 bbWeight=2 PerfScore 66.00
+ ;; size=128 bbWeight=2 PerfScore 65.00
G_M374_IG11:
mov x0, x19
movz x2, #0xD1FFAB1E // code for Microsoft.CSharp.CSharpCodeGenerator:GenerateDirectives(System.CodeDom.CodeDirectiveCollection):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=24 bbWeight=2 PerfScore 12.00
G_M374_IG12:
ldr x1, [x19, #0x20]
ldr x1, [x1, #0x38]
mov x0, x19
movz x2, #0xD1FFAB1E // code for Microsoft.CSharp.CSharpCodeGenerator:GenerateCommentStatements(System.CodeDom.CodeCommentStatementCollection):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
ldr x1, [x21, #0x30]
cbz x1, G_M374_IG13
mov x0, x19
movz x2, #0xD1FFAB1E // code for Microsoft.CSharp.CSharpCodeGenerator:GenerateLinePragmaStart(System.CodeDom.CodeLinePragma):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=64 bbWeight=2 PerfScore 44.00
G_M374_IG13:
mov x0, x19
mov x1, x21
movz x2, #0xD1FFAB1E // code for Microsoft.CSharp.CSharpCodeGenerator:GenerateField(System.CodeDom.CodeMemberField):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
ldr x0, [x21, #0x30]
cbz x0, G_M374_IG14
mov x0, x19
movz x1, #0xD1FFAB1E // code for Microsoft.CSharp.CSharpCodeGenerator:GenerateLinePragmaEnd():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
;; size=60 bbWeight=2 PerfScore 33.00
G_M374_IG14:
ldr x21, [x19, #0x20]
ldr x0, [x21, #0x28]
cbnz x0, G_M374_IG15
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
bl CORINFO_HELP_NEWSFAST
movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x0, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x22, #8
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x14, x21, #40
mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
mov x0, x22
- ;; size=100 bbWeight=2 PerfScore 46.00
+ ;; size=96 bbWeight=2 PerfScore 45.00
G_M374_IG15:
movz x1, #0xD1FFAB1E // code for System.Collections.CollectionBase:get_Count():int:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
cmp w0, #0
ble G_M374_IG17
ldr x21, [x19, #0x20]
ldr x1, [x21, #0x28]
cbnz x1, G_M374_IG16
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
bl CORINFO_HELP_NEWSFAST
movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x0, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x22, #8
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x14, x21, #40
mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
mov x1, x22
- ;; size=132 bbWeight=2 PerfScore 66.00
+ ;; size=128 bbWeight=2 PerfScore 65.00
G_M374_IG16:
mov x0, x19
movz x2, #0xD1FFAB1E // code for Microsoft.CSharp.CSharpCodeGenerator:GenerateDirectives(System.CodeDom.CodeDirectiveCollection):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=24 bbWeight=2 PerfScore 12.00
G_M374_IG17:
ldr x0, [fp, #0x18] // [V02 loc0]
mov x11, x20
ldr xip0, [x11]
blr xip0
cbnz w0, G_M374_IG04
;; size=20 bbWeight=4 PerfScore 30.00
G_M374_IG18:
ldr x1, [fp, #0x18] // [V02 loc0]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFINTERFACE
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz x0, G_M374_IG20
;; size=40 bbWeight=1 PerfScore 10.00
G_M374_IG19:
add x11, x20, #16
ldr xip0, [x11]
blr xip0
;; size=12 bbWeight=0.50 PerfScore 2.25
G_M374_IG20:
ldr x23, [sp, #0x48]
ldp x21, x22, [sp, #0x38]
ldp x19, x20, [sp, #0x28]
ldp fp, lr, [sp], #0x50
ret lr
;; size=20 bbWeight=1 PerfScore 6.00
G_M374_IG21:
stp fp, lr, [sp, #-0x40]!
stp x19, x20, [sp, #0x18]
stp x21, x22, [sp, #0x28]
str x23, [sp, #0x38]
add x3, fp, #80
str x3, [sp, #0x10]
;; size=24 bbWeight=0 PerfScore 0.00
G_M374_IG22:
ldr x1, [fp, #0x18] // [V02 loc0]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFINTERFACE
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz x0, G_M374_IG23
movz x20, #0xD1FFAB1E
movk x20, #0xD1FFAB1E LSL #16
movk x20, #0xD1FFAB1E LSL #32
add x11, x20, #16
ldr xip0, [x11]
blr xip0
;; size=64 bbWeight=0 PerfScore 0.00
G_M374_IG23:
ldr x23, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x40
ret lr
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1180, prolog size 32, PerfScore 577.75, instruction count 295, allocated bytes for code 1180 (MethodHash=9e32fe89) for method Microsoft.CSharp.CSharpCodeGenerator:GenerateFields(System.CodeDom.CodeTypeDeclaration):this (FullOpts)
+; Total bytes of code 1164, prolog size 32, PerfScore 573.75, instruction count 291, allocated bytes for code 1164 (MethodHash=9e32fe89) for method Microsoft.CSharp.CSharpCodeGenerator:GenerateFields(System.CodeDom.CodeTypeDeclaration):this (FullOpts)
-16 (-1.20 % of base) - Microsoft.CSharp.CSharpCodeGenerator:GenerateMethods(System.CodeDom.CodeTypeDeclaration):this
; Assembly listing for method Microsoft.CSharp.CSharpCodeGenerator:GenerateMethods(System.CodeDom.CodeTypeDeclaration):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; 32 single block inlinees; 4 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 17, 32 ) ref -> x19 this class-hnd single-def <Microsoft.CSharp.CSharpCodeGenerator>
; V01 arg1 [V01,T32] ( 3, 3 ) ref -> x1 class-hnd single-def <System.CodeDom.CodeTypeDeclaration>
; V02 loc0 [V02,T20] ( 6, 10 ) ref -> [fp+0x18] class-hnd EH-live spill-single-def <System.Collections.IEnumerator>
; V03 loc1 [V03,T02] ( 7, 18 ) ref -> x21 class-hnd <System.CodeDom.CodeTypeMember>
; V04 loc2 [V04,T09] ( 5, 10 ) ref -> x22 class-hnd <System.CodeDom.CodeMemberMethod>
; V05 loc3 [V05,T35] ( 6, 2.50) ref -> x0 class-hnd <System.IDisposable>
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V07 tmp1 [V07,T33] ( 2, 4 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.CodeDom.CodeTypeMemberCollection>
; V08 tmp2 [V08,T04] ( 4, 16 ) ref -> x22 class-hnd exact "Inlining Arg" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
;* V09 tmp3 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.CodeDom.CodeDirectiveCollection>
; V10 tmp4 [V10,T10] ( 3, 12 ) ref -> x22 class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
; V11 tmp5 [V11,T26] ( 2, 8 ) ref -> x0 class-hnd "dup spill" <System.CodeDom.CodeDirectiveCollection>
; V12 tmp6 [V12,T22] ( 4, 8 ) ref -> x0
; V13 tmp7 [V13,T05] ( 4, 16 ) ref -> x23 class-hnd exact "NewObj constructor temp" <System.CodeDom.CodeDirectiveCollection>
;* V14 tmp8 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.CodeDom.CodeDirectiveCollection>
; V15 tmp9 [V15,T11] ( 3, 12 ) ref -> x0 class-hnd exact "NewObj constructor temp" <System.Collections.ArrayList>
;* V16 tmp10 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.CodeDom.CodeDirectiveCollection>
; V17 tmp11 [V17,T12] ( 3, 12 ) ref -> x22 class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
; V18 tmp12 [V18,T27] ( 2, 8 ) ref -> x1 class-hnd "dup spill" <System.CodeDom.CodeDirectiveCollection>
; V19 tmp13 [V19,T23] ( 4, 8 ) ref -> x1
; V20 tmp14 [V20,T06] ( 4, 16 ) ref -> x23 class-hnd exact "NewObj constructor temp" <System.CodeDom.CodeDirectiveCollection>
;* V21 tmp15 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.CodeDom.CodeDirectiveCollection>
; V22 tmp16 [V22,T13] ( 3, 12 ) ref -> x0 class-hnd exact "NewObj constructor temp" <System.Collections.ArrayList>
;* V23 tmp17 [V23 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
;* V24 tmp18 [V24 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.CodeDom.CodeDirectiveCollection>
; V25 tmp19 [V25,T14] ( 3, 12 ) ref -> x21 class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
; V26 tmp20 [V26,T28] ( 2, 8 ) ref -> x0 class-hnd "dup spill" <System.CodeDom.CodeDirectiveCollection>
; V27 tmp21 [V27,T24] ( 4, 8 ) ref -> x0
; V28 tmp22 [V28,T07] ( 4, 16 ) ref -> x22 class-hnd exact "NewObj constructor temp" <System.CodeDom.CodeDirectiveCollection>
;* V29 tmp23 [V29 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.CodeDom.CodeDirectiveCollection>
; V30 tmp24 [V30,T15] ( 3, 12 ) ref -> x0 class-hnd exact "NewObj constructor temp" <System.Collections.ArrayList>
;* V31 tmp25 [V31 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.CodeDom.CodeDirectiveCollection>
; V32 tmp26 [V32,T16] ( 3, 12 ) ref -> x21 class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
; V33 tmp27 [V33,T29] ( 2, 8 ) ref -> x1 class-hnd "dup spill" <System.CodeDom.CodeDirectiveCollection>
; V34 tmp28 [V34,T25] ( 4, 8 ) ref -> x1
; V35 tmp29 [V35,T08] ( 4, 16 ) ref -> x22 class-hnd exact "NewObj constructor temp" <System.CodeDom.CodeDirectiveCollection>
;* V36 tmp30 [V36 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.CodeDom.CodeDirectiveCollection>
; V37 tmp31 [V37,T17] ( 3, 12 ) ref -> x0 class-hnd exact "NewObj constructor temp" <System.Collections.ArrayList>
; V38 tmp32 [V38,T30] ( 3, 6 ) ref -> x0 single-def "argument with side effect"
; V39 tmp33 [V39,T03] ( 3, 18 ) ref -> x0 "argument with side effect"
; V40 tmp34 [V40,T18] ( 3, 12 ) ref -> x0 "argument with side effect"
;* V41 tmp35 [V41,T34] ( 0, 0 ) ref -> zero-ref "argument with side effect"
; V42 PSPSym [V42,T36] ( 1, 1 ) long -> [fp+0x20] do-not-enreg[V] "PSPSym"
; V43 cse0 [V43,T31] ( 3, 6 ) ref -> x1 "CSE #06: moderate"
; V44 cse1 [V44,T19] ( 7, 10.50) long -> x20 multi-def "CSE #01: moderate"
; V45 rat0 [V45,T01] ( 5, 30 ) ref -> x21 "replacement local"
; V46 rat1 [V46,T21] ( 3, 10 ) long -> x2 "CSE for expectedClsNode"
;
; Lcl frame size = 24
G_M46635_IG01:
stp fp, lr, [sp, #-0x50]!
stp x19, x20, [sp, #0x28]
stp x21, x22, [sp, #0x38]
str x23, [sp, #0x48]
mov fp, sp
add x2, sp, #80
str x2, [fp, #0x20] // [V42 PSPSym]
mov x19, x0
;; size=32 bbWeight=1 PerfScore 6.50
G_M46635_IG02:
mov x0, x1
movz x1, #0xD1FFAB1E // code for System.CodeDom.CodeTypeDeclaration:get_Members():System.CodeDom.CodeTypeMemberCollection:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
ldr x0, [x0, #0x08]
ldr x1, [x0]
ldr x1, [x1, #0x58]
ldr x1, [x1]
blr x1
mov x1, x0
str x1, [fp, #0x18] // [V02 loc0]
;; size=56 bbWeight=1 PerfScore 23.50
G_M46635_IG03:
mov x0, x1
movz x20, #0xD1FFAB1E
movk x20, #0xD1FFAB1E LSL #16
movk x20, #0xD1FFAB1E LSL #32
mov x11, x20
ldr xip0, [x11]
blr xip0
cbz w0, G_M46635_IG20
;; size=32 bbWeight=1 PerfScore 7.50
G_M46635_IG04:
ldr x0, [fp, #0x18] // [V02 loc0]
add x11, x20, #8
ldr xip0, [x11]
blr xip0
mov x21, x0
cbz x21, G_M46635_IG07
;; size=24 bbWeight=4 PerfScore 32.00
G_M46635_IG05:
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x1, [x21]
cmp x1, x2
beq G_M46635_IG07
;; size=24 bbWeight=2 PerfScore 12.00
G_M46635_IG06:
mov x1, x0
mov x0, x2
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_CHKCASTCLASS_SPECIAL
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x21, x0
;; size=32 bbWeight=1 PerfScore 7.00
G_M46635_IG07:
mov x1, x21
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFCLASS
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz x0, G_M46635_IG19
;; size=40 bbWeight=4 PerfScore 34.00
G_M46635_IG08:
mov x1, x21
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFCLASS
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbnz x0, G_M46635_IG19
mov x1, x21
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFCLASS
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbnz x0, G_M46635_IG19
add x14, x19, #32
mov x15, x21
bl CORINFO_HELP_ASSIGN_REF
ldr x0, [x19, #0x10]
movz x1, #0xD1FFAB1E // code for System.CodeDom.Compiler.CodeGeneratorOptions:get_BlankLinesBetweenMembers():ubyte:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
cbz w0, G_M46635_IG09
ldr x22, [x19, #0x08]
mov x0, x22
movz x1, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:OutputTabs():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
ldr x0, [x22, #0x20]
ldr x1, [x0]
ldr x1, [x1, #0x60]
ldr x1, [x1, #0x10]
blr x1
mov w0, #1
strb w0, [x22, #0x34]
;; size=184 bbWeight=2 PerfScore 116.00
G_M46635_IG09:
ldr x22, [x19, #0x20]
ldr x0, [x22, #0x20]
cbnz x0, G_M46635_IG10
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x23, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x0, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x23, #8
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x14, x22, #32
mov x15, x23
bl CORINFO_HELP_ASSIGN_REF
mov x0, x23
- ;; size=100 bbWeight=2 PerfScore 46.00
+ ;; size=96 bbWeight=2 PerfScore 45.00
G_M46635_IG10:
movz x1, #0xD1FFAB1E // code for System.Collections.CollectionBase:get_Count():int:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
cmp w0, #0
ble G_M46635_IG12
ldr x22, [x19, #0x20]
ldr x1, [x22, #0x20]
cbnz x1, G_M46635_IG11
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x23, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x0, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x23, #8
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x14, x22, #32
mov x15, x23
bl CORINFO_HELP_ASSIGN_REF
mov x1, x23
- ;; size=132 bbWeight=2 PerfScore 66.00
+ ;; size=128 bbWeight=2 PerfScore 65.00
G_M46635_IG11:
mov x0, x19
movz x2, #0xD1FFAB1E // code for Microsoft.CSharp.CSharpCodeGenerator:GenerateDirectives(System.CodeDom.CodeDirectiveCollection):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=24 bbWeight=2 PerfScore 12.00
G_M46635_IG12:
ldr x1, [x19, #0x20]
ldr x1, [x1, #0x38]
mov x0, x19
movz x2, #0xD1FFAB1E // code for Microsoft.CSharp.CSharpCodeGenerator:GenerateCommentStatements(System.CodeDom.CodeCommentStatementCollection):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x22, x21
ldr x1, [x21, #0x30]
cbz x1, G_M46635_IG13
mov x0, x19
movz x2, #0xD1FFAB1E // code for Microsoft.CSharp.CSharpCodeGenerator:GenerateLinePragmaStart(System.CodeDom.CodeLinePragma):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=68 bbWeight=2 PerfScore 45.00
G_M46635_IG13:
mov x1, x22
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFCLASS
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbnz x0, G_M46635_IG14
mov x0, x19
mov x1, x22
movz x2, #0xD1FFAB1E // code for Microsoft.CSharp.CSharpCodeGenerator:GenerateMethod(System.CodeDom.CodeMemberMethod):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
b G_M46635_IG15
;; size=72 bbWeight=2 PerfScore 32.00
G_M46635_IG14:
mov x1, x22
mov x0, x19
movz x2, #0xD1FFAB1E // code for Microsoft.CSharp.CSharpCodeGenerator:GenerateEntryPointMethod(System.CodeDom.CodeEntryPointMethod):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=28 bbWeight=2 PerfScore 13.00
G_M46635_IG15:
ldr x0, [x22, #0x30]
cbz x0, G_M46635_IG16
mov x0, x19
movz x1, #0xD1FFAB1E // code for Microsoft.CSharp.CSharpCodeGenerator:GenerateLinePragmaEnd():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
;; size=32 bbWeight=2 PerfScore 20.00
G_M46635_IG16:
ldr x21, [x19, #0x20]
ldr x0, [x21, #0x28]
cbnz x0, G_M46635_IG17
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
bl CORINFO_HELP_NEWSFAST
movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x0, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x22, #8
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x14, x21, #40
mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
mov x0, x22
- ;; size=100 bbWeight=2 PerfScore 46.00
+ ;; size=96 bbWeight=2 PerfScore 45.00
G_M46635_IG17:
movz x1, #0xD1FFAB1E // code for System.Collections.CollectionBase:get_Count():int:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
cmp w0, #0
ble G_M46635_IG19
ldr x21, [x19, #0x20]
ldr x1, [x21, #0x28]
cbnz x1, G_M46635_IG18
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
bl CORINFO_HELP_NEWSFAST
movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x0, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x22, #8
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x14, x21, #40
mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
mov x1, x22
- ;; size=132 bbWeight=2 PerfScore 66.00
+ ;; size=128 bbWeight=2 PerfScore 65.00
G_M46635_IG18:
mov x0, x19
movz x2, #0xD1FFAB1E // code for Microsoft.CSharp.CSharpCodeGenerator:GenerateDirectives(System.CodeDom.CodeDirectiveCollection):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=24 bbWeight=2 PerfScore 12.00
G_M46635_IG19:
ldr x0, [fp, #0x18] // [V02 loc0]
mov x11, x20
ldr xip0, [x11]
blr xip0
cbnz w0, G_M46635_IG04
;; size=20 bbWeight=4 PerfScore 30.00
G_M46635_IG20:
ldr x1, [fp, #0x18] // [V02 loc0]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFINTERFACE
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz x0, G_M46635_IG22
;; size=40 bbWeight=1 PerfScore 10.00
G_M46635_IG21:
add x11, x20, #16
ldr xip0, [x11]
blr xip0
;; size=12 bbWeight=0.50 PerfScore 2.25
G_M46635_IG22:
ldr x23, [sp, #0x48]
ldp x21, x22, [sp, #0x38]
ldp x19, x20, [sp, #0x28]
ldp fp, lr, [sp], #0x50
ret lr
;; size=20 bbWeight=1 PerfScore 6.00
G_M46635_IG23:
stp fp, lr, [sp, #-0x40]!
stp x19, x20, [sp, #0x18]
stp x21, x22, [sp, #0x28]
str x23, [sp, #0x38]
add x3, fp, #80
str x3, [sp, #0x10]
;; size=24 bbWeight=0 PerfScore 0.00
G_M46635_IG24:
ldr x1, [fp, #0x18] // [V02 loc0]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFINTERFACE
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz x0, G_M46635_IG25
movz x20, #0xD1FFAB1E
movk x20, #0xD1FFAB1E LSL #16
movk x20, #0xD1FFAB1E LSL #32
add x11, x20, #16
ldr xip0, [x11]
blr xip0
;; size=64 bbWeight=0 PerfScore 0.00
G_M46635_IG25:
ldr x23, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x40
ret lr
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1336, prolog size 32, PerfScore 644.75, instruction count 334, allocated bytes for code 1336 (MethodHash=d7a349d4) for method Microsoft.CSharp.CSharpCodeGenerator:GenerateMethods(System.CodeDom.CodeTypeDeclaration):this (FullOpts)
+; Total bytes of code 1320, prolog size 32, PerfScore 640.75, instruction count 330, allocated bytes for code 1320 (MethodHash=d7a349d4) for method Microsoft.CSharp.CSharpCodeGenerator:GenerateMethods(System.CodeDom.CodeTypeDeclaration):this (FullOpts)
-16 (-0.61 % of base) - Microsoft.CSharp.CSharpCodeGenerator:GeneratePrimitiveExpression(System.CodeDom.CodePrimitiveExpression):this
; Assembly listing for method Microsoft.CSharp.CSharpCodeGenerator:GeneratePrimitiveExpression(System.CodeDom.CodePrimitiveExpression):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; 79 single block inlinees; 12 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T01] ( 21, 11.50) ref -> x19 this class-hnd single-def <Microsoft.CSharp.CSharpCodeGenerator>
; V01 arg1 [V01,T04] ( 4, 3 ) ref -> x20 class-hnd single-def <System.CodeDom.CodePrimitiveExpression>
; V02 loc0 [V02,T109] ( 2, 1 ) byte -> x22 ld-addr-op single-def
;* V03 loc1 [V03 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op
;* V04 loc2 [V04 ] ( 0, 0 ) int -> zero-ref ld-addr-op
;* V05 loc3 [V05 ] ( 0, 0 ) long -> zero-ref ld-addr-op
;* V06 loc4 [V06 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op
; V07 loc5 [V07,T110] ( 2, 1 ) short -> x22 ld-addr-op single-def
; V08 loc6 [V08,T58] ( 4, 2 ) int -> x22 ld-addr-op single-def
; V09 loc7 [V09,T59] ( 4, 2 ) long -> x22 ld-addr-op single-def
;# V10 OutArgs [V10 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V11 tmp1 [V11,T03] ( 3, 4.50) ref -> x1 single-def "ISINST eval op1"
;* V12 tmp2 [V12,T83] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <System.Char>
; V13 tmp3 [V13,T07] ( 3, 2.50) ref -> x1 single-def "ISINST eval op1"
;* V14 tmp4 [V14,T84] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <System.SByte>
; V15 tmp5 [V15,T08] ( 3, 2.50) ref -> x1 single-def "ISINST eval op1"
;* V16 tmp6 [V16,T85] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <System.UInt16>
; V17 tmp7 [V17,T09] ( 3, 2.50) ref -> x1 single-def "ISINST eval op1"
;* V18 tmp8 [V18,T86] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <System.UInt32>
; V19 tmp9 [V19,T10] ( 3, 2.50) ref -> x1 single-def "ISINST eval op1"
;* V20 tmp10 [V20,T13] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <System.UInt64>
;* V21 tmp11 [V21,T60] ( 0, 0 ) ref -> zero-ref single-def "ISINST eval op1"
;* V22 tmp12 [V22,T61] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <System.String>
;* V23 tmp13 [V23,T62] ( 0, 0 ) ref -> zero-ref single-def "ISINST eval op1"
;* V24 tmp14 [V24,T63] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <System.Byte>
;* V25 tmp15 [V25,T64] ( 0, 0 ) ref -> zero-ref single-def "ISINST eval op1"
;* V26 tmp16 [V26,T65] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <System.Int16>
;* V27 tmp17 [V27,T66] ( 0, 0 ) ref -> zero-ref single-def "ISINST eval op1"
;* V28 tmp18 [V28,T67] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <System.Int32>
;* V29 tmp19 [V29,T68] ( 0, 0 ) ref -> zero-ref single-def "ISINST eval op1"
;* V30 tmp20 [V30,T69] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <System.Int64>
; V31 tmp21 [V31,T14] ( 2, 2 ) ref -> x1 single-def "ISINST eval op1"
;* V32 tmp22 [V32,T87] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <System.Single>
; V33 tmp23 [V33,T15] ( 2, 2 ) ref -> x1 single-def "ISINST eval op1"
;* V34 tmp24 [V34,T88] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <System.Double>
; V35 tmp25 [V35,T16] ( 2, 2 ) ref -> x1 single-def "ISINST eval op1"
;* V36 tmp26 [V36,T89] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <System.Decimal>
; V37 tmp27 [V37,T17] ( 2, 2 ) ref -> x1 single-def "ISINST eval op1"
;* V38 tmp28 [V38,T103] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <System.Boolean>
; V39 tmp29 [V39,T112] ( 2, 0 ) ref -> x19 class-hnd exact single-def "impAppendStmt" <System.String>
; V40 tmp30 [V40,T111] ( 3, 0 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
; V41 tmp31 [V41,T46] ( 3, 2.50) ref -> x21 single-def "inline UNBOX clone1"
; V42 tmp32 [V42,T11] ( 4, 3.50) ref -> x21 single-def "inline UNBOX clone1"
; V43 tmp33 [V43,T47] ( 3, 2.50) ref -> x21 single-def "inline UNBOX clone1"
; V44 tmp34 [V44,T48] ( 3, 2.50) ref -> x21 single-def "inline UNBOX clone1"
; V45 tmp35 [V45,T18] ( 3, 3 ) ref -> x19 class-hnd exact single-def "impAppendStmt" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
; V46 tmp36 [V46,T49] ( 3, 2.50) ref -> x21 single-def "inline UNBOX clone1"
; V47 tmp37 [V47,T19] ( 3, 3 ) ref -> x19 class-hnd exact single-def "impAppendStmt" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
; V48 tmp38 [V48,T50] ( 3, 2.50) ref -> x21 single-def "inline UNBOX clone1"
; V49 tmp39 [V49,T20] ( 3, 3 ) ref -> x19 class-hnd exact single-def "impAppendStmt" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
; V50 tmp40 [V50,T51] ( 3, 2.50) ref -> x21 single-def "inline UNBOX clone1"
; V51 tmp41 [V51,T21] ( 3, 3 ) ref -> x19 class-hnd exact single-def "impAppendStmt" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
; V52 tmp42 [V52,T52] ( 3, 2.50) ref -> x21 single-def "inline UNBOX clone1"
; V53 tmp43 [V53,T22] ( 3, 3 ) ref -> x22 class-hnd exact single-def "impAppendStmt" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
; V54 tmp44 [V54,T23] ( 3, 3 ) ref -> x20 class-hnd exact single-def "impAppendStmt" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
; V55 tmp45 [V55,T24] ( 3, 3 ) ref -> x20 class-hnd exact single-def "impAppendStmt" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
; V56 tmp46 [V56,T53] ( 3, 2.50) ref -> x21 single-def "inline UNBOX clone1"
; V57 tmp47 [V57,T25] ( 3, 3 ) ref -> x20 class-hnd exact single-def "impAppendStmt" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
; V58 tmp48 [V58,T54] ( 3, 2.50) ref -> x21 single-def "inline UNBOX clone1"
; V59 tmp49 [V59,T26] ( 3, 3 ) ref -> x19 class-hnd exact single-def "impAppendStmt" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
; V60 tmp50 [V60,T55] ( 3, 2.50) ref -> x21 single-def "inline UNBOX clone1"
; V61 tmp51 [V61,T27] ( 3, 3 ) ref -> x19 class-hnd exact single-def "impAppendStmt" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
; V62 tmp52 [V62,T56] ( 3, 2.50) ref -> x21 single-def "inline UNBOX clone1"
; V63 tmp53 [V63,T57] ( 3, 2.50) ref -> x21 single-def "inline UNBOX clone1"
; V64 tmp54 [V64,T70] ( 2, 2 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.Globalization.CultureInfo>
; V65 tmp55 [V65,T90] ( 3, 1.50) ref -> x20 class-hnd "Inline return value spill temp" <System.String>
; V66 tmp56 [V66,T05] ( 4, 4 ) int -> x22 "Inlining Arg"
;* V67 tmp57 [V67 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V68 tmp58 [V68,T105] ( 2, 1 ) ref -> x0 class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
; V69 tmp59 [V69,T71] ( 2, 2 ) ref -> x22 class-hnd exact single-def "Inlining Arg" <System.String>
; V70 tmp60 [V70,T72] ( 2, 2 ) ref -> x22 class-hnd exact single-def "Inlining Arg" <System.String>
; V71 tmp61 [V71,T28] ( 3, 3 ) ref -> x19 class-hnd exact single-def "Inlining Arg" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
; V72 tmp62 [V72,T73] ( 2, 2 ) ref -> x22 class-hnd exact single-def "Inlining Arg" <System.String>
; V73 tmp63 [V73,T29] ( 3, 3 ) ref -> x19 class-hnd exact single-def "Inlining Arg" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
; V74 tmp64 [V74,T74] ( 2, 2 ) ref -> x19 class-hnd exact single-def "Inlining Arg" <System.String>
; V75 tmp65 [V75,T75] ( 2, 2 ) ref -> x22 class-hnd exact single-def "Inlining Arg" <System.String>
; V76 tmp66 [V76,T76] ( 2, 2 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.Globalization.CultureInfo>
; V77 tmp67 [V77,T91] ( 3, 1.50) ref -> x20 class-hnd "Inline return value spill temp" <System.String>
; V78 tmp68 [V78,T06] ( 4, 4 ) int -> x22 "Inlining Arg"
;* V79 tmp69 [V79 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V80 tmp70 [V80,T106] ( 2, 1 ) ref -> x0 class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
; V81 tmp71 [V81,T77] ( 2, 2 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.Globalization.CultureInfo>
; V82 tmp72 [V82,T92] ( 3, 1.50) ref -> x20 class-hnd "Inline return value spill temp" <System.String>
;* V83 tmp73 [V83 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V84 tmp74 [V84 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V85 tmp75 [V85,T107] ( 2, 1 ) ref -> x0 class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
; V86 tmp76 [V86,T78] ( 2, 2 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.Globalization.CultureInfo>
; V87 tmp77 [V87,T93] ( 3, 1.50) ref -> x20 class-hnd "Inline return value spill temp" <System.String>
;* V88 tmp78 [V88 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V89 tmp79 [V89 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V90 tmp80 [V90,T108] ( 2, 1 ) ref -> x0 class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
; V91 tmp81 [V91,T30] ( 3, 3 ) ref -> x19 class-hnd exact single-def "Inlining Arg" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
; V92 tmp82 [V92,T31] ( 3, 3 ) ref -> x19 class-hnd exact single-def "Inlining Arg" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
; V93 tmp83 [V93,T113] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
; V94 tmp84 [V94,T114] ( 2, 0 ) ref -> x19 single-def "argument with side effect"
; V95 tmp85 [V95,T115] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
; V96 tmp86 [V96,T32] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
; V97 tmp87 [V97,T33] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
; V98 tmp88 [V98,T34] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
; V99 tmp89 [V99,T35] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
; V100 tmp90 [V100,T36] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
; V101 tmp91 [V101,T37] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
; V102 tmp92 [V102,T79] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
; V103 tmp93 [V103,T38] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
; V104 tmp94 [V104,T39] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
; V105 tmp95 [V105,T40] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
; V106 tmp96 [V106,T41] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
; V107 tmp97 [V107,T42] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
; V108 tmp98 [V108,T43] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
; V109 tmp99 [V109,T44] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
; V110 tmp100 [V110,T45] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
; V111 cse0 [V111,T00] ( 25, 13 ) ref -> x21 "CSE #01: aggressive"
; V112 cse1 [V112,T02] ( 32, 12.50) long -> x22 multi-def "CSE #02: aggressive"
; V113 cse2 [V113,T94] ( 4, 1.25) long -> x0 "CSE #03: conservative"
; V114 cse3 [V114,T95] ( 4, 1.25) long -> x0 "CSE #04: conservative"
; V115 cse4 [V115,T96] ( 4, 1.25) long -> x0 "CSE #06: conservative"
; V116 cse5 [V116,T97] ( 4, 1.25) long -> x0 "CSE #08: conservative"
; V117 cse6 [V117,T98] ( 4, 1.25) long -> x0 "CSE #09: conservative"
; V118 cse7 [V118,T80] ( 4, 1.75) long -> x0 "CSE #10: conservative"
; V119 cse8 [V119,T81] ( 4, 1.75) long -> x0 "CSE #11: conservative"
; V120 cse9 [V120,T82] ( 4, 1.75) long -> x0 "CSE #14: conservative"
; V121 cse10 [V121,T99] ( 4, 1.25) long -> x0 "CSE #18: conservative"
; V122 cse11 [V122,T100] ( 4, 1.25) long -> x0 "CSE #19: conservative"
; V123 cse12 [V123,T101] ( 4, 1.25) long -> x0 "CSE #20: conservative"
; V124 cse13 [V124,T102] ( 4, 1.25) long -> x0 "CSE #21: conservative"
; V125 rat0 [V125,T12] ( 4, 3.50) ref -> x1 "replacement local"
; V126 rat1 [V126,T104] ( 3, 1 ) long -> x0 "CSE for expectedClsNode"
;
; Lcl frame size = 0
G_M59103_IG01:
stp fp, lr, [sp, #-0x30]!
stp x19, x20, [sp, #0x10]
stp x21, x22, [sp, #0x20]
mov fp, sp
mov x19, x0
mov x20, x1
;; size=24 bbWeight=1 PerfScore 4.50
G_M59103_IG02:
ldr x1, [x20, #0x10]
mov x21, x1
cbz x1, G_M59103_IG07
;; size=12 bbWeight=1 PerfScore 4.50
G_M59103_IG03:
ldr x22, [x1]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
cmp x22, x0
bne G_M59103_IG07
;; size=24 bbWeight=0.25 PerfScore 1.50
G_M59103_IG04:
cmp x22, x0
beq G_M59103_IG06
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M59103_IG05:
mov x1, x21
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_UNBOX
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=24 bbWeight=0.25 PerfScore 1.50
G_M59103_IG06:
ldrh w1, [x21, #0x08]
mov x0, x19
movz x2, #0xD1FFAB1E // code for Microsoft.CSharp.CSharpCodeGenerator:GeneratePrimitiveChar(ushort):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
b G_M59103_IG72
;; size=32 bbWeight=0.50 PerfScore 5.00
G_M59103_IG07:
mov x1, x21
cbz x1, G_M59103_IG14
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M59103_IG08:
ldr x22, [x1]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
cmp x22, x0
bne G_M59103_IG14
;; size=24 bbWeight=0.25 PerfScore 1.50
G_M59103_IG09:
ldr x19, [x19, #0x08]
cmp x22, x0
beq G_M59103_IG11
;; size=12 bbWeight=0.50 PerfScore 2.25
G_M59103_IG10:
mov x1, x21
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_UNBOX
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=24 bbWeight=0.25 PerfScore 1.50
G_M59103_IG11:
ldrsb w22, [x21, #0x08]
movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
tbnz w22, #31, G_M59103_IG12
mov w0, w22
movz x1, #0xD1FFAB1E // code for System.Number:UInt32ToDecStr(uint):System.String
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
mov x20, x0
b G_M59103_IG13
- ;; size=56 bbWeight=0.50 PerfScore 8.00
+ ;; size=52 bbWeight=0.50 PerfScore 7.75
G_M59103_IG12:
movz x1, #0xD1FFAB1E // code for System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|58_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
ldr x2, [x0, #0x28]
mov w0, w22
movn w1, #0
movz x3, #0xD1FFAB1E // code for System.Number:NegativeInt32ToDecStr(int,int,System.String):System.String
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x20, x0
;; size=56 bbWeight=0.50 PerfScore 7.75
G_M59103_IG13:
mov x0, x19
movz x1, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:OutputTabs():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
ldr x0, [x19, #0x20]
mov x1, x20
ldr x2, [x0]
ldr x2, [x2, #0x58]
ldr x2, [x2, #0x10]
blr x2
b G_M59103_IG72
;; size=56 bbWeight=0.50 PerfScore 11.75
G_M59103_IG14:
mov x1, x21
cbz x1, G_M59103_IG19
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M59103_IG15:
ldr x22, [x1]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
cmp x22, x0
bne G_M59103_IG19
;; size=24 bbWeight=0.25 PerfScore 1.50
G_M59103_IG16:
ldr x19, [x19, #0x08]
cmp x22, x0
beq G_M59103_IG18
;; size=12 bbWeight=0.50 PerfScore 2.25
G_M59103_IG17:
mov x1, x21
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_UNBOX
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=24 bbWeight=0.25 PerfScore 1.50
G_M59103_IG18:
ldrh w0, [x21, #0x08]
movz x1, #0xD1FFAB1E // code for System.Number:UInt32ToDecStr(uint):System.String
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
mov x22, x0
mov x0, x19
movz x1, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:OutputTabs():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
ldr x0, [x19, #0x20]
mov x1, x22
ldr x2, [x0]
ldr x2, [x2, #0x58]
ldr x2, [x2, #0x10]
blr x2
b G_M59103_IG72
;; size=84 bbWeight=0.50 PerfScore 16.25
G_M59103_IG19:
mov x1, x21
cbz x1, G_M59103_IG24
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M59103_IG20:
ldr x22, [x1]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
cmp x22, x0
bne G_M59103_IG24
;; size=24 bbWeight=0.25 PerfScore 1.50
G_M59103_IG21:
ldr x20, [x19, #0x08]
cmp x22, x0
beq G_M59103_IG23
;; size=12 bbWeight=0.50 PerfScore 2.25
G_M59103_IG22:
mov x1, x21
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_UNBOX
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=24 bbWeight=0.25 PerfScore 1.50
G_M59103_IG23:
ldr w0, [x21, #0x08]
movz x1, #0xD1FFAB1E // code for System.Number:UInt32ToDecStr(uint):System.String
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
mov x22, x0
mov x0, x20
movz x1, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:OutputTabs():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
ldr x0, [x20, #0x20]
mov x1, x22
ldr x2, [x0]
ldr x2, [x2, #0x58]
ldr x2, [x2, #0x10]
blr x2
ldr x19, [x19, #0x08]
mov x0, x19
movz x1, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:OutputTabs():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
ldr x0, [x19, #0x20]
mov w1, #117
ldr x2, [x0]
ldr x2, [x2, #0x48]
ldr x2, [x2, #0x30]
blr x2
b G_M59103_IG72
;; size=140 bbWeight=0.50 PerfScore 29.00
G_M59103_IG24:
mov x1, x21
cbz x1, G_M59103_IG71
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M59103_IG25:
ldr x22, [x1]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
cmp x22, x0
bne G_M59103_IG29
;; size=24 bbWeight=0.25 PerfScore 1.50
G_M59103_IG26:
ldr x20, [x19, #0x08]
cmp x22, x0
beq G_M59103_IG28
;; size=12 bbWeight=0.50 PerfScore 2.25
G_M59103_IG27:
mov x1, x21
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_UNBOX
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=24 bbWeight=0.25 PerfScore 1.50
G_M59103_IG28:
ldr x0, [x21, #0x08]
movz x1, #0xD1FFAB1E // code for System.Number:UInt64ToDecStr(ulong):System.String
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
mov x22, x0
mov x0, x20
movz x1, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:OutputTabs():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
ldr x0, [x20, #0x20]
mov x1, x22
ldr x2, [x0]
ldr x2, [x2, #0x58]
ldr x2, [x2, #0x10]
blr x2
ldr x19, [x19, #0x08]
mov x0, x19
movz x1, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:OutputTabs():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
ldr x0, [x19, #0x20]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x2, [x0]
ldr x2, [x2, #0x58]
ldr x2, [x2, #0x10]
blr x2
b G_M59103_IG72
;; size=148 bbWeight=0.50 PerfScore 29.50
G_M59103_IG29:
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
cmp x22, x1
bne G_M59103_IG32
ldr x22, [x19, #0x08]
mov x1, x21
cbz x1, G_M59103_IG31
;; size=32 bbWeight=0.50 PerfScore 3.75
G_M59103_IG30:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x2, [x1]
cmp x2, x0
bne G_M59103_IG73
;; size=24 bbWeight=0.25 PerfScore 1.50
G_M59103_IG31:
mov x0, x19
movz x2, #0xD1FFAB1E // code for Microsoft.CSharp.CSharpCodeGenerator:QuoteSnippetString(System.String):System.String:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x19, x0
mov x0, x22
movz x1, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:OutputTabs():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
ldr x0, [x22, #0x20]
mov x1, x19
ldr x2, [x0]
ldr x2, [x2, #0x58]
ldr x2, [x2, #0x10]
blr x2
b G_M59103_IG72
;; size=84 bbWeight=0.50 PerfScore 15.00
G_M59103_IG32:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
cmp x22, x0
bne G_M59103_IG35
ldr x19, [x19, #0x08]
cmp x22, x0
beq G_M59103_IG34
;; size=32 bbWeight=0.50 PerfScore 3.75
G_M59103_IG33:
mov x1, x21
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_UNBOX
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=24 bbWeight=0.25 PerfScore 1.50
G_M59103_IG34:
ldrb w0, [x21, #0x08]
movz x1, #0xD1FFAB1E // code for System.Number:UInt32ToDecStr(uint):System.String
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
mov x22, x0
mov x0, x19
movz x1, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:OutputTabs():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
ldr x0, [x19, #0x20]
mov x1, x22
ldr x2, [x0]
ldr x2, [x2, #0x58]
ldr x2, [x2, #0x10]
blr x2
b G_M59103_IG72
;; size=84 bbWeight=0.50 PerfScore 16.25
G_M59103_IG35:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
cmp x22, x0
bne G_M59103_IG40
ldr x19, [x19, #0x08]
cmp x22, x0
beq G_M59103_IG37
;; size=32 bbWeight=0.50 PerfScore 3.75
G_M59103_IG36:
mov x1, x21
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_UNBOX
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=24 bbWeight=0.25 PerfScore 1.50
G_M59103_IG37:
ldrsh w22, [x21, #0x08]
movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
tbnz w22, #31, G_M59103_IG38
mov w0, w22
movz x1, #0xD1FFAB1E // code for System.Number:UInt32ToDecStr(uint):System.String
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
mov x20, x0
b G_M59103_IG39
- ;; size=56 bbWeight=0.50 PerfScore 8.00
+ ;; size=52 bbWeight=0.50 PerfScore 7.75
G_M59103_IG38:
movz x1, #0xD1FFAB1E // code for System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|58_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
ldr x2, [x0, #0x28]
mov w0, w22
movn w1, #0
movz x3, #0xD1FFAB1E // code for System.Number:NegativeInt32ToDecStr(int,int,System.String):System.String
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x20, x0
;; size=56 bbWeight=0.50 PerfScore 7.75
G_M59103_IG39:
mov x0, x19
movz x1, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:OutputTabs():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
ldr x0, [x19, #0x20]
mov x1, x20
ldr x2, [x0]
ldr x2, [x2, #0x58]
ldr x2, [x2, #0x10]
blr x2
b G_M59103_IG72
;; size=56 bbWeight=0.50 PerfScore 11.75
G_M59103_IG40:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
cmp x22, x0
bne G_M59103_IG45
ldr x19, [x19, #0x08]
cmp x22, x0
beq G_M59103_IG42
;; size=32 bbWeight=0.50 PerfScore 3.75
G_M59103_IG41:
mov x1, x21
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_UNBOX
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=24 bbWeight=0.25 PerfScore 1.50
G_M59103_IG42:
ldr w22, [x21, #0x08]
movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
tbnz w22, #31, G_M59103_IG43
mov w0, w22
movz x1, #0xD1FFAB1E // code for System.Number:UInt32ToDecStr(uint):System.String
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
mov x20, x0
b G_M59103_IG44
- ;; size=56 bbWeight=0.50 PerfScore 8.00
+ ;; size=52 bbWeight=0.50 PerfScore 7.75
G_M59103_IG43:
movz x1, #0xD1FFAB1E // code for System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|58_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
ldr x2, [x0, #0x28]
mov w0, w22
movn w1, #0
movz x3, #0xD1FFAB1E // code for System.Number:NegativeInt32ToDecStr(int,int,System.String):System.String
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x20, x0
;; size=56 bbWeight=0.50 PerfScore 7.75
G_M59103_IG44:
mov x0, x19
movz x1, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:OutputTabs():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
ldr x0, [x19, #0x20]
mov x1, x20
ldr x2, [x0]
ldr x2, [x2, #0x58]
ldr x2, [x2, #0x10]
blr x2
b G_M59103_IG72
;; size=56 bbWeight=0.50 PerfScore 11.75
G_M59103_IG45:
movz x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
cmp x22, x1
bne G_M59103_IG50
ldr x19, [x19, #0x08]
movz x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
cmp x22, x1
beq G_M59103_IG47
;; size=36 bbWeight=0.50 PerfScore 4.00
G_M59103_IG46:
mov x1, x21
movz x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_UNBOX
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=32 bbWeight=0.25 PerfScore 1.75
G_M59103_IG47:
ldr x22, [x21, #0x08]
movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
tbnz x22, #63, G_M59103_IG48
mov x0, x22
movz x1, #0xD1FFAB1E // code for System.Number:UInt64ToDecStr(ulong):System.String
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
mov x20, x0
b G_M59103_IG49
- ;; size=56 bbWeight=0.50 PerfScore 8.00
+ ;; size=52 bbWeight=0.50 PerfScore 7.75
G_M59103_IG48:
movz x1, #0xD1FFAB1E // code for System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|58_0(System.IFormatProvider):System.Globalization.NumberFormatInfo
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
ldr x2, [x0, #0x28]
mov x0, x22
movn w1, #0
movz x3, #0xD1FFAB1E // code for System.Number:NegativeInt64ToDecStr(long,int,System.String):System.String
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
mov x20, x0
;; size=56 bbWeight=0.50 PerfScore 7.75
G_M59103_IG49:
mov x0, x19
movz x1, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:OutputTabs():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
ldr x0, [x19, #0x20]
mov x1, x20
ldr x2, [x0]
ldr x2, [x2, #0x58]
ldr x2, [x2, #0x10]
blr x2
b G_M59103_IG72
;; size=56 bbWeight=0.50 PerfScore 11.75
G_M59103_IG50:
mov x1, x21
cbz x1, G_M59103_IG55
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M59103_IG51:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
cmp x22, x0
bne G_M59103_IG55
;; size=20 bbWeight=0.25 PerfScore 0.75
G_M59103_IG52:
cmp x22, x0
beq G_M59103_IG54
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M59103_IG53:
mov x1, x21
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_UNBOX
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=24 bbWeight=0.25 PerfScore 1.50
G_M59103_IG54:
ldr s0, [x21, #0x08]
mov x0, x19
movz x1, #0xD1FFAB1E // code for Microsoft.CSharp.CSharpCodeGenerator:GenerateSingleFloatValue(float):this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
b G_M59103_IG72
;; size=32 bbWeight=0.50 PerfScore 5.00
G_M59103_IG55:
mov x1, x21
cbz x1, G_M59103_IG60
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M59103_IG56:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
cmp x22, x0
bne G_M59103_IG60
;; size=20 bbWeight=0.25 PerfScore 0.75
G_M59103_IG57:
cmp x22, x0
beq G_M59103_IG59
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M59103_IG58:
mov x1, x21
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_UNBOX
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=24 bbWeight=0.25 PerfScore 1.50
G_M59103_IG59:
ldr d0, [x21, #0x08]
mov x0, x19
movz x1, #0xD1FFAB1E // code for Microsoft.CSharp.CSharpCodeGenerator:GenerateDoubleValue(double):this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
b G_M59103_IG72
;; size=32 bbWeight=0.50 PerfScore 5.00
G_M59103_IG60:
mov x1, x21
cbz x1, G_M59103_IG65
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M59103_IG61:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
cmp x22, x0
bne G_M59103_IG65
;; size=20 bbWeight=0.25 PerfScore 0.75
G_M59103_IG62:
cmp x22, x0
beq G_M59103_IG64
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M59103_IG63:
mov x1, x21
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_UNBOX
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=24 bbWeight=0.25 PerfScore 1.50
G_M59103_IG64:
ldr x1, [x21, #0x08]
add x2, x21, #8
ldr x2, [x2, #0x08]
mov x0, x19
movz x3, #0xD1FFAB1E // code for Microsoft.CSharp.CSharpCodeGenerator:GenerateDecimalValue(System.Decimal):this
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
b G_M59103_IG72
;; size=40 bbWeight=0.50 PerfScore 6.75
G_M59103_IG65:
mov x1, x21
cbz x1, G_M59103_IG74
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M59103_IG66:
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
cmp x22, x0
bne G_M59103_IG74
;; size=20 bbWeight=0.25 PerfScore 0.75
G_M59103_IG67:
cmp x22, x0
beq G_M59103_IG69
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M59103_IG68:
mov x1, x21
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_UNBOX
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=24 bbWeight=0.25 PerfScore 1.50
G_M59103_IG69:
ldrb w0, [x21, #0x08]
cbnz w0, G_M59103_IG70
ldr x19, [x19, #0x08]
mov x0, x19
movz x1, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:OutputTabs():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
ldr x0, [x19, #0x20]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x2, [x0]
ldr x2, [x2, #0x58]
ldr x2, [x2, #0x10]
blr x2
b G_M59103_IG72
;; size=76 bbWeight=0.50 PerfScore 15.75
G_M59103_IG70:
ldr x19, [x19, #0x08]
mov x0, x19
movz x1, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:OutputTabs():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
ldr x0, [x19, #0x20]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x2, [x0]
ldr x2, [x2, #0x58]
ldr x2, [x2, #0x10]
blr x2
b G_M59103_IG72
;; size=68 bbWeight=0.50 PerfScore 13.75
G_M59103_IG71:
ldr x20, [x19, #0x08]
mov x0, x20
movz x1, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:OutputTabs():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
ldr x0, [x20, #0x20]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x2, [x0]
ldr x2, [x2, #0x58]
ldr x2, [x2, #0x10]
blr x2
;; size=64 bbWeight=0.50 PerfScore 13.25
G_M59103_IG72:
ldp x21, x22, [sp, #0x20]
ldp x19, x20, [sp, #0x10]
ldp fp, lr, [sp], #0x30
ret lr
;; size=16 bbWeight=1 PerfScore 4.00
G_M59103_IG73:
mov x1, x21
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_CHKCASTCLASS
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
brk_unix #0
;; size=28 bbWeight=0 PerfScore 0.00
G_M59103_IG74:
movz x0, #0xD1FFAB1E // code for System.SR:get_InvalidPrimitiveType():System.String
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
mov x19, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x21, x0
ldr x0, [x20, #0x10]
bl System.Object:GetType():System.Type:this
mov x1, x0
mov x0, x19
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 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, x21
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, x21
bl CORINFO_HELP_THROW
brk_unix #0
;; size=148 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2644, prolog size 16, PerfScore 363.00, instruction count 661, allocated bytes for code 2644 (MethodHash=7ac21920) for method Microsoft.CSharp.CSharpCodeGenerator:GeneratePrimitiveExpression(System.CodeDom.CodePrimitiveExpression):this (FullOpts)
+; Total bytes of code 2628, prolog size 16, PerfScore 362.00, instruction count 657, allocated bytes for code 2628 (MethodHash=7ac21920) for method Microsoft.CSharp.CSharpCodeGenerator:GeneratePrimitiveExpression(System.CodeDom.CodePrimitiveExpression):this (FullOpts)
-16 (-1.36 % of base) - Microsoft.CSharp.CSharpCodeGenerator:GenerateProperties(System.CodeDom.CodeTypeDeclaration):this
; Assembly listing for method Microsoft.CSharp.CSharpCodeGenerator:GenerateProperties(System.CodeDom.CodeTypeDeclaration):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; 32 single block inlinees; 4 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 16, 30 ) ref -> x19 this class-hnd single-def <Microsoft.CSharp.CSharpCodeGenerator>
; V01 arg1 [V01,T32] ( 3, 3 ) ref -> x1 class-hnd single-def <System.CodeDom.CodeTypeDeclaration>
; V02 loc0 [V02,T19] ( 6, 10 ) ref -> [fp+0x18] class-hnd EH-live spill-single-def <System.Collections.IEnumerator>
; V03 loc1 [V03,T08] ( 4, 12 ) ref -> x21 class-hnd <System.CodeDom.CodeTypeMember>
; V04 loc2 [V04,T21] ( 4, 8 ) ref -> x21 class-hnd <System.CodeDom.CodeMemberProperty>
; V05 loc3 [V05,T34] ( 6, 2.50) ref -> x0 class-hnd <System.IDisposable>
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V07 tmp1 [V07,T33] ( 2, 4 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.CodeDom.CodeTypeMemberCollection>
; V08 tmp2 [V08,T03] ( 4, 16 ) ref -> x22 class-hnd exact "Inlining Arg" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
;* V09 tmp3 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.CodeDom.CodeDirectiveCollection>
; V10 tmp4 [V10,T09] ( 3, 12 ) ref -> x22 class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
; V11 tmp5 [V11,T26] ( 2, 8 ) ref -> x0 class-hnd "dup spill" <System.CodeDom.CodeDirectiveCollection>
; V12 tmp6 [V12,T22] ( 4, 8 ) ref -> x0
; V13 tmp7 [V13,T04] ( 4, 16 ) ref -> x23 class-hnd exact "NewObj constructor temp" <System.CodeDom.CodeDirectiveCollection>
;* V14 tmp8 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.CodeDom.CodeDirectiveCollection>
; V15 tmp9 [V15,T10] ( 3, 12 ) ref -> x0 class-hnd exact "NewObj constructor temp" <System.Collections.ArrayList>
;* V16 tmp10 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.CodeDom.CodeDirectiveCollection>
; V17 tmp11 [V17,T11] ( 3, 12 ) ref -> x22 class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
; V18 tmp12 [V18,T27] ( 2, 8 ) ref -> x1 class-hnd "dup spill" <System.CodeDom.CodeDirectiveCollection>
; V19 tmp13 [V19,T23] ( 4, 8 ) ref -> x1
; V20 tmp14 [V20,T05] ( 4, 16 ) ref -> x23 class-hnd exact "NewObj constructor temp" <System.CodeDom.CodeDirectiveCollection>
;* V21 tmp15 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.CodeDom.CodeDirectiveCollection>
; V22 tmp16 [V22,T12] ( 3, 12 ) ref -> x0 class-hnd exact "NewObj constructor temp" <System.Collections.ArrayList>
;* V23 tmp17 [V23 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
;* V24 tmp18 [V24 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.CodeDom.CodeDirectiveCollection>
; V25 tmp19 [V25,T13] ( 3, 12 ) ref -> x21 class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
; V26 tmp20 [V26,T28] ( 2, 8 ) ref -> x0 class-hnd "dup spill" <System.CodeDom.CodeDirectiveCollection>
; V27 tmp21 [V27,T24] ( 4, 8 ) ref -> x0
; V28 tmp22 [V28,T06] ( 4, 16 ) ref -> x22 class-hnd exact "NewObj constructor temp" <System.CodeDom.CodeDirectiveCollection>
;* V29 tmp23 [V29 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.CodeDom.CodeDirectiveCollection>
; V30 tmp24 [V30,T14] ( 3, 12 ) ref -> x0 class-hnd exact "NewObj constructor temp" <System.Collections.ArrayList>
;* V31 tmp25 [V31 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.CodeDom.CodeDirectiveCollection>
; V32 tmp26 [V32,T15] ( 3, 12 ) ref -> x21 class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
; V33 tmp27 [V33,T29] ( 2, 8 ) ref -> x1 class-hnd "dup spill" <System.CodeDom.CodeDirectiveCollection>
; V34 tmp28 [V34,T25] ( 4, 8 ) ref -> x1
; V35 tmp29 [V35,T07] ( 4, 16 ) ref -> x22 class-hnd exact "NewObj constructor temp" <System.CodeDom.CodeDirectiveCollection>
;* V36 tmp30 [V36 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.CodeDom.CodeDirectiveCollection>
; V37 tmp31 [V37,T16] ( 3, 12 ) ref -> x0 class-hnd exact "NewObj constructor temp" <System.Collections.ArrayList>
; V38 tmp32 [V38,T30] ( 3, 6 ) ref -> x0 single-def "argument with side effect"
; V39 tmp33 [V39,T02] ( 3, 18 ) ref -> x0 "argument with side effect"
; V40 tmp34 [V40,T17] ( 3, 12 ) ref -> x0 "argument with side effect"
; V41 PSPSym [V41,T35] ( 1, 1 ) long -> [fp+0x20] do-not-enreg[V] "PSPSym"
; V42 cse0 [V42,T31] ( 3, 6 ) ref -> x1 "CSE #06: moderate"
; V43 cse1 [V43,T18] ( 7, 10.50) long -> x20 multi-def "CSE #01: moderate"
; V44 rat0 [V44,T01] ( 5, 30 ) ref -> x21 "replacement local"
; V45 rat1 [V45,T20] ( 3, 10 ) long -> x2 "CSE for expectedClsNode"
;
; Lcl frame size = 24
G_M60262_IG01:
stp fp, lr, [sp, #-0x50]!
stp x19, x20, [sp, #0x28]
stp x21, x22, [sp, #0x38]
str x23, [sp, #0x48]
mov fp, sp
add x2, sp, #80
str x2, [fp, #0x20] // [V41 PSPSym]
mov x19, x0
;; size=32 bbWeight=1 PerfScore 6.50
G_M60262_IG02:
mov x0, x1
movz x1, #0xD1FFAB1E // code for System.CodeDom.CodeTypeDeclaration:get_Members():System.CodeDom.CodeTypeMemberCollection:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
ldr x0, [x0, #0x08]
ldr x1, [x0]
ldr x1, [x1, #0x58]
ldr x1, [x1]
blr x1
mov x1, x0
str x1, [fp, #0x18] // [V02 loc0]
;; size=56 bbWeight=1 PerfScore 23.50
G_M60262_IG03:
mov x0, x1
movz x20, #0xD1FFAB1E
movk x20, #0xD1FFAB1E LSL #16
movk x20, #0xD1FFAB1E LSL #32
mov x11, x20
ldr xip0, [x11]
blr xip0
cbz w0, G_M60262_IG18
;; size=32 bbWeight=1 PerfScore 7.50
G_M60262_IG04:
ldr x0, [fp, #0x18] // [V02 loc0]
add x11, x20, #8
ldr xip0, [x11]
blr xip0
mov x21, x0
cbz x21, G_M60262_IG07
;; size=24 bbWeight=4 PerfScore 32.00
G_M60262_IG05:
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x1, [x21]
cmp x1, x2
beq G_M60262_IG07
;; size=24 bbWeight=2 PerfScore 12.00
G_M60262_IG06:
mov x1, x0
mov x0, x2
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_CHKCASTCLASS_SPECIAL
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x21, x0
;; size=32 bbWeight=1 PerfScore 7.00
G_M60262_IG07:
mov x1, x21
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFCLASS
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz x0, G_M60262_IG17
;; size=40 bbWeight=4 PerfScore 34.00
G_M60262_IG08:
add x14, x19, #32
mov x15, x21
bl CORINFO_HELP_ASSIGN_REF
ldr x0, [x19, #0x10]
movz x1, #0xD1FFAB1E // code for System.CodeDom.Compiler.CodeGeneratorOptions:get_BlankLinesBetweenMembers():ubyte:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
cbz w0, G_M60262_IG09
ldr x22, [x19, #0x08]
mov x0, x22
movz x1, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:OutputTabs():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
ldr x0, [x22, #0x20]
ldr x1, [x0]
ldr x1, [x1, #0x60]
ldr x1, [x1, #0x10]
blr x1
mov w0, #1
strb w0, [x22, #0x34]
;; size=104 bbWeight=2 PerfScore 82.00
G_M60262_IG09:
ldr x22, [x19, #0x20]
ldr x0, [x22, #0x20]
cbnz x0, G_M60262_IG10
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x23, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x0, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x23, #8
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x14, x22, #32
mov x15, x23
bl CORINFO_HELP_ASSIGN_REF
mov x0, x23
- ;; size=100 bbWeight=2 PerfScore 46.00
+ ;; size=96 bbWeight=2 PerfScore 45.00
G_M60262_IG10:
movz x1, #0xD1FFAB1E // code for System.Collections.CollectionBase:get_Count():int:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
cmp w0, #0
ble G_M60262_IG12
ldr x22, [x19, #0x20]
ldr x1, [x22, #0x20]
cbnz x1, G_M60262_IG11
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x23, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x0, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x23, #8
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x14, x22, #32
mov x15, x23
bl CORINFO_HELP_ASSIGN_REF
mov x1, x23
- ;; size=132 bbWeight=2 PerfScore 66.00
+ ;; size=128 bbWeight=2 PerfScore 65.00
G_M60262_IG11:
mov x0, x19
movz x2, #0xD1FFAB1E // code for Microsoft.CSharp.CSharpCodeGenerator:GenerateDirectives(System.CodeDom.CodeDirectiveCollection):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=24 bbWeight=2 PerfScore 12.00
G_M60262_IG12:
ldr x1, [x19, #0x20]
ldr x1, [x1, #0x38]
mov x0, x19
movz x2, #0xD1FFAB1E // code for Microsoft.CSharp.CSharpCodeGenerator:GenerateCommentStatements(System.CodeDom.CodeCommentStatementCollection):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
ldr x1, [x21, #0x30]
cbz x1, G_M60262_IG13
mov x0, x19
movz x2, #0xD1FFAB1E // code for Microsoft.CSharp.CSharpCodeGenerator:GenerateLinePragmaStart(System.CodeDom.CodeLinePragma):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=64 bbWeight=2 PerfScore 44.00
G_M60262_IG13:
mov x0, x19
mov x1, x21
movz x2, #0xD1FFAB1E // code for Microsoft.CSharp.CSharpCodeGenerator:GenerateProperty(System.CodeDom.CodeMemberProperty):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
ldr x0, [x21, #0x30]
cbz x0, G_M60262_IG14
mov x0, x19
movz x1, #0xD1FFAB1E // code for Microsoft.CSharp.CSharpCodeGenerator:GenerateLinePragmaEnd():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
;; size=60 bbWeight=2 PerfScore 33.00
G_M60262_IG14:
ldr x21, [x19, #0x20]
ldr x0, [x21, #0x28]
cbnz x0, G_M60262_IG15
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
bl CORINFO_HELP_NEWSFAST
movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x0, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x22, #8
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x14, x21, #40
mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
mov x0, x22
- ;; size=100 bbWeight=2 PerfScore 46.00
+ ;; size=96 bbWeight=2 PerfScore 45.00
G_M60262_IG15:
movz x1, #0xD1FFAB1E // code for System.Collections.CollectionBase:get_Count():int:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
cmp w0, #0
ble G_M60262_IG17
ldr x21, [x19, #0x20]
ldr x1, [x21, #0x28]
cbnz x1, G_M60262_IG16
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
bl CORINFO_HELP_NEWSFAST
movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x0, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x22, #8
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x14, x21, #40
mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
mov x1, x22
- ;; size=132 bbWeight=2 PerfScore 66.00
+ ;; size=128 bbWeight=2 PerfScore 65.00
G_M60262_IG16:
mov x0, x19
movz x2, #0xD1FFAB1E // code for Microsoft.CSharp.CSharpCodeGenerator:GenerateDirectives(System.CodeDom.CodeDirectiveCollection):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=24 bbWeight=2 PerfScore 12.00
G_M60262_IG17:
ldr x0, [fp, #0x18] // [V02 loc0]
mov x11, x20
ldr xip0, [x11]
blr xip0
cbnz w0, G_M60262_IG04
;; size=20 bbWeight=4 PerfScore 30.00
G_M60262_IG18:
ldr x1, [fp, #0x18] // [V02 loc0]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFINTERFACE
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz x0, G_M60262_IG20
;; size=40 bbWeight=1 PerfScore 10.00
G_M60262_IG19:
add x11, x20, #16
ldr xip0, [x11]
blr xip0
;; size=12 bbWeight=0.50 PerfScore 2.25
G_M60262_IG20:
ldr x23, [sp, #0x48]
ldp x21, x22, [sp, #0x38]
ldp x19, x20, [sp, #0x28]
ldp fp, lr, [sp], #0x50
ret lr
;; size=20 bbWeight=1 PerfScore 6.00
G_M60262_IG21:
stp fp, lr, [sp, #-0x40]!
stp x19, x20, [sp, #0x18]
stp x21, x22, [sp, #0x28]
str x23, [sp, #0x38]
add x3, fp, #80
str x3, [sp, #0x10]
;; size=24 bbWeight=0 PerfScore 0.00
G_M60262_IG22:
ldr x1, [fp, #0x18] // [V02 loc0]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFINTERFACE
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz x0, G_M60262_IG23
movz x20, #0xD1FFAB1E
movk x20, #0xD1FFAB1E LSL #16
movk x20, #0xD1FFAB1E LSL #32
add x11, x20, #16
ldr xip0, [x11]
blr xip0
;; size=64 bbWeight=0 PerfScore 0.00
G_M60262_IG23:
ldr x23, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x40
ret lr
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1180, prolog size 32, PerfScore 577.75, instruction count 295, allocated bytes for code 1180 (MethodHash=9d111499) for method Microsoft.CSharp.CSharpCodeGenerator:GenerateProperties(System.CodeDom.CodeTypeDeclaration):this (FullOpts)
+; Total bytes of code 1164, prolog size 32, PerfScore 573.75, instruction count 291, allocated bytes for code 1164 (MethodHash=9d111499) for method Microsoft.CSharp.CSharpCodeGenerator:GenerateProperties(System.CodeDom.CodeTypeDeclaration):this (FullOpts)
-16 (-1.18 % of base) - Microsoft.CSharp.CSharpCodeGenerator:GenerateSnippetMembers(System.CodeDom.CodeTypeDeclaration):this
; Assembly listing for method Microsoft.CSharp.CSharpCodeGenerator:GenerateSnippetMembers(System.CodeDom.CodeTypeDeclaration):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; 43 single block inlinees; 7 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 18, 32.50) ref -> x19 this class-hnd single-def <Microsoft.CSharp.CSharpCodeGenerator>
; V01 arg1 [V01,T41] ( 3, 3 ) ref -> x1 class-hnd single-def <System.CodeDom.CodeTypeDeclaration>
; V02 loc0 [V02,T43] ( 3, 4 ) ubyte -> x20
; V03 loc1 [V03,T22] ( 6, 10 ) ref -> [fp+0x18] class-hnd EH-live spill-single-def <System.Collections.IEnumerator>
; V04 loc2 [V04,T08] ( 4, 12 ) ref -> x22 class-hnd <System.CodeDom.CodeTypeMember>
; V05 loc3 [V05,T24] ( 4, 8 ) ref -> x22 class-hnd <System.CodeDom.CodeSnippetTypeMember>
; V06 loc4 [V06,T39] ( 3, 6 ) int -> x24
; V07 loc5 [V07,T46] ( 6, 2.50) ref -> x0 class-hnd <System.IDisposable>
;# V08 OutArgs [V08 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V09 tmp1 [V09,T44] ( 2, 4 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.CodeDom.CodeTypeMemberCollection>
; V10 tmp2 [V10,T03] ( 4, 16 ) ref -> x23 class-hnd exact "Inlining Arg" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
;* V11 tmp3 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.CodeDom.CodeDirectiveCollection>
; V12 tmp4 [V12,T09] ( 3, 12 ) ref -> x23 class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
; V13 tmp5 [V13,T31] ( 2, 8 ) ref -> x0 class-hnd "dup spill" <System.CodeDom.CodeDirectiveCollection>
; V14 tmp6 [V14,T25] ( 4, 8 ) ref -> x0
; V15 tmp7 [V15,T04] ( 4, 16 ) ref -> x24 class-hnd exact "NewObj constructor temp" <System.CodeDom.CodeDirectiveCollection>
;* V16 tmp8 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.CodeDom.CodeDirectiveCollection>
; V17 tmp9 [V17,T10] ( 3, 12 ) ref -> x0 class-hnd exact "NewObj constructor temp" <System.Collections.ArrayList>
;* V18 tmp10 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.CodeDom.CodeDirectiveCollection>
; V19 tmp11 [V19,T11] ( 3, 12 ) ref -> x23 class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
; V20 tmp12 [V20,T32] ( 2, 8 ) ref -> x1 class-hnd "dup spill" <System.CodeDom.CodeDirectiveCollection>
; V21 tmp13 [V21,T26] ( 4, 8 ) ref -> x1
; V22 tmp14 [V22,T05] ( 4, 16 ) ref -> x24 class-hnd exact "NewObj constructor temp" <System.CodeDom.CodeDirectiveCollection>
;* V23 tmp15 [V23 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.CodeDom.CodeDirectiveCollection>
; V24 tmp16 [V24,T12] ( 3, 12 ) ref -> x0 class-hnd exact "NewObj constructor temp" <System.Collections.ArrayList>
;* V25 tmp17 [V25 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
;* V26 tmp18 [V26 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
; V27 tmp19 [V27,T33] ( 2, 8 ) ref -> x0 class-hnd exact "Inlining Arg" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
;* V28 tmp20 [V28 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
; V29 tmp21 [V29,T13] ( 3, 12 ) ref -> x23 class-hnd exact "impAppendStmt" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
; V30 tmp22 [V30,T34] ( 2, 8 ) ref -> x25 class-hnd exact "dup spill" <System.String>
; V31 tmp23 [V31,T27] ( 4, 8 ) ref -> x25
; V32 tmp24 [V32,T14] ( 3, 12 ) ref -> x0 class-hnd exact "Inlining Arg" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
; V33 tmp25 [V33,T40] ( 3, 6 ) int -> x24 "Inline return value spill temp"
;* V34 tmp26 [V34 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.CodeDom.CodeDirectiveCollection>
; V35 tmp27 [V35,T15] ( 3, 12 ) ref -> x22 class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
; V36 tmp28 [V36,T35] ( 2, 8 ) ref -> x0 class-hnd "dup spill" <System.CodeDom.CodeDirectiveCollection>
; V37 tmp29 [V37,T28] ( 4, 8 ) ref -> x0
; V38 tmp30 [V38,T06] ( 4, 16 ) ref -> x23 class-hnd exact "NewObj constructor temp" <System.CodeDom.CodeDirectiveCollection>
;* V39 tmp31 [V39 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.CodeDom.CodeDirectiveCollection>
; V40 tmp32 [V40,T16] ( 3, 12 ) ref -> x0 class-hnd exact "NewObj constructor temp" <System.Collections.ArrayList>
;* V41 tmp33 [V41 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.CodeDom.CodeDirectiveCollection>
; V42 tmp34 [V42,T17] ( 3, 12 ) ref -> x22 class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
; V43 tmp35 [V43,T36] ( 2, 8 ) ref -> x1 class-hnd "dup spill" <System.CodeDom.CodeDirectiveCollection>
; V44 tmp36 [V44,T29] ( 4, 8 ) ref -> x1
; V45 tmp37 [V45,T07] ( 4, 16 ) ref -> x23 class-hnd exact "NewObj constructor temp" <System.CodeDom.CodeDirectiveCollection>
;* V46 tmp38 [V46 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.CodeDom.CodeDirectiveCollection>
; V47 tmp39 [V47,T18] ( 3, 12 ) ref -> x0 class-hnd exact "NewObj constructor temp" <System.Collections.ArrayList>
; V48 tmp40 [V48,T42] ( 4, 4 ) ref -> x21 class-hnd exact single-def "Inlining Arg" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
; V49 tmp41 [V49,T37] ( 3, 6 ) ref -> x0 single-def "argument with side effect"
; V50 tmp42 [V50,T02] ( 3, 18 ) ref -> x0 "argument with side effect"
; V51 tmp43 [V51,T19] ( 3, 12 ) ref -> x0 "argument with side effect"
; V52 tmp44 [V52,T20] ( 3, 12 ) ref -> x0 "argument with side effect"
; V53 tmp45 [V53,T45] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
; V54 PSPSym [V54,T47] ( 1, 1 ) long -> [fp+0x20] do-not-enreg[V] "PSPSym"
; V55 cse0 [V55,T30] ( 4, 8 ) ref -> x23 "CSE #07: moderate"
; V56 cse1 [V56,T38] ( 3, 6 ) ref -> x1 "CSE #06: moderate"
; V57 cse2 [V57,T21] ( 7, 10.50) long -> x21 multi-def "CSE #01: moderate"
; V58 rat0 [V58,T01] ( 5, 30 ) ref -> x22 "replacement local"
; V59 rat1 [V59,T23] ( 3, 10 ) long -> x2 "CSE for expectedClsNode"
;
; Lcl frame size = 24
G_M8929_IG01:
stp fp, lr, [sp, #-0x60]!
stp x19, x20, [sp, #0x28]
stp x21, x22, [sp, #0x38]
stp x23, x24, [sp, #0x48]
str x25, [sp, #0x58]
mov fp, sp
add x2, sp, #96
str x2, [fp, #0x20] // [V54 PSPSym]
mov x19, x0
;; size=36 bbWeight=1 PerfScore 7.50
G_M8929_IG02:
mov w20, wzr
mov x0, x1
movz x1, #0xD1FFAB1E // code for System.CodeDom.CodeTypeDeclaration:get_Members():System.CodeDom.CodeTypeMemberCollection:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
ldr x0, [x0, #0x08]
ldr x1, [x0]
ldr x1, [x1, #0x58]
ldr x1, [x1]
blr x1
mov x1, x0
str x1, [fp, #0x18] // [V03 loc1]
;; size=60 bbWeight=1 PerfScore 24.00
G_M8929_IG03:
mov x0, x1
movz x21, #0xD1FFAB1E
movk x21, #0xD1FFAB1E LSL #16
movk x21, #0xD1FFAB1E LSL #32
mov x11, x21
ldr xip0, [x11]
blr xip0
cbz w0, G_M8929_IG21
;; size=32 bbWeight=1 PerfScore 7.50
G_M8929_IG04:
ldr x0, [fp, #0x18] // [V03 loc1]
add x11, x21, #8
ldr xip0, [x11]
blr xip0
mov x22, x0
cbz x22, G_M8929_IG07
;; size=24 bbWeight=4 PerfScore 32.00
G_M8929_IG05:
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x1, [x22]
cmp x1, x2
beq G_M8929_IG07
;; size=24 bbWeight=2 PerfScore 12.00
G_M8929_IG06:
mov x1, x0
mov x0, x2
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_CHKCASTCLASS_SPECIAL
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x22, x0
;; size=32 bbWeight=1 PerfScore 7.00
G_M8929_IG07:
mov x1, x22
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFCLASS
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz x0, G_M8929_IG20
;; size=40 bbWeight=4 PerfScore 34.00
G_M8929_IG08:
mov w20, #1
add x14, x19, #32
mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
ldr x0, [x19, #0x10]
movz x1, #0xD1FFAB1E // code for System.CodeDom.Compiler.CodeGeneratorOptions:get_BlankLinesBetweenMembers():ubyte:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
cbz w0, G_M8929_IG09
ldr x23, [x19, #0x08]
mov x0, x23
movz x1, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:OutputTabs():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
ldr x0, [x23, #0x20]
ldr x1, [x0]
ldr x1, [x1, #0x60]
ldr x1, [x1, #0x10]
blr x1
mov w0, #1
strb w0, [x23, #0x34]
;; size=108 bbWeight=2 PerfScore 83.00
G_M8929_IG09:
ldr x23, [x19, #0x20]
ldr x0, [x23, #0x20]
cbnz x0, G_M8929_IG10
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x24, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x0, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x24, #8
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x14, x23, #32
mov x15, x24
bl CORINFO_HELP_ASSIGN_REF
mov x0, x24
- ;; size=100 bbWeight=2 PerfScore 46.00
+ ;; size=96 bbWeight=2 PerfScore 45.00
G_M8929_IG10:
movz x1, #0xD1FFAB1E // code for System.Collections.CollectionBase:get_Count():int:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
cmp w0, #0
ble G_M8929_IG12
ldr x23, [x19, #0x20]
ldr x1, [x23, #0x20]
cbnz x1, G_M8929_IG11
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x24, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x0, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x24, #8
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x14, x23, #32
mov x15, x24
bl CORINFO_HELP_ASSIGN_REF
mov x1, x24
- ;; size=132 bbWeight=2 PerfScore 66.00
+ ;; size=128 bbWeight=2 PerfScore 65.00
G_M8929_IG11:
mov x0, x19
movz x2, #0xD1FFAB1E // code for Microsoft.CSharp.CSharpCodeGenerator:GenerateDirectives(System.CodeDom.CodeDirectiveCollection):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=24 bbWeight=2 PerfScore 12.00
G_M8929_IG12:
ldr x1, [x19, #0x20]
ldr x1, [x1, #0x38]
mov x0, x19
movz x2, #0xD1FFAB1E // code for Microsoft.CSharp.CSharpCodeGenerator:GenerateCommentStatements(System.CodeDom.CodeCommentStatementCollection):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
ldr x1, [x22, #0x30]
cbz x1, G_M8929_IG13
mov x0, x19
movz x2, #0xD1FFAB1E // code for Microsoft.CSharp.CSharpCodeGenerator:GenerateLinePragmaStart(System.CodeDom.CodeLinePragma):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=64 bbWeight=2 PerfScore 44.00
G_M8929_IG13:
ldr x23, [x19, #0x08]
ldr w24, [x23, #0x30]
mov x0, x23
str wzr, [x0, #0x30]
ldr x25, [x22, #0x48]
cbnz x25, G_M8929_IG14
movz x25, #8
movk x25, #0xD1FFAB1E LSL #16
movk x25, #0xD1FFAB1E LSL #32
;; size=36 bbWeight=2 PerfScore 26.00
G_M8929_IG14:
mov x0, x23
movz x1, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:OutputTabs():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
ldr x0, [x23, #0x20]
mov x1, x25
ldr x2, [x0]
ldr x2, [x2, #0x58]
ldr x2, [x2, #0x10]
blr x2
ldr x0, [x19, #0x08]
ldrsb wzr, [x0]
tbnz w24, #31, G_M8929_IG15
b G_M8929_IG16
;; size=68 bbWeight=2 PerfScore 61.00
G_M8929_IG15:
mov w24, wzr
;; size=4 bbWeight=2 PerfScore 1.00
G_M8929_IG16:
str w24, [x0, #0x30]
ldr x0, [x22, #0x30]
cbz x0, G_M8929_IG17
mov x0, x19
movz x1, #0xD1FFAB1E // code for Microsoft.CSharp.CSharpCodeGenerator:GenerateLinePragmaEnd():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
;; size=36 bbWeight=2 PerfScore 22.00
G_M8929_IG17:
ldr x22, [x19, #0x20]
ldr x0, [x22, #0x28]
cbnz x0, G_M8929_IG18
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x23, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x0, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x23, #8
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x14, x22, #40
mov x15, x23
bl CORINFO_HELP_ASSIGN_REF
mov x0, x23
- ;; size=100 bbWeight=2 PerfScore 46.00
+ ;; size=96 bbWeight=2 PerfScore 45.00
G_M8929_IG18:
movz x1, #0xD1FFAB1E // code for System.Collections.CollectionBase:get_Count():int:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
cmp w0, #0
ble G_M8929_IG20
ldr x22, [x19, #0x20]
ldr x1, [x22, #0x28]
cbnz x1, G_M8929_IG19
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x23, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x0, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x23, #8
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x14, x22, #40
mov x15, x23
bl CORINFO_HELP_ASSIGN_REF
mov x1, x23
- ;; size=132 bbWeight=2 PerfScore 66.00
+ ;; size=128 bbWeight=2 PerfScore 65.00
G_M8929_IG19:
mov x0, x19
movz x2, #0xD1FFAB1E // code for Microsoft.CSharp.CSharpCodeGenerator:GenerateDirectives(System.CodeDom.CodeDirectiveCollection):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=24 bbWeight=2 PerfScore 12.00
G_M8929_IG20:
ldr x0, [fp, #0x18] // [V03 loc1]
mov x11, x21
ldr xip0, [x11]
blr xip0
cbnz w0, G_M8929_IG04
;; size=20 bbWeight=4 PerfScore 30.00
G_M8929_IG21:
ldr x1, [fp, #0x18] // [V03 loc1]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFINTERFACE
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz x0, G_M8929_IG23
;; size=40 bbWeight=1 PerfScore 10.00
G_M8929_IG22:
add x11, x21, #16
ldr xip0, [x11]
blr xip0
;; size=12 bbWeight=0.50 PerfScore 2.25
G_M8929_IG23:
cbz w20, G_M8929_IG25
;; size=4 bbWeight=1 PerfScore 1.00
G_M8929_IG24:
ldr x21, [x19, #0x08]
mov x0, x21
movz x1, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:OutputTabs():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
ldr x0, [x21, #0x20]
ldr x1, [x0]
ldr x1, [x1, #0x60]
ldr x1, [x1, #0x10]
blr x1
mov w1, #1
strb w1, [x21, #0x34]
;; size=60 bbWeight=0.50 PerfScore 13.25
G_M8929_IG25:
ldr x25, [sp, #0x58]
ldp x23, x24, [sp, #0x48]
ldp x21, x22, [sp, #0x38]
ldp x19, x20, [sp, #0x28]
ldp fp, lr, [sp], #0x60
ret lr
;; size=24 bbWeight=1 PerfScore 7.00
G_M8929_IG26:
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, #96
str x3, [sp, #0x10]
;; size=28 bbWeight=0 PerfScore 0.00
G_M8929_IG27:
ldr x1, [fp, #0x18] // [V03 loc1]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFINTERFACE
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz x0, G_M8929_IG28
movz x21, #0xD1FFAB1E
movk x21, #0xD1FFAB1E LSL #16
movk x21, #0xD1FFAB1E LSL #32
add x11, x21, #16
ldr xip0, [x11]
blr xip0
;; size=64 bbWeight=0 PerfScore 0.00
G_M8929_IG28:
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
-; Total bytes of code 1352, prolog size 36, PerfScore 672.50, instruction count 338, allocated bytes for code 1352 (MethodHash=308edd1e) for method Microsoft.CSharp.CSharpCodeGenerator:GenerateSnippetMembers(System.CodeDom.CodeTypeDeclaration):this (FullOpts)
+; Total bytes of code 1336, prolog size 36, PerfScore 668.50, instruction count 334, allocated bytes for code 1336 (MethodHash=308edd1e) for method Microsoft.CSharp.CSharpCodeGenerator:GenerateSnippetMembers(System.CodeDom.CodeTypeDeclaration):this (FullOpts)
-16 (-1.36 % of base) - Microsoft.CSharp.CSharpCodeGenerator:GenerateTypeConstructors(System.CodeDom.CodeTypeDeclaration):this
; Assembly listing for method Microsoft.CSharp.CSharpCodeGenerator:GenerateTypeConstructors(System.CodeDom.CodeTypeDeclaration):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; 32 single block inlinees; 4 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 16, 30 ) ref -> x19 this class-hnd single-def <Microsoft.CSharp.CSharpCodeGenerator>
; V01 arg1 [V01,T32] ( 3, 3 ) ref -> x1 class-hnd single-def <System.CodeDom.CodeTypeDeclaration>
; V02 loc0 [V02,T19] ( 6, 10 ) ref -> [fp+0x18] class-hnd EH-live spill-single-def <System.Collections.IEnumerator>
; V03 loc1 [V03,T08] ( 4, 12 ) ref -> x21 class-hnd <System.CodeDom.CodeTypeMember>
; V04 loc2 [V04,T21] ( 4, 8 ) ref -> x21 class-hnd <System.CodeDom.CodeTypeConstructor>
; V05 loc3 [V05,T34] ( 6, 2.50) ref -> x0 class-hnd <System.IDisposable>
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V07 tmp1 [V07,T33] ( 2, 4 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.CodeDom.CodeTypeMemberCollection>
; V08 tmp2 [V08,T03] ( 4, 16 ) ref -> x22 class-hnd exact "Inlining Arg" <System.CodeDom.Compiler.ExposedTabStringIndentedTextWriter>
;* V09 tmp3 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.CodeDom.CodeDirectiveCollection>
; V10 tmp4 [V10,T09] ( 3, 12 ) ref -> x22 class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
; V11 tmp5 [V11,T26] ( 2, 8 ) ref -> x0 class-hnd "dup spill" <System.CodeDom.CodeDirectiveCollection>
; V12 tmp6 [V12,T22] ( 4, 8 ) ref -> x0
; V13 tmp7 [V13,T04] ( 4, 16 ) ref -> x23 class-hnd exact "NewObj constructor temp" <System.CodeDom.CodeDirectiveCollection>
;* V14 tmp8 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.CodeDom.CodeDirectiveCollection>
; V15 tmp9 [V15,T10] ( 3, 12 ) ref -> x0 class-hnd exact "NewObj constructor temp" <System.Collections.ArrayList>
;* V16 tmp10 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.CodeDom.CodeDirectiveCollection>
; V17 tmp11 [V17,T11] ( 3, 12 ) ref -> x22 class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
; V18 tmp12 [V18,T27] ( 2, 8 ) ref -> x1 class-hnd "dup spill" <System.CodeDom.CodeDirectiveCollection>
; V19 tmp13 [V19,T23] ( 4, 8 ) ref -> x1
; V20 tmp14 [V20,T05] ( 4, 16 ) ref -> x23 class-hnd exact "NewObj constructor temp" <System.CodeDom.CodeDirectiveCollection>
;* V21 tmp15 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.CodeDom.CodeDirectiveCollection>
; V22 tmp16 [V22,T12] ( 3, 12 ) ref -> x0 class-hnd exact "NewObj constructor temp" <System.Collections.ArrayList>
;* V23 tmp17 [V23 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
;* V24 tmp18 [V24 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.CodeDom.CodeDirectiveCollection>
; V25 tmp19 [V25,T13] ( 3, 12 ) ref -> x21 class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
; V26 tmp20 [V26,T28] ( 2, 8 ) ref -> x0 class-hnd "dup spill" <System.CodeDom.CodeDirectiveCollection>
; V27 tmp21 [V27,T24] ( 4, 8 ) ref -> x0
; V28 tmp22 [V28,T06] ( 4, 16 ) ref -> x22 class-hnd exact "NewObj constructor temp" <System.CodeDom.CodeDirectiveCollection>
;* V29 tmp23 [V29 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.CodeDom.CodeDirectiveCollection>
; V30 tmp24 [V30,T14] ( 3, 12 ) ref -> x0 class-hnd exact "NewObj constructor temp" <System.Collections.ArrayList>
;* V31 tmp25 [V31 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.CodeDom.CodeDirectiveCollection>
; V32 tmp26 [V32,T15] ( 3, 12 ) ref -> x21 class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
; V33 tmp27 [V33,T29] ( 2, 8 ) ref -> x1 class-hnd "dup spill" <System.CodeDom.CodeDirectiveCollection>
; V34 tmp28 [V34,T25] ( 4, 8 ) ref -> x1
; V35 tmp29 [V35,T07] ( 4, 16 ) ref -> x22 class-hnd exact "NewObj constructor temp" <System.CodeDom.CodeDirectiveCollection>
;* V36 tmp30 [V36 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.CodeDom.CodeDirectiveCollection>
; V37 tmp31 [V37,T16] ( 3, 12 ) ref -> x0 class-hnd exact "NewObj constructor temp" <System.Collections.ArrayList>
; V38 tmp32 [V38,T30] ( 3, 6 ) ref -> x0 single-def "argument with side effect"
; V39 tmp33 [V39,T02] ( 3, 18 ) ref -> x0 "argument with side effect"
; V40 tmp34 [V40,T17] ( 3, 12 ) ref -> x0 "argument with side effect"
; V41 PSPSym [V41,T35] ( 1, 1 ) long -> [fp+0x20] do-not-enreg[V] "PSPSym"
; V42 cse0 [V42,T31] ( 3, 6 ) ref -> x1 "CSE #06: moderate"
; V43 cse1 [V43,T18] ( 7, 10.50) long -> x20 multi-def "CSE #01: moderate"
; V44 rat0 [V44,T01] ( 5, 30 ) ref -> x21 "replacement local"
; V45 rat1 [V45,T20] ( 3, 10 ) long -> x2 "CSE for expectedClsNode"
;
; Lcl frame size = 24
G_M15844_IG01:
stp fp, lr, [sp, #-0x50]!
stp x19, x20, [sp, #0x28]
stp x21, x22, [sp, #0x38]
str x23, [sp, #0x48]
mov fp, sp
add x2, sp, #80
str x2, [fp, #0x20] // [V41 PSPSym]
mov x19, x0
;; size=32 bbWeight=1 PerfScore 6.50
G_M15844_IG02:
mov x0, x1
movz x1, #0xD1FFAB1E // code for System.CodeDom.CodeTypeDeclaration:get_Members():System.CodeDom.CodeTypeMemberCollection:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
ldr x0, [x0, #0x08]
ldr x1, [x0]
ldr x1, [x1, #0x58]
ldr x1, [x1]
blr x1
mov x1, x0
str x1, [fp, #0x18] // [V02 loc0]
;; size=56 bbWeight=1 PerfScore 23.50
G_M15844_IG03:
mov x0, x1
movz x20, #0xD1FFAB1E
movk x20, #0xD1FFAB1E LSL #16
movk x20, #0xD1FFAB1E LSL #32
mov x11, x20
ldr xip0, [x11]
blr xip0
cbz w0, G_M15844_IG18
;; size=32 bbWeight=1 PerfScore 7.50
G_M15844_IG04:
ldr x0, [fp, #0x18] // [V02 loc0]
add x11, x20, #8
ldr xip0, [x11]
blr xip0
mov x21, x0
cbz x21, G_M15844_IG07
;; size=24 bbWeight=4 PerfScore 32.00
G_M15844_IG05:
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x1, [x21]
cmp x1, x2
beq G_M15844_IG07
;; size=24 bbWeight=2 PerfScore 12.00
G_M15844_IG06:
mov x1, x0
mov x0, x2
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_CHKCASTCLASS_SPECIAL
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x21, x0
;; size=32 bbWeight=1 PerfScore 7.00
G_M15844_IG07:
mov x1, x21
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFCLASS
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz x0, G_M15844_IG17
;; size=40 bbWeight=4 PerfScore 34.00
G_M15844_IG08:
add x14, x19, #32
mov x15, x21
bl CORINFO_HELP_ASSIGN_REF
ldr x0, [x19, #0x10]
movz x1, #0xD1FFAB1E // code for System.CodeDom.Compiler.CodeGeneratorOptions:get_BlankLinesBetweenMembers():ubyte:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
cbz w0, G_M15844_IG09
ldr x22, [x19, #0x08]
mov x0, x22
movz x1, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:OutputTabs():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
ldr x0, [x22, #0x20]
ldr x1, [x0]
ldr x1, [x1, #0x60]
ldr x1, [x1, #0x10]
blr x1
mov w0, #1
strb w0, [x22, #0x34]
;; size=104 bbWeight=2 PerfScore 82.00
G_M15844_IG09:
ldr x22, [x19, #0x20]
ldr x0, [x22, #0x20]
cbnz x0, G_M15844_IG10
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x23, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x0, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x23, #8
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x14, x22, #32
mov x15, x23
bl CORINFO_HELP_ASSIGN_REF
mov x0, x23
- ;; size=100 bbWeight=2 PerfScore 46.00
+ ;; size=96 bbWeight=2 PerfScore 45.00
G_M15844_IG10:
movz x1, #0xD1FFAB1E // code for System.Collections.CollectionBase:get_Count():int:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
cmp w0, #0
ble G_M15844_IG12
ldr x22, [x19, #0x20]
ldr x1, [x22, #0x20]
cbnz x1, G_M15844_IG11
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x23, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x0, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x23, #8
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x14, x22, #32
mov x15, x23
bl CORINFO_HELP_ASSIGN_REF
mov x1, x23
- ;; size=132 bbWeight=2 PerfScore 66.00
+ ;; size=128 bbWeight=2 PerfScore 65.00
G_M15844_IG11:
mov x0, x19
movz x2, #0xD1FFAB1E // code for Microsoft.CSharp.CSharpCodeGenerator:GenerateDirectives(System.CodeDom.CodeDirectiveCollection):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=24 bbWeight=2 PerfScore 12.00
G_M15844_IG12:
ldr x1, [x19, #0x20]
ldr x1, [x1, #0x38]
mov x0, x19
movz x2, #0xD1FFAB1E // code for Microsoft.CSharp.CSharpCodeGenerator:GenerateCommentStatements(System.CodeDom.CodeCommentStatementCollection):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
ldr x1, [x21, #0x30]
cbz x1, G_M15844_IG13
mov x0, x19
movz x2, #0xD1FFAB1E // code for Microsoft.CSharp.CSharpCodeGenerator:GenerateLinePragmaStart(System.CodeDom.CodeLinePragma):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=64 bbWeight=2 PerfScore 44.00
G_M15844_IG13:
mov x0, x19
mov x1, x21
movz x2, #0xD1FFAB1E // code for Microsoft.CSharp.CSharpCodeGenerator:GenerateTypeConstructor(System.CodeDom.CodeTypeConstructor):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
ldr x0, [x21, #0x30]
cbz x0, G_M15844_IG14
mov x0, x19
movz x1, #0xD1FFAB1E // code for Microsoft.CSharp.CSharpCodeGenerator:GenerateLinePragmaEnd():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
;; size=60 bbWeight=2 PerfScore 33.00
G_M15844_IG14:
ldr x21, [x19, #0x20]
ldr x0, [x21, #0x28]
cbnz x0, G_M15844_IG15
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
bl CORINFO_HELP_NEWSFAST
movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x0, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x22, #8
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x14, x21, #40
mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
mov x0, x22
- ;; size=100 bbWeight=2 PerfScore 46.00
+ ;; size=96 bbWeight=2 PerfScore 45.00
G_M15844_IG15:
movz x1, #0xD1FFAB1E // code for System.Collections.CollectionBase:get_Count():int:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
cmp w0, #0
ble G_M15844_IG17
ldr x21, [x19, #0x20]
ldr x1, [x21, #0x28]
cbnz x1, G_M15844_IG16
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
bl CORINFO_HELP_NEWSFAST
movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x0, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x22, #8
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x14, x21, #40
mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
mov x1, x22
- ;; size=132 bbWeight=2 PerfScore 66.00
+ ;; size=128 bbWeight=2 PerfScore 65.00
G_M15844_IG16:
mov x0, x19
movz x2, #0xD1FFAB1E // code for Microsoft.CSharp.CSharpCodeGenerator:GenerateDirectives(System.CodeDom.CodeDirectiveCollection):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=24 bbWeight=2 PerfScore 12.00
G_M15844_IG17:
ldr x0, [fp, #0x18] // [V02 loc0]
mov x11, x20
ldr xip0, [x11]
blr xip0
cbnz w0, G_M15844_IG04
;; size=20 bbWeight=4 PerfScore 30.00
G_M15844_IG18:
ldr x1, [fp, #0x18] // [V02 loc0]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFINTERFACE
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz x0, G_M15844_IG20
;; size=40 bbWeight=1 PerfScore 10.00
G_M15844_IG19:
add x11, x20, #16
ldr xip0, [x11]
blr xip0
;; size=12 bbWeight=0.50 PerfScore 2.25
G_M15844_IG20:
ldr x23, [sp, #0x48]
ldp x21, x22, [sp, #0x38]
ldp x19, x20, [sp, #0x28]
ldp fp, lr, [sp], #0x50
ret lr
;; size=20 bbWeight=1 PerfScore 6.00
G_M15844_IG21:
stp fp, lr, [sp, #-0x40]!
stp x19, x20, [sp, #0x18]
stp x21, x22, [sp, #0x28]
str x23, [sp, #0x38]
add x3, fp, #80
str x3, [sp, #0x10]
;; size=24 bbWeight=0 PerfScore 0.00
G_M15844_IG22:
ldr x1, [fp, #0x18] // [V02 loc0]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFINTERFACE
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz x0, G_M15844_IG23
movz x20, #0xD1FFAB1E
movk x20, #0xD1FFAB1E LSL #16
movk x20, #0xD1FFAB1E LSL #32
add x11, x20, #16
ldr xip0, [x11]
blr xip0
;; size=64 bbWeight=0 PerfScore 0.00
G_M15844_IG23:
ldr x23, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x40
ret lr
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1180, prolog size 32, PerfScore 577.75, instruction count 295, allocated bytes for code 1180 (MethodHash=f41dc21b) for method Microsoft.CSharp.CSharpCodeGenerator:GenerateTypeConstructors(System.CodeDom.CodeTypeDeclaration):this (FullOpts)
+; Total bytes of code 1164, prolog size 32, PerfScore 573.75, instruction count 291, allocated bytes for code 1164 (MethodHash=f41dc21b) for method Microsoft.CSharp.CSharpCodeGenerator:GenerateTypeConstructors(System.CodeDom.CodeTypeDeclaration):this (FullOpts)
-16 (-1.44 % of base) - System.CodeDom.Compiler.CodeGenerator:GenerateConstructors(System.CodeDom.CodeTypeDeclaration):this
; Assembly listing for method System.CodeDom.Compiler.CodeGenerator:GenerateConstructors(System.CodeDom.CodeTypeDeclaration):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; 34 single block inlinees; 4 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 18, 34 ) ref -> x19 this class-hnd single-def <System.CodeDom.Compiler.CodeGenerator>
; V01 arg1 [V01,T31] ( 4, 5 ) ref -> x20 class-hnd single-def <System.CodeDom.CodeTypeDeclaration>
; V02 loc0 [V02,T20] ( 6, 10 ) ref -> [fp+0x10] class-hnd EH-live spill-single-def <System.Collections.IEnumerator>
; V03 loc1 [V03,T08] ( 4, 12 ) ref -> x22 class-hnd <System.CodeDom.CodeTypeMember>
; V04 loc2 [V04,T22] ( 4, 8 ) ref -> x22 class-hnd <System.CodeDom.CodeConstructor>
; V05 loc3 [V05,T36] ( 6, 2.50) ref -> x0 class-hnd <System.IDisposable>
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V07 tmp1 [V07,T35] ( 2, 4 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.CodeDom.CodeTypeMemberCollection>
;* V08 tmp2 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.CodeDom.CodeDirectiveCollection>
; V09 tmp3 [V09,T09] ( 3, 12 ) ref -> x23 class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
; V10 tmp4 [V10,T27] ( 2, 8 ) ref -> x1 class-hnd "dup spill" <System.CodeDom.CodeDirectiveCollection>
; V11 tmp5 [V11,T23] ( 4, 8 ) ref -> x1
; V12 tmp6 [V12,T04] ( 4, 16 ) ref -> x24 class-hnd exact "NewObj constructor temp" <System.CodeDom.CodeDirectiveCollection>
;* V13 tmp7 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.CodeDom.CodeDirectiveCollection>
; V14 tmp8 [V14,T10] ( 3, 12 ) ref -> x0 class-hnd exact "NewObj constructor temp" <System.Collections.ArrayList>
;* V15 tmp9 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.CodeDom.CodeDirectiveCollection>
; V16 tmp10 [V16,T11] ( 3, 12 ) ref -> x23 class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
; V17 tmp11 [V17,T28] ( 2, 8 ) ref -> x1 class-hnd "dup spill" <System.CodeDom.CodeDirectiveCollection>
; V18 tmp12 [V18,T24] ( 4, 8 ) ref -> x1
; V19 tmp13 [V19,T05] ( 4, 16 ) ref -> x24 class-hnd exact "NewObj constructor temp" <System.CodeDom.CodeDirectiveCollection>
;* V20 tmp14 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.CodeDom.CodeDirectiveCollection>
; V21 tmp15 [V21,T12] ( 3, 12 ) ref -> x0 class-hnd exact "NewObj constructor temp" <System.Collections.ArrayList>
;* V22 tmp16 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
;* V23 tmp17 [V23 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.CodeDom.CodeDirectiveCollection>
; V24 tmp18 [V24,T13] ( 3, 12 ) ref -> x22 class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
; V25 tmp19 [V25,T29] ( 2, 8 ) ref -> x1 class-hnd "dup spill" <System.CodeDom.CodeDirectiveCollection>
; V26 tmp20 [V26,T25] ( 4, 8 ) ref -> x1
; V27 tmp21 [V27,T06] ( 4, 16 ) ref -> x24 class-hnd exact "NewObj constructor temp" <System.CodeDom.CodeDirectiveCollection>
;* V28 tmp22 [V28 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.CodeDom.CodeDirectiveCollection>
; V29 tmp23 [V29,T14] ( 3, 12 ) ref -> x0 class-hnd exact "NewObj constructor temp" <System.Collections.ArrayList>
;* V30 tmp24 [V30 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.CodeDom.CodeDirectiveCollection>
; V31 tmp25 [V31,T15] ( 3, 12 ) ref -> x22 class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
; V32 tmp26 [V32,T30] ( 2, 8 ) ref -> x1 class-hnd "dup spill" <System.CodeDom.CodeDirectiveCollection>
; V33 tmp27 [V33,T26] ( 4, 8 ) ref -> x1
; V34 tmp28 [V34,T07] ( 4, 16 ) ref -> x24 class-hnd exact "NewObj constructor temp" <System.CodeDom.CodeDirectiveCollection>
;* V35 tmp29 [V35 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.CodeDom.CodeDirectiveCollection>
; V36 tmp30 [V36,T16] ( 3, 12 ) ref -> x0 class-hnd exact "NewObj constructor temp" <System.Collections.ArrayList>
; V37 tmp31 [V37,T32] ( 3, 6 ) ref -> x0 single-def "argument with side effect"
; V38 tmp32 [V38,T02] ( 3, 18 ) ref -> x0 "argument with side effect"
; V39 tmp33 [V39,T17] ( 3, 12 ) ref -> x0 "argument with side effect"
; V40 tmp34 [V40,T18] ( 3, 12 ) ref -> x0 "argument with side effect"
; V41 PSPSym [V41,T37] ( 1, 1 ) long -> [fp+0x18] do-not-enreg[V] "PSPSym"
; V42 cse0 [V42,T33] ( 3, 6 ) ref -> x1 "CSE #07: moderate"
; V43 cse1 [V43,T34] ( 3, 6 ) ref -> x1 "CSE #08: moderate"
; V44 cse2 [V44,T19] ( 7, 10.50) long -> x21 multi-def "CSE #01: moderate"
; V45 cse3 [V45,T03] ( 8, 16 ) long -> x23 multi-def "CSE #06: aggressive"
; V46 rat0 [V46,T01] ( 5, 30 ) ref -> x22 "replacement local"
; V47 rat1 [V47,T21] ( 3, 10 ) long -> x2 "CSE for expectedClsNode"
;
; Lcl frame size = 16
G_M59403_IG01:
stp fp, lr, [sp, #-0x50]!
stp x19, x20, [sp, #0x20]
stp x21, x22, [sp, #0x30]
stp x23, x24, [sp, #0x40]
mov fp, sp
add x2, sp, #80
str x2, [fp, #0x18] // [V41 PSPSym]
mov x19, x0
mov x20, x1
;; size=36 bbWeight=1 PerfScore 7.00
G_M59403_IG02:
mov x0, x20
movz x1, #0xD1FFAB1E // code for System.CodeDom.CodeTypeDeclaration:get_Members():System.CodeDom.CodeTypeMemberCollection:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
ldr x0, [x0, #0x08]
ldr x1, [x0]
ldr x1, [x1, #0x58]
ldr x1, [x1]
blr x1
mov x1, x0
str x1, [fp, #0x10] // [V02 loc0]
;; size=56 bbWeight=1 PerfScore 23.50
G_M59403_IG03:
mov x0, x1
movz x21, #0xD1FFAB1E
movk x21, #0xD1FFAB1E LSL #16
movk x21, #0xD1FFAB1E LSL #32
mov x11, x21
ldr xip0, [x11]
blr xip0
cbz w0, G_M59403_IG18
;; size=32 bbWeight=1 PerfScore 7.50
G_M59403_IG04:
ldr x0, [fp, #0x10] // [V02 loc0]
add x11, x21, #8
ldr xip0, [x11]
blr xip0
mov x22, x0
cbz x22, G_M59403_IG07
;; size=24 bbWeight=4 PerfScore 32.00
G_M59403_IG05:
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x1, [x22]
cmp x1, x2
beq G_M59403_IG07
;; size=24 bbWeight=2 PerfScore 12.00
G_M59403_IG06:
mov x1, x0
mov x0, x2
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_CHKCASTCLASS_SPECIAL
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x22, x0
;; size=32 bbWeight=1 PerfScore 7.00
G_M59403_IG07:
mov x1, x22
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFCLASS
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz x0, G_M59403_IG17
;; size=40 bbWeight=4 PerfScore 34.00
G_M59403_IG08:
add x14, x19, #32
mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
ldr x0, [x19, #0x10]
movz x1, #0xD1FFAB1E // code for System.CodeDom.Compiler.CodeGeneratorOptions:get_BlankLinesBetweenMembers():ubyte:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
cbz w0, G_M59403_IG09
ldr x0, [x19, #0x08]
movz x1, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:WriteLine():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
;; size=72 bbWeight=2 PerfScore 52.00
G_M59403_IG09:
ldr x23, [x19, #0x20]
ldr x1, [x23, #0x20]
cbnz x1, G_M59403_IG10
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x24, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x0, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x24, #8
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x14, x23, #32
mov x15, x24
bl CORINFO_HELP_ASSIGN_REF
mov x1, x24
- ;; size=100 bbWeight=2 PerfScore 46.00
+ ;; size=96 bbWeight=2 PerfScore 45.00
G_M59403_IG10:
ldr x0, [x1, #0x08]
ldr x1, [x0]
ldr x1, [x1, #0x40]
ldr x1, [x1, #0x30]
blr x1
cmp w0, #0
ble G_M59403_IG12
ldr x23, [x19, #0x20]
ldr x1, [x23, #0x20]
cbnz x1, G_M59403_IG11
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x24, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x0, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x24, #8
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x14, x23, #32
mov x15, x24
bl CORINFO_HELP_ASSIGN_REF
mov x1, x24
- ;; size=128 bbWeight=2 PerfScore 75.00
+ ;; size=124 bbWeight=2 PerfScore 74.00
G_M59403_IG11:
mov x0, x19
ldr x23, [x19]
ldr x2, [x23, #0x40]
ldr x2, [x2, #0x28]
blr x2
;; size=20 bbWeight=2 PerfScore 21.00
G_M59403_IG12:
ldr x1, [x19, #0x20]
ldr x1, [x1, #0x38]
mov x0, x19
ldr x23, [x19]
ldr x2, [x23, #0x80]
ldr x2, [x2, #0x20]
blr x2
ldr x1, [x22, #0x30]
cbz x1, G_M59403_IG13
mov x0, x19
ldr x2, [x23, #0x90]
ldr x2, [x2]
blr x2
;; size=52 bbWeight=2 PerfScore 56.00
G_M59403_IG13:
mov x0, x19
mov x1, x22
mov x2, x20
ldr x3, [x23, #0x98]
ldr x3, [x3]
blr x3
ldr x1, [x22, #0x30]
cbz x1, G_M59403_IG14
mov x0, x19
ldr x2, [x23, #0x90]
ldr x2, [x2, #0x08]
blr x2
;; size=48 bbWeight=2 PerfScore 40.00
G_M59403_IG14:
ldr x22, [x19, #0x20]
ldr x1, [x22, #0x28]
cbnz x1, G_M59403_IG15
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x24, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x0, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x24, #8
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x14, x22, #40
mov x15, x24
bl CORINFO_HELP_ASSIGN_REF
mov x1, x24
- ;; size=100 bbWeight=2 PerfScore 46.00
+ ;; size=96 bbWeight=2 PerfScore 45.00
G_M59403_IG15:
ldr x0, [x1, #0x08]
ldr x1, [x0]
ldr x1, [x1, #0x40]
ldr x1, [x1, #0x30]
blr x1
cmp w0, #0
ble G_M59403_IG17
ldr x22, [x19, #0x20]
ldr x1, [x22, #0x28]
cbnz x1, G_M59403_IG16
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x24, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x0, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x24, #8
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x14, x22, #40
mov x15, x24
bl CORINFO_HELP_ASSIGN_REF
mov x1, x24
- ;; size=128 bbWeight=2 PerfScore 75.00
+ ;; size=124 bbWeight=2 PerfScore 74.00
G_M59403_IG16:
mov x0, x19
ldr x2, [x23, #0x40]
ldr x2, [x2, #0x28]
blr x2
;; size=16 bbWeight=2 PerfScore 15.00
G_M59403_IG17:
ldr x0, [fp, #0x10] // [V02 loc0]
mov x11, x21
ldr xip0, [x11]
blr xip0
cbnz w0, G_M59403_IG04
;; size=20 bbWeight=4 PerfScore 30.00
G_M59403_IG18:
ldr x1, [fp, #0x10] // [V02 loc0]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFINTERFACE
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz x0, G_M59403_IG20
;; size=40 bbWeight=1 PerfScore 10.00
G_M59403_IG19:
add x11, x21, #16
ldr xip0, [x11]
blr xip0
;; size=12 bbWeight=0.50 PerfScore 2.25
G_M59403_IG20:
ldp x23, x24, [sp, #0x40]
ldp x21, x22, [sp, #0x30]
ldp x19, x20, [sp, #0x20]
ldp fp, lr, [sp], #0x50
ret lr
;; size=20 bbWeight=1 PerfScore 5.00
G_M59403_IG21:
stp fp, lr, [sp, #-0x50]!
stp x19, x20, [sp, #0x20]
stp x21, x22, [sp, #0x30]
stp x23, x24, [sp, #0x40]
add x3, fp, #80
str x3, [sp, #0x18]
;; size=24 bbWeight=0 PerfScore 0.00
G_M59403_IG22:
ldr x1, [fp, #0x10] // [V02 loc0]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFINTERFACE
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz x0, G_M59403_IG23
movz x21, #0xD1FFAB1E
movk x21, #0xD1FFAB1E LSL #16
movk x21, #0xD1FFAB1E LSL #32
add x11, x21, #16
ldr xip0, [x11]
blr xip0
;; size=64 bbWeight=0 PerfScore 0.00
G_M59403_IG23:
ldp x23, x24, [sp, #0x40]
ldp x21, x22, [sp, #0x30]
ldp x19, x20, [sp, #0x20]
ldp fp, lr, [sp], #0x50
ret lr
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1108, prolog size 36, PerfScore 596.25, instruction count 277, allocated bytes for code 1108 (MethodHash=670f17f4) for method System.CodeDom.Compiler.CodeGenerator:GenerateConstructors(System.CodeDom.CodeTypeDeclaration):this (FullOpts)
+; Total bytes of code 1092, prolog size 36, PerfScore 592.25, instruction count 273, allocated bytes for code 1092 (MethodHash=670f17f4) for method System.CodeDom.Compiler.CodeGenerator:GenerateConstructors(System.CodeDom.CodeTypeDeclaration):this (FullOpts)
-16 (-1.45 % of base) - System.CodeDom.Compiler.CodeGenerator:GenerateEvents(System.CodeDom.CodeTypeDeclaration):this
; Assembly listing for method System.CodeDom.Compiler.CodeGenerator:GenerateEvents(System.CodeDom.CodeTypeDeclaration):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; 34 single block inlinees; 4 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 18, 34 ) ref -> x19 this class-hnd single-def <System.CodeDom.Compiler.CodeGenerator>
; V01 arg1 [V01,T32] ( 4, 5 ) ref -> x20 class-hnd single-def <System.CodeDom.CodeTypeDeclaration>
; V02 loc0 [V02,T20] ( 6, 10 ) ref -> [fp+0x10] class-hnd EH-live spill-single-def <System.Collections.IEnumerator>
; V03 loc1 [V03,T08] ( 4, 12 ) ref -> x22 class-hnd <System.CodeDom.CodeTypeMember>
; V04 loc2 [V04,T23] ( 4, 8 ) ref -> x22 class-hnd <System.CodeDom.CodeMemberEvent>
; V05 loc3 [V05,T37] ( 6, 2.50) ref -> x0 class-hnd <System.IDisposable>
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V07 tmp1 [V07,T36] ( 2, 4 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.CodeDom.CodeTypeMemberCollection>
;* V08 tmp2 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.CodeDom.CodeDirectiveCollection>
; V09 tmp3 [V09,T09] ( 3, 12 ) ref -> x23 class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
; V10 tmp4 [V10,T28] ( 2, 8 ) ref -> x1 class-hnd "dup spill" <System.CodeDom.CodeDirectiveCollection>
; V11 tmp5 [V11,T24] ( 4, 8 ) ref -> x1
; V12 tmp6 [V12,T03] ( 4, 16 ) ref -> x24 class-hnd exact "NewObj constructor temp" <System.CodeDom.CodeDirectiveCollection>
;* V13 tmp7 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.CodeDom.CodeDirectiveCollection>
; V14 tmp8 [V14,T10] ( 3, 12 ) ref -> x0 class-hnd exact "NewObj constructor temp" <System.Collections.ArrayList>
;* V15 tmp9 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.CodeDom.CodeDirectiveCollection>
; V16 tmp10 [V16,T11] ( 3, 12 ) ref -> x23 class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
; V17 tmp11 [V17,T29] ( 2, 8 ) ref -> x1 class-hnd "dup spill" <System.CodeDom.CodeDirectiveCollection>
; V18 tmp12 [V18,T25] ( 4, 8 ) ref -> x1
; V19 tmp13 [V19,T04] ( 4, 16 ) ref -> x24 class-hnd exact "NewObj constructor temp" <System.CodeDom.CodeDirectiveCollection>
;* V20 tmp14 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.CodeDom.CodeDirectiveCollection>
; V21 tmp15 [V21,T12] ( 3, 12 ) ref -> x0 class-hnd exact "NewObj constructor temp" <System.Collections.ArrayList>
;* V22 tmp16 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
;* V23 tmp17 [V23 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.CodeDom.CodeDirectiveCollection>
; V24 tmp18 [V24,T13] ( 3, 12 ) ref -> x22 class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
; V25 tmp19 [V25,T30] ( 2, 8 ) ref -> x1 class-hnd "dup spill" <System.CodeDom.CodeDirectiveCollection>
; V26 tmp20 [V26,T26] ( 4, 8 ) ref -> x1
; V27 tmp21 [V27,T05] ( 4, 16 ) ref -> x24 class-hnd exact "NewObj constructor temp" <System.CodeDom.CodeDirectiveCollection>
;* V28 tmp22 [V28 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.CodeDom.CodeDirectiveCollection>
; V29 tmp23 [V29,T14] ( 3, 12 ) ref -> x0 class-hnd exact "NewObj constructor temp" <System.Collections.ArrayList>
;* V30 tmp24 [V30 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.CodeDom.CodeDirectiveCollection>
; V31 tmp25 [V31,T15] ( 3, 12 ) ref -> x22 class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
; V32 tmp26 [V32,T31] ( 2, 8 ) ref -> x1 class-hnd "dup spill" <System.CodeDom.CodeDirectiveCollection>
; V33 tmp27 [V33,T27] ( 4, 8 ) ref -> x1
; V34 tmp28 [V34,T06] ( 4, 16 ) ref -> x24 class-hnd exact "NewObj constructor temp" <System.CodeDom.CodeDirectiveCollection>
;* V35 tmp29 [V35 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.CodeDom.CodeDirectiveCollection>
; V36 tmp30 [V36,T16] ( 3, 12 ) ref -> x0 class-hnd exact "NewObj constructor temp" <System.Collections.ArrayList>
; V37 tmp31 [V37,T33] ( 3, 6 ) ref -> x0 single-def "argument with side effect"
; V38 tmp32 [V38,T02] ( 3, 18 ) ref -> x0 "argument with side effect"
; V39 tmp33 [V39,T17] ( 3, 12 ) ref -> x0 "argument with side effect"
; V40 tmp34 [V40,T18] ( 3, 12 ) ref -> x0 "argument with side effect"
; V41 PSPSym [V41,T38] ( 1, 1 ) long -> [fp+0x18] do-not-enreg[V] "PSPSym"
; V42 cse0 [V42,T21] ( 5, 10 ) long -> x24 multi-def "CSE #08: moderate"
; V43 cse1 [V43,T34] ( 3, 6 ) ref -> x1 "CSE #07: moderate"
; V44 cse2 [V44,T35] ( 3, 6 ) ref -> x1 "CSE #09: moderate"
; V45 cse3 [V45,T19] ( 7, 10.50) long -> x21 multi-def "CSE #01: moderate"
; V46 cse4 [V46,T07] ( 7, 14 ) long -> x23 multi-def "CSE #06: aggressive"
; V47 rat0 [V47,T01] ( 5, 30 ) ref -> x22 "replacement local"
; V48 rat1 [V48,T22] ( 3, 10 ) long -> x2 "CSE for expectedClsNode"
;
; Lcl frame size = 16
G_M6863_IG01:
stp fp, lr, [sp, #-0x50]!
stp x19, x20, [sp, #0x20]
stp x21, x22, [sp, #0x30]
stp x23, x24, [sp, #0x40]
mov fp, sp
add x2, sp, #80
str x2, [fp, #0x18] // [V41 PSPSym]
mov x19, x0
mov x20, x1
;; size=36 bbWeight=1 PerfScore 7.00
G_M6863_IG02:
mov x0, x20
movz x1, #0xD1FFAB1E // code for System.CodeDom.CodeTypeDeclaration:get_Members():System.CodeDom.CodeTypeMemberCollection:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
ldr x0, [x0, #0x08]
ldr x1, [x0]
ldr x1, [x1, #0x58]
ldr x1, [x1]
blr x1
mov x1, x0
str x1, [fp, #0x10] // [V02 loc0]
;; size=56 bbWeight=1 PerfScore 23.50
G_M6863_IG03:
mov x0, x1
movz x21, #0xD1FFAB1E
movk x21, #0xD1FFAB1E LSL #16
movk x21, #0xD1FFAB1E LSL #32
mov x11, x21
ldr xip0, [x11]
blr xip0
cbz w0, G_M6863_IG18
;; size=32 bbWeight=1 PerfScore 7.50
G_M6863_IG04:
ldr x0, [fp, #0x10] // [V02 loc0]
add x11, x21, #8
ldr xip0, [x11]
blr xip0
mov x22, x0
cbz x22, G_M6863_IG07
;; size=24 bbWeight=4 PerfScore 32.00
G_M6863_IG05:
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x1, [x22]
cmp x1, x2
beq G_M6863_IG07
;; size=24 bbWeight=2 PerfScore 12.00
G_M6863_IG06:
mov x1, x0
mov x0, x2
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_CHKCASTCLASS_SPECIAL
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x22, x0
;; size=32 bbWeight=1 PerfScore 7.00
G_M6863_IG07:
mov x1, x22
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFCLASS
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz x0, G_M6863_IG17
;; size=40 bbWeight=4 PerfScore 34.00
G_M6863_IG08:
add x14, x19, #32
mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
ldr x0, [x19, #0x10]
movz x1, #0xD1FFAB1E // code for System.CodeDom.Compiler.CodeGeneratorOptions:get_BlankLinesBetweenMembers():ubyte:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
cbz w0, G_M6863_IG09
ldr x0, [x19, #0x08]
movz x1, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:WriteLine():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
;; size=72 bbWeight=2 PerfScore 52.00
G_M6863_IG09:
ldr x23, [x19, #0x20]
ldr x1, [x23, #0x20]
cbnz x1, G_M6863_IG10
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x24, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x0, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x24, #8
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x14, x23, #32
mov x15, x24
bl CORINFO_HELP_ASSIGN_REF
mov x1, x24
- ;; size=100 bbWeight=2 PerfScore 46.00
+ ;; size=96 bbWeight=2 PerfScore 45.00
G_M6863_IG10:
ldr x0, [x1, #0x08]
ldr x1, [x0]
ldr x1, [x1, #0x40]
ldr x1, [x1, #0x30]
blr x1
cmp w0, #0
ble G_M6863_IG12
ldr x23, [x19, #0x20]
ldr x1, [x23, #0x20]
cbnz x1, G_M6863_IG11
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x24, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x0, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x24, #8
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x14, x23, #32
mov x15, x24
bl CORINFO_HELP_ASSIGN_REF
mov x1, x24
- ;; size=128 bbWeight=2 PerfScore 75.00
+ ;; size=124 bbWeight=2 PerfScore 74.00
G_M6863_IG11:
mov x0, x19
ldr x23, [x19]
ldr x2, [x23, #0x40]
ldr x2, [x2, #0x28]
blr x2
;; size=20 bbWeight=2 PerfScore 21.00
G_M6863_IG12:
ldr x1, [x19, #0x20]
ldr x1, [x1, #0x38]
mov x0, x19
ldr x23, [x19]
ldr x2, [x23, #0x80]
ldr x2, [x2, #0x20]
blr x2
ldr x1, [x22, #0x30]
cbz x1, G_M6863_IG13
mov x0, x19
ldr x24, [x23, #0x90]
ldr x2, [x24]
blr x2
;; size=52 bbWeight=2 PerfScore 56.00
G_M6863_IG13:
mov x0, x19
mov x1, x22
mov x2, x20
ldr x24, [x23, #0x90]
ldr x3, [x24, #0x10]
blr x3
ldr x1, [x22, #0x30]
cbz x1, G_M6863_IG14
mov x0, x19
ldr x2, [x24, #0x08]
blr x2
;; size=44 bbWeight=2 PerfScore 34.00
G_M6863_IG14:
ldr x22, [x19, #0x20]
ldr x1, [x22, #0x28]
cbnz x1, G_M6863_IG15
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x24, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x0, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x24, #8
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x14, x22, #40
mov x15, x24
bl CORINFO_HELP_ASSIGN_REF
mov x1, x24
- ;; size=100 bbWeight=2 PerfScore 46.00
+ ;; size=96 bbWeight=2 PerfScore 45.00
G_M6863_IG15:
ldr x0, [x1, #0x08]
ldr x1, [x0]
ldr x1, [x1, #0x40]
ldr x1, [x1, #0x30]
blr x1
cmp w0, #0
ble G_M6863_IG17
ldr x22, [x19, #0x20]
ldr x1, [x22, #0x28]
cbnz x1, G_M6863_IG16
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x24, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x0, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x24, #8
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x14, x22, #40
mov x15, x24
bl CORINFO_HELP_ASSIGN_REF
mov x1, x24
- ;; size=128 bbWeight=2 PerfScore 75.00
+ ;; size=124 bbWeight=2 PerfScore 74.00
G_M6863_IG16:
mov x0, x19
ldr x2, [x23, #0x40]
ldr x2, [x2, #0x28]
blr x2
;; size=16 bbWeight=2 PerfScore 15.00
G_M6863_IG17:
ldr x0, [fp, #0x10] // [V02 loc0]
mov x11, x21
ldr xip0, [x11]
blr xip0
cbnz w0, G_M6863_IG04
;; size=20 bbWeight=4 PerfScore 30.00
G_M6863_IG18:
ldr x1, [fp, #0x10] // [V02 loc0]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFINTERFACE
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz x0, G_M6863_IG20
;; size=40 bbWeight=1 PerfScore 10.00
G_M6863_IG19:
add x11, x21, #16
ldr xip0, [x11]
blr xip0
;; size=12 bbWeight=0.50 PerfScore 2.25
G_M6863_IG20:
ldp x23, x24, [sp, #0x40]
ldp x21, x22, [sp, #0x30]
ldp x19, x20, [sp, #0x20]
ldp fp, lr, [sp], #0x50
ret lr
;; size=20 bbWeight=1 PerfScore 5.00
G_M6863_IG21:
stp fp, lr, [sp, #-0x50]!
stp x19, x20, [sp, #0x20]
stp x21, x22, [sp, #0x30]
stp x23, x24, [sp, #0x40]
add x3, fp, #80
str x3, [sp, #0x18]
;; size=24 bbWeight=0 PerfScore 0.00
G_M6863_IG22:
ldr x1, [fp, #0x10] // [V02 loc0]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFINTERFACE
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz x0, G_M6863_IG23
movz x21, #0xD1FFAB1E
movk x21, #0xD1FFAB1E LSL #16
movk x21, #0xD1FFAB1E LSL #32
add x11, x21, #16
ldr xip0, [x11]
blr xip0
;; size=64 bbWeight=0 PerfScore 0.00
G_M6863_IG23:
ldp x23, x24, [sp, #0x40]
ldp x21, x22, [sp, #0x30]
ldp x19, x20, [sp, #0x20]
ldp fp, lr, [sp], #0x50
ret lr
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1104, prolog size 36, PerfScore 590.25, instruction count 276, allocated bytes for code 1104 (MethodHash=c044e530) for method System.CodeDom.Compiler.CodeGenerator:GenerateEvents(System.CodeDom.CodeTypeDeclaration):this (FullOpts)
+; Total bytes of code 1088, prolog size 36, PerfScore 586.25, instruction count 272, allocated bytes for code 1088 (MethodHash=c044e530) for method System.CodeDom.Compiler.CodeGenerator:GenerateEvents(System.CodeDom.CodeTypeDeclaration):this (FullOpts)
-16 (-1.46 % of base) - System.CodeDom.Compiler.CodeGenerator:GenerateFields(System.CodeDom.CodeTypeDeclaration):this
; Assembly listing for method System.CodeDom.Compiler.CodeGenerator:GenerateFields(System.CodeDom.CodeTypeDeclaration):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; 34 single block inlinees; 4 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 18, 34 ) ref -> x19 this class-hnd single-def <System.CodeDom.Compiler.CodeGenerator>
; V01 arg1 [V01,T35] ( 3, 3 ) ref -> x1 class-hnd single-def <System.CodeDom.CodeTypeDeclaration>
; V02 loc0 [V02,T20] ( 6, 10 ) ref -> [fp+0x18] class-hnd EH-live spill-single-def <System.Collections.IEnumerator>
; V03 loc1 [V03,T08] ( 4, 12 ) ref -> x21 class-hnd <System.CodeDom.CodeTypeMember>
; V04 loc2 [V04,T23] ( 4, 8 ) ref -> x21 class-hnd <System.CodeDom.CodeMemberField>
; V05 loc3 [V05,T37] ( 6, 2.50) ref -> x0 class-hnd <System.IDisposable>
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V07 tmp1 [V07,T36] ( 2, 4 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.CodeDom.CodeTypeMemberCollection>
;* V08 tmp2 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.CodeDom.CodeDirectiveCollection>
; V09 tmp3 [V09,T09] ( 3, 12 ) ref -> x22 class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
; V10 tmp4 [V10,T28] ( 2, 8 ) ref -> x1 class-hnd "dup spill" <System.CodeDom.CodeDirectiveCollection>
; V11 tmp5 [V11,T24] ( 4, 8 ) ref -> x1
; V12 tmp6 [V12,T03] ( 4, 16 ) ref -> x23 class-hnd exact "NewObj constructor temp" <System.CodeDom.CodeDirectiveCollection>
;* V13 tmp7 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.CodeDom.CodeDirectiveCollection>
; V14 tmp8 [V14,T10] ( 3, 12 ) ref -> x0 class-hnd exact "NewObj constructor temp" <System.Collections.ArrayList>
;* V15 tmp9 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.CodeDom.CodeDirectiveCollection>
; V16 tmp10 [V16,T11] ( 3, 12 ) ref -> x22 class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
; V17 tmp11 [V17,T29] ( 2, 8 ) ref -> x1 class-hnd "dup spill" <System.CodeDom.CodeDirectiveCollection>
; V18 tmp12 [V18,T25] ( 4, 8 ) ref -> x1
; V19 tmp13 [V19,T04] ( 4, 16 ) ref -> x23 class-hnd exact "NewObj constructor temp" <System.CodeDom.CodeDirectiveCollection>
;* V20 tmp14 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.CodeDom.CodeDirectiveCollection>
; V21 tmp15 [V21,T12] ( 3, 12 ) ref -> x0 class-hnd exact "NewObj constructor temp" <System.Collections.ArrayList>
;* V22 tmp16 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
;* V23 tmp17 [V23 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.CodeDom.CodeDirectiveCollection>
; V24 tmp18 [V24,T13] ( 3, 12 ) ref -> x21 class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
; V25 tmp19 [V25,T30] ( 2, 8 ) ref -> x1 class-hnd "dup spill" <System.CodeDom.CodeDirectiveCollection>
; V26 tmp20 [V26,T26] ( 4, 8 ) ref -> x1
; V27 tmp21 [V27,T05] ( 4, 16 ) ref -> x23 class-hnd exact "NewObj constructor temp" <System.CodeDom.CodeDirectiveCollection>
;* V28 tmp22 [V28 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.CodeDom.CodeDirectiveCollection>
; V29 tmp23 [V29,T14] ( 3, 12 ) ref -> x0 class-hnd exact "NewObj constructor temp" <System.Collections.ArrayList>
;* V30 tmp24 [V30 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.CodeDom.CodeDirectiveCollection>
; V31 tmp25 [V31,T15] ( 3, 12 ) ref -> x21 class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
; V32 tmp26 [V32,T31] ( 2, 8 ) ref -> x1 class-hnd "dup spill" <System.CodeDom.CodeDirectiveCollection>
; V33 tmp27 [V33,T27] ( 4, 8 ) ref -> x1
; V34 tmp28 [V34,T06] ( 4, 16 ) ref -> x23 class-hnd exact "NewObj constructor temp" <System.CodeDom.CodeDirectiveCollection>
;* V35 tmp29 [V35 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.CodeDom.CodeDirectiveCollection>
; V36 tmp30 [V36,T16] ( 3, 12 ) ref -> x0 class-hnd exact "NewObj constructor temp" <System.Collections.ArrayList>
; V37 tmp31 [V37,T32] ( 3, 6 ) ref -> x0 single-def "argument with side effect"
; V38 tmp32 [V38,T02] ( 3, 18 ) ref -> x0 "argument with side effect"
; V39 tmp33 [V39,T17] ( 3, 12 ) ref -> x0 "argument with side effect"
; V40 tmp34 [V40,T18] ( 3, 12 ) ref -> x0 "argument with side effect"
; V41 PSPSym [V41,T38] ( 1, 1 ) long -> [fp+0x20] do-not-enreg[V] "PSPSym"
; V42 cse0 [V42,T21] ( 5, 10 ) long -> x23 multi-def "CSE #08: moderate"
; V43 cse1 [V43,T33] ( 3, 6 ) ref -> x1 "CSE #07: moderate"
; V44 cse2 [V44,T34] ( 3, 6 ) ref -> x1 "CSE #09: moderate"
; V45 cse3 [V45,T19] ( 7, 10.50) long -> x20 multi-def "CSE #01: moderate"
; V46 cse4 [V46,T07] ( 7, 14 ) long -> x22 multi-def "CSE #06: aggressive"
; V47 rat0 [V47,T01] ( 5, 30 ) ref -> x21 "replacement local"
; V48 rat1 [V48,T22] ( 3, 10 ) long -> x2 "CSE for expectedClsNode"
;
; Lcl frame size = 24
G_M28449_IG01:
stp fp, lr, [sp, #-0x50]!
stp x19, x20, [sp, #0x28]
stp x21, x22, [sp, #0x38]
str x23, [sp, #0x48]
mov fp, sp
add x2, sp, #80
str x2, [fp, #0x20] // [V41 PSPSym]
mov x19, x0
;; size=32 bbWeight=1 PerfScore 6.50
G_M28449_IG02:
mov x0, x1
movz x1, #0xD1FFAB1E // code for System.CodeDom.CodeTypeDeclaration:get_Members():System.CodeDom.CodeTypeMemberCollection:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
ldr x0, [x0, #0x08]
ldr x1, [x0]
ldr x1, [x1, #0x58]
ldr x1, [x1]
blr x1
mov x1, x0
str x1, [fp, #0x18] // [V02 loc0]
;; size=56 bbWeight=1 PerfScore 23.50
G_M28449_IG03:
mov x0, x1
movz x20, #0xD1FFAB1E
movk x20, #0xD1FFAB1E LSL #16
movk x20, #0xD1FFAB1E LSL #32
mov x11, x20
ldr xip0, [x11]
blr xip0
cbz w0, G_M28449_IG18
;; size=32 bbWeight=1 PerfScore 7.50
G_M28449_IG04:
ldr x0, [fp, #0x18] // [V02 loc0]
add x11, x20, #8
ldr xip0, [x11]
blr xip0
mov x21, x0
cbz x21, G_M28449_IG07
;; size=24 bbWeight=4 PerfScore 32.00
G_M28449_IG05:
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x1, [x21]
cmp x1, x2
beq G_M28449_IG07
;; size=24 bbWeight=2 PerfScore 12.00
G_M28449_IG06:
mov x1, x0
mov x0, x2
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_CHKCASTCLASS_SPECIAL
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x21, x0
;; size=32 bbWeight=1 PerfScore 7.00
G_M28449_IG07:
mov x1, x21
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFCLASS
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz x0, G_M28449_IG17
;; size=40 bbWeight=4 PerfScore 34.00
G_M28449_IG08:
add x14, x19, #32
mov x15, x21
bl CORINFO_HELP_ASSIGN_REF
ldr x0, [x19, #0x10]
movz x1, #0xD1FFAB1E // code for System.CodeDom.Compiler.CodeGeneratorOptions:get_BlankLinesBetweenMembers():ubyte:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
cbz w0, G_M28449_IG09
ldr x0, [x19, #0x08]
movz x1, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:WriteLine():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
;; size=72 bbWeight=2 PerfScore 52.00
G_M28449_IG09:
ldr x22, [x19, #0x20]
ldr x1, [x22, #0x20]
cbnz x1, G_M28449_IG10
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x23, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x0, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x23, #8
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x14, x22, #32
mov x15, x23
bl CORINFO_HELP_ASSIGN_REF
mov x1, x23
- ;; size=100 bbWeight=2 PerfScore 46.00
+ ;; size=96 bbWeight=2 PerfScore 45.00
G_M28449_IG10:
ldr x0, [x1, #0x08]
ldr x1, [x0]
ldr x1, [x1, #0x40]
ldr x1, [x1, #0x30]
blr x1
cmp w0, #0
ble G_M28449_IG12
ldr x22, [x19, #0x20]
ldr x1, [x22, #0x20]
cbnz x1, G_M28449_IG11
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x23, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x0, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x23, #8
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x14, x22, #32
mov x15, x23
bl CORINFO_HELP_ASSIGN_REF
mov x1, x23
- ;; size=128 bbWeight=2 PerfScore 75.00
+ ;; size=124 bbWeight=2 PerfScore 74.00
G_M28449_IG11:
mov x0, x19
ldr x22, [x19]
ldr x2, [x22, #0x40]
ldr x2, [x2, #0x28]
blr x2
;; size=20 bbWeight=2 PerfScore 21.00
G_M28449_IG12:
ldr x1, [x19, #0x20]
ldr x1, [x1, #0x38]
mov x0, x19
ldr x22, [x19]
ldr x2, [x22, #0x80]
ldr x2, [x2, #0x20]
blr x2
ldr x1, [x21, #0x30]
cbz x1, G_M28449_IG13
mov x0, x19
ldr x23, [x22, #0x90]
ldr x2, [x23]
blr x2
;; size=52 bbWeight=2 PerfScore 56.00
G_M28449_IG13:
mov x0, x19
mov x1, x21
ldr x23, [x22, #0x90]
ldr x2, [x23, #0x18]
blr x2
ldr x1, [x21, #0x30]
cbz x1, G_M28449_IG14
mov x0, x19
ldr x2, [x23, #0x08]
blr x2
;; size=40 bbWeight=2 PerfScore 33.00
G_M28449_IG14:
ldr x21, [x19, #0x20]
ldr x1, [x21, #0x28]
cbnz x1, G_M28449_IG15
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x23, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x0, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x23, #8
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x14, x21, #40
mov x15, x23
bl CORINFO_HELP_ASSIGN_REF
mov x1, x23
- ;; size=100 bbWeight=2 PerfScore 46.00
+ ;; size=96 bbWeight=2 PerfScore 45.00
G_M28449_IG15:
ldr x0, [x1, #0x08]
ldr x1, [x0]
ldr x1, [x1, #0x40]
ldr x1, [x1, #0x30]
blr x1
cmp w0, #0
ble G_M28449_IG17
ldr x21, [x19, #0x20]
ldr x1, [x21, #0x28]
cbnz x1, G_M28449_IG16
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x23, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x0, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x23, #8
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x14, x21, #40
mov x15, x23
bl CORINFO_HELP_ASSIGN_REF
mov x1, x23
- ;; size=128 bbWeight=2 PerfScore 75.00
+ ;; size=124 bbWeight=2 PerfScore 74.00
G_M28449_IG16:
mov x0, x19
ldr x2, [x22, #0x40]
ldr x2, [x2, #0x28]
blr x2
;; size=16 bbWeight=2 PerfScore 15.00
G_M28449_IG17:
ldr x0, [fp, #0x18] // [V02 loc0]
mov x11, x20
ldr xip0, [x11]
blr xip0
cbnz w0, G_M28449_IG04
;; size=20 bbWeight=4 PerfScore 30.00
G_M28449_IG18:
ldr x1, [fp, #0x18] // [V02 loc0]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFINTERFACE
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz x0, G_M28449_IG20
;; size=40 bbWeight=1 PerfScore 10.00
G_M28449_IG19:
add x11, x20, #16
ldr xip0, [x11]
blr xip0
;; size=12 bbWeight=0.50 PerfScore 2.25
G_M28449_IG20:
ldr x23, [sp, #0x48]
ldp x21, x22, [sp, #0x38]
ldp x19, x20, [sp, #0x28]
ldp fp, lr, [sp], #0x50
ret lr
;; size=20 bbWeight=1 PerfScore 6.00
G_M28449_IG21:
stp fp, lr, [sp, #-0x40]!
stp x19, x20, [sp, #0x18]
stp x21, x22, [sp, #0x28]
str x23, [sp, #0x38]
add x3, fp, #80
str x3, [sp, #0x10]
;; size=24 bbWeight=0 PerfScore 0.00
G_M28449_IG22:
ldr x1, [fp, #0x18] // [V02 loc0]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFINTERFACE
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz x0, G_M28449_IG23
movz x20, #0xD1FFAB1E
movk x20, #0xD1FFAB1E LSL #16
movk x20, #0xD1FFAB1E LSL #32
add x11, x20, #16
ldr xip0, [x11]
blr xip0
;; size=64 bbWeight=0 PerfScore 0.00
G_M28449_IG23:
ldr x23, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x40
ret lr
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1096, prolog size 32, PerfScore 589.75, instruction count 274, allocated bytes for code 1096 (MethodHash=049f90de) for method System.CodeDom.Compiler.CodeGenerator:GenerateFields(System.CodeDom.CodeTypeDeclaration):this (FullOpts)
+; Total bytes of code 1080, prolog size 32, PerfScore 585.75, instruction count 270, allocated bytes for code 1080 (MethodHash=049f90de) for method System.CodeDom.Compiler.CodeGenerator:GenerateFields(System.CodeDom.CodeTypeDeclaration):this (FullOpts)
-16 (-1.27 % of base) - System.CodeDom.Compiler.CodeGenerator:GenerateMethods(System.CodeDom.CodeTypeDeclaration):this
; Assembly listing for method System.CodeDom.Compiler.CodeGenerator:GenerateMethods(System.CodeDom.CodeTypeDeclaration):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; 34 single block inlinees; 4 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 19, 36 ) ref -> x19 this class-hnd single-def <System.CodeDom.Compiler.CodeGenerator>
; V01 arg1 [V01,T24] ( 5, 7 ) ref -> x20 class-hnd single-def <System.CodeDom.CodeTypeDeclaration>
; V02 loc0 [V02,T22] ( 6, 10 ) ref -> [fp+0x10] class-hnd EH-live spill-single-def <System.Collections.IEnumerator>
; V03 loc1 [V03,T02] ( 7, 18 ) ref -> x22 class-hnd <System.CodeDom.CodeTypeMember>
; V04 loc2 [V04,T10] ( 5, 10 ) ref -> x24 class-hnd <System.CodeDom.CodeMemberMethod>
; V05 loc3 [V05,T38] ( 6, 2.50) ref -> x0 class-hnd <System.IDisposable>
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V07 tmp1 [V07,T36] ( 2, 4 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.CodeDom.CodeTypeMemberCollection>
;* V08 tmp2 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.CodeDom.CodeDirectiveCollection>
; V09 tmp3 [V09,T11] ( 3, 12 ) ref -> x23 class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
; V10 tmp4 [V10,T29] ( 2, 8 ) ref -> x1 class-hnd "dup spill" <System.CodeDom.CodeDirectiveCollection>
; V11 tmp5 [V11,T25] ( 4, 8 ) ref -> x1
; V12 tmp6 [V12,T05] ( 4, 16 ) ref -> x24 class-hnd exact "NewObj constructor temp" <System.CodeDom.CodeDirectiveCollection>
;* V13 tmp7 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.CodeDom.CodeDirectiveCollection>
; V14 tmp8 [V14,T12] ( 3, 12 ) ref -> x0 class-hnd exact "NewObj constructor temp" <System.Collections.ArrayList>
;* V15 tmp9 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.CodeDom.CodeDirectiveCollection>
; V16 tmp10 [V16,T13] ( 3, 12 ) ref -> x23 class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
; V17 tmp11 [V17,T30] ( 2, 8 ) ref -> x1 class-hnd "dup spill" <System.CodeDom.CodeDirectiveCollection>
; V18 tmp12 [V18,T26] ( 4, 8 ) ref -> x1
; V19 tmp13 [V19,T06] ( 4, 16 ) ref -> x24 class-hnd exact "NewObj constructor temp" <System.CodeDom.CodeDirectiveCollection>
;* V20 tmp14 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.CodeDom.CodeDirectiveCollection>
; V21 tmp15 [V21,T14] ( 3, 12 ) ref -> x0 class-hnd exact "NewObj constructor temp" <System.Collections.ArrayList>
;* V22 tmp16 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
;* V23 tmp17 [V23 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.CodeDom.CodeDirectiveCollection>
; V24 tmp18 [V24,T15] ( 3, 12 ) ref -> x22 class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
; V25 tmp19 [V25,T31] ( 2, 8 ) ref -> x1 class-hnd "dup spill" <System.CodeDom.CodeDirectiveCollection>
; V26 tmp20 [V26,T27] ( 4, 8 ) ref -> x1
; V27 tmp21 [V27,T07] ( 4, 16 ) ref -> x24 class-hnd exact "NewObj constructor temp" <System.CodeDom.CodeDirectiveCollection>
;* V28 tmp22 [V28 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.CodeDom.CodeDirectiveCollection>
; V29 tmp23 [V29,T16] ( 3, 12 ) ref -> x0 class-hnd exact "NewObj constructor temp" <System.Collections.ArrayList>
;* V30 tmp24 [V30 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.CodeDom.CodeDirectiveCollection>
; V31 tmp25 [V31,T17] ( 3, 12 ) ref -> x22 class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
; V32 tmp26 [V32,T32] ( 2, 8 ) ref -> x1 class-hnd "dup spill" <System.CodeDom.CodeDirectiveCollection>
; V33 tmp27 [V33,T28] ( 4, 8 ) ref -> x1
; V34 tmp28 [V34,T08] ( 4, 16 ) ref -> x24 class-hnd exact "NewObj constructor temp" <System.CodeDom.CodeDirectiveCollection>
;* V35 tmp29 [V35 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.CodeDom.CodeDirectiveCollection>
; V36 tmp30 [V36,T18] ( 3, 12 ) ref -> x0 class-hnd exact "NewObj constructor temp" <System.Collections.ArrayList>
; V37 tmp31 [V37,T33] ( 3, 6 ) ref -> x0 single-def "argument with side effect"
; V38 tmp32 [V38,T03] ( 3, 18 ) ref -> x0 "argument with side effect"
; V39 tmp33 [V39,T19] ( 3, 12 ) ref -> x0 "argument with side effect"
;* V40 tmp34 [V40,T37] ( 0, 0 ) ref -> zero-ref "argument with side effect"
; V41 tmp35 [V41,T20] ( 3, 12 ) ref -> x0 "argument with side effect"
; V42 PSPSym [V42,T39] ( 1, 1 ) long -> [fp+0x18] do-not-enreg[V] "PSPSym"
; V43 cse0 [V43,T09] ( 7, 14 ) long -> x22 multi-def "CSE #09: aggressive"
; V44 cse1 [V44,T34] ( 3, 6 ) ref -> x1 "CSE #07: moderate"
; V45 cse2 [V45,T35] ( 3, 6 ) ref -> x1 "CSE #10: moderate"
; V46 cse3 [V46,T04] ( 8, 16 ) long -> x23 multi-def "CSE #06: aggressive"
; V47 cse4 [V47,T21] ( 7, 10.50) long -> x21 multi-def "CSE #01: moderate"
; V48 rat0 [V48,T01] ( 5, 30 ) ref -> x22 "replacement local"
; V49 rat1 [V49,T23] ( 3, 10 ) long -> x2 "CSE for expectedClsNode"
;
; Lcl frame size = 16
G_M54556_IG01:
stp fp, lr, [sp, #-0x50]!
stp x19, x20, [sp, #0x20]
stp x21, x22, [sp, #0x30]
stp x23, x24, [sp, #0x40]
mov fp, sp
add x2, sp, #80
str x2, [fp, #0x18] // [V42 PSPSym]
mov x19, x0
mov x20, x1
;; size=36 bbWeight=1 PerfScore 7.00
G_M54556_IG02:
mov x0, x20
movz x1, #0xD1FFAB1E // code for System.CodeDom.CodeTypeDeclaration:get_Members():System.CodeDom.CodeTypeMemberCollection:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
ldr x0, [x0, #0x08]
ldr x1, [x0]
ldr x1, [x1, #0x58]
ldr x1, [x1]
blr x1
mov x1, x0
str x1, [fp, #0x10] // [V02 loc0]
;; size=56 bbWeight=1 PerfScore 23.50
G_M54556_IG03:
mov x0, x1
movz x21, #0xD1FFAB1E
movk x21, #0xD1FFAB1E LSL #16
movk x21, #0xD1FFAB1E LSL #32
mov x11, x21
ldr xip0, [x11]
blr xip0
cbz w0, G_M54556_IG20
;; size=32 bbWeight=1 PerfScore 7.50
G_M54556_IG04:
ldr x0, [fp, #0x10] // [V02 loc0]
add x11, x21, #8
ldr xip0, [x11]
blr xip0
mov x22, x0
cbz x22, G_M54556_IG07
;; size=24 bbWeight=4 PerfScore 32.00
G_M54556_IG05:
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x1, [x22]
cmp x1, x2
beq G_M54556_IG07
;; size=24 bbWeight=2 PerfScore 12.00
G_M54556_IG06:
mov x1, x0
mov x0, x2
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_CHKCASTCLASS_SPECIAL
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x22, x0
;; size=32 bbWeight=1 PerfScore 7.00
G_M54556_IG07:
mov x1, x22
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFCLASS
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz x0, G_M54556_IG19
;; size=40 bbWeight=4 PerfScore 34.00
G_M54556_IG08:
mov x1, x22
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFCLASS
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbnz x0, G_M54556_IG19
mov x1, x22
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFCLASS
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbnz x0, G_M54556_IG19
add x14, x19, #32
mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
ldr x0, [x19, #0x10]
movz x1, #0xD1FFAB1E // code for System.CodeDom.Compiler.CodeGeneratorOptions:get_BlankLinesBetweenMembers():ubyte:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
cbz w0, G_M54556_IG09
ldr x0, [x19, #0x08]
movz x1, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:WriteLine():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
;; size=152 bbWeight=2 PerfScore 86.00
G_M54556_IG09:
ldr x23, [x19, #0x20]
ldr x1, [x23, #0x20]
cbnz x1, G_M54556_IG10
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x24, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x0, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x24, #8
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x14, x23, #32
mov x15, x24
bl CORINFO_HELP_ASSIGN_REF
mov x1, x24
- ;; size=100 bbWeight=2 PerfScore 46.00
+ ;; size=96 bbWeight=2 PerfScore 45.00
G_M54556_IG10:
ldr x0, [x1, #0x08]
ldr x1, [x0]
ldr x1, [x1, #0x40]
ldr x1, [x1, #0x30]
blr x1
cmp w0, #0
ble G_M54556_IG12
ldr x23, [x19, #0x20]
ldr x1, [x23, #0x20]
cbnz x1, G_M54556_IG11
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x24, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x0, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x24, #8
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x14, x23, #32
mov x15, x24
bl CORINFO_HELP_ASSIGN_REF
mov x1, x24
- ;; size=128 bbWeight=2 PerfScore 75.00
+ ;; size=124 bbWeight=2 PerfScore 74.00
G_M54556_IG11:
mov x0, x19
ldr x23, [x19]
ldr x2, [x23, #0x40]
ldr x2, [x2, #0x28]
blr x2
;; size=20 bbWeight=2 PerfScore 21.00
G_M54556_IG12:
ldr x1, [x19, #0x20]
ldr x1, [x1, #0x38]
mov x0, x19
ldr x23, [x19]
ldr x2, [x23, #0x80]
ldr x2, [x2, #0x20]
blr x2
mov x24, x22
ldr x1, [x22, #0x30]
cbz x1, G_M54556_IG13
mov x0, x19
ldr x22, [x23, #0x90]
ldr x2, [x22]
blr x2
;; size=56 bbWeight=2 PerfScore 57.00
G_M54556_IG13:
mov x1, x24
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFCLASS
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbnz x0, G_M54556_IG14
mov x0, x19
mov x1, x24
mov x2, x20
ldr x22, [x23, #0x90]
ldr x3, [x22, #0x30]
blr x3
b G_M54556_IG15
;; size=68 bbWeight=2 PerfScore 36.00
G_M54556_IG14:
mov x1, x24
mov x0, x19
mov x2, x20
ldr x22, [x23, #0x90]
ldr x3, [x22, #0x28]
blr x3
;; size=24 bbWeight=2 PerfScore 17.00
G_M54556_IG15:
ldr x1, [x24, #0x30]
cbz x1, G_M54556_IG16
mov x0, x19
ldr x2, [x22, #0x08]
blr x2
;; size=20 bbWeight=2 PerfScore 17.00
G_M54556_IG16:
ldr x22, [x19, #0x20]
ldr x1, [x22, #0x28]
cbnz x1, G_M54556_IG17
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x24, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x0, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x24, #8
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x14, x22, #40
mov x15, x24
bl CORINFO_HELP_ASSIGN_REF
mov x1, x24
- ;; size=100 bbWeight=2 PerfScore 46.00
+ ;; size=96 bbWeight=2 PerfScore 45.00
G_M54556_IG17:
ldr x0, [x1, #0x08]
ldr x1, [x0]
ldr x1, [x1, #0x40]
ldr x1, [x1, #0x30]
blr x1
cmp w0, #0
ble G_M54556_IG19
ldr x22, [x19, #0x20]
ldr x1, [x22, #0x28]
cbnz x1, G_M54556_IG18
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x24, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x0, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x24, #8
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x14, x22, #40
mov x15, x24
bl CORINFO_HELP_ASSIGN_REF
mov x1, x24
- ;; size=128 bbWeight=2 PerfScore 75.00
+ ;; size=124 bbWeight=2 PerfScore 74.00
G_M54556_IG18:
mov x0, x19
ldr x2, [x23, #0x40]
ldr x2, [x2, #0x28]
blr x2
;; size=16 bbWeight=2 PerfScore 15.00
G_M54556_IG19:
ldr x0, [fp, #0x10] // [V02 loc0]
mov x11, x21
ldr xip0, [x11]
blr xip0
cbnz w0, G_M54556_IG04
;; size=20 bbWeight=4 PerfScore 30.00
G_M54556_IG20:
ldr x1, [fp, #0x10] // [V02 loc0]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFINTERFACE
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz x0, G_M54556_IG22
;; size=40 bbWeight=1 PerfScore 10.00
G_M54556_IG21:
add x11, x21, #16
ldr xip0, [x11]
blr xip0
;; size=12 bbWeight=0.50 PerfScore 2.25
G_M54556_IG22:
ldp x23, x24, [sp, #0x40]
ldp x21, x22, [sp, #0x30]
ldp x19, x20, [sp, #0x20]
ldp fp, lr, [sp], #0x50
ret lr
;; size=20 bbWeight=1 PerfScore 5.00
G_M54556_IG23:
stp fp, lr, [sp, #-0x50]!
stp x19, x20, [sp, #0x20]
stp x21, x22, [sp, #0x30]
stp x23, x24, [sp, #0x40]
add x3, fp, #80
str x3, [sp, #0x18]
;; size=24 bbWeight=0 PerfScore 0.00
G_M54556_IG24:
ldr x1, [fp, #0x10] // [V02 loc0]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFINTERFACE
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz x0, G_M54556_IG25
movz x21, #0xD1FFAB1E
movk x21, #0xD1FFAB1E LSL #16
movk x21, #0xD1FFAB1E LSL #32
add x11, x21, #16
ldr xip0, [x11]
blr xip0
;; size=64 bbWeight=0 PerfScore 0.00
G_M54556_IG25:
ldp x23, x24, [sp, #0x40]
ldp x21, x22, [sp, #0x30]
ldp x19, x20, [sp, #0x20]
ldp fp, lr, [sp], #0x50
ret lr
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1256, prolog size 36, PerfScore 661.25, instruction count 314, allocated bytes for code 1256 (MethodHash=cae72ae3) for method System.CodeDom.Compiler.CodeGenerator:GenerateMethods(System.CodeDom.CodeTypeDeclaration):this (FullOpts)
+; Total bytes of code 1240, prolog size 36, PerfScore 657.25, instruction count 310, allocated bytes for code 1240 (MethodHash=cae72ae3) for method System.CodeDom.Compiler.CodeGenerator:GenerateMethods(System.CodeDom.CodeTypeDeclaration):this (FullOpts)
-16 (-1.45 % of base) - System.CodeDom.Compiler.CodeGenerator:GenerateProperties(System.CodeDom.CodeTypeDeclaration):this
; Assembly listing for method System.CodeDom.Compiler.CodeGenerator:GenerateProperties(System.CodeDom.CodeTypeDeclaration):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; 34 single block inlinees; 4 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 18, 34 ) ref -> x19 this class-hnd single-def <System.CodeDom.Compiler.CodeGenerator>
; V01 arg1 [V01,T32] ( 4, 5 ) ref -> x20 class-hnd single-def <System.CodeDom.CodeTypeDeclaration>
; V02 loc0 [V02,T20] ( 6, 10 ) ref -> [fp+0x10] class-hnd EH-live spill-single-def <System.Collections.IEnumerator>
; V03 loc1 [V03,T08] ( 4, 12 ) ref -> x22 class-hnd <System.CodeDom.CodeTypeMember>
; V04 loc2 [V04,T23] ( 4, 8 ) ref -> x22 class-hnd <System.CodeDom.CodeMemberProperty>
; V05 loc3 [V05,T37] ( 6, 2.50) ref -> x0 class-hnd <System.IDisposable>
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V07 tmp1 [V07,T36] ( 2, 4 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.CodeDom.CodeTypeMemberCollection>
;* V08 tmp2 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.CodeDom.CodeDirectiveCollection>
; V09 tmp3 [V09,T09] ( 3, 12 ) ref -> x23 class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
; V10 tmp4 [V10,T28] ( 2, 8 ) ref -> x1 class-hnd "dup spill" <System.CodeDom.CodeDirectiveCollection>
; V11 tmp5 [V11,T24] ( 4, 8 ) ref -> x1
; V12 tmp6 [V12,T03] ( 4, 16 ) ref -> x24 class-hnd exact "NewObj constructor temp" <System.CodeDom.CodeDirectiveCollection>
;* V13 tmp7 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.CodeDom.CodeDirectiveCollection>
; V14 tmp8 [V14,T10] ( 3, 12 ) ref -> x0 class-hnd exact "NewObj constructor temp" <System.Collections.ArrayList>
;* V15 tmp9 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.CodeDom.CodeDirectiveCollection>
; V16 tmp10 [V16,T11] ( 3, 12 ) ref -> x23 class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
; V17 tmp11 [V17,T29] ( 2, 8 ) ref -> x1 class-hnd "dup spill" <System.CodeDom.CodeDirectiveCollection>
; V18 tmp12 [V18,T25] ( 4, 8 ) ref -> x1
; V19 tmp13 [V19,T04] ( 4, 16 ) ref -> x24 class-hnd exact "NewObj constructor temp" <System.CodeDom.CodeDirectiveCollection>
;* V20 tmp14 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.CodeDom.CodeDirectiveCollection>
; V21 tmp15 [V21,T12] ( 3, 12 ) ref -> x0 class-hnd exact "NewObj constructor temp" <System.Collections.ArrayList>
;* V22 tmp16 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
;* V23 tmp17 [V23 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.CodeDom.CodeDirectiveCollection>
; V24 tmp18 [V24,T13] ( 3, 12 ) ref -> x22 class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
; V25 tmp19 [V25,T30] ( 2, 8 ) ref -> x1 class-hnd "dup spill" <System.CodeDom.CodeDirectiveCollection>
; V26 tmp20 [V26,T26] ( 4, 8 ) ref -> x1
; V27 tmp21 [V27,T05] ( 4, 16 ) ref -> x24 class-hnd exact "NewObj constructor temp" <System.CodeDom.CodeDirectiveCollection>
;* V28 tmp22 [V28 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.CodeDom.CodeDirectiveCollection>
; V29 tmp23 [V29,T14] ( 3, 12 ) ref -> x0 class-hnd exact "NewObj constructor temp" <System.Collections.ArrayList>
;* V30 tmp24 [V30 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.CodeDom.CodeDirectiveCollection>
; V31 tmp25 [V31,T15] ( 3, 12 ) ref -> x22 class-hnd "Inlining Arg" <System.CodeDom.CodeTypeMember>
; V32 tmp26 [V32,T31] ( 2, 8 ) ref -> x1 class-hnd "dup spill" <System.CodeDom.CodeDirectiveCollection>
; V33 tmp27 [V33,T27] ( 4, 8 ) ref -> x1
; V34 tmp28 [V34,T06] ( 4, 16 ) ref -> x24 class-hnd exact "NewObj constructor temp" <System.CodeDom.CodeDirectiveCollection>
;* V35 tmp29 [V35 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.CodeDom.CodeDirectiveCollection>
; V36 tmp30 [V36,T16] ( 3, 12 ) ref -> x0 class-hnd exact "NewObj constructor temp" <System.Collections.ArrayList>
; V37 tmp31 [V37,T33] ( 3, 6 ) ref -> x0 single-def "argument with side effect"
; V38 tmp32 [V38,T02] ( 3, 18 ) ref -> x0 "argument with side effect"
; V39 tmp33 [V39,T17] ( 3, 12 ) ref -> x0 "argument with side effect"
; V40 tmp34 [V40,T18] ( 3, 12 ) ref -> x0 "argument with side effect"
; V41 PSPSym [V41,T38] ( 1, 1 ) long -> [fp+0x18] do-not-enreg[V] "PSPSym"
; V42 cse0 [V42,T21] ( 5, 10 ) long -> x24 multi-def "CSE #08: moderate"
; V43 cse1 [V43,T34] ( 3, 6 ) ref -> x1 "CSE #07: moderate"
; V44 cse2 [V44,T35] ( 3, 6 ) ref -> x1 "CSE #09: moderate"
; V45 cse3 [V45,T19] ( 7, 10.50) long -> x21 multi-def "CSE #01: moderate"
; V46 cse4 [V46,T07] ( 7, 14 ) long -> x23 multi-def "CSE #06: aggressive"
; V47 rat0 [V47,T01] ( 5, 30 ) ref -> x22 "replacement local"
; V48 rat1 [V48,T22] ( 3, 10 ) long -> x2 "CSE for expectedClsNode"
;
; Lcl frame size = 16
G_M49201_IG01:
stp fp, lr, [sp, #-0x50]!
stp x19, x20, [sp, #0x20]
stp x21, x22, [sp, #0x30]
stp x23, x24, [sp, #0x40]
mov fp, sp
add x2, sp, #80
str x2, [fp, #0x18] // [V41 PSPSym]
mov x19, x0
mov x20, x1
;; size=36 bbWeight=1 PerfScore 7.00
G_M49201_IG02:
mov x0, x20
movz x1, #0xD1FFAB1E // code for System.CodeDom.CodeTypeDeclaration:get_Members():System.CodeDom.CodeTypeMemberCollection:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
ldr x0, [x0, #0x08]
ldr x1, [x0]
ldr x1, [x1, #0x58]
ldr x1, [x1]
blr x1
mov x1, x0
str x1, [fp, #0x10] // [V02 loc0]
;; size=56 bbWeight=1 PerfScore 23.50
G_M49201_IG03:
mov x0, x1
movz x21, #0xD1FFAB1E
movk x21, #0xD1FFAB1E LSL #16
movk x21, #0xD1FFAB1E LSL #32
mov x11, x21
ldr xip0, [x11]
blr xip0
cbz w0, G_M49201_IG18
;; size=32 bbWeight=1 PerfScore 7.50
G_M49201_IG04:
ldr x0, [fp, #0x10] // [V02 loc0]
add x11, x21, #8
ldr xip0, [x11]
blr xip0
mov x22, x0
cbz x22, G_M49201_IG07
;; size=24 bbWeight=4 PerfScore 32.00
G_M49201_IG05:
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x1, [x22]
cmp x1, x2
beq G_M49201_IG07
;; size=24 bbWeight=2 PerfScore 12.00
G_M49201_IG06:
mov x1, x0
mov x0, x2
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_CHKCASTCLASS_SPECIAL
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
mov x22, x0
;; size=32 bbWeight=1 PerfScore 7.00
G_M49201_IG07:
mov x1, x22
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFCLASS
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz x0, G_M49201_IG17
;; size=40 bbWeight=4 PerfScore 34.00
G_M49201_IG08:
add x14, x19, #32
mov x15, x22
bl CORINFO_HELP_ASSIGN_REF
ldr x0, [x19, #0x10]
movz x1, #0xD1FFAB1E // code for System.CodeDom.Compiler.CodeGeneratorOptions:get_BlankLinesBetweenMembers():ubyte:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
cbz w0, G_M49201_IG09
ldr x0, [x19, #0x08]
movz x1, #0xD1FFAB1E // code for System.CodeDom.Compiler.IndentedTextWriter:WriteLine():this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr wzr, [x0]
blr x1
;; size=72 bbWeight=2 PerfScore 52.00
G_M49201_IG09:
ldr x23, [x19, #0x20]
ldr x1, [x23, #0x20]
cbnz x1, G_M49201_IG10
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x24, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x0, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x24, #8
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x14, x23, #32
mov x15, x24
bl CORINFO_HELP_ASSIGN_REF
mov x1, x24
- ;; size=100 bbWeight=2 PerfScore 46.00
+ ;; size=96 bbWeight=2 PerfScore 45.00
G_M49201_IG10:
ldr x0, [x1, #0x08]
ldr x1, [x0]
ldr x1, [x1, #0x40]
ldr x1, [x1, #0x30]
blr x1
cmp w0, #0
ble G_M49201_IG12
ldr x23, [x19, #0x20]
ldr x1, [x23, #0x20]
cbnz x1, G_M49201_IG11
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x24, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x0, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x24, #8
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x14, x23, #32
mov x15, x24
bl CORINFO_HELP_ASSIGN_REF
mov x1, x24
- ;; size=128 bbWeight=2 PerfScore 75.00
+ ;; size=124 bbWeight=2 PerfScore 74.00
G_M49201_IG11:
mov x0, x19
ldr x23, [x19]
ldr x2, [x23, #0x40]
ldr x2, [x2, #0x28]
blr x2
;; size=20 bbWeight=2 PerfScore 21.00
G_M49201_IG12:
ldr x1, [x19, #0x20]
ldr x1, [x1, #0x38]
mov x0, x19
ldr x23, [x19]
ldr x2, [x23, #0x80]
ldr x2, [x2, #0x20]
blr x2
ldr x1, [x22, #0x30]
cbz x1, G_M49201_IG13
mov x0, x19
ldr x24, [x23, #0x90]
ldr x2, [x24]
blr x2
;; size=52 bbWeight=2 PerfScore 56.00
G_M49201_IG13:
mov x0, x19
mov x1, x22
mov x2, x20
ldr x24, [x23, #0x90]
ldr x3, [x24, #0x38]
blr x3
ldr x1, [x22, #0x30]
cbz x1, G_M49201_IG14
mov x0, x19
ldr x2, [x24, #0x08]
blr x2
;; size=44 bbWeight=2 PerfScore 34.00
G_M49201_IG14:
ldr x22, [x19, #0x20]
ldr x1, [x22, #0x28]
cbnz x1, G_M49201_IG15
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x24, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x0, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x24, #8
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x14, x22, #40
mov x15, x24
bl CORINFO_HELP_ASSIGN_REF
mov x1, x24
- ;; size=100 bbWeight=2 PerfScore 46.00
+ ;; size=96 bbWeight=2 PerfScore 45.00
G_M49201_IG15:
ldr x0, [x1, #0x08]
ldr x1, [x0]
ldr x1, [x1, #0x40]
ldr x1, [x1, #0x30]
blr x1
cmp w0, #0
ble G_M49201_IG17
ldr x22, [x19, #0x20]
ldr x1, [x22, #0x28]
cbnz x1, G_M49201_IG16
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
mov x24, x0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
add x14, x0, #8
bl CORINFO_HELP_ASSIGN_REF
add x14, x24, #8
mov x15, x0
bl CORINFO_HELP_ASSIGN_REF
add x14, x22, #40
mov x15, x24
bl CORINFO_HELP_ASSIGN_REF
mov x1, x24
- ;; size=128 bbWeight=2 PerfScore 75.00
+ ;; size=124 bbWeight=2 PerfScore 74.00
G_M49201_IG16:
mov x0, x19
ldr x2, [x23, #0x40]
ldr x2, [x2, #0x28]
blr x2
;; size=16 bbWeight=2 PerfScore 15.00
G_M49201_IG17:
ldr x0, [fp, #0x10] // [V02 loc0]
mov x11, x21
ldr xip0, [x11]
blr xip0
cbnz w0, G_M49201_IG04
;; size=20 bbWeight=4 PerfScore 30.00
G_M49201_IG18:
ldr x1, [fp, #0x10] // [V02 loc0]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFINTERFACE
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz x0, G_M49201_IG20
;; size=40 bbWeight=1 PerfScore 10.00
G_M49201_IG19:
add x11, x21, #16
ldr xip0, [x11]
blr xip0
;; size=12 bbWeight=0.50 PerfScore 2.25
G_M49201_IG20:
ldp x23, x24, [sp, #0x40]
ldp x21, x22, [sp, #0x30]
ldp x19, x20, [sp, #0x20]
ldp fp, lr, [sp], #0x50
ret lr
;; size=20 bbWeight=1 PerfScore 5.00
G_M49201_IG21:
stp fp, lr, [sp, #-0x50]!
stp x19, x20, [sp, #0x20]
stp x21, x22, [sp, #0x30]
stp x23, x24, [sp, #0x40]
add x3, fp, #80
str x3, [sp, #0x18]
;; size=24 bbWeight=0 PerfScore 0.00
G_M49201_IG22:
ldr x1, [fp, #0x10] // [V02 loc0]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFINTERFACE
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
cbz x0, G_M49201_IG23
movz x21, #0xD1FFAB1E
movk x21, #0xD1FFAB1E LSL #16
movk x21, #0xD1FFAB1E LSL #32
add x11, x21, #16
ldr xip0, [x11]
blr xip0
;; size=64 bbWeight=0 PerfScore 0.00
G_M49201_IG23:
ldp x23, x24, [sp, #0x40]
ldp x21, x22, [sp, #0x30]
ldp x19, x20, [sp, #0x20]
ldp fp, lr, [sp], #0x50
ret lr
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1104, prolog size 36, PerfScore 590.25, instruction count 276, allocated bytes for code 1104 (MethodHash=12ec3fce) for method System.CodeDom.Compiler.CodeGenerator:GenerateProperties(System.CodeDom.CodeTypeDeclaration):this (FullOpts)
+; Total bytes of code 1088, prolog size 36, PerfScore 586.25, instruction count 272, allocated bytes for code 1088 (MethodHash=12ec3fce) for method System.CodeDom.Compiler.CodeGenerator:GenerateProperties(System.CodeDom.CodeTypeDeclaration):this (FullOpts)