blob: c0100865f1aa401c165ea5f9e677d28094a2b260 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
commit 3847aa109e8ff3f2781d53315f81e8d29ee35892
Author: Tom Yu <tlyu@mit.edu>
Date: Fri Jan 10 15:04:32 2014 -0500
Avoid text relocations in iaesx86.s
Use PC-relative addressing to avoid runtime text relocations on i386.
Adapted patch from Nalin Dahyabhai.
ticket: 7815
target_version: 1.12.1
tags: pullup
diff --git a/src/lib/crypto/builtin/aes/iaesx86.s b/src/lib/crypto/builtin/aes/iaesx86.s
index 1aa12e6..33470dd 100644
--- a/src/lib/crypto/builtin/aes/iaesx86.s
+++ b/src/lib/crypto/builtin/aes/iaesx86.s
@@ -323,7 +323,10 @@ _iEncExpandKey128:
movdqu [edx], xmm1
- movdqa xmm5, [shuffle_mask]
+ call .next
+.next:
+ pop ecx
+ movdqa xmm5, [ecx-.next+shuffle_mask]
add edx,16
@@ -421,7 +424,10 @@ _iEncExpandKey256:
add edx,32
- movdqa xmm5, [shuffle_mask] ; this mask is used by key_expansion
+ call .next
+.next:
+ pop ecx
+ movdqa xmm5, [ecx-.next+shuffle_mask] ; this mask is used by key_expansion
aeskeygenassist xmm2, xmm3, 0x1 ;
call key_expansion256
|