]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
sim: ppc: unify igen filter modules
authorMike Frysinger <vapier@gentoo.org>
Wed, 3 Jan 2024 08:12:42 +0000 (03:12 -0500)
committerMike Frysinger <vapier@gentoo.org>
Wed, 3 Jan 2024 08:37:13 +0000 (03:37 -0500)
The common igen code was forked from the ppc long ago.  The filter
module is still pretty similar in API, so we can unfork them with
a little bit of effort.

The filter.c module is still here because of the unique it_is API.
The common igen code doesn't seem to have an equiv API as this only
operates on two strings and not an actual filter object, and it's
easy enough to leave behind to unfork the rest.

sim/Makefile.in
sim/ppc/filter-ppc.c [new file with mode: 0644]
sim/ppc/filter-ppc.h [moved from sim/ppc/filter.h with 73% similarity]
sim/ppc/filter.c [deleted file]
sim/ppc/gen-icache.c
sim/ppc/gen-idecode.c
sim/ppc/gen-semantics.c
sim/ppc/gen-support.c
sim/ppc/igen.c
sim/ppc/ld-insn.c
sim/ppc/local.mk

index 2ef5eb7622e24bd03e0c6421fce454428b0c292e..ab9e4410640b1bba28af44cab9e80c2e85b831be 100644 (file)
@@ -812,7 +812,7 @@ or1k_libsim_a_AR = $(AR) $(ARFLAGS)
 or1k_libsim_a_OBJECTS = $(am_or1k_libsim_a_OBJECTS) \
        $(nodist_or1k_libsim_a_OBJECTS)
 ppc_libigen_a_AR = $(AR) $(ARFLAGS)
-@SIM_ENABLE_ARCH_ppc_TRUE@ppc_libigen_a_DEPENDENCIES =  \
+@SIM_ENABLE_ARCH_ppc_TRUE@ppc_libigen_a_DEPENDENCIES = igen/filter.o \
 @SIM_ENABLE_ARCH_ppc_TRUE@     igen/filter_host.o igen/lf.o \
 @SIM_ENABLE_ARCH_ppc_TRUE@     igen/misc.o
 @SIM_ENABLE_ARCH_ppc_TRUE@am_ppc_libigen_a_OBJECTS =  \
@@ -821,7 +821,7 @@ ppc_libigen_a_AR = $(AR) $(ARFLAGS)
 @SIM_ENABLE_ARCH_ppc_TRUE@     ppc/dumpf.$(OBJEXT) \
 @SIM_ENABLE_ARCH_ppc_TRUE@     ppc/ld-decode.$(OBJEXT) \
 @SIM_ENABLE_ARCH_ppc_TRUE@     ppc/ld-cache.$(OBJEXT) \
-@SIM_ENABLE_ARCH_ppc_TRUE@     ppc/filter.$(OBJEXT) \
+@SIM_ENABLE_ARCH_ppc_TRUE@     ppc/filter-ppc.$(OBJEXT) \
 @SIM_ENABLE_ARCH_ppc_TRUE@     ppc/ld-insn.$(OBJEXT) \
 @SIM_ENABLE_ARCH_ppc_TRUE@     ppc/gen-model.$(OBJEXT) \
 @SIM_ENABLE_ARCH_ppc_TRUE@     ppc/gen-itable.$(OBJEXT) \
@@ -933,7 +933,6 @@ am__EXEEXT_1 = $(IGEN) igen/filter$(EXEEXT) igen/gen$(EXEEXT) \
 @SIM_ENABLE_ARCH_m32c_TRUE@am__EXEEXT_4 = m32c/opc2c$(EXEEXT)
 @SIM_ENABLE_ARCH_m68hc11_TRUE@am__EXEEXT_5 = m68hc11/gencode$(EXEEXT)
 @SIM_ENABLE_ARCH_ppc_TRUE@am__EXEEXT_6 = $(PPC_IGEN) \
-@SIM_ENABLE_ARCH_ppc_TRUE@     ppc/filter$(EXEEXT) \
 @SIM_ENABLE_ARCH_ppc_TRUE@     ppc/ld-cache$(EXEEXT) \
 @SIM_ENABLE_ARCH_ppc_TRUE@     ppc/ld-decode$(EXEEXT) \
 @SIM_ENABLE_ARCH_ppc_TRUE@     ppc/ld-insn$(EXEEXT)
