diff options
author | Richard Sandiford <rdsandiford@googlemail.com> | 2011-06-01 19:49:53 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2011-06-01 19:49:53 +0000 |
commit | 02972eafb03f823c9dcbe3ede3d1f96562afaa89 (patch) | |
tree | 512555575631369514775396520cedb9467f1074 /gcc/optabs.h | |
parent | 4d41c2d1ce6f01c53eb8941461b3047e8a6368f6 (diff) | |
download | gcc-02972eafb03f823c9dcbe3ede3d1f96562afaa89.zip gcc-02972eafb03f823c9dcbe3ede3d1f96562afaa89.tar.gz gcc-02972eafb03f823c9dcbe3ede3d1f96562afaa89.tar.bz2 |
re PR target/45074 (GCC Segmentation fault - negating global register variables)
gcc/
PR target/45074
* optabs.h (valid_multiword_target_p): Declare.
* expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
doing multi-word operations.
* optabs.c (expand_binop): Likewise.
(expand_doubleword_bswap): Likewise.
(expand_absneg_bit): Likewise.
(expand_unop): Likewise.
(expand_copysign_bit): Likewise.
(multiword_target_p): New function.
gcc/testsuite/
PR target/45074
* gcc.target/mips/pr45074.c: New test.
From-SVN: r174541
Diffstat (limited to 'gcc/optabs.h')
-rw-r--r-- | gcc/optabs.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/optabs.h b/gcc/optabs.h index db6e65e..62bc14e 100644 --- a/gcc/optabs.h +++ b/gcc/optabs.h @@ -1059,6 +1059,8 @@ create_integer_operand (struct expand_operand *op, HOST_WIDE_INT intval) create_expand_operand (op, EXPAND_INTEGER, GEN_INT (intval), VOIDmode, false); } +extern bool valid_multiword_target_p (rtx); + extern bool maybe_legitimize_operands (enum insn_code icode, unsigned int opno, unsigned int nops, struct expand_operand *ops); |