rc4-x86_64.pl: Win64 SEH update from HEAD.

This commit is contained in:
Andy Polyakov 2009-04-27 19:31:04 +00:00
parent 467d9f2a34
commit a243c68736

View File

@ -91,9 +91,9 @@ RC4: or $len,$len
jne .Lentry jne .Lentry
ret ret
.Lentry: .Lentry:
push %rbx
push %r12 push %r12
push %r13 push %r13
sub \$8,%rsp
.Lprologue: .Lprologue:
add \$8,$dat add \$8,$dat
@ -167,7 +167,6 @@ $code.=<<___;
jz .Lcloop1 jz .Lcloop1
cmpl \$0,260($dat) cmpl \$0,260($dat)
jnz .Lcloop1 jnz .Lcloop1
push %rbx
jmp .Lcloop8 jmp .Lcloop8
.align 16 .align 16
.Lcloop8: .Lcloop8:
@ -222,7 +221,6 @@ $code.=<<___;
test \$-8,$len test \$-8,$len
jnz .Lcloop8 jnz .Lcloop8
pop %rbx
cmp \$0,$len cmp \$0,$len
jne .Lcloop1 jne .Lcloop1
jmp .Lexit jmp .Lexit
@ -254,8 +252,9 @@ $code.=<<___;
movl $XX[0]#d,-8($dat) movl $XX[0]#d,-8($dat)
movl $YY#d,-4($dat) movl $YY#d,-4($dat)
mov 8(%rsp),%r13 mov (%rsp),%r13
mov 16(%rsp),%r12 mov 8(%rsp),%r12
mov 16(%rsp),%rbx
add \$24,%rsp add \$24,%rsp
.Lepilogue: .Lepilogue:
ret ret
@ -400,13 +399,15 @@ stream_se_handler:
mov 152($context),%rax # pull context->Rsp mov 152($context),%rax # pull context->Rsp
lea .Lepilogue(%rip),%r10 lea .Lepilogue(%rip),%r10
cmp %r10,%rbx # context->Rip<prologue label cmp %r10,%rbx # context->Rip>=epilogue label
jae .Lin_prologue jae .Lin_prologue
lea 24(%rax),%rax lea 24(%rax),%rax
mov -8(%rax),%r12 mov -8(%rax),%rbx
mov -16(%rax),%r13 mov -16(%rax),%r12
mov -24(%rax),%r13
mov %rbx,144($context) # restore context->Rbx
mov %r12,216($context) # restore context->R12 mov %r12,216($context) # restore context->R12
mov %r13,224($context) # restore context->R13 mov %r13,224($context) # restore context->R13