libsec: avoid temp variables in chacha/salsa ENCRYPT() macro
given that we only pass uchar* with constant offsets to the s and d arguments of ENCRYPT(), we do not need the temporary variables sp/dp and the compiler is smart enougth to combine the const offset with the ones from GET4() and PUT4() and emit single load and store instructions for the byte accesses.
This commit is contained in:
parent
03c44c44b0
commit
e9bf14eceb
2 changed files with 4 additions and 10 deletions
|
@ -32,12 +32,9 @@ enum{
|
|||
|
||||
#define ENCRYPT(s, x, y, d) {\
|
||||
u32int v; \
|
||||
uchar *sp, *dp; \
|
||||
sp = (s); \
|
||||
v = GET4(sp); \
|
||||
v = GET4(s); \
|
||||
v ^= (x)+(y); \
|
||||
dp = (d); \
|
||||
PUT4(dp, v); \
|
||||
PUT4(d, v); \
|
||||
}
|
||||
|
||||
static uchar sigma[16] = "expand 32-byte k";
|
||||
|
|
|
@ -9,12 +9,9 @@
|
|||
|
||||
#define ENCRYPT(s, x, y, d) {\
|
||||
u32int v; \
|
||||
uchar *sp, *dp; \
|
||||
sp = (s); \
|
||||
v = GET4(sp); \
|
||||
v = GET4(s); \
|
||||
v ^= (x)+(y); \
|
||||
dp = (d); \
|
||||
PUT4(dp, v); \
|
||||
PUT4(d, v); \
|
||||
}
|
||||
|
||||
static uchar sigma[16] = "expand 32-byte k";
|
||||
|
|
Loading…
Reference in a new issue