#--------------------------- SLOW ENCRYPT ---------------------------#
&cmp ($s2,16);
+ &mov ($s3,$s1);
&jb (&label("slow_enc_tail"));
if (!$x86only) {
&align (4);
&data_word(0xAAF3F689); # rep stosb # zero tail
- &lea ($key,&DWP(-16,$s3)); # restore ivp
+ &mov ($key,$_ivp); # restore ivp
&mov ($acc,$s3); # output as input
&mov ($s0,&DWP(0,$key));
&mov ($s1,&DWP(4,$key));
.align 4
.Lcbc_slow_enc_tail:
+ mov %rax,%r11
+ mov %rcx,%r12
mov %r10,%rcx
mov $inp,%rsi
mov $out,%rdi
.long 0x9066AAF3 # rep stosb
mov $out,$inp # this is not a mistake!
mov \$16,%r10 # len=16
+ mov %r11,%rax
+ mov %r12,%rcx
jmp .Lcbc_slow_enc_loop # one more spin...
#--------------------------- SLOW DECRYPT ---------------------------#
.align 16