aboutsummaryrefslogtreecommitdiff
path: root/sim
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2024-01-03 03:12:42 -0500
committerMike Frysinger <vapier@gentoo.org>2024-01-03 03:37:13 -0500
commit086d7dbb2e689cf53df66c7edf3ea01c3ff2f1a9 (patch)
treef21664577b6c8558232fb252fd440756b3aedfe8 /sim
parent7811c75893c4078d9b81f05d1642d7833c0ca400 (diff)
downloadbinutils-086d7dbb2e689cf53df66c7edf3ea01c3ff2f1a9.zip
binutils-086d7dbb2e689cf53df66c7edf3ea01c3ff2f1a9.tar.gz
binutils-086d7dbb2e689cf53df66c7edf3ea01c3ff2f1a9.tar.bz2
sim: ppc: unify igen filter modules
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.
Diffstat (limited to 'sim')
-rw-r--r--sim/Makefile.in26
-rw-r--r--sim/ppc/filter-ppc.c41
-rw-r--r--sim/ppc/filter-ppc.h (renamed from sim/ppc/filter.h)23
-rw-r--r--sim/ppc/filter.c141
-rw-r--r--sim/ppc/gen-icache.c1
-rw-r--r--sim/ppc/gen-idecode.c1
-rw-r--r--sim/ppc/gen-semantics.c1
-rw-r--r--sim/ppc/gen-support.c1
-rw-r--r--sim/ppc/igen.c2
-rw-r--r--sim/ppc/ld-insn.c13
-rw-r--r--sim/ppc/local.mk7
11 files changed, 67 insertions, 190 deletions
diff --git a/sim/Makefile.in b/sim/Makefile.in
index 2ef5eb7..ab9e441 100644
--- a/sim/Makefile.in
+++ b/sim/Makefile.in
@@ -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
index 0000000..62a25d9
--- /dev/null
+++ b/sim/ppc/filter-ppc.c
@@ -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;
+}
diff --git a/sim/ppc/filter.h b/sim/ppc/filter-ppc.h
index d4c659a..d7df674 100644
--- a/sim/ppc/filter.h
+++ b/sim/ppc/filter-ppc.h
@@ -11,28 +11,14 @@
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
index c2f28ea..0000000
--- a/sim/ppc/filter.c
+++ /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
diff --git a/sim/ppc/gen-icache.c b/sim/ppc/gen-icache.c
index c10735c..d9b76ad 100644
--- a/sim/ppc/gen-icache.c
+++ b/sim/ppc/gen-icache.c
@@ -25,6 +25,7 @@
#include "table.h"
#include "filter.h"
+#include "filter-ppc.h"
#include "ld-decode.h"
#include "ld-cache.h"
diff --git a/sim/ppc/gen-idecode.c b/sim/ppc/gen-idecode.c
index 55c6290..bbb1cc9 100644
--- a/sim/ppc/gen-idecode.c
+++ b/sim/ppc/gen-idecode.c
@@ -23,6 +23,7 @@
#include "table.h"
#include "filter.h"
+#include "filter-ppc.h"
#include "ld-decode.h"
#include "ld-cache.h"
diff --git a/sim/ppc/gen-semantics.c b/sim/ppc/gen-semantics.c
index 587080b..99f5fe8 100644
--- a/sim/ppc/gen-semantics.c
+++ b/sim/ppc/gen-semantics.c
@@ -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"
diff --git a/sim/ppc/gen-support.c b/sim/ppc/gen-support.c
index 0c2b28a..5a192fd 100644
--- a/sim/ppc/gen-support.c
+++ b/sim/ppc/gen-support.c
@@ -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"
diff --git a/sim/ppc/igen.c b/sim/ppc/igen.c
index 1e6951d..635030d 100644
--- a/sim/ppc/igen.c
+++ b/sim/ppc/igen.c
@@ -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;
diff --git a/sim/ppc/ld-insn.c b/sim/ppc/ld-insn.c
index 6b54026..ab1c43e 100644
--- a/sim/ppc/ld-insn.c
+++ b/sim/ppc/ld-insn.c
@@ -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);
diff --git a/sim/ppc/local.mk b/sim/ppc/local.mk
index d872014..3f495cb 100644
--- a/sim/ppc/local.mk
+++ b/sim/ppc/local.mk
@@ -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