Skip to content

x86_64 MULADDC assembly: add missing constraints about memory

Julien Wadel requested to merge fix/mbedtls_clang12 into bc

MULADDC_CORE reads from (%%rsi) and writes to (%%rdi). This fragment is repeated up to 16 times, and %%rsi and %%rdi are s and d on entry respectively. Hence the complete asm statement reads 16 64-bit words from memory starting at s, and writes 16 64-bit words starting at d.

Without any declaration of modified memory, Clang 12 and Clang 13 generated non-working code for mbedtls_mpi_mod_exp. The constraints make the unit tests pass with Clang 12.

Origin fix: https://github.com/ARMmbed/mbedtls/pull/4947/files

Edited by Julien Wadel

Merge request reports