Commit b4ccaa16 by Richard Stallman

*** empty log message ***

From-SVN: r1042
parent e53c841d
...@@ -1000,7 +1000,7 @@ expand_asm_operands (string, outputs, inputs, clobbers, vol, filename, line) ...@@ -1000,7 +1000,7 @@ expand_asm_operands (string, outputs, inputs, clobbers, vol, filename, line)
rtx body; rtx body;
int ninputs = list_length (inputs); int ninputs = list_length (inputs);
int noutputs = list_length (outputs); int noutputs = list_length (outputs);
int nclobbers = list_length (clobbers); int nclobbers;
tree tail; tree tail;
register int i; register int i;
/* Vector of RTX's of evaluated output operands. */ /* Vector of RTX's of evaluated output operands. */
...@@ -1008,6 +1008,16 @@ expand_asm_operands (string, outputs, inputs, clobbers, vol, filename, line) ...@@ -1008,6 +1008,16 @@ expand_asm_operands (string, outputs, inputs, clobbers, vol, filename, line)
/* The insn we have emitted. */ /* The insn we have emitted. */
rtx insn; rtx insn;
/* Count the number of meaningful clobbered registers, ignoring what
we would ignore later. */
nclobbers = 0;
for (tail = clobbers; tail; tail = TREE_CHAIN (tail))
{
char *regname = TREE_STRING_POINTER (TREE_VALUE (tail));
if (decode_reg_name (regname) >= 0)
++nclobbers;
}
last_expr_type = 0; last_expr_type = 0;
for (i = 0, tail = outputs; tail; tail = TREE_CHAIN (tail), i++) for (i = 0, tail = outputs; tail; tail = TREE_CHAIN (tail), i++)
...@@ -1168,7 +1178,7 @@ expand_asm_operands (string, outputs, inputs, clobbers, vol, filename, line) ...@@ -1168,7 +1178,7 @@ expand_asm_operands (string, outputs, inputs, clobbers, vol, filename, line)
/* Store (clobber REG) for each clobbered register specified. */ /* Store (clobber REG) for each clobbered register specified. */
for (tail = clobbers; tail; tail = TREE_CHAIN (tail), i++) for (tail = clobbers; tail; tail = TREE_CHAIN (tail))
{ {
char *regname = TREE_STRING_POINTER (TREE_VALUE (tail)); char *regname = TREE_STRING_POINTER (TREE_VALUE (tail));
int j = decode_reg_name (regname); int j = decode_reg_name (regname);
...@@ -1183,7 +1193,7 @@ expand_asm_operands (string, outputs, inputs, clobbers, vol, filename, line) ...@@ -1183,7 +1193,7 @@ expand_asm_operands (string, outputs, inputs, clobbers, vol, filename, line)
} }
/* Use QImode since that's guaranteed to clobber just one reg. */ /* Use QImode since that's guaranteed to clobber just one reg. */
XVECEXP (body, 0, i) XVECEXP (body, 0, i++)
= gen_rtx (CLOBBER, VOIDmode, gen_rtx (REG, QImode, j)); = gen_rtx (CLOBBER, VOIDmode, gen_rtx (REG, QImode, j));
} }
......
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