~mdw
/
catacomb
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
(x86 asm): Zero the high parts of the ?MM registers if available.
[catacomb]
/
symm
/
rijndael-x86ish-aesni.S
diff --git
a/symm/rijndael-x86ish-aesni.S
b/symm/rijndael-x86ish-aesni.S
index
e556aa5
..
a7a1ece
100644
(file)
--- a/
symm/rijndael-x86ish-aesni.S
+++ b/
symm/rijndael-x86ish-aesni.S
@@
-61,6
+61,12
@@
///--------------------------------------------------------------------------
/// Key setup.
///--------------------------------------------------------------------------
/// Key setup.
+FUNC(rijndael_setup_x86ish_aesni_avx)
+ vzeroupper // avoid penalty on `legacy' XMM access
+ endprologue
+ // and drop through...
+ENDFUNC
+
FUNC(rijndael_setup_x86ish_aesni)
#define SI WHOLE(si)
FUNC(rijndael_setup_x86ish_aesni)
#define SI WHOLE(si)
@@
-365,6
+371,12
@@
ENDFUNC
/// Encrypting and decrypting blocks.
.macro encdec op, aes, koff
/// Encrypting and decrypting blocks.
.macro encdec op, aes, koff
+ FUNC(rijndael_\op\()_x86ish_aesni_avx)
+ vzeroupper // avoid XMM penalties
+ endprologue
+ // and drop through...
+ ENDFUNC
+
FUNC(rijndael_\op\()_x86ish_aesni)
#if CPUFAM_X86
FUNC(rijndael_\op\()_x86ish_aesni)
#if CPUFAM_X86