Skip to content

Commit 31bcb08

Browse files
committed
History start
Corresponds to Simics Base 6.0.114 (build ID 6132)
0 parents  commit 31bcb08

File tree

939 files changed

+83520
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

939 files changed

+83520
-0
lines changed

LICENSE

+375
Large diffs are not rendered by default.

MODULEINFO

+126
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
# desc: Compiler for the DML language
2+
# type: Other
3+
# ip-owner: Simics
4+
# keywords:
5+
# docs: None
6+
# comment:
7+
8+
Group: dml-api-header(name)
9+
$(HOST)/bin/dml/api/4.8/1.2/simics/{name}
10+
$(HOST)/bin/dml/api/4.8/1.4/simics/{name}
11+
$(HOST)/bin/dml/api/5/1.2/simics/{name}
12+
$(HOST)/bin/dml/api/5/1.4/simics/{name}
13+
$(HOST)/bin/dml/api/6/1.2/simics/{name}
14+
$(HOST)/bin/dml/api/6/1.4/simics/{name}
15+
16+
Group: dmllib(name)
17+
$(HOST)/bin/dml/{name}.dml
18+
$(HOST)/bin/dml/{name}.dmlast
19+
$(HOST)/bin/dml-old-4.8/{name}.dml
20+
$(HOST)/bin/dml-old-4.8/{name}.dmlast
21+
22+
Group: dmllib-old-4.8(name)
23+
$(HOST)/bin/dml-old-4.8/{name}.dml
24+
$(HOST)/bin/dml-old-4.8/{name}.dmlast
25+
26+
Group: dml-1.2-reference-manual
27+
Require-tokens: public
28+
Directory: $(HOST)/doc/html/dml-1.2-reference-manual/[filelist.json]
29+
Directory-Suffixes: .css, .js, .html, .png, .json, .svg
30+
31+
Group: dml-1.4-reference-manual
32+
Require-tokens: public
33+
Directory: $(HOST)/doc/html/dml-1.4-reference-manual/[filelist.json]
34+
Directory-Suffixes: .css, .js, .html, .png, .json, .svg
35+
36+
Group: dmlc
37+
Require-tokens: public
38+
Make: dmlc
39+
@dmlc-lib
40+
@dml-1.2-reference-manual
41+
@dml-1.4-reference-manual
42+
$(HOST)/bin/dml/python/__main__.pyc
43+
$(HOST)/bin/dml/python/dml/__init__.pyc
44+
$(HOST)/bin/dml/python/dml/ast.pyc
45+
$(HOST)/bin/dml/python/dml/c_backend.pyc
46+
$(HOST)/bin/dml/python/dml/g_backend.pyc
47+
$(HOST)/bin/dml/python/dml/codegen.pyc
48+
$(HOST)/bin/dml/python/dml/crep.pyc
49+
$(HOST)/bin/dml/python/dml/ctree.pyc
50+
$(HOST)/bin/dml/python/dml/dmllex.pyc
51+
$(HOST)/bin/dml/python/dml/dmllex12.pyc
52+
$(HOST)/bin/dml/python/dml/dmllex14.pyc
53+
$(HOST)/bin/dml/python/dml/dmlparse.pyc
54+
$(HOST)/bin/dml/python/dml/dmlc.pyc
55+
$(HOST)/bin/dml/python/dml/expr.pyc
56+
$(HOST)/bin/dml/python/dml/expr_util.pyc
57+
$(HOST)/bin/dml/python/dml/globals.pyc
58+
$(HOST)/bin/dml/python/dml/info_backend.pyc
59+
$(HOST)/bin/dml/python/dml/int_register.pyc
60+
$(HOST)/bin/dml/python/dml/io_memory.pyc
61+
$(HOST)/bin/dml/python/dml/logging.pyc
62+
$(HOST)/bin/dml/python/dml/messages.pyc
63+
$(HOST)/bin/dml/python/dml/objects.pyc
64+
$(HOST)/bin/dml/python/dml/output.pyc
65+
$(HOST)/bin/dml/python/dml/reginfo.pyc
66+
$(HOST)/bin/dml/python/dml/serialize.pyc
67+
$(HOST)/bin/dml/python/dml/slotsmeta.pyc
68+
$(HOST)/bin/dml/python/dml/structure.pyc
69+
$(HOST)/bin/dml/python/dml/symtab.pyc
70+
$(HOST)/bin/dml/python/dml/template.pyc
71+
$(HOST)/bin/dml/python/dml/toplevel.pyc
72+
$(HOST)/bin/dml/python/dml/traits.pyc
73+
$(HOST)/bin/dml/python/dml/types.pyc
74+
$(HOST)/bin/dml/python/dml/dml12_parsetab.pyc
75+
$(HOST)/bin/dml/python/dml/dml14_parsetab.pyc
76+
$(HOST)/bin/dml/python/LICENSE
77+
$(HOST)/bin/dml/python/port_dml.py
78+
79+
Group: dmlc-lib
80+
Require-tokens: public
81+
Make: dmlc
82+
$(HOST)/bin/dml/include/simics/LICENSE
83+
$(HOST)/bin/dml/include/simics/dmllib.h
84+
$(HOST)/bin/dml-old-4.8/1.2/LICENSE
85+
$(HOST)/bin/dml-old-4.8/1.4/LICENSE
86+
$(HOST)/bin/dml/1.2/LICENSE
87+
$(HOST)/bin/dml/1.4/LICENSE
88+
# dml files available in all APIs
89+
@dmllib(1.2/arinc-429)
90+
@dmllib(1.2/crc)
91+
@dmllib(1.2/dml-builtins)
92+
@dmllib(1.2/dml12-compatibility)
93+
@dmllib(1.2/ethernet)
94+
@dmllib(1.2/io-memory)
95+
@dmllib(1.2/mil-std-1553)
96+
@dmllib(1.2/rapidio)
97+
@dmllib(1.2/rapidio-device)
98+
@dmllib(1.2/simics-api)
99+
@dmllib(1.2/simics-breakpoints)
100+
@dmllib(1.2/simics-configuration)
101+
@dmllib(1.2/simics-event)
102+
@dmllib(1.2/simics-memory)
103+
@dmllib(1.2/simics-device)
104+
@dmllib(1.2/simics-hindsight)
105+
@dmllib(1.2/simics-processor)
106+
@dmllib(1.2/simics-types)
107+
@dmllib(1.2/utility)
108+
@dmllib(1.4/dml-builtins)
109+
@dmllib(1.4/dml12-compatibility)
110+
@dmllib(1.4/internal)
111+
@dmllib(1.4/utility)
112+
# dml files available in 4.8 API
113+
@dmllib-old-4.8(1.2/i2c)
114+
@dmllib-old-4.8(1.2/ieee-802-3)
115+
@dmllib-old-4.8(1.2/interrupt)
116+
@dmllib-old-4.8(1.2/microwire)
117+
@dmllib-old-4.8(1.2/mii)
118+
@dmllib-old-4.8(1.2/mips)
119+
@dmllib-old-4.8(1.2/nand-flash)
120+
@dmllib-old-4.8(1.2/ppc)
121+
@dmllib-old-4.8(1.2/recorder)
122+
@dmllib-old-4.8(1.2/sata-interface)
123+
@dmllib-old-4.8(1.2/serial-device)
124+
@dmllib-old-4.8(1.2/serial-peripheral-interface)
125+
@dmllib-old-4.8(1.2/usb)
126+
@dmllib-old-4.8(1.2/x86)

