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> Tue Jul 7 21:05:25 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
* cse (cse_insn): Don't make change without validation. * cse (cse_insn): Don't make change without validation.
......
...@@ -522,6 +522,14 @@ emit_queue () ...@@ -522,6 +522,14 @@ emit_queue ()
register rtx p; register rtx p;
while ((p = pending_chain)) while ((p = pending_chain))
{ {
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)); QUEUED_INSN (p) = emit_insn (QUEUED_BODY (p));
pending_chain = QUEUED_NEXT (p); pending_chain = QUEUED_NEXT (p);
} }
......
...@@ -30,7 +30,8 @@ Boston, MA 02111-1307, USA. */ ...@@ -30,7 +30,8 @@ Boston, MA 02111-1307, USA. */
/* The variable for which an increment is queued. */ /* The variable for which an increment is queued. */
#define QUEUED_VAR(P) XEXP (P, 0) #define QUEUED_VAR(P) XEXP (P, 0)
/* If the increment has been emitted, this is the insn /* 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) #define QUEUED_INSN(P) XEXP (P, 1)
/* If a pre-increment copy has been generated, this is the copy /* If a pre-increment copy has been generated, this is the copy
(it is a temporary reg). Zero if no copy made yet. */ (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