Don't bother checking for NULL pointers in AES key schedule assembly Some of the AES implementations tried to cleanly check for NULL input and output pointers, but others did not, so callers could not rely on this. (If we end up needing to check this for some reason, we should do it in the C wrapper.) Change-Id: I495e5b3689837242b5c51bf01840997845190754 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/68688 Reviewed-by: Bob Beck <bbe@google.com> Commit-Queue: David Benjamin <davidben@google.com>
diff --git a/crypto/fipsmodule/aes/asm/aesni-x86.pl b/crypto/fipsmodule/aes/asm/aesni-x86.pl index 7d97adc..bb5ee94 100644 --- a/crypto/fipsmodule/aes/asm/aesni-x86.pl +++ b/crypto/fipsmodule/aes/asm/aesni-x86.pl
@@ -2122,10 +2122,6 @@ &function_begin_B("_aesni_set_encrypt_key"); &push ("ebp"); &push ("ebx"); - &test ("eax","eax"); - &jz (&label("bad_pointer")); - &test ($key,$key); - &jz (&label("bad_pointer")); &call (&label("pic")); &set_label("pic"); @@ -2474,11 +2470,6 @@ &pop ("ebp"); &ret (); -&set_label("bad_pointer",4); - &mov ("eax",-1); - &pop ("ebx"); - &pop ("ebp"); - &ret (); &set_label("bad_keybits",4); &pxor ("xmm0","xmm0"); &mov ("eax",-2);
diff --git a/crypto/fipsmodule/aes/asm/aesni-x86_64.pl b/crypto/fipsmodule/aes/asm/aesni-x86_64.pl index 6a85862..17ec466 100644 --- a/crypto/fipsmodule/aes/asm/aesni-x86_64.pl +++ b/crypto/fipsmodule/aes/asm/aesni-x86_64.pl
@@ -3275,12 +3275,6 @@ .cfi_adjust_cfa_offset 8 .seh_stackalloc 8 .seh_endprologue - mov \$-1,%rax - test $inp,$inp - jz .Lenc_key_ret - test $key,$key - jz .Lenc_key_ret - movups ($inp),%xmm0 # pull first 128 bits of *userKey xorps %xmm4,%xmm4 # low dword of xmm4 is assumed 0 leaq OPENSSL_ia32cap_P(%rip),%r10
diff --git a/crypto/fipsmodule/aes/asm/aesv8-armx.pl b/crypto/fipsmodule/aes/asm/aesv8-armx.pl index 9f62232..46b98c9 100644 --- a/crypto/fipsmodule/aes/asm/aesv8-armx.pl +++ b/crypto/fipsmodule/aes/asm/aesv8-armx.pl
@@ -102,11 +102,6 @@ add x29,sp,#0 ___ $code.=<<___; - mov $ptr,#-1 - cmp $inp,#0 - b.eq .Lenc_key_abort - cmp $out,#0 - b.eq .Lenc_key_abort mov $ptr,#-2 cmp $bits,#128 b.lt .Lenc_key_abort
diff --git a/gen/bcm/aesni-x86-apple.S b/gen/bcm/aesni-x86-apple.S index 4467604..cee5724 100644 --- a/gen/bcm/aesni-x86-apple.S +++ b/gen/bcm/aesni-x86-apple.S
@@ -2070,14 +2070,10 @@ __aesni_set_encrypt_key: pushl %ebp pushl %ebx - testl %eax,%eax - jz L093bad_pointer - testl %edx,%edx - jz L093bad_pointer - call L094pic -L094pic: + call L093pic +L093pic: popl %ebx - leal Lkey_const-L094pic(%ebx),%ebx + leal Lkey_const-L093pic(%ebx),%ebx movl L_OPENSSL_ia32cap_P$non_lazy_ptr-Lkey_const(%ebx),%ebp movups (%eax),%xmm0 xorps %xmm4,%xmm4 @@ -2085,45 +2081,45 @@ leal 16(%edx),%edx andl $268437504,%ebp cmpl $256,%ecx - je L09514rounds + je L09414rounds cmpl $192,%ecx - je L09612rounds + je L09512rounds cmpl $128,%ecx - jne L097bad_keybits + jne L096bad_keybits .align 4,0x90 -L09810rounds: +L09710rounds: cmpl $268435456,%ebp - je L09910rounds_alt + je L09810rounds_alt movl $9,%ecx movups %xmm0,-16(%edx) .byte 102,15,58,223,200,1 - call L100key_128_cold + call L099key_128_cold .byte 102,15,58,223,200,2 - call L101key_128 + call L100key_128 .byte 102,15,58,223,200,4 - call L101key_128 + call L100key_128 .byte 102,15,58,223,200,8 - call L101key_128 + call L100key_128 .byte 102,15,58,223,200,16 - call L101key_128 + call L100key_128 .byte 102,15,58,223,200,32 - call L101key_128 + call L100key_128 .byte 102,15,58,223,200,64 - call L101key_128 + call L100key_128 .byte 102,15,58,223,200,128 - call L101key_128 + call L100key_128 .byte 102,15,58,223,200,27 - call L101key_128 + call L100key_128 .byte 102,15,58,223,200,54 - call L101key_128 + call L100key_128 movups %xmm0,(%edx) movl %ecx,80(%edx) - jmp L102good_key + jmp L101good_key .align 4,0x90 -L101key_128: +L100key_128: movups %xmm0,(%edx) leal 16(%edx),%edx -L100key_128_cold: +L099key_128_cold: shufps $16,%xmm0,%xmm4 xorps %xmm4,%xmm0 shufps $140,%xmm0,%xmm4 @@ -2132,13 +2128,13 @@ xorps %xmm1,%xmm0 ret .align 4,0x90 -L09910rounds_alt: +L09810rounds_alt: movdqa (%ebx),%xmm5 movl $8,%ecx movdqa 32(%ebx),%xmm4 movdqa %xmm0,%xmm2 movdqu %xmm0,-16(%edx) -L103loop_key128: +L102loop_key128: .byte 102,15,56,0,197 .byte 102,15,56,221,196 pslld $1,%xmm4 @@ -2154,7 +2150,7 @@ movdqu %xmm0,-16(%edx) movdqa %xmm0,%xmm2 decl %ecx - jnz L103loop_key128 + jnz L102loop_key128 movdqa 48(%ebx),%xmm4 .byte 102,15,56,0,197 .byte 102,15,56,221,196 @@ -2182,41 +2178,41 @@ movdqu %xmm0,16(%edx) movl $9,%ecx movl %ecx,96(%edx) - jmp L102good_key + jmp L101good_key .align 4,0x90 -L09612rounds: +L09512rounds: movq 16(%eax),%xmm2 cmpl $268435456,%ebp - je L10412rounds_alt + je L10312rounds_alt movl $11,%ecx movups %xmm0,-16(%edx) .byte 102,15,58,223,202,1 - call L105key_192a_cold + call L104key_192a_cold .byte 102,15,58,223,202,2 - call L106key_192b + call L105key_192b .byte 102,15,58,223,202,4 - call L107key_192a + call L106key_192a .byte 102,15,58,223,202,8 - call L106key_192b + call L105key_192b .byte 102,15,58,223,202,16 - call L107key_192a + call L106key_192a .byte 102,15,58,223,202,32 - call L106key_192b + call L105key_192b .byte 102,15,58,223,202,64 - call L107key_192a + call L106key_192a .byte 102,15,58,223,202,128 - call L106key_192b + call L105key_192b movups %xmm0,(%edx) movl %ecx,48(%edx) - jmp L102good_key + jmp L101good_key .align 4,0x90 -L107key_192a: +L106key_192a: movups %xmm0,(%edx) leal 16(%edx),%edx .align 4,0x90 -L105key_192a_cold: +L104key_192a_cold: movaps %xmm2,%xmm5 -L108key_192b_warm: +L107key_192b_warm: shufps $16,%xmm0,%xmm4 movdqa %xmm2,%xmm3 xorps %xmm4,%xmm0 @@ -2230,21 +2226,21 @@ pxor %xmm3,%xmm2 ret .align 4,0x90 -L106key_192b: +L105key_192b: movaps %xmm0,%xmm3 shufps $68,%xmm0,%xmm5 movups %xmm5,(%edx) shufps $78,%xmm2,%xmm3 movups %xmm3,16(%edx) leal 32(%edx),%edx - jmp L108key_192b_warm + jmp L107key_192b_warm .align 4,0x90 -L10412rounds_alt: +L10312rounds_alt: movdqa 16(%ebx),%xmm5 movdqa 32(%ebx),%xmm4 movl $8,%ecx movdqu %xmm0,-16(%edx) -L109loop_key192: +L108loop_key192: movq %xmm2,(%edx) movdqa %xmm2,%xmm1 .byte 102,15,56,0,213 @@ -2266,54 +2262,54 @@ pxor %xmm3,%xmm2 movdqu %xmm0,-16(%edx) decl %ecx - jnz L109loop_key192 + jnz L108loop_key192 movl $11,%ecx movl %ecx,32(%edx) - jmp L102good_key + jmp L101good_key .align 4,0x90 -L09514rounds: +L09414rounds: movups 16(%eax),%xmm2 leal 16(%edx),%edx cmpl $268435456,%ebp - je L11014rounds_alt + je L10914rounds_alt movl $13,%ecx movups %xmm0,-32(%edx) movups %xmm2,-16(%edx) .byte 102,15,58,223,202,1 - call L111key_256a_cold + call L110key_256a_cold .byte 102,15,58,223,200,1 - call L112key_256b + call L111key_256b .byte 102,15,58,223,202,2 - call L113key_256a + call L112key_256a .byte 102,15,58,223,200,2 - call L112key_256b + call L111key_256b .byte 102,15,58,223,202,4 - call L113key_256a + call L112key_256a .byte 102,15,58,223,200,4 - call L112key_256b + call L111key_256b .byte 102,15,58,223,202,8 - call L113key_256a + call L112key_256a .byte 102,15,58,223,200,8 - call L112key_256b + call L111key_256b .byte 102,15,58,223,202,16 - call L113key_256a + call L112key_256a .byte 102,15,58,223,200,16 - call L112key_256b + call L111key_256b .byte 102,15,58,223,202,32 - call L113key_256a + call L112key_256a .byte 102,15,58,223,200,32 - call L112key_256b + call L111key_256b .byte 102,15,58,223,202,64 - call L113key_256a + call L112key_256a movups %xmm0,(%edx) movl %ecx,16(%edx) xorl %eax,%eax - jmp L102good_key + jmp L101good_key .align 4,0x90 -L113key_256a: +L112key_256a: movups %xmm2,(%edx) leal 16(%edx),%edx -L111key_256a_cold: +L110key_256a_cold: shufps $16,%xmm0,%xmm4 xorps %xmm4,%xmm0 shufps $140,%xmm0,%xmm4 @@ -2322,7 +2318,7 @@ xorps %xmm1,%xmm0 ret .align 4,0x90 -L112key_256b: +L111key_256b: movups %xmm0,(%edx) leal 16(%edx),%edx shufps $16,%xmm2,%xmm4 @@ -2333,14 +2329,14 @@ xorps %xmm1,%xmm2 ret .align 4,0x90 -L11014rounds_alt: +L10914rounds_alt: movdqa (%ebx),%xmm5 movdqa 32(%ebx),%xmm4 movl $7,%ecx movdqu %xmm0,-32(%edx) movdqa %xmm2,%xmm1 movdqu %xmm2,-16(%edx) -L114loop_key256: +L113loop_key256: .byte 102,15,56,0,213 .byte 102,15,56,221,212 movdqa %xmm0,%xmm3 @@ -2354,7 +2350,7 @@ pxor %xmm2,%xmm0 movdqu %xmm0,(%edx) decl %ecx - jz L115done_key256 + jz L114done_key256 pshufd $255,%xmm0,%xmm2 pxor %xmm3,%xmm3 .byte 102,15,56,221,211 @@ -2369,11 +2365,11 @@ movdqu %xmm2,16(%edx) leal 32(%edx),%edx movdqa %xmm2,%xmm1 - jmp L114loop_key256 -L115done_key256: + jmp L113loop_key256 +L114done_key256: movl $13,%ecx movl %ecx,16(%edx) -L102good_key: +L101good_key: pxor %xmm0,%xmm0 pxor %xmm1,%xmm1 pxor %xmm2,%xmm2 @@ -2385,13 +2381,7 @@ popl %ebp ret .align 2,0x90 -L093bad_pointer: - movl $-1,%eax - popl %ebx - popl %ebp - ret -.align 2,0x90 -L097bad_keybits: +L096bad_keybits: pxor %xmm0,%xmm0 movl $-2,%eax popl %ebx @@ -2405,10 +2395,10 @@ #ifdef BORINGSSL_DISPATCH_TEST pushl %ebx pushl %edx - call L116pic -L116pic: + call L115pic +L115pic: popl %ebx - leal _BORINGSSL_function_hit+3-L116pic(%ebx),%ebx + leal _BORINGSSL_function_hit+3-L115pic(%ebx),%ebx movl $1,%edx movb %dl,(%ebx) popl %edx @@ -2431,7 +2421,7 @@ movl 12(%esp),%edx shll $4,%ecx testl %eax,%eax - jnz L117dec_key_ret + jnz L116dec_key_ret leal 16(%edx,%ecx,1),%eax movups (%edx),%xmm0 movups (%eax),%xmm1 @@ -2439,7 +2429,7 @@ movups %xmm1,(%edx) leal 16(%edx),%edx leal -16(%eax),%eax -L118dec_key_inverse: +L117dec_key_inverse: movups (%edx),%xmm0 movups (%eax),%xmm1 .byte 102,15,56,219,192 @@ -2449,14 +2439,14 @@ movups %xmm0,16(%eax) movups %xmm1,-16(%edx) cmpl %edx,%eax - ja L118dec_key_inverse + ja L117dec_key_inverse movups (%edx),%xmm0 .byte 102,15,56,219,192 movups %xmm0,(%edx) pxor %xmm0,%xmm0 pxor %xmm1,%xmm1 xorl %eax,%eax -L117dec_key_ret: +L116dec_key_ret: ret .align 6,0x90 Lkey_const:
diff --git a/gen/bcm/aesni-x86-linux.S b/gen/bcm/aesni-x86-linux.S index 54daf18..dbcded2 100644 --- a/gen/bcm/aesni-x86-linux.S +++ b/gen/bcm/aesni-x86-linux.S
@@ -2105,14 +2105,10 @@ _aesni_set_encrypt_key: pushl %ebp pushl %ebx - testl %eax,%eax - jz .L093bad_pointer - testl %edx,%edx - jz .L093bad_pointer - call .L094pic -.L094pic: + call .L093pic +.L093pic: popl %ebx - leal .Lkey_const-.L094pic(%ebx),%ebx + leal .Lkey_const-.L093pic(%ebx),%ebx leal OPENSSL_ia32cap_P-.Lkey_const(%ebx),%ebp movups (%eax),%xmm0 xorps %xmm4,%xmm4 @@ -2120,45 +2116,45 @@ leal 16(%edx),%edx andl $268437504,%ebp cmpl $256,%ecx - je .L09514rounds + je .L09414rounds cmpl $192,%ecx - je .L09612rounds + je .L09512rounds cmpl $128,%ecx - jne .L097bad_keybits + jne .L096bad_keybits .align 16 -.L09810rounds: +.L09710rounds: cmpl $268435456,%ebp - je .L09910rounds_alt + je .L09810rounds_alt movl $9,%ecx movups %xmm0,-16(%edx) .byte 102,15,58,223,200,1 - call .L100key_128_cold + call .L099key_128_cold .byte 102,15,58,223,200,2 - call .L101key_128 + call .L100key_128 .byte 102,15,58,223,200,4 - call .L101key_128 + call .L100key_128 .byte 102,15,58,223,200,8 - call .L101key_128 + call .L100key_128 .byte 102,15,58,223,200,16 - call .L101key_128 + call .L100key_128 .byte 102,15,58,223,200,32 - call .L101key_128 + call .L100key_128 .byte 102,15,58,223,200,64 - call .L101key_128 + call .L100key_128 .byte 102,15,58,223,200,128 - call .L101key_128 + call .L100key_128 .byte 102,15,58,223,200,27 - call .L101key_128 + call .L100key_128 .byte 102,15,58,223,200,54 - call .L101key_128 + call .L100key_128 movups %xmm0,(%edx) movl %ecx,80(%edx) - jmp .L102good_key + jmp .L101good_key .align 16 -.L101key_128: +.L100key_128: movups %xmm0,(%edx) leal 16(%edx),%edx -.L100key_128_cold: +.L099key_128_cold: shufps $16,%xmm0,%xmm4 xorps %xmm4,%xmm0 shufps $140,%xmm0,%xmm4 @@ -2167,13 +2163,13 @@ xorps %xmm1,%xmm0 ret .align 16 -.L09910rounds_alt: +.L09810rounds_alt: movdqa (%ebx),%xmm5 movl $8,%ecx movdqa 32(%ebx),%xmm4 movdqa %xmm0,%xmm2 movdqu %xmm0,-16(%edx) -.L103loop_key128: +.L102loop_key128: .byte 102,15,56,0,197 .byte 102,15,56,221,196 pslld $1,%xmm4 @@ -2189,7 +2185,7 @@ movdqu %xmm0,-16(%edx) movdqa %xmm0,%xmm2 decl %ecx - jnz .L103loop_key128 + jnz .L102loop_key128 movdqa 48(%ebx),%xmm4 .byte 102,15,56,0,197 .byte 102,15,56,221,196 @@ -2217,41 +2213,41 @@ movdqu %xmm0,16(%edx) movl $9,%ecx movl %ecx,96(%edx) - jmp .L102good_key + jmp .L101good_key .align 16 -.L09612rounds: +.L09512rounds: movq 16(%eax),%xmm2 cmpl $268435456,%ebp - je .L10412rounds_alt + je .L10312rounds_alt movl $11,%ecx movups %xmm0,-16(%edx) .byte 102,15,58,223,202,1 - call .L105key_192a_cold + call .L104key_192a_cold .byte 102,15,58,223,202,2 - call .L106key_192b + call .L105key_192b .byte 102,15,58,223,202,4 - call .L107key_192a + call .L106key_192a .byte 102,15,58,223,202,8 - call .L106key_192b + call .L105key_192b .byte 102,15,58,223,202,16 - call .L107key_192a + call .L106key_192a .byte 102,15,58,223,202,32 - call .L106key_192b + call .L105key_192b .byte 102,15,58,223,202,64 - call .L107key_192a + call .L106key_192a .byte 102,15,58,223,202,128 - call .L106key_192b + call .L105key_192b movups %xmm0,(%edx) movl %ecx,48(%edx) - jmp .L102good_key + jmp .L101good_key .align 16 -.L107key_192a: +.L106key_192a: movups %xmm0,(%edx) leal 16(%edx),%edx .align 16 -.L105key_192a_cold: +.L104key_192a_cold: movaps %xmm2,%xmm5 -.L108key_192b_warm: +.L107key_192b_warm: shufps $16,%xmm0,%xmm4 movdqa %xmm2,%xmm3 xorps %xmm4,%xmm0 @@ -2265,21 +2261,21 @@ pxor %xmm3,%xmm2 ret .align 16 -.L106key_192b: +.L105key_192b: movaps %xmm0,%xmm3 shufps $68,%xmm0,%xmm5 movups %xmm5,(%edx) shufps $78,%xmm2,%xmm3 movups %xmm3,16(%edx) leal 32(%edx),%edx - jmp .L108key_192b_warm + jmp .L107key_192b_warm .align 16 -.L10412rounds_alt: +.L10312rounds_alt: movdqa 16(%ebx),%xmm5 movdqa 32(%ebx),%xmm4 movl $8,%ecx movdqu %xmm0,-16(%edx) -.L109loop_key192: +.L108loop_key192: movq %xmm2,(%edx) movdqa %xmm2,%xmm1 .byte 102,15,56,0,213 @@ -2301,54 +2297,54 @@ pxor %xmm3,%xmm2 movdqu %xmm0,-16(%edx) decl %ecx - jnz .L109loop_key192 + jnz .L108loop_key192 movl $11,%ecx movl %ecx,32(%edx) - jmp .L102good_key + jmp .L101good_key .align 16 -.L09514rounds: +.L09414rounds: movups 16(%eax),%xmm2 leal 16(%edx),%edx cmpl $268435456,%ebp - je .L11014rounds_alt + je .L10914rounds_alt movl $13,%ecx movups %xmm0,-32(%edx) movups %xmm2,-16(%edx) .byte 102,15,58,223,202,1 - call .L111key_256a_cold + call .L110key_256a_cold .byte 102,15,58,223,200,1 - call .L112key_256b + call .L111key_256b .byte 102,15,58,223,202,2 - call .L113key_256a + call .L112key_256a .byte 102,15,58,223,200,2 - call .L112key_256b + call .L111key_256b .byte 102,15,58,223,202,4 - call .L113key_256a + call .L112key_256a .byte 102,15,58,223,200,4 - call .L112key_256b + call .L111key_256b .byte 102,15,58,223,202,8 - call .L113key_256a + call .L112key_256a .byte 102,15,58,223,200,8 - call .L112key_256b + call .L111key_256b .byte 102,15,58,223,202,16 - call .L113key_256a + call .L112key_256a .byte 102,15,58,223,200,16 - call .L112key_256b + call .L111key_256b .byte 102,15,58,223,202,32 - call .L113key_256a + call .L112key_256a .byte 102,15,58,223,200,32 - call .L112key_256b + call .L111key_256b .byte 102,15,58,223,202,64 - call .L113key_256a + call .L112key_256a movups %xmm0,(%edx) movl %ecx,16(%edx) xorl %eax,%eax - jmp .L102good_key + jmp .L101good_key .align 16 -.L113key_256a: +.L112key_256a: movups %xmm2,(%edx) leal 16(%edx),%edx -.L111key_256a_cold: +.L110key_256a_cold: shufps $16,%xmm0,%xmm4 xorps %xmm4,%xmm0 shufps $140,%xmm0,%xmm4 @@ -2357,7 +2353,7 @@ xorps %xmm1,%xmm0 ret .align 16 -.L112key_256b: +.L111key_256b: movups %xmm0,(%edx) leal 16(%edx),%edx shufps $16,%xmm2,%xmm4 @@ -2368,14 +2364,14 @@ xorps %xmm1,%xmm2 ret .align 16 -.L11014rounds_alt: +.L10914rounds_alt: movdqa (%ebx),%xmm5 movdqa 32(%ebx),%xmm4 movl $7,%ecx movdqu %xmm0,-32(%edx) movdqa %xmm2,%xmm1 movdqu %xmm2,-16(%edx) -.L114loop_key256: +.L113loop_key256: .byte 102,15,56,0,213 .byte 102,15,56,221,212 movdqa %xmm0,%xmm3 @@ -2389,7 +2385,7 @@ pxor %xmm2,%xmm0 movdqu %xmm0,(%edx) decl %ecx - jz .L115done_key256 + jz .L114done_key256 pshufd $255,%xmm0,%xmm2 pxor %xmm3,%xmm3 .byte 102,15,56,221,211 @@ -2404,11 +2400,11 @@ movdqu %xmm2,16(%edx) leal 32(%edx),%edx movdqa %xmm2,%xmm1 - jmp .L114loop_key256 -.L115done_key256: + jmp .L113loop_key256 +.L114done_key256: movl $13,%ecx movl %ecx,16(%edx) -.L102good_key: +.L101good_key: pxor %xmm0,%xmm0 pxor %xmm1,%xmm1 pxor %xmm2,%xmm2 @@ -2420,13 +2416,7 @@ popl %ebp ret .align 4 -.L093bad_pointer: - movl $-1,%eax - popl %ebx - popl %ebp - ret -.align 4 -.L097bad_keybits: +.L096bad_keybits: pxor %xmm0,%xmm0 movl $-2,%eax popl %ebx @@ -2442,10 +2432,10 @@ #ifdef BORINGSSL_DISPATCH_TEST pushl %ebx pushl %edx - call .L116pic -.L116pic: + call .L115pic +.L115pic: popl %ebx - leal BORINGSSL_function_hit+3-.L116pic(%ebx),%ebx + leal BORINGSSL_function_hit+3-.L115pic(%ebx),%ebx movl $1,%edx movb %dl,(%ebx) popl %edx @@ -2470,7 +2460,7 @@ movl 12(%esp),%edx shll $4,%ecx testl %eax,%eax - jnz .L117dec_key_ret + jnz .L116dec_key_ret leal 16(%edx,%ecx,1),%eax movups (%edx),%xmm0 movups (%eax),%xmm1 @@ -2478,7 +2468,7 @@ movups %xmm1,(%edx) leal 16(%edx),%edx leal -16(%eax),%eax -.L118dec_key_inverse: +.L117dec_key_inverse: movups (%edx),%xmm0 movups (%eax),%xmm1 .byte 102,15,56,219,192 @@ -2488,14 +2478,14 @@ movups %xmm0,16(%eax) movups %xmm1,-16(%edx) cmpl %edx,%eax - ja .L118dec_key_inverse + ja .L117dec_key_inverse movups (%edx),%xmm0 .byte 102,15,56,219,192 movups %xmm0,(%edx) pxor %xmm0,%xmm0 pxor %xmm1,%xmm1 xorl %eax,%eax -.L117dec_key_ret: +.L116dec_key_ret: ret .size aes_hw_set_decrypt_key,.-.L_aes_hw_set_decrypt_key_begin .align 64
diff --git a/gen/bcm/aesni-x86-win.asm b/gen/bcm/aesni-x86-win.asm index 19b1d98..ce95d23 100644 --- a/gen/bcm/aesni-x86-win.asm +++ b/gen/bcm/aesni-x86-win.asm
@@ -2062,14 +2062,10 @@ __aesni_set_encrypt_key: push ebp push ebx - test eax,eax - jz NEAR L$093bad_pointer - test edx,edx - jz NEAR L$093bad_pointer - call L$094pic -L$094pic: + call L$093pic +L$093pic: pop ebx - lea ebx,[(L$key_const-L$094pic)+ebx] + lea ebx,[(L$key_const-L$093pic)+ebx] lea ebp,[_OPENSSL_ia32cap_P] movups xmm0,[eax] xorps xmm4,xmm4 @@ -2077,45 +2073,45 @@ lea edx,[16+edx] and ebp,268437504 cmp ecx,256 - je NEAR L$09514rounds + je NEAR L$09414rounds cmp ecx,192 - je NEAR L$09612rounds + je NEAR L$09512rounds cmp ecx,128 - jne NEAR L$097bad_keybits + jne NEAR L$096bad_keybits align 16 -L$09810rounds: +L$09710rounds: cmp ebp,268435456 - je NEAR L$09910rounds_alt + je NEAR L$09810rounds_alt mov ecx,9 movups [edx-16],xmm0 db 102,15,58,223,200,1 - call L$100key_128_cold + call L$099key_128_cold db 102,15,58,223,200,2 - call L$101key_128 + call L$100key_128 db 102,15,58,223,200,4 - call L$101key_128 + call L$100key_128 db 102,15,58,223,200,8 - call L$101key_128 + call L$100key_128 db 102,15,58,223,200,16 - call L$101key_128 + call L$100key_128 db 102,15,58,223,200,32 - call L$101key_128 + call L$100key_128 db 102,15,58,223,200,64 - call L$101key_128 + call L$100key_128 db 102,15,58,223,200,128 - call L$101key_128 + call L$100key_128 db 102,15,58,223,200,27 - call L$101key_128 + call L$100key_128 db 102,15,58,223,200,54 - call L$101key_128 + call L$100key_128 movups [edx],xmm0 mov DWORD [80+edx],ecx - jmp NEAR L$102good_key + jmp NEAR L$101good_key align 16 -L$101key_128: +L$100key_128: movups [edx],xmm0 lea edx,[16+edx] -L$100key_128_cold: +L$099key_128_cold: shufps xmm4,xmm0,16 xorps xmm0,xmm4 shufps xmm4,xmm0,140 @@ -2124,13 +2120,13 @@ xorps xmm0,xmm1 ret align 16 -L$09910rounds_alt: +L$09810rounds_alt: movdqa xmm5,[ebx] mov ecx,8 movdqa xmm4,[32+ebx] movdqa xmm2,xmm0 movdqu [edx-16],xmm0 -L$103loop_key128: +L$102loop_key128: db 102,15,56,0,197 db 102,15,56,221,196 pslld xmm4,1 @@ -2146,7 +2142,7 @@ movdqu [edx-16],xmm0 movdqa xmm2,xmm0 dec ecx - jnz NEAR L$103loop_key128 + jnz NEAR L$102loop_key128 movdqa xmm4,[48+ebx] db 102,15,56,0,197 db 102,15,56,221,196 @@ -2174,41 +2170,41 @@ movdqu [16+edx],xmm0 mov ecx,9 mov DWORD [96+edx],ecx - jmp NEAR L$102good_key + jmp NEAR L$101good_key align 16 -L$09612rounds: +L$09512rounds: movq xmm2,[16+eax] cmp ebp,268435456 - je NEAR L$10412rounds_alt + je NEAR L$10312rounds_alt mov ecx,11 movups [edx-16],xmm0 db 102,15,58,223,202,1 - call L$105key_192a_cold + call L$104key_192a_cold db 102,15,58,223,202,2 - call L$106key_192b + call L$105key_192b db 102,15,58,223,202,4 - call L$107key_192a + call L$106key_192a db 102,15,58,223,202,8 - call L$106key_192b + call L$105key_192b db 102,15,58,223,202,16 - call L$107key_192a + call L$106key_192a db 102,15,58,223,202,32 - call L$106key_192b + call L$105key_192b db 102,15,58,223,202,64 - call L$107key_192a + call L$106key_192a db 102,15,58,223,202,128 - call L$106key_192b + call L$105key_192b movups [edx],xmm0 mov DWORD [48+edx],ecx - jmp NEAR L$102good_key + jmp NEAR L$101good_key align 16 -L$107key_192a: +L$106key_192a: movups [edx],xmm0 lea edx,[16+edx] align 16 -L$105key_192a_cold: +L$104key_192a_cold: movaps xmm5,xmm2 -L$108key_192b_warm: +L$107key_192b_warm: shufps xmm4,xmm0,16 movdqa xmm3,xmm2 xorps xmm0,xmm4 @@ -2222,21 +2218,21 @@ pxor xmm2,xmm3 ret align 16 -L$106key_192b: +L$105key_192b: movaps xmm3,xmm0 shufps xmm5,xmm0,68 movups [edx],xmm5 shufps xmm3,xmm2,78 movups [16+edx],xmm3 lea edx,[32+edx] - jmp NEAR L$108key_192b_warm + jmp NEAR L$107key_192b_warm align 16 -L$10412rounds_alt: +L$10312rounds_alt: movdqa xmm5,[16+ebx] movdqa xmm4,[32+ebx] mov ecx,8 movdqu [edx-16],xmm0 -L$109loop_key192: +L$108loop_key192: movq [edx],xmm2 movdqa xmm1,xmm2 db 102,15,56,0,213 @@ -2258,54 +2254,54 @@ pxor xmm2,xmm3 movdqu [edx-16],xmm0 dec ecx - jnz NEAR L$109loop_key192 + jnz NEAR L$108loop_key192 mov ecx,11 mov DWORD [32+edx],ecx - jmp NEAR L$102good_key + jmp NEAR L$101good_key align 16 -L$09514rounds: +L$09414rounds: movups xmm2,[16+eax] lea edx,[16+edx] cmp ebp,268435456 - je NEAR L$11014rounds_alt + je NEAR L$10914rounds_alt mov ecx,13 movups [edx-32],xmm0 movups [edx-16],xmm2 db 102,15,58,223,202,1 - call L$111key_256a_cold + call L$110key_256a_cold db 102,15,58,223,200,1 - call L$112key_256b + call L$111key_256b db 102,15,58,223,202,2 - call L$113key_256a + call L$112key_256a db 102,15,58,223,200,2 - call L$112key_256b + call L$111key_256b db 102,15,58,223,202,4 - call L$113key_256a + call L$112key_256a db 102,15,58,223,200,4 - call L$112key_256b + call L$111key_256b db 102,15,58,223,202,8 - call L$113key_256a + call L$112key_256a db 102,15,58,223,200,8 - call L$112key_256b + call L$111key_256b db 102,15,58,223,202,16 - call L$113key_256a + call L$112key_256a db 102,15,58,223,200,16 - call L$112key_256b + call L$111key_256b db 102,15,58,223,202,32 - call L$113key_256a + call L$112key_256a db 102,15,58,223,200,32 - call L$112key_256b + call L$111key_256b db 102,15,58,223,202,64 - call L$113key_256a + call L$112key_256a movups [edx],xmm0 mov DWORD [16+edx],ecx xor eax,eax - jmp NEAR L$102good_key + jmp NEAR L$101good_key align 16 -L$113key_256a: +L$112key_256a: movups [edx],xmm2 lea edx,[16+edx] -L$111key_256a_cold: +L$110key_256a_cold: shufps xmm4,xmm0,16 xorps xmm0,xmm4 shufps xmm4,xmm0,140 @@ -2314,7 +2310,7 @@ xorps xmm0,xmm1 ret align 16 -L$112key_256b: +L$111key_256b: movups [edx],xmm0 lea edx,[16+edx] shufps xmm4,xmm2,16 @@ -2325,14 +2321,14 @@ xorps xmm2,xmm1 ret align 16 -L$11014rounds_alt: +L$10914rounds_alt: movdqa xmm5,[ebx] movdqa xmm4,[32+ebx] mov ecx,7 movdqu [edx-32],xmm0 movdqa xmm1,xmm2 movdqu [edx-16],xmm2 -L$114loop_key256: +L$113loop_key256: db 102,15,56,0,213 db 102,15,56,221,212 movdqa xmm3,xmm0 @@ -2346,7 +2342,7 @@ pxor xmm0,xmm2 movdqu [edx],xmm0 dec ecx - jz NEAR L$115done_key256 + jz NEAR L$114done_key256 pshufd xmm2,xmm0,255 pxor xmm3,xmm3 db 102,15,56,221,211 @@ -2361,11 +2357,11 @@ movdqu [16+edx],xmm2 lea edx,[32+edx] movdqa xmm1,xmm2 - jmp NEAR L$114loop_key256 -L$115done_key256: + jmp NEAR L$113loop_key256 +L$114done_key256: mov ecx,13 mov DWORD [16+edx],ecx -L$102good_key: +L$101good_key: pxor xmm0,xmm0 pxor xmm1,xmm1 pxor xmm2,xmm2 @@ -2377,13 +2373,7 @@ pop ebp ret align 4 -L$093bad_pointer: - mov eax,-1 - pop ebx - pop ebp - ret -align 4 -L$097bad_keybits: +L$096bad_keybits: pxor xmm0,xmm0 mov eax,-2 pop ebx @@ -2396,10 +2386,10 @@ %ifdef BORINGSSL_DISPATCH_TEST push ebx push edx - call L$116pic -L$116pic: + call L$115pic +L$115pic: pop ebx - lea ebx,[(_BORINGSSL_function_hit+3-L$116pic)+ebx] + lea ebx,[(_BORINGSSL_function_hit+3-L$115pic)+ebx] mov edx,1 mov BYTE [ebx],dl pop edx @@ -2421,7 +2411,7 @@ mov edx,DWORD [12+esp] shl ecx,4 test eax,eax - jnz NEAR L$117dec_key_ret + jnz NEAR L$116dec_key_ret lea eax,[16+ecx*1+edx] movups xmm0,[edx] movups xmm1,[eax] @@ -2429,7 +2419,7 @@ movups [edx],xmm1 lea edx,[16+edx] lea eax,[eax-16] -L$118dec_key_inverse: +L$117dec_key_inverse: movups xmm0,[edx] movups xmm1,[eax] db 102,15,56,219,192 @@ -2439,14 +2429,14 @@ movups [16+eax],xmm0 movups [edx-16],xmm1 cmp eax,edx - ja NEAR L$118dec_key_inverse + ja NEAR L$117dec_key_inverse movups xmm0,[edx] db 102,15,56,219,192 movups [edx],xmm0 pxor xmm0,xmm0 pxor xmm1,xmm1 xor eax,eax -L$117dec_key_ret: +L$116dec_key_ret: ret align 64 L$key_const:
diff --git a/gen/bcm/aesni-x86_64-apple.S b/gen/bcm/aesni-x86_64-apple.S index c5c862d..48d3cfc 100644 --- a/gen/bcm/aesni-x86_64-apple.S +++ b/gen/bcm/aesni-x86_64-apple.S
@@ -1970,12 +1970,6 @@ - movq $-1,%rax - testq %rdi,%rdi - jz L$enc_key_ret - testq %rdx,%rdx - jz L$enc_key_ret - movups (%rdi),%xmm0 xorps %xmm4,%xmm4 leaq _OPENSSL_ia32cap_P(%rip),%r10
diff --git a/gen/bcm/aesni-x86_64-linux.S b/gen/bcm/aesni-x86_64-linux.S index 87c1a13..fdbb28e 100644 --- a/gen/bcm/aesni-x86_64-linux.S +++ b/gen/bcm/aesni-x86_64-linux.S
@@ -1972,12 +1972,6 @@ .cfi_adjust_cfa_offset 8 - movq $-1,%rax - testq %rdi,%rdi - jz .Lenc_key_ret - testq %rdx,%rdx - jz .Lenc_key_ret - movups (%rdi),%xmm0 xorps %xmm4,%xmm4 leaq OPENSSL_ia32cap_P(%rip),%r10
diff --git a/gen/bcm/aesni-x86_64-win.asm b/gen/bcm/aesni-x86_64-win.asm index 9e12312..6a14422 100644 --- a/gen/bcm/aesni-x86_64-win.asm +++ b/gen/bcm/aesni-x86_64-win.asm
@@ -2075,12 +2075,6 @@ $L$SEH_prologue_aes_hw_set_encrypt_key_2: $L$SEH_endprologue_aes_hw_set_encrypt_key_3: - mov rax,-1 - test rcx,rcx - jz NEAR $L$enc_key_ret - test r8,r8 - jz NEAR $L$enc_key_ret - movups xmm0,XMMWORD[rcx] xorps xmm4,xmm4 lea r10,[OPENSSL_ia32cap_P]
diff --git a/gen/bcm/aesv8-armv7-linux.S b/gen/bcm/aesv8-armv7-linux.S index 420af9b..97d56c7 100644 --- a/gen/bcm/aesv8-armv7-linux.S +++ b/gen/bcm/aesv8-armv7-linux.S
@@ -26,11 +26,6 @@ .align 5 aes_hw_set_encrypt_key: .Lenc_key: - mov r3,#-1 - cmp r0,#0 - beq .Lenc_key_abort - cmp r2,#0 - beq .Lenc_key_abort mov r3,#-2 cmp r1,#128 blt .Lenc_key_abort
diff --git a/gen/bcm/aesv8-armv8-apple.S b/gen/bcm/aesv8-armv8-apple.S index 144c4af..ef64244 100644 --- a/gen/bcm/aesv8-armv8-apple.S +++ b/gen/bcm/aesv8-armv8-apple.S
@@ -28,11 +28,6 @@ AARCH64_VALID_CALL_TARGET stp x29,x30,[sp,#-16]! add x29,sp,#0 - mov x3,#-1 - cmp x0,#0 - b.eq Lenc_key_abort - cmp x2,#0 - b.eq Lenc_key_abort mov x3,#-2 cmp w1,#128 b.lt Lenc_key_abort
diff --git a/gen/bcm/aesv8-armv8-linux.S b/gen/bcm/aesv8-armv8-linux.S index 7d4bcb4..23d78f2 100644 --- a/gen/bcm/aesv8-armv8-linux.S +++ b/gen/bcm/aesv8-armv8-linux.S
@@ -28,11 +28,6 @@ AARCH64_VALID_CALL_TARGET stp x29,x30,[sp,#-16]! add x29,sp,#0 - mov x3,#-1 - cmp x0,#0 - b.eq .Lenc_key_abort - cmp x2,#0 - b.eq .Lenc_key_abort mov x3,#-2 cmp w1,#128 b.lt .Lenc_key_abort
diff --git a/gen/bcm/aesv8-armv8-win.S b/gen/bcm/aesv8-armv8-win.S index a3ab33a..48bf2fd 100644 --- a/gen/bcm/aesv8-armv8-win.S +++ b/gen/bcm/aesv8-armv8-win.S
@@ -30,11 +30,6 @@ AARCH64_VALID_CALL_TARGET stp x29,x30,[sp,#-16]! add x29,sp,#0 - mov x3,#-1 - cmp x0,#0 - b.eq Lenc_key_abort - cmp x2,#0 - b.eq Lenc_key_abort mov x3,#-2 cmp w1,#128 b.lt Lenc_key_abort