; Assembly listing for method System.MemoryExtensions:SequenceCompareTo(System.Span`1[Byte],System.ReadOnlySpan`1[Byte]):int ; Emitting BLENDED_CODE for generic ARM64 CPU - Windows ; optimized code ; fp based frame ; partially interruptible ; Final local variable assignments ; ; V00 arg0 [V00 ] ( 4, 4 ) struct (16) [fp+0x20] do-not-enreg[XSFB] addr-exposed ld-addr-op ; V01 arg1 [V01 ] ( 4, 4 ) struct (16) [fp+0x10] do-not-enreg[XSFB] addr-exposed ld-addr-op ;# V02 OutArgs [V02 ] ( 1, 1 ) lclBlk ( 0) [sp+0x00] "OutgoingArgSpace" ;* V03 tmp1 [V03 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt" ; V04 tmp2 [V04,T02] ( 2, 4 ) int -> x1 "impAppendStmt" ;* V05 tmp3 [V05 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt" ;* V06 tmp4 [V06 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V07 tmp5 [V07 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V08 tmp6 [V08 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V09 tmp7 [V09 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ; V10 tmp8 [V10,T03] ( 2, 2 ) byref -> x0 V06._pointer(offs=0x00) P-INDEP "field V06._pointer (fldOffset=0x0)" ;* V11 tmp9 [V11 ] ( 0, 0 ) int -> zero-ref V06._length(offs=0x08) P-INDEP "field V06._length (fldOffset=0x8)" ; V12 tmp10 [V12,T04] ( 2, 2 ) byref -> x2 V08._pointer(offs=0x00) P-INDEP "field V08._pointer (fldOffset=0x0)" ;* V13 tmp11 [V13 ] ( 0, 0 ) int -> zero-ref V08._length(offs=0x08) P-INDEP "field V08._length (fldOffset=0x8)" ; V14 tmp12 [V14,T00] ( 2, 4 ) byref -> x0 "BlockOp address local" ; V15 tmp13 [V15,T01] ( 2, 4 ) byref -> x2 "BlockOp address local" ; ; Lcl frame size = 32 G_M55809_IG01: A9BD7BFD stp fp, lr, [sp,#-48]! 910003FD mov fp, sp F90013A0 str x0, [fp,#32] // [V00 arg0] F90017A1 str x1, [fp,#40] // [V00 arg0+0x08] F9000BA2 str x2, [fp,#16] // [V01 arg1] F9000FA3 str x3, [fp,#24] // [V01 arg1+0x08] ;; bbWeight=1 PerfScore 5.50 G_M55809_IG02: 910083A0 add x0, fp, #32 // [V00 arg0] F9400000 ldr x0, [x0] B9402BA1 ldr w1, [fp,#40] // [V00 arg0+0x08] 910043A2 add x2, fp, #16 // [V01 arg1] F9400042 ldr x2, [x2] B9401BA3 ldr w3, [fp,#24] // [V01 arg1+0x08] 97FF483A bl System.SpanHelpers:SequenceCompareTo(byref,int,byref,int):int ;; bbWeight=1 PerfScore 12.00 G_M55809_IG03: A8C37BFD ldp fp, lr, [sp],#48 D65F03C0 ret lr ;; bbWeight=1 PerfScore 2.00 ; Total bytes of code 60, prolog size 8, PerfScore 25.50, (MethodHash=7ff825fe) for method System.MemoryExtensions:SequenceCompareTo(System.Span`1[Byte],System.ReadOnlySpan`1[Byte]):int ; ============================================================ ; Assembly listing for method System.SpanHelpers:SequenceCompareTo(byref,int,byref,int):int ; Emitting BLENDED_CODE for generic ARM64 CPU - Windows ; optimized code ; fp based frame ; fully interruptible ; Final local variable assignments ; ; V00 arg0 [V00,T02] ( 6, 13 ) byref -> x19 ; V01 arg1 [V01,T08] ( 6, 4.50) int -> x21 ; V02 arg2 [V02,T03] ( 6, 13 ) byref -> x20 ; V03 arg3 [V03,T09] ( 6, 4.50) int -> x22 ; V04 loc0 [V04,T07] ( 7, 7 ) long -> x1 ; V05 loc1 [V05,T00] ( 17, 53 ) long -> x2 ; V06 loc2 [V06,T04] ( 8, 11 ) long -> x0 ;* V07 loc3 [V07 ] ( 0, 0 ) int -> zero-ref ;* V08 loc4 [V08 ] ( 0, 0 ) int -> zero-ref ;* V09 loc5 [V09 ] ( 0, 0 ) int -> zero-ref ;* V10 loc6 [V10 ] ( 0, 0 ) int -> zero-ref ;* V11 loc7 [V11 ] ( 0, 0 ) int -> zero-ref ;* V12 loc8 [V12 ] ( 0, 0 ) int -> zero-ref ;* V13 loc9 [V13 ] ( 0, 0 ) int -> zero-ref ;* V14 loc10 [V14 ] ( 0, 0 ) int -> zero-ref ;* V15 loc11 [V15 ] ( 0, 0 ) int -> zero-ref ;* V16 loc12 [V16 ] ( 0, 0 ) int -> zero-ref ;* V17 loc13 [V17 ] ( 0, 0 ) simd16 -> zero-ref HFA(simd16) ;* V18 loc14 [V18 ] ( 0, 0 ) simd16 -> zero-ref HFA(simd16) ;* V19 loc15 [V19 ] ( 0, 0 ) int -> zero-ref ;* V20 loc16 [V20 ] ( 0, 0 ) simd16 -> zero-ref HFA(simd16) ;* V21 loc17 [V21 ] ( 0, 0 ) long -> zero-ref ; V22 loc18 [V22,T10] ( 3, 4.50) int -> x0 ;# V23 OutArgs [V23 ] ( 1, 1 ) lclBlk ( 0) [sp+0x00] "OutgoingArgSpace" ; V24 tmp1 [V24,T19] ( 3, 1.50) int -> x0 ; V25 tmp2 [V25,T05] ( 2, 8 ) byref -> x0 "impAppendStmt" ; V26 tmp3 [V26,T01] ( 2, 16 ) long -> x3 "impAppendStmt" ; V27 tmp4 [V27,T20] ( 2, 16 ) simd16 -> d16 HFA(simd16) "impAppendStmt" ; V28 tmp5 [V28,T21] ( 2, 16 ) simd16 -> d17 HFA(simd16) "struct address for call/obj" ;* V29 tmp6 [V29 ] ( 0, 0 ) bool -> zero-ref "Inlining Arg" ;* V30 tmp7 [V30 ] ( 0, 0 ) bool -> zero-ref "Inlining Arg" ; V31 tmp8 [V31,T13] ( 2, 2.50) ref -> x24 class-hnd "Inlining Arg" ; V32 tmp9 [V32,T14] ( 2, 2.50) ref -> x23 class-hnd "Inlining Arg" ;* V33 tmp10 [V33 ] ( 0, 0 ) bool -> zero-ref "Inlining Arg" ;* V34 tmp11 [V34 ] ( 0, 0 ) bool -> zero-ref "Inlining Arg" ; V35 tmp12 [V35,T15] ( 2, 2.50) ref -> x24 class-hnd "Inlining Arg" ; V36 tmp13 [V36,T16] ( 2, 2.50) ref -> x23 class-hnd "Inlining Arg" ;* V37 tmp14 [V37 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inlining Arg" ;* V38 tmp15 [V38 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" ;* V39 tmp16 [V39 ] ( 0, 0 ) long -> zero-ref "NewObj constructor temp" ;* V40 tmp17 [V40 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V41 tmp18 [V41 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inlining Arg" ;* V42 tmp19 [V42 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" ;* V43 tmp20 [V43 ] ( 0, 0 ) long -> zero-ref "NewObj constructor temp" ;* V44 tmp21 [V44 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V45 tmp22 [V45 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inlining Arg" ;* V46 tmp23 [V46 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" ;* V47 tmp24 [V47 ] ( 0, 0 ) long -> zero-ref "NewObj constructor temp" ;* V48 tmp25 [V48 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V49 tmp26 [V49 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inlining Arg" ;* V50 tmp27 [V50 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" ;* V51 tmp28 [V51 ] ( 0, 0 ) long -> zero-ref "NewObj constructor temp" ;* V52 tmp29 [V52 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V53 tmp30 [V53 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inlining Arg" ;* V54 tmp31 [V54 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" ;* V55 tmp32 [V55 ] ( 0, 0 ) long -> zero-ref "NewObj constructor temp" ;* V56 tmp33 [V56 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inlining Arg" ;* V57 tmp34 [V57 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" ;* V58 tmp35 [V58 ] ( 0, 0 ) long -> zero-ref "NewObj constructor temp" ; V59 tmp36 [V59,T06] ( 2, 8 ) ubyte -> x3 "Inlining Arg" ; V60 tmp37 [V60,T17] ( 3, 1.50) ref -> x0 "argument with side effect" ; V61 tmp38 [V61,T18] ( 3, 1.50) ref -> x0 "argument with side effect" ; V62 cse0 [V62,T11] ( 3, 3 ) ref -> x23 "CSE - moderate" ; V63 cse1 [V63,T12] ( 3, 3 ) ref -> x23 "CSE - moderate" ; ; Lcl frame size = 0 G_M65109_IG01: A9BC7BFD stp fp, lr, [sp,#-64]! A90153F3 stp x19, x20, [sp,#16] A9025BF5 stp x21, x22, [sp,#32] A90363F7 stp x23, x24, [sp,#48] 910003FD mov fp, sp AA0003F3 mov x19, x0 2A0103F5 mov w21, w1 AA0203F4 mov x20, x2 2A0303F6 mov w22, w3 ;; bbWeight=1 PerfScore 6.50 G_M65109_IG02: D2860C00 movz x0, #0x3060 F2B815C0 movk x0, #0xc0ae LSL #16 F2C02D40 movk x0, #362 LSL #32 F9400017 ldr x23, [x0] AA1703F8 mov x24, x23 710002BF cmp w21, #0 5400020A bge G_M65109_IG04 ;; bbWeight=1 PerfScore 6.50 G_M65109_IG03: D2800500 movz x0, #40 F2BDC180 movk x0, #0xee0c LSL #16 F2CFFF60 movk x0, #0x7ffb LSL #32 5280DA61 mov w1, #0x6d3 97FF0DF2 bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE D284D000 movz x0, #0x2680 F2B815C0 movk x0, #0xc0ae LSL #16 F2C02D40 movk x0, #362 LSL #32 C8DFFC00 ldar x0, [x0] AA1803E1 mov x1, x24 AA1703E2 mov x2, x23 F9400003 ldr x3, [x0] F9402463 ldr x3, [x3,#72] F9401063 ldr x3, [x3,#32] D63F0060 blr x3 ;; bbWeight=0.25 PerfScore 4.63 G_M65109_IG04: D2860C00 movz x0, #0x3060 F2B815C0 movk x0, #0xc0ae LSL #16 F2C02D40 movk x0, #362 LSL #32 F9400017 ldr x23, [x0] AA1703F8 mov x24, x23 710002DF cmp w22, #0 5400020A bge G_M65109_IG06 ;; bbWeight=1 PerfScore 6.50 G_M65109_IG05: D2800500 movz x0, #40 F2BDC180 movk x0, #0xee0c LSL #16 F2CFFF60 movk x0, #0x7ffb LSL #32 5280DA61 mov w1, #0x6d3 97FF0DDC bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE D284D000 movz x0, #0x2680 F2B815C0 movk x0, #0xc0ae LSL #16 F2C02D40 movk x0, #362 LSL #32 C8DFFC00 ldar x0, [x0] AA1803E1 mov x1, x24 AA1703E2 mov x2, x23 F9400003 ldr x3, [x0] F9402463 ldr x3, [x3,#72] F9401063 ldr x3, [x3,#32] D63F0060 blr x3 ;; bbWeight=0.25 PerfScore 4.63 G_M65109_IG06: EB14027F cmp x19, x20 54000640 beq G_M65109_IG19 ;; bbWeight=1 PerfScore 1.50 G_M65109_IG07: 6B1602BF cmp w21, w22 54000063 blo G_M65109_IG08 2A1603E0 mov w0, w22 14000002 b G_M65109_IG09 ;; bbWeight=0.50 PerfScore 1.50 G_M65109_IG08: 2A1503E0 mov w0, w21 ;; bbWeight=0.50 PerfScore 0.25 G_M65109_IG09: 2A0003E1 mov w1, w0 D2800002 mov x2, #0 AA0103E0 mov x0, x1 F100401F cmp x0, #16 540001C9 bls G_M65109_IG12 D1004020 sub x0, x1, #16 B4000480 cbz x0, G_M65109_IG18 ;; bbWeight=0.50 PerfScore 2.25 G_M65109_IG10: 3CE26A70 ldr q16, [x19, x2] 3CE26A91 ldr q17, [x20, x2] 6E318E10 cmeq v16.16b, v16.16b, v17.16b 6E31AA10 uminv b16, v16.16b 0E013E03 umov w3, v16.b[0] 7100007F cmp w3, #0 540003A0 beq G_M65109_IG18 91004042 add x2, x2, #16 EB02001F cmp x0, x2 54FFFEE8 bhi G_M65109_IG10 ;; bbWeight=4 PerfScore 58.00 G_M65109_IG11: 14000019 b G_M65109_IG18 ;; bbWeight=0.50 PerfScore 0.50 G_M65109_IG12: F100203F cmp x1, #8 540002E9 bls G_M65109_IG18 D1002020 sub x0, x1, #8 B4000100 cbz x0, G_M65109_IG14 ;; bbWeight=0.50 PerfScore 1.50 G_M65109_IG13: F8626A63 ldr x3, [x19, x2] F8626A84 ldr x4, [x20, x2] EB03009F cmp x4, x3 54000221 bne G_M65109_IG18 91002042 add x2, x2, #8 EB02001F cmp x0, x2 54FFFF48 bhi G_M65109_IG13 ;; bbWeight=4 PerfScore 38.00 G_M65109_IG14: EB02003F cmp x1, x2 540001C9 bls G_M65109_IG19 ;; bbWeight=0.50 PerfScore 0.75 G_M65109_IG15: 8B020260 add x0, x19, x2 38627A83 ldrb w3, [x20, x2] 39400000 ldrb w0, [x0] 4B030000 sub w0, w0, w3 340000C0 cbz w0, G_M65109_IG17 ;; bbWeight=2 PerfScore 16.00 G_M65109_IG16: A94363F7 ldp x23, x24, [sp,#48] A9425BF5 ldp x21, x22, [sp,#32] A94153F3 ldp x19, x20, [sp,#16] A8C47BFD ldp fp, lr, [sp],#64 D65F03C0 ret lr ;; bbWeight=0.50 PerfScore 2.50 G_M65109_IG17: 91000442 add x2, x2, #1 ;; bbWeight=2 PerfScore 1.00 G_M65109_IG18: EB02003F cmp x1, x2 54FFFE88 bhi G_M65109_IG15 ;; bbWeight=4 PerfScore 6.00 G_M65109_IG19: 4B1602A0 sub w0, w21, w22 ;; bbWeight=0.50 PerfScore 0.25 G_M65109_IG20: A94363F7 ldp x23, x24, [sp,#48] A9425BF5 ldp x21, x22, [sp,#32] A94153F3 ldp x19, x20, [sp,#16] A8C47BFD ldp fp, lr, [sp],#64 D65F03C0 ret lr ;; bbWeight=0.50 PerfScore 2.50 ; Total bytes of code 440, prolog size 36, PerfScore 205.25, (MethodHash=bda601aa) for method System.SpanHelpers:SequenceCompareTo(byref,int,byref,int):int ; ============================================================ Time taken: 52 msecs for 255.