Commit cc38a1c3 by Richard Kenner

(main): Use loop, not bcopy, to set recog_operands from an rtvec.

From-SVN: r13171
parent ec743e55
...@@ -455,6 +455,7 @@ from the machine description file `md'. */\n\n"); ...@@ -455,6 +455,7 @@ from the machine description file `md'. */\n\n");
printf (" register rtx *ro = recog_operand;\n"); printf (" register rtx *ro = recog_operand;\n");
printf (" register rtx **ro_loc = recog_operand_loc;\n"); printf (" register rtx **ro_loc = recog_operand_loc;\n");
printf (" rtx pat = PATTERN (insn);\n"); printf (" rtx pat = PATTERN (insn);\n");
printf (" int i;\n\n");
printf (" switch (INSN_CODE (insn))\n"); printf (" switch (INSN_CODE (insn))\n");
printf (" {\n"); printf (" {\n");
printf (" case -1:\n"); printf (" case -1:\n");
...@@ -502,11 +503,8 @@ from the machine description file `md'. */\n\n"); ...@@ -502,11 +503,8 @@ from the machine description file `md'. */\n\n");
/* The vector in the insn says how many operands it has. /* The vector in the insn says how many operands it has.
And all it contains are operands. In fact, the vector was And all it contains are operands. In fact, the vector was
created just for the sake of this function. */ created just for the sake of this function. */
printf ("#if __GNUC__ > 1 && !defined (bcopy)\n"); printf (" for (i = XVECLEN (pat, 0); i >= 0; i--)\n");
printf ("#define bcopy(FROM,TO,COUNT) __builtin_memcpy(TO,FROM,COUNT)\n"); printf (" ro[i] = XVECEXP (pat, 0, i);\n");
printf ("#endif\n");
printf (" bcopy (&XVECEXP (pat, 0, 0), ro,\n");
printf (" sizeof (rtx) * XVECLEN (pat, 0));\n");
printf (" break;\n\n"); printf (" break;\n\n");
} }
......
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