forked from MihaZupan/runtime-utils
-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[JitDiff X64] MihaZupan/runtime/indexof-revert #708
Comments
Top method improvements-145 (-15.38 % of base) - System.Globalization.CompareInfo:IndexOfOrdinalHelper(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int,ulong,ubyte):int:this ; Assembly listing for method System.Globalization.CompareInfo:IndexOfOrdinalHelper(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int,ulong,ubyte):int:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
-; 0 inlinees with PGO data; 5 single block inlinees; 6 inlinees without PGO data
+; 0 inlinees with PGO data; 3 single block inlinees; 3 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T15] ( 4, 3 ) ref -> r12 this class-hnd single-def <System.Globalization.CompareInfo>
;* V01 arg1 [V01 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[ushort]>
;* V02 arg2 [V02 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[ushort]>
; V03 arg3 [V03,T16] ( 4, 3 ) int -> [rbp-0x2C] single-def
-; V04 arg4 [V04,T23] ( 4, 2 ) long -> [rbp+0x10] single-def
-; V05 arg5 [V05,T30] ( 2, 1 ) ubyte -> [rbp+0x18] single-def
+; V04 arg4 [V04,T21] ( 4, 2 ) long -> [rbp+0x10] single-def
+; V05 arg5 [V05,T23] ( 2, 1 ) ubyte -> [rbp+0x18] single-def
;* V06 loc0 [V06 ] ( 0, 0 ) long -> zero-ref
; V07 loc1 [V07 ] ( 1, 1 ) byref -> [rbp-0x38] must-init pinned single-def
; V08 loc2 [V08 ] ( 1, 1 ) byref -> [rbp-0x40] must-init pinned single-def
; V09 loc3 [V09,T04] ( 6, 36.50) long -> [rbp-0x48] spill-single-def
; V10 loc4 [V10,T05] ( 4, 34 ) long -> [rbp-0x50] spill-single-def
-; V11 loc5 [V11,T22] ( 5, 2.50) int -> rax
-; V12 loc6 [V12,T10] ( 7, 7 ) int -> rsi
-; V13 loc7 [V13,T17] ( 3, 5 ) int -> rdi
-;* V14 loc8 [V14 ] ( 0, 0 ) struct (16) zero-ref multireg-arg <System.ReadOnlySpan`1[ushort]>
-; V15 loc9 [V15,T07] ( 7, 17.50) int -> rax
-; V16 loc10 [V16,T01] ( 5, 84 ) int -> rcx
-; V17 loc11 [V17,T02] ( 8, 75 ) int -> r8
-; V18 loc12 [V18,T00] ( 4,128 ) ushort -> r9
-; V19 loc13 [V19,T03] ( 2, 64 ) ushort -> r11
-;* V20 loc14 [V20 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.ReadOnlySpan`1[ubyte]>
-; V21 OutArgs [V21 ] ( 1, 1 ) struct ( 8) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V22 tmp1 [V22 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V23 tmp2 [V23 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-; V24 tmp3 [V24,T09] ( 4, 8 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.Buffers.SearchValues`1[ushort]>
-;* V25 tmp4 [V25 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-; V26 tmp5 [V26,T18] ( 4, 4 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.Buffers.SearchValues`1[ushort]>
-;* V27 tmp6 [V27 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V28 tmp7 [V28 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-; V29 tmp8 [V29,T24] ( 2, 2 ) byref -> r14 single-def "Inlining Arg"
-; V30 tmp9 [V30,T25] ( 2, 2 ) int -> rdx "Inlining Arg"
-;* V31 tmp10 [V31 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-;* V32 tmp11 [V32 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V33 tmp12 [V33 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-; V34 tmp13 [V34,T19] ( 4, 4 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.Buffers.SearchValues`1[ushort]>
-; V35 tmp14 [V35,T13] ( 5, 6 ) int -> rax "Single return block return value"
-; V36 FramesRoot [V36,T12] ( 10, 6 ) long -> [rbp-0x58] spill-single-def "Pinvoke FrameListRoot"
-; V37 PInvokeFrame [V37 ] ( 12, 8 ) struct (64) [rbp-0x98] do-not-enreg[XS] addr-exposed "Pinvoke FrameVar"
-; V38 tmp17 [V38,T11] ( 6, 4.50) byref -> r14 single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-; V39 tmp18 [V39,T08] ( 12, 10 ) int -> r15 single-def "field V01._length (fldOffset=0x8)" P-INDEP
-; V40 tmp19 [V40,T14] ( 4, 4 ) byref -> r13 single-def "field V02._reference (fldOffset=0x0)" P-INDEP
-; V41 tmp20 [V41,T06] ( 10, 25 ) int -> rbx single-def "field V02._length (fldOffset=0x8)" P-INDEP
-; V42 tmp21 [V42,T26] ( 3, 1.50) byref -> [rbp-0xA8] "field V14._reference (fldOffset=0x0)" P-INDEP
-; V43 tmp22 [V43,T27] ( 3, 1.50) int -> [rbp-0x9C] "field V14._length (fldOffset=0x8)" P-INDEP
-;* V44 tmp23 [V44 ] ( 0, 0 ) byref -> zero-ref "field V20._reference (fldOffset=0x0)" P-INDEP
-;* V45 tmp24 [V45 ] ( 0, 0 ) int -> zero-ref "field V20._length (fldOffset=0x8)" P-INDEP
-;* V46 tmp25 [V46 ] ( 0, 0 ) byref -> zero-ref single-def "field V22._reference (fldOffset=0x0)" P-INDEP
-;* V47 tmp26 [V47 ] ( 0, 0 ) int -> zero-ref "field V22._length (fldOffset=0x8)" P-INDEP
-;* V48 tmp27 [V48 ] ( 0, 0 ) byref -> zero-ref single-def "field V23._reference (fldOffset=0x0)" P-INDEP
-;* V49 tmp28 [V49 ] ( 0, 0 ) int -> zero-ref "field V23._length (fldOffset=0x8)" P-INDEP
-;* V50 tmp29 [V50 ] ( 0, 0 ) byref -> zero-ref single-def "field V25._reference (fldOffset=0x0)" P-INDEP
-;* V51 tmp30 [V51 ] ( 0, 0 ) int -> zero-ref "field V25._length (fldOffset=0x8)" P-INDEP
-;* V52 tmp31 [V52 ] ( 0, 0 ) byref -> zero-ref single-def "field V27._reference (fldOffset=0x0)" P-INDEP
-;* V53 tmp32 [V53 ] ( 0, 0 ) int -> zero-ref "field V27._length (fldOffset=0x8)" P-INDEP
-; V54 tmp33 [V54,T28] ( 2, 1 ) byref -> r14 single-def "field V28._reference (fldOffset=0x0)" P-INDEP
-; V55 tmp34 [V55,T31] ( 2, 1 ) int -> rdx "field V28._length (fldOffset=0x8)" P-INDEP
-; V56 tmp35 [V56,T29] ( 2, 1 ) byref -> r14 single-def "field V31._reference (fldOffset=0x0)" P-INDEP
-;* V57 tmp36 [V57,T33] ( 0, 0 ) int -> zero-ref "field V31._length (fldOffset=0x8)" P-INDEP
-;* V58 tmp37 [V58 ] ( 0, 0 ) byref -> zero-ref "field V33._reference (fldOffset=0x0)" P-INDEP
-;* V59 tmp38 [V59 ] ( 0, 0 ) int -> zero-ref "field V33._length (fldOffset=0x8)" P-INDEP
-; V60 tmp39 [V60,T20] ( 2, 4 ) long -> rcx "Cast away GC"
-; V61 tmp40 [V61,T21] ( 2, 4 ) long -> rdx "Cast away GC"
-;* V62 cse0 [V62,T32] ( 0, 0 ) byref -> zero-ref "CSE #02: moderate"
+; V11 loc5 [V11,T22] ( 3, 1.50) int -> rax
+; V12 loc6 [V12,T14] ( 4, 5.50) int -> rsi
+; V13 loc7 [V13,T17] ( 3, 5 ) int -> rdx
+; V14 loc8 [V14,T07] ( 7, 17.50) int -> rax
+; V15 loc9 [V15,T01] ( 5, 84 ) int -> rdi
+; V16 loc10 [V16,T02] ( 8, 75 ) int -> rcx
+; V17 loc11 [V17,T00] ( 4,128 ) ushort -> r8
+; V18 loc12 [V18,T03] ( 2, 64 ) ushort -> r9
+;* V19 loc13 [V19 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.ReadOnlySpan`1[ubyte]>
+; V20 OutArgs [V20 ] ( 1, 1 ) struct ( 8) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;* V21 tmp1 [V21 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V22 tmp2 [V22 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+; V23 tmp3 [V23,T09] ( 4, 8 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.Buffers.SearchValues`1[ushort]>
+;* V24 tmp4 [V24 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+; V25 tmp5 [V25,T18] ( 4, 4 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.Buffers.SearchValues`1[ushort]>
+;* V26 tmp6 [V26 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V27 tmp7 [V27 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
+; V28 tmp8 [V28,T11] ( 5, 6 ) int -> rax "Single return block return value"
+; V29 FramesRoot [V29,T10] ( 10, 6 ) long -> [rbp-0x58] spill-single-def "Pinvoke FrameListRoot"
+; V30 PInvokeFrame [V30 ] ( 12, 8 ) struct (64) [rbp-0x98] do-not-enreg[XS] addr-exposed "Pinvoke FrameVar"
+; V31 tmp11 [V31,T13] ( 4, 3.50) byref -> r13 single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+; V32 tmp12 [V32,T08] ( 9, 8.50) int -> r15 single-def "field V01._length (fldOffset=0x8)" P-INDEP
+; V33 tmp13 [V33,T12] ( 4, 4 ) byref -> r14 single-def "field V02._reference (fldOffset=0x0)" P-INDEP
+; V34 tmp14 [V34,T06] ( 10, 25 ) int -> rbx single-def "field V02._length (fldOffset=0x8)" P-INDEP
+;* V35 tmp15 [V35 ] ( 0, 0 ) byref -> zero-ref "field V19._reference (fldOffset=0x0)" P-INDEP
+;* V36 tmp16 [V36 ] ( 0, 0 ) int -> zero-ref "field V19._length (fldOffset=0x8)" P-INDEP
+;* V37 tmp17 [V37 ] ( 0, 0 ) byref -> zero-ref single-def "field V21._reference (fldOffset=0x0)" P-INDEP
+;* V38 tmp18 [V38 ] ( 0, 0 ) int -> zero-ref "field V21._length (fldOffset=0x8)" P-INDEP
+;* V39 tmp19 [V39 ] ( 0, 0 ) byref -> zero-ref single-def "field V22._reference (fldOffset=0x0)" P-INDEP
+;* V40 tmp20 [V40 ] ( 0, 0 ) int -> zero-ref "field V22._length (fldOffset=0x8)" P-INDEP
+;* V41 tmp21 [V41 ] ( 0, 0 ) byref -> zero-ref single-def "field V24._reference (fldOffset=0x0)" P-INDEP
+;* V42 tmp22 [V42 ] ( 0, 0 ) int -> zero-ref "field V24._length (fldOffset=0x8)" P-INDEP
+;* V43 tmp23 [V43 ] ( 0, 0 ) byref -> zero-ref single-def "field V26._reference (fldOffset=0x0)" P-INDEP
+;* V44 tmp24 [V44 ] ( 0, 0 ) int -> zero-ref "field V26._length (fldOffset=0x8)" P-INDEP
+;* V45 tmp25 [V45 ] ( 0, 0 ) byref -> zero-ref "field V27._reference (fldOffset=0x0)" P-INDEP
+;* V46 tmp26 [V46 ] ( 0, 0 ) int -> zero-ref "field V27._length (fldOffset=0x8)" P-INDEP
+; V47 tmp27 [V47,T19] ( 2, 4 ) long -> rcx "Cast away GC"
+; V48 tmp28 [V48,T20] ( 2, 4 ) long -> rdx "Cast away GC"
+;* V49 cse0 [V49,T24] ( 0, 0 ) byref -> zero-ref "CSE #02: moderate"
;
-; Lcl frame size = 136
+; Lcl frame size = 120
G_M39468_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
- sub rsp, 136
+ sub rsp, 120
vzeroupper
- lea rbp, [rsp+0xB0]
+ lea rbp, [rsp+0xA0]
xor eax, eax
mov qword ptr [rbp-0x38], rax
mov qword ptr [rbp-0x40], rax
mov dword ptr [rbp-0x2C], r9d
mov r12, rdi
- mov r14, rsi
+ mov r13, rsi
mov r15d, edx
- mov r13, rcx
+ mov r14, rcx
mov ebx, r8d
- ;; size=57 bbWeight=1 PerfScore 12.25
+ ;; size=54 bbWeight=1 PerfScore 12.25
G_M39468_IG02:
lea rdi, [rbp-0x90]
call CORINFO_HELP_INIT_PINVOKE_FRAME
mov qword ptr [rbp-0x58], rax
mov rdi, rsp
mov qword ptr [rbp-0x78], rdi
mov rdi, rbp
mov qword ptr [rbp-0x68], rdi
- mov bword ptr [rbp-0x38], r14
- mov rcx, r14
- mov bword ptr [rbp-0x40], r13
+ mov bword ptr [rbp-0x38], r13
+ mov rcx, r13
+ mov bword ptr [rbp-0x40], r14
mov qword ptr [rbp-0x48], rcx
- mov rdx, r13
+ mov rdx, r14
mov qword ptr [rbp-0x50], rdx
mov rdi, 0xD1FFAB1E ; global ptr
test byte ptr [rdi], 1
- je G_M39468_IG34
+ je G_M39468_IG31
;; size=71 bbWeight=1 PerfScore 13.75
G_M39468_IG03:
mov rsi, 0xD1FFAB1E ; data for System.Globalization.CompareInfo:s_nonSpecialAsciiChars
mov rdi, gword ptr [rsi]
test rdi, rdi
- je G_M39468_IG36
- mov rsi, r13
+ je G_M39468_IG32
+ mov rsi, r14
mov edx, ebx
mov r8, qword ptr [rdi]
mov r8, qword ptr [r8+0x48]
call [r8+0x18]System.Buffers.SearchValues`1[ushort]:ContainsAnyExcept(System.ReadOnlySpan`1[ushort]):ubyte:this
test eax, eax
je G_M39468_IG10
;; size=46 bbWeight=1 PerfScore 12.25
G_M39468_IG04:
- mov r10, qword ptr [rbp-0x48]
- mov r13, qword ptr [rbp-0x50]
+ mov r10, qword ptr [rbp-0x50]
+ mov r13, qword ptr [rbp-0x48]
;; size=8 bbWeight=0.50 PerfScore 1.00
G_M39468_IG05:
cmp byte ptr [rbp+0x18], 0
- je G_M39468_IG28
+ je G_M39468_IG25
mov r14, qword ptr [rbp+0x10]
mov qword ptr [rsp], r14
mov rdi, qword ptr [r12+0x20]
- mov rsi, r13
+ mov rsi, r10
mov edx, ebx
- mov rcx, r10
+ mov rcx, r13
mov r8d, r15d
mov r9d, dword ptr [rbp-0x2C]
mov rax, 0xD1FFAB1E ; function address
mov qword ptr [rbp-0x80], rax
lea rax, G_M39468_IG08
mov qword ptr [rbp-0x70], rax
lea rax, [rbp-0x90]
mov r15, qword ptr [rbp-0x58]
mov qword ptr [r15+0x08], rax
mov byte ptr [r15+0x04], 0
;; size=83 bbWeight=0.50 PerfScore 7.88
G_M39468_IG06:
mov rax, 0xD1FFAB1E ; code for Interop+Globalization:IndexOf(long,ulong,int,ulong,int,int,ulong):int
;; size=10 bbWeight=0.50 PerfScore 0.12
G_M39468_IG07:
call [rax]Interop+Globalization:IndexOf(long,ulong,int,ulong,int,int,ulong):int
;; size=2 bbWeight=0.50 PerfScore 1.50
G_M39468_IG08:
mov byte ptr [r15+0x04], 1
mov rcx, 0xD1FFAB1E ; function address
cmp dword ptr [rcx], 0
je SHORT G_M39468_IG09
mov rdi, 0xD1FFAB1E
call [rdi]CORINFO_HELP_STOP_FOR_GC
;; size=32 bbWeight=0.50 PerfScore 4.25
G_M39468_IG09:
mov rdi, qword ptr [rbp-0x88]
mov qword ptr [r15+0x08], rdi
- jmp G_M39468_IG33
- align [0 bytes for IG20]
+ jmp G_M39468_IG30
+ align [0 bytes for IG18]
;; size=16 bbWeight=0.50 PerfScore 2.00
G_M39468_IG10:
cmp ebx, r15d
- jg G_M39468_IG27
+ jg G_M39468_IG24
cmp byte ptr [rbp+0x18], 0
jne SHORT G_M39468_IG11
mov eax, r15d
sub eax, ebx
mov esi, -1
- cmp eax, r15d
- ja G_M39468_IG35
- mov edx, eax
- mov edi, -1
- mov bword ptr [rbp-0xA8], r14
- mov dword ptr [rbp-0x9C], edx
+ mov edx, -1
jmp SHORT G_M39468_IG12
- ;; size=56 bbWeight=0.50 PerfScore 5.38
+ ;; size=32 bbWeight=0.50 PerfScore 3.62
G_M39468_IG11:
xor eax, eax
mov esi, r15d
sub esi, ebx
inc esi
- cmp esi, r15d
- ja G_M39468_IG35
- mov edx, esi
- lea r14, bword ptr [r14+2*rdx]
- mov edx, r15d
- sub edx, esi
- mov bword ptr [rbp-0xA8], r14
- mov dword ptr [rbp-0x9C], edx
- mov edi, 1
- ;; size=47 bbWeight=0.50 PerfScore 2.88
+ mov edx, 1
+ ;; size=14 bbWeight=0.50 PerfScore 0.62
G_M39468_IG12:
cmp eax, esi
- jne SHORT G_M39468_IG15
- ;; size=4 bbWeight=0.50 PerfScore 0.62
+ je G_M39468_IG23
+ ;; size=8 bbWeight=0.50 PerfScore 0.62
G_M39468_IG13:
- mov r10, qword ptr [rbp-0x48]
- mov r13, qword ptr [rbp-0x50]
- ;; size=8 bbWeight=0.25 PerfScore 0.50
-G_M39468_IG14:
- mov rsi, 0xD1FFAB1E ; data for System.Globalization.CompareInfo:s_nonSpecialAsciiChars
- mov rdi, gword ptr [rsi]
- test rdi, rdi
- jne G_M39468_IG25
- jmp G_M39468_IG36
- ;; size=27 bbWeight=0.50 PerfScore 2.75
-G_M39468_IG15:
- xor ecx, ecx
- mov r8d, eax
+ xor edi, edi
+ mov ecx, eax
test ebx, ebx
- jg SHORT G_M39468_IG20
- ;; size=9 bbWeight=4 PerfScore 7.00
-G_M39468_IG16:
- mov r10, qword ptr [rbp-0x48]
- mov r13, qword ptr [rbp-0x50]
+ jg SHORT G_M39468_IG18
+ ;; size=8 bbWeight=4 PerfScore 7.00
+G_M39468_IG14:
+ mov r10, qword ptr [rbp-0x50]
+ mov r13, qword ptr [rbp-0x48]
;; size=8 bbWeight=2 PerfScore 4.00
-G_M39468_IG17:
- cmp r8d, r15d
- jge SHORT G_M39468_IG18
- movsxd r8, r8d
- cmp word ptr [r10+2*r8], 128
+G_M39468_IG15:
+ cmp ecx, r15d
+ jge SHORT G_M39468_IG16
+ movsxd rcx, ecx
+ cmp word ptr [r13+2*rcx], 128
jae G_M39468_IG05
- ;; size=21 bbWeight=0.50 PerfScore 2.75
-G_M39468_IG18:
+ ;; size=22 bbWeight=0.50 PerfScore 2.75
+G_M39468_IG16:
mov r14, qword ptr [rbp+0x10]
test r14, r14
- je SHORT G_M39468_IG19
+ je SHORT G_M39468_IG17
mov dword ptr [r14], ebx
;; size=12 bbWeight=0.50 PerfScore 1.62
-G_M39468_IG19:
- jmp G_M39468_IG33
+G_M39468_IG17:
+ jmp G_M39468_IG30
;; size=5 bbWeight=0.50 PerfScore 1.00
-G_M39468_IG20:
- movsxd r9, r8d
- mov r10, qword ptr [rbp-0x48]
+G_M39468_IG18:
+ movsxd r8, ecx
+ mov r13, qword ptr [rbp-0x48]
+ movzx r8, word ptr [r13+2*r8]
+ movsxd r9, edi
+ mov r10, qword ptr [rbp-0x50]
movzx r9, word ptr [r10+2*r9]
- movsxd r11, ecx
- mov r13, qword ptr [rbp-0x50]
- movzx r11, word ptr [r13+2*r11]
- cmp r9d, 128
+ cmp r8d, 128
+ mov r10, qword ptr [rbp-0x50]
jge G_M39468_IG05
- mov edx, r9d
+ mov r11d, r8d
mov r14, 0xD1FFAB1E ; static handle
- cmp byte ptr [rdx+r14], 0
+ cmp byte ptr [r11+r14], 0
jne G_M39468_IG05
- cmp r9d, r11d
- jne SHORT G_M39468_IG22
- ;; size=67 bbWeight=32 PerfScore 432.00
-G_M39468_IG21:
+ cmp r8d, r9d
+ jne SHORT G_M39468_IG20
+ ;; size=71 bbWeight=32 PerfScore 464.00
+G_M39468_IG19:
+ inc edi
inc ecx
- inc r8d
- cmp ecx, ebx
- jl SHORT G_M39468_IG20
- jmp SHORT G_M39468_IG17
- ;; size=11 bbWeight=16 PerfScore 60.00
-G_M39468_IG22:
- lea edx, [r15-0x01]
- cmp r8d, edx
- jge SHORT G_M39468_IG24
- ;; size=9 bbWeight=4 PerfScore 7.00
-G_M39468_IG23:
- movsxd rdx, r8d
- cmp word ptr [r10+2*rdx+0x02], 128
- mov r10, qword ptr [rbp-0x48]
+ cmp edi, ebx
+ jl SHORT G_M39468_IG18
+ jmp SHORT G_M39468_IG15
+ ;; size=10 bbWeight=16 PerfScore 60.00
+G_M39468_IG20:
+ lea edi, [r15-0x01]
+ cmp ecx, edi
+ jge SHORT G_M39468_IG22
+ ;; size=8 bbWeight=4 PerfScore 7.00
+G_M39468_IG21:
+ movsxd rdi, ecx
+ cmp word ptr [r13+2*rdi+0x02], 128
jae G_M39468_IG05
- ;; size=21 bbWeight=2 PerfScore 10.50
-G_M39468_IG24:
- add eax, edi
+ ;; size=17 bbWeight=2 PerfScore 8.50
+G_M39468_IG22:
+ add eax, edx
cmp eax, esi
- jne G_M39468_IG15
- jmp G_M39468_IG14
- ;; size=15 bbWeight=4 PerfScore 14.00
-G_M39468_IG25:
- mov rsi, bword ptr [rbp-0xA8]
- mov edx, dword ptr [rbp-0x9C]
- mov rax, qword ptr [rdi]
- mov rax, qword ptr [rax+0x48]
- call [rax+0x18]System.Buffers.SearchValues`1[ushort]:ContainsAnyExcept(System.ReadOnlySpan`1[ushort]):ubyte:this
- test eax, eax
- mov r10, qword ptr [rbp-0x48]
- jne G_M39468_IG05
- ;; size=35 bbWeight=0.50 PerfScore 5.62
-G_M39468_IG26:
+ jne G_M39468_IG13
+ ;; size=10 bbWeight=4 PerfScore 6.00
+G_M39468_IG23:
mov eax, -1
- jmp G_M39468_IG33
+ jmp G_M39468_IG30
;; size=10 bbWeight=0.50 PerfScore 1.12
-G_M39468_IG27:
- mov r13, qword ptr [rbp-0x50]
+G_M39468_IG24:
+ mov r10, qword ptr [rbp-0x50]
mov rsi, 0xD1FFAB1E ; data for System.Globalization.CompareInfo:s_nonSpecialAsciiChars
mov rdi, gword ptr [rsi]
test rdi, rdi
- je G_M39468_IG36
- mov rsi, r14
+ je G_M39468_IG32
+ mov rsi, r13
mov edx, r15d
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x48]
call [rax+0x18]System.Buffers.SearchValues`1[ushort]:ContainsAnyExcept(System.ReadOnlySpan`1[ushort]):ubyte:this
test eax, eax
- mov r10, qword ptr [rbp-0x48]
+ mov r10, qword ptr [rbp-0x50]
+ mov r13, qword ptr [rbp-0x48]
jne G_M39468_IG05
- jmp SHORT G_M39468_IG26
- ;; size=56 bbWeight=0.50 PerfScore 8.12
-G_M39468_IG28:
+ jmp SHORT G_M39468_IG23
+ ;; size=60 bbWeight=0.50 PerfScore 8.62
+G_M39468_IG25:
mov r14, qword ptr [rbp+0x10]
mov qword ptr [rsp], r14
mov rdi, qword ptr [r12+0x20]
- mov rsi, r13
+ mov rsi, r10
mov edx, ebx
- mov rcx, r10
+ mov rcx, r13
mov r8d, r15d
mov r9d, dword ptr [rbp-0x2C]
mov rax, 0xD1FFAB1E ; function address
mov qword ptr [rbp-0x80], rax
- lea rax, G_M39468_IG31
+ lea rax, G_M39468_IG28
mov qword ptr [rbp-0x70], rax
lea rax, [rbp-0x90]
mov r15, qword ptr [rbp-0x58]
mov qword ptr [r15+0x08], rax
mov byte ptr [r15+0x04], 0
;; size=73 bbWeight=0.50 PerfScore 6.38
-G_M39468_IG29:
+G_M39468_IG26:
mov rax, 0xD1FFAB1E ; code for Interop+Globalization:LastIndexOf(long,ulong,int,ulong,int,int,ulong):int
;; size=10 bbWeight=0.50 PerfScore 0.12
-G_M39468_IG30:
+G_M39468_IG27:
call [rax]Interop+Globalization:LastIndexOf(long,ulong,int,ulong,int,int,ulong):int
;; size=2 bbWeight=0.50 PerfScore 1.50
-G_M39468_IG31:
+G_M39468_IG28:
mov byte ptr [r15+0x04], 1
mov rcx, 0xD1FFAB1E ; function address
cmp dword ptr [rcx], 0
- je SHORT G_M39468_IG32
+ je SHORT G_M39468_IG29
mov rdi, 0xD1FFAB1E
call [rdi]CORINFO_HELP_STOP_FOR_GC
;; size=32 bbWeight=0.50 PerfScore 4.25
-G_M39468_IG32:
+G_M39468_IG29:
mov rdi, qword ptr [rbp-0x88]
mov qword ptr [r15+0x08], rdi
;; size=11 bbWeight=0.50 PerfScore 1.00
-G_M39468_IG33:
- add rsp, 136
+G_M39468_IG30:
+ add rsp, 120
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=18 bbWeight=1 PerfScore 4.25
-G_M39468_IG34:
+ ;; size=15 bbWeight=1 PerfScore 4.25
+G_M39468_IG31:
mov rdi, 0xD1FFAB1E ; System.Globalization.CompareInfo
call CORINFO_HELP_GET_GCSTATIC_BASE
jmp G_M39468_IG03
;; size=20 bbWeight=0 PerfScore 0.00
-G_M39468_IG35:
- mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
- call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
- int3
- ;; size=13 bbWeight=0 PerfScore 0.00
-G_M39468_IG36:
+G_M39468_IG32:
mov edi, 6
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentNullException(int)
call [rax]System.ThrowHelper:ThrowArgumentNullException(int)
int3
;; size=18 bbWeight=0 PerfScore 0.00
-; Total bytes of code 943, prolog size 57, PerfScore 639.38, instruction count 227, allocated bytes for code 943 (MethodHash=211765d3) for method System.Globalization.CompareInfo:IndexOfOrdinalHelper(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int,ulong,ubyte):int:this (FullOpts)
+; Total bytes of code 798, prolog size 54, PerfScore 649.00, instruction count 196, allocated bytes for code 798 (MethodHash=211765d3) for method System.Globalization.CompareInfo:IndexOfOrdinalHelper(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int,ulong,ubyte):int:this (FullOpts)
; ============================================================ -141 (-15.39 % of base) - System.Globalization.CompareInfo:IndexOfOrdinalIgnoreCaseHelper(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int,ulong,ubyte):int:this ; Assembly listing for method System.Globalization.CompareInfo:IndexOfOrdinalIgnoreCaseHelper(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int,ulong,ubyte):int:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
-; 0 inlinees with PGO data; 18 single block inlinees; 6 inlinees without PGO data
+; 0 inlinees with PGO data; 13 single block inlinees; 3 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T14] ( 4, 3 ) ref -> r12 this class-hnd single-def <System.Globalization.CompareInfo>
;* V01 arg1 [V01 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[ushort]>
;* V02 arg2 [V02 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[ushort]>
; V03 arg3 [V03,T15] ( 4, 3 ) int -> [rbp-0x2C] single-def
-; V04 arg4 [V04,T22] ( 4, 2 ) long -> [rbp+0x10] single-def
-; V05 arg5 [V05,T31] ( 2, 1 ) ubyte -> [rbp+0x18] single-def
+; V04 arg4 [V04,T20] ( 4, 2 ) long -> [rbp+0x10] single-def
+; V05 arg5 [V05,T23] ( 2, 1 ) ubyte -> [rbp+0x18] single-def
;* V06 loc0 [V06 ] ( 0, 0 ) long -> zero-ref
; V07 loc1 [V07 ] ( 1, 1 ) byref -> [rbp-0x38] must-init pinned single-def
; V08 loc2 [V08 ] ( 1, 1 ) byref -> [rbp-0x40] must-init pinned single-def
; V09 loc3 [V09,T04] ( 6, 36.50) long -> [rbp-0x48] spill-single-def
; V10 loc4 [V10,T05] ( 4, 34 ) long -> [rbp-0x50] spill-single-def
-; V11 loc5 [V11,T20] ( 5, 2.50) int -> rax
-; V12 loc6 [V12,T09] ( 7, 7 ) int -> rdx
-; V13 loc7 [V13,T16] ( 3, 5 ) int -> rcx
-;* V14 loc8 [V14 ] ( 0, 0 ) struct (16) zero-ref <System.ReadOnlySpan`1[ushort]>
-; V15 loc9 [V15,T07] ( 7, 17.50) int -> rax
-; V16 loc10 [V16,T02] ( 5, 84 ) int -> r8
-; V17 loc11 [V17,T03] ( 8, 75 ) int -> r9
-; V18 loc12 [V18,T00] ( 8,176 ) ushort -> r10
-; V19 loc13 [V19,T01] ( 6,112 ) ushort -> r11
-;* V20 loc14 [V20 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.ReadOnlySpan`1[ubyte]>
-; V21 OutArgs [V21 ] ( 1, 1 ) struct ( 8) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V22 tmp1 [V22 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V23 tmp2 [V23 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-; V24 tmp3 [V24,T17] ( 2, 4 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.Buffers.AsciiCharSearchValues`2[System.Buffers.IndexOfAnyAsciiSearcher+Default,System.Buffers.SearchValues+FalseConst]>
-;* V25 tmp4 [V25 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V26 tmp5 [V26 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V27 tmp6 [V27 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V28 tmp7 [V28 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V29 tmp8 [V29 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V30 tmp9 [V30 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V31 tmp10 [V31,T23] ( 2, 2 ) ref -> rdx class-hnd exact single-def "Inlining Arg" <System.Buffers.AsciiCharSearchValues`2[System.Buffers.IndexOfAnyAsciiSearcher+Default,System.Buffers.SearchValues+FalseConst]>
-;* V32 tmp11 [V32 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V33 tmp12 [V33 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V34 tmp13 [V34 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V35 tmp14 [V35 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V36 tmp15 [V36 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V37 tmp16 [V37 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V38 tmp17 [V38 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-; V39 tmp18 [V39,T24] ( 2, 2 ) byref -> rdi single-def "Inlining Arg"
-; V40 tmp19 [V40,T26] ( 2, 2 ) int -> rsi "Inlining Arg"
-;* V41 tmp20 [V41 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-;* V42 tmp21 [V42 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V43 tmp22 [V43 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-; V44 tmp23 [V44,T25] ( 2, 2 ) ref -> rdx class-hnd exact single-def "Inlining Arg" <System.Buffers.AsciiCharSearchValues`2[System.Buffers.IndexOfAnyAsciiSearcher+Default,System.Buffers.SearchValues+FalseConst]>
-;* V45 tmp24 [V45 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V46 tmp25 [V46 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V47 tmp26 [V47 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V48 tmp27 [V48 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V49 tmp28 [V49 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V50 tmp29 [V50,T12] ( 5, 6 ) int -> rax "Single return block return value"
-; V51 FramesRoot [V51,T11] ( 10, 6 ) long -> [rbp-0x58] spill-single-def "Pinvoke FrameListRoot"
-; V52 PInvokeFrame [V52 ] ( 12, 8 ) struct (64) [rbp-0x98] do-not-enreg[XS] addr-exposed "Pinvoke FrameVar"
-; V53 tmp32 [V53,T10] ( 6, 4.50) byref -> r14 single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-; V54 tmp33 [V54,T08] ( 12, 10 ) int -> r15 single-def "field V01._length (fldOffset=0x8)" P-INDEP
-; V55 tmp34 [V55,T13] ( 4, 4 ) byref -> r13 single-def "field V02._reference (fldOffset=0x0)" P-INDEP
-; V56 tmp35 [V56,T06] ( 10, 25 ) int -> rbx single-def "field V02._length (fldOffset=0x8)" P-INDEP
-; V57 tmp36 [V57,T27] ( 3, 1.50) byref -> [rbp-0xA8] "field V14._reference (fldOffset=0x0)" P-INDEP
-; V58 tmp37 [V58,T28] ( 3, 1.50) int -> [rbp-0x9C] "field V14._length (fldOffset=0x8)" P-INDEP
-;* V59 tmp38 [V59 ] ( 0, 0 ) byref -> zero-ref "field V20._reference (fldOffset=0x0)" P-INDEP
-;* V60 tmp39 [V60 ] ( 0, 0 ) int -> zero-ref "field V20._length (fldOffset=0x8)" P-INDEP
-;* V61 tmp40 [V61 ] ( 0, 0 ) byref -> zero-ref single-def "field V22._reference (fldOffset=0x0)" P-INDEP
-;* V62 tmp41 [V62 ] ( 0, 0 ) int -> zero-ref "field V22._length (fldOffset=0x8)" P-INDEP
-;* V63 tmp42 [V63 ] ( 0, 0 ) byref -> zero-ref single-def "field V23._reference (fldOffset=0x0)" P-INDEP
-;* V64 tmp43 [V64 ] ( 0, 0 ) int -> zero-ref "field V23._length (fldOffset=0x8)" P-INDEP
-;* V65 tmp44 [V65 ] ( 0, 0 ) byref -> zero-ref single-def "field V25._reference (fldOffset=0x0)" P-INDEP
-;* V66 tmp45 [V66 ] ( 0, 0 ) int -> zero-ref "field V25._length (fldOffset=0x8)" P-INDEP
-;* V67 tmp46 [V67 ] ( 0, 0 ) byref -> zero-ref single-def "field V26._reference (fldOffset=0x0)" P-INDEP
-;* V68 tmp47 [V68 ] ( 0, 0 ) int -> zero-ref "field V26._length (fldOffset=0x8)" P-INDEP
-;* V69 tmp48 [V69 ] ( 0, 0 ) byref -> zero-ref single-def "field V27._reference (fldOffset=0x0)" P-INDEP
-;* V70 tmp49 [V70 ] ( 0, 0 ) int -> zero-ref "field V27._length (fldOffset=0x8)" P-INDEP
-;* V71 tmp50 [V71 ] ( 0, 0 ) byref -> zero-ref single-def "field V32._reference (fldOffset=0x0)" P-INDEP
-;* V72 tmp51 [V72 ] ( 0, 0 ) int -> zero-ref "field V32._length (fldOffset=0x8)" P-INDEP
-;* V73 tmp52 [V73 ] ( 0, 0 ) byref -> zero-ref single-def "field V33._reference (fldOffset=0x0)" P-INDEP
-;* V74 tmp53 [V74 ] ( 0, 0 ) int -> zero-ref "field V33._length (fldOffset=0x8)" P-INDEP
-;* V75 tmp54 [V75 ] ( 0, 0 ) byref -> zero-ref single-def "field V34._reference (fldOffset=0x0)" P-INDEP
-;* V76 tmp55 [V76 ] ( 0, 0 ) int -> zero-ref "field V34._length (fldOffset=0x8)" P-INDEP
-; V77 tmp56 [V77,T29] ( 2, 1 ) byref -> rdi single-def "field V38._reference (fldOffset=0x0)" P-INDEP
-; V78 tmp57 [V78,T32] ( 2, 1 ) int -> rsi "field V38._length (fldOffset=0x8)" P-INDEP
-; V79 tmp58 [V79,T30] ( 2, 1 ) byref -> rdi single-def "field V41._reference (fldOffset=0x0)" P-INDEP
-;* V80 tmp59 [V80,T33] ( 0, 0 ) int -> zero-ref "field V41._length (fldOffset=0x8)" P-INDEP
-;* V81 tmp60 [V81 ] ( 0, 0 ) byref -> zero-ref "field V43._reference (fldOffset=0x0)" P-INDEP
-;* V82 tmp61 [V82 ] ( 0, 0 ) int -> zero-ref "field V43._length (fldOffset=0x8)" P-INDEP
-;* V83 tmp62 [V83 ] ( 0, 0 ) byref -> zero-ref single-def "field V45._reference (fldOffset=0x0)" P-INDEP
-;* V84 tmp63 [V84 ] ( 0, 0 ) int -> zero-ref "field V45._length (fldOffset=0x8)" P-INDEP
-;* V85 tmp64 [V85 ] ( 0, 0 ) byref -> zero-ref single-def "field V46._reference (fldOffset=0x0)" P-INDEP
-;* V86 tmp65 [V86 ] ( 0, 0 ) int -> zero-ref "field V46._length (fldOffset=0x8)" P-INDEP
-; V87 tmp66 [V87,T18] ( 2, 4 ) long -> rcx "Cast away GC"
-; V88 tmp67 [V88,T19] ( 2, 4 ) long -> r8 "Cast away GC"
-; V89 cse0 [V89,T21] ( 4, 3 ) ref -> [rbp-0xB0] spill-single-def "CSE #01: moderate"
+; V11 loc5 [V11,T22] ( 3, 1.50) int -> rax
+; V12 loc6 [V12,T13] ( 4, 5.50) int -> rdx
+; V13 loc7 [V13,T16] ( 3, 5 ) int -> rdi
+; V14 loc8 [V14,T07] ( 7, 17.50) int -> rax
+; V15 loc9 [V15,T02] ( 5, 84 ) int -> rsi
+; V16 loc10 [V16,T03] ( 8, 75 ) int -> rcx
+; V17 loc11 [V17,T00] ( 8,176 ) ushort -> r8
+; V18 loc12 [V18,T01] ( 6,112 ) ushort -> r9
+;* V19 loc13 [V19 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.ReadOnlySpan`1[ubyte]>
+; V20 OutArgs [V20 ] ( 1, 1 ) struct ( 8) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;* V21 tmp1 [V21 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V22 tmp2 [V22 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+; V23 tmp3 [V23,T17] ( 2, 4 ) ref -> rdx class-hnd exact single-def "Inlining Arg" <System.Buffers.AsciiCharSearchValues`2[System.Buffers.IndexOfAnyAsciiSearcher+Default,System.Buffers.SearchValues+FalseConst]>
+;* V24 tmp4 [V24 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V25 tmp5 [V25 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V26 tmp6 [V26 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V27 tmp7 [V27 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V28 tmp8 [V28 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V29 tmp9 [V29 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+; V30 tmp10 [V30,T21] ( 2, 2 ) ref -> rdx class-hnd exact single-def "Inlining Arg" <System.Buffers.AsciiCharSearchValues`2[System.Buffers.IndexOfAnyAsciiSearcher+Default,System.Buffers.SearchValues+FalseConst]>
+;* V31 tmp11 [V31 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V32 tmp12 [V32 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V33 tmp13 [V33 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V34 tmp14 [V34 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V35 tmp15 [V35 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V36 tmp16 [V36 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V37 tmp17 [V37 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
+; V38 tmp18 [V38,T10] ( 5, 6 ) int -> rax "Single return block return value"
+; V39 FramesRoot [V39,T09] ( 10, 6 ) long -> [rbp-0x58] spill-single-def "Pinvoke FrameListRoot"
+; V40 PInvokeFrame [V40 ] ( 12, 8 ) struct (64) [rbp-0x98] do-not-enreg[XS] addr-exposed "Pinvoke FrameVar"
+; V41 tmp21 [V41,T12] ( 4, 3.50) byref -> r13 single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+; V42 tmp22 [V42,T08] ( 9, 8.50) int -> r15 single-def "field V01._length (fldOffset=0x8)" P-INDEP
+; V43 tmp23 [V43,T11] ( 4, 4 ) byref -> r14 single-def "field V02._reference (fldOffset=0x0)" P-INDEP
+; V44 tmp24 [V44,T06] ( 10, 25 ) int -> rbx single-def "field V02._length (fldOffset=0x8)" P-INDEP
+;* V45 tmp25 [V45 ] ( 0, 0 ) byref -> zero-ref "field V19._reference (fldOffset=0x0)" P-INDEP
+;* V46 tmp26 [V46 ] ( 0, 0 ) int -> zero-ref "field V19._length (fldOffset=0x8)" P-INDEP
+;* V47 tmp27 [V47 ] ( 0, 0 ) byref -> zero-ref single-def "field V21._reference (fldOffset=0x0)" P-INDEP
+;* V48 tmp28 [V48 ] ( 0, 0 ) int -> zero-ref "field V21._length (fldOffset=0x8)" P-INDEP
+;* V49 tmp29 [V49 ] ( 0, 0 ) byref -> zero-ref single-def "field V22._reference (fldOffset=0x0)" P-INDEP
+;* V50 tmp30 [V50 ] ( 0, 0 ) int -> zero-ref "field V22._length (fldOffset=0x8)" P-INDEP
+;* V51 tmp31 [V51 ] ( 0, 0 ) byref -> zero-ref single-def "field V24._reference (fldOffset=0x0)" P-INDEP
+;* V52 tmp32 [V52 ] ( 0, 0 ) int -> zero-ref "field V24._length (fldOffset=0x8)" P-INDEP
+;* V53 tmp33 [V53 ] ( 0, 0 ) byref -> zero-ref single-def "field V25._reference (fldOffset=0x0)" P-INDEP
+;* V54 tmp34 [V54 ] ( 0, 0 ) int -> zero-ref "field V25._length (fldOffset=0x8)" P-INDEP
+;* V55 tmp35 [V55 ] ( 0, 0 ) byref -> zero-ref single-def "field V26._reference (fldOffset=0x0)" P-INDEP
+;* V56 tmp36 [V56 ] ( 0, 0 ) int -> zero-ref "field V26._length (fldOffset=0x8)" P-INDEP
+;* V57 tmp37 [V57 ] ( 0, 0 ) byref -> zero-ref single-def "field V31._reference (fldOffset=0x0)" P-INDEP
+;* V58 tmp38 [V58 ] ( 0, 0 ) int -> zero-ref "field V31._length (fldOffset=0x8)" P-INDEP
+;* V59 tmp39 [V59 ] ( 0, 0 ) byref -> zero-ref single-def "field V32._reference (fldOffset=0x0)" P-INDEP
+;* V60 tmp40 [V60 ] ( 0, 0 ) int -> zero-ref "field V32._length (fldOffset=0x8)" P-INDEP
+;* V61 tmp41 [V61 ] ( 0, 0 ) byref -> zero-ref single-def "field V33._reference (fldOffset=0x0)" P-INDEP
+;* V62 tmp42 [V62 ] ( 0, 0 ) int -> zero-ref "field V33._length (fldOffset=0x8)" P-INDEP
+;* V63 tmp43 [V63 ] ( 0, 0 ) byref -> zero-ref "field V37._reference (fldOffset=0x0)" P-INDEP
+;* V64 tmp44 [V64 ] ( 0, 0 ) int -> zero-ref "field V37._length (fldOffset=0x8)" P-INDEP
+; V65 tmp45 [V65,T18] ( 2, 4 ) long -> rcx "Cast away GC"
+; V66 tmp46 [V66,T19] ( 2, 4 ) long -> r8 "Cast away GC"
;
-; Lcl frame size = 152
+; Lcl frame size = 120
G_M55808_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
- sub rsp, 152
+ sub rsp, 120
vzeroupper
- lea rbp, [rsp+0xC0]
+ lea rbp, [rsp+0xA0]
xor eax, eax
mov qword ptr [rbp-0x38], rax
mov qword ptr [rbp-0x40], rax
mov dword ptr [rbp-0x2C], r9d
mov r12, rdi
- mov r14, rsi
+ mov r13, rsi
mov r15d, edx
- mov r13, rcx
+ mov r14, rcx
mov ebx, r8d
- ;; size=57 bbWeight=1 PerfScore 12.25
+ ;; size=54 bbWeight=1 PerfScore 12.25
G_M55808_IG02:
lea rdi, [rbp-0x90]
call CORINFO_HELP_INIT_PINVOKE_FRAME
mov qword ptr [rbp-0x58], rax
mov rdx, rsp
mov qword ptr [rbp-0x78], rdx
mov rdx, rbp
mov qword ptr [rbp-0x68], rdx
- mov bword ptr [rbp-0x38], r14
- mov rcx, r14
- mov bword ptr [rbp-0x40], r13
+ mov bword ptr [rbp-0x38], r13
+ mov rcx, r13
+ mov bword ptr [rbp-0x40], r14
mov qword ptr [rbp-0x48], rcx
- mov r8, r13
+ mov r8, r14
mov qword ptr [rbp-0x50], r8
mov rdx, 0xD1FFAB1E ; const ptr
- mov r9, gword ptr [rdx]
- mov rdx, r9
- mov gword ptr [rbp-0xB0], rdx
- mov rdi, rdx
- lea rdx, bword ptr [rdi+0x08]
- mov rdi, r13
+ mov rdx, gword ptr [rdx]
+ add rdx, 8
+ mov rdi, r14
mov esi, ebx
mov r9, 0xD1FFAB1E ; code for System.Buffers.IndexOfAnyAsciiSearcher:IndexOfAnyCore[ubyte,System.Buffers.IndexOfAnyAsciiSearcher+Negate,System.Buffers.IndexOfAnyAsciiSearcher+Default,System.Buffers.SearchValues+FalseConst,System.Buffers.IndexOfAnyAsciiSearcher+ContainsAnyResultMapper`1[short]](byref,int,byref):ubyte
call [r9]System.Buffers.IndexOfAnyAsciiSearcher:IndexOfAnyCore[ubyte,System.Buffers.IndexOfAnyAsciiSearcher+Negate,System.Buffers.IndexOfAnyAsciiSearcher+Default,System.Buffers.SearchValues+FalseConst,System.Buffers.IndexOfAnyAsciiSearcher+ContainsAnyResultMapper`1[short]](byref,int,byref):ubyte
test eax, eax
je G_M55808_IG09
- ;; size=108 bbWeight=1 PerfScore 18.75
+ ;; size=95 bbWeight=1 PerfScore 17.00
G_M55808_IG03:
- mov r13, qword ptr [rbp-0x50]
- mov r14, qword ptr [rbp-0x48]
+ mov r10, qword ptr [rbp-0x50]
+ mov r13, qword ptr [rbp-0x48]
;; size=8 bbWeight=0.50 PerfScore 1.00
G_M55808_IG04:
cmp byte ptr [rbp+0x18], 0
- je G_M55808_IG31
- mov rdi, qword ptr [rbp+0x10]
- mov qword ptr [rsp], rdi
+ je G_M55808_IG29
+ mov r14, qword ptr [rbp+0x10]
+ mov qword ptr [rsp], r14
mov rdi, qword ptr [r12+0x20]
- mov rsi, r13
+ mov rsi, r10
mov edx, ebx
- mov rcx, r14
+ mov rcx, r13
mov r8d, r15d
mov r9d, dword ptr [rbp-0x2C]
mov rax, 0xD1FFAB1E ; function address
mov qword ptr [rbp-0x80], rax
lea rax, G_M55808_IG07
mov qword ptr [rbp-0x70], rax
lea rax, [rbp-0x90]
mov r15, qword ptr [rbp-0x58]
mov qword ptr [r15+0x08], rax
mov byte ptr [r15+0x04], 0
;; size=83 bbWeight=0.50 PerfScore 7.88
G_M55808_IG05:
mov rax, 0xD1FFAB1E ; function address
;; size=10 bbWeight=0.50 PerfScore 0.12
G_M55808_IG06:
call rax ; Interop+Globalization:IndexOf(long,ulong,int,ulong,int,int,ulong):int
;; size=2 bbWeight=0.50 PerfScore 1.50
G_M55808_IG07:
mov byte ptr [r15+0x04], 1
mov rcx, 0xD1FFAB1E ; function address
cmp dword ptr [rcx], 0
je SHORT G_M55808_IG08
mov rdi, 0xD1FFAB1E
call [rdi]CORINFO_HELP_STOP_FOR_GC
;; size=32 bbWeight=0.50 PerfScore 4.25
G_M55808_IG08:
mov rcx, qword ptr [rbp-0x88]
mov qword ptr [r15+0x08], rcx
- jmp G_M55808_IG36
- align [0 bytes for IG20]
+ jmp G_M55808_IG34
+ align [0 bytes for IG17]
;; size=16 bbWeight=0.50 PerfScore 2.00
G_M55808_IG09:
cmp ebx, r15d
- jg G_M55808_IG30
+ jg G_M55808_IG28
cmp byte ptr [rbp+0x18], 0
jne SHORT G_M55808_IG10
mov eax, r15d
sub eax, ebx
mov edx, -1
- cmp eax, r15d
- ja G_M55808_IG37
- mov rdi, r14
- mov esi, eax
- mov ecx, -1
- mov bword ptr [rbp-0xA8], rdi
- mov dword ptr [rbp-0x9C], esi
+ mov edi, -1
jmp SHORT G_M55808_IG11
- ;; size=59 bbWeight=0.50 PerfScore 5.50
+ ;; size=32 bbWeight=0.50 PerfScore 3.62
G_M55808_IG10:
xor eax, eax
mov edx, r15d
sub edx, ebx
inc edx
- cmp edx, r15d
- ja G_M55808_IG37
- mov edi, edx
- lea rdi, bword ptr [r14+2*rdi]
- mov esi, r15d
- sub esi, edx
- mov bword ptr [rbp-0xA8], rdi
- mov dword ptr [rbp-0x9C], esi
- mov ecx, 1
- ;; size=47 bbWeight=0.50 PerfScore 2.88
+ mov edi, 1
+ ;; size=14 bbWeight=0.50 PerfScore 0.62
G_M55808_IG11:
cmp eax, edx
- jne SHORT G_M55808_IG15
- ;; size=4 bbWeight=0.50 PerfScore 0.62
+ je G_M55808_IG27
+ ;; size=8 bbWeight=0.50 PerfScore 0.62
G_M55808_IG12:
- mov r13, qword ptr [rbp-0x50]
- mov r14, qword ptr [rbp-0x48]
- ;; size=8 bbWeight=0.25 PerfScore 0.50
-G_M55808_IG13:
- mov rdx, gword ptr [rbp-0xB0]
- add rdx, 8
- mov rdi, bword ptr [rbp-0xA8]
- mov esi, dword ptr [rbp-0x9C]
- mov rax, 0xD1FFAB1E ; code for System.Buffers.IndexOfAnyAsciiSearcher:IndexOfAnyCore[ubyte,System.Buffers.IndexOfAnyAsciiSearcher+Negate,System.Buffers.IndexOfAnyAsciiSearcher+Default,System.Buffers.SearchValues+FalseConst,System.Buffers.IndexOfAnyAsciiSearcher+ContainsAnyResultMapper`1[short]](byref,int,byref):ubyte
- call [rax]System.Buffers.IndexOfAnyAsciiSearcher:IndexOfAnyCore[ubyte,System.Buffers.IndexOfAnyAsciiSearcher+Negate,System.Buffers.IndexOfAnyAsciiSearcher+Default,System.Buffers.SearchValues+FalseConst,System.Buffers.IndexOfAnyAsciiSearcher+ContainsAnyResultMapper`1[short]](byref,int,byref):ubyte
- test eax, eax
- jne G_M55808_IG04
- ;; size=44 bbWeight=0.50 PerfScore 3.88
-G_M55808_IG14:
- mov eax, -1
- jmp G_M55808_IG36
- ;; size=10 bbWeight=0.50 PerfScore 1.12
-G_M55808_IG15:
- xor r8d, r8d
- mov r9d, eax
+ xor esi, esi
+ mov ecx, eax
test ebx, ebx
- jg SHORT G_M55808_IG20
- ;; size=10 bbWeight=4 PerfScore 7.00
-G_M55808_IG16:
- mov r13, qword ptr [rbp-0x50]
- mov r14, qword ptr [rbp-0x48]
+ jg SHORT G_M55808_IG17
+ ;; size=8 bbWeight=4 PerfScore 7.00
+G_M55808_IG13:
+ mov r10, qword ptr [rbp-0x50]
+ mov r13, qword ptr [rbp-0x48]
;; size=8 bbWeight=2 PerfScore 4.00
-G_M55808_IG17:
- cmp r9d, r15d
- jge SHORT G_M55808_IG18
- movsxd r9, r9d
- cmp word ptr [r14+2*r9], 128
+G_M55808_IG14:
+ cmp ecx, r15d
+ jge SHORT G_M55808_IG15
+ movsxd rcx, ecx
+ cmp word ptr [r13+2*rcx], 128
jae G_M55808_IG04
- ;; size=21 bbWeight=0.50 PerfScore 2.75
-G_M55808_IG18:
- mov r13, qword ptr [rbp+0x10]
- test r13, r13
- je SHORT G_M55808_IG19
- mov dword ptr [r13], ebx
- ;; size=13 bbWeight=0.50 PerfScore 1.62
-G_M55808_IG19:
- jmp G_M55808_IG36
+ ;; size=22 bbWeight=0.50 PerfScore 2.75
+G_M55808_IG15:
+ mov r14, qword ptr [rbp+0x10]
+ test r14, r14
+ je SHORT G_M55808_IG16
+ mov dword ptr [r14], ebx
+ ;; size=12 bbWeight=0.50 PerfScore 1.62
+G_M55808_IG16:
+ jmp G_M55808_IG34
;; size=5 bbWeight=0.50 PerfScore 1.00
-G_M55808_IG20:
- movsxd r10, r9d
- mov r14, qword ptr [rbp-0x48]
- movzx r10, word ptr [r14+2*r10]
- movsxd r11, r8d
- mov r13, qword ptr [rbp-0x50]
- movzx r11, word ptr [r13+2*r11]
- cmp r10d, 128
+G_M55808_IG17:
+ movsxd r8, ecx
+ mov r13, qword ptr [rbp-0x48]
+ movzx r8, word ptr [r13+2*r8]
+ movsxd r9, esi
+ mov r10, qword ptr [rbp-0x50]
+ movzx r9, word ptr [r10+2*r9]
+ cmp r8d, 128
+ mov r10, qword ptr [rbp-0x50]
jge G_M55808_IG04
- mov esi, r10d
- mov rdi, 0xD1FFAB1E ; static handle
- cmp byte ptr [rsi+rdi], 0
+ mov r11d, r8d
+ mov r14, 0xD1FFAB1E ; static handle
+ cmp byte ptr [r11+r14], 0
jne G_M55808_IG04
- cmp r10d, r11d
- je SHORT G_M55808_IG26
- ;; size=66 bbWeight=32 PerfScore 432.00
+ cmp r8d, r9d
+ je SHORT G_M55808_IG23
+ ;; size=71 bbWeight=32 PerfScore 464.00
+G_M55808_IG18:
+ lea r11d, [r8-0x61]
+ cmp r11d, 25
+ ja SHORT G_M55808_IG20
+ ;; size=10 bbWeight=16 PerfScore 28.00
+G_M55808_IG19:
+ add r8d, -32
+ movzx r8, r8w
+ ;; size=8 bbWeight=8 PerfScore 4.00
+G_M55808_IG20:
+ lea r11d, [r9-0x61]
+ cmp r11d, 25
+ ja SHORT G_M55808_IG22
+ ;; size=10 bbWeight=16 PerfScore 28.00
G_M55808_IG21:
- lea edi, [r10-0x61]
- cmp edi, 25
- ja SHORT G_M55808_IG23
- ;; size=9 bbWeight=16 PerfScore 28.00
+ add r9d, -32
+ movzx r9, r9w
+ ;; size=8 bbWeight=8 PerfScore 4.00
G_M55808_IG22:
- add r10d, -32
- movzx r10, r10w
- ;; size=8 bbWeight=8 PerfScore 4.00
-G_M55808_IG23:
- lea edi, [r11-0x61]
- cmp edi, 25
- ja SHORT G_M55808_IG25
- ;; size=9 bbWeight=16 PerfScore 28.00
-G_M55808_IG24:
- add r11d, -32
- movzx r11, r11w
- ;; size=8 bbWeight=8 PerfScore 4.00
-G_M55808_IG25:
- cmp r10d, r11d
- jne SHORT G_M55808_IG27
+ cmp r8d, r9d
+ jne SHORT G_M55808_IG24
;; size=5 bbWeight=16 PerfScore 20.00
-G_M55808_IG26:
- inc r8d
- inc r9d
- cmp r8d, ebx
- jl SHORT G_M55808_IG20
- jmp G_M55808_IG17
- ;; size=16 bbWeight=16 PerfScore 60.00
-G_M55808_IG27:
- lea edi, [r15-0x01]
- cmp r9d, edi
- jge SHORT G_M55808_IG29
- ;; size=9 bbWeight=4 PerfScore 7.00
-G_M55808_IG28:
- movsxd rdi, r9d
- cmp word ptr [r14+2*rdi+0x02], 128
+G_M55808_IG23:
+ inc esi
+ inc ecx
+ cmp esi, ebx
+ jl SHORT G_M55808_IG17
+ jmp G_M55808_IG14
+ ;; size=13 bbWeight=16 PerfScore 60.00
+G_M55808_IG24:
+ lea esi, [r15-0x01]
+ cmp ecx, esi
+ jge SHORT G_M55808_IG26
+ ;; size=8 bbWeight=4 PerfScore 7.00
+G_M55808_IG25:
+ movsxd rsi, ecx
+ cmp word ptr [r13+2*rsi+0x02], 128
jae G_M55808_IG04
;; size=17 bbWeight=2 PerfScore 8.50
-G_M55808_IG29:
- add eax, ecx
+G_M55808_IG26:
+ add eax, edi
cmp eax, edx
- jne G_M55808_IG15
- jmp G_M55808_IG13
- ;; size=15 bbWeight=4 PerfScore 14.00
-G_M55808_IG30:
- mov r13, qword ptr [rbp-0x50]
- mov rdx, gword ptr [rbp-0xB0]
+ jne G_M55808_IG12
+ ;; size=10 bbWeight=4 PerfScore 6.00
+G_M55808_IG27:
+ mov eax, -1
+ jmp G_M55808_IG34
+ ;; size=10 bbWeight=0.50 PerfScore 1.12
+G_M55808_IG28:
+ mov rdx, 0xD1FFAB1E ; const ptr
+ mov rdx, gword ptr [rdx]
add rdx, 8
- mov rdi, r14
+ mov rdi, r13
mov esi, r15d
mov rax, 0xD1FFAB1E ; code for System.Buffers.IndexOfAnyAsciiSearcher:IndexOfAnyCore[ubyte,System.Buffers.IndexOfAnyAsciiSearcher+Negate,System.Buffers.IndexOfAnyAsciiSearcher+Default,System.Buffers.SearchValues+FalseConst,System.Buffers.IndexOfAnyAsciiSearcher+ContainsAnyResultMapper`1[short]](byref,int,byref):ubyte
call [rax]System.Buffers.IndexOfAnyAsciiSearcher:IndexOfAnyCore[ubyte,System.Buffers.IndexOfAnyAsciiSearcher+Negate,System.Buffers.IndexOfAnyAsciiSearcher+Default,System.Buffers.SearchValues+FalseConst,System.Buffers.IndexOfAnyAsciiSearcher+ContainsAnyResultMapper`1[short]](byref,int,byref):ubyte
test eax, eax
- mov r14, qword ptr [rbp-0x48]
+ mov r10, qword ptr [rbp-0x50]
+ mov r13, qword ptr [rbp-0x48]
jne G_M55808_IG04
- jmp G_M55808_IG14
- ;; size=50 bbWeight=0.50 PerfScore 5.12
-G_M55808_IG31:
- mov rax, qword ptr [rbp+0x10]
- mov qword ptr [rsp], rax
+ jmp SHORT G_M55808_IG27
+ ;; size=53 bbWeight=0.50 PerfScore 5.75
+G_M55808_IG29:
+ mov r14, qword ptr [rbp+0x10]
+ mov qword ptr [rsp], r14
mov rdi, qword ptr [r12+0x20]
- mov rsi, r13
+ mov rsi, r10
mov edx, ebx
- mov rcx, r14
+ mov rcx, r13
mov r8d, r15d
mov r9d, dword ptr [rbp-0x2C]
mov rax, 0xD1FFAB1E ; function address
mov qword ptr [rbp-0x80], rax
- lea rax, G_M55808_IG34
+ lea rax, G_M55808_IG32
mov qword ptr [rbp-0x70], rax
lea rax, [rbp-0x90]
mov r15, qword ptr [rbp-0x58]
mov qword ptr [r15+0x08], rax
mov byte ptr [r15+0x04], 0
;; size=73 bbWeight=0.50 PerfScore 6.38
-G_M55808_IG32:
+G_M55808_IG30:
mov rax, 0xD1FFAB1E ; function address
;; size=10 bbWeight=0.50 PerfScore 0.12
-G_M55808_IG33:
+G_M55808_IG31:
call rax ; Interop+Globalization:LastIndexOf(long,ulong,int,ulong,int,int,ulong):int
;; size=2 bbWeight=0.50 PerfScore 1.50
-G_M55808_IG34:
+G_M55808_IG32:
mov byte ptr [r15+0x04], 1
mov rcx, 0xD1FFAB1E ; function address
cmp dword ptr [rcx], 0
- je SHORT G_M55808_IG35
+ je SHORT G_M55808_IG33
mov rdi, 0xD1FFAB1E
call [rdi]CORINFO_HELP_STOP_FOR_GC
;; size=32 bbWeight=0.50 PerfScore 4.25
-G_M55808_IG35:
+G_M55808_IG33:
mov rdi, qword ptr [rbp-0x88]
mov qword ptr [r15+0x08], rdi
;; size=11 bbWeight=0.50 PerfScore 1.00
-G_M55808_IG36:
- add rsp, 152
+G_M55808_IG34:
+ add rsp, 120
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=18 bbWeight=1 PerfScore 4.25
-G_M55808_IG37:
- mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
- call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
- int3
- ;; size=13 bbWeight=0 PerfScore 0.00
+ ;; size=15 bbWeight=1 PerfScore 4.25
-; Total bytes of code 916, prolog size 57, PerfScore 706.75, instruction count 222, allocated bytes for code 916 (MethodHash=aa3c25ff) for method System.Globalization.CompareInfo:IndexOfOrdinalIgnoreCaseHelper(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int,ulong,ubyte):int:this (FullOpts)
+; Total bytes of code 775, prolog size 54, PerfScore 721.12, instruction count 193, allocated bytes for code 775 (MethodHash=aa3c25ff) for method System.Globalization.CompareInfo:IndexOfOrdinalIgnoreCaseHelper(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int,ulong,ubyte):int:this (FullOpts)
; ============================================================ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Job completed in 18 minutes 15 seconds.
https://github.com/MihaZupan/runtime/tree/indexof-revert
Diffs
Artifacts:
The text was updated successfully, but these errors were encountered: