Implement Intel HLE and RTM intrinsics
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
- 38/100
Línea de trabajo
Comienza con la Intel Intrinsic Guide y rtmintrin.h de clang para comparar las cuatro intrinsics de RTM y sus correspondencias en LLVM. Revisa la discusión referenciada de LLVM Bugzilla sobre xbegin y returns_twice; después, localiza la implementación de core::arch y la lista blanca de features de Rust. Se considera terminado cuando las intrinsics de RTM estén expuestas con pruebas de instrucciones y se acepte la feature rtm.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
@mtak- mentioned _xbegin recently, we should probably expose them all via core::arch.
The Intel RTM (Restricted Transactional Memory) intrinsics (Intel Intrinsic Guide, clang header, CPUID: RTM, EAX=7, ECX=0: Extended Features, EBX=11):
void _xabort (const unsigned int imm8)(assert_instr(xabort), `llvm.x86.xabort)unsigned int _xbegin (void)(assert_instr(xbegin), llvm.x86.xbegin, note: can return multiple times)void _xend (void)(assert_instr(xend), llvm.x86.xend)unsigned char _xtest (void)(assert_instr(xtest), llvm.x86.xtest)
We'd need to whitelist the rtm feature in rust-lang/rust as part of this.
I've asked on the LLVM bugzilla whether xbegin needs to be marked returns_twice: https://bugs.llvm.org/show_bug.cgi?id=41493, Craig Topper suggested on IRC to submit an LLVM patch to mark this intrinsic / clang intrinsic as returns_twice (cc @ctopper - hope I get the github id right), but @tnorthover mentioned that this might not be necessary or enough. We don't have to figure this out for the initial implementation, as @mtack- mentions, clang does not do this, but we should not forget about this issue.
- Lenguaje dominante
- Rust
- Estrellas
- 694
- Forks
- 341
- Merge medio
- 2 d 10 h
- PR fusionados (30 d)
- 10
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
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 rust-lang/stdarch
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
rust-lang/stdarch#2218 · 5 comentarios ·
Los mantenedores suelen responder en 1 día
-
A-x86 P-high
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
rust-lang/stdarch#522 · 26 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 3/5 1-2 días Aptitud para principiantes 64/100
rust-lang/stdarch#2216 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Can non-temporal loads use the LLVM intrinsic instead?Posiblemente ocupada @ruriww la tomó hace 103 días. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 48/100
Los mantenedores suelen responder en 1 día
-
Dificultad 3/5 1-2 días Aptitud para principiantes 55/100
rust-lang/stdarch#2154 · 1 comentario ·
Los mantenedores suelen responder en 1 día
Todos los issues de rust-lang/stdarch
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
home-assistant/installer#308 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
ProvableHQ/leo#29657 ·
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
swc-project/swc-next#1053 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
nautechsystems/nautilus_trader#5387 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
NomicFoundation/edr#1872 ·
Los mantenedores suelen responder en 2 días