diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2011-05-22 20:10:54 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2011-05-22 20:10:54 +0000 |
commit | 145f6c5b88265139d88220b741d2f74ce9cc0332 (patch) | |
tree | 4257d25188bc2940553d1baa4e79cf6807343bc6 | |
parent | 8ac798357ff48a4d68f04e1bff98aef4bb73a5b0 (diff) | |
download | gcc-145f6c5b88265139d88220b741d2f74ce9cc0332.zip gcc-145f6c5b88265139d88220b741d2f74ce9cc0332.tar.gz gcc-145f6c5b88265139d88220b741d2f74ce9cc0332.tar.bz2 |
sparc.c (sparc_delegitimize_address): Handle UNSPEC_MOVE_PIC pattern.
* config/sparc/sparc.c (sparc_delegitimize_address): Handle
UNSPEC_MOVE_PIC pattern.
From-SVN: r174043
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/sparc/sparc.c | 18 |
2 files changed, 16 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b09e751..ef29e49 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 2011-05-22 Eric Botcazou <ebotcazou@adacore.com> + * config/sparc/sparc.c (sparc_delegitimize_address): Handle + UNSPEC_MOVE_PIC pattern. + +2011-05-22 Eric Botcazou <ebotcazou@adacore.com> + * config.gcc (sparc-*-elf*): Add sparc/t-crtin. (sparc-*-rtems*): Likewise. (sparc64-*-elf*): Likewise. diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c index 22f641d..bd7d12a 100644 --- a/gcc/config/sparc/sparc.c +++ b/gcc/config/sparc/sparc.c @@ -3615,13 +3615,17 @@ sparc_delegitimize_address (rtx x) { x = delegitimize_mem_from_attrs (x); - if (GET_CODE (x) == LO_SUM - && GET_CODE (XEXP (x, 1)) == UNSPEC - && XINT (XEXP (x, 1), 1) == UNSPEC_TLSLE) - { - x = XVECEXP (XEXP (x, 1), 0, 0); - gcc_assert (GET_CODE (x) == SYMBOL_REF); - } + if (GET_CODE (x) == LO_SUM && GET_CODE (XEXP (x, 1)) == UNSPEC) + switch (XINT (XEXP (x, 1), 1)) + { + case UNSPEC_MOVE_PIC: + case UNSPEC_TLSLE: + x = XVECEXP (XEXP (x, 1), 0, 0); + gcc_assert (GET_CODE (x) == SYMBOL_REF); + break; + default: + break; + } /* This is generated by mov{si,di}_pic_label_ref in PIC mode. */ if (GET_CODE (x) == MINUS |