1 # Copyright (c) 2011-2012, Andy Polyakov <appro@openssl.org>
4 # Redistribution and use in source and binary forms, with or without
5 # modification, are permitted provided that the following conditions
8 # * Redistributions of source code must retain copyright notices,
9 # this list of conditions and the following disclaimer.
11 # * Redistributions in binary form must reproduce the above
12 # copyright notice, this list of conditions and the following
13 # disclaimer in the documentation and/or other materials
14 # provided with the distribution.
16 # * Neither the name of the Andy Polyakov nor the names of its
17 # copyright holder and contributors may be used to endorse or
18 # promote products derived from this software without specific
19 # prior written permission.
21 # ALTERNATIVELY, provided that this notice is retained in full, this
22 # product may be distributed under the terms of the GNU General Public
23 # License (GPL), in which case the provisions of the GPL apply INSTEAD OF
26 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS
27 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
28 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
29 # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
30 # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
31 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
32 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
33 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
34 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
35 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
36 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
38 # *** This file is auto-generated ***
41 .globl padlock_capability
42 .type padlock_capability,@function
69 .size padlock_capability,.-padlock_capability
71 .globl padlock_key_bswap
72 .type padlock_key_bswap,@function
84 .size padlock_key_bswap,.-padlock_key_bswap
86 .globl padlock_verify_context
87 .type padlock_verify_context,@function
89 padlock_verify_context:
92 leaq .Lpadlock_saved_context(%rip),%rax
93 call _padlock_verify_ctx
96 .size padlock_verify_context,.-padlock_verify_context
98 .type _padlock_verify_ctx,@function
111 .size _padlock_verify_ctx,.-_padlock_verify_ctx
113 .globl padlock_reload_key
114 .type padlock_reload_key,@function
120 .size padlock_reload_key,.-padlock_reload_key
122 .globl padlock_aes_block
123 .type padlock_aes_block,@function
130 .byte 0xf3,0x0f,0xa7,0xc8
133 .size padlock_aes_block,.-padlock_aes_block
135 .globl padlock_xstore
136 .type padlock_xstore,@function
142 .size padlock_xstore,.-padlock_xstore
144 .globl padlock_sha1_oneshot
145 .type padlock_sha1_oneshot,@function
147 padlock_sha1_oneshot:
157 .byte 0xf3,0x0f,0xa6,0xc8
164 .size padlock_sha1_oneshot,.-padlock_sha1_oneshot
166 .globl padlock_sha1_blocks
167 .type padlock_sha1_blocks,@function
179 .byte 0xf3,0x0f,0xa6,0xc8
186 .size padlock_sha1_blocks,.-padlock_sha1_blocks
188 .globl padlock_sha256_oneshot
189 .type padlock_sha256_oneshot,@function
191 padlock_sha256_oneshot:
196 movups 16(%rdi),%xmm1
199 movaps %xmm1,16(%rsp)
201 .byte 0xf3,0x0f,0xa6,0xd0
203 movaps 16(%rsp),%xmm1
206 movups %xmm1,16(%rdx)
208 .size padlock_sha256_oneshot,.-padlock_sha256_oneshot
210 .globl padlock_sha256_blocks
211 .type padlock_sha256_blocks,@function
213 padlock_sha256_blocks:
218 movups 16(%rdi),%xmm1
221 movaps %xmm1,16(%rsp)
223 .byte 0xf3,0x0f,0xa6,0xd0
225 movaps 16(%rsp),%xmm1
228 movups %xmm1,16(%rdx)
230 .size padlock_sha256_blocks,.-padlock_sha256_blocks
232 .globl padlock_sha512_blocks
233 .type padlock_sha512_blocks,@function
235 padlock_sha512_blocks:
240 movups 16(%rdi),%xmm1
241 movups 32(%rdi),%xmm2
242 movups 48(%rdi),%xmm3
245 movaps %xmm1,16(%rsp)
246 movaps %xmm2,32(%rsp)
247 movaps %xmm3,48(%rsp)
248 .byte 0xf3,0x0f,0xa6,0xe0
250 movaps 16(%rsp),%xmm1
251 movaps 32(%rsp),%xmm2
252 movaps 48(%rsp),%xmm3
255 movups %xmm1,16(%rdx)
256 movups %xmm2,32(%rdx)
257 movups %xmm3,48(%rdx)
259 .size padlock_sha512_blocks,.-padlock_sha512_blocks
260 .globl padlock_ecb_encrypt
261 .type padlock_ecb_encrypt,@function
272 leaq .Lpadlock_saved_context(%rip),%rax
275 call _padlock_verify_ctx
297 leaq (%rax,%rbp,1),%rsp
312 jz .Lecb_unaligned_tail
336 .byte 0xf3,0x0f,0xa7,200
356 .Lecb_unaligned_tail:
389 leaq (%rsi,%rcx,1),%rbp
398 jz .Lecb_aligned_tail
402 .byte 0xf3,0x0f,0xa7,200
426 .size padlock_ecb_encrypt,.-padlock_ecb_encrypt
427 .globl padlock_cbc_encrypt
428 .type padlock_cbc_encrypt,@function
439 leaq .Lpadlock_saved_context(%rip),%rax
442 call _padlock_verify_ctx
464 leaq (%rax,%rbp,1),%rsp
479 jz .Lcbc_unaligned_tail
503 .byte 0xf3,0x0f,0xa7,208
505 movdqa %xmm0,-16(%rdx)
525 .Lcbc_unaligned_tail:
558 leaq (%rsi,%rcx,1),%rbp
567 jz .Lcbc_aligned_tail
571 .byte 0xf3,0x0f,0xa7,208
573 movdqa %xmm0,-16(%rdx)
597 .size padlock_cbc_encrypt,.-padlock_cbc_encrypt
598 .globl padlock_cfb_encrypt
599 .type padlock_cfb_encrypt,@function
610 leaq .Lpadlock_saved_context(%rip),%rax
613 call _padlock_verify_ctx
635 leaq (%rax,%rbp,1),%rsp
661 .byte 0xf3,0x0f,0xa7,224
663 movdqa %xmm0,-16(%rdx)
701 .byte 0xf3,0x0f,0xa7,224
703 movdqa %xmm0,-16(%rdx)
711 .size padlock_cfb_encrypt,.-padlock_cfb_encrypt
712 .globl padlock_ofb_encrypt
713 .type padlock_ofb_encrypt,@function
724 leaq .Lpadlock_saved_context(%rip),%rax
727 call _padlock_verify_ctx
749 leaq (%rax,%rbp,1),%rsp
775 .byte 0xf3,0x0f,0xa7,232
777 movdqa %xmm0,-16(%rdx)
815 .byte 0xf3,0x0f,0xa7,232
817 movdqa %xmm0,-16(%rdx)
825 .size padlock_ofb_encrypt,.-padlock_ofb_encrypt
826 .globl padlock_ctr32_encrypt
827 .type padlock_ctr32_encrypt,@function
829 padlock_ctr32_encrypt:
838 leaq .Lpadlock_saved_context(%rip),%rax
841 call _padlock_verify_ctx
863 leaq (%rax,%rbp,1),%rsp
889 jz .Lctr32_unaligned_tail
903 jz .Lctr32_inp_aligned
913 .byte 0xf3,0x0f,0xa7,216
915 testl $4294901760,%eax
925 jz .Lctr32_out_aligned
953 .Lctr32_unaligned_tail:
996 jbe .Lctr32_aligned_skip
998 .Lctr32_aligned_loop:
1006 .byte 0xf3,0x0f,0xa7,216
1019 jae .Lctr32_aligned_loop
1021 .Lctr32_aligned_skip:
1022 leaq (%rsi,%rcx,1),%rbp
1031 jz .Lctr32_aligned_tail
1035 .byte 0xf3,0x0f,0xa7,216
1039 .Lctr32_aligned_tail:
1047 .byte 0xf3,0x48,0xa5
1059 .size padlock_ctr32_encrypt,.-padlock_ctr32_encrypt
1060 .byte 86,73,65,32,80,97,100,108,111,99,107,32,120,56,54,95,54,52,32,109,111,100,117,108,101,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
1064 .Lpadlock_saved_context:
1067 .section .note.GNU-stack,"",%progbits