diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2011-03-20 21:50:20 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2011-03-20 21:50:20 +0000 |
commit | 806c34923ef7d12cec02a6d86be37abf24bbe393 (patch) | |
tree | b6760233a00ccf7260a04525e394034894e6c838 /gcc | |
parent | 65e0a0f3c8867097b20f63a735ff6b5b3e9061f6 (diff) | |
download | gcc-806c34923ef7d12cec02a6d86be37abf24bbe393.zip gcc-806c34923ef7d12cec02a6d86be37abf24bbe393.tar.gz gcc-806c34923ef7d12cec02a6d86be37abf24bbe393.tar.bz2 |
re PR bootstrap/48168 (Solaris 2/SPARC bootstrap broken: ICE in sparc_function_arg_1, at config/sparc/sparc.c:5721)
PR bootstrap/48168
* config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
From-SVN: r171197
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/sparc/sparc.c | 12 |
2 files changed, 17 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5549bc1b..bc2728b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2011-03-20 Eric Botcazou <ebotcazou@adacore.com> + + PR bootstrap/48168 + * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern. + 2011-03-20 Jakub Jelinek <jakub@redhat.com> PR rtl-optimization/48156 diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c index 0f137e8b..2060fa2 100644 --- a/gcc/config/sparc/sparc.c +++ b/gcc/config/sparc/sparc.c @@ -3661,6 +3661,18 @@ sparc_delegitimize_address (rtx x) gcc_assert (GET_CODE (x) == SYMBOL_REF); } + /* This is generated by mov{si,di}_pic_label_ref in PIC mode. */ + if (GET_CODE (x) == MINUS + && REG_P (XEXP (x, 0)) + && REGNO (XEXP (x, 0)) == PIC_OFFSET_TABLE_REGNUM + && GET_CODE (XEXP (x, 1)) == LO_SUM + && GET_CODE (XEXP (XEXP (x, 1), 1)) == UNSPEC + && XINT (XEXP (XEXP (x, 1), 1), 1) == UNSPEC_MOVE_PIC_LABEL) + { + x = XVECEXP (XEXP (XEXP (x, 1), 1), 0, 0); + gcc_assert (GET_CODE (x) == LABEL_REF); + } + return x; } |