summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorbernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>2006-04-05 19:37:42 +0000
committerbernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>2006-04-05 19:37:42 +0000
commit8f5efc80bb67188446f501baf4ddefc8bebb3ddc (patch)
treeeb02a6b33dcbb01c7dbcf35b2277b93f9f2df18a /gcc
parenteb30454d15296ce9c9a2c00730508b14cb8a9914 (diff)
downloadgcc-8f5efc80bb67188446f501baf4ddefc8bebb3ddc.tar.gz
* config/bfin/bfin.c (bfin_legitimate_address_p): Disallow
got-relative addressing for anything but SImode. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@112718 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/bfin/bfin.c2
2 files changed, 6 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3f14ac8f474..460217491bf 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2006-04-05 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/bfin.c (bfin_legitimate_address_p): Disallow
+ got-relative addressing for anything but SImode.
+
2006-04-05 Richard Guenther <rguenther@suse.de>
PR tree-optimization/26919
diff --git a/gcc/config/bfin/bfin.c b/gcc/config/bfin/bfin.c
index dfaa567d65b..e4893e88172 100644
--- a/gcc/config/bfin/bfin.c
+++ b/gcc/config/bfin/bfin.c
@@ -2133,7 +2133,7 @@ bfin_legitimate_address_p (enum machine_mode mode, rtx x, int strict)
case PLUS:
if (REG_P (XEXP (x, 0))
&& bfin_valid_reg_p (REGNO (XEXP (x, 0)), strict, mode, PLUS)
- && (GET_CODE (XEXP (x, 1)) == UNSPEC
+ && ((GET_CODE (XEXP (x, 1)) == UNSPEC && mode == SImode)
|| (GET_CODE (XEXP (x, 1)) == CONST_INT
&& bfin_valid_add (mode, INTVAL (XEXP (x, 1))))))
return true;