From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.gentoo.org (woodpecker.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) by sourceware.org (Postfix) with ESMTP id 586923858D32 for ; Mon, 2 Jan 2023 04:32:14 +0000 (GMT) Received: by smtp.gentoo.org (Postfix, from userid 559) id DCFE2340CA7; Mon, 2 Jan 2023 04:32:13 +0000 (UTC) From: Mike Frysinger To: gdb-patches@sourceware.org Subject: [PATCH 1/9] sim: cgen: hoist rules to the top-level build Date: Sun, 1 Jan 2023 23:32:01 -0500 Message-Id: <20230102043209.21542-1-vapier@gentoo.org> X-Mailer: git-send-email 2.39.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-11.2 required=5.0 tests=BAYES_00,GIT_PATCH_0,JMQ_SPF_NEUTRAL,KAM_DMARC_STATUS,SPF_HELO_PASS,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: The rules seem to generate the same output as existing subdir cgen rules with cgen ports, so hopefully this should be correct. These are the last set of codegen rules that we run in subdirs, so this will help unblock killing off subdir builds entirely. --- sim/Makefile.in | 53 +++++++++++++++++++++++++++++++++++++++ sim/common/local.mk | 60 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 113 insertions(+) diff --git a/sim/common/local.mk b/sim/common/local.mk index dde24810e575..22917e0f8a64 100644 --- a/sim/common/local.mk +++ b/sim/common/local.mk @@ -142,3 +142,63 @@ SIM_COMMON_LIBS = \ $(LIBIBERTY_LIB) \ $(LIBGNU) \ $(LIBGNU_EXTRA_LIBS) + +## +## CGEN support. +## + +## If the local tree has a bundled copy of guile, use that. +GUILE = $(or $(wildcard ../guile/libguile/guile),guile) +CGEN = "$(GUILE) -l $(cgendir)/guile.scm -s" +CGENFLAGS = -v +CGEN_CPU_DIR = $(cgendir)/cpu +## Most ports use the files here instead of cgen/cpu. +CPU_DIR = $(srcroot)/cpu +CGEN_ARCHFILE = $(CPU_DIR)/$(@D).cpu + +CGEN_READ_SCM = $(cgendir)/sim.scm +CGEN_ARCH_SCM = $(cgendir)/sim-arch.scm +CGEN_CPU_SCM = $(cgendir)/sim-cpu.scm $(cgendir)/sim-model.scm +CGEN_DECODE_SCM = $(cgendir)/sim-decode.scm +CGEN_DESC_SCM = $(cgendir)/desc.scm $(cgendir)/desc-cpu.scm + +## Various choices for which cpu specific files to generate. +## These are passed to cgen.sh in the "extrafiles" argument. +CGEN_CPU_EXTR = /extr/ +CGEN_CPU_READ = /read/ +CGEN_CPU_WRITE = /write/ +CGEN_CPU_SEM = /sem/ +CGEN_CPU_SEMSW = /semsw/ + +CGEN_WRAPPER = $(srccom)/cgen.sh + +CGEN_GEN_ARCH = \ + $(SHELL) $(CGEN_WRAPPER) arch $(srcdir)/$(@D) \ + $(CGEN) $(cgendir) "$(CGENFLAGS)" \ + $(@D) "$$FLAGS" ignored "$$isa" $$mach ignored \ + $(CGEN_ARCHFILE) ignored +CGEN_GEN_CPU = \ + $(SHELL) $(CGEN_WRAPPER) cpu $(srcdir)/$(@D) \ + $(CGEN) $(cgendir) "$(CGENFLAGS)" \ + $(@D) "$$FLAGS" $$cpu "$$isa" $$mach "$$SUFFIX" \ + $(CGEN_ARCHFILE) "$$EXTRAFILES" +CGEN_GEN_DEFS = \ + $(SHELL) $(CGEN_WRAPPER) defs $(srcdir)/$(@D) \ + $(CGEN) $(cgendir) "$(CGENFLAGS)" \ + $(@D) "$$FLAGS" $$cpu "$$isa" $$mach "$$SUFFIX" \ + $(CGEN_ARCHFILE) ignored +CGEN_GEN_DECODE = \ + $(SHELL) $(CGEN_WRAPPER) decode $(srcdir)/$(@D) \ + $(CGEN) $(cgendir) "$(CGENFLAGS)" \ + $(@D) "$$FLAGS" $$cpu "$$isa" $$mach "$$SUFFIX" \ + $(CGEN_ARCHFILE) "$$EXTRAFILES" +CGEN_GEN_CPU_DECODE = \ + $(SHELL) $(CGEN_WRAPPER) cpu-decode $(srcdir)/$(@D) \ + $(CGEN) $(cgendir) "$(CGENFLAGS)" \ + $(@D) "$$FLAGS" $$cpu "$$isa" $$mach "$$SUFFIX" \ + $(CGEN_ARCHFILE) "$$EXTRAFILES" +CGEN_GEN_CPU_DESC = \ + $(SHELL) $(CGEN_WRAPPER) desc $(srcdir)/$(@D) \ + $(CGEN) $(cgendir) "$(CGENFLAGS)" \ + $(@D) "$$FLAGS" $$cpu "$$isa" $$mach "$$SUFFIX" \ + $(CGEN_ARCHFILE) ignored $$opcfile -- 2.39.0