Home GnuPG

Split inline assembly blocks with many memory operands

Description

Split inline assembly blocks with many memory operands

* cipher/rijndael-aesni.c (aesni_ocb_checksum, aesni_ocb_enc)
(aesni_ocb_dec, _gcry_aes_aesni_ocb_auth): Split assembly blocks
with more than 4 memory operands to smaller blocks.
* cipher/sha512-ssse3-i386.c (W2): Split big assembly block to
three smaller blocks.

On i386, with -O0, assembly blocks with many memory operands cause
compiler error such as:
rijndael-aesni.c:2815:7: error: 'asm' operand has impossible constraints

Fix is to split assembly blocks so that number of operands per block is
reduced.

  • GnuPG-bug-id: T5257
  • Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>

Details

Provenance
jukiviliAuthored on Jan 20 2021, 4:02 PM
Parents
rC81354e911bfa: tests/basic: fix build on ARM32 when NEON disabled
Branches
Unknown
Tags
Unknown
Tasks
T5257: 32 bit cross build fails on asm code in gcrypt 1.9.0