aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKai Tietz <ktietz@redhat.com>2012-02-16 19:18:03 +0100
committerKai Tietz <ktietz@gcc.gnu.org>2012-02-16 19:18:03 +0100
commit525b3f60fffd8dcfff6a6d029e7536cc89d597cf (patch)
tree8ec5befb3dcc3475bb260ceb0f583279e54f63e9
parent3db93c89bcf498337b179379987d42e7aef1cd0b (diff)
downloadgcc-525b3f60fffd8dcfff6a6d029e7536cc89d597cf.zip
gcc-525b3f60fffd8dcfff6a6d029e7536cc89d597cf.tar.gz
gcc-525b3f60fffd8dcfff6a6d029e7536cc89d597cf.tar.bz2
i386.c (legitimate_pic_address_disp_p): Allow interger-constant displacement for UNSPEC_PCREL.
* config/i386/i386.c (legitimate_pic_address_disp_p): Allow interger-constant displacement for UNSPEC_PCREL. From-SVN: r184313
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/i386/i386.c7
2 files changed, 12 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4ba6cbf..a75204c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2012-02-16 Kai Tietz <ktietz@redhat.com>
+
+ * config/i386/i386.c (legitimate_pic_address_disp_p): Allow
+ interger-constant displacement for UNSPEC_PCREL.
+
2012-02-16 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/52208
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index fad5e66..7c5ed4d 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -11823,6 +11823,13 @@ legitimate_pic_address_disp_p (rtx disp)
break;
if (GET_CODE (op0) == LABEL_REF)
return true;
+ if (GET_CODE (op0) == CONST
+ && GET_CODE (XEXP (op0, 0)) == UNSPEC
+ && XINT (XEXP (op0, 0), 1) == UNSPEC_PCREL)
+ return true;
+ if (GET_CODE (op0) == UNSPEC
+ && XINT (op0, 1) == UNSPEC_PCREL)
+ return true;
if (GET_CODE (op0) != SYMBOL_REF)
break;
/* FALLTHRU */