From 525b3f60fffd8dcfff6a6d029e7536cc89d597cf Mon Sep 17 00:00:00 2001 From: Kai Tietz Date: Thu, 16 Feb 2012 19:18:03 +0100 Subject: [PATCH] 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 --- gcc/ChangeLog | 5 +++++ gcc/config/i386/i386.c | 7 +++++++ 2 files changed, 12 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4ba6cbf9b6d..a75204cd69a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2012-02-16 Kai Tietz + + * config/i386/i386.c (legitimate_pic_address_disp_p): Allow + interger-constant displacement for UNSPEC_PCREL. + 2012-02-16 Jakub Jelinek PR rtl-optimization/52208 diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index fad5e66d9c9..7c5ed4da579 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 */ -- 2.30.2