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

HOL-Light: Prove correctness of AArch64 implementation of poly_tobytes #840

Open
hanno-becker opened this issue Mar 4, 2025 · 7 comments
Assignees

Comments

@hanno-becker
Copy link
Contributor

No description provided.

@hanno-becker hanno-becker self-assigned this Mar 9, 2025
@hanno-becker
Copy link
Contributor Author

This needs support for ST3 in s2n-bignum first.

@rod-chapman
Copy link
Contributor

Also needs support for "vor" and "shrn2" in both s2n-bignum and SLOTHY.

@hanno-becker
Copy link
Contributor Author

What is "vor"? If you mean EOR, this has been added by @jargh but is not yet in main I think.

@rod-chapman
Copy link
Contributor

Sorry... it's "orr" in ARM assembly syntax. It's "class vor" in the SLOTHY model.

@hanno-becker
Copy link
Contributor Author

Where is that being used? I see neither orr nor shrn2 in the repository.

@rod-chapman
Copy link
Contributor

They appear in the code generated by GCC for poly_tobytes(). That code is potentially faster than what we have now because it ends up doing 8 ST3 (16.b) instructions rather than 16 ST3 (8.b) instructions. Measuring now.

@hanno-becker
Copy link
Contributor Author

Ok. I don't think this should take any priority -- poly_tobytes is already very fast (<100 cycles on Graviton2, for example), so we don't need to spend cycles optimizing it further, esp. if it increases the verification burden by requiring additional instructions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants