comparison gcc/genemit.c @ 63:b7f97abdc517 gcc-4.6-20100522

update gcc from gcc-4.5.0 to gcc-4.6
author ryoma <e075725@ie.u-ryukyu.ac.jp>
date Mon, 24 May 2010 12:47:05 +0900
parents 77e2b8dfacca
children f6334be47118
comparison
equal deleted inserted replaced
56:3c8a44c06a95 63:b7f97abdc517
1 /* Generate code from machine description to emit insns as rtl. 1 /* Generate code from machine description to emit insns as rtl.
2 Copyright (C) 1987, 1988, 1991, 1994, 1995, 1997, 1998, 1999, 2000, 2001, 2 Copyright (C) 1987, 1988, 1991, 1994, 1995, 1997, 1998, 1999, 2000, 2001,
3 2003, 2004, 2005, 2007, 2008, 2009 Free Software Foundation, Inc. 3 2003, 2004, 2005, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
4 4
5 This file is part of GCC. 5 This file is part of GCC.
6 6
7 GCC is free software; you can redistribute it and/or modify it under 7 GCC is free software; you can redistribute it and/or modify it under
8 the terms of the GNU General Public License as published by the Free 8 the terms of the GNU General Public License as published by the Free
518 518
519 /* Output code to copy the arguments back out of `operands' 519 /* Output code to copy the arguments back out of `operands'
520 (unless we aren't going to use them at all). */ 520 (unless we aren't going to use them at all). */
521 if (XVEC (expand, 1) != 0) 521 if (XVEC (expand, 1) != 0)
522 { 522 {
523 for (i = 0; i < operands; i++) 523 for (i = 0;
524 printf (" operand%d = operands[%d];\n", i, i); 524 i < MAX (operands, MAX (max_scratch_opno, max_dup_opno) + 1);
525 for (; i <= max_dup_opno; i++) 525 i++)
526 printf (" operand%d = operands[%d];\n", i, i); 526 {
527 for (; i <= max_scratch_opno; i++) 527 printf (" operand%d = operands[%d];\n", i, i);
528 printf (" operand%d = operands[%d];\n", i, i); 528 printf (" (void) operand%d;\n", i);
529 }
529 } 530 }
530 printf (" }\n"); 531 printf (" }\n");
531 } 532 }
532 533
533 /* Output code to construct the rtl for the instruction bodies. 534 /* Output code to construct the rtl for the instruction bodies.
645 printf ("%s\n", XSTR (split, 3)); 646 printf ("%s\n", XSTR (split, 3));
646 } 647 }
647 648
648 /* Output code to copy the arguments back out of `operands' */ 649 /* Output code to copy the arguments back out of `operands' */
649 for (i = 0; i < operands; i++) 650 for (i = 0; i < operands; i++)
650 printf (" operand%d = operands[%d];\n", i, i); 651 {
652 printf (" operand%d = operands[%d];\n", i, i);
653 printf (" (void) operand%d;\n", i);
654 }
651 655
652 /* Output code to construct the rtl for the instruction bodies. 656 /* Output code to construct the rtl for the instruction bodies.
653 Use emit_insn to add them to the sequence being accumulated. 657 Use emit_insn to add them to the sequence being accumulated.
654 But don't do this if the user's code has set `no_more' nonzero. */ 658 But don't do this if the user's code has set `no_more' nonzero. */
655 659
847 printf ("#include \"rtl.h\"\n"); 851 printf ("#include \"rtl.h\"\n");
848 printf ("#include \"tm_p.h\"\n"); 852 printf ("#include \"tm_p.h\"\n");
849 printf ("#include \"function.h\"\n"); 853 printf ("#include \"function.h\"\n");
850 printf ("#include \"expr.h\"\n"); 854 printf ("#include \"expr.h\"\n");
851 printf ("#include \"optabs.h\"\n"); 855 printf ("#include \"optabs.h\"\n");
852 printf ("#include \"real.h\"\n");
853 printf ("#include \"dfp.h\"\n"); 856 printf ("#include \"dfp.h\"\n");
854 printf ("#include \"flags.h\"\n"); 857 printf ("#include \"flags.h\"\n");
855 printf ("#include \"output.h\"\n"); 858 printf ("#include \"output.h\"\n");
856 printf ("#include \"insn-config.h\"\n"); 859 printf ("#include \"insn-config.h\"\n");
857 printf ("#include \"hard-reg-set.h\"\n"); 860 printf ("#include \"hard-reg-set.h\"\n");