diff options
author | Jozef Lawrynowicz <jozefl.gcc@gmail.com> | 2018-02-14 07:21:11 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 2018-02-14 00:21:11 -0700 |
commit | a005570e2ca18626a11212dc55d9942f95eaccac (patch) | |
tree | b4330c40114871bc38e72839f7c5fd1fb9f22e99 /gcc/config/msp430 | |
parent | 3f5ddefdaaa239e5e274c0460b6e420840fc9bdb (diff) | |
download | gcc-a005570e2ca18626a11212dc55d9942f95eaccac.zip gcc-a005570e2ca18626a11212dc55d9942f95eaccac.tar.gz gcc-a005570e2ca18626a11212dc55d9942f95eaccac.tar.bz2 |
re PR target/79242 (ICE in simplify_subreg, at simplify-rtx.c:6029)
2018-02-14 Jozef Lawrynowicz <jozefl.gcc@gmail.com>
PR target/79242
* machmode.def: Define a complex mode for PARTIAL_INT.
* genmodes.c (complex_class): Return MODE_COMPLEX_INT for
MODE_PARTIAL_INT.
* doc/rtl.texi: Document CSPImode.
* config/msp430/msp430.c (msp430_hard_regno_nregs): Add CPSImode
handling.
(msp430_hard_regno_nregs_with_padding): Likewise.
PR target/79242
* gcc.target/msp430/pr79242.c: New test.
From-SVN: r257653
Diffstat (limited to 'gcc/config/msp430')
-rw-r--r-- | gcc/config/msp430/msp430.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/config/msp430/msp430.c b/gcc/config/msp430/msp430.c index 83e9e38..a8fed12 100644 --- a/gcc/config/msp430/msp430.c +++ b/gcc/config/msp430/msp430.c @@ -914,6 +914,8 @@ msp430_hard_regno_nregs (unsigned int, machine_mode mode) { if (mode == PSImode && msp430x) return 1; + if (mode == CPSImode && msp430x) + return 2; return ((GET_MODE_SIZE (mode) + UNITS_PER_WORD - 1) / UNITS_PER_WORD); } @@ -936,6 +938,8 @@ msp430_hard_regno_nregs_with_padding (int regno ATTRIBUTE_UNUSED, { if (mode == PSImode) return 2; + if (mode == CPSImode) + return 4; return msp430_hard_regno_nregs (regno, mode); } |