Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Migrate arm64 disassembler implementation to AsmArm64

Abierto
#3,246 2 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
48/100
Tipo de issue
Refactorización
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
csharp
Área
devtools

Línea de trabajo

Comienza localizando la integración del desensamblador arm64 y su uso actual de Gee.External.Capstone; después, compara la compatibilidad de instrucciones requerida con AsmArm64. Revisa los ejemplos del JIT de .NET 11, especialmente RETAA y RETBB, y verifica que la migración gestione las instrucciones emitidas esperadas sin provocar regresiones en el comportamiento existente de desensamblado de arm64.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Area:Diagnosers

Currently, BenchmarkDotNet using Gee.External.Capstone package for arm64 disassembler.
And Iced for x86/x64 disassemblers.

Gee.External.Capstone package contains a lot of native dependency DLLs.
So It's better to migrate to use AsmArm64.

Support newer instruction

Currently, Gee.External.Capstone using capstone v4.0.2 binaries. and it looks like some instruction support are missing.

On .NET 11, arm64 minimum instruction requirement is updated.
So it might need to handle additional instructions that are emitted by JIT.
https://github.com/dotnet/docs/blob/main/docs/core/whats-new/dotnet-11/runtime.md#arm64-requirements

e.g. .NET 11 JIT looks like emitting RETAA/RETBB, but current Gee.External.Capstone can't handle these instructions.
https://github.com/dotnet/runtime/blob/7e807becb8c6b1917dac0565c674ade7947a8bec/src/coreclr/jit/instrsarm64.h#L1321C21-L1324

Known Issues when migrated to AsmArm64
  • Currently AsmArm64 don't support SVE/SVE2/SME instruction. (Gee.External.Capstone also doesn't support these instruction though)
  • Disassembler results has some differences (e.g. instructions are resolved to alias (MOVZ is printed as MOV automatically))
Lenguaje dominante
C#
Estrellas
11.5k
Forks
1.1k
Merge medio
1 d 21 min
PR fusionados (30 d)
25

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de dotnet/BenchmarkDotNet

Todos los issues de dotnet/BenchmarkDotNet

Issues similares

Más issues de C#

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.