diff options
author | David Edelsohn <dje.gcc@gmail.com> | 2012-11-20 16:27:57 +0000 |
---|---|---|
committer | David Edelsohn <dje@gcc.gnu.org> | 2012-11-20 11:27:57 -0500 |
commit | 03367cbbae393715e19009845be491dda3e72adb (patch) | |
tree | 8175911c66eba7a7c70c79df54d6b91849a1ea6c | |
parent | bd12b9fcc7929a37726858e2a4d6cefa132a98a6 (diff) | |
download | gcc-03367cbbae393715e19009845be491dda3e72adb.zip gcc-03367cbbae393715e19009845be491dda3e72adb.tar.gz gcc-03367cbbae393715e19009845be491dda3e72adb.tar.bz2 |
rs6000.md (largetoc_low): Revert.
* config/rs6000/rs6000.md (largetoc_low): Revert.
(largetoc_low_aix<mode>): New.
From-SVN: r193669
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.md | 17 |
2 files changed, 17 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index cfcaa6c..e022c8a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2012-11-20 David Edelsohn <dje.gcc@gmail.com> + + * config/rs6000/rs6000.md (largetoc_low): Revert. + (largetoc_low_aix<mode>): New. + 2012-11-20 Diego Novillo <dnovillo@google.com> * Makefile.in (tlink.o): Add dependency on VEC_H. diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index dc5a571..2568203 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -10354,15 +10354,22 @@ "TARGET_XCOFF && TARGET_CMODEL != CMODEL_SMALL" "addis %0,%1+%3@u(%2)") -(define_insn "*largetoc_low<mode>" - [(set (match_operand:P 0 "gpc_reg_operand" "=r,r") - (lo_sum:P (match_operand:P 1 "gpc_reg_operand" "b,!*r") - (match_operand:P 2 "" "")))] - "TARGET_TOC && TARGET_CMODEL != CMODEL_SMALL" +(define_insn "*largetoc_low" + [(set (match_operand:DI 0 "gpc_reg_operand" "=r,r") + (lo_sum:DI (match_operand:DI 1 "gpc_reg_operand" "b,!*r") + (match_operand:DI 2 "" "")))] + "TARGET_ELF && TARGET_CMODEL != CMODEL_SMALL" "@ addi %0,%1,%2@l addic %0,%1,%2@l") +(define_insn "*largetoc_low_aix<mode>" + [(set (match_operand:P 0 "gpc_reg_operand" "=r") + (lo_sum:P (match_operand:P 1 "gpc_reg_operand" "b") + (match_operand:P 2 "" "")))] + "TARGET_XCOFF && TARGET_CMODEL != CMODEL_SMALL" + "la %0,%2@l(%1)") + (define_insn_and_split "*tocref<mode>" [(set (match_operand:P 0 "gpc_reg_operand" "=b*r") (match_operand:P 1 "small_toc_ref" "R"))] |