diff options
author | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-03-10 07:51:17 +0000 |
---|---|---|
committer | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-03-10 07:51:17 +0000 |
commit | 53d337172925a81f0f6086760c675ac0834d764d (patch) | |
tree | 3df078d8e8ff43ad56384c5b357b7015d940037a | |
parent | ca69963ba4d3178f7a43a3d23581ed3420145e6c (diff) | |
download | gcc-53d337172925a81f0f6086760c675ac0834d764d.tar.gz |
PR bootstrap/43287
* config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
UNSPEC_MACHOPIC_OFFSET.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@157334 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 10 |
2 files changed, 16 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 20e0b7290f4..ae224caf4c4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2010-03-10 Jakub Jelinek <jakub@redhat.com> + + PR bootstrap/43287 + * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle + UNSPEC_MACHOPIC_OFFSET. + 2010-03-09 Andreas Schwab <schwab@linux-m68k.org> PR target/43294 diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 7bcc0866887..82850658731 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -5298,6 +5298,16 @@ rs6000_delegitimize_address (rtx orig_x) return orig_x; } + if (TARGET_MACHO + && GET_CODE (orig_x) == LO_SUM + && GET_CODE (XEXP (x, 1)) == CONST) + { + y = XEXP (XEXP (x, 1), 0); + if (GET_CODE (y) == UNSPEC + && XINT (y, 1) == UNSPEC_MACHOPIC_OFFSET) + return XVECEXP (y, 0, 0); + } + return orig_x; } |