@@ -1148,10 +1147,6 @@ am_or1k_run_OBJECTS =
 or1k_run_OBJECTS = $(am_or1k_run_OBJECTS)
 @SIM_ENABLE_ARCH_or1k_TRUE@or1k_run_DEPENDENCIES = or1k/nrun.o \
 @SIM_ENABLE_ARCH_or1k_TRUE@    or1k/libsim.a $(am__DEPENDENCIES_4)
-am_ppc_filter_OBJECTS =
-ppc_filter_OBJECTS = $(am_ppc_filter_OBJECTS)
-@SIM_ENABLE_ARCH_ppc_TRUE@ppc_filter_DEPENDENCIES = ppc/filter-main.o \
-@SIM_ENABLE_ARCH_ppc_TRUE@     ppc/libigen.a
 @SIM_ENABLE_ARCH_ppc_TRUE@am_ppc_igen_OBJECTS = ppc/igen.$(OBJEXT)
 ppc_igen_OBJECTS = $(am_ppc_igen_OBJECTS)
 @SIM_ENABLE_ARCH_ppc_TRUE@ppc_igen_DEPENDENCIES = ppc/libigen.a
@@ -1311,8 +1306,7 @@ SOURCES = $(aarch64_libsim_a_SOURCES) \
        $(m68hc11_run_SOURCES) $(mcore_run_SOURCES) \
        $(microblaze_run_SOURCES) $(mips_run_SOURCES) \
        $(mn10300_run_SOURCES) $(moxie_run_SOURCES) \
-       $(msp430_run_SOURCES) $(or1k_run_SOURCES) \
-       $(ppc_filter_SOURCES) $(ppc_igen_SOURCES) \
+       $(msp430_run_SOURCES) $(or1k_run_SOURCES) $(ppc_igen_SOURCES) \
        $(ppc_ld_cache_SOURCES) $(ppc_ld_decode_SOURCES) \
        $(ppc_ld_insn_SOURCES) $(ppc_run_SOURCES) $(pru_run_SOURCES) \
        $(riscv_run_SOURCES) $(rl78_run_SOURCES) $(rx_run_SOURCES) \
@@ -2997,7 +2991,7 @@ testsuite_common_CPPFLAGS = \
 @SIM_ENABLE_ARCH_ppc_TRUE@     ppc/dumpf.c \
 @SIM_ENABLE_ARCH_ppc_TRUE@     ppc/ld-decode.c \
 @SIM_ENABLE_ARCH_ppc_TRUE@     ppc/ld-cache.c \
-@SIM_ENABLE_ARCH_ppc_TRUE@     ppc/filter.c \
+@SIM_ENABLE_ARCH_ppc_TRUE@     ppc/filter-ppc.c \
 @SIM_ENABLE_ARCH_ppc_TRUE@     ppc/ld-insn.c \
 @SIM_ENABLE_ARCH_ppc_TRUE@     ppc/gen-model.c \
 @SIM_ENABLE_ARCH_ppc_TRUE@     ppc/gen-itable.c \
@@ -3007,6 +3001,7 @@ testsuite_common_CPPFLAGS = \
 @SIM_ENABLE_ARCH_ppc_TRUE@     ppc/gen-support.c
 
 @SIM_ENABLE_ARCH_ppc_TRUE@ppc_libigen_a_LIBADD = \
+@SIM_ENABLE_ARCH_ppc_TRUE@     igen/filter.o \
 @SIM_ENABLE_ARCH_ppc_TRUE@     igen/filter_host.o \
 @SIM_ENABLE_ARCH_ppc_TRUE@     igen/lf.o \
 @SIM_ENABLE_ARCH_ppc_TRUE@     igen/misc.o
