aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1993-10-26 18:58:16 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1993-10-26 18:58:16 -0400
commit78b8d850dccf9aa558ccf43e0d022819edac9092 (patch)
tree03d1910f392259621fc9d3e4c31c2ebad57dbcf9
parent8d91dd28300ac46a2f3133a23a206be942520074 (diff)
downloadgcc-78b8d850dccf9aa558ccf43e0d022819edac9092.zip
gcc-78b8d850dccf9aa558ccf43e0d022819edac9092.tar.gz
gcc-78b8d850dccf9aa558ccf43e0d022819edac9092.tar.bz2
(movsi): Can copy a TOC address into a register.
From-SVN: r5902
-rw-r--r--gcc/config/rs6000/rs6000.md3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index e6caa7b..4e53982 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -2699,7 +2699,8 @@
if (GET_CODE (operands[0]) != REG)
operands[1] = force_reg (SImode, operands[1]);
- if (CONSTANT_P (operands[1]) && GET_CODE (operands[1]) != CONST_INT)
+ if (CONSTANT_P (operands[1]) && GET_CODE (operands[1]) != CONST_INT
+ && ! LEGITIMATE_CONSTANT_POOL_ADDRESS_P (operands[1]))
{
operands[1] = force_const_mem (SImode, operands[1]);
if (! memory_address_p (SImode, XEXP (operands[1], 0))