PowerPC shrink-wrap support 3 of 3

David Edelsohn dje.gcc@gmail.com
Sun Oct 16 20:19:00 GMT 2011


On Wed, Sep 28, 2011 at 11:47 AM, Alan Modra <amodra@gmail.com> wrote:

>        * config/rs6000/rs6000.c (rs6000_make_savres_rtx): Delete unneeded
>        declaration.
>        (rs6000_emit_stack_reset): Only return insn emitted when it adjusts sp.
>        (rs6000_make_savres_rtx): Rename to rs6000_emit_savres_rtx.  Use
>        simple_return in pattern, emit instruction, and set jump_label.
>        (rs6000_emit_prologue): Update for rs6000_emit_savres_rtx.  Use
>        simple_return rather than return.
>        (emit_cfa_restores): New function.
>        (rs6000_emit_epilogue): Emit cfa_restores when flag_shrink_wrap.
>        Add missing cfa_restores for SAVE_WORLD.  Add missing LR cfa_restore
>        when using out-of-line gpr restore.  Add missing LR and FP regs
>        cfa_restores for out-of-line fpr restore.  Consolidate code setting
>        up cfa_restores.  Formatting.  Use LR_REGNO define.
>        (rs6000_output_mi_thunk): Use simple_return rather than return.
>        * config/rs6000/rs6000.md (sibcall*, sibcall_value*): Likewise.
>        (return_internal*): Likewise.
>        (any_return, return_pred, return_str): New iterators.
>        (return, conditional return insns): Provide both return and
>        simple_return variants.
>        * gcc/config/rs6000/rs6000.h (EARLY_R12, LATE_R12): Define.
>        (REG_ALLOC_ORDER): Move r12 before call-saved regs when FIXED_R13.
>        Move r11 and r0 later to suit shrink-wrapping.

Alan,

The patch is okay, although I am not thrilled about the need to change
the register allocation order.

Thanks, David



More information about the Gcc-patches mailing list