Makefile

+233
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,233 @@
1+
# © 2021 Intel Corporation
2+
# SPDX-License-Identifier: MPL-2.0
3+
4+
#
5+
# makefile for dmlc
6+
#
7+
8+
DMLC_DIR := $(SRC_BASE)/$(TARGET)
9+
LIBDIR := $(SIMICS_PROJECT)/$(HOST_TYPE)/bin
10+
11+
PYFILES := dml/__init__.py \
12+
dml/ast.py \
13+
dml/c_backend.py \
14+
dml/g_backend.py \
15+
dml/codegen.py \
16+
dml/crep.py \
17+
dml/ctree.py \
18+
dml/template.py \
19+
dml/toplevel.py \
20+
dml/traits.py \
21+
dml/types.py \
22+
dml/dmllex.py \
23+
dml/dmllex12.py \
24+
dml/dmllex14.py \
25+
dml/dmlparse.py \
26+
dml/dmlc.py \
27+
dml/expr.py \
28+
dml/expr_util.py \
29+
dml/globals.py \
30+
dml/info_backend.py \
31+
dml/io_memory.py \
32+
dml/int_register.py \
33+
dml/logging.py \
34+
dml/messages.py \
35+
dml/objects.py \
36+
dml/output.py \
37+
dml/reginfo.py \
38+
dml/serialize.py \
39+
dml/slotsmeta.py \
40+
dml/structure.py \
41+
dml/symtab.py \
42+
__main__.py
43+
44+
PYUNIT_FILES := $(wildcard $(DMLC_DIR)/py/dml/*_test.py)
45+
PYUNIT_TESTED := $(foreach x,$(PYUNIT_FILES),$(basename $(notdir $x))-pyunit-tested)
46+
47+
GEN_PYFILES := dml12_parsetab.py \
48+
dml14_parsetab.py
49+
50+
.SECONDARY: $(GEN_PYFILES)
51+
52+
PYTHONPATH = $(LIBDIR)/dml/python
53+
54+
OUT_PYFILES := $(addprefix $(PYTHONPATH)/,$(PYFILES))
55+
OUT_GEN_PYFILES := $(addprefix $(PYTHONPATH)/dml/,$(GEN_PYFILES))
56+
57+
# used later on by refmanual build
58+
PARSER_DEBUGFILES := $(PYTHONPATH)/dml12_parser.out \
59+
$(PYTHONPATH)/dml14_parser.out
60+
61+
include $(SIMICS_BASE)/$(HOST_TYPE)/include/api-versions.mk
62+
63+
# lib-old-4.8/* is copied to bin/dml-old-4.8
64+
# lib/* is copied to both bin/dml, bin/dml-old-4.8
65+
OLD_DMLLIB_SRC_4_8 := $(DMLC_DIR)/lib-old-4.8
66+
OLD_DMLLIB_DEST_4_8 := $(LIBDIR)/dml-old-4.8
67+
DMLLIB_SRC := $(DMLC_DIR)/lib
68+
DMLLIB_DEST := $(LIBDIR)/dml
69+
DMLLIB_DESTDIRS := $(addprefix $(DMLLIB_DEST)/,1.2 1.4)
70+
OLD_DMLLIB_DESTDIRS_4_8 := $(addprefix $(OLD_DMLLIB_DEST_4_8)/,1.2 1.4)
71+
OLD_DMLFILES_4_8 := $(wildcard $(OLD_DMLLIB_SRC_4_8)/*/*.dml)
72+
DMLFILES := $(wildcard $(DMLLIB_SRC)/*/*.dml)
73+
OLD_DMLFILES_SRC_4_8 := $(subst $(OLD_DMLLIB_SRC_4_8)/,,$(OLD_DMLFILES_4_8))
74+
DMLFILES := $(subst $(DMLLIB_SRC)/,,$(DMLFILES))
75+
OLD_DMLFILES_4_8 := $(addprefix $(OLD_DMLLIB_DEST_4_8)/,$(DMLFILES) $(OLD_DMLFILES_SRC_4_8))
76+
DMLFILES := $(addprefix $(DMLLIB_DEST)/,$(DMLFILES))
77+
SCRIPTS := $(PYTHONPATH)/port_dml.py
78+
MPL_LICENSE := $(PYTHONPATH)/LICENSE
79+
BSD0_LICENSES := $(addsuffix /LICENSE,$(DMLLIB_DESTDIRS) $(OLD_DMLLIB_DESTDIRS_4_8) $(DMLLIB_DEST)/include/simics)
80+
81+
HFILES := $(DMLLIB_DEST)/include/simics/dmllib.h
82+
83+
DMLC_BIN := $(OUT_PYFILES) $(OUT_GEN_PYFILES) $(HFILES)
84+
85+
all: $(DMLC_BIN) \
86+
$(SCRIPTS) \
87+
$(DMLFILES) \
88+
$(OLD_DMLFILES_4_8) \
89+
$(BSD0_LICENSES) \
90+
$(MPL_LICENSE) \
91+
$(PYUNIT_TESTED) \
92+
$(PARSER_DEBUGFILES)
93+
94+
EXE_SUFFIX := $(if $(findstring win,$(HOST_TYPE)),.exe,)
95+
DMLC_CMD := $(PYTHON) $(PYTHONPATH)/__main__.py
96+
97+
PYCOMPILE:=$(PYTHON) $(SIMICS_BASE)/scripts/copy_python.py --compile
98+
99+
$(OUT_GEN_PYFILES): $(LIBDIR)/dml/python/dml/%.py: %.py
100+
$(info Compiling $(<F))
101+
$(PYCOMPILE) $^ $@
102+
103+
$(OUT_PYFILES): $(LIBDIR)/dml/python/%.py: $(DMLC_DIR)/py/%.py
104+
$(info Compiling $(<F))
105+
$(PYCOMPILE) $^ $@
106+
107+
$(SCRIPTS): $(PYTHONPATH)/%: $(DMLC_DIR)/py/%
108+
cp $< $@
109+
110+
$(HFILES): $(DMLLIB_DEST)/%: $(DMLC_DIR)/%
111+
$(PYTHON) $(DMLC_DIR)/copy_h.py $< $@
112+
113+
# Generate the parser tables
114+
# Fairly expensive, so we only rebuild when relevant files have
115+
# changed
116+
# We would want to keep the parsetabs in the dml Python package, but
117+
# that cannot be done because of ply (which assumes it's a top-level module)
118+
dml%_parsetab.py $(PYTHONPATH)/dml%_parser.out: \
119+
$(SRC_BASE)/$(TARGET)/generate_parsetabs.py \
120+
$(filter %dmlparse.py %dmllex.py %dmllex12.py %dmllex14.py %ast.py, \
121+
$(OUT_PYFILES)) \
122+
| $(OUT_PYFILES) $(filter-out %parsetab.py,$(OUT_GEN_PYFILES))
123+
$(info Generating $(@F))
124+
$(PYTHON) $< $(PYTHONPATH) $* dml$*_parsetab $(PYTHONPATH)/dml$*_parser.out
125+
126+
# needed by ctree_test.py
127+
export CC
128+
export SIMICS_BASE
129+
130+
RUN_PY_UNIT_TEST := $(PYTHON) $(DMLC_DIR)/run_unit_tests.py
131+
%-pyunit-tested: $(DMLC_DIR)/py/dml/%.py $(OUT_PYFILES)
132+
$(info Testing $<)
133+
$(RUN_PY_UNIT_TEST) $(SIMICS_PROJECT)/$(HOST_TYPE) $<
134+
touch $@
135+
136+
$(DMLLIB_DESTDIRS) $(OLD_DMLLIB_DESTDIRS_4_8) $(PYTHONPATH):
137+
$(MKDIRS) $@
138+
139+
# Copy the DML library files
140+
$(DMLFILES): $(DMLLIB_DEST)/%: $(DMLLIB_SRC)/% | $(DMLLIB_DESTDIRS)
141+
$(info Copying $*)
142+
cp $< $@
143+
144+
$(OLD_DMLLIB_DEST_4_8)/%: $(DMLLIB_SRC)/% | $(OLD_DMLLIB_DESTDIRS_4_8)
145+
$(info Copying $*)
146+
cp $< $@
147+
148+
$(OLD_DMLLIB_DEST_4_8)/%: $(OLD_DMLLIB_SRC_4_8)/% | $(OLD_DMLLIB_DESTDIRS_4_8)
149+
$(info Copying $*)
150+
cp $< $@
151+
152+
$(MPL_LICENSE): $(PYTHONPATH)/%: $(DMLC_DIR)/% | $(PYTHONPATH)
153+
$(info Copying $*)
154+
cp $< $@
155+
156+
$(DMLLIB_DESTDIRS:=/LICENSE): $(DMLLIB_DEST)/%: $(DMLC_DIR)/lib/% | $(DMLLIB_DESTDIRS)
157+
$(info Copying $*)
158+
cp $< $@
159+
$(OLD_DMLLIB_DESTDIRS_4_8:=/LICENSE): $(DMLC_DIR)/lib-old-4.8/1.2/LICENSE | $(OLD_DMLLIB_DESTDIRS_4_8)
160+
$(info Copying $*)
161+
cp $< $@
162+
# HFILES dep to have the dest dir created
163+
$(DMLLIB_DEST)/include/simics/LICENSE: $(DMLLIB_DEST)/%: $(DMLC_DIR)/% | $(HFILES)
164+
$(info Copying $*)
165+
cp $< $@
166+
167+
# Rules that depend on this marker file can rely on dmlc to be built,
168+
# and will be rebuilt when the parser has changed.
169+
dmlast-generator: $(DMLC_BIN)
170+
$(if $(filter %_parsetab.py %/dmlc.py,$?),touch $@)
171+
172+
# New .dmlast files are generated for all .dml files that changed
173+
# since last time.
174+
# Makefile contraption: the files <build-dir>/x/y/z.d are both markers and
175+
# depfiles. For each such marker, we run dmlc with a --save-asts that
176+
# both pre-compiles all files in <bin-dir>/x/y/z, and creates the
177+
# marker. The marker doubles as a depfile that makes sure we rebuild
178+
# this directory when DML files are updated
179+
PREPARSE_MARKERS := $(foreach d,1.2 1.4,\
180+
dml-old-4.8/$d.d dml/$d.d $(foreach a,$(API_VERSIONS),dml/api/$a/$d.d))
181+
-include $(PREPARSE_MARKERS)
182+
DML_VERSIONS:=1.2 1.4
183+
$(DML_VERSIONS:%=dml-old-4.8/%.d): $(OLD_DMLFILES_4_8)
184+
$(DML_VERSIONS:%=dml/%.d): $(DMLFILES)
185+
DMLAST_SRC_BASE:=$(if $(_CORE_PROJECT_BUILD),$(SIMICS_PROJECT),$(SIMICS_BASE))
186+
$(foreach d,1.2 1.4,dml-old-4.8/$d.d dml/$d.d): DMLAST_SRC_BASE:=$(SIMICS_PROJECT)
187+
$(PREPARSE_MARKERS): dmlast-generator
188+
$(info Generating .dmlast files for $(@:.d=))
189+
$(PYTHON) $(SRC_BASE)/$(TARGET)/dmlast.py $(PYTHONPATH) $(SIMICS_PROJECT)/$(HOST_TYPE)/bin/$(@:.d=) $(DMLAST_SRC_BASE)/$(HOST_TYPE)/bin/$(@:.d=) $@
190+
all: $(PREPARSE_MARKERS)
191+
192+
DODOC := $(SIMICS_BASE)/$(HOST_TYPE)/bin/dodoc$(EXE_SUFFIX)
193+
194+
generated-md-1.2 generated-md-1.4:
195+
$(MKDIRS) $@
196+
generated-md-1.2/grammar.md generated-md-1.4/grammar.md: generated-md-1.%/grammar.md: $(PYTHONPATH)/dml1%_parser.out $(SRC_BASE)/$(TARGET)/grammar_to_md.py
197+
$(PYTHON) $(SRC_BASE)/$(TARGET)/grammar_to_md.py $(PYTHONPATH) $< $@
198+
generated-md-1.2/messages.md generated-md-1.4/messages.md: generated-md-%/messages.md: $(SRC_BASE)/$(TARGET)/messages_to_md.py $(DMLC_BIN)
199+
$(PYTHON) $< $(PYTHONPATH) $* $@
200+
201+
DOC_SRC_DIR_14 := $(SRC_BASE)/$(TARGET)/doc/1.4
202+
DOC_FILES_14 := $(wildcard $(DOC_SRC_DIR_14)/*.md) $(DOC_SRC_DIR_14)/toc.json
203+
204+
DOC_DEST_14 := $(SIMICS_PROJECT)/$(HOST_TYPE)/doc/html/dml-1.4-reference-manual
205+
DOC_MARKER_14 := $(DOC_DEST_14)/filelist.json
206+
207+
GENERATED_MD_FILES_14 = $(addprefix generated-md-1.4/,grammar.md messages.md changes-auto.md dml-builtins.md utility.md)
208+
generated-md-1.4/changes-auto.md: $(SRC_BASE)/$(TARGET)/porting_to_md.py $(DMLC_BIN) | generated-md-1.4
209+
$(PYTHON) $< $(PYTHONPATH) $@
210+
generated-md-1.4/dml-builtins.md generated-md-1.4/utility.md: generated-md-1.4/%.md: $(DMLC_DIR)/lib/1.4/%.dml
211+
$(PYTHON) $(DMLC_DIR)/dmlcomments_to_md.py $< $@
212+
DOC_FILES_14 += $(GENERATED_MD_FILES_14)
213+
$(GENERATED_MD_FILES_14): | generated-md-1.4
214+
$(DOC_MARKER_14): $(DOC_FILES_14)
215+
$(PYTHON) $(DMLC_DIR)/validate_md_links.py $(DOC_SRC_DIR_14)/toc.json $(DOC_SRC_DIR_14) generated-md-1.4
216+
$(DODOC) --css simics.css $(SIMICS_BASE)/src/docs/dodoc -o $(DOC_DEST_14) $(DOC_SRC_DIR_14) generated-md-1.4
217+
218+
all: $(DOC_MARKER_14)
219+
220+
DOC_SRC_DIR_12 := $(SRC_BASE)/$(TARGET)/doc/1.2
221+
DOC_FILES_12 := $(wildcard $(DOC_SRC_DIR_12)/*.md) $(DOC_SRC_DIR_12)/toc.json
222+
223+
DOC_DEST_12 := $(SIMICS_PROJECT)/$(HOST_TYPE)/doc/html/dml-1.2-reference-manual
224+
DOC_MARKER_12 := $(DOC_DEST_12)/filelist.json
225+
226+
GENERATED_MD_FILES_12 = $(addprefix generated-md-1.2/,grammar.md messages.md)
227+
DOC_FILES_12 += $(GENERATED_MD_FILES_12)
228+
$(GENERATED_MD_FILES_12): | generated-md-1.2
229+
$(DOC_MARKER_12): $(DOC_FILES_12)
230+
$(PYTHON) $(DMLC_DIR)/validate_md_links.py $(DOC_SRC_DIR_12)/toc.json $(DOC_SRC_DIR_12) generated-md-1.2
231+
$(DODOC) --css simics.css $(SIMICS_BASE)/src/docs/dodoc -o $(DOC_DEST_12) $(DOC_SRC_DIR_12) generated-md-1.2
232+
233+
all: $(DOC_MARKER_12)

0 commit comments

Comments
 (0)