@@ -462,6 +462,14 @@ static void secp256k1_scalar_reduce_512(secp256k1_scalar *r, const uint64_t *l)
462462 : "S" (l ), "i" (SECP256K1_N_C_0 ), "i" (SECP256K1_N_C_1 )
463463 : "rax" , "rdx" , "r8" , "r9" , "r10" , "r11" , "r12" , "r13" , "r14" , "cc" );
464464
465+ SECP256K1_CHECKMEM_DEFINE (& m0 , sizeof (m0 ));
466+ SECP256K1_CHECKMEM_DEFINE (& m1 , sizeof (m1 ));
467+ SECP256K1_CHECKMEM_DEFINE (& m2 , sizeof (m2 ));
468+ SECP256K1_CHECKMEM_DEFINE (& m3 , sizeof (m3 ));
469+ SECP256K1_CHECKMEM_DEFINE (& m4 , sizeof (m4 ));
470+ SECP256K1_CHECKMEM_DEFINE (& m5 , sizeof (m5 ));
471+ SECP256K1_CHECKMEM_DEFINE (& m6 , sizeof (m6 ));
472+
465473 /* Reduce 385 bits into 258. */
466474 __asm__ __volatile__(
467475 /* Preload */
@@ -541,6 +549,12 @@ static void secp256k1_scalar_reduce_512(secp256k1_scalar *r, const uint64_t *l)
541549 : "g" (m0 ), "g" (m1 ), "g" (m2 ), "g" (m3 ), "g" (m4 ), "g" (m5 ), "g" (m6 ), "i" (SECP256K1_N_C_0 ), "i" (SECP256K1_N_C_1 )
542550 : "rax" , "rdx" , "r8" , "r9" , "r10" , "r11" , "r12" , "r13" , "cc" );
543551
552+ SECP256K1_CHECKMEM_DEFINE (& p0 , sizeof (p0 ));
553+ SECP256K1_CHECKMEM_DEFINE (& p1 , sizeof (p1 ));
554+ SECP256K1_CHECKMEM_DEFINE (& p2 , sizeof (p2 ));
555+ SECP256K1_CHECKMEM_DEFINE (& p3 , sizeof (p3 ));
556+ SECP256K1_CHECKMEM_DEFINE (& p4 , sizeof (p4 ));
557+
544558 /* Reduce 258 bits into 256. */
545559 __asm__ __volatile__(
546560 /* Preload */
@@ -586,6 +600,10 @@ static void secp256k1_scalar_reduce_512(secp256k1_scalar *r, const uint64_t *l)
586600 : "=g" (c )
587601 : "g" (p0 ), "g" (p1 ), "g" (p2 ), "g" (p3 ), "g" (p4 ), "D" (r ), "i" (SECP256K1_N_C_0 ), "i" (SECP256K1_N_C_1 )
588602 : "rax" , "rdx" , "r8" , "r9" , "r10" , "cc" , "memory" );
603+
604+ SECP256K1_CHECKMEM_DEFINE (r , sizeof (* r ));
605+ SECP256K1_CHECKMEM_DEFINE (& c , sizeof (c ));
606+
589607#else
590608 secp256k1_uint128 c128 ;
591609 uint64_t c , c0 , c1 , c2 ;
0 commit comments