summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/rc4/asm
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/rc4/asm')
-rw-r--r--src/lib/libcrypto/rc4/asm/rc4-md5-x86_64.pl107
-rwxr-xr-xsrc/lib/libcrypto/rc4/asm/rc4-x86_64.pl134
2 files changed, 0 insertions, 241 deletions
diff --git a/src/lib/libcrypto/rc4/asm/rc4-md5-x86_64.pl b/src/lib/libcrypto/rc4/asm/rc4-md5-x86_64.pl
index 272fa91e1a..501d9e936b 100644
--- a/src/lib/libcrypto/rc4/asm/rc4-md5-x86_64.pl
+++ b/src/lib/libcrypto/rc4/asm/rc4-md5-x86_64.pl
@@ -44,8 +44,6 @@ my $flavour = shift;
44my $output = shift; 44my $output = shift;
45if ($flavour =~ /\./) { $output = $flavour; undef $flavour; } 45if ($flavour =~ /\./) { $output = $flavour; undef $flavour; }
46 46
47my $win64=0; $win64=1 if ($flavour =~ /[nm]asm|mingw64/ || $output =~ /\.asm$/);
48
49$0 =~ m/(.*[\/\\])[^\/\\]+$/; my $dir=$1; my $xlate; 47$0 =~ m/(.*[\/\\])[^\/\\]+$/; my $dir=$1; my $xlate;
50( $xlate="${dir}x86_64-xlate.pl" and -f $xlate ) or 48( $xlate="${dir}x86_64-xlate.pl" and -f $xlate ) or
51( $xlate="${dir}../../perlasm/x86_64-xlate.pl" and -f $xlate) or 49( $xlate="${dir}../../perlasm/x86_64-xlate.pl" and -f $xlate) or
@@ -505,111 +503,6 @@ RC4_options:
505.size RC4_options,.-RC4_options 503.size RC4_options,.-RC4_options
506___ 504___
507} 505}
508# EXCEPTION_DISPOSITION handler (EXCEPTION_RECORD *rec,ULONG64 frame,
509# CONTEXT *context,DISPATCHER_CONTEXT *disp)
510if ($win64) {
511my $rec="%rcx";
512my $frame="%rdx";
513my $context="%r8";
514my $disp="%r9";
515
516$code.=<<___;
517.extern __imp_RtlVirtualUnwind
518.type se_handler,\@abi-omnipotent
519.align 16
520se_handler:
521 push %rsi
522 push %rdi
523 push %rbx
524 push %rbp
525 push %r12
526 push %r13
527 push %r14
528 push %r15
529 pushfq
530 sub \$64,%rsp
531
532 mov 120($context),%rax # pull context->Rax
533 mov 248($context),%rbx # pull context->Rip
534
535 lea .Lbody(%rip),%r10
536 cmp %r10,%rbx # context->Rip<.Lbody
537 jb .Lin_prologue
538
539 mov 152($context),%rax # pull context->Rsp
540
541 lea .Lepilogue(%rip),%r10
542 cmp %r10,%rbx # context->Rip>=.Lepilogue
543 jae .Lin_prologue
544
545 mov 40(%rax),%r15
546 mov 48(%rax),%r14
547 mov 56(%rax),%r13
548 mov 64(%rax),%r12
549 mov 72(%rax),%rbp
550 mov 80(%rax),%rbx
551 lea 88(%rax),%rax
552
553 mov %rbx,144($context) # restore context->Rbx
554 mov %rbp,160($context) # restore context->Rbp
555 mov %r12,216($context) # restore context->R12
556 mov %r13,224($context) # restore context->R12
557 mov %r14,232($context) # restore context->R14
558 mov %r15,240($context) # restore context->R15
559
560.Lin_prologue:
561 mov 8(%rax),%rdi
562 mov 16(%rax),%rsi
563 mov %rax,152($context) # restore context->Rsp
564 mov %rsi,168($context) # restore context->Rsi
565 mov %rdi,176($context) # restore context->Rdi
566
567 mov 40($disp),%rdi # disp->ContextRecord
568 mov $context,%rsi # context
569 mov \$154,%ecx # sizeof(CONTEXT)
570 .long 0xa548f3fc # cld; rep movsq
571
572 mov $disp,%rsi
573 xor %rcx,%rcx # arg1, UNW_FLAG_NHANDLER
574 mov 8(%rsi),%rdx # arg2, disp->ImageBase
575 mov 0(%rsi),%r8 # arg3, disp->ControlPc
576 mov 16(%rsi),%r9 # arg4, disp->FunctionEntry
577 mov 40(%rsi),%r10 # disp->ContextRecord
578 lea 56(%rsi),%r11 # &disp->HandlerData
579 lea 24(%rsi),%r12 # &disp->EstablisherFrame
580 mov %r10,32(%rsp) # arg5
581 mov %r11,40(%rsp) # arg6
582 mov %r12,48(%rsp) # arg7
583 mov %rcx,56(%rsp) # arg8, (NULL)
584 call *__imp_RtlVirtualUnwind(%rip)
585
586 mov \$1,%eax # ExceptionContinueSearch
587 add \$64,%rsp
588 popfq
589 pop %r15
590 pop %r14
591 pop %r13
592 pop %r12
593 pop %rbp
594 pop %rbx
595 pop %rdi
596 pop %rsi
597 ret
598.size se_handler,.-se_handler
599
600.section .pdata
601.align 4
602 .rva .LSEH_begin_$func
603 .rva .LSEH_end_$func
604 .rva .LSEH_info_$func
605
606.section .xdata
607.align 8
608.LSEH_info_$func:
609 .byte 9,0,0,0
610 .rva se_handler
611___
612}
613 506
614sub reg_part { 507sub reg_part {
615my ($reg,$conv)=@_; 508my ($reg,$conv)=@_;
diff --git a/src/lib/libcrypto/rc4/asm/rc4-x86_64.pl b/src/lib/libcrypto/rc4/asm/rc4-x86_64.pl
index 75750dbf33..2bed1e279f 100755
--- a/src/lib/libcrypto/rc4/asm/rc4-x86_64.pl
+++ b/src/lib/libcrypto/rc4/asm/rc4-x86_64.pl
@@ -105,8 +105,6 @@ $flavour = shift;
105$output = shift; 105$output = shift;
106if ($flavour =~ /\./) { $output = $flavour; undef $flavour; } 106if ($flavour =~ /\./) { $output = $flavour; undef $flavour; }
107 107
108$win64=0; $win64=1 if ($flavour =~ /[nm]asm|mingw64/ || $output =~ /\.asm$/);
109
110$0 =~ m/(.*[\/\\])[^\/\\]+$/; $dir=$1; 108$0 =~ m/(.*[\/\\])[^\/\\]+$/; $dir=$1;
111( $xlate="${dir}x86_64-xlate.pl" and -f $xlate ) or 109( $xlate="${dir}x86_64-xlate.pl" and -f $xlate ) or
112( $xlate="${dir}../../perlasm/x86_64-xlate.pl" and -f $xlate) or 110( $xlate="${dir}../../perlasm/x86_64-xlate.pl" and -f $xlate) or
@@ -528,138 +526,6 @@ RC4_options:
528.size RC4_options,.-RC4_options 526.size RC4_options,.-RC4_options
529___ 527___
530 528
531# EXCEPTION_DISPOSITION handler (EXCEPTION_RECORD *rec,ULONG64 frame,
532# CONTEXT *context,DISPATCHER_CONTEXT *disp)
533if ($win64) {
534$rec="%rcx";
535$frame="%rdx";
536$context="%r8";
537$disp="%r9";
538
539$code.=<<___;
540.extern __imp_RtlVirtualUnwind
541.type stream_se_handler,\@abi-omnipotent
542.align 16
543stream_se_handler:
544 push %rsi
545 push %rdi
546 push %rbx
547 push %rbp
548 push %r12
549 push %r13
550 push %r14
551 push %r15
552 pushfq
553 sub \$64,%rsp
554
555 mov 120($context),%rax # pull context->Rax
556 mov 248($context),%rbx # pull context->Rip
557
558 lea .Lprologue(%rip),%r10
559 cmp %r10,%rbx # context->Rip<prologue label
560 jb .Lin_prologue
561
562 mov 152($context),%rax # pull context->Rsp
563
564 lea .Lepilogue(%rip),%r10
565 cmp %r10,%rbx # context->Rip>=epilogue label
566 jae .Lin_prologue
567
568 lea 24(%rax),%rax
569
570 mov -8(%rax),%rbx
571 mov -16(%rax),%r12
572 mov -24(%rax),%r13
573 mov %rbx,144($context) # restore context->Rbx
574 mov %r12,216($context) # restore context->R12
575 mov %r13,224($context) # restore context->R13
576
577.Lin_prologue:
578 mov 8(%rax),%rdi
579 mov 16(%rax),%rsi
580 mov %rax,152($context) # restore context->Rsp
581 mov %rsi,168($context) # restore context->Rsi
582 mov %rdi,176($context) # restore context->Rdi
583
584 jmp .Lcommon_seh_exit
585.size stream_se_handler,.-stream_se_handler
586
587.type key_se_handler,\@abi-omnipotent
588.align 16
589key_se_handler:
590 push %rsi
591 push %rdi
592 push %rbx
593 push %rbp
594 push %r12
595 push %r13
596 push %r14
597 push %r15
598 pushfq
599 sub \$64,%rsp
600
601 mov 152($context),%rax # pull context->Rsp
602 mov 8(%rax),%rdi
603 mov 16(%rax),%rsi
604 mov %rsi,168($context) # restore context->Rsi
605 mov %rdi,176($context) # restore context->Rdi
606
607.Lcommon_seh_exit:
608
609 mov 40($disp),%rdi # disp->ContextRecord
610 mov $context,%rsi # context
611 mov \$154,%ecx # sizeof(CONTEXT)
612 .long 0xa548f3fc # cld; rep movsq
613
614 mov $disp,%rsi
615 xor %rcx,%rcx # arg1, UNW_FLAG_NHANDLER
616 mov 8(%rsi),%rdx # arg2, disp->ImageBase
617 mov 0(%rsi),%r8 # arg3, disp->ControlPc
618 mov 16(%rsi),%r9 # arg4, disp->FunctionEntry
619 mov 40(%rsi),%r10 # disp->ContextRecord
620 lea 56(%rsi),%r11 # &disp->HandlerData
621 lea 24(%rsi),%r12 # &disp->EstablisherFrame
622 mov %r10,32(%rsp) # arg5
623 mov %r11,40(%rsp) # arg6
624 mov %r12,48(%rsp) # arg7
625 mov %rcx,56(%rsp) # arg8, (NULL)
626 call *__imp_RtlVirtualUnwind(%rip)
627
628 mov \$1,%eax # ExceptionContinueSearch
629 add \$64,%rsp
630 popfq
631 pop %r15
632 pop %r14
633 pop %r13
634 pop %r12
635 pop %rbp
636 pop %rbx
637 pop %rdi
638 pop %rsi
639 ret
640.size key_se_handler,.-key_se_handler
641
642.section .pdata
643.align 4
644 .rva .LSEH_begin_RC4
645 .rva .LSEH_end_RC4
646 .rva .LSEH_info_RC4
647
648 .rva .LSEH_begin_private_RC4_set_key
649 .rva .LSEH_end_private_RC4_set_key
650 .rva .LSEH_info_private_RC4_set_key
651
652.section .xdata
653.align 8
654.LSEH_info_RC4:
655 .byte 9,0,0,0
656 .rva stream_se_handler
657.LSEH_info_private_RC4_set_key:
658 .byte 9,0,0,0
659 .rva key_se_handler
660___
661}
662
663sub reg_part { 529sub reg_part {
664my ($reg,$conv)=@_; 530my ($reg,$conv)=@_;
665 if ($reg =~ /%r[0-9]+/) { $reg .= $conv; } 531 if ($reg =~ /%r[0-9]+/) { $reg .= $conv; }