Skip to content
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

[X64] [tomeksowi] [x64][SysV] Classify empty structs for passing like padding #470

Open
MihuBot opened this issue Jun 27, 2024 · 3 comments

Comments

@MihuBot
Copy link
Owner

MihuBot commented Jun 27, 2024

Job completed in 15 minutes.
dotnet/runtime#103799

Diffs

Diffs
Found 272 files with textual diffs.

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 41574989
Total bytes of diff: 41573710
Total bytes of delta: -1279 (-0.00 % of base)
Total relative delta: 2.75
    diff is an improvement.
    relative diff is a regression.


Top file regressions (bytes):
         296 : System.Private.CoreLib.dasm (0.00 % of base)
           4 : System.Text.Json.dasm (0.00 % of base)
           4 : System.ComponentModel.Annotations.dasm (0.01 % of base)

Top file improvements (bytes):
        -496 : System.Threading.Tasks.Dataflow.dasm (-0.04 % of base)
        -331 : System.Threading.RateLimiting.dasm (-0.19 % of base)
        -276 : Microsoft.Extensions.Hosting.dasm (-0.37 % of base)
        -267 : System.Threading.Tasks.Parallel.dasm (-0.10 % of base)
         -90 : System.IO.Pipelines.dasm (-0.11 % of base)
         -72 : System.Private.Xml.dasm (-0.00 % of base)
         -24 : System.Threading.Channels.dasm (-0.01 % of base)
         -24 : System.Security.Cryptography.dasm (-0.00 % of base)
          -3 : System.Formats.Tar.dasm (-0.00 % of base)

12 total files with Code Size differences (9 improved, 3 regressed), 247 unchanged.

