comparison gcc/genemit.c @ 55:77e2b8dfacca gcc-4.4.5

update it from 4.4.3 to 4.5.0
author ryoma <e075725@ie.u-ryukyu.ac.jp>
date Fri, 12 Feb 2010 23:39:51 +0900
parents a06113de4d67
children b7f97abdc517
comparison
equal deleted inserted replaced
52:c156f1bd5cd9 55:77e2b8dfacca
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 Free Software Foundation, Inc. 3 2003, 2004, 2005, 2007, 2008, 2009 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
780 static void 780 static void
781 output_peephole2_scratches (rtx split) 781 output_peephole2_scratches (rtx split)
782 { 782 {
783 int i; 783 int i;
784 int insn_nr = 0; 784 int insn_nr = 0;
785 785 bool first = true;
786 printf (" HARD_REG_SET _regs_allocated;\n");
787 printf (" CLEAR_HARD_REG_SET (_regs_allocated);\n");
788 786
789 for (i = 0; i < XVECLEN (split, 0); i++) 787 for (i = 0; i < XVECLEN (split, 0); i++)
790 { 788 {
791 rtx elt = XVECEXP (split, 0, i); 789 rtx elt = XVECEXP (split, 0, i);
792 if (GET_CODE (elt) == MATCH_SCRATCH) 790 if (GET_CODE (elt) == MATCH_SCRATCH)
800 if (XINT (XVECEXP (split, 0, j), 0) == XINT (elt, 0)) 798 if (XINT (XVECEXP (split, 0, j), 0) == XINT (elt, 0))
801 last_insn_nr = cur_insn_nr; 799 last_insn_nr = cur_insn_nr;
802 } 800 }
803 else if (GET_CODE (XVECEXP (split, 0, j)) != MATCH_SCRATCH) 801 else if (GET_CODE (XVECEXP (split, 0, j)) != MATCH_SCRATCH)
804 cur_insn_nr++; 802 cur_insn_nr++;
803
804 if (first)
805 {
806 printf (" HARD_REG_SET _regs_allocated;\n");
807 printf (" CLEAR_HARD_REG_SET (_regs_allocated);\n");
808 first = false;
809 }
805 810
806 printf (" if ((operands[%d] = peep2_find_free_register (%d, %d, \"%s\", %smode, &_regs_allocated)) == NULL_RTX)\n\ 811 printf (" if ((operands[%d] = peep2_find_free_register (%d, %d, \"%s\", %smode, &_regs_allocated)) == NULL_RTX)\n\
807 return NULL;\n", 812 return NULL;\n",
808 XINT (elt, 0), 813 XINT (elt, 0),
809 insn_nr, last_insn_nr, 814 insn_nr, last_insn_nr,