From 3847aa109e8ff3f2781d53315f81e8d29ee35892 Mon Sep 17 00:00:00 2001 From: Tom Yu Date: Fri, 10 Jan 2014 15:04:32 -0500 Subject: 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 --- src/lib/crypto/builtin/aes/iaesx86.s | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/lib/crypto/builtin/aes/iaesx86.s b/src/lib/crypto/builtin/aes/iaesx86.s index 1aa12e6ef..33470dd37 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 -- cgit