mirror of
https://github.com/openssl/openssl.git
synced 2024-11-21 01:15:20 +08:00
Handle push/pop %rbx in epi/prologue (this is Win64 SEH thing).
This commit is contained in:
parent
e303f55fc7
commit
75d448dde4
@ -91,9 +91,9 @@ RC4: or $len,$len
|
||||
jne .Lentry
|
||||
ret
|
||||
.Lentry:
|
||||
push %rbx
|
||||
push %r12
|
||||
push %r13
|
||||
sub \$8,%rsp
|
||||
.Lprologue:
|
||||
|
||||
add \$8,$dat
|
||||
@ -167,7 +167,6 @@ $code.=<<___;
|
||||
jz .Lcloop1
|
||||
cmpl \$0,260($dat)
|
||||
jnz .Lcloop1
|
||||
push %rbx
|
||||
jmp .Lcloop8
|
||||
.align 16
|
||||
.Lcloop8:
|
||||
@ -222,7 +221,6 @@ $code.=<<___;
|
||||
|
||||
test \$-8,$len
|
||||
jnz .Lcloop8
|
||||
pop %rbx
|
||||
cmp \$0,$len
|
||||
jne .Lcloop1
|
||||
jmp .Lexit
|
||||
@ -254,8 +252,9 @@ $code.=<<___;
|
||||
movl $XX[0]#d,-8($dat)
|
||||
movl $YY#d,-4($dat)
|
||||
|
||||
mov 8(%rsp),%r13
|
||||
mov 16(%rsp),%r12
|
||||
mov (%rsp),%r13
|
||||
mov 8(%rsp),%r12
|
||||
mov 16(%rsp),%rbx
|
||||
add \$24,%rsp
|
||||
.Lepilogue:
|
||||
ret
|
||||
@ -400,13 +399,15 @@ stream_se_handler:
|
||||
mov 152($context),%rax # pull context->Rsp
|
||||
|
||||
lea .Lepilogue(%rip),%r10
|
||||
cmp %r10,%rbx # context->Rip<prologue label
|
||||
cmp %r10,%rbx # context->Rip>=epilogue label
|
||||
jae .Lin_prologue
|
||||
|
||||
lea 24(%rax),%rax
|
||||
|
||||
mov -8(%rax),%r12
|
||||
mov -16(%rax),%r13
|
||||
mov -8(%rax),%rbx
|
||||
mov -16(%rax),%r12
|
||||
mov -24(%rax),%r13
|
||||
mov %rbx,144($context) # restore context->Rbx
|
||||
mov %r12,216($context) # restore context->R12
|
||||
mov %r13,224($context) # restore context->R13
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user