aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Ellcey <sje@cup.hp.com>2006-09-19 16:09:48 +0000
committerSteve Ellcey <sje@gcc.gnu.org>2006-09-19 16:09:48 +0000
commit7ab629664b6fae00406eeb8b662802b39b5d0f70 (patch)
tree4116078183253fbe2e19f8543b09fedb9adad0ea
parent758ed9b25fa9d4bd8ae56ee4e67f1d3e4f6ac10d (diff)
downloadgcc-7ab629664b6fae00406eeb8b662802b39b5d0f70.zip
gcc-7ab629664b6fae00406eeb8b662802b39b5d0f70.tar.gz
gcc-7ab629664b6fae00406eeb8b662802b39b5d0f70.tar.bz2
re PR target/28490 (ICE in ia64_expand_move, at config/ia64/ia64.c:1088)
PR 28490 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow function pointers as legitimate constants. From-SVN: r117057
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/ia64/ia64.c5
2 files changed, 9 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 030f172..5d8aeff 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2006-09-19 Steve Ellcey <sje@cup.hp.com>
+
+ PR 28490
+ * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow function
+ pointers as legitimate constants.
+
2006-09-19 Paul Brook <paul@codesourcery.com>
PR target/28516
diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c
index 71953e2..8a98b24 100644
--- a/gcc/config/ia64/ia64.c
+++ b/gcc/config/ia64/ia64.c
@@ -831,8 +831,9 @@ ia64_legitimate_constant_p (rtx x)
op = XEXP (XEXP (op, 0), 0);
}
- if (any_offset_symbol_operand (op, GET_MODE (op)))
- return true;
+ if (any_offset_symbol_operand (op, GET_MODE (op))
+ || function_operand (op, GET_MODE (op)))
+ return true;
if (aligned_offset_symbol_operand (op, GET_MODE (op)))
return (addend & 0x3fff) == 0;
return false;