mirror of git://gcc.gnu.org/git/gcc.git
Fix for irix6 -O0 bug, see testcase gcc.c-torture/compile/981007-1.c.
* expr.c (emit_group_store): Handle a PARALLEL destination. From-SVN: r22893
This commit is contained in:
parent
2883350489
commit
10a9f2beac
|
|
@ -1,3 +1,7 @@
|
||||||
|
Wed Oct 7 12:10:46 1998 Jim Wilson <wilson@cygnus.com>
|
||||||
|
|
||||||
|
* expr.c (emit_group_store): Handle a PARALLEL destination.
|
||||||
|
|
||||||
Wed Oct 7 10:07:29 1998 Richard Henderson <rth@cygnus.com>
|
Wed Oct 7 10:07:29 1998 Richard Henderson <rth@cygnus.com>
|
||||||
|
|
||||||
* gcse.c (pre_insert_insn): When a call ends a bb, insert
|
* gcse.c (pre_insert_insn): When a call ends a bb, insert
|
||||||
|
|
|
||||||
21
gcc/expr.c
21
gcc/expr.c
|
|
@ -2006,7 +2006,26 @@ emit_group_store (orig_dst, src, ssize, align)
|
||||||
/* If we won't be storing directly into memory, protect the real destination
|
/* If we won't be storing directly into memory, protect the real destination
|
||||||
from strange tricks we might play. */
|
from strange tricks we might play. */
|
||||||
dst = orig_dst;
|
dst = orig_dst;
|
||||||
if (GET_CODE (dst) != MEM)
|
if (GET_CODE (dst) == PARALLEL)
|
||||||
|
{
|
||||||
|
rtx temp;
|
||||||
|
|
||||||
|
/* We can get a PARALLEL dst if there is a conditional expression in
|
||||||
|
a return statement. In that case, the dst and src are the same,
|
||||||
|
so no action is necessary. */
|
||||||
|
if (rtx_equal_p (dst, src))
|
||||||
|
return;
|
||||||
|
|
||||||
|
/* It is unclear if we can ever reach here, but we may as well handle
|
||||||
|
it. Allocate a temporary, and split this into a store/load to/from
|
||||||
|
the temporary. */
|
||||||
|
|
||||||
|
temp = assign_stack_temp (GET_MODE (dst), ssize, 0);
|
||||||
|
emit_group_store (temp, src, ssize, align);
|
||||||
|
emit_group_load (dst, temp, ssize, align);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else if (GET_CODE (dst) != MEM)
|
||||||
{
|
{
|
||||||
dst = gen_reg_rtx (GET_MODE (orig_dst));
|
dst = gen_reg_rtx (GET_MODE (orig_dst));
|
||||||
/* Make life a bit easier for combine. */
|
/* Make life a bit easier for combine. */
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue