x86: set bp field in pt_regs properly
Save rbp twice: One is for marking the stack frame, as usual (already there), and the other, to fill pt_regs properly. This is because bx comes right before the last saved register in that structure, and not bp. If the base pointer were in the place bx is today, this would not be needed. Signed-off-by: Glauber Costa <gcosta@redhat.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
2c44e66843
commit
097a0788df
|
@ -667,6 +667,13 @@ END(stub_rt_sigreturn)
|
|||
SAVE_ARGS
|
||||
leaq -ARGOFFSET(%rsp),%rdi # arg1 for handler
|
||||
pushq %rbp
|
||||
/*
|
||||
* Save rbp twice: One is for marking the stack frame, as usual, and the
|
||||
* other, to fill pt_regs properly. This is because bx comes right
|
||||
* before the last saved register in that structure, and not bp. If the
|
||||
* base pointer were in the place bx is today, this would not be needed.
|
||||
*/
|
||||
movq %rbp, -8(%rsp)
|
||||
CFI_ADJUST_CFA_OFFSET 8
|
||||
CFI_REL_OFFSET rbp, 0
|
||||
movq %rsp,%rbp
|
||||
|
|
Loading…
Reference in New Issue