summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4>2006-04-12 13:46:19 +0000
committersayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4>2006-04-12 13:46:19 +0000
commit47e9d4ca3c2ebf54903885bc010012c86a7c1dbe (patch)
tree1a304e3bd92cff1c86a5112723d83333937b45d7
parent348068568bc849f00e7a21c76c333e206973336a (diff)
downloadppe42-gcc-47e9d4ca3c2ebf54903885bc010012c86a7c1dbe.tar.gz
ppe42-gcc-47e9d4ca3c2ebf54903885bc010012c86a7c1dbe.zip
* expr.c (emit_group_store): Correct operand order in call to
subreg_lowpart_offset. Always create paradoxical SUBREGs with a SUBREG_BYTE of zero. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@112887 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/expr.c8
2 files changed, 10 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 96027f892f0..040d8c70e30 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2006-04-12 Roger Sayle <roger@eyesopen.com>
+
+ * expr.c (emit_group_store): Correct operand order in call to
+ subreg_lowpart_offset. Always create paradoxical SUBREGs with
+ a SUBREG_BYTE of zero.
+
2006-04-12 Richard Guenther <rguenther@suse.de>
* profile.c (compute_branch_probabilities): Remove code
diff --git a/gcc/expr.c b/gcc/expr.c
index 1f4cbe10151..48e23a98cde 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -1940,11 +1940,11 @@ emit_group_store (rtx orig_dst, rtx src, tree type ATTRIBUTE_UNUSED, int ssize)
if (start < finish)
{
inner = GET_MODE (tmps[start]);
- bytepos = subreg_lowpart_offset (outer, inner);
+ bytepos = subreg_lowpart_offset (inner, outer);
if (INTVAL (XEXP (XVECEXP (src, 0, start), 1)) == bytepos)
{
temp = simplify_gen_subreg (outer, tmps[start],
- inner, bytepos);
+ inner, 0);
if (temp)
{
emit_move_insn (dst, temp);
@@ -1959,11 +1959,11 @@ emit_group_store (rtx orig_dst, rtx src, tree type ATTRIBUTE_UNUSED, int ssize)
&& start < finish - 1)
{
inner = GET_MODE (tmps[finish - 1]);
- bytepos = subreg_lowpart_offset (outer, inner);
+ bytepos = subreg_lowpart_offset (inner, outer);
if (INTVAL (XEXP (XVECEXP (src, 0, finish - 1), 1)) == bytepos)
{
temp = simplify_gen_subreg (outer, tmps[finish - 1],
- inner, bytepos);
+ inner, 0);
if (temp)
{
emit_move_insn (dst, temp);
OpenPOWER on IntegriCloud