diff options
Diffstat (limited to 'src/lib/libcrypto/rc4/asm')
-rw-r--r-- | src/lib/libcrypto/rc4/asm/rc4-md5-x86_64.pl | 107 | ||||
-rwxr-xr-x | src/lib/libcrypto/rc4/asm/rc4-x86_64.pl | 134 |
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; | |||
44 | my $output = shift; | 44 | my $output = shift; |
45 | if ($flavour =~ /\./) { $output = $flavour; undef $flavour; } | 45 | if ($flavour =~ /\./) { $output = $flavour; undef $flavour; } |
46 | 46 | ||
47 | my $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) | ||
510 | if ($win64) { | ||
511 | my $rec="%rcx"; | ||
512 | my $frame="%rdx"; | ||
513 | my $context="%r8"; | ||
514 | my $disp="%r9"; | ||
515 | |||
516 | $code.=<<___; | ||
517 | .extern __imp_RtlVirtualUnwind | ||
518 | .type se_handler,\@abi-omnipotent | ||
519 | .align 16 | ||
520 | se_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 | ||
614 | sub reg_part { | 507 | sub reg_part { |
615 | my ($reg,$conv)=@_; | 508 | my ($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; |
106 | if ($flavour =~ /\./) { $output = $flavour; undef $flavour; } | 106 | if ($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) | ||
533 | if ($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 | ||
543 | stream_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 | ||
589 | key_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 | |||
663 | sub reg_part { | 529 | sub reg_part { |
664 | my ($reg,$conv)=@_; | 530 | my ($reg,$conv)=@_; |
665 | if ($reg =~ /%r[0-9]+/) { $reg .= $conv; } | 531 | if ($reg =~ /%r[0-9]+/) { $reg .= $conv; } |