Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Platform support #112

Open
Yawning opened this issue Mar 27, 2022 · 0 comments
Open

Platform support #112

Yawning opened this issue Mar 27, 2022 · 0 comments

Comments

@Yawning
Copy link
Contributor

Yawning commented Mar 27, 2022

This serves as a tracking issue to document which targets1 are supported, along with ancillary information.

GOARCH Supported Backend Notes
amd64 ✔️ 64-bit + asm Main development platform
arm64 ✔️ 64-bit
ppc64 ✔️ 64-bit
ppc64le ✔️ 64-bit
s390x ✔️ 64-bit
386 ✔️ 32-bit
arm ✔️ 32-bit
mips ✔️ 32-bit
mipsle ✔️ 32-bit
mips64 ✔️ 32-bit bits.Add64/bits.Mul64 are slow
mips64le ✔️ 32-bit bits.Add64/bits.Mul64 are slow
riscv64 ✔️ 32-bit bits.Add64 is slow in released versions2
loong64 ✔️ 32-bit bits.Add64/bits.Mul64 are slow
wasm ✔️ 32-bit WebAssembly does not guarantee constant time integer operations

It may be the case that certain 64-bit platforms that currently use the 32-bit code path will perform better with the 64-bit code path, despite the lack of compiler optimization for the relevant math/bits intrinsics. As I do not have access to the various targets, benchmark results showing this will be welcome.

WASM is supported now due to the growing popularity of the target, however WebAssembly3 does not mandate nor guarantee instruction timings. The standard techniques used to mitigate timing side-channels work under the assumption that certain things are constant-time with regards to the inputs, which may not be true.

@Yawning Yawning pinned this issue Mar 27, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant