X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2Fgenpeep.c;h=ba2328d1f3e828f005f4705da7dc61f6648951c4;hb=57f96f27fefa22a1add33de908fe8ae2b105078c;hp=10f75d1caab9dc5d90a489c2f1c6acad8a25b488;hpb=1bb047289a4a7728316db4052deed7dc8c119dbc;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/genpeep.c b/gcc/genpeep.c index 10f75d1caab..ba2328d1f3e 100644 --- a/gcc/genpeep.c +++ b/gcc/genpeep.c @@ -15,11 +15,12 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU CC; see the file COPYING. If not, write to -the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ +the Free Software Foundation, 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ #include -#include "config.h" +#include "hconfig.h" #include "rtl.h" #include "obstack.h" @@ -186,6 +187,7 @@ match_rtx (x, path, fail_label) return; case MATCH_DUP: + case MATCH_PAR_DUP: printf (" x = "); print_path (path); printf (";\n"); @@ -311,6 +313,24 @@ match_rtx (x, path, fail_label) printf (" if (XINT (x, %d) != %d) goto L%d;\n", i, XINT (x, i), fail_label); } + else if (fmt[i] == 'w') + { + /* Make sure that at run time `x' is the RTX we want to test. */ + if (i != 0) + { + printf (" x = "); + print_path (path); + printf (";\n"); + } + +#if HOST_BITS_PER_WIDE_INT == HOST_BITS_PER_INT + printf (" if (XWINT (x, %d) != %d) goto L%d;\n", + i, XWINT (x, i), fail_label); +#else + printf (" if (XWINT (x, %d) != %ld) goto L%d;\n", + i, XWINT (x, i), fail_label); +#endif + } else if (fmt[i] == 's') { /* Make sure that at run time `x' is the RTX we want to test. */