Migrate arm64 disassembler implementation to AsmArm64
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
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
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.Capstonealso doesn't support these instruction though) Disassembler results has some differences (e.g. instructions are resolved to alias (MOVZis printed asMOVautomatically))
- 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
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de dotnet/BenchmarkDotNet
-
Area:Toolchains up-for-grabs
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
dotnet/BenchmarkDotNet#3266 · 3 comentarios · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
Migrate release/release-preview workflow to use Trusted PublishingQuizá libre de nuevo @AndreyAkinshin la tomó hace 52 días y no hay ningún pull request abierto. AbiertoArea:DevOps
dotnet/BenchmarkDotNet#3226 · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
Area:CommandLine
Dificultad 5/5 Más de una semana Aptitud para principiantes 28/100
dotnet/BenchmarkDotNet#3182 · 4 comentarios ·
Los mantenedores suelen responder en 1 día
-
Area:Diagnosers
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
dotnet/BenchmarkDotNet#3158 · 4 comentarios ·
Los mantenedores suelen responder en 1 día
-
Area:DevOps
Dificultad 4/5 3-5 días Aptitud para principiantes 55/100
dotnet/BenchmarkDotNet#3088 ·
Los mantenedores suelen responder en 1 día
Todos los issues de dotnet/BenchmarkDotNet
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
NethermindEth/nethermind#14012 ·
Los mantenedores suelen responder en 1 día
-
dependencies Status: Triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
json-schema-org/website#2518 ·
Los mantenedores suelen responder en 1 día
-
agentic-workflows
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
builtbybel/Flyoobe#498 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
builtbybel/CrapFixer#112 ·