summaryrefslogtreecommitdiff
path: root/gcc/genextract.c
diff options
context:
space:
mode:
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>1996-11-15 19:12:54 +0000
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>1996-11-15 19:12:54 +0000
commit49c0dd591cc5a59616cf3c36c2a46dc4a97c305c (patch)
tree436acb10e92b8466775b8a107473c5a05ae4681b /gcc/genextract.c
parent37ddbbfb20477cc60b7c4bb9865518548a695e89 (diff)
downloadgcc-49c0dd591cc5a59616cf3c36c2a46dc4a97c305c.tar.gz
(main): Use loop, not bcopy, to set recog_operands from an rtvec.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@13171 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/genextract.c')
-rw-r--r--gcc/genextract.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/gcc/genextract.c b/gcc/genextract.c
index 471a43987e6..f222de1f335 100644
--- a/gcc/genextract.c
+++ b/gcc/genextract.c
@@ -455,6 +455,7 @@ from the machine description file `md'. */\n\n");
printf (" register rtx *ro = recog_operand;\n");
printf (" register rtx **ro_loc = recog_operand_loc;\n");
printf (" rtx pat = PATTERN (insn);\n");
+ printf (" int i;\n\n");
printf (" switch (INSN_CODE (insn))\n");
printf (" {\n");
printf (" case -1:\n");
@@ -502,11 +503,8 @@ from the machine description file `md'. */\n\n");
/* The vector in the insn says how many operands it has.
And all it contains are operands. In fact, the vector was
created just for the sake of this function. */
- printf ("#if __GNUC__ > 1 && !defined (bcopy)\n");
- printf ("#define bcopy(FROM,TO,COUNT) __builtin_memcpy(TO,FROM,COUNT)\n");
- printf ("#endif\n");
- printf (" bcopy (&XVECEXP (pat, 0, 0), ro,\n");
- printf (" sizeof (rtx) * XVECLEN (pat, 0));\n");
+ printf (" for (i = XVECLEN (pat, 0); i >= 0; i--)\n");
+ printf (" ro[i] = XVECEXP (pat, 0, i);\n");
printf (" break;\n\n");
}