@@ -3046,8 +3041,6 @@ testsuite_common_CPPFLAGS = \
 @SIM_ENABLE_ARCH_ppc_TRUE@     ppc/stamp-igen ppc/hw.c ppc/hw.h \
 @SIM_ENABLE_ARCH_ppc_TRUE@     ppc/stamp-hw ppc/stamp-pk
 @SIM_ENABLE_ARCH_ppc_TRUE@ppc_IGEN_OPCODE_RULES = ppc/@sim_ppc_opcode@
-@SIM_ENABLE_ARCH_ppc_TRUE@ppc_filter_SOURCES = 
-@SIM_ENABLE_ARCH_ppc_TRUE@ppc_filter_LDADD = ppc/filter-main.o ppc/libigen.a
 @SIM_ENABLE_ARCH_ppc_TRUE@ppc_ld_cache_SOURCES = 
 @SIM_ENABLE_ARCH_ppc_TRUE@ppc_ld_cache_LDADD = ppc/ld-cache-main.o ppc/libigen.a
 @SIM_ENABLE_ARCH_ppc_TRUE@ppc_ld_decode_SOURCES = 
@@ -3056,7 +3049,6 @@ testsuite_common_CPPFLAGS = \
 @SIM_ENABLE_ARCH_ppc_TRUE@ppc_ld_insn_LDADD = ppc/ld-insn-main.o ppc/libigen.a
 @SIM_ENABLE_ARCH_ppc_TRUE@ppc_IGEN_TOOLS = \
 @SIM_ENABLE_ARCH_ppc_TRUE@     $(PPC_IGEN) \
-@SIM_ENABLE_ARCH_ppc_TRUE@     ppc/filter \
 @SIM_ENABLE_ARCH_ppc_TRUE@     ppc/ld-cache \
 @SIM_ENABLE_ARCH_ppc_TRUE@     ppc/ld-decode \
 @SIM_ENABLE_ARCH_ppc_TRUE@     ppc/ld-insn
@@ -3756,7 +3748,7 @@ ppc/ld-decode.$(OBJEXT): ppc/$(am__dirstamp) \
        ppc/$(DEPDIR)/$(am__dirstamp)
 ppc/ld-cache.$(OBJEXT): ppc/$(am__dirstamp) \
        ppc/$(DEPDIR)/$(am__dirstamp)
-ppc/filter.$(OBJEXT): ppc/$(am__dirstamp) \
+ppc/filter-ppc.$(OBJEXT): ppc/$(am__dirstamp) \
        ppc/$(DEPDIR)/$(am__dirstamp)
 ppc/ld-insn.$(OBJEXT): ppc/$(am__dirstamp) \
        ppc/$(DEPDIR)/$(am__dirstamp)
