* config/i386/i386.c (queued_cfa_restores): New static variable.
commitc42a600330dd20ec63eebb33aa3b0fe4eff109db
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 1 Jun 2009 19:49:57 +0000 (1 19:49 +0000)
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 1 Jun 2009 19:49:57 +0000 (1 19:49 +0000)
tree188a0bf74c9d1ad419b666260514eb386570799f
parent5a5198b7b11094d07881fb760c45a4f5ce741a03
* config/i386/i386.c (queued_cfa_restores): New static variable.
(ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New
functions.
(pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes.
(ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument.
Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note.
Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET
note unconditionally.
(ix86_emit_restore_regs_using_mov): Likewise.
(ix86_emit_restore_sse_regs_using_mov): Likewise.
(ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass
it through to ix86_emit_restore_reg_using_pop.
(ix86_emit_leave): Add RED_OFFSET argument.  Call
ix86_add_queued_cfa_restore_notes.  Call ix86_add_cfa_restore_note
instead of adding REG_CFA_OFFSET note unconditionally.
(ix86_expand_epilogue): Compute RED_OFFSET, pass it down to
the above functions.  Call ix86_add_queued_cfa_restore_notes when
needed.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@148067 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/config/i386/i386.c