[ARC] Add support for reduced register file set
authorClaudiu Zissulescu <claziss@synopsys.com>
Fri, 26 Jan 2018 11:34:00 +0000 (12:34 +0100)
committerClaudiu Zissulescu <claziss@gcc.gnu.org>
Fri, 26 Jan 2018 11:34:00 +0000 (12:34 +0100)
commit048c6a9adcbe3dbf58cac405ebc39d94ea6c025b
treea293830dce49d551376add81e58f0ef3074906b1
parent7778a1ad1fa10f5202ec65838d1d91a0261ce95c
[ARC] Add support for reduced register file set

gcc/
2018-01-26  Claudiu Zissulescu  <claziss@synopsys.com>

        * config/arc/arc-arches.def: Option mrf16 valid for all
        architectures.
        * config/arc/arc-c.def (__ARC_RF16__): New predefined macro.
        * config/arc/arc-cpus.def (em_mini): New cpu with rf16 on.
        * config/arc/arc-options.def (FL_RF16): Add mrf16 option.
        * config/arc/arc-tables.opt: Regenerate.
        * config/arc/arc.c (arc_conditional_register_usage): Handle
        reduced register file case.
        (arc_file_start): Set must have build attributes.
        * config/arc/arc.h (MAX_ARC_PARM_REGS): Conditional define using
        mrf16 option value.
        * config/arc/arc.opt (mrf16): Add new option.
        * config/arc/elf.h (ATTRIBUTE_PCS): Define.
        * config/arc/genmultilib.awk: Handle new mrf16 option.
        * config/arc/linux.h (ATTRIBUTE_PCS): Define.
        * config/arc/t-multilib: Regenerate.
        * doc/invoke.texi (ARC Options): Document mrf16 option.

libgcc/
2018-01-26  Claudiu Zissulescu  <claziss@synopsys.com>

        * config/arc/lib1funcs.S (__udivmodsi4): Use safe version for RF16
        option.
        (__divsi3): Use RF16 safe registers.
        (__modsi3): Likewise.

From-SVN: r257083
16 files changed:
gcc/ChangeLog
gcc/config/arc/arc-arches.def
gcc/config/arc/arc-c.def
gcc/config/arc/arc-cpus.def
gcc/config/arc/arc-options.def
gcc/config/arc/arc-tables.opt
gcc/config/arc/arc.c
gcc/config/arc/arc.h
gcc/config/arc/arc.opt
gcc/config/arc/elf.h
gcc/config/arc/genmultilib.awk
gcc/config/arc/linux.h
gcc/config/arc/t-multilib
gcc/doc/invoke.texi
libgcc/ChangeLog
libgcc/config/arc/lib1funcs.S