Commit 41b083c4 by J"orn Rennecke Committed by Joern Rennecke

expr.c (emit_queue): If emitting a SEQUENCE, set QUEUED_INSN to the first insn of the sequence.

	* expr.c (emit_queue): If emitting a SEQUENCE, set QUEUED_INSN
	to the first insn of the sequence.

From-SVN: r20997
parent 759bd8b7
Tue Jul 7 21:23:36 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
* expr.c (emit_queue): If emitting a SEQUENCE, set QUEUED_INSN
to the first insn of the sequence.
Tue Jul 7 21:05:25 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
* cse (cse_insn): Don't make change without validation.
......
......@@ -522,7 +522,15 @@ emit_queue ()
register rtx p;
while ((p = pending_chain))
{
QUEUED_INSN (p) = emit_insn (QUEUED_BODY (p));
rtx body = QUEUED_BODY (p);
if (GET_CODE (body) == SEQUENCE)
{
QUEUED_INSN (p) = XVECEXP (QUEUED_BODY (p), 0, 0);
emit_insn (QUEUED_BODY (p));
}
else
QUEUED_INSN (p) = emit_insn (QUEUED_BODY (p));
pending_chain = QUEUED_NEXT (p);
}
}
......
......@@ -30,7 +30,8 @@ Boston, MA 02111-1307, USA. */
/* The variable for which an increment is queued. */
#define QUEUED_VAR(P) XEXP (P, 0)
/* If the increment has been emitted, this is the insn
that does the increment. It is zero before the increment is emitted. */
that does the increment. It is zero before the increment is emitted.
If more than one insn is emitted, this is the first insn. */
#define QUEUED_INSN(P) XEXP (P, 1)
/* If a pre-increment copy has been generated, this is the copy
(it is a temporary reg). Zero if no copy made yet. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment