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