aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJohn David Anglin <dave.anglin@nrc-cnrc.gc.ca>2013-01-09 13:24:04 +0000
committerJohn David Anglin <danglin@gcc.gnu.org>2013-01-09 13:24:04 +0000
commitf0d5414883f580b91d88025c4c8c8863321048f7 (patch)
tree1a2284caafc3d0d74d7f958e535b1c07b7d90e72 /gcc
parented385baf985b862591a55065810eb811add1f73e (diff)
downloadgcc-f0d5414883f580b91d88025c4c8c8863321048f7.zip
gcc-f0d5414883f580b91d88025c4c8c8863321048f7.tar.gz
gcc-f0d5414883f580b91d88025c4c8c8863321048f7.tar.bz2
pa.c (pa_emit_move_sequence): Replace calls to gen_insv with calls to gen_insvsi/gen_insvdi.
* config/pa/pa.c (pa_emit_move_sequence): Replace calls to gen_insv with calls to gen_insvsi/gen_insvdi. From-SVN: r195049
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/pa/pa.c16
2 files changed, 17 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 02f11fb..956e420 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2013-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * config/pa/pa.c (pa_emit_move_sequence): Replace calls to gen_insv
+ with calls to gen_insvsi/gen_insvdi.
+
2013-01-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
* config/i386/i386.c (initial_ix86_tune_features): Set up
diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c
index facd2a6..91cf495 100644
--- a/gcc/config/pa/pa.c
+++ b/gcc/config/pa/pa.c
@@ -2190,8 +2190,12 @@ pa_emit_move_sequence (rtx *operands, enum machine_mode mode, rtx scratch_reg)
emit_insn (gen_rtx_SET (VOIDmode, temp,
gen_rtx_HIGH (mode, operand1)));
emit_move_insn (temp, gen_rtx_LO_SUM (mode, temp, operand1));
- emit_insn (gen_insv (operand0, GEN_INT (32),
- const0_rtx, temp));
+ if (mode == DImode)
+ emit_insn (gen_insvdi (operand0, GEN_INT (32),
+ const0_rtx, temp));
+ else
+ emit_insn (gen_insvsi (operand0, GEN_INT (32),
+ const0_rtx, temp));
}
else
{
@@ -2212,8 +2216,12 @@ pa_emit_move_sequence (rtx *operands, enum machine_mode mode, rtx scratch_reg)
pos -= 1;
}
- emit_insn (gen_insv (operand0, GEN_INT (len),
- GEN_INT (pos), GEN_INT (v5)));
+ if (mode == DImode)
+ emit_insn (gen_insvdi (operand0, GEN_INT (len),
+ GEN_INT (pos), GEN_INT (v5)));
+ else
+ emit_insn (gen_insvsi (operand0, GEN_INT (len),
+ GEN_INT (pos), GEN_INT (v5)));
len = pos > 0 && pos < 5 ? pos : 5;
pos -= len;