Skip to content
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions src/coreclr/jit/emitarm64.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -13559,6 +13559,12 @@ void emitter::emitDispInsHelp(
{
emitDispReg(id->idReg3(), EA_PTRSIZE, false);
}

if (id->idDebugOnlyInfo()->idMemCookie != 0)
{
methodName = m_compiler->eeGetMethodFullName((CORINFO_METHOD_HANDLE)id->idDebugOnlyInfo()->idMemCookie);
printf(" // %s", methodName);
}
Comment thread
EgorBo marked this conversation as resolved.
Outdated
break;

case IF_LS_1A: // LS_1A XX...V..iiiiiiii iiiiiiiiiiittttt Rt PC imm(1MB)
Expand Down
25 changes: 25 additions & 0 deletions src/tests/JIT/opt/Calls/IndirectCallAnnotation.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.

using System.Runtime.CompilerServices;
using Xunit;

public class IndirectCallAnnotation
{
[MethodImpl(MethodImplOptions.NoInlining)]
public virtual int VirtualCallee() => 42;

[MethodImpl(MethodImplOptions.NoInlining)]
static int Caller(IndirectCallAnnotation obj)
{
// Verify that the indirect call target is annotated with the method name.
// ARM64: blr {{.*}}VirtualCallee()
return obj.VirtualCallee();
}

[Fact]
public static int TestEntryPoint()
{
return Caller(new IndirectCallAnnotation()) == 42 ? 100 : 0;
}
}
Comment thread
EgorBo marked this conversation as resolved.
Outdated
18 changes: 18 additions & 0 deletions src/tests/JIT/opt/Calls/IndirectCallAnnotation.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<!-- Needed for CLRTestEnvironmentVariable -->
<RequiresProcessIsolation>true</RequiresProcessIsolation>
</PropertyGroup>
<PropertyGroup>
<DebugType>None</DebugType>
<Optimize>True</Optimize>
</PropertyGroup>
<ItemGroup>
<Compile Include="$(MSBuildProjectName).cs">
<HasDisasmCheck>true</HasDisasmCheck>
</Compile>

<CLRTestEnvironmentVariable Include="DOTNET_TieredCompilation" Value="0" />
<CLRTestEnvironmentVariable Include="DOTNET_JITMinOpts" Value="0" />
</ItemGroup>
</Project>
Loading