i386.c (queued_cfa_restores): New static variable.
authorJakub Jelinek <jakub@redhat.com>
Mon, 1 Jun 2009 19:49:57 +0000 (21:49 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Mon, 1 Jun 2009 19:49:57 +0000 (21:49 +0200)
commit0aa34d44c0dcfba198cd230e5f70cdf1915d0091
tree188a0bf74c9d1ad419b666260514eb386570799f
parentd342c045c5b3b2e3a47814d5bd5894513bda12f1
i386.c (queued_cfa_restores): New static variable.

* 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.

From-SVN: r148067
gcc/ChangeLog
gcc/config/i386/i386.c