]> git.ipfire.org Git - thirdparty/gcc.git/commit
[ARC] Refurb eliminate regs.
authorclaziss <claziss@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 16 Apr 2019 10:20:52 +0000 (10:20 +0000)
committerclaziss <claziss@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 16 Apr 2019 10:20:52 +0000 (10:20 +0000)
commit23686b11d6ec2d92d55a2c2edefab9545dc194af
tree6e4f62ffa3e870966c1117cbb0f0624264cfa9ea
parente1b5cb5d875f070ecda561dcdcde623ddfdc58e6
[ARC] Refurb eliminate regs.

gcc/
xxxx-xx-xx  Claudiu Zissulescu  <claziss@synopsys.com>

        * config/arc/arc.c (arc_hard_regno_modes): Add two missing modes
        for last two fake registers.
        (arc_conditional_register_usage): Make sure fake frame and arg
        pointer regs are in general regs class.
        (FRAME_POINTER_MASK): Remove.
        (RETURN_ADDR_MASK): Remove.
        (arc_must_save_register): Use hard frame regnum.
        (frame_restore_reg): Use hard_frame_pointer_rtx.
        (arc_save_callee_saves): Likewise.
        (arc_restore_callee_saves): Likewise.
        (arc_save_callee_enter): Likewise.
        (arc_restore_callee_leave): Likewise.
        (arc_save_callee_milli): Likewise.
        (arc_eh_return_address_location): Likewise.
        (arc_check_multi): Use hard frame regnum.
        (arc_can_eliminate): Likewise.
        * config/arc/arc.h (FIXED_REGISTERS): Make FP register available
        for register allocator.
        (REG_CLASS_CONTENTS): Update GENERAL_REGS.
        (REGNO_OK_FOR_BASE_P): Consider FRAME_POINTER_REGNUM.
        (FRAME_POINTER_REGNUM): Change it to a fake register.
        (HARD_FRAME_POINTER_REGNUM): Defined.
        (ARG_POINTER_REGNUM): Change it to a new fake register.
        (ELIMINABLE_REGS): Update.
        (REGISTER_NAMES): Update names.
        * config/arc/arc.md (LP_START): Remove.
        (LP_END): Likewise.
        (shift_si3_loop): Update pattern.

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