Top method regressions (bytes):
          29 (80.56 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Url:EncodeToChars(System.ReadOnlySpan`1[ubyte],System.Span`1[ushort],byref,byref,ubyte):int (FullOpts)
          25 (56.82 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64:DecodeFromUtf8(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,byref,ubyte):int (FullOpts)
          25 (69.44 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64:EncodeToUtf8(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,byref,ubyte):int (FullOpts)
          25 (56.82 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Url:DecodeFromUtf8(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,byref,ubyte):int (FullOpts)
          25 (69.44 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Url:EncodeToUtf8(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,byref,ubyte):int (FullOpts)
          24 (54.55 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Url:DecodeFromChars(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte],byref,byref,ubyte):int (FullOpts)
          19 (12.93 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Url:EncodeToChars(System.ReadOnlySpan`1[ubyte],System.Span`1[ushort]):int (FullOpts)
          17 (32.69 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Url:TryEncodeToChars(System.ReadOnlySpan`1[ubyte],System.Span`1[ushort],byref):ubyte (FullOpts)
          16 (7.37 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Url:DecodeFromChars(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte]):int (FullOpts)
          16 (7.37 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Url:DecodeFromUtf8(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts)
          16 (10.88 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Url:EncodeToUtf8(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts)
          16 (6.75 % of base) : System.Private.CoreLib.dasm - System.Convert:ToBase64CharsLargeNoLineBreaks(System.ReadOnlySpan`1[ubyte],System.Span`1[ushort],int) (FullOpts)
          12 (9.23 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Url:TryDecodeFromChars(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte],byref):ubyte (FullOpts)
          12 (9.23 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Url:TryDecodeFromUtf8(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref):ubyte (FullOpts)
          12 (23.08 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Url:TryEncodeToUtf8(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref):ubyte (FullOpts)
           7 (29.17 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64:EncodeToUtf8InPlace(System.Span`1[ubyte],int,byref):int (FullOpts)
           7 (22.58 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Url:TryEncodeToUtf8InPlace(System.Span`1[ubyte],int,byref):ubyte (FullOpts)
           7 (6.31 % of base) : System.Private.CoreLib.dasm - System.Reflection.Metadata.TypeNameParser:.ctor(System.ReadOnlySpan`1[ushort],ubyte,System.Nullable`1[System.Reflection.Metadata.TypeNameParseOptions]):this (FullOpts)
           6 (20.69 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64:DecodeFromUtf8InPlace(System.Span`1[ubyte],byref):int (FullOpts)
           5 (20.83 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64:IsValid(System.ReadOnlySpan`1[ubyte],byref):ubyte (FullOpts)
           5 (20.83 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64:IsValid(System.ReadOnlySpan`1[ushort],byref):ubyte (FullOpts)
           5 (20.83 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Url:IsValid(System.ReadOnlySpan`1[ubyte],byref):ubyte (FullOpts)
           5 (20.83 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Url:IsValid(System.ReadOnlySpan`1[ushort],byref):ubyte (FullOpts)
           4 (4.76 % of base) : System.ComponentModel.Annotations.dasm - System.ComponentModel.DataAnnotations.Base64StringAttribute:IsValid(System.Object):ubyte:this (FullOpts)
           3 (4.62 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Url+<>c:<EncodeToString>b__22_0(System.Span`1[ushort],long):this (FullOpts)
           3 (0.88 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.ToBase64Transform:TransformBlock(ubyte[],int,int,ubyte[],int):int:this (FullOpts)
           3 (0.48 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonWriter:WriteBase64Indented(System.ReadOnlySpan`1[ubyte]):this (FullOpts)
           3 (0.66 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonWriter:WriteBase64Minimized(System.ReadOnlySpan`1[ubyte]):this (FullOpts)
           2 (7.14 % of base) : System.Private.CoreLib.dasm - System.Reflection.Metadata.TypeName:Parse(System.ReadOnlySpan`1[ushort],System.Nullable`1[System.Reflection.Metadata.TypeNameParseOptions]):System.Reflection.Metadata.TypeName (FullOpts)
           2 (0.27 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonWriter:WriteBase64Indented(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):this (FullOpts)
           2 (0.26 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonWriter:WriteBase64Indented(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte]):this (FullOpts)
           2 (0.35 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonWriter:WriteBase64Minimized(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):this (FullOpts)
           2 (0.34 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonWriter:WriteBase64Minimized(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte]):this (FullOpts)
           1 (0.25 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Url:DecodeFromChars(System.ReadOnlySpan`1[ushort]):ubyte[] (FullOpts)
           1 (0.25 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Url:DecodeFromUtf8(System.ReadOnlySpan`1[ubyte]):ubyte[] (FullOpts)
           1 (0.87 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Url:EncodeToUtf8(System.ReadOnlySpan`1[ubyte]):ubyte[] (FullOpts)
           1 (0.53 % of base) : System.Private.CoreLib.dasm - System.Reflection.Metadata.TypeNameParser:Parse(System.ReadOnlySpan`1[ushort],ubyte,System.Nullable`1[System.Reflection.Metadata.TypeNameParseOptions]):System.Reflection.Metadata.TypeName (FullOpts)
           1 (0.45 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.FromBase64Transform:ConvertFromBase64(System.Span`1[ubyte],System.Span`1[ubyte],byref,byref):this (FullOpts)
           1 (0.16 % of base) : System.Text.Json.dasm - System.Text.Json.JsonReaderHelper:TryDecodeBase64(System.ReadOnlySpan`1[ubyte],byref):ubyte (FullOpts)

Top method improvements (bytes):
         -54 (-2.16 % of base) : Microsoft.Extensions.Hosting.dasm - Microsoft.Extensions.Hosting.Internal.Host+<ForeachService>d__17`1[System.__Canon]:MoveNext():this (FullOpts)
         -54 (-2.65 % of base) : Microsoft.Extensions.Hosting.dasm - Microsoft.Extensions.Hosting.Internal.Host+<ForeachService>d__17`1[System.Nullable`1[int]]:MoveNext():this (FullOpts)
         -38 (-1.40 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+<Heartbeat>d__23[System.__Canon,System.Nullable`1[int]]:MoveNext():this (FullOpts)
         -33 (-1.65 % of base) : Microsoft.Extensions.Hosting.dasm - Microsoft.Extensions.Hosting.Internal.Host+<ForeachService>d__17`1[double]:MoveNext():this (FullOpts)
         -33 (-1.65 % of base) : Microsoft.Extensions.Hosting.dasm - Microsoft.Extensions.Hosting.Internal.Host+<ForeachService>d__17`1[int]:MoveNext():this (FullOpts)
         -33 (-1.65 % of base) : Microsoft.Extensions.Hosting.dasm - Microsoft.Extensions.Hosting.Internal.Host+<ForeachService>d__17`1[long]:MoveNext():this (FullOpts)
         -33 (-1.65 % of base) : Microsoft.Extensions.Hosting.dasm - Microsoft.Extensions.Hosting.Internal.Host+<ForeachService>d__17`1[short]:MoveNext():this (FullOpts)
         -33 (-1.65 % of base) : Microsoft.Extensions.Hosting.dasm - Microsoft.Extensions.Hosting.Internal.Host+<ForeachService>d__17`1[ubyte]:MoveNext():this (FullOpts)
         -23 (-1.81 % of base) : System.Threading.Tasks.Parallel.dasm - System.Threading.Tasks.Parallel+<>c__49`1+<<ForAsync>b__49_2>d[int]:MoveNext():this (FullOpts)
         -23 (-1.81 % of base) : System.Threading.Tasks.Parallel.dasm - System.Threading.Tasks.Parallel+<>c__49`1+<<ForAsync>b__49_2>d[long]:MoveNext():this (FullOpts)
         -23 (-1.78 % of base) : System.Threading.Tasks.Parallel.dasm - System.Threading.Tasks.Parallel+<>c__49`1+<<ForAsync>b__49_2>d[short]:MoveNext():this (FullOpts)
         -23 (-1.79 % of base) : System.Threading.Tasks.Parallel.dasm - System.Threading.Tasks.Parallel+<>c__49`1+<<ForAsync>b__49_2>d[ubyte]:MoveNext():this (FullOpts)
         -18 (-0.89 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+<DisposeAsyncCore>d__20[double,System.Nullable`1[int]]:MoveNext():this (FullOpts)
         -18 (-0.89 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+<DisposeAsyncCore>d__20[int,System.Nullable`1[int]]:MoveNext():this (FullOpts)
         -18 (-0.89 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+<DisposeAsyncCore>d__20[long,System.Nullable`1[int]]:MoveNext():this (FullOpts)
         -18 (-0.89 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+<DisposeAsyncCore>d__20[short,System.Nullable`1[int]]:MoveNext():this (FullOpts)
         -18 (-0.89 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+<DisposeAsyncCore>d__20[System.Nullable`1[int],System.Nullable`1[int]]:MoveNext():this (FullOpts)
         -18 (-0.89 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+<DisposeAsyncCore>d__20[System.Numerics.Vector`1[float],System.Nullable`1[int]]:MoveNext():this (FullOpts)
         -18 (-0.89 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+<DisposeAsyncCore>d__20[ubyte,System.Nullable`1[int]]:MoveNext():this (FullOpts)
         -17 (-2.34 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.X509CertificateLoader:LoadPkcs12Collection(byref,System.ReadOnlySpan`1[ushort],int):System.Security.Cryptography.X509Certificates.X509Certificate2Collection (FullOpts)
         -17 (-0.74 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+<Heartbeat>d__23[double,System.Nullable`1[int]]:MoveNext():this (FullOpts)
         -17 (-0.74 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+<Heartbeat>d__23[int,System.Nullable`1[int]]:MoveNext():this (FullOpts)
         -17 (-0.74 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+<Heartbeat>d__23[long,System.Nullable`1[int]]:MoveNext():this (FullOpts)
         -17 (-0.74 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+<Heartbeat>d__23[short,System.Nullable`1[int]]:MoveNext():this (FullOpts)
         -17 (-0.74 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+<Heartbeat>d__23[System.Nullable`1[int],System.Nullable`1[int]]:MoveNext():this (FullOpts)
         -17 (-0.74 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+<Heartbeat>d__23[System.Numerics.Vector`1[float],System.Nullable`1[int]]:MoveNext():this (FullOpts)
         -17 (-0.74 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+<Heartbeat>d__23[ubyte,System.Nullable`1[int]]:MoveNext():this (FullOpts)
         -16 (-0.67 % of base) : System.IO.Pipelines.dasm - System.IO.Pipelines.PipeReader+<CopyToAsyncCore>d__16`1[double]:MoveNext():this (FullOpts)
         -16 (-0.67 % of base) : System.IO.Pipelines.dasm - System.IO.Pipelines.PipeReader+<CopyToAsyncCore>d__16`1[long]:MoveNext():this (FullOpts)
         -16 (-0.67 % of base) : System.IO.Pipelines.dasm - System.IO.Pipelines.PipeReader+<CopyToAsyncCore>d__16`1[System.Nullable`1[int]]:MoveNext():this (FullOpts)
         -16 (-40.00 % of base) : System.Private.CoreLib.dasm - System.IO.Stream+<>c:<BeginEndWriteAsync>b__62_1(System.IO.Stream,System.IAsyncResult):System.Threading.Tasks.VoidTaskResult:this (FullOpts)
         -13 (-0.54 % of base) : System.IO.Pipelines.dasm - System.IO.Pipelines.PipeReader+<CopyToAsyncCore>d__16`1[int]:MoveNext():this (FullOpts)
         -13 (-0.54 % of base) : System.IO.Pipelines.dasm - System.IO.Pipelines.PipeReader+<CopyToAsyncCore>d__16`1[short]:MoveNext():this (FullOpts)
         -13 (-0.54 % of base) : System.IO.Pipelines.dasm - System.IO.Pipelines.PipeReader+<CopyToAsyncCore>d__16`1[ubyte]:MoveNext():this (FullOpts)
         -13 (-0.87 % of base) : System.Threading.Tasks.Parallel.dasm - System.Threading.Tasks.Parallel+<>c__53`1+<<ForEachAsync>b__53_0>d[double]:MoveNext():this (FullOpts)
         -13 (-0.87 % of base) : System.Threading.Tasks.Parallel.dasm - System.Threading.Tasks.Parallel+<>c__53`1+<<ForEachAsync>b__53_0>d[int]:MoveNext():this (FullOpts)
         -13 (-0.87 % of base) : System.Threading.Tasks.Parallel.dasm - System.Threading.Tasks.Parallel+<>c__53`1+<<ForEachAsync>b__53_0>d[long]:MoveNext():this (FullOpts)
         -13 (-0.87 % of base) : System.Threading.Tasks.Parallel.dasm - System.Threading.Tasks.Parallel+<>c__53`1+<<ForEachAsync>b__53_0>d[short]:MoveNext():this (FullOpts)
         -13 (-0.70 % of base) : System.Threading.Tasks.Parallel.dasm - System.Threading.Tasks.Parallel+<>c__53`1+<<ForEachAsync>b__53_0>d[System.__Canon]:MoveNext():this (FullOpts)
         -13 (-0.87 % of base) : System.Threading.Tasks.Parallel.dasm - System.Threading.Tasks.Parallel+<>c__53`1+<<ForEachAsync>b__53_0>d[System.Nullable`1[int]]:MoveNext():this (FullOpts)
         -13 (-0.87 % of base) : System.Threading.Tasks.Parallel.dasm - System.Threading.Tasks.Parallel+<>c__53`1+<<ForEachAsync>b__53_0>d[ubyte]:MoveNext():this (FullOpts)
         -13 (-0.57 % of base) : System.Threading.Tasks.Parallel.dasm - System.Threading.Tasks.Parallel+<>c__57`1+<<ForEachAsync>b__57_0>d[double]:MoveNext():this (FullOpts)
         -13 (-0.57 % of base) : System.Threading.Tasks.Parallel.dasm - System.Threading.Tasks.Parallel+<>c__57`1+<<ForEachAsync>b__57_0>d[int]:MoveNext():this (FullOpts)
         -13 (-0.57 % of base) : System.Threading.Tasks.Parallel.dasm - System.Threading.Tasks.Parallel+<>c__57`1+<<ForEachAsync>b__57_0>d[long]:MoveNext():this (FullOpts)
         -13 (-0.57 % of base) : System.Threading.Tasks.Parallel.dasm - System.Threading.Tasks.Parallel+<>c__57`1+<<ForEachAsync>b__57_0>d[short]:MoveNext():this (FullOpts)
         -13 (-0.57 % of base) : System.Threading.Tasks.Parallel.dasm - System.Threading.Tasks.Parallel+<>c__57`1+<<ForEachAsync>b__57_0>d[System.Nullable`1[int]]:MoveNext():this (FullOpts)
         -13 (-0.57 % of base) : System.Threading.Tasks.Parallel.dasm - System.Threading.Tasks.Parallel+<>c__57`1+<<ForEachAsync>b__57_0>d[ubyte]:MoveNext():this (FullOpts)
         -11 (-7.38 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.Common:CreateCachedTaskCompletionSource[System.Threading.Tasks.Dataflow.Internal.VoidResult]():System.Threading.Tasks.TaskCompletionSource`1[System.Threading.Tasks.Dataflow.Internal.VoidResult] (FullOpts)
         -11 (-0.49 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.TransformManyBlock`2+<StoreOutputItemsReorderedAsync>d__47[double,System.Nullable`1[int]]:MoveNext():this (FullOpts)
         -11 (-0.49 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.TransformManyBlock`2+<StoreOutputItemsReorderedAsync>d__47[int,System.Nullable`1[int]]:MoveNext():this (FullOpts)
         -11 (-0.49 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.TransformManyBlock`2+<StoreOutputItemsReorderedAsync>d__47[long,System.Nullable`1[int]]:MoveNext():this (FullOpts)
         -11 (-0.49 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.TransformManyBlock`2+<StoreOutputItemsReorderedAsync>d__47[short,System.Nullable`1[int]]:MoveNext():this (FullOpts)
         -11 (-0.49 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.TransformManyBlock`2+<StoreOutputItemsReorderedAsync>d__47[System.Nullable`1[int],System.Nullable`1[int]]:MoveNext():this (FullOpts)
         -11 (-0.49 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.TransformManyBlock`2+<StoreOutputItemsReorderedAsync>d__47[System.Numerics.Vector`1[float],System.Nullable`1[int]]:MoveNext():this (FullOpts)
         -11 (-0.49 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.TransformManyBlock`2+<StoreOutputItemsReorderedAsync>d__47[ubyte,System.Nullable`1[int]]:MoveNext():this (FullOpts)
         -10 (-1.19 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.BroadcastBlock`1+BroadcastingSourceCore`1[double,System.Nullable`1[int]]:CompleteBlockOncePossible():this (FullOpts)
         -10 (-1.19 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.BroadcastBlock`1+BroadcastingSourceCore`1[int,System.Nullable`1[int]]:CompleteBlockOncePossible():this (FullOpts)
         -10 (-1.19 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.BroadcastBlock`1+BroadcastingSourceCore`1[long,System.Nullable`1[int]]:CompleteBlockOncePossible():this (FullOpts)
         -10 (-1.19 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.BroadcastBlock`1+BroadcastingSourceCore`1[short,System.Nullable`1[int]]:CompleteBlockOncePossible():this (FullOpts)
         -10 (-1.19 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.BroadcastBlock`1+BroadcastingSourceCore`1[System.__Canon,System.Nullable`1[int]]:CompleteBlockOncePossible():this (FullOpts)
         -10 (-1.19 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.BroadcastBlock`1+BroadcastingSourceCore`1[System.Nullable`1[int],System.Nullable`1[int]]:CompleteBlockOncePossible():this (FullOpts)
         -10 (-1.19 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.BroadcastBlock`1+BroadcastingSourceCore`1[System.Numerics.Vector`1[float],System.Nullable`1[int]]:CompleteBlockOncePossible():this (FullOpts)
         -10 (-1.19 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.BroadcastBlock`1+BroadcastingSourceCore`1[ubyte,System.Nullable`1[int]]:CompleteBlockOncePossible():this (FullOpts)
         -10 (-1.23 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.SourceCore`1[double]:CompleteBlockOncePossible():this (FullOpts)
         -10 (-1.23 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.SourceCore`1[int]:CompleteBlockOncePossible():this (FullOpts)
         -10 (-1.23 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.SourceCore`1[long]:CompleteBlockOncePossible():this (FullOpts)
         -10 (-1.23 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.SourceCore`1[short]:CompleteBlockOncePossible():this (FullOpts)
         -10 (-1.21 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.SourceCore`1[System.__Canon]:CompleteBlockOncePossible():this (FullOpts)
         -10 (-1.23 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.SourceCore`1[System.Nullable`1[int]]:CompleteBlockOncePossible():this (FullOpts)
         -10 (-1.07 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.SourceCore`1[System.Numerics.Vector`1[float]]:CompleteBlockOncePossible():this (FullOpts)
         -10 (-1.23 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.SourceCore`1[ubyte]:CompleteBlockOncePossible():this (FullOpts)
          -9 (-8.91 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonWriter:Base64EncodeAndWrite(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):this (FullOpts)
          -8 (-1.81 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.JoinBlockTarget`1[System.__Canon]:CompleteOncePossible():this (FullOpts)
          -6 (-3.41 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.BatchBlock`1+BatchBlockTargetCore+<>c[double]:<CompleteBlockIfPossible>b__26_0(System.Object):this (FullOpts)
          -6 (-3.41 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.BatchBlock`1+BatchBlockTargetCore+<>c[int]:<CompleteBlockIfPossible>b__26_0(System.Object):this (FullOpts)
          -6 (-3.41 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.BatchBlock`1+BatchBlockTargetCore+<>c[long]:<CompleteBlockIfPossible>b__26_0(System.Object):this (FullOpts)
          -6 (-3.41 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.BatchBlock`1+BatchBlockTargetCore+<>c[short]:<CompleteBlockIfPossible>b__26_0(System.Object):this (FullOpts)
          -6 (-3.41 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.BatchBlock`1+BatchBlockTargetCore+<>c[System.Nullable`1[int]]:<CompleteBlockIfPossible>b__26_0(System.Object):this (FullOpts)
          -6 (-3.41 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.BatchBlock`1+BatchBlockTargetCore+<>c[System.Numerics.Vector`1[float]]:<CompleteBlockIfPossible>b__26_0(System.Object):this (FullOpts)
          -6 (-3.41 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.BatchBlock`1+BatchBlockTargetCore+<>c[ubyte]:<CompleteBlockIfPossible>b__26_0(System.Object):this (FullOpts)
          -6 (-0.82 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.WriteOnceBlock`1[double]:CompleteBlock(System.Collections.Generic.IList`1[System.Exception]):this (FullOpts)
          -6 (-0.82 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.WriteOnceBlock`1[int]:CompleteBlock(System.Collections.Generic.IList`1[System.Exception]):this (FullOpts)
          -6 (-0.82 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.WriteOnceBlock`1[long]:CompleteBlock(System.Collections.Generic.IList`1[System.Exception]):this (FullOpts)
          -6 (-0.82 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.WriteOnceBlock`1[short]:CompleteBlock(System.Collections.Generic.IList`1[System.Exception]):this (FullOpts)
          -6 (-0.82 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.WriteOnceBlock`1[System.__Canon]:CompleteBlock(System.Collections.Generic.IList`1[System.Exception]):this (FullOpts)
          -6 (-0.82 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.WriteOnceBlock`1[System.Nullable`1[int]]:CompleteBlock(System.Collections.Generic.IList`1[System.Exception]):this (FullOpts)
          -6 (-0.82 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.WriteOnceBlock`1[System.Numerics.Vector`1[float]]:CompleteBlock(System.Collections.Generic.IList`1[System.Exception]):this (FullOpts)
          -6 (-0.82 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.WriteOnceBlock`1[ubyte]:CompleteBlock(System.Collections.Generic.IList`1[System.Exception]):this (FullOpts)
          -5 (-1.77 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.PemEncoding:TryCountBase64(System.ReadOnlySpan`1[ushort],byref,byref,byref):ubyte (FullOpts)
          -5 (-1.18 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.X509CertificateLoader:LoadPkcs12(byref,System.ReadOnlySpan`1[ushort],int):System.Security.Cryptography.X509Certificates.X509CertificateLoader+Pkcs12Return (FullOpts)
          -5 (-1.36 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.JoinBlockTarget`1[double]:CompleteOncePossible():this (FullOpts)
          -5 (-1.36 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.JoinBlockTarget`1[int]:CompleteOncePossible():this (FullOpts)
          -5 (-1.36 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.JoinBlockTarget`1[long]:CompleteOncePossible():this (FullOpts)
          -5 (-1.36 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.JoinBlockTarget`1[short]:CompleteOncePossible():this (FullOpts)
          -5 (-1.36 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.JoinBlockTarget`1[System.Nullable`1[int]]:CompleteOncePossible():this (FullOpts)
          -5 (-1.36 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.JoinBlockTarget`1[System.Numerics.Vector`1[float]]:CompleteOncePossible():this (FullOpts)
          -5 (-1.36 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.JoinBlockTarget`1[ubyte]:CompleteOncePossible():this (FullOpts)
          -5 (-1.52 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.SpscTargetCore`1[double]:CompleteBlockOncePossible():this (FullOpts)
          -5 (-1.52 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.SpscTargetCore`1[int]:CompleteBlockOncePossible():this (FullOpts)
          -5 (-1.52 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.SpscTargetCore`1[long]:CompleteBlockOncePossible():this (FullOpts)

Top method regressions (percentages):
          29 (80.56 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Url:EncodeToChars(System.ReadOnlySpan`1[ubyte],System.Span`1[ushort],byref,byref,ubyte):int (FullOpts)
          25 (69.44 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64:EncodeToUtf8(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,byref,ubyte):int (FullOpts)
          25 (69.44 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Url:EncodeToUtf8(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,byref,ubyte):int (FullOpts)
          25 (56.82 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64:DecodeFromUtf8(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,byref,ubyte):int (FullOpts)
          25 (56.82 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Url:DecodeFromUtf8(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,byref,ubyte):int (FullOpts)
          24 (54.55 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Url:DecodeFromChars(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte],byref,byref,ubyte):int (FullOpts)
          17 (32.69 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Url:TryEncodeToChars(System.ReadOnlySpan`1[ubyte],System.Span`1[ushort],byref):ubyte (FullOpts)
           7 (29.17 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64:EncodeToUtf8InPlace(System.Span`1[ubyte],int,byref):int (FullOpts)
          12 (23.08 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Url:TryEncodeToUtf8(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref):ubyte (FullOpts)
           7 (22.58 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Url:TryEncodeToUtf8InPlace(System.Span`1[ubyte],int,byref):ubyte (FullOpts)
           5 (20.83 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64:IsValid(System.ReadOnlySpan`1[ubyte],byref):ubyte (FullOpts)
           5 (20.83 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64:IsValid(System.ReadOnlySpan`1[ushort],byref):ubyte (FullOpts)
           5 (20.83 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Url:IsValid(System.ReadOnlySpan`1[ubyte],byref):ubyte (FullOpts)
           5 (20.83 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Url:IsValid(System.ReadOnlySpan`1[ushort],byref):ubyte (FullOpts)
           6 (20.69 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64:DecodeFromUtf8InPlace(System.Span`1[ubyte],byref):int (FullOpts)
          19 (12.93 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Url:EncodeToChars(System.ReadOnlySpan`1[ubyte],System.Span`1[ushort]):int (FullOpts)
          16 (10.88 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Url:EncodeToUtf8(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts)
          12 (9.23 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Url:TryDecodeFromChars(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte],byref):ubyte (FullOpts)
          12 (9.23 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Url:TryDecodeFromUtf8(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref):ubyte (FullOpts)
          16 (7.37 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Url:DecodeFromChars(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte]):int (FullOpts)
          16 (7.37 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Url:DecodeFromUtf8(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts)
           2 (7.14 % of base) : System.Private.CoreLib.dasm - System.Reflection.Metadata.TypeName:Parse(System.ReadOnlySpan`1[ushort],System.Nullable`1[System.Reflection.Metadata.TypeNameParseOptions]):System.Reflection.Metadata.TypeName (FullOpts)
          16 (6.75 % of base) : System.Private.CoreLib.dasm - System.Convert:ToBase64CharsLargeNoLineBreaks(System.ReadOnlySpan`1[ubyte],System.Span`1[ushort],int) (FullOpts)
           7 (6.31 % of base) : System.Private.CoreLib.dasm - System.Reflection.Metadata.TypeNameParser:.ctor(System.ReadOnlySpan`1[ushort],ubyte,System.Nullable`1[System.Reflection.Metadata.TypeNameParseOptions]):this (FullOpts)
           4 (4.76 % of base) : System.ComponentModel.Annotations.dasm - System.ComponentModel.DataAnnotations.Base64StringAttribute:IsValid(System.Object):ubyte:this (FullOpts)
           3 (4.62 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Url+<>c:<EncodeToString>b__22_0(System.Span`1[ushort],long):this (FullOpts)
           3 (0.88 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.ToBase64Transform:TransformBlock(ubyte[],int,int,ubyte[],int):int:this (FullOpts)
           1 (0.87 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Url:EncodeToUtf8(System.ReadOnlySpan`1[ubyte]):ubyte[] (FullOpts)
           3 (0.66 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonWriter:WriteBase64Minimized(System.ReadOnlySpan`1[ubyte]):this (FullOpts)
           1 (0.53 % of base) : System.Private.CoreLib.dasm - System.Reflection.Metadata.TypeNameParser:Parse(System.ReadOnlySpan`1[ushort],ubyte,System.Nullable`1[System.Reflection.Metadata.TypeNameParseOptions]):System.Reflection.Metadata.TypeName (FullOpts)
           3 (0.48 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonWriter:WriteBase64Indented(System.ReadOnlySpan`1[ubyte]):this (FullOpts)
           1 (0.45 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.FromBase64Transform:ConvertFromBase64(System.Span`1[ubyte],System.Span`1[ubyte],byref,byref):this (FullOpts)
           2 (0.35 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonWriter:WriteBase64Minimized(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):this (FullOpts)
           2 (0.34 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonWriter:WriteBase64Minimized(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte]):this (FullOpts)
           2 (0.27 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonWriter:WriteBase64Indented(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):this (FullOpts)
           2 (0.26 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonWriter:WriteBase64Indented(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte]):this (FullOpts)
           1 (0.25 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Url:DecodeFromChars(System.ReadOnlySpan`1[ushort]):ubyte[] (FullOpts)
           1 (0.25 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Url:DecodeFromUtf8(System.ReadOnlySpan`1[ubyte]):ubyte[] (FullOpts)
           1 (0.16 % of base) : System.Text.Json.dasm - System.Text.Json.JsonReaderHelper:TryDecodeBase64(System.ReadOnlySpan`1[ubyte],byref):ubyte (FullOpts)

Top method improvements (percentages):
          -4 (-57.14 % of base) : System.Private.CoreLib.dasm - System.Runtime.CompilerServices.YieldAwaitable:GetAwaiter():System.Runtime.CompilerServices.YieldAwaitable+YieldAwaiter:this (FullOpts)
          -4 (-57.14 % of base) : System.Private.CoreLib.dasm - System.Threading.Tasks.Task:Yield():System.Runtime.CompilerServices.YieldAwaitable (FullOpts)
          -4 (-57.14 % of base) : System.Private.CoreLib.dasm - System.ValueTuple:Create():System.ValueTuple (FullOpts)
         -16 (-40.00 % of base) : System.Private.CoreLib.dasm - System.IO.Stream+<>c:<BeginEndWriteAsync>b__62_1(System.IO.Stream,System.IAsyncResult):System.Threading.Tasks.VoidTaskResult:this (FullOpts)
          -9 (-8.91 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonWriter:Base64EncodeAndWrite(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):this (FullOpts)
         -11 (-7.38 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.Common:CreateCachedTaskCompletionSource[System.Threading.Tasks.Dataflow.Internal.VoidResult]():System.Threading.Tasks.TaskCompletionSource`1[System.Threading.Tasks.Dataflow.Internal.VoidResult] (FullOpts)
          -2 (-6.25 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64:IsValid(System.ReadOnlySpan`1[ubyte]):ubyte (FullOpts)
          -2 (-6.25 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64:IsValid(System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
          -2 (-6.25 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Url:IsValid(System.ReadOnlySpan`1[ubyte]):ubyte (FullOpts)
          -2 (-6.25 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Url:IsValid(System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
          -6 (-3.41 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.BatchBlock`1+BatchBlockTargetCore+<>c[double]:<CompleteBlockIfPossible>b__26_0(System.Object):this (FullOpts)
          -6 (-3.41 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.BatchBlock`1+BatchBlockTargetCore+<>c[int]:<CompleteBlockIfPossible>b__26_0(System.Object):this (FullOpts)
          -6 (-3.41 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.BatchBlock`1+BatchBlockTargetCore+<>c[long]:<CompleteBlockIfPossible>b__26_0(System.Object):this (FullOpts)
          -6 (-3.41 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.BatchBlock`1+BatchBlockTargetCore+<>c[short]:<CompleteBlockIfPossible>b__26_0(System.Object):this (FullOpts)
          -6 (-3.41 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.BatchBlock`1+BatchBlockTargetCore+<>c[System.Nullable`1[int]]:<CompleteBlockIfPossible>b__26_0(System.Object):this (FullOpts)
          -6 (-3.41 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.BatchBlock`1+BatchBlockTargetCore+<>c[System.Numerics.Vector`1[float]]:<CompleteBlockIfPossible>b__26_0(System.Object):this (FullOpts)
          -6 (-3.41 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.BatchBlock`1+BatchBlockTargetCore+<>c[ubyte]:<CompleteBlockIfPossible>b__26_0(System.Object):this (FullOpts)
         -54 (-2.65 % of base) : Microsoft.Extensions.Hosting.dasm - Microsoft.Extensions.Hosting.Internal.Host+<ForeachService>d__17`1[System.Nullable`1[int]]:MoveNext():this (FullOpts)
         -17 (-2.34 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.X509CertificateLoader:LoadPkcs12Collection(byref,System.ReadOnlySpan`1[ushort],int):System.Security.Cryptography.X509Certificates.X509Certificate2Collection (FullOpts)
         -54 (-2.16 % of base) : Microsoft.Extensions.Hosting.dasm - Microsoft.Extensions.Hosting.Internal.Host+<ForeachService>d__17`1[System.__Canon]:MoveNext():this (FullOpts)
          -8 (-1.81 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.JoinBlockTarget`1[System.__Canon]:CompleteOncePossible():this (FullOpts)
         -23 (-1.81 % of base) : System.Threading.Tasks.Parallel.dasm - System.Threading.Tasks.Parallel+<>c__49`1+<<ForAsync>b__49_2>d[int]:MoveNext():this (FullOpts)
         -23 (-1.81 % of base) : System.Threading.Tasks.Parallel.dasm - System.Threading.Tasks.Parallel+<>c__49`1+<<ForAsync>b__49_2>d[long]:MoveNext():this (FullOpts)
         -23 (-1.79 % of base) : System.Threading.Tasks.Parallel.dasm - System.Threading.Tasks.Parallel+<>c__49`1+<<ForAsync>b__49_2>d[ubyte]:MoveNext():this (FullOpts)
         -23 (-1.78 % of base) : System.Threading.Tasks.Parallel.dasm - System.Threading.Tasks.Parallel+<>c__49`1+<<ForAsync>b__49_2>d[short]:MoveNext():this (FullOpts)
          -5 (-1.77 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.PemEncoding:TryCountBase64(System.ReadOnlySpan`1[ushort],byref,byref,byref):ubyte (FullOpts)
         -33 (-1.65 % of base) : Microsoft.Extensions.Hosting.dasm - Microsoft.Extensions.Hosting.Internal.Host+<ForeachService>d__17`1[int]:MoveNext():this (FullOpts)
         -33 (-1.65 % of base) : Microsoft.Extensions.Hosting.dasm - Microsoft.Extensions.Hosting.Internal.Host+<ForeachService>d__17`1[short]:MoveNext():this (FullOpts)
         -33 (-1.65 % of base) : Microsoft.Extensions.Hosting.dasm - Microsoft.Extensions.Hosting.Internal.Host+<ForeachService>d__17`1[ubyte]:MoveNext():this (FullOpts)
         -33 (-1.65 % of base) : Microsoft.Extensions.Hosting.dasm - Microsoft.Extensions.Hosting.Internal.Host+<ForeachService>d__17`1[double]:MoveNext():this (FullOpts)
         -33 (-1.65 % of base) : Microsoft.Extensions.Hosting.dasm - Microsoft.Extensions.Hosting.Internal.Host+<ForeachService>d__17`1[long]:MoveNext():this (FullOpts)
          -5 (-1.52 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.SpscTargetCore`1[double]:CompleteBlockOncePossible():this (FullOpts)
          -5 (-1.52 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.SpscTargetCore`1[int]:CompleteBlockOncePossible():this (FullOpts)
          -5 (-1.52 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.SpscTargetCore`1[long]:CompleteBlockOncePossible():this (FullOpts)
          -5 (-1.52 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.SpscTargetCore`1[short]:CompleteBlockOncePossible():this (FullOpts)
          -5 (-1.52 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.SpscTargetCore`1[System.Nullable`1[int]]:CompleteBlockOncePossible():this (FullOpts)
          -5 (-1.52 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.SpscTargetCore`1[ubyte]:CompleteBlockOncePossible():this (FullOpts)
          -5 (-1.50 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.SpscTargetCore`1[System.__Canon]:CompleteBlockOncePossible():this (FullOpts)
         -38 (-1.40 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+<Heartbeat>d__23[System.__Canon,System.Nullable`1[int]]:MoveNext():this (FullOpts)
          -5 (-1.36 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.JoinBlockTarget`1[double]:CompleteOncePossible():this (FullOpts)
          -5 (-1.36 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.JoinBlockTarget`1[int]:CompleteOncePossible():this (FullOpts)
          -5 (-1.36 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.JoinBlockTarget`1[long]:CompleteOncePossible():this (FullOpts)
          -5 (-1.36 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.JoinBlockTarget`1[short]:CompleteOncePossible():this (FullOpts)
          -5 (-1.36 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.JoinBlockTarget`1[System.Nullable`1[int]]:CompleteOncePossible():this (FullOpts)
          -5 (-1.36 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.JoinBlockTarget`1[System.Numerics.Vector`1[float]]:CompleteOncePossible():this (FullOpts)
          -5 (-1.36 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.JoinBlockTarget`1[ubyte]:CompleteOncePossible():this (FullOpts)
          -3 (-1.27 % of base) : System.Private.CoreLib.dasm - System.Reflection.TypeNameResolver:GetType(System.String,ubyte,ubyte,System.Reflection.Assembly):System.Type (FullOpts)
          -3 (-1.25 % of base) : System.Private.CoreLib.dasm - System.Reflection.TypeNameResolver:GetTypeReferencedByCustomAttribute(System.String,System.Reflection.RuntimeModule):System.RuntimeType (FullOpts)
         -10 (-1.23 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.SourceCore`1[double]:CompleteBlockOncePossible():this (FullOpts)
         -10 (-1.23 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.SourceCore`1[int]:CompleteBlockOncePossible():this (FullOpts)
         -10 (-1.23 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.SourceCore`1[long]:CompleteBlockOncePossible():this (FullOpts)
         -10 (-1.23 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.SourceCore`1[short]:CompleteBlockOncePossible():this (FullOpts)
         -10 (-1.23 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.SourceCore`1[System.Nullable`1[int]]:CompleteBlockOncePossible():this (FullOpts)
         -10 (-1.23 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.SourceCore`1[ubyte]:CompleteBlockOncePossible():this (FullOpts)
         -10 (-1.21 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.SourceCore`1[System.__Canon]:CompleteBlockOncePossible():this (FullOpts)
         -10 (-1.19 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.BroadcastBlock`1+BroadcastingSourceCore`1[double,System.Nullable`1[int]]:CompleteBlockOncePossible():this (FullOpts)
         -10 (-1.19 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.BroadcastBlock`1+BroadcastingSourceCore`1[int,System.Nullable`1[int]]:CompleteBlockOncePossible():this (FullOpts)
         -10 (-1.19 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.BroadcastBlock`1+BroadcastingSourceCore`1[long,System.Nullable`1[int]]:CompleteBlockOncePossible():this (FullOpts)
         -10 (-1.19 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.BroadcastBlock`1+BroadcastingSourceCore`1[short,System.Nullable`1[int]]:CompleteBlockOncePossible():this (FullOpts)
         -10 (-1.19 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.BroadcastBlock`1+BroadcastingSourceCore`1[System.__Canon,System.Nullable`1[int]]:CompleteBlockOncePossible():this (FullOpts)
         -10 (-1.19 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.BroadcastBlock`1+BroadcastingSourceCore`1[System.Nullable`1[int],System.Nullable`1[int]]:CompleteBlockOncePossible():this (FullOpts)
         -10 (-1.19 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.BroadcastBlock`1+BroadcastingSourceCore`1[System.Numerics.Vector`1[float],System.Nullable`1[int]]:CompleteBlockOncePossible():this (FullOpts)
         -10 (-1.19 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.BroadcastBlock`1+BroadcastingSourceCore`1[ubyte,System.Nullable`1[int]]:CompleteBlockOncePossible():this (FullOpts)
          -5 (-1.18 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.SpscTargetCore`1[System.Numerics.Vector`1[float]]:CompleteBlockOncePossible():this (FullOpts)
          -5 (-1.18 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.X509CertificateLoader:LoadPkcs12(byref,System.ReadOnlySpan`1[ushort],int):System.Security.Cryptography.X509Certificates.X509CertificateLoader+Pkcs12Return (FullOpts)
         -10 (-1.07 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.SourceCore`1[System.Numerics.Vector`1[float]]:CompleteBlockOncePossible():this (FullOpts)
          -3 (-1.06 % of base) : System.Private.CoreLib.dasm - System.Reflection.TypeNameResolver:GetType(System.String,System.Func`2[System.Reflection.AssemblyName,System.Reflection.Assembly],System.Func`4[System.Reflection.Assembly,System.String,ubyte,System.Type],System.Reflection.Assembly,ubyte,ubyte,ubyte):System.Type (FullOpts)
          -3 (-1.05 % of base) : System.Private.CoreLib.dasm - System.Reflection.TypeNameResolver:GetTypeHelper(ulong,System.Reflection.RuntimeAssembly,ubyte,ubyte):System.RuntimeType (FullOpts)
          -3 (-1.05 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.BatchBlock`1+BatchBlockTargetCore+<>c[System.__Canon]:<CompleteBlockIfPossible>b__26_0(System.Object):this (FullOpts)
         -18 (-0.89 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+<DisposeAsyncCore>d__20[double,System.Nullable`1[int]]:MoveNext():this (FullOpts)
         -18 (-0.89 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+<DisposeAsyncCore>d__20[int,System.Nullable`1[int]]:MoveNext():this (FullOpts)
         -18 (-0.89 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+<DisposeAsyncCore>d__20[long,System.Nullable`1[int]]:MoveNext():this (FullOpts)
         -18 (-0.89 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+<DisposeAsyncCore>d__20[short,System.Nullable`1[int]]:MoveNext():this (FullOpts)
         -18 (-0.89 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+<DisposeAsyncCore>d__20[System.Nullable`1[int],System.Nullable`1[int]]:MoveNext():this (FullOpts)
         -18 (-0.89 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+<DisposeAsyncCore>d__20[System.Numerics.Vector`1[float],System.Nullable`1[int]]:MoveNext():this (FullOpts)
         -18 (-0.89 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+<DisposeAsyncCore>d__20[ubyte,System.Nullable`1[int]]:MoveNext():this (FullOpts)
         -13 (-0.87 % of base) : System.Threading.Tasks.Parallel.dasm - System.Threading.Tasks.Parallel+<>c__53`1+<<ForEachAsync>b__53_0>d[int]:MoveNext():this (FullOpts)
         -13 (-0.87 % of base) : System.Threading.Tasks.Parallel.dasm - System.Threading.Tasks.Parallel+<>c__53`1+<<ForEachAsync>b__53_0>d[short]:MoveNext():this (FullOpts)
         -13 (-0.87 % of base) : System.Threading.Tasks.Parallel.dasm - System.Threading.Tasks.Parallel+<>c__53`1+<<ForEachAsync>b__53_0>d[ubyte]:MoveNext():this (FullOpts)
          -2 (-0.87 % of base) : System.Text.Json.dasm - System.Text.Json.JsonReaderHelper:TryDecodeBase64InPlace(System.Span`1[ubyte],byref):ubyte (FullOpts)
         -13 (-0.87 % of base) : System.Threading.Tasks.Parallel.dasm - System.Threading.Tasks.Parallel+<>c__53`1+<<ForEachAsync>b__53_0>d[long]:MoveNext():this (FullOpts)
         -13 (-0.87 % of base) : System.Threading.Tasks.Parallel.dasm - System.Threading.Tasks.Parallel+<>c__53`1+<<ForEachAsync>b__53_0>d[System.Nullable`1[int]]:MoveNext():this (FullOpts)
         -13 (-0.87 % of base) : System.Threading.Tasks.Parallel.dasm - System.Threading.Tasks.Parallel+<>c__53`1+<<ForEachAsync>b__53_0>d[double]:MoveNext():this (FullOpts)
          -1 (-0.85 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Url:EncodeToChars(System.ReadOnlySpan`1[ubyte]):ushort[] (FullOpts)
          -6 (-0.82 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.WriteOnceBlock`1[double]:CompleteBlock(System.Collections.Generic.IList`1[System.Exception]):this (FullOpts)
          -6 (-0.82 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.WriteOnceBlock`1[int]:CompleteBlock(System.Collections.Generic.IList`1[System.Exception]):this (FullOpts)
          -6 (-0.82 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.WriteOnceBlock`1[long]:CompleteBlock(System.Collections.Generic.IList`1[System.Exception]):this (FullOpts)
          -6 (-0.82 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.WriteOnceBlock`1[short]:CompleteBlock(System.Collections.Generic.IList`1[System.Exception]):this (FullOpts)
          -6 (-0.82 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.WriteOnceBlock`1[System.__Canon]:CompleteBlock(System.Collections.Generic.IList`1[System.Exception]):this (FullOpts)
          -6 (-0.82 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.WriteOnceBlock`1[System.Nullable`1[int]]:CompleteBlock(System.Collections.Generic.IList`1[System.Exception]):this (FullOpts)
          -6 (-0.82 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.WriteOnceBlock`1[System.Numerics.Vector`1[float]]:CompleteBlock(System.Collections.Generic.IList`1[System.Exception]):this (FullOpts)
          -6 (-0.82 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.WriteOnceBlock`1[ubyte]:CompleteBlock(System.Collections.Generic.IList`1[System.Exception]):this (FullOpts)
         -17 (-0.74 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+<Heartbeat>d__23[double,System.Nullable`1[int]]:MoveNext():this (FullOpts)
         -17 (-0.74 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+<Heartbeat>d__23[int,System.Nullable`1[int]]:MoveNext():this (FullOpts)
         -17 (-0.74 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+<Heartbeat>d__23[long,System.Nullable`1[int]]:MoveNext():this (FullOpts)
         -17 (-0.74 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+<Heartbeat>d__23[short,System.Nullable`1[int]]:MoveNext():this (FullOpts)
         -17 (-0.74 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+<Heartbeat>d__23[System.Nullable`1[int],System.Nullable`1[int]]:MoveNext():this (FullOpts)
         -17 (-0.74 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+<Heartbeat>d__23[System.Numerics.Vector`1[float],System.Nullable`1[int]]:MoveNext():this (FullOpts)
         -17 (-0.74 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+<Heartbeat>d__23[ubyte,System.Nullable`1[int]]:MoveNext():this (FullOpts)
         -13 (-0.70 % of base) : System.Threading.Tasks.Parallel.dasm - System.Threading.Tasks.Parallel+<>c__53`1+<<ForEachAsync>b__53_0>d[System.__Canon]:MoveNext():this (FullOpts)

236 total methods with Code Size differences (197 improved, 39 regressed), 251996 unchanged.

--------------------------------------------------------------------------------

Artifacts:

@MihuBot
Copy link
Owner Author

MihuBot commented Jun 27, 2024

Top method regressions

29 (80.56 % of base) - System.Buffers.Text.Base64Url:EncodeToChars(System.ReadOnlySpan`1[ubyte],System.Span`1[ushort],byref,byref,ubyte):int
 ; Assembly listing for method System.Buffers.Text.Base64Url:EncodeToChars(System.ReadOnlySpan`1[ubyte],System.Span`1[ushort],byref,byref,ubyte):int (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rsp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.ReadOnlySpan`1[ubyte]>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Span`1[ushort]>
-;  V02 arg2         [V02,T00] (  3,  3   )   byref  ->   r8         single-def
+;  V02 arg2         [V02,T00] (  3,  3   )   byref  ->  rax         single-def
 ;  V03 arg3         [V03,T01] (  3,  3   )   byref  ->   r9         single-def
 ;  V04 arg4         [V04,T11] (  1,  1   )   ubyte  ->  [rsp+0x20]  single-def
 ;* V05 loc0         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Buffers.Text.Base64Url+Base64UrlEncoderChar>
 ;  V06 OutArgs      [V06    ] (  1,  1   )  struct (16) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V07 tmp1         [V07,T10] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[S] "impAppendStmt" <System.Buffers.Text.Base64Url+Base64UrlEncoderChar>
 ;* V08 tmp2         [V08    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
 ;* V09 tmp3         [V09    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V10 tmp4         [V10    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V11 tmp5         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V12 tmp6         [V12    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;  V13 tmp7         [V13,T08] (  2,  2   )     int  ->  rcx         "Inline stloc first use temp"
 ;* V14 tmp8         [V14    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
 ;* V15 tmp9         [V15    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;  V16 tmp10        [V16,T02] (  2,  2   )   byref  ->  rdi         single-def "field V00._reference (fldOffset=0x0)" P-INDEP
-;  V17 tmp11        [V17,T04] (  2,  2   )     int  ->  rsi         single-def "field V00._length (fldOffset=0x8)" P-INDEP
+;  V17 tmp11        [V17,T04] (  2,  2   )     int  ->   r8         single-def "field V00._length (fldOffset=0x8)" P-INDEP
 ;  V18 tmp12        [V18,T03] (  2,  2   )   byref  ->  rdx         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
 ;  V19 tmp13        [V19,T05] (  2,  2   )     int  ->  rcx         single-def "field V01._length (fldOffset=0x8)" P-INDEP
 ;* V20 tmp14        [V20    ] (  0,  0   )   byref  ->  zero-ref    "field V08._reference (fldOffset=0x0)" P-INDEP
 ;* V21 tmp15        [V21    ] (  0,  0   )     int  ->  zero-ref    "field V08._length (fldOffset=0x8)" P-INDEP
 ;  V22 tmp16        [V22,T06] (  2,  2   )   byref  ->  rdx         single-def "field V11._reference (fldOffset=0x0)" P-INDEP
 ;* V23 tmp17        [V23    ] (  0,  0   )     int  ->  zero-ref    "field V11._length (fldOffset=0x8)" P-INDEP
-;  V24 tmp18        [V24,T07] (  2,  2   )   byref  ->  rdx         single-def "field V14._reference (fldOffset=0x0)" P-INDEP
-;  V25 tmp19        [V25,T09] (  2,  2   )     int  ->  rcx         "field V14._length (fldOffset=0x8)" P-INDEP
+;  V24 tmp18        [V24,T07] (  2,  2   )   byref  ->  r10         single-def "field V14._reference (fldOffset=0x0)" P-INDEP
+;  V25 tmp19        [V25,T09] (  2,  2   )     int  ->  r11         "field V14._length (fldOffset=0x8)" P-INDEP
 ;
 ; Lcl frame size = 24
 
 G_M58470_IG01:
        sub      rsp, 24
-						;; size=4 bbWeight=1 PerfScore 0.25
+       mov      rax, r8
+       mov      r8d, esi
+						;; size=10 bbWeight=1 PerfScore 0.75
 G_M58470_IG02:
-       xor      eax, eax
-       mov      dword ptr [rsp], eax
-       movzx    rax, byte  ptr [rsp+0x20]
-       mov      dword ptr [rsp+0x08], eax
+       mov      r10, rdx
+       mov      r11d, ecx
+       mov      bword ptr [rsp], r9
+       movzx    rsi, byte  ptr [rsp+0x20]
+       mov      dword ptr [rsp+0x08], esi
+       mov      rsi, rdi
+       mov      edx, r8d
+       mov      rcx, r10
+       mov      r8d, r11d
+       xor      edi, edi
+       mov      r9, rax
        mov      rax, 0xD1FFAB1E      ; code for System.Buffers.Text.Base64Helper:EncodeTo[System.Buffers.Text.Base64Url+Base64UrlEncoderChar,ushort](System.Buffers.Text.Base64Url+Base64UrlEncoderChar,System.ReadOnlySpan`1[ubyte],System.Span`1[ushort],byref,byref,ubyte):int
        call     [rax]System.Buffers.Text.Base64Helper:EncodeTo[System.Buffers.Text.Base64Url+Base64UrlEncoderChar,ushort](System.Buffers.Text.Base64Url+Base64UrlEncoderChar,System.ReadOnlySpan`1[ubyte],System.Span`1[ushort],byref,byref,ubyte):int
        nop      
-						;; size=27 bbWeight=1 PerfScore 6.75
+						;; size=50 bbWeight=1 PerfScore 8.50
 G_M58470_IG03:
        add      rsp, 24
        ret      
 						;; size=5 bbWeight=1 PerfScore 1.25
 
-; Total bytes of code 36, prolog size 4, PerfScore 8.25, instruction count 10, allocated bytes for code 36 (MethodHash=35af1b99) for method System.Buffers.Text.Base64Url:EncodeToChars(System.ReadOnlySpan`1[ubyte],System.Span`1[ushort],byref,byref,ubyte):int (FullOpts)
+; Total bytes of code 65, prolog size 4, PerfScore 10.50, instruction count 19, allocated bytes for code 65 (MethodHash=35af1b99) for method System.Buffers.Text.Base64Url:EncodeToChars(System.ReadOnlySpan`1[ubyte],System.Span`1[ushort],byref,byref,ubyte):int (FullOpts)
25 (56.82 % of base) - System.Buffers.Text.Base64:DecodeFromUtf8(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,byref,ubyte):int
 ; Assembly listing for method System.Buffers.Text.Base64:DecodeFromUtf8(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,byref,ubyte):int (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rsp based frame
 ; partially interruptible
 ; No PGO data
 ; Final local variable assignments
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.ReadOnlySpan`1[ubyte]>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Span`1[ubyte]>
-;  V02 arg2         [V02,T00] (  3,  3   )   byref  ->   r8         single-def
+;  V02 arg2         [V02,T00] (  3,  3   )   byref  ->  rax         single-def
 ;  V03 arg3         [V03,T01] (  3,  3   )   byref  ->   r9         single-def
 ;  V04 arg4         [V04,T06] (  1,  1   )   ubyte  ->  [rsp+0x20]  single-def
 ;* V05 loc0         [V05,T07] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[S] ld-addr-op <System.Buffers.Text.Base64Helper+Base64DecoderByte>
 ;  V06 OutArgs      [V06    ] (  1,  1   )  struct (24) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V07 tmp1         [V07,T02] (  2,  2   )   byref  ->  rdi         single-def "field V00._reference (fldOffset=0x0)" P-INDEP
-;  V08 tmp2         [V08,T04] (  2,  2   )     int  ->  rsi         single-def "field V00._length (fldOffset=0x8)" P-INDEP
-;  V09 tmp3         [V09,T03] (  2,  2   )   byref  ->  rdx         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-;  V10 tmp4         [V10,T05] (  2,  2   )     int  ->  rcx         single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V08 tmp2         [V08,T04] (  2,  2   )     int  ->  rdx         single-def "field V00._length (fldOffset=0x8)" P-INDEP
+;  V09 tmp3         [V09,T03] (  2,  2   )   byref  ->   r8         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+;  V10 tmp4         [V10,T05] (  2,  2   )     int  ->  r10         single-def "field V01._length (fldOffset=0x8)" P-INDEP
 ;
 ; Lcl frame size = 24
 
 G_M8518_IG01:
        sub      rsp, 24
-						;; size=4 bbWeight=1 PerfScore 0.25
+       mov      r10d, ecx
+       mov      rax, r8
+       mov      r8, rdx
+       mov      edx, esi
+						;; size=15 bbWeight=1 PerfScore 1.25
 G_M8518_IG02:
-       xor      eax, eax
-       mov      dword ptr [rsp], eax
-       movzx    rax, byte  ptr [rsp+0x20]
-       mov      dword ptr [rsp+0x08], eax
+       mov      bword ptr [rsp], r9
+       movzx    rsi, byte  ptr [rsp+0x20]
+       mov      dword ptr [rsp+0x08], esi
        mov      dword ptr [rsp+0x10], 1
+       mov      rsi, rdi
+       mov      rcx, r8
+       mov      r8d, r10d
+       xor      edi, edi
+       mov      r9, rax
        mov      rax, 0xD1FFAB1E      ; code for System.Buffers.Text.Base64Helper:DecodeFrom[System.Buffers.Text.Base64Helper+Base64DecoderByte,ubyte](System.Buffers.Text.Base64Helper+Base64DecoderByte,System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,byref,ubyte,ubyte):int
        call     [rax]System.Buffers.Text.Base64Helper:DecodeFrom[System.Buffers.Text.Base64Helper+Base64DecoderByte,ubyte](System.Buffers.Text.Base64Helper+Base64DecoderByte,System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,byref,ubyte,ubyte):int
        nop      
-						;; size=35 bbWeight=1 PerfScore 7.75
+						;; size=49 bbWeight=1 PerfScore 8.75
 G_M8518_IG03:
        add      rsp, 24
        ret      
 						;; size=5 bbWeight=1 PerfScore 1.25
 
-; Total bytes of code 44, prolog size 4, PerfScore 9.25, instruction count 11, allocated bytes for code 44 (MethodHash=b7d5deb9) for method System.Buffers.Text.Base64:DecodeFromUtf8(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,byref,ubyte):int (FullOpts)
+; Total bytes of code 69, prolog size 4, PerfScore 11.25, instruction count 19, allocated bytes for code 69 (MethodHash=b7d5deb9) for method System.Buffers.Text.Base64:DecodeFromUtf8(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,byref,ubyte):int (FullOpts)
25 (69.44 % of base) - System.Buffers.Text.Base64:EncodeToUtf8(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,byref,ubyte):int
 ; Assembly listing for method System.Buffers.Text.Base64:EncodeToUtf8(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,byref,ubyte):int (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rsp based frame
 ; partially interruptible
 ; No PGO data
 ; Final local variable assignments
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.ReadOnlySpan`1[ubyte]>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Span`1[ubyte]>
-;  V02 arg2         [V02,T00] (  3,  3   )   byref  ->   r8         single-def
+;  V02 arg2         [V02,T00] (  3,  3   )   byref  ->  rax         single-def
 ;  V03 arg3         [V03,T01] (  3,  3   )   byref  ->   r9         single-def
 ;  V04 arg4         [V04,T06] (  1,  1   )   ubyte  ->  [rsp+0x20]  single-def
 ;* V05 loc0         [V05,T07] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[S] ld-addr-op <System.Buffers.Text.Base64Helper+Base64EncoderByte>
 ;  V06 OutArgs      [V06    ] (  1,  1   )  struct (16) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V07 tmp1         [V07,T02] (  2,  2   )   byref  ->  rdi         single-def "field V00._reference (fldOffset=0x0)" P-INDEP
-;  V08 tmp2         [V08,T04] (  2,  2   )     int  ->  rsi         single-def "field V00._length (fldOffset=0x8)" P-INDEP
-;  V09 tmp3         [V09,T03] (  2,  2   )   byref  ->  rdx         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-;  V10 tmp4         [V10,T05] (  2,  2   )     int  ->  rcx         single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V08 tmp2         [V08,T04] (  2,  2   )     int  ->  rdx         single-def "field V00._length (fldOffset=0x8)" P-INDEP
+;  V09 tmp3         [V09,T03] (  2,  2   )   byref  ->   r8         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+;  V10 tmp4         [V10,T05] (  2,  2   )     int  ->  r10         single-def "field V01._length (fldOffset=0x8)" P-INDEP
 ;
 ; Lcl frame size = 24
 
 G_M52705_IG01:
        sub      rsp, 24
-						;; size=4 bbWeight=1 PerfScore 0.25
+       mov      r10d, ecx
+       mov      rax, r8
+       mov      r8, rdx
+       mov      edx, esi
+						;; size=15 bbWeight=1 PerfScore 1.25
 G_M52705_IG02:
-       xor      eax, eax
-       mov      dword ptr [rsp], eax
-       movzx    rax, byte  ptr [rsp+0x20]
-       mov      dword ptr [rsp+0x08], eax
+       mov      bword ptr [rsp], r9
+       movzx    rsi, byte  ptr [rsp+0x20]
+       mov      dword ptr [rsp+0x08], esi
+       mov      rsi, rdi
+       mov      rcx, r8
+       mov      r8d, r10d
+       xor      edi, edi
+       mov      r9, rax
        mov      rax, 0xD1FFAB1E      ; code for System.Buffers.Text.Base64Helper:EncodeTo[System.Buffers.Text.Base64Helper+Base64EncoderByte,ubyte](System.Buffers.Text.Base64Helper+Base64EncoderByte,System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,byref,ubyte):int
        call     [rax]System.Buffers.Text.Base64Helper:EncodeTo[System.Buffers.Text.Base64Helper+Base64EncoderByte,ubyte](System.Buffers.Text.Base64Helper+Base64EncoderByte,System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,byref,ubyte):int
        nop      
-						;; size=27 bbWeight=1 PerfScore 6.75
+						;; size=41 bbWeight=1 PerfScore 7.75
 G_M52705_IG03:
        add      rsp, 24
        ret      
 						;; size=5 bbWeight=1 PerfScore 1.25
 
-; Total bytes of code 36, prolog size 4, PerfScore 8.25, instruction count 10, allocated bytes for code 36 (MethodHash=4c9f321e) for method System.Buffers.Text.Base64:EncodeToUtf8(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,byref,ubyte):int (FullOpts)
+; Total bytes of code 61, prolog size 4, PerfScore 10.25, instruction count 18, allocated bytes for code 61 (MethodHash=4c9f321e) for method System.Buffers.Text.Base64:EncodeToUtf8(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,byref,ubyte):int (FullOpts)
25 (56.82 % of base) - System.Buffers.Text.Base64Url:DecodeFromUtf8(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,byref,ubyte):int
 ; Assembly listing for method System.Buffers.Text.Base64Url:DecodeFromUtf8(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,byref,ubyte):int (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rsp based frame
 ; partially interruptible
 ; No PGO data
 ; Final local variable assignments
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.ReadOnlySpan`1[ubyte]>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Span`1[ubyte]>
-;  V02 arg2         [V02,T00] (  3,  3   )   byref  ->   r8         single-def
+;  V02 arg2         [V02,T00] (  3,  3   )   byref  ->  rax         single-def
 ;  V03 arg3         [V03,T01] (  3,  3   )   byref  ->   r9         single-def
 ;  V04 arg4         [V04,T06] (  1,  1   )   ubyte  ->  [rsp+0x20]  single-def
 ;* V05 loc0         [V05,T07] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[S] ld-addr-op <System.Buffers.Text.Base64Url+Base64UrlDecoderByte>
 ;  V06 OutArgs      [V06    ] (  1,  1   )  struct (24) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V07 tmp1         [V07,T02] (  2,  2   )   byref  ->  rdi         single-def "field V00._reference (fldOffset=0x0)" P-INDEP
-;  V08 tmp2         [V08,T04] (  2,  2   )     int  ->  rsi         single-def "field V00._length (fldOffset=0x8)" P-INDEP
-;  V09 tmp3         [V09,T03] (  2,  2   )   byref  ->  rdx         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-;  V10 tmp4         [V10,T05] (  2,  2   )     int  ->  rcx         single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V08 tmp2         [V08,T04] (  2,  2   )     int  ->  rdx         single-def "field V00._length (fldOffset=0x8)" P-INDEP
+;  V09 tmp3         [V09,T03] (  2,  2   )   byref  ->   r8         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+;  V10 tmp4         [V10,T05] (  2,  2   )     int  ->  r10         single-def "field V01._length (fldOffset=0x8)" P-INDEP
 ;
 ; Lcl frame size = 24
 
 G_M48173_IG01:
        sub      rsp, 24
-						;; size=4 bbWeight=1 PerfScore 0.25
+       mov      r10d, ecx
+       mov      rax, r8
+       mov      r8, rdx
+       mov      edx, esi
+						;; size=15 bbWeight=1 PerfScore 1.25
 G_M48173_IG02:
-       xor      eax, eax
-       mov      dword ptr [rsp], eax
-       movzx    rax, byte  ptr [rsp+0x20]
-       mov      dword ptr [rsp+0x08], eax
+       mov      bword ptr [rsp], r9
+       movzx    rsi, byte  ptr [rsp+0x20]
+       mov      dword ptr [rsp+0x08], esi
        mov      dword ptr [rsp+0x10], 1
+       mov      rsi, rdi
+       mov      rcx, r8
+       mov      r8d, r10d
+       xor      edi, edi
+       mov      r9, rax
        mov      rax, 0xD1FFAB1E      ; code for System.Buffers.Text.Base64Helper:DecodeFrom[System.Buffers.Text.Base64Url+Base64UrlDecoderByte,ubyte](System.Buffers.Text.Base64Url+Base64UrlDecoderByte,System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,byref,ubyte,ubyte):int
        call     [rax]System.Buffers.Text.Base64Helper:DecodeFrom[System.Buffers.Text.Base64Url+Base64UrlDecoderByte,ubyte](System.Buffers.Text.Base64Url+Base64UrlDecoderByte,System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,byref,ubyte,ubyte):int
        nop      
-						;; size=35 bbWeight=1 PerfScore 7.75
+						;; size=49 bbWeight=1 PerfScore 8.75
 G_M48173_IG03:
        add      rsp, 24
        ret      
 						;; size=5 bbWeight=1 PerfScore 1.25
 
-; Total bytes of code 44, prolog size 4, PerfScore 9.25, instruction count 11, allocated bytes for code 44 (MethodHash=282b43d2) for method System.Buffers.Text.Base64Url:DecodeFromUtf8(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,byref,ubyte):int (FullOpts)
+; Total bytes of code 69, prolog size 4, PerfScore 11.25, instruction count 19, allocated bytes for code 69 (MethodHash=282b43d2) for method System.Buffers.Text.Base64Url:DecodeFromUtf8(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,byref,ubyte):int (FullOpts)
25 (69.44 % of base) - System.Buffers.Text.Base64Url:EncodeToUtf8(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,byref,ubyte):int
 ; Assembly listing for method System.Buffers.Text.Base64Url:EncodeToUtf8(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,byref,ubyte):int (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rsp based frame
 ; partially interruptible
 ; No PGO data
 ; Final local variable assignments
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.ReadOnlySpan`1[ubyte]>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Span`1[ubyte]>
-;  V02 arg2         [V02,T00] (  3,  3   )   byref  ->   r8         single-def
+;  V02 arg2         [V02,T00] (  3,  3   )   byref  ->  rax         single-def
 ;  V03 arg3         [V03,T01] (  3,  3   )   byref  ->   r9         single-def
 ;  V04 arg4         [V04,T06] (  1,  1   )   ubyte  ->  [rsp+0x20]  single-def
 ;* V05 loc0         [V05,T07] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[S] ld-addr-op <System.Buffers.Text.Base64Url+Base64UrlEncoderByte>
 ;  V06 OutArgs      [V06    ] (  1,  1   )  struct (16) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V07 tmp1         [V07,T02] (  2,  2   )   byref  ->  rdi         single-def "field V00._reference (fldOffset=0x0)" P-INDEP
-;  V08 tmp2         [V08,T04] (  2,  2   )     int  ->  rsi         single-def "field V00._length (fldOffset=0x8)" P-INDEP
-;  V09 tmp3         [V09,T03] (  2,  2   )   byref  ->  rdx         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-;  V10 tmp4         [V10,T05] (  2,  2   )     int  ->  rcx         single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V08 tmp2         [V08,T04] (  2,  2   )     int  ->  rdx         single-def "field V00._length (fldOffset=0x8)" P-INDEP
+;  V09 tmp3         [V09,T03] (  2,  2   )   byref  ->   r8         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+;  V10 tmp4         [V10,T05] (  2,  2   )     int  ->  r10         single-def "field V01._length (fldOffset=0x8)" P-INDEP
 ;
 ; Lcl frame size = 24
 
 G_M54922_IG01:
        sub      rsp, 24
-						;; size=4 bbWeight=1 PerfScore 0.25
+       mov      r10d, ecx
+       mov      rax, r8
+       mov      r8, rdx
+       mov      edx, esi
+						;; size=15 bbWeight=1 PerfScore 1.25
 G_M54922_IG02:
-       xor      eax, eax
-       mov      dword ptr [rsp], eax
-       movzx    rax, byte  ptr [rsp+0x20]
-       mov      dword ptr [rsp+0x08], eax
+       mov      bword ptr [rsp], r9
+       movzx    rsi, byte  ptr [rsp+0x20]
+       mov      dword ptr [rsp+0x08], esi
+       mov      rsi, rdi
+       mov      rcx, r8
+       mov      r8d, r10d
+       xor      edi, edi
+       mov      r9, rax
        mov      rax, 0xD1FFAB1E      ; code for System.Buffers.Text.Base64Helper:EncodeTo[System.Buffers.Text.Base64Url+Base64UrlEncoderByte,ubyte](System.Buffers.Text.Base64Url+Base64UrlEncoderByte,System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,byref,ubyte):int
        call     [rax]System.Buffers.Text.Base64Helper:EncodeTo[System.Buffers.Text.Base64Url+Base64UrlEncoderByte,ubyte](System.Buffers.Text.Base64Url+Base64UrlEncoderByte,System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,byref,ubyte):int
        nop      
-						;; size=27 bbWeight=1 PerfScore 6.75
+						;; size=41 bbWeight=1 PerfScore 7.75
 G_M54922_IG03:
        add      rsp, 24
        ret      
 						;; size=5 bbWeight=1 PerfScore 1.25
 
-; Total bytes of code 36, prolog size 4, PerfScore 8.25, instruction count 10, allocated bytes for code 36 (MethodHash=70502975) for method System.Buffers.Text.Base64Url:EncodeToUtf8(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,byref,ubyte):int (FullOpts)
+; Total bytes of code 61, prolog size 4, PerfScore 10.25, instruction count 18, allocated bytes for code 61 (MethodHash=70502975) for method System.Buffers.Text.Base64Url:EncodeToUtf8(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,byref,ubyte):int (FullOpts)
24 (54.55 % of base) - System.Buffers.Text.Base64Url:DecodeFromChars(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte],byref,byref,ubyte):int
 ; Assembly listing for method System.Buffers.Text.Base64Url:DecodeFromChars(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte],byref,byref,ubyte):int (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rsp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 2 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.ReadOnlySpan`1[ushort]>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Span`1[ubyte]>
-;  V02 arg2         [V02,T00] (  3,  3   )   byref  ->   r8         single-def
+;  V02 arg2         [V02,T00] (  3,  3   )   byref  ->  rax         single-def
 ;  V03 arg3         [V03,T01] (  3,  3   )   byref  ->   r9         single-def
 ;  V04 arg4         [V04,T11] (  1,  1   )   ubyte  ->  [rsp+0x20]  single-def
 ;* V05 loc0         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Buffers.Text.Base64Url+Base64UrlDecoderChar>
 ;  V06 OutArgs      [V06    ] (  1,  1   )  struct (24) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V07 tmp1         [V07,T10] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[S] "impAppendStmt" <System.Buffers.Text.Base64Url+Base64UrlDecoderChar>
 ;* V08 tmp2         [V08    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
 ;* V09 tmp3         [V09    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V10 tmp4         [V10    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V11 tmp5         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V12 tmp6         [V12    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V13 tmp7         [V13,T08] (  2,  2   )     int  ->  rsi         "Inline stloc first use temp"
+;  V13 tmp7         [V13,T08] (  2,  2   )     int  ->  rdx         "Inline stloc first use temp"
 ;* V14 tmp8         [V14    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V15 tmp9         [V15    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V16 tmp10        [V16    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;  V17 tmp11        [V17,T02] (  2,  2   )   byref  ->  rdi         single-def "field V00._reference (fldOffset=0x0)" P-INDEP
 ;  V18 tmp12        [V18,T04] (  2,  2   )     int  ->  rsi         single-def "field V00._length (fldOffset=0x8)" P-INDEP
-;  V19 tmp13        [V19,T03] (  2,  2   )   byref  ->  rdx         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-;  V20 tmp14        [V20,T05] (  2,  2   )     int  ->  rcx         single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V19 tmp13        [V19,T03] (  2,  2   )   byref  ->   r8         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+;  V20 tmp14        [V20,T05] (  2,  2   )     int  ->  r10         single-def "field V01._length (fldOffset=0x8)" P-INDEP
 ;* V21 tmp15        [V21    ] (  0,  0   )   byref  ->  zero-ref    "field V08._reference (fldOffset=0x0)" P-INDEP
 ;* V22 tmp16        [V22    ] (  0,  0   )     int  ->  zero-ref    "field V08._length (fldOffset=0x8)" P-INDEP
 ;  V23 tmp17        [V23,T06] (  2,  2   )   byref  ->  rdi         single-def "field V11._reference (fldOffset=0x0)" P-INDEP
 ;* V24 tmp18        [V24    ] (  0,  0   )     int  ->  zero-ref    "field V11._length (fldOffset=0x8)" P-INDEP
-;  V25 tmp19        [V25,T07] (  2,  2   )   byref  ->  rdi         single-def "field V14._reference (fldOffset=0x0)" P-INDEP
-;  V26 tmp20        [V26,T09] (  2,  2   )     int  ->  rsi         "field V14._length (fldOffset=0x8)" P-INDEP
+;  V25 tmp19        [V25,T07] (  2,  2   )   byref  ->  rsi         single-def "field V14._reference (fldOffset=0x0)" P-INDEP
+;  V26 tmp20        [V26,T09] (  2,  2   )     int  ->  rdx         "field V14._length (fldOffset=0x8)" P-INDEP
 ;* V27 tmp21        [V27    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V15._reference (fldOffset=0x0)" P-INDEP
 ;* V28 tmp22        [V28    ] (  0,  0   )     int  ->  zero-ref    "field V15._length (fldOffset=0x8)" P-INDEP
 ;
 ; Lcl frame size = 24
 
 G_M25697_IG01:
        sub      rsp, 24
-						;; size=4 bbWeight=1 PerfScore 0.25
+       mov      r10d, ecx
+       mov      rax, r8
+       mov      r8, rdx
+						;; size=13 bbWeight=1 PerfScore 1.00
 G_M25697_IG02:
-       xor      eax, eax
-       mov      dword ptr [rsp], eax
-       movzx    rax, byte  ptr [rsp+0x20]
-       mov      dword ptr [rsp+0x08], eax
+       mov      edx, esi
+       mov      rsi, rdi
+       mov      bword ptr [rsp], r9
+       movzx    rcx, byte  ptr [rsp+0x20]
+       mov      dword ptr [rsp+0x08], ecx
        mov      dword ptr [rsp+0x10], 1
+       mov      rcx, r8
+       mov      r8d, r10d
+       xor      edi, edi
+       mov      r9, rax
        mov      rax, 0xD1FFAB1E      ; code for System.Buffers.Text.Base64Helper:DecodeFrom[System.Buffers.Text.Base64Url+Base64UrlDecoderChar,ushort](System.Buffers.Text.Base64Url+Base64UrlDecoderChar,System.ReadOnlySpan`1[ushort],System.Span`1[ubyte],byref,byref,ubyte,ubyte):int
        call     [rax]System.Buffers.Text.Base64Helper:DecodeFrom[System.Buffers.Text.Base64Url+Base64UrlDecoderChar,ushort](System.Buffers.Text.Base64Url+Base64UrlDecoderChar,System.ReadOnlySpan`1[ushort],System.Span`1[ubyte],byref,byref,ubyte,ubyte):int
        nop      
-						;; size=35 bbWeight=1 PerfScore 7.75
+						;; size=50 bbWeight=1 PerfScore 9.00
 G_M25697_IG03:
        add      rsp, 24
        ret      
 						;; size=5 bbWeight=1 PerfScore 1.25
 
-; Total bytes of code 44, prolog size 4, PerfScore 9.25, instruction count 11, allocated bytes for code 44 (MethodHash=37ff9b9e) for method System.Buffers.Text.Base64Url:DecodeFromChars(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte],byref,byref,ubyte):int (FullOpts)
+; Total bytes of code 68, prolog size 4, PerfScore 11.25, instruction count 19, allocated bytes for code 68 (MethodHash=37ff9b9e) for method System.Buffers.Text.Base64Url:DecodeFromChars(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte],byref,byref,ubyte):int (FullOpts)
19 (12.93 % of base) - System.Buffers.Text.Base64Url:EncodeToChars(System.ReadOnlySpan`1[ubyte],System.Span`1[ushort]):int
 ; Assembly listing for method System.Buffers.Text.Base64Url:EncodeToChars(System.ReadOnlySpan`1[ubyte],System.Span`1[ushort]):int (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 2 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.ReadOnlySpan`1[ubyte]>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Span`1[ushort]>
 ;  V02 loc0         [V02    ] (  2,  2   )     int  ->  [rbp-0x18]  do-not-enreg[X] addr-exposed ld-addr-op
 ;  V03 loc1         [V03    ] (  1,  1   )     int  ->  [rbp-0x20]  do-not-enreg[X] addr-exposed ld-addr-op
 ;  V04 OutArgs      [V04    ] (  1,  1   )  struct (16) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V05 tmp1         [V05,T09] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
 ;* V06 tmp2         [V06    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Buffers.Text.Base64Url+Base64UrlEncoderChar>
 ;* V07 tmp3         [V07,T08] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[S] "impAppendStmt" <System.Buffers.Text.Base64Url+Base64UrlEncoderChar>
 ;* V08 tmp4         [V08    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
 ;* V09 tmp5         [V09    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V10 tmp6         [V10    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V11 tmp7         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V12 tmp8         [V12    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;  V13 tmp9         [V13,T06] (  2,  2   )     int  ->  rcx         "Inline stloc first use temp"
 ;* V14 tmp10        [V14    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
 ;* V15 tmp11        [V15    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;  V16 tmp12        [V16,T00] (  2,  2   )   byref  ->  rdi         single-def "field V00._reference (fldOffset=0x0)" P-INDEP
-;  V17 tmp13        [V17,T02] (  2,  2   )     int  ->  rsi         single-def "field V00._length (fldOffset=0x8)" P-INDEP
+;  V17 tmp13        [V17,T02] (  2,  2   )     int  ->   r8         single-def "field V00._length (fldOffset=0x8)" P-INDEP
 ;  V18 tmp14        [V18,T01] (  2,  2   )   byref  ->  rdx         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
 ;  V19 tmp15        [V19,T03] (  2,  2   )     int  ->  rcx         single-def "field V01._length (fldOffset=0x8)" P-INDEP
 ;* V20 tmp16        [V20    ] (  0,  0   )   byref  ->  zero-ref    "field V08._reference (fldOffset=0x0)" P-INDEP
 ;* V21 tmp17        [V21    ] (  0,  0   )     int  ->  zero-ref    "field V08._length (fldOffset=0x8)" P-INDEP
 ;  V22 tmp18        [V22,T04] (  2,  2   )   byref  ->  rdx         single-def "field V11._reference (fldOffset=0x0)" P-INDEP
 ;* V23 tmp19        [V23    ] (  0,  0   )     int  ->  zero-ref    "field V11._length (fldOffset=0x8)" P-INDEP
-;  V24 tmp20        [V24,T05] (  2,  2   )   byref  ->  rdx         single-def "field V14._reference (fldOffset=0x0)" P-INDEP
-;  V25 tmp21        [V25,T07] (  2,  2   )     int  ->  rcx         "field V14._length (fldOffset=0x8)" P-INDEP
+;  V24 tmp20        [V24,T05] (  2,  2   )   byref  ->   r9         single-def "field V14._reference (fldOffset=0x0)" P-INDEP
+;  V25 tmp21        [V25,T07] (  2,  2   )     int  ->  rax         "field V14._length (fldOffset=0x8)" P-INDEP
 ;  V26 tmp22        [V26,T10] (  2,  0   )     ref  ->  r15         single-def "argument with side effect"
 ;  V27 tmp23        [V27,T11] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
 ;
 ; Lcl frame size = 32
 
 G_M64917_IG01:
        push     rbp
        push     r15
        push     rbx
        sub      rsp, 32
        lea      rbp, [rsp+0x30]
-						;; size=13 bbWeight=1 PerfScore 3.75
+       mov      r8d, esi
+						;; size=16 bbWeight=1 PerfScore 4.00
 G_M64917_IG02:
-       xor      r9d, r9d
-       mov      dword ptr [rsp], r9d
+       mov      r9, rdx
+       mov      eax, ecx
+       lea      rsi, [rbp-0x18]
+       mov      qword ptr [rsp], rsi
        mov      dword ptr [rsp+0x08], 1
-       lea      r9, [rbp-0x18]
-       lea      r8, [rbp-0x20]
+       mov      rsi, rdi
+       mov      edx, r8d
+       mov      rcx, r9
+       mov      r8d, eax
+       lea      r9, [rbp-0x20]
+       xor      edi, edi
        mov      rax, 0xD1FFAB1E      ; code for System.Buffers.Text.Base64Helper:EncodeTo[System.Buffers.Text.Base64Url+Base64UrlEncoderChar,ushort](System.Buffers.Text.Base64Url+Base64UrlEncoderChar,System.ReadOnlySpan`1[ubyte],System.Span`1[ushort],byref,byref,ubyte):int
        call     [rax]System.Buffers.Text.Base64Helper:EncodeTo[System.Buffers.Text.Base64Url+Base64UrlEncoderChar,ushort](System.Buffers.Text.Base64Url+Base64UrlEncoderChar,System.ReadOnlySpan`1[ubyte],System.Span`1[ushort],byref,byref,ubyte):int
        test     eax, eax
        jne      SHORT G_M64917_IG04
        mov      eax, dword ptr [rbp-0x18]
-						;; size=42 bbWeight=1 PerfScore 8.75
+						;; size=58 bbWeight=1 PerfScore 10.25
 G_M64917_IG03:
        add      rsp, 32
        pop      rbx
        pop      r15
        pop      rbp
        ret      
 						;; size=9 bbWeight=1 PerfScore 2.75
 G_M64917_IG04:
        mov      rdi, 0xD1FFAB1E      ; System.ArgumentException
        call     CORINFO_HELP_NEWSFAST
        mov      rbx, rax
        mov      rax, 0xD1FFAB1E      ; code for System.SR:get_Argument_DestinationTooShort():System.String
        call     [rax]System.SR:get_Argument_DestinationTooShort():System.String
        mov      r15, rax
        mov      edi, 0xD61
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
        mov      rdx, rax
        mov      rsi, r15
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentException:.ctor(System.String,System.String):this
        call     [rax]System.ArgumentException:.ctor(System.String,System.String):this
        mov      rdi, rbx
        call     CORINFO_HELP_THROW
        int3     
 						;; size=83 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 147, prolog size 13, PerfScore 15.25, instruction count 37, allocated bytes for code 147 (MethodHash=2dd0026a) for method System.Buffers.Text.Base64Url:EncodeToChars(System.ReadOnlySpan`1[ubyte],System.Span`1[ushort]):int (FullOpts)
+; Total bytes of code 166, prolog size 13, PerfScore 17.00, instruction count 44, allocated bytes for code 166 (MethodHash=2dd0026a) for method System.Buffers.Text.Base64Url:EncodeToChars(System.ReadOnlySpan`1[ubyte],System.Span`1[ushort]):int (FullOpts)
17 (32.69 % of base) - System.Buffers.Text.Base64Url:TryEncodeToChars(System.ReadOnlySpan`1[ubyte],System.Span`1[ushort],byref):ubyte
 ; Assembly listing for method System.Buffers.Text.Base64Url:TryEncodeToChars(System.ReadOnlySpan`1[ubyte],System.Span`1[ushort],byref):ubyte (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rsp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 2 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.ReadOnlySpan`1[ubyte]>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Span`1[ushort]>
-;  V02 arg2         [V02,T00] (  3,  3   )   byref  ->   r9         single-def
+;  V02 arg2         [V02,T00] (  3,  3   )   byref  ->   r8         single-def
 ;  V03 loc0         [V03    ] (  1,  1   )     int  ->  [rsp+0x10]  do-not-enreg[X] addr-exposed ld-addr-op
 ;  V04 OutArgs      [V04    ] (  1,  1   )  struct (16) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V05 tmp1         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Buffers.Text.Base64Url+Base64UrlEncoderChar>
 ;* V06 tmp2         [V06,T09] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[S] "impAppendStmt" <System.Buffers.Text.Base64Url+Base64UrlEncoderChar>
 ;* V07 tmp3         [V07    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
 ;* V08 tmp4         [V08    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V09 tmp5         [V09    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V10 tmp6         [V10    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V11 tmp7         [V11    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;  V12 tmp8         [V12,T07] (  2,  2   )     int  ->  rcx         "Inline stloc first use temp"
 ;* V13 tmp9         [V13    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
 ;* V14 tmp10        [V14    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;  V15 tmp11        [V15,T01] (  2,  2   )   byref  ->  rdi         single-def "field V00._reference (fldOffset=0x0)" P-INDEP
-;  V16 tmp12        [V16,T03] (  2,  2   )     int  ->  rsi         single-def "field V00._length (fldOffset=0x8)" P-INDEP
+;  V16 tmp12        [V16,T03] (  2,  2   )     int  ->   r9         single-def "field V00._length (fldOffset=0x8)" P-INDEP
 ;  V17 tmp13        [V17,T02] (  2,  2   )   byref  ->  rdx         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
 ;  V18 tmp14        [V18,T04] (  2,  2   )     int  ->  rcx         single-def "field V01._length (fldOffset=0x8)" P-INDEP
 ;* V19 tmp15        [V19    ] (  0,  0   )   byref  ->  zero-ref    "field V07._reference (fldOffset=0x0)" P-INDEP
 ;* V20 tmp16        [V20    ] (  0,  0   )     int  ->  zero-ref    "field V07._length (fldOffset=0x8)" P-INDEP
 ;  V21 tmp17        [V21,T05] (  2,  2   )   byref  ->  rdx         single-def "field V10._reference (fldOffset=0x0)" P-INDEP
 ;* V22 tmp18        [V22    ] (  0,  0   )     int  ->  zero-ref    "field V10._length (fldOffset=0x8)" P-INDEP
-;  V23 tmp19        [V23,T06] (  2,  2   )   byref  ->  rdx         single-def "field V13._reference (fldOffset=0x0)" P-INDEP
-;  V24 tmp20        [V24,T08] (  2,  2   )     int  ->  rcx         "field V13._length (fldOffset=0x8)" P-INDEP
+;  V23 tmp19        [V23,T06] (  2,  2   )   byref  ->  rax         single-def "field V13._reference (fldOffset=0x0)" P-INDEP
+;  V24 tmp20        [V24,T08] (  2,  2   )     int  ->  r10         "field V13._length (fldOffset=0x8)" P-INDEP
 ;
 ; Lcl frame size = 24
 
 G_M24288_IG01:
        sub      rsp, 24
-       mov      r9, r8
+       mov      r9d, esi
 						;; size=7 bbWeight=1 PerfScore 0.50
 G_M24288_IG02:
-       xor      r8d, r8d
-       mov      dword ptr [rsp], r8d
+       mov      rax, rdx
+       mov      r10d, ecx
+       mov      bword ptr [rsp], r8
        mov      dword ptr [rsp+0x08], 1
-       lea      r8, [rsp+0x10]
+       mov      rsi, rdi
+       mov      edx, r9d
+       mov      rcx, rax
+       mov      r8d, r10d
+       lea      r9, [rsp+0x10]
+       xor      edi, edi
        mov      rax, 0xD1FFAB1E      ; code for System.Buffers.Text.Base64Helper:EncodeTo[System.Buffers.Text.Base64Url+Base64UrlEncoderChar,ushort](System.Buffers.Text.Base64Url+Base64UrlEncoderChar,System.ReadOnlySpan`1[ubyte],System.Span`1[ushort],byref,byref,ubyte):int
        call     [rax]System.Buffers.Text.Base64Helper:EncodeTo[System.Buffers.Text.Base64Url+Base64UrlEncoderChar,ushort](System.Buffers.Text.Base64Url+Base64UrlEncoderChar,System.ReadOnlySpan`1[ubyte],System.Span`1[ushort],byref,byref,ubyte):int
        test     eax, eax
        sete     al
        movzx    rax, al
-						;; size=40 bbWeight=1 PerfScore 7.50
+						;; size=57 bbWeight=1 PerfScore 9.00
 G_M24288_IG03:
        add      rsp, 24
        ret      
 						;; size=5 bbWeight=1 PerfScore 1.25
 
-; Total bytes of code 52, prolog size 4, PerfScore 9.25, instruction count 13, allocated bytes for code 52 (MethodHash=64f2a11f) for method System.Buffers.Text.Base64Url:TryEncodeToChars(System.ReadOnlySpan`1[ubyte],System.Span`1[ushort],byref):ubyte (FullOpts)
+; Total bytes of code 69, prolog size 4, PerfScore 10.75, instruction count 19, allocated bytes for code 69 (MethodHash=64f2a11f) for method System.Buffers.Text.Base64Url:TryEncodeToChars(System.ReadOnlySpan`1[ubyte],System.Span`1[ushort],byref):ubyte (FullOpts)
16 (7.37 % of base) - System.Buffers.Text.Base64Url:DecodeFromChars(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte]):int
 ; Assembly listing for method System.Buffers.Text.Base64Url:DecodeFromChars(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte]):int (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 3 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.ReadOnlySpan`1[ushort]>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Span`1[ubyte]>
 ;  V02 loc0         [V02,T04] (  3,  2   )     int  ->  rax        
 ;  V03 loc1         [V03    ] (  2,  2   )     int  ->  [rbp-0x18]  do-not-enreg[X] addr-exposed ld-addr-op
 ;  V04 loc2         [V04    ] (  1,  1   )     int  ->  [rbp-0x20]  do-not-enreg[X] addr-exposed ld-addr-op
 ;  V05 OutArgs      [V05    ] (  1,  1   )  struct (24) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V06 tmp1         [V06,T10] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.FormatException>
 ;  V07 tmp2         [V07,T11] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
 ;* V08 tmp3         [V08    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Buffers.Text.Base64Url+Base64UrlDecoderChar>
 ;* V09 tmp4         [V09,T09] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[S] "impAppendStmt" <System.Buffers.Text.Base64Url+Base64UrlDecoderChar>
 ;* V10 tmp5         [V10    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
 ;* V11 tmp6         [V11    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V12 tmp7         [V12    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V13 tmp8         [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V14 tmp9         [V14    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V15 tmp10        [V15,T07] (  2,  2   )     int  ->  rsi         "Inline stloc first use temp"
+;  V15 tmp10        [V15,T07] (  2,  2   )     int  ->  rdx         "Inline stloc first use temp"
 ;* V16 tmp11        [V16    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V17 tmp12        [V17    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V18 tmp13        [V18    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;  V19 tmp14        [V19,T00] (  2,  2   )   byref  ->  rdi         single-def "field V00._reference (fldOffset=0x0)" P-INDEP
 ;  V20 tmp15        [V20,T02] (  2,  2   )     int  ->  rsi         single-def "field V00._length (fldOffset=0x8)" P-INDEP
-;  V21 tmp16        [V21,T01] (  2,  2   )   byref  ->  rdx         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-;  V22 tmp17        [V22,T03] (  2,  2   )     int  ->  rcx         single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V21 tmp16        [V21,T01] (  2,  2   )   byref  ->   r8         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+;  V22 tmp17        [V22,T03] (  2,  2   )     int  ->   r9         single-def "field V01._length (fldOffset=0x8)" P-INDEP
 ;* V23 tmp18        [V23    ] (  0,  0   )   byref  ->  zero-ref    "field V10._reference (fldOffset=0x0)" P-INDEP
 ;* V24 tmp19        [V24    ] (  0,  0   )     int  ->  zero-ref    "field V10._length (fldOffset=0x8)" P-INDEP
 ;  V25 tmp20        [V25,T05] (  2,  2   )   byref  ->  rdi         single-def "field V13._reference (fldOffset=0x0)" P-INDEP
 ;* V26 tmp21        [V26    ] (  0,  0   )     int  ->  zero-ref    "field V13._length (fldOffset=0x8)" P-INDEP
-;  V27 tmp22        [V27,T06] (  2,  2   )   byref  ->  rdi         single-def "field V16._reference (fldOffset=0x0)" P-INDEP
-;  V28 tmp23        [V28,T08] (  2,  2   )     int  ->  rsi         "field V16._length (fldOffset=0x8)" P-INDEP
+;  V27 tmp22        [V27,T06] (  2,  2   )   byref  ->  rsi         single-def "field V16._reference (fldOffset=0x0)" P-INDEP
+;  V28 tmp23        [V28,T08] (  2,  2   )     int  ->  rdx         "field V16._length (fldOffset=0x8)" P-INDEP
 ;* V29 tmp24        [V29    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V17._reference (fldOffset=0x0)" P-INDEP
 ;* V30 tmp25        [V30    ] (  0,  0   )     int  ->  zero-ref    "field V17._length (fldOffset=0x8)" P-INDEP
 ;  V31 tmp26        [V31,T12] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
 ;  V32 tmp27        [V32,T13] (  2,  0   )     ref  ->  r15         single-def "argument with side effect"
 ;  V33 tmp28        [V33,T14] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
 ;
 ; Lcl frame size = 48
 
 G_M23762_IG01:
        push     rbp
        push     r15
        push     rbx
        sub      rsp, 48
        lea      rbp, [rsp+0x40]
-						;; size=13 bbWeight=1 PerfScore 3.75
+       mov      r8, rdx
+       mov      r9d, ecx
+						;; size=19 bbWeight=1 PerfScore 4.25
 G_M23762_IG02:
-       xor      r9d, r9d
-       mov      dword ptr [rsp], r9d
+       mov      edx, esi
+       mov      rsi, rdi
+       lea      rcx, [rbp-0x18]
+       mov      qword ptr [rsp], rcx
        mov      dword ptr [rsp+0x08], 1
        mov      dword ptr [rsp+0x10], 1
-       lea      r9, [rbp-0x18]
-       lea      r8, [rbp-0x20]
+       mov      rcx, r8
+       mov      r8d, r9d
+       lea      r9, [rbp-0x20]
+       xor      edi, edi
        mov      rax, 0xD1FFAB1E      ; code for System.Buffers.Text.Base64Helper:DecodeFrom[System.Buffers.Text.Base64Url+Base64UrlDecoderChar,ushort](System.Buffers.Text.Base64Url+Base64UrlDecoderChar,System.ReadOnlySpan`1[ushort],System.Span`1[ubyte],byref,byref,ubyte,ubyte):int
        call     [rax]System.Buffers.Text.Base64Helper:DecodeFrom[System.Buffers.Text.Base64Url+Base64UrlDecoderChar,ushort](System.Buffers.Text.Base64Url+Base64UrlDecoderChar,System.ReadOnlySpan`1[ushort],System.Span`1[ubyte],byref,byref,ubyte,ubyte):int
        test     eax, eax
        jne      SHORT G_M23762_IG04
        mov      eax, dword ptr [rbp-0x18]
-						;; size=50 bbWeight=1 PerfScore 9.75
+						;; size=60 bbWeight=1 PerfScore 10.75
 G_M23762_IG03:
        add      rsp, 48
        pop      rbx
        pop      r15
        pop      rbp
        ret      
 						;; size=9 bbWeight=1 PerfScore 2.75
 G_M23762_IG04:
        cmp      eax, 1
        je       SHORT G_M23762_IG05
        mov      rdi, 0xD1FFAB1E      ; System.FormatException
        call     CORINFO_HELP_NEWSFAST
        mov      rbx, rax
        mov      rax, 0xD1FFAB1E      ; code for System.SR:get_Format_BadBase64Char():System.String
        call     [rax]System.SR:get_Format_BadBase64Char():System.String
        mov      rsi, rax
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.FormatException:.ctor(System.String):this
        call     [rax]System.FormatException:.ctor(System.String):this
        mov      rdi, rbx
        call     CORINFO_HELP_THROW
        int3     
 						;; size=62 bbWeight=0 PerfScore 0.00
 G_M23762_IG05:
        mov      rdi, 0xD1FFAB1E      ; System.ArgumentException
        call     CORINFO_HELP_NEWSFAST
        mov      rbx, rax
        mov      rax, 0xD1FFAB1E      ; code for System.SR:get_Argument_DestinationTooShort():System.String
        call     [rax]System.SR:get_Argument_DestinationTooShort():System.String
        mov      r15, rax
        mov      edi, 0xD61
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
        mov      rdx, rax
        mov      rsi, r15
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentException:.ctor(System.String,System.String):this
        call     [rax]System.ArgumentException:.ctor(System.String,System.String):this
        mov      rdi, rbx
        call     CORINFO_HELP_THROW
        int3     
 						;; size=83 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 217, prolog size 13, PerfScore 16.25, instruction count 52, allocated bytes for code 217 (MethodHash=88c1a32d) for method System.Buffers.Text.Base64Url:DecodeFromChars(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte]):int (FullOpts)
+; Total bytes of code 233, prolog size 13, PerfScore 17.75, instruction count 58, allocated bytes for code 233 (MethodHash=88c1a32d) for method System.Buffers.Text.Base64Url:DecodeFromChars(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte]):int (FullOpts)
16 (7.37 % of base) - System.Buffers.Text.Base64Url:DecodeFromUtf8(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int
 ; Assembly listing for method System.Buffers.Text.Base64Url:DecodeFromUtf8(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.ReadOnlySpan`1[ubyte]>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Span`1[ubyte]>
 ;  V02 loc0         [V02,T04] (  3,  2   )     int  ->  rax        
 ;  V03 loc1         [V03    ] (  2,  2   )     int  ->  [rbp-0x18]  do-not-enreg[X] addr-exposed ld-addr-op
 ;  V04 loc2         [V04    ] (  1,  1   )     int  ->  [rbp-0x20]  do-not-enreg[X] addr-exposed ld-addr-op
 ;  V05 OutArgs      [V05    ] (  1,  1   )  struct (24) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V06 tmp1         [V06,T06] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.FormatException>
 ;  V07 tmp2         [V07,T07] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
 ;* V08 tmp3         [V08,T05] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[S] ld-addr-op "Inline ldloca(s) first use temp" <System.Buffers.Text.Base64Url+Base64UrlDecoderByte>
 ;  V09 tmp4         [V09,T00] (  2,  2   )   byref  ->  rdi         single-def "field V00._reference (fldOffset=0x0)" P-INDEP
-;  V10 tmp5         [V10,T02] (  2,  2   )     int  ->  rsi         single-def "field V00._length (fldOffset=0x8)" P-INDEP
-;  V11 tmp6         [V11,T01] (  2,  2   )   byref  ->  rdx         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-;  V12 tmp7         [V12,T03] (  2,  2   )     int  ->  rcx         single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V10 tmp5         [V10,T02] (  2,  2   )     int  ->  rdx         single-def "field V00._length (fldOffset=0x8)" P-INDEP
+;  V11 tmp6         [V11,T01] (  2,  2   )   byref  ->   r8         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+;  V12 tmp7         [V12,T03] (  2,  2   )     int  ->   r9         single-def "field V01._length (fldOffset=0x8)" P-INDEP
 ;  V13 tmp8         [V13,T08] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
 ;  V14 tmp9         [V14,T09] (  2,  0   )     ref  ->  r15         single-def "argument with side effect"
 ;  V15 tmp10        [V15,T10] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
 ;
 ; Lcl frame size = 48
 
 G_M57374_IG01:
        push     rbp
        push     r15
        push     rbx
        sub      rsp, 48
        lea      rbp, [rsp+0x40]
-						;; size=13 bbWeight=1 PerfScore 3.75
+       mov      r8, rdx
+       mov      edx, esi
+       mov      r9d, ecx
+						;; size=21 bbWeight=1 PerfScore 4.50
 G_M57374_IG02:
-       xor      r9d, r9d
-       mov      dword ptr [rsp], r9d
+       lea      rsi, [rbp-0x18]
+       mov      qword ptr [rsp], rsi
        mov      dword ptr [rsp+0x08], 1
        mov      dword ptr [rsp+0x10], 1
-       lea      r9, [rbp-0x18]
-       lea      r8, [rbp-0x20]
+       mov      rsi, rdi
+       mov      rcx, r8
+       mov      r8d, r9d
+       lea      r9, [rbp-0x20]
+       xor      edi, edi
        mov      rax, 0xD1FFAB1E      ; code for System.Buffers.Text.Base64Helper:DecodeFrom[System.Buffers.Text.Base64Url+Base64UrlDecoderByte,ubyte](System.Buffers.Text.Base64Url+Base64UrlDecoderByte,System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,byref,ubyte,ubyte):int
        call     [rax]System.Buffers.Text.Base64Helper:DecodeFrom[System.Buffers.Text.Base64Url+Base64UrlDecoderByte,ubyte](System.Buffers.Text.Base64Url+Base64UrlDecoderByte,System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,byref,ubyte,ubyte):int
        test     eax, eax
        jne      SHORT G_M57374_IG04
        mov      eax, dword ptr [rbp-0x18]
-						;; size=50 bbWeight=1 PerfScore 9.75
+						;; size=58 bbWeight=1 PerfScore 10.50
 G_M57374_IG03:
        add      rsp, 48
        pop      rbx
        pop      r15
        pop      rbp
        ret      
 						;; size=9 bbWeight=1 PerfScore 2.75
 G_M57374_IG04:
        cmp      eax, 1
        je       SHORT G_M57374_IG05
        mov      rdi, 0xD1FFAB1E      ; System.FormatException
        call     CORINFO_HELP_NEWSFAST
        mov      rbx, rax
        mov      rax, 0xD1FFAB1E      ; code for System.SR:get_Format_BadBase64Char():System.String
        call     [rax]System.SR:get_Format_BadBase64Char():System.String
        mov      rsi, rax
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.FormatException:.ctor(System.String):this
        call     [rax]System.FormatException:.ctor(System.String):this
        mov      rdi, rbx
        call     CORINFO_HELP_THROW
        int3     
 						;; size=62 bbWeight=0 PerfScore 0.00
 G_M57374_IG05:
        mov      rdi, 0xD1FFAB1E      ; System.ArgumentException
        call     CORINFO_HELP_NEWSFAST
        mov      rbx, rax
        mov      rax, 0xD1FFAB1E      ; code for System.SR:get_Argument_DestinationTooShort():System.String
        call     [rax]System.SR:get_Argument_DestinationTooShort():System.String
        mov      r15, rax
        mov      edi, 0xD61
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
        mov      rdx, rax
        mov      rsi, r15
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentException:.ctor(System.String,System.String):this
        call     [rax]System.ArgumentException:.ctor(System.String,System.String):this
        mov      rdi, rbx
        call     CORINFO_HELP_THROW
        int3     
 						;; size=83 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 217, prolog size 13, PerfScore 16.25, instruction count 52, allocated bytes for code 217 (MethodHash=54601fe1) for method System.Buffers.Text.Base64Url:DecodeFromUtf8(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts)
+; Total bytes of code 233, prolog size 13, PerfScore 17.75, instruction count 58, allocated bytes for code 233 (MethodHash=54601fe1) for method System.Buffers.Text.Base64Url:DecodeFromUtf8(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts)
16 (10.88 % of base) - System.Buffers.Text.Base64Url:EncodeToUtf8(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int
 ; Assembly listing for method System.Buffers.Text.Base64Url:EncodeToUtf8(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.ReadOnlySpan`1[ubyte]>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Span`1[ubyte]>
 ;  V02 loc0         [V02    ] (  2,  2   )     int  ->  [rbp-0x18]  do-not-enreg[X] addr-exposed ld-addr-op
 ;  V03 loc1         [V03    ] (  1,  1   )     int  ->  [rbp-0x20]  do-not-enreg[X] addr-exposed ld-addr-op
 ;  V04 OutArgs      [V04    ] (  1,  1   )  struct (16) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V05 tmp1         [V05,T05] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
 ;* V06 tmp2         [V06,T04] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[S] ld-addr-op "Inline ldloca(s) first use temp" <System.Buffers.Text.Base64Url+Base64UrlEncoderByte>
 ;  V07 tmp3         [V07,T00] (  2,  2   )   byref  ->  rdi         single-def "field V00._reference (fldOffset=0x0)" P-INDEP
-;  V08 tmp4         [V08,T02] (  2,  2   )     int  ->  rsi         single-def "field V00._length (fldOffset=0x8)" P-INDEP
-;  V09 tmp5         [V09,T01] (  2,  2   )   byref  ->  rdx         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-;  V10 tmp6         [V10,T03] (  2,  2   )     int  ->  rcx         single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V08 tmp4         [V08,T02] (  2,  2   )     int  ->  rdx         single-def "field V00._length (fldOffset=0x8)" P-INDEP
+;  V09 tmp5         [V09,T01] (  2,  2   )   byref  ->   r8         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+;  V10 tmp6         [V10,T03] (  2,  2   )     int  ->   r9         single-def "field V01._length (fldOffset=0x8)" P-INDEP
 ;  V11 tmp7         [V11,T06] (  2,  0   )     ref  ->  r15         single-def "argument with side effect"
 ;  V12 tmp8         [V12,T07] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
 ;
 ; Lcl frame size = 32
 
 G_M40505_IG01:
        push     rbp
        push     r15
        push     rbx
        sub      rsp, 32
        lea      rbp, [rsp+0x30]
-						;; size=13 bbWeight=1 PerfScore 3.75
+       mov      r8, rdx
+       mov      edx, esi
+       mov      r9d, ecx
+						;; size=21 bbWeight=1 PerfScore 4.50
 G_M40505_IG02:
-       xor      r9d, r9d
-       mov      dword ptr [rsp], r9d
+       lea      rsi, [rbp-0x18]
+       mov      qword ptr [rsp], rsi
        mov      dword ptr [rsp+0x08], 1
-       lea      r9, [rbp-0x18]
-       lea      r8, [rbp-0x20]
+       mov      rsi, rdi
+       mov      rcx, r8
+       mov      r8d, r9d
+       lea      r9, [rbp-0x20]
+       xor      edi, edi
        mov      rax, 0xD1FFAB1E      ; code for System.Buffers.Text.Base64Helper:EncodeTo[System.Buffers.Text.Base64Url+Base64UrlEncoderByte,ubyte](System.Buffers.Text.Base64Url+Base64UrlEncoderByte,System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,byref,ubyte):int
        call     [rax]System.Buffers.Text.Base64Helper:EncodeTo[System.Buffers.Text.Base64Url+Base64UrlEncoderByte,ubyte](System.Buffers.Text.Base64Url+Base64UrlEncoderByte,System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,byref,ubyte):int
        test     eax, eax
        jne      SHORT G_M40505_IG04
        mov      eax, dword ptr [rbp-0x18]
-						;; size=42 bbWeight=1 PerfScore 8.75
+						;; size=50 bbWeight=1 PerfScore 9.50
 G_M40505_IG03:
        add      rsp, 32
        pop      rbx
        pop      r15
        pop      rbp
        ret      
 						;; size=9 bbWeight=1 PerfScore 2.75
 G_M40505_IG04:
        mov      rdi, 0xD1FFAB1E      ; System.ArgumentException
        call     CORINFO_HELP_NEWSFAST
        mov      rbx, rax
        mov      rax, 0xD1FFAB1E      ; code for System.SR:get_Argument_DestinationTooShort():System.String
        call     [rax]System.SR:get_Argument_DestinationTooShort():System.String
        mov      r15, rax
        mov      edi, 0xD61
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
        mov      rdx, rax
        mov      rsi, r15
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentException:.ctor(System.String,System.String):this
        call     [rax]System.ArgumentException:.ctor(System.String,System.String):this
        mov      rdi, rbx
        call     CORINFO_HELP_THROW
        int3     
 						;; size=83 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 147, prolog size 13, PerfScore 15.25, instruction count 37, allocated bytes for code 147 (MethodHash=6c7261c6) for method System.Buffers.Text.Base64Url:EncodeToUtf8(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts)
+; Total bytes of code 163, prolog size 13, PerfScore 16.75, instruction count 43, allocated bytes for code 163 (MethodHash=6c7261c6) for method System.Buffers.Text.Base64Url:EncodeToUtf8(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts)

Larger list of diffs: https://gist.github.com/MihuBot/e01adf1e5af6e0558c74ca9541438fb4

@MihuBot
Copy link
Owner Author

MihuBot commented Jun 27, 2024

Top method improvements

-54 (-2.16 % of base) - Microsoft.Extensions.Hosting.Internal.Host+d__17`1[System.__Canon]:MoveNext():this
 ; Assembly listing for method Microsoft.Extensions.Hosting.Internal.Host+<ForeachService>d__17`1[System.__Canon]:MoveNext():this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 25 single block inlinees; 15 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] ( 46, 76   )   byref  ->  [rbp-0x58]  this EH-live single-def
 ;  V01 TypeCtx      [V01,T14] ( 15, 22.52)    long  ->  [rbp-0x38]  EH-live single-def
 ;  V02 loc0         [V02,T23] ( 12, 21   )     int  ->  [rbp-0x3C]  do-not-enreg[Z] EH-live
 ;  V03 loc1         [V03,T01] ( 11, 63   )     ref  ->  [rbp-0x60]  do-not-enreg[Z] class-hnd EH-live <System.Collections.Generic.List`1[System.Threading.Tasks.Task]>
 ;  V04 loc2         [V04,T24] (  6, 17   )     ref  ->  [rbp-0x68]  class-hnd EH-live spill-single-def <System.Collections.Generic.IEnumerator`1[System.__Canon]>
 ;  V05 loc3         [V05,T25] (  2, 16   )     ref  ->  rsi         class-hnd <System.__Canon>
 ;  V06 loc4         [V06,T02] (  8, 60   )     ref  ->  r15         class-hnd <System.Threading.Tasks.Task>
 ;* V07 loc5         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Exception>
 ;  V08 loc6         [V08    ] ( 20, 49   )  struct (16) [rbp-0x50]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.ConfiguredTaskAwaitable+ConfiguredTaskAwaiter>
 ;* V09 loc7         [V09    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op <System.Runtime.CompilerServices.ConfiguredTaskAwaitable>
 ;* V10 loc8         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Exception>
 ;  V11 loc9         [V11,T29] (  2,  8   )     ref  ->  rbx         must-init class-hnd <System.__Canon>
 ;* V12 loc10        [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Exception>
 ;* V13 loc11        [V13    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Exception>
-;  V14 OutArgs      [V14    ] (  1,  1   )  struct ( 8) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;# V14 OutArgs      [V14    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V15 tmp1         [V15    ] (  0,  0   )     int  ->  zero-ref    "dup spill"
 ;* V16 tmp2         [V16    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;  V17 tmp3         [V17,T74] (  3,  0   )     ref  ->  rbx         class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
 ;* V18 tmp4         [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "non-inline candidate call" <System.Collections.Generic.List`1[System.Exception]>
 ;* V19 tmp5         [V19    ] (  0,  0   )     int  ->  zero-ref    "dup spill"
 ;* V20 tmp6         [V20    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;  V21 tmp7         [V21,T15] (  4, 24   )    long  ->  r11         "VirtualCall with runtime lookup"
 ;* V22 tmp8         [V22    ] (  0,  0   )     int  ->  zero-ref    "dup spill"
 ;* V23 tmp9         [V23    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;  V24 tmp10        [V24,T75] (  3,  0   )     ref  ->  rdx         class-hnd "impSpillSpecialSideEff" <System.Exception>
 ;* V25 tmp11        [V25    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;  V26 tmp12        [V26,T31] (  4,  6   )    long  ->  r11         "VirtualCall with runtime lookup"
 ;* V27 tmp13        [V27    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;  V28 tmp14        [V28,T32] (  4,  6   )    long  ->  r11         "VirtualCall with runtime lookup"
 ;* V29 tmp15        [V29    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;  V30 tmp16        [V30,T03] (  4, 48   )    long  ->  r11         "VirtualCall with runtime lookup"
 ;  V31 tmp17        [V31,T16] (  3, 24   )     ref  ->  r12         class-hnd exact "NewObj constructor temp" <System.Collections.Generic.List`1[System.Threading.Tasks.Task]>
 ;  V32 tmp18        [V32,T09] (  2, 32   )     ref  ->  rbx         class-hnd "impAppendStmt" <System.Collections.Generic.List`1[System.Exception]>
 ;  V33 tmp19        [V33,T76] (  3,  0   )     ref  ->  rdx         class-hnd "impSpillSpecialSideEff" <System.Exception>
 ;  V34 tmp20        [V34,T80] (  2,  0   )     ref  ->  rsi         class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
 ;  V35 tmp21        [V35,T68] (  7,  0   )     ref  ->  rdi         class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.Exception]>
 ;  V36 tmp22        [V36,T77] (  3,  0   )     ref  ->  rax         class-hnd "Inline stloc first use temp" <System.Exception[]>
 ;  V37 tmp23        [V37,T71] (  4,  0   )     int  ->  rbx         "Inline stloc first use temp"
 ;* V38 tmp24        [V38    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V39 tmp25        [V39    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.AggregateException>
 ;  V40 tmp26        [V40,T17] (  2, 16   )     ref  ->  rax         class-hnd "Inline stloc first use temp" <System.AggregateException>
 ;* V41 tmp27        [V41    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.AggregateException>
 ;  V42 tmp28        [V42,T12] (  5, 28   )     ref  ->  r14         class-hnd "Inline stloc first use temp" <System.AggregateException>
 ;* V43 tmp29        [V43    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.Collections.ObjectModel.ReadOnlyCollection`1[System.Exception]>
 ;  V44 tmp30        [V44,T10] (  2, 32   )     ref  ->  rsi         class-hnd "dup spill" <System.Collections.ObjectModel.ReadOnlyCollection`1[System.Exception]>
 ;  V45 tmp31        [V45,T13] (  4, 28   )     ref  ->  rsi        
 ;  V46 tmp32        [V46,T07] (  4, 32   )     ref  ->  r13         class-hnd exact "NewObj constructor temp" <System.Collections.ObjectModel.ReadOnlyCollection`1[System.Exception]>
 ;* V47 tmp33        [V47    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <System.Collections.ObjectModel.ReadOnlyCollection`1[System.Exception]>
 ;  V48 tmp34        [V48,T18] (  3, 24   )     ref  ->  rsi         class-hnd "Inlining Arg" <System.Exception[]>
 ;  V49 tmp35        [V49,T19] (  3, 24   )     ref  ->  rdi         class-hnd "Inline stloc first use temp" <System.Threading.Tasks.Task[]>
 ;  V50 tmp36        [V50,T08] (  4, 32   )     int  ->  rsi         "Inline stloc first use temp"
 ;  V51 tmp37        [V51,T33] (  3,  6   )     ref  ->  rsi         class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
 ;* V52 tmp38        [V52    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V53 tmp39        [V53    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V54 tmp40        [V54    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V55 tmp41        [V55    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredTaskAwaitable>
 ;* V56 tmp42        [V56    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredTaskAwaitable+ConfiguredTaskAwaiter>
 ;* V57 tmp43        [V57,T64] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V58 tmp44        [V58,T51] (  2,  4   )     ref  ->  rsi         class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
 ;* V59 tmp45        [V59    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;  V60 tmp46        [V60,T52] (  2,  4   )   byref  ->  r12         single-def "Inlining Arg"
 ;  V61 tmp47        [V61,T45] (  4,  4.40)    long  ->  rdi         "Inlining Arg"
 ;* V62 tmp48        [V62    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V63 tmp49        [V63    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;  V64 tmp50        [V64,T46] (  4,  4.40)    long  ->  rsi         "Inlining Arg"
 ;* V65 tmp51        [V65    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V66 tmp52        [V66    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Runtime.CompilerServices.IAsyncStateMachineBox>
 ;  V67 tmp53        [V67,T34] (  3,  6   )     ref  ->  rsi         class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
 ;  V68 tmp54        [V68,T57] (  2,  4   )     int  ->  rax         "Inlining Arg"
 ;  V69 tmp55        [V69,T69] (  7,  0   )     ref  ->  rdi         class-hnd single-def "Inlining Arg" <System.Collections.Generic.List`1[System.Exception]>
 ;  V70 tmp56        [V70,T78] (  3,  0   )     ref  ->  rax         class-hnd single-def "Inline stloc first use temp" <System.Exception[]>
 ;  V71 tmp57        [V71,T72] (  4,  0   )     int  ->  r14         single-def "Inline stloc first use temp"
 ;  V72 tmp58        [V72,T20] (  3, 24   )     ref  ->  rax         class-hnd "Inlining Arg" <System.__Canon>
 ;* V73 tmp59        [V73    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V74 tmp60        [V74    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V75 tmp61        [V75    ] (  0,  0   )     int  ->  zero-ref   
 ;* V76 tmp62        [V76    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredTaskAwaitable>
 ;* V77 tmp63        [V77    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredTaskAwaitable+ConfiguredTaskAwaiter>
 ;* V78 tmp64        [V78,T60] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V79 tmp65        [V79,T26] (  2, 16   )     ref  ->  rdi         class-hnd "Inlining Arg" <System.Threading.Tasks.Task>
 ;* V80 tmp66        [V80    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;  V81 tmp67        [V81,T53] (  2,  4   )   byref  ->  rbx         "Inlining Arg"
 ;  V82 tmp68        [V82,T47] (  4,  4.40)    long  ->  rdi         "Inlining Arg"
 ;* V83 tmp69        [V83    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V84 tmp70        [V84    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;  V85 tmp71        [V85,T48] (  4,  4.40)    long  ->  rsi         "Inlining Arg"
 ;* V86 tmp72        [V86    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V87 tmp73        [V87    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Runtime.CompilerServices.IAsyncStateMachineBox>
 ;  V88 tmp74        [V88,T04] (  3, 48   )     ref  ->  registers   class-hnd "Inlining Arg" <System.Threading.Tasks.Task>
 ;  V89 tmp75        [V89,T11] (  2, 32   )     int  ->  rsi         "Inlining Arg"
 ;  V90 tmp76        [V90,T70] (  7,  0   )     ref  ->  rdi         class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.Exception]>
 ;  V91 tmp77        [V91,T79] (  3,  0   )     ref  ->  rax         class-hnd "Inline stloc first use temp" <System.Exception[]>
 ;  V92 tmp78        [V92,T73] (  4,  0   )     int  ->  rbx         "Inline stloc first use temp"
 ;  V93 tmp79        [V93,T28] (  4,  8   )   byref  ->  rdi         single-def "Inlining Arg"
 ;* V94 tmp80        [V94,T65] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[S] ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.Tasks.VoidTaskResult>
 ;  V95 tmp81        [V95,T54] (  2,  4   )     ref  ->  rdi         class-hnd single-def "impAppendStmt" <System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]>
 ;  V96 tmp82        [V96    ] ( 12, 28   )     ref  ->  [rbp-0x50]  do-not-enreg[X] addr-exposed "field V08.m_task (fldOffset=0x0)" P-DEP
 ;  V97 tmp83        [V97    ] ( 12, 28   )     int  ->  [rbp-0x48]  do-not-enreg[X] addr-exposed "field V08.m_options (fldOffset=0x8)" P-DEP
 ;  V98 tmp84        [V98,T63] (  2,  2   )     ref  ->  rsi         single-def "field V56.m_task (fldOffset=0x0)" P-INDEP
 ;* V99 tmp85        [V99,T66] (  0,  0   )     int  ->  zero-ref    single-def "field V56.m_options (fldOffset=0x8)" P-INDEP
 ;  V100 tmp86       [V100,T30] (  2,  8   )     ref  ->  rax         "field V77.m_task (fldOffset=0x0)" P-INDEP
 ;* V101 tmp87       [V101,T61] (  0,  0   )     int  ->  zero-ref    "field V77.m_options (fldOffset=0x8)" P-INDEP
 ;  V102 tmp88       [V102,T58] (  2,  4   )    long  ->  rdi         "argument with side effect"
 ;  V103 tmp89       [V103,T55] (  2,  4   )     ref  ->  rsi         "argument with side effect"
 ;  V104 tmp90       [V104,T59] (  2,  4   )    long  ->  rdi         "argument with side effect"
 ;  V105 tmp91       [V105,T56] (  2,  4   )     ref  ->  rsi         single-def "argument with side effect"
 ;  V106 tmp92       [V106,T81] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
 ;  V107 tmp93       [V107,T82] (  2,  0   )     ref  ->  rbx         single-def "argument with side effect"
-;  V108 PSPSym      [V108,T67] (  1,  1   )    long  ->  [rbp-0x78]  do-not-enreg[V] "PSPSym"
+;  V108 PSPSym      [V108,T67] (  1,  1   )    long  ->  [rbp-0x70]  do-not-enreg[V] "PSPSym"
 ;  V109 cse0        [V109,T62] (  3,  3   )     ref  ->  rdi         "CSE #13: conservative"
 ;  V110 cse1        [V110,T27] (  6, 15   )   byref  ->  rbx         multi-def "CSE #02: moderate"
 ;  V111 rat0        [V111,T35] (  3,  5.60)    long  ->  r11         "spilling expr"
 ;  V112 rat1        [V112,T43] (  3,  4.48)    long  ->  r11         "fgMakeTemp is creating a new local variable"
 ;  V113 rat2        [V113,T06] (  3, 44.80)    long  ->  r11         "fgMakeTemp is creating a new local variable"
 ;  V114 rat3        [V114,T36] (  3,  5.60)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
 ;  V115 rat4        [V115,T37] (  3,  5.60)    long  ->  rsi         "fgMakeTemp is creating a new local variable"
 ;  V116 rat5        [V116,T49] (  3,  4   )    long  ->  rdi         "runtime lookup"
 ;  V117 rat6        [V117,T38] (  3,  5.60)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
 ;  V118 rat7        [V118,T39] (  3,  5.60)    long  ->  rsi         "spilling expr"
 ;  V119 rat8        [V119,T44] (  3,  4.48)    long  ->  r11         "fgMakeTemp is creating a new local variable"
 ;  V120 rat9        [V120,T22] (  3, 22.40)    long  ->  r11         "fgMakeTemp is creating a new local variable"
 ;  V121 rat10       [V121,T40] (  3,  5.60)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
 ;  V122 rat11       [V122,T41] (  3,  5.60)    long  ->  rsi         "fgMakeTemp is creating a new local variable"
 ;  V123 rat12       [V123,T50] (  3,  4   )    long  ->  rdi         "runtime lookup"
 ;  V124 rat13       [V124,T42] (  3,  5.60)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
 ;  V125 rat14       [V125,T05] (  3, 48   )     ref  ->  rax         "delegate invoke call"
 ;  V126 rat15       [V126,T21] (  3, 24   )     ref  ->  rax         "delegate invoke call"
 ;
-; Lcl frame size = 88
+; Lcl frame size = 72
 
 G_M60193_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
-       sub      rsp, 88
-       lea      rbp, [rsp+0x80]
+       sub      rsp, 72
+       lea      rbp, [rsp+0x70]
        xor      ebx, ebx
        mov      qword ptr [rbp-0x50], rbx
        mov      qword ptr [rbp-0x48], rbx
-       mov      qword ptr [rbp-0x78], rsp
+       mov      qword ptr [rbp-0x70], rsp
        mov      qword ptr [rbp-0x30], rsi
        mov      bword ptr [rbp-0x58], rdi
        mov      qword ptr [rbp-0x38], rsi
        mov      rax, rsi
-						;; size=51 bbWeight=1 PerfScore 13.25
+						;; size=48 bbWeight=1 PerfScore 13.25
 G_M60193_IG02:
        mov      r11d, dword ptr [rdi+0x28]
        mov      dword ptr [rbp-0x3C], r11d
 						;; size=8 bbWeight=1 PerfScore 3.00
 G_M60193_IG03:
        cmp      dword ptr [rbp-0x3C], 0
        je       G_M60193_IG29
        cmp      dword ptr [rbp-0x3C], 1
        je       G_M60193_IG42
        cmp      byte  ptr [rdi+0x2C], 0
        je       SHORT G_M60193_IG06
        xor      r11, r11
        mov      gword ptr [rbp-0x60], r11
        mov      r11, qword ptr [rax+0x30]
        mov      r11, qword ptr [r11]
        cmp      qword ptr [r11+0x08], 32
        jle      G_M60193_IG65
 						;; size=51 bbWeight=1 PerfScore 19.25
 G_M60193_IG04:
        mov      r11, qword ptr [r11+0x20]
        test     r11, r11
        je       G_M60193_IG65
 						;; size=13 bbWeight=0.80 PerfScore 2.60
 G_M60193_IG05:
        mov      rdi, gword ptr [rdi]
        call     [r11]
        mov      gword ptr [rbp-0x68], rax
        jmp      SHORT G_M60193_IG10
 						;; size=12 bbWeight=1 PerfScore 8.00
 G_M60193_IG06:
        mov      rsi, qword ptr [rax+0x30]
        mov      rsi, qword ptr [rsi]
        cmp      qword ptr [rsi+0x08], 32
        jle      SHORT G_M60193_IG09
 						;; size=14 bbWeight=1 PerfScore 8.00
 G_M60193_IG07:
        mov      r11, qword ptr [rsi+0x20]
        test     r11, r11
        je       SHORT G_M60193_IG09
 						;; size=9 bbWeight=0.80 PerfScore 2.60
 G_M60193_IG08:
        mov      rdi, gword ptr [rdi]
        call     [r11]
        mov      rsi, bword ptr [rbp-0x58]
        lea      rdi, bword ptr [rsi+0x20]
        mov      rsi, rax
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
        mov      rax, qword ptr [rbp-0x38]
        mov      rdi, bword ptr [rbp-0x58]
        jmp      G_M60193_IG42
 						;; size=35 bbWeight=1 PerfScore 11.75
 G_M60193_IG09:
        mov      rdi, rax
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
        mov      r11, rax
        mov      rdi, bword ptr [rbp-0x58]
        jmp      SHORT G_M60193_IG08
 						;; size=27 bbWeight=0.36 PerfScore 1.71
 G_M60193_IG10:
        mov      rdi, gword ptr [rbp-0x68]
        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerator:MoveNext():ubyte:this
        call     [r11]System.Collections.IEnumerator:MoveNext():ubyte:this
        test     eax, eax
        je       G_M60193_IG27
        mov      rax, qword ptr [rbp-0x38]
        mov      rdi, qword ptr [rax+0x30]
        mov      rdi, qword ptr [rdi]
        mov      r11, qword ptr [rdi+0x18]
        test     r11, r11
        je       SHORT G_M60193_IG12
 						;; size=45 bbWeight=8 PerfScore 110.00
 G_M60193_IG11:
        mov      rdi, gword ptr [rbp-0x68]
        call     [r11]
        mov      rsi, rax
        jmp      SHORT G_M60193_IG13
 						;; size=12 bbWeight=8 PerfScore 50.00
 G_M60193_IG12:
        mov      rdi, rax
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
        mov      r11, rax
        jmp      SHORT G_M60193_IG11
 						;; size=23 bbWeight=1.60 PerfScore 6.00
 G_M60193_IG13:
        mov      rdi, bword ptr [rbp-0x58]
        mov      rax, gword ptr [rdi+0x08]
        mov      rdx, gword ptr [rdi+0x38]
        mov      rdi, gword ptr [rax+0x08]
        call     [rax+0x18]System.Func`3[System.__Canon,System.Threading.CancellationToken,System.__Canon]:Invoke(System.__Canon,System.Threading.CancellationToken):System.__Canon:this
        mov      r15, rax
 						;; size=22 bbWeight=8 PerfScore 82.00
 G_M60193_IG14:
        test     dword ptr [r15+0x34], 0xD1FFAB1E
        je       G_M60193_IG18
        test     dword ptr [r15+0x34], 0xD1FFAB1E
        je       SHORT G_M60193_IG10
        mov      rdi, r15
        xor      esi, esi
        mov      rcx, 0xD1FFAB1E      ; code for System.Threading.Tasks.Task:GetExceptions(ubyte):System.AggregateException:this
        call     [rcx]System.Threading.Tasks.Task:GetExceptions(ubyte):System.AggregateException:this
        test     rax, rax
        je       G_M60193_IG10
        mov      rax, gword ptr [rbp-0x68]
        mov      rdi, bword ptr [rbp-0x58]
        mov      rbx, gword ptr [rdi+0x10]
        xor      r14, r14
        test     dword ptr [r15+0x34], 0xD1FFAB1E
        je       SHORT G_M60193_IG16
 						;; size=75 bbWeight=8 PerfScore 170.00
 G_M60193_IG15:
        mov      rdi, r15
        xor      esi, esi
        mov      rcx, 0xD1FFAB1E      ; code for System.Threading.Tasks.Task:GetExceptions(ubyte):System.AggregateException:this
        call     [rcx]System.Threading.Tasks.Task:GetExceptions(ubyte):System.AggregateException:this
        mov      r14, rax
        mov      rax, gword ptr [rbp-0x68]
 						;; size=24 bbWeight=4 PerfScore 20.00
 G_M60193_IG16:
        mov      rsi, gword ptr [r14+0x80]
        test     rsi, rsi
        jne      G_M60193_IG24
 						;; size=16 bbWeight=8 PerfScore 26.00
 G_M60193_IG17:
        mov      rdi, 0xD1FFAB1E      ; System.Collections.ObjectModel.ReadOnlyCollection`1[System.Exception]
        call     CORINFO_HELP_NEWSFAST
        mov      r13, rax
        mov      rsi, gword ptr [r14+0x78]
        test     rsi, rsi
        jne      G_M60193_IG23
        jmp      G_M60193_IG26
 						;; size=36 bbWeight=4 PerfScore 27.00
 G_M60193_IG18:
        cmp      gword ptr [rbp-0x60], 0
        jne      SHORT G_M60193_IG21
 						;; size=7 bbWeight=8 PerfScore 24.00
 G_M60193_IG19:
        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List`1[System.Threading.Tasks.Task]
        call     CORINFO_HELP_NEWSFAST
        mov      r12, rax
        mov      rdi, 0xD1FFAB1E      ; global ptr
        test     byte  ptr [rdi], 1
        je       G_M60193_IG25
 						;; size=37 bbWeight=4 PerfScore 23.00
 G_M60193_IG20:
        mov      rdi, 0xD1FFAB1E      ; data for System.Collections.Generic.List`1[System.Threading.Tasks.Task]:s_emptyArray
        mov      rsi, gword ptr [rdi]
        lea      rdi, bword ptr [r12+0x08]
        call     CORINFO_HELP_ASSIGN_REF
        mov      gword ptr [rbp-0x60], r12
 						;; size=27 bbWeight=4 PerfScore 19.00
 G_M60193_IG21:
        mov      rsi, gword ptr [rbp-0x60]
        inc      dword ptr [rsi+0x14]
        mov      rsi, gword ptr [rbp-0x60]
        mov      rdi, gword ptr [rsi+0x08]
        mov      rsi, gword ptr [rbp-0x60]
        mov      esi, dword ptr [rsi+0x10]
        cmp      dword ptr [rdi+0x08], esi
        jbe      SHORT G_M60193_IG22
        lea      edx, [rsi+0x01]
        mov      rax, gword ptr [rbp-0x60]
        mov      dword ptr [rax+0x10], edx
        movsxd   rsi, esi
        mov      rdx, r15
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ARRADDR_ST
        call     [rax]CORINFO_HELP_ARRADDR_ST
        jmp      G_M60193_IG10
 						;; size=60 bbWeight=8 PerfScore 178.00
 G_M60193_IG22:
        mov      rdi, gword ptr [rbp-0x60]
        mov      rsi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
        call     [rax]System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
        jmp      G_M60193_IG10
 						;; size=24 bbWeight=8 PerfScore 52.00
 G_M60193_IG23:
        lea      rdi, bword ptr [r13+0x08]
        call     CORINFO_HELP_ASSIGN_REF
        lea      rdi, bword ptr [r14+0x80]
        mov      rsi, r13
        call     CORINFO_HELP_ASSIGN_REF
        mov      rsi, r13
 						;; size=27 bbWeight=4 PerfScore 14.00
 G_M60193_IG24:
        mov      rdi, rbx
        mov      rcx, 0xD1FFAB1E      ; code for System.Collections.Generic.List`1[System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.__Canon]):this
        cmp      dword ptr [rdi], edi
        call     [rcx]System.Collections.Generic.List`1[System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.__Canon]):this
        jmp      G_M60193_IG10
 						;; size=22 bbWeight=8 PerfScore 68.00
 G_M60193_IG25:
        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List`1[System.Threading.Tasks.Task]
        call     CORINFO_HELP_GET_GCSTATIC_BASE
        jmp      G_M60193_IG20
 						;; size=20 bbWeight=0 PerfScore 0.00
 G_M60193_IG26:
        mov      edi, 20
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentNullException(int)
        call     [rax]System.ThrowHelper:ThrowArgumentNullException(int)
        int3     
 						;; size=18 bbWeight=0 PerfScore 0.00
 G_M60193_IG27:
        cmp      dword ptr [rbp-0x3C], 0
        jge      SHORT G_M60193_IG28
        mov      rdi, gword ptr [rbp-0x68]
        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this
        call     [r11]System.IDisposable:Dispose():this
 						;; size=23 bbWeight=1 PerfScore 7.25
 G_M60193_IG28:
        cmp      gword ptr [rbp-0x60], 0
        je       G_M60193_IG68
        mov      rdi, gword ptr [rbp-0x60]
        mov      rax, 0xD1FFAB1E      ; code for System.Threading.Tasks.Task:WhenAll(System.Collections.Generic.IEnumerable`1[System.Threading.Tasks.Task]):System.Threading.Tasks.Task
        call     [rax]System.Threading.Tasks.Task:WhenAll(System.Collections.Generic.IEnumerable`1[System.Threading.Tasks.Task]):System.Threading.Tasks.Task
        mov      rdi, bword ptr [rbp-0x58]
        lea      rdi, bword ptr [rdi+0x18]
        mov      rsi, rax
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
        mov      rax, qword ptr [rbp-0x38]
        mov      rdi, bword ptr [rbp-0x58]
 						;; size=51 bbWeight=1 PerfScore 12.00
 G_M60193_IG29:
        cmp      dword ptr [rbp-0x3C], 0
        je       G_M60193_IG34
        mov      rsi, gword ptr [rdi+0x18]
        cmp      byte  ptr [rsi], sil
        mov      gword ptr [rbp-0x50], rsi
        xor      esi, esi
        mov      dword ptr [rbp-0x48], esi
        test     byte  ptr [rbp-0x48], 4
        jne      SHORT G_M60193_IG30
        mov      rsi, gword ptr [rbp-0x50]
        test     dword ptr [rsi+0x34], 0xD1FFAB1E
        jne      G_M60193_IG37
 						;; size=49 bbWeight=1 PerfScore 18.25
 G_M60193_IG30:
        xor      esi, esi
        mov      dword ptr [rdi+0x28], esi
        lea      rdi, bword ptr [rdi+0x40]
        mov      rsi, gword ptr [rbp-0x50]
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
        mov      edi, dword ptr [rbp-0x48]
        mov      r15, bword ptr [rbp-0x58]
        mov      dword ptr [r15+0x48], edi
        mov      rax, qword ptr [rbp-0x38]
        mov      rdi, qword ptr [rax+0x30]
        mov      rdi, qword ptr [rdi]
        mov      rdi, qword ptr [rdi+0x10]
        test     rdi, rdi
        je       G_M60193_IG38
 						;; size=53 bbWeight=1 PerfScore 15.00
 G_M60193_IG31:
        lea      r12, bword ptr [r15+0x30]
        mov      rsi, qword ptr [rdi+0x18]
        mov      rsi, qword ptr [rsi+0x18]
        test     rsi, rsi
        je       G_M60193_IG39
 						;; size=21 bbWeight=1 PerfScore 5.75
 G_M60193_IG32:
        mov      rdi, qword ptr [rsi+0x18]
        mov      rdi, qword ptr [rdi+0x18]
        test     rdi, rdi
        je       G_M60193_IG40
 						;; size=17 bbWeight=1 PerfScore 5.25
 G_M60193_IG33:
        mov      rsi, r15
        mov      rdx, r12
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[System.Threading.Tasks.VoidTaskResult]:GetStateMachineBox[Microsoft.Extensions.Hosting.Internal.Host+<ForeachService>d__17`1[System.__Canon]](byref,byref):System.Runtime.CompilerServices.IAsyncStateMachineBox
        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[System.Threading.Tasks.VoidTaskResult]:GetStateMachineBox[Microsoft.Extensions.Hosting.Internal.Host+<ForeachService>d__17`1[System.__Canon]](byref,byref):System.Runtime.CompilerServices.IAsyncStateMachineBox
        mov      rsi, rax
        lea      rdi, [rbp-0x50]
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[System.Threading.Tasks.VoidTaskResult]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable+ConfiguredTaskAwaiter](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)
        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[System.Threading.Tasks.VoidTaskResult]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable+ConfiguredTaskAwaiter](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)
        jmp      G_M60193_IG70
 						;; size=42 bbWeight=1 PerfScore 9.75
 G_M60193_IG34:
        lea      rbx, bword ptr [rdi+0x40]
 						;; size=4 bbWeight=1 PerfScore 0.50
 G_M60193_IG35:
        vmovdqu  xmm0, xmmword ptr [rbx]
        vmovdqu  xmmword ptr [rbp-0x50], xmm0
 						;; size=9 bbWeight=1 PerfScore 5.00
 G_M60193_IG36:
        xor      esi, esi
        mov      qword ptr [rbx], rsi
        mov      qword ptr [rbx+0x08], rsi
        mov      dword ptr [rdi+0x28], -1
        mov      rdi, bword ptr [rbp-0x58]
 						;; size=20 bbWeight=1 PerfScore 4.25
 G_M60193_IG37:
        mov      rsi, gword ptr [rbp-0x50]
        mov      eax, dword ptr [rbp-0x48]
        mov      ecx, dword ptr [rsi+0x34]
        and      ecx, 0xD1FFAB1E
        cmp      ecx, 0xD1FFAB1E
        je       SHORT G_M60193_IG41
        mov      rdi, rsi
        mov      esi, eax
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.TaskAwaiter:HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task,int)
        call     [rax]System.Runtime.CompilerServices.TaskAwaiter:HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task,int)
        jmp      SHORT G_M60193_IG41
 						;; size=43 bbWeight=1 PerfScore 11.25
 G_M60193_IG38:
        mov      rdi, rax
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
        mov      rdi, rax
        jmp      G_M60193_IG31
 						;; size=26 bbWeight=0.20 PerfScore 0.75
 G_M60193_IG39:
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_METHOD
        mov      rsi, rax
        jmp      G_M60193_IG32
 						;; size=23 bbWeight=0.20 PerfScore 0.70
 G_M60193_IG40:
        mov      rdi, rsi
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_METHOD
        mov      rdi, rax
        jmp      G_M60193_IG33
 						;; size=26 bbWeight=0.20 PerfScore 0.75
 G_M60193_IG41:
        xor      rdi, rdi
        mov      r15, bword ptr [rbp-0x58]
        mov      gword ptr [r15+0x18], rdi
        jmp      G_M60193_IG68
 						;; size=15 bbWeight=1 PerfScore 4.25
 G_M60193_IG42:
        cmp      dword ptr [rbp-0x3C], 1
        je       SHORT G_M60193_IG46
 						;; size=6 bbWeight=1 PerfScore 3.00
 G_M60193_IG43:
        mov      r15, bword ptr [rbp-0x58]
        mov      rdi, gword ptr [r15+0x20]
        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerator:MoveNext():ubyte:this
        call     [r11]System.Collections.IEnumerator:MoveNext():ubyte:this
        test     eax, eax
        je       G_M60193_IG63
        mov      rax, qword ptr [rbp-0x38]
        mov      rdi, qword ptr [rax+0x30]
        mov      rdi, qword ptr [rdi]
        mov      r11, qword ptr [rdi+0x18]
        test     r11, r11
        je       SHORT G_M60193_IG45
 						;; size=49 bbWeight=4 PerfScore 63.00
 G_M60193_IG44:
        mov      rdi, gword ptr [r15+0x20]
        call     [r11]
        mov      rbx, rax
        jmp      SHORT G_M60193_IG46
 						;; size=12 bbWeight=4 PerfScore 29.00
 G_M60193_IG45:
        mov      rdi, rax
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
        mov      r11, rax
        jmp      SHORT G_M60193_IG44
 						;; size=23 bbWeight=0.80 PerfScore 3.00
 G_M60193_IG46:
        mov      r15, bword ptr [rbp-0x58]
        cmp      dword ptr [rbp-0x3C], 1
        je       G_M60193_IG53
 						;; size=14 bbWeight=8 PerfScore 32.00
 G_M60193_IG47:
        mov      rax, gword ptr [r15+0x08]
        mov      rdx, gword ptr [r15+0x38]
        mov      rsi, rbx
        mov      rdi, gword ptr [rax+0x08]
        call     [rax+0x18]System.Func`3[System.__Canon,System.Threading.CancellationToken,System.__Canon]:Invoke(System.__Canon,System.Threading.CancellationToken):System.__Canon:this
        cmp      byte  ptr [rax], al
        mov      gword ptr [rbp-0x50], rax
        xor      edi, edi
        mov      dword ptr [rbp-0x48], edi
        test     byte  ptr [rbp-0x48], 4
        jne      SHORT G_M60193_IG48
        mov      rdi, gword ptr [rbp-0x50]
        test     dword ptr [rdi+0x34], 0xD1FFAB1E
        jne      G_M60193_IG56
 						;; size=52 bbWeight=4 PerfScore 90.00
 G_M60193_IG48:
        mov      dword ptr [rbp-0x3C], 1
        mov      dword ptr [r15+0x28], 1
        lea      rdi, bword ptr [r15+0x40]
        mov      rsi, gword ptr [rbp-0x50]
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
        mov      edi, dword ptr [rbp-0x48]
        mov      dword ptr [r15+0x48], edi
        mov      rax, qword ptr [rbp-0x38]
        mov      rdi, qword ptr [rax+0x30]
        mov      rdi, qword ptr [rdi]
        mov      rdi, qword ptr [rdi+0x10]
        test     rdi, rdi
        je       G_M60193_IG57
 						;; size=59 bbWeight=1 PerfScore 14.75
 G_M60193_IG49:
        mov      rax, qword ptr [rbp-0x38]
 						;; size=4 bbWeight=0.80 PerfScore 0.80
 G_M60193_IG50:
        lea      rbx, bword ptr [r15+0x30]
        mov      rsi, qword ptr [rdi+0x18]
        mov      rsi, qword ptr [rsi+0x18]
        test     rsi, rsi
        je       G_M60193_IG58
 						;; size=21 bbWeight=1 PerfScore 5.75
 G_M60193_IG51:
        mov      rdi, qword ptr [rsi+0x18]
        mov      rdi, qword ptr [rdi+0x18]
        test     rdi, rdi
        je       G_M60193_IG59
 						;; size=17 bbWeight=1 PerfScore 5.25
 G_M60193_IG52:
        mov      rsi, r15
        mov      rdx, rbx
        mov      rcx, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[System.Threading.Tasks.VoidTaskResult]:GetStateMachineBox[Microsoft.Extensions.Hosting.Internal.Host+<ForeachService>d__17`1[System.__Canon]](byref,byref):System.Runtime.CompilerServices.IAsyncStateMachineBox
        call     [rcx]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[System.Threading.Tasks.VoidTaskResult]:GetStateMachineBox[Microsoft.Extensions.Hosting.Internal.Host+<ForeachService>d__17`1[System.__Canon]](byref,byref):System.Runtime.CompilerServices.IAsyncStateMachineBox
        mov      rsi, rax
        lea      rdi, [rbp-0x50]
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[System.Threading.Tasks.VoidTaskResult]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable+ConfiguredTaskAwaiter](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)
        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[System.Threading.Tasks.VoidTaskResult]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable+ConfiguredTaskAwaiter](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)
        jmp      G_M60193_IG61
 						;; size=42 bbWeight=1 PerfScore 9.75
 G_M60193_IG53:
        lea      rbx, bword ptr [r15+0x40]
 						;; size=4 bbWeight=4 PerfScore 2.00
 G_M60193_IG54:
        vmovdqu  xmm0, xmmword ptr [rbx]
        vmovdqu  xmmword ptr [rbp-0x50], xmm0
 						;; size=9 bbWeight=4 PerfScore 20.00
 G_M60193_IG55:
        xor      edi, edi
        mov      qword ptr [rbx], rdi
        mov      qword ptr [rbx+0x08], rdi
        mov      dword ptr [rbp-0x3C], -1
        mov      dword ptr [r15+0x28], -1
        mov      r15, bword ptr [rbp-0x58]
 						;; size=28 bbWeight=4 PerfScore 21.00
 G_M60193_IG56:
        mov      rdi, gword ptr [rbp-0x50]
        mov      esi, dword ptr [rbp-0x48]
        mov      eax, dword ptr [rdi+0x34]
        and      eax, 0xD1FFAB1E
        cmp      eax, 0xD1FFAB1E
        je       G_M60193_IG43
        mov      rcx, rdi
        mov      rdi, rcx
        mov      rcx, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.TaskAwaiter:HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task,int)
        call     [rcx]System.Runtime.CompilerServices.TaskAwaiter:HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task,int)
        jmp      G_M60193_IG43
 						;; size=49 bbWeight=8 PerfScore 90.00
 G_M60193_IG57:
        mov      rax, qword ptr [rbp-0x38]
        mov      rdi, rax
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
        mov      rdi, rax
        mov      rax, qword ptr [rbp-0x38]
        jmp      G_M60193_IG50
 						;; size=34 bbWeight=0.20 PerfScore 1.15
 G_M60193_IG58:
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_METHOD
        mov      rsi, rax
        mov      rax, qword ptr [rbp-0x38]
        jmp      G_M60193_IG51
 						;; size=27 bbWeight=0.20 PerfScore 0.90
 G_M60193_IG59:
        mov      rdi, rsi
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_METHOD
        mov      rdi, rax
        jmp      G_M60193_IG52
 						;; size=26 bbWeight=0.20 PerfScore 0.75
 G_M60193_IG60:
        nop      
        jmp      SHORT G_M60193_IG66
 						;; size=3 bbWeight=0 PerfScore 0.00
 G_M60193_IG61:
        mov      rdi, rsp
 						;; size=3 bbWeight=1 PerfScore 0.25
 G_M60193_IG62:
        call     G_M60193_IG94
        jmp      G_M60193_IG70
 						;; size=10 bbWeight=1 PerfScore 3.00
 G_M60193_IG63:
        cmp      dword ptr [rbp-0x3C], 0
        jge      SHORT G_M60193_IG64
        cmp      gword ptr [r15+0x20], 0
        je       SHORT G_M60193_IG64
        mov      rdi, gword ptr [r15+0x20]
        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this
        call     [r11]System.IDisposable:Dispose():this
 						;; size=30 bbWeight=1 PerfScore 12.25
 G_M60193_IG64:
        xor      rdi, rdi
        mov      gword ptr [r15+0x20], rdi
        jmp      SHORT G_M60193_IG68
 						;; size=8 bbWeight=1 PerfScore 3.25
 G_M60193_IG65:
        mov      rax, qword ptr [rbp-0x38]
        mov      rdi, rax
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
        mov      r11, rax
        mov      rdi, bword ptr [rbp-0x58]
        jmp      G_M60193_IG05
 						;; size=34 bbWeight=0.36 PerfScore 2.07
 G_M60193_IG66:
        mov      rdi, rsp
 						;; size=3 bbWeight=0 PerfScore 0.00
 G_M60193_IG67:
        call     G_M60193_IG94
        nop      
 						;; size=6 bbWeight=0 PerfScore 0.00
 G_M60193_IG68:
        mov      r15, bword ptr [rbp-0x58]
        mov      dword ptr [r15+0x28], -2
        lea      rdi, bword ptr [r15+0x30]
        cmp      gword ptr [rdi], 0
        jne      SHORT G_M60193_IG69
        mov      rsi, 0xD1FFAB1E      ; const ptr
        mov      rsi, gword ptr [rsi]
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
        jmp      SHORT G_M60193_IG70
 						;; size=42 bbWeight=1 PerfScore 11.75
 G_M60193_IG69:
        mov      rdi, gword ptr [rdi]
-       xor      eax, eax
-       mov      dword ptr [rsp], eax
+       xor      esi, esi
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[System.Threading.Tasks.VoidTaskResult]:SetExistingTaskResult(System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult],System.Threading.Tasks.VoidTaskResult)
        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[System.Threading.Tasks.VoidTaskResult]:SetExistingTaskResult(System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult],System.Threading.Tasks.VoidTaskResult)
-						;; size=20 bbWeight=1 PerfScore 6.50
+						;; size=17 bbWeight=1 PerfScore 5.50
 G_M60193_IG70:
        nop      
 						;; size=1 bbWeight=1 PerfScore 0.25
 G_M60193_IG71:
-       add      rsp, 88
+       add      rsp, 72
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=1 PerfScore 4.25
 G_M60193_IG72:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
-       sub      rsp, 24
-       mov      rbp, qword ptr [rdi+0x08]
-       mov      qword ptr [rsp+0x08], rbp
-       lea      rbp, [rbp+0x80]
-						;; size=30 bbWeight=0 PerfScore 0.00
+       push     rax
+       mov      rbp, qword ptr [rdi]
+       mov      qword ptr [rsp], rbp
+       lea      rbp, [rbp+0x70]
+						;; size=22 bbWeight=0 PerfScore 0.00
 G_M60193_IG73:
        mov      rdx, rsi
        mov      r15, bword ptr [rbp-0x58]
        mov      rdi, gword ptr [r15+0x10]
        inc      dword ptr [rdi+0x14]
        mov      rax, gword ptr [rdi+0x08]
        mov      ebx, dword ptr [rdi+0x10]
        cmp      dword ptr [rax+0x08], ebx
        ja       SHORT G_M60193_IG74
        mov      rsi, rdx
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
        call     [rax]System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
        jmp      SHORT G_M60193_IG75
 						;; size=43 bbWeight=0 PerfScore 0.00
 G_M60193_IG74:
        lea      esi, [rbx+0x01]
        mov      dword ptr [rdi+0x10], esi
        movsxd   rsi, ebx
        mov      rdi, rax
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ARRADDR_ST
        call     [rax]CORINFO_HELP_ARRADDR_ST
 						;; size=24 bbWeight=0 PerfScore 0.00
 G_M60193_IG75:
        lea      rax, G_M60193_IG10
 						;; size=7 bbWeight=0 PerfScore 0.00
 G_M60193_IG76:
-       add      rsp, 24
+       add      rsp, 8
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0 PerfScore 0.00
 G_M60193_IG77:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
-       sub      rsp, 24
-       mov      rbp, qword ptr [rdi+0x08]
-       mov      qword ptr [rsp+0x08], rbp
-       lea      rbp, [rbp+0x80]
-						;; size=30 bbWeight=0 PerfScore 0.00
+       push     rax
+       mov      rbp, qword ptr [rdi]
+       mov      qword ptr [rsp], rbp
+       lea      rbp, [rbp+0x70]
+						;; size=22 bbWeight=0 PerfScore 0.00
 G_M60193_IG78:
        cmp      dword ptr [rbp-0x3C], 0
        jge      SHORT G_M60193_IG79
        cmp      gword ptr [rbp-0x68], 0
        je       SHORT G_M60193_IG79
        mov      rdi, gword ptr [rbp-0x68]
        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this
        call     [r11]System.IDisposable:Dispose():this
 						;; size=30 bbWeight=0 PerfScore 0.00
 G_M60193_IG79:
        nop      
 						;; size=1 bbWeight=0 PerfScore 0.00
 G_M60193_IG80:
-       add      rsp, 24
+       add      rsp, 8
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0 PerfScore 0.00
 G_M60193_IG81:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
-       sub      rsp, 24
-       mov      rbp, qword ptr [rdi+0x08]
-       mov      qword ptr [rsp+0x08], rbp
-       lea      rbp, [rbp+0x80]
-						;; size=30 bbWeight=0 PerfScore 0.00
+       push     rax
+       mov      rbp, qword ptr [rdi]
+       mov      qword ptr [rsp], rbp
+       lea      rbp, [rbp+0x70]
+						;; size=22 bbWeight=0 PerfScore 0.00
 G_M60193_IG82:
        mov      rbx, rsi
        mov      r15, bword ptr [rbp-0x58]
        mov      rdi, gword ptr [r15+0x18]
        mov      rax, 0xD1FFAB1E      ; code for System.Threading.Tasks.Task:get_IsFaulted():ubyte:this
        cmp      dword ptr [rdi], edi
        call     [rax]System.Threading.Tasks.Task:get_IsFaulted():ubyte:this
        test     eax, eax
        jne      SHORT G_M60193_IG84
        mov      rdi, gword ptr [r15+0x10]
        inc      dword ptr [rdi+0x14]
        mov      rax, gword ptr [rdi+0x08]
        mov      r14d, dword ptr [rdi+0x10]
        cmp      dword ptr [rax+0x08], r14d
        ja       SHORT G_M60193_IG83
        mov      rsi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
        call     [rax]System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
        jmp      SHORT G_M60193_IG85
 						;; size=67 bbWeight=0 PerfScore 0.00
 G_M60193_IG83:
        lea      esi, [r14+0x01]
        mov      dword ptr [rdi+0x10], esi
        movsxd   rsi, r14d
        mov      rdi, rax
        mov      rdx, rbx
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ARRADDR_ST
        call     [rax]CORINFO_HELP_ARRADDR_ST
        jmp      SHORT G_M60193_IG85
 						;; size=30 bbWeight=0 PerfScore 0.00
 G_M60193_IG84:
        mov      rbx, gword ptr [r15+0x10]
        mov      rdi, gword ptr [r15+0x18]
        mov      rax, 0xD1FFAB1E      ; code for System.Threading.Tasks.Task:get_Exception():System.AggregateException:this
        cmp      dword ptr [rdi], edi
        call     [rax]System.Threading.Tasks.Task:get_Exception():System.AggregateException:this
        mov      rdi, rax
        mov      rax, 0xD1FFAB1E      ; code for System.AggregateException:get_InnerExceptions():System.Collections.ObjectModel.ReadOnlyCollection`1[System.Exception]:this
        cmp      dword ptr [rdi], edi
        call     [rax]System.AggregateException:get_InnerExceptions():System.Collections.ObjectModel.ReadOnlyCollection`1[System.Exception]:this
        mov      rsi, rax
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List`1[System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.__Canon]):this
        cmp      dword ptr [rdi], edi
        call     [rax]System.Collections.Generic.List`1[System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.__Canon]):this
 						;; size=59 bbWeight=0 PerfScore 0.00
 G_M60193_IG85:
        lea      rax, G_M60193_IG41
 						;; size=7 bbWeight=0 PerfScore 0.00
 G_M60193_IG86:
-       add      rsp, 24
+       add      rsp, 8
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0 PerfScore 0.00
 G_M60193_IG87:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
-       sub      rsp, 24
-       mov      rbp, qword ptr [rdi+0x08]
-       mov      qword ptr [rsp+0x08], rbp
-       lea      rbp, [rbp+0x80]
-						;; size=30 bbWeight=0 PerfScore 0.00
+       push     rax
+       mov      rbp, qword ptr [rdi]
+       mov      qword ptr [rsp], rbp
+       lea      rbp, [rbp+0x70]
+						;; size=22 bbWeight=0 PerfScore 0.00
 G_M60193_IG88:
        mov      rdx, rsi
        mov      r15, bword ptr [rbp-0x58]
        mov      rdi, gword ptr [r15+0x10]
        inc      dword ptr [rdi+0x14]
        mov      rax, gword ptr [rdi+0x08]
        mov      ebx, dword ptr [rdi+0x10]
        cmp      dword ptr [rax+0x08], ebx
        ja       SHORT G_M60193_IG89
        mov      rsi, rdx
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
        call     [rax]System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
        jmp      SHORT G_M60193_IG90
 						;; size=43 bbWeight=0 PerfScore 0.00
 G_M60193_IG89:
        lea      esi, [rbx+0x01]
        mov      dword ptr [rdi+0x10], esi
        movsxd   rsi, ebx
        mov      rdi, rax
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ARRADDR_ST
        call     [rax]CORINFO_HELP_ARRADDR_ST
 						;; size=24 bbWeight=0 PerfScore 0.00
 G_M60193_IG90:
        cmp      byte  ptr [r15+0x2D], 0
        jne      SHORT G_M60193_IG92
        lea      rax, G_M60193_IG43
 						;; size=14 bbWeight=0 PerfScore 0.00
 G_M60193_IG91:
-       add      rsp, 24
+       add      rsp, 8
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0 PerfScore 0.00
 G_M60193_IG92:
        lea      rax, G_M60193_IG60
 						;; size=7 bbWeight=0 PerfScore 0.00
 G_M60193_IG93:
-       add      rsp, 24
+       add      rsp, 8
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0 PerfScore 0.00
 G_M60193_IG94:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
-       sub      rsp, 24
-       mov      rbp, qword ptr [rdi+0x08]
-       mov      qword ptr [rsp+0x08], rbp
-       lea      rbp, [rbp+0x80]
-						;; size=30 bbWeight=1 PerfScore 9.75
+       push     rax
+       mov      rbp, qword ptr [rdi]
+       mov      qword ptr [rsp], rbp
+       lea      rbp, [rbp+0x70]
+						;; size=22 bbWeight=1 PerfScore 10.50
 G_M60193_IG95:
        cmp      dword ptr [rbp-0x3C], 0
        jge      SHORT G_M60193_IG96
        mov      r15, bword ptr [rbp-0x58]
        mov      rdi, gword ptr [r15+0x20]
        test     rdi, rdi
        je       SHORT G_M60193_IG96
        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this
        call     [r11]System.IDisposable:Dispose():this
        nop      
 						;; size=33 bbWeight=1 PerfScore 10.75
 G_M60193_IG96:
-       add      rsp, 24
+       add      rsp, 8
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=1 PerfScore 4.25
 G_M60193_IG97:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
-       sub      rsp, 24
-       mov      rbp, qword ptr [rdi+0x08]
-       mov      qword ptr [rsp+0x08], rbp
-       lea      rbp, [rbp+0x80]
-						;; size=30 bbWeight=0 PerfScore 0.00
+       push     rax
+       mov      rbp, qword ptr [rdi]
+       mov      qword ptr [rsp], rbp
+       lea      rbp, [rbp+0x70]
+						;; size=22 bbWeight=0 PerfScore 0.00
 G_M60193_IG98:
        mov      r15, bword ptr [rbp-0x58]
        mov      dword ptr [r15+0x28], -2
        lea      rdi, bword ptr [r15+0x30]
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder:SetException(System.Exception):this
        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder:SetException(System.Exception):this
        lea      rax, G_M60193_IG70
 						;; size=35 bbWeight=0 PerfScore 0.00
 G_M60193_IG99:
-       add      rsp, 24
+       add      rsp, 8
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 2497, prolog size 51, PerfScore 1500.28, instruction count 644, allocated bytes for code 2497 (MethodHash=36b514de) for method Microsoft.Extensions.Hosting.Internal.Host+<ForeachService>d__17`1[System.__Canon]:MoveNext():this (FullOpts)
+; Total bytes of code 2443, prolog size 48, PerfScore 1500.03, instruction count 643, allocated bytes for code 2443 (MethodHash=36b514de) for method Microsoft.Extensions.Hosting.Internal.Host+<ForeachService>d__17`1[System.__Canon]:MoveNext():this (FullOpts)

Larger list of diffs: https://gist.github.com/MihuBot/fb1d884076b0aa4a2b1518631c762c8c

@MihuBot
Copy link
Owner Author

MihuBot commented Jun 27, 2024

@jakobbotsch

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant