facebook / facebook/zstd

[Huffman Assembly] Expand supported platforms

Abierto
#2,789 11 comentarios 2 reacciones 1 asignado Reclamado por @terrelln Ver en GitHub
help wanted long-term
Lenguaje dominante
C
Estrellas
27.9k
Forks
2.6k
Merge medio
1 d 3 h
PR fusionados (30 d)
8

Descripción

The x86-64 Huffman assembly implementation is currently allow-listed to work on:
* Linux: `defined(__linux__) || defined(__linux)`
* MacOS: `defined(__APPLE__)`

The macro to check this is `HUF_ASM_SUPPORTED` defined in `huf_decompress.c`.

I've selected a very restricted set of platforms because I want to be sure that it is well tested before enabling it. Any platform that shares a calling convention with Linux should just work, but I want to be cautious of details, like working with interrupt handlers & debuggers. It should be easy to add BSD to this list, if someone wants to test that everything works as expected.

The assembly currently doesn't work on Windows because it has a different calling convention. And I had a really hard time getting the detection macros right. So if someone wants to take that on, that would be great.

Tasks:
* [ ] Test and enable support for x86-64 assembly on BSD.
* [ ] Add support for Windows in the x86-64 assembly & enable assembly in the Visual Studios build.
* [ ] Add support for assembly in the amalgamated build (`build/single_file_libs`). Probably by translating the `.S` file into inline assembly.
* [ ] Add an aarch64 assembly implementation.

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.