|
Lines 49-54
Link Here
|
| 49 |
ret |
49 |
ret |
| 50 |
ENDPROC(x86_rdrand_nlong) |
50 |
ENDPROC(x86_rdrand_nlong) |
| 51 |
|
51 |
|
|
|
52 |
#define INIT_PIC() |
| 52 |
#define SETPTR(var,ptr) leaq var(%rip),ptr |
53 |
#define SETPTR(var,ptr) leaq var(%rip),ptr |
| 53 |
#define PTR0 %rdi |
54 |
#define PTR0 %rdi |
| 54 |
#define PTR1 %rsi |
55 |
#define PTR1 %rsi |
|
Lines 84-90
Link Here
|
| 84 |
ret |
85 |
ret |
| 85 |
ENDPROC(x86_rdrand_nlong) |
86 |
ENDPROC(x86_rdrand_nlong) |
| 86 |
|
87 |
|
|
|
88 |
#if defined(__PIC__) |
| 89 |
#undef __i686 /* gcc builtin define gets in our way */ |
| 90 |
#define INIT_PIC() \ |
| 91 |
call __i686.get_pc_thunk.bx ; \ |
| 92 |
addl $_GLOBAL_OFFSET_TABLE_, %ebx |
| 93 |
#define SETPTR(var,ptr) leal (var)@GOTOFF(%ebx),ptr |
| 94 |
#else |
| 95 |
#define INIT_PIC() |
| 87 |
#define SETPTR(var,ptr) movl $(var),ptr |
96 |
#define SETPTR(var,ptr) movl $(var),ptr |
|
|
97 |
#endif |
| 88 |
#define PTR0 %eax |
98 |
#define PTR0 %eax |
| 89 |
#define PTR1 %edx |
99 |
#define PTR1 %edx |
| 90 |
#define PTR2 %ecx |
100 |
#define PTR2 %ecx |
|
Lines 101-106
Link Here
|
| 101 |
movl 8(%ebp), %eax |
111 |
movl 8(%ebp), %eax |
| 102 |
movl 12(%ebp), %edx |
112 |
movl 12(%ebp), %edx |
| 103 |
#endif |
113 |
#endif |
|
|
114 |
INIT_PIC() |
| 104 |
|
115 |
|
| 105 |
SETPTR(aes_round_keys, PTR2) |
116 |
SETPTR(aes_round_keys, PTR2) |
| 106 |
|
117 |
|
|
Lines 166-171
Link Here
|
| 166 |
#endif |
177 |
#endif |
| 167 |
ret |
178 |
ret |
| 168 |
ENDPROC(x86_aes_mangle) |
179 |
ENDPROC(x86_aes_mangle) |
|
|
180 |
|
| 181 |
#if defined(__i386__) && defined(__PIC__) |
| 182 |
.section .gnu.linkonce.t.__i686.get_pc_thunk.bx,"ax",@progbits |
| 183 |
.globl __i686.get_pc_thunk.bx |
| 184 |
.hidden __i686.get_pc_thunk.bx |
| 185 |
.type __i686.get_pc_thunk.bx,@function |
| 186 |
__i686.get_pc_thunk.bx: |
| 187 |
movl (%esp), %ebx |
| 188 |
ret |
| 189 |
#endif |
| 190 |
|
| 169 |
/* |
191 |
/* |
| 170 |
* AES round keys for an arbitrary key: |
192 |
* AES round keys for an arbitrary key: |
| 171 |
* 00102030405060708090A0B0C0D0E0F0 |
193 |
* 00102030405060708090A0B0C0D0E0F0 |