@@ -4038,10 +4030,6 @@ msp430/run$(EXEEXT): $(msp430_run_OBJECTS) $(msp430_run_DEPENDENCIES) $(EXTRA_ms
 or1k/run$(EXEEXT): $(or1k_run_OBJECTS) $(or1k_run_DEPENDENCIES) $(EXTRA_or1k_run_DEPENDENCIES) or1k/$(am__dirstamp)
        @rm -f or1k/run$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(or1k_run_OBJECTS) $(or1k_run_LDADD) $(LIBS)
-
-ppc/filter$(EXEEXT): $(ppc_filter_OBJECTS) $(ppc_filter_DEPENDENCIES) $(EXTRA_ppc_filter_DEPENDENCIES) ppc/$(am__dirstamp)
-       @rm -f ppc/filter$(EXEEXT)
-       $(AM_V_CCLD)$(LINK) $(ppc_filter_OBJECTS) $(ppc_filter_LDADD) $(LIBS)
 ppc/igen.$(OBJEXT): ppc/$(am__dirstamp) ppc/$(DEPDIR)/$(am__dirstamp)
 
 @SIM_ENABLE_ARCH_ppc_FALSE@ppc/igen$(EXEEXT): $(ppc_igen_OBJECTS) $(ppc_igen_DEPENDENCIES) $(EXTRA_ppc_igen_DEPENDENCIES) ppc/$(am__dirstamp)
@@ -4216,7 +4204,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@msp430/$(DEPDIR)/modules.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@or1k/$(DEPDIR)/modules.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@ppc/$(DEPDIR)/dumpf.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@ppc/$(DEPDIR)/filter.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ppc/$(DEPDIR)/filter-ppc.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@ppc/$(DEPDIR)/gen-icache.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@ppc/$(DEPDIR)/gen-idecode.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@ppc/$(DEPDIR)/gen-itable.Po@am__quote@
diff --git a/sim/ppc/filter-ppc.c b/sim/ppc/filter-ppc.c
new file mode 100644 (file)
index 0000000..62a25d9
--- /dev/null
@@ -0,0 +1,41 @@
+/*  This file is part of the program psim.
+
+    Copyright (C) 1994-1995, Andrew Cagney <cagney@highland.com.au>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, see <http://www.gnu.org/licenses/>.
+
+    */
+
+#include <string.h>
+
+#include "filter-ppc.h"
+
+int
+it_is(const char *flag,
+      const char *flags)
+{
+  int flag_len = strlen(flag);
+  while (*flags != '\0') {
+    if (!strncmp(flags, flag, flag_len)
+       && (flags[flag_len] == ',' || flags[flag_len] == '\0'))
+      return 1;
+    while (*flags != ',') {
+      if (*flags == '\0')
+       return 0;
+      flags++;
+    }
+    flags++;
+  }
+  return 0;
+}
similarity index 73%
rename from sim/ppc/filter.h
rename to sim/ppc/filter-ppc.h
index d4c659a1a16271f3e4f3473ff2179b92a0bed703..d7df67428dae26c719c8e2ac27ff66de3262ff64 100644 (file)
     but WITHOUT ANY WARRANTY; without even the implied warranty of
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
+
     You should have received a copy of the GNU General Public License
     along with this program; if not, see <http://www.gnu.org/licenses/>.
-    */
-
-
-typedef struct _filter filter;
-
 
-/* append the filter onto the end of the list */
-
-extern filter *new_filter
-(const char *filt,
- filter *filters);
-
-
-/* returns true if the flags are non empty and some are missing from the filter list */
+    */
 
-extern int is_filtered_out
-(const char *flags,
- filter *filters);
+#ifndef PPC_FILTER_H
+#define PPC_FILTER_H
 
 /* true if the flag is in the list */
 
@@ -40,3 +26,4 @@ extern int it_is
 (const char *flag,
  const char *flags);
 
+#endif /* PPC_FILTER_H */
diff --git a/sim/ppc/filter.c b/sim/ppc/filter.c
deleted file mode 100644 (file)
index c2f28ea..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-/*  This file is part of the program psim.
-
-    Copyright (C) 1994-1995, Andrew Cagney <cagney@highland.com.au>
-
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 3 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, see <http://www.gnu.org/licenses/>.
-    */
-
-
-#include <stdio.h>
-
-#include <string.h>
-
-#include "misc.h"
-#include "filter.h"
-
-struct _filter {
-  char *flag;
-  filter *next;
-};
-
-
-filter *
-new_filter(const char *filt,
-          filter *filters)
-{
-  while (strlen(filt) > 0) {
-    filter *new_filter;
-    /* break up the filt list */
-    const char *end = strchr(filt, ',');
-    const char *next;
-    int len;
-    if (end == NULL) {
-      end = strchr(filt, '\0');
-      next = end;
-    }
-    else {
-      next = end + 1;
-    }
-    len = end - filt;
-    /* add to filter list */
-    new_filter = ZALLOC(filter);
-    new_filter->flag = (char*)zalloc(len + 1);
-    strncpy(new_filter->flag, filt, len);
-    new_filter->next = filters;
-    filters = new_filter;
-    filt = next;
-  }
-  return filters;
-}
-
-
-int
-is_filtered_out(const char *flags,
-               filter *filters)
-{
-  while (strlen(flags) > 0) {
-    int present;
-    filter *filt = filters;
-    /* break the string up */
-    const char *end = strchr(flags, ',');
-    const char *next;
-    int len;
-    if (end == NULL) {
-      end = strchr(flags, '\0');
-      next = end;
-    }
-    else {
-      next = end + 1;
-    }
-    len = end - flags;
-    /* check that it is present */
-    present = 0;
-    filt = filters;
-    while (filt != NULL) {
-      if (strncmp(flags, filt->flag, len) == 0
-         && strlen(filt->flag) == len) {
-       present = 1;
-       break;
-      }
-      filt = filt->next;
-    }
-    if (!present)
-      return 1;
-    flags = next;
-  }
-  return 0;
-}
-
-
-int
-it_is(const char *flag,
-      const char *flags)
-{
-  int flag_len = strlen(flag);
-  while (*flags != '\0') {
-    if (!strncmp(flags, flag, flag_len)
-       && (flags[flag_len] == ',' || flags[flag_len] == '\0'))
-      return 1;
-    while (*flags != ',') {
-      if (*flags == '\0')
-       return 0;
-      flags++;
-    }
-    flags++;
-  }
-  return 0;
-}
-
-
-#ifdef MAIN
-int
-main(int argc, char **argv)
-{
-  filter *filters = NULL;
-  int i;
-  if (argc < 2) {
-    printf("Usage: filter <flags> <filter> ...\n");
-    exit (1);
-  }
-  /* load the filter up */
-  for (i = 2; i < argc; i++) 
-    filters = new_filter(argv[i], filters);
-  if (is_filtered_out(argv[1], filters))
-    printf("fail\n");
-  else
-    printf("pass\n");
-  return 0;
-}
-#endif
index c10735c1764bfc0c5639bda7f2245823389a9e0c..d9b76aded98472193fd734fe71b96387b48ab248 100644 (file)
@@ -25,6 +25,7 @@
 #include "table.h"
 
 #include "filter.h"
+#include "filter-ppc.h"
 
 #include "ld-decode.h"
 #include "ld-cache.h"
index 55c62906735a6af1441908b075ad2f1291b76c11..bbb1cc980bc5fdea66b06d49943734f98fbbc757 100644 (file)
@@ -23,6 +23,7 @@
 #include "table.h"
 
 #include "filter.h"
+#include "filter-ppc.h"
 
 #include "ld-decode.h"
 #include "ld-cache.h"
index 587080b5f64e76b805ba6fe8dda4befd04b83464..99f5fe847c305a93b22f52036447aa33a763be87 100644 (file)
@@ -24,6 +24,7 @@
 #include "lf-ppc.h"
 #include "table.h"
 #include "filter.h"
+#include "filter-ppc.h"
 
 #include "ld-decode.h"
 #include "ld-cache.h"
index 0c2b28a42b07da6fd511597583152ab582b6d842..5a192fdd0002da05b330c54fdfea13554e41d62e 100644 (file)
@@ -22,6 +22,7 @@
 #include "lf-ppc.h"
 #include "table.h"
 #include "filter.h"
+#include "filter-ppc.h"
 
 #include "ld-decode.h"
 #include "ld-cache.h"
index 1e6951d8e66a035d4377489ebcfc7f85947474af..635030d4a9eaacb560d1f5014b6133034fefa59f 100644 (file)
@@ -480,7 +480,7 @@ main(int argc,
       ASSERT(hi_bit_nr == insn_bit_size-1 || hi_bit_nr == 0);
       break;
     case 'F':
-      filters = new_filter(optarg, filters);
+      filter_parse(&filters, optarg);
       break;
     case 'J':
       code &= ~generate_calls;
index 6b5402676b303958042f9b43e6ad5e1ed33c215c..ab1c43e7939d96263fb2cba85cd6acb503f7119c 100644 (file)
@@ -22,6 +22,7 @@
 #include "lf.h"
 #include "table.h"
 #include "filter.h"
+#include "filter-ppc.h"
 #include "ld-decode.h"
 #include "ld-cache.h"
 #include "ld-insn.h"
@@ -219,7 +220,7 @@ parse_include_entry (table *file,
   if (file_entry->nr_fields < 4)
     ERROR ("Incorrect nr fields for include record\n");
   /* process it */
-  if (!is_filtered_out(file_entry->fields[include_flags], filters))
+  if (!is_filtered_out(filters, file_entry->fields[include_flags]))
     {
       table_push (file, includes,
                 file_entry->fields[include_path],
@@ -365,7 +366,7 @@ load_insn_table(const char *file_name,
     }
     else if ((it_is("function", file_entry->fields[insn_form])
              || it_is("internal", file_entry->fields[insn_form]))
-            && !is_filtered_out(file_entry->fields[insn_flags], filters)) {
+            && !is_filtered_out(filters, file_entry->fields[insn_flags])) {
       /* Ok, this is evil.  Need to convert a new style function into
          an old style function.  Construct an old style table and then
          copy it back.  */
@@ -409,13 +410,13 @@ load_insn_table(const char *file_name,
       model_table_insert_specific(table, file_entry, &model_data, &last_model_data);
     }
     else if (it_is("include", file_entry->fields[insn_form])
-             && !is_filtered_out(file_entry->fields[insn_flags], filters)) {
+             && !is_filtered_out(filters, file_entry->fields[insn_flags])) {
       parse_include_entry (file, file_entry, filters, includes);
     }
     else if ((it_is("cache", file_entry->fields[insn_form])
              || it_is("compute", file_entry->fields[insn_form])
              || it_is("scratch", file_entry->fields[insn_form]))
-            && !is_filtered_out(file_entry->fields[insn_flags], filters)) {
+            && !is_filtered_out(filters, file_entry->fields[insn_flags])) {
       append_cache_rule (cache_rules,
                         file_entry->fields[insn_form], /* type */
                         file_entry->fields[cache_name],
@@ -427,7 +428,7 @@ load_insn_table(const char *file_name,
     else {
       insn_fields *fields;
       /* skip instructions that aren't relevant to the mode */
-      if (is_filtered_out(file_entry->fields[insn_flags], filters)) {
+      if (is_filtered_out(filters, file_entry->fields[insn_flags])) {
        fprintf(stderr, "Dropping %s - %s\n",
                file_entry->fields[insn_name],
                file_entry->fields[insn_flags]);
@@ -982,7 +983,7 @@ main(int argc, char **argv)
   if (argc != 5)
     ERROR("Usage: insn <filter> <hi-bit-nr> <decode-table> <insn-table>\n");
 
-  filters = new_filter(argv[1], filters);
+  filter_parse(&filters, argv[1]);
   hi_bit_nr = a2i(argv[2]);
   ASSERT(hi_bit_nr < insn_bit_size);
   decode_rules = load_decode_table(argv[3], hi_bit_nr);
index d872014d1b56330ce9585aa852771e7eb9f10b15..3f495cb44c0b3c0c0997d175896d96640bb6def1 100644 (file)
@@ -104,7 +104,7 @@ EXTRA_LIBRARIES += %D%/libigen.a
        %D%/dumpf.c \
        %D%/ld-decode.c \
        %D%/ld-cache.c \
-       %D%/filter.c \
+       %D%/filter-ppc.c \
        %D%/ld-insn.c \
        %D%/gen-model.c \
        %D%/gen-itable.c \
@@ -113,6 +113,7 @@ EXTRA_LIBRARIES += %D%/libigen.a
        %D%/gen-idecode.c \
        %D%/gen-support.c
 %C%_libigen_a_LIBADD = \
+       igen/filter.o \
        igen/filter_host.o \
        igen/lf.o \
        igen/misc.o
@@ -199,9 +200,6 @@ $(%C%_libigen_a_OBJECTS) $(%C%_igen_OBJECTS): %D%/%.o: %D%/%.c
 %D%/%-main.o: %D%/%.c
        $(AM_V_CC)$(COMPILE_FOR_BUILD) -DMAIN -c $< -o $@
 
-%C%_filter_SOURCES =
-%C%_filter_LDADD = %D%/filter-main.o %D%/libigen.a
-
 %C%_ld_cache_SOURCES =
 %C%_ld_cache_LDADD = %D%/ld-cache-main.o %D%/libigen.a
 
@@ -213,7 +211,6 @@ $(%C%_libigen_a_OBJECTS) $(%C%_igen_OBJECTS): %D%/%.o: %D%/%.c
 
 %C%_IGEN_TOOLS = \
        $(PPC_IGEN) \
-       %D%/filter \
        %D%/ld-cache \
        %D%/ld-decode \
        %D%/ld-insn