Merge pull request #1322 from SparkiDev/poly1305_clang_fix

Fix clang using wrong registers in poly1305 AVX2 code
This commit is contained in:
dgarske
2018-01-17 08:30:33 -08:00
committed by GitHub

View File

@@ -743,11 +743,11 @@ POLY1305_NOINLINE static void poly1305_blocks_avx2(Poly1305* ctx,
{ {
ALIGN256 word64 r4[5][4]; ALIGN256 word64 r4[5][4];
ALIGN256 word64 s[4][4]; ALIGN256 word64 s[4][4];
register word32 t0 asm("r8"); register word32 t0 asm("r8") = 0;
register word32 t1 asm("r9"); register word32 t1 asm("r9") = 0;
register word32 t2 asm("r10"); register word32 t2 asm("r10") = 0;
register word32 t3 asm("r11"); register word32 t3 asm("r11") = 0;
register word32 t4 asm("r12"); register word32 t4 asm("r12") = 0;
static const word64 mask[4] = { 0x0000000003ffffff, 0x0000000003ffffff, static const word64 mask[4] = { 0x0000000003ffffff, 0x0000000003ffffff,
0x0000000003ffffff, 0x0000000003ffffff }; 0x0000000003ffffff, 0x0000000003ffffff };