Compare commits
	
		
			2 Commits
		
	
	
		
			86f58adaa4
			...
			ub_coverag
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					1cc9597376 | ||
| 
						 | 
					22030e0f40 | 
@@ -1,96 +0,0 @@
 | 
				
			|||||||
Language:        Cpp
 | 
					 | 
				
			||||||
# BasedOnStyle:  LLVM
 | 
					 | 
				
			||||||
# should be in line with IndentWidth
 | 
					 | 
				
			||||||
AccessModifierOffset: -4
 | 
					 | 
				
			||||||
AlignAfterOpenBracket: Align
 | 
					 | 
				
			||||||
AlignConsecutiveAssignments: false
 | 
					 | 
				
			||||||
AlignConsecutiveDeclarations: false
 | 
					 | 
				
			||||||
AlignEscapedNewlinesLeft: false
 | 
					 | 
				
			||||||
AlignOperands:   true
 | 
					 | 
				
			||||||
AlignTrailingComments: true
 | 
					 | 
				
			||||||
AllowAllParametersOfDeclarationOnNextLine: true
 | 
					 | 
				
			||||||
AllowShortBlocksOnASingleLine: false
 | 
					 | 
				
			||||||
AllowShortCaseLabelsOnASingleLine: false
 | 
					 | 
				
			||||||
AllowShortFunctionsOnASingleLine: All
 | 
					 | 
				
			||||||
AllowShortIfStatementsOnASingleLine: false
 | 
					 | 
				
			||||||
AllowShortLoopsOnASingleLine: false
 | 
					 | 
				
			||||||
AlwaysBreakAfterDefinitionReturnType: None
 | 
					 | 
				
			||||||
AlwaysBreakAfterReturnType: None
 | 
					 | 
				
			||||||
AlwaysBreakBeforeMultilineStrings: false
 | 
					 | 
				
			||||||
AlwaysBreakTemplateDeclarations: false
 | 
					 | 
				
			||||||
BinPackArguments: true
 | 
					 | 
				
			||||||
BinPackParameters: true
 | 
					 | 
				
			||||||
BraceWrapping:   
 | 
					 | 
				
			||||||
  AfterClass:      false
 | 
					 | 
				
			||||||
  AfterControlStatement: false
 | 
					 | 
				
			||||||
  AfterEnum:       false
 | 
					 | 
				
			||||||
  AfterFunction:   false
 | 
					 | 
				
			||||||
  AfterNamespace:  false
 | 
					 | 
				
			||||||
  AfterObjCDeclaration: false
 | 
					 | 
				
			||||||
  AfterStruct:     false
 | 
					 | 
				
			||||||
  AfterUnion:      false
 | 
					 | 
				
			||||||
  BeforeCatch:     false
 | 
					 | 
				
			||||||
  BeforeElse:      false
 | 
					 | 
				
			||||||
  IndentBraces:    false
 | 
					 | 
				
			||||||
BreakBeforeBinaryOperators: None
 | 
					 | 
				
			||||||
BreakBeforeBraces: Attach
 | 
					 | 
				
			||||||
BreakBeforeTernaryOperators: true
 | 
					 | 
				
			||||||
BreakConstructorInitializersBeforeComma: true
 | 
					 | 
				
			||||||
BreakAfterJavaFieldAnnotations: false
 | 
					 | 
				
			||||||
BreakStringLiterals: true
 | 
					 | 
				
			||||||
ColumnLimit:     140
 | 
					 | 
				
			||||||
CommentPragmas:  '^( IWYU pragma:| @suppress)'
 | 
					 | 
				
			||||||
ConstructorInitializerAllOnOneLineOrOnePerLine: false
 | 
					 | 
				
			||||||
ConstructorInitializerIndentWidth: 0
 | 
					 | 
				
			||||||
ContinuationIndentWidth: 4
 | 
					 | 
				
			||||||
Cpp11BracedListStyle: true
 | 
					 | 
				
			||||||
DerivePointerAlignment: false
 | 
					 | 
				
			||||||
DisableFormat:   false
 | 
					 | 
				
			||||||
ExperimentalAutoDetectBinPacking: false
 | 
					 | 
				
			||||||
ForEachMacros:   [ foreach, Q_FOREACH, BOOST_FOREACH ]
 | 
					 | 
				
			||||||
IncludeCategories: 
 | 
					 | 
				
			||||||
  - Regex:           '^"(llvm|llvm-c|clang|clang-c)/'
 | 
					 | 
				
			||||||
    Priority:        2
 | 
					 | 
				
			||||||
  - Regex:           '^(<|"(gtest|isl|json)/)'
 | 
					 | 
				
			||||||
    Priority:        3
 | 
					 | 
				
			||||||
  - Regex:           '.*'
 | 
					 | 
				
			||||||
    Priority:        1
 | 
					 | 
				
			||||||
IncludeIsMainRegex: '$'
 | 
					 | 
				
			||||||
IndentCaseLabels: false
 | 
					 | 
				
			||||||
IndentWidth:     4
 | 
					 | 
				
			||||||
IndentWrappedFunctionNames: false
 | 
					 | 
				
			||||||
JavaScriptQuotes: Leave
 | 
					 | 
				
			||||||
JavaScriptWrapImports: true
 | 
					 | 
				
			||||||
KeepEmptyLinesAtTheStartOfBlocks: true
 | 
					 | 
				
			||||||
MacroBlockBegin: ''
 | 
					 | 
				
			||||||
MacroBlockEnd:   ''
 | 
					 | 
				
			||||||
MaxEmptyLinesToKeep: 1
 | 
					 | 
				
			||||||
NamespaceIndentation: None
 | 
					 | 
				
			||||||
ObjCBlockIndentWidth: 2
 | 
					 | 
				
			||||||
ObjCSpaceAfterProperty: false
 | 
					 | 
				
			||||||
ObjCSpaceBeforeProtocolList: true
 | 
					 | 
				
			||||||
PenaltyBreakBeforeFirstCallParameter: 19
 | 
					 | 
				
			||||||
PenaltyBreakComment: 300
 | 
					 | 
				
			||||||
PenaltyBreakFirstLessLess: 120
 | 
					 | 
				
			||||||
PenaltyBreakString: 1000
 | 
					 | 
				
			||||||
PenaltyExcessCharacter: 1000000
 | 
					 | 
				
			||||||
PenaltyReturnTypeOnItsOwnLine: 60
 | 
					 | 
				
			||||||
PointerAlignment: Left
 | 
					 | 
				
			||||||
ReflowComments:  true
 | 
					 | 
				
			||||||
SortIncludes:    true
 | 
					 | 
				
			||||||
SpaceAfterCStyleCast: false
 | 
					 | 
				
			||||||
SpaceAfterTemplateKeyword: true
 | 
					 | 
				
			||||||
SpaceBeforeAssignmentOperators: true
 | 
					 | 
				
			||||||
SpaceBeforeParens: Never
 | 
					 | 
				
			||||||
SpaceInEmptyParentheses: false
 | 
					 | 
				
			||||||
SpacesBeforeTrailingComments: 1
 | 
					 | 
				
			||||||
SpacesInAngles:  false
 | 
					 | 
				
			||||||
SpacesInContainerLiterals: true
 | 
					 | 
				
			||||||
SpacesInCStyleCastParentheses: false
 | 
					 | 
				
			||||||
SpacesInParentheses: false
 | 
					 | 
				
			||||||
SpacesInSquareBrackets: false
 | 
					 | 
				
			||||||
Standard:        Cpp11
 | 
					 | 
				
			||||||
TabWidth:        4
 | 
					 | 
				
			||||||
UseTab:          Never
 | 
					 | 
				
			||||||
...
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
							
								
								
									
										150
									
								
								.cproject
									
									
									
									
									
								
							
							
						
						
									
										150
									
								
								.cproject
									
									
									
									
									
								
							@@ -14,14 +14,11 @@
 | 
				
			|||||||
			<storageModule moduleId="cdtBuildSystem" version="4.0.0">
 | 
								<storageModule moduleId="cdtBuildSystem" version="4.0.0">
 | 
				
			||||||
				<configuration buildProperties="" description="" id="cdt.managedbuild.toolchain.gnu.base.1336041151" name="Debug" optionalBuildProperties="" parent="org.eclipse.cdt.build.core.emptycfg">
 | 
									<configuration buildProperties="" description="" id="cdt.managedbuild.toolchain.gnu.base.1336041151" name="Debug" optionalBuildProperties="" parent="org.eclipse.cdt.build.core.emptycfg">
 | 
				
			||||||
					<folderInfo id="cdt.managedbuild.toolchain.gnu.base.1336041151.1615713914" name="/" resourcePath="">
 | 
										<folderInfo id="cdt.managedbuild.toolchain.gnu.base.1336041151.1615713914" name="/" resourcePath="">
 | 
				
			||||||
						<toolChain id="cdt.managedbuild.toolchain.gnu.base.1297474963" name="Linux GCC" nonInternalBuilderId="cmake4eclipse.mbs.builder" superClass="cdt.managedbuild.toolchain.gnu.base">
 | 
											<toolChain id="cdt.managedbuild.toolchain.gnu.base.1297474963" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.base">
 | 
				
			||||||
							<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.GNU_ELF" id="cdt.managedbuild.target.gnu.platform.base.1141103737" name="Debug Platform" osList="linux,hpux,aix,qnx" superClass="cdt.managedbuild.target.gnu.platform.base"/>
 | 
												<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.GNU_ELF" id="cdt.managedbuild.target.gnu.platform.base.1141103737" name="Debug Platform" osList="linux,hpux,aix,qnx" superClass="cdt.managedbuild.target.gnu.platform.base"/>
 | 
				
			||||||
							<builder buildPath="/TGC-ISS/build/Debug" id="cmake4eclipse.mbs.builder.1295402556" keepEnvironmentInBuildfile="false" name="CMake Builder" superClass="cmake4eclipse.mbs.builder"/>
 | 
												<builder buildPath="/TGC-ISS/build/Debug" id="de.marw.cdt.cmake.core.genscriptbuilder.1100382234" keepEnvironmentInBuildfile="false" name="CMake Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="de.marw.cdt.cmake.core.genscriptbuilder"/>
 | 
				
			||||||
							<tool id="cdt.managedbuild.tool.gnu.archiver.base.740869785" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
 | 
												<tool id="cdt.managedbuild.tool.gnu.archiver.base.740869785" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
 | 
				
			||||||
							<tool id="cdt.managedbuild.tool.gnu.cpp.compiler.base.1934077203" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.base">
 | 
												<tool id="cdt.managedbuild.tool.gnu.cpp.compiler.base.1934077203" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.base">
 | 
				
			||||||
								<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.cpp.compiler.option.preprocessor.def.1599133325" name="Defined symbols (-D)" superClass="gnu.cpp.compiler.option.preprocessor.def" useByScannerDiscovery="false" valueType="definedSymbols">
 | 
					 | 
				
			||||||
									<listOptionValue builtIn="false" value="CWR_SYSTEMC=1"/>
 | 
					 | 
				
			||||||
								</option>
 | 
					 | 
				
			||||||
								<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.17118862" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
 | 
													<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.17118862" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
 | 
				
			||||||
							</tool>
 | 
												</tool>
 | 
				
			||||||
							<tool id="cdt.managedbuild.tool.gnu.c.compiler.base.1699395860" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.base">
 | 
												<tool id="cdt.managedbuild.tool.gnu.c.compiler.base.1699395860" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.base">
 | 
				
			||||||
@@ -45,135 +42,10 @@
 | 
				
			|||||||
			<storageModule buildDir="build/${ConfigName}" moduleId="de.marw.cdt.cmake.core.settings">
 | 
								<storageModule buildDir="build/${ConfigName}" moduleId="de.marw.cdt.cmake.core.settings">
 | 
				
			||||||
				<options/>
 | 
									<options/>
 | 
				
			||||||
				<defs>
 | 
									<defs>
 | 
				
			||||||
 | 
										<def name="ENABLE_CODEGEN" type="BOOL" val="ON"/>
 | 
				
			||||||
					<def name="CMAKE_BUILD_TYPE" type="STRING" val="${ConfigName}"/>
 | 
										<def name="CMAKE_BUILD_TYPE" type="STRING" val="${ConfigName}"/>
 | 
				
			||||||
				</defs>
 | 
									</defs>
 | 
				
			||||||
			</storageModule>
 | 
								</storageModule>
 | 
				
			||||||
			<storageModule buildDir="build/${ConfigName}" dirtyTs="1698593487517" moduleId="de.marw.cmake4eclipse.mbs.settings">
 | 
					 | 
				
			||||||
				<options/>
 | 
					 | 
				
			||||||
				<defs>
 | 
					 | 
				
			||||||
					<def name="CMAKE_BUILD_TYPE" type="STRING" val="Debug"/>
 | 
					 | 
				
			||||||
					<def name="CMAKE_INSTALL_PREFIX" type="FILEPATH" val="${ProjDirPath}/install"/>
 | 
					 | 
				
			||||||
					<def name="WITH_TCC" type="BOOL" val="ON"/>
 | 
					 | 
				
			||||||
					<def name="FW_BUILD" type="BOOL" val="ON"/>
 | 
					 | 
				
			||||||
					<def name="ENABLE_CLANG_TIDY" type="BOOL" val="ON"/>
 | 
					 | 
				
			||||||
				</defs>
 | 
					 | 
				
			||||||
			</storageModule>
 | 
					 | 
				
			||||||
		</cconfiguration>
 | 
					 | 
				
			||||||
		<cconfiguration id="cdt.managedbuild.toolchain.gnu.base.1336041151.1436777338">
 | 
					 | 
				
			||||||
			<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.toolchain.gnu.base.1336041151.1436777338" moduleId="org.eclipse.cdt.core.settings" name="Debug-PA">
 | 
					 | 
				
			||||||
				<externalSettings/>
 | 
					 | 
				
			||||||
				<extensions>
 | 
					 | 
				
			||||||
					<extension id="org.eclipse.cdt.core.GNU_ELF" point="org.eclipse.cdt.core.BinaryParser"/>
 | 
					 | 
				
			||||||
					<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
 | 
					 | 
				
			||||||
					<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
 | 
					 | 
				
			||||||
					<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
 | 
					 | 
				
			||||||
				</extensions>
 | 
					 | 
				
			||||||
			</storageModule>
 | 
					 | 
				
			||||||
			<storageModule moduleId="cdtBuildSystem" version="4.0.0">
 | 
					 | 
				
			||||||
				<configuration buildProperties="" description="" id="cdt.managedbuild.toolchain.gnu.base.1336041151.1436777338" name="Debug-PA" optionalBuildProperties="" parent="org.eclipse.cdt.build.core.emptycfg">
 | 
					 | 
				
			||||||
					<folderInfo id="cdt.managedbuild.toolchain.gnu.base.1336041151.1436777338." name="/" resourcePath="">
 | 
					 | 
				
			||||||
						<toolChain id="cdt.managedbuild.toolchain.gnu.base.1293780030" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.base">
 | 
					 | 
				
			||||||
							<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.GNU_ELF" id="cdt.managedbuild.target.gnu.platform.base.1970512769" name="Debug Platform" osList="linux,hpux,aix,qnx" superClass="cdt.managedbuild.target.gnu.platform.base"/>
 | 
					 | 
				
			||||||
							<builder buildPath="/TGC-ISS/_build/Debug-PA" id="cmake4eclipse.mbs.builder.928900702" keepEnvironmentInBuildfile="false" name="CMake Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="cmake4eclipse.mbs.builder"/>
 | 
					 | 
				
			||||||
							<tool id="cdt.managedbuild.tool.gnu.archiver.base.207730824" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
 | 
					 | 
				
			||||||
							<tool id="cdt.managedbuild.tool.gnu.cpp.compiler.base.1262643605" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.base">
 | 
					 | 
				
			||||||
								<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.cpp.compiler.option.preprocessor.def.766346102" name="Defined symbols (-D)" superClass="gnu.cpp.compiler.option.preprocessor.def" useByScannerDiscovery="false" valueType="definedSymbols">
 | 
					 | 
				
			||||||
									<listOptionValue builtIn="false" value="CWR_SYSTEMC=1"/>
 | 
					 | 
				
			||||||
								</option>
 | 
					 | 
				
			||||||
								<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.1887588287" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
 | 
					 | 
				
			||||||
							</tool>
 | 
					 | 
				
			||||||
							<tool id="cdt.managedbuild.tool.gnu.c.compiler.base.934550669" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.base">
 | 
					 | 
				
			||||||
								<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.435160258" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
 | 
					 | 
				
			||||||
							</tool>
 | 
					 | 
				
			||||||
							<tool id="cdt.managedbuild.tool.gnu.c.linker.base.1246571083" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.base"/>
 | 
					 | 
				
			||||||
							<tool id="cdt.managedbuild.tool.gnu.cpp.linker.base.1000595204" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.base">
 | 
					 | 
				
			||||||
								<inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.1443403714" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
 | 
					 | 
				
			||||||
									<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
 | 
					 | 
				
			||||||
									<additionalInput kind="additionalinput" paths="$(LIBS)"/>
 | 
					 | 
				
			||||||
								</inputType>
 | 
					 | 
				
			||||||
							</tool>
 | 
					 | 
				
			||||||
							<tool id="cdt.managedbuild.tool.gnu.assembler.base.1058800350" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.base">
 | 
					 | 
				
			||||||
								<inputType id="cdt.managedbuild.tool.gnu.assembler.input.1915245436" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
 | 
					 | 
				
			||||||
							</tool>
 | 
					 | 
				
			||||||
						</toolChain>
 | 
					 | 
				
			||||||
					</folderInfo>
 | 
					 | 
				
			||||||
				</configuration>
 | 
					 | 
				
			||||||
			</storageModule>
 | 
					 | 
				
			||||||
			<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
 | 
					 | 
				
			||||||
			<storageModule buildDir="build/${ConfigName}" moduleId="de.marw.cdt.cmake.core.settings">
 | 
					 | 
				
			||||||
				<options/>
 | 
					 | 
				
			||||||
				<defs>
 | 
					 | 
				
			||||||
					<def name="CMAKE_BUILD_TYPE" type="STRING" val="${ConfigName}"/>
 | 
					 | 
				
			||||||
				</defs>
 | 
					 | 
				
			||||||
			</storageModule>
 | 
					 | 
				
			||||||
			<storageModule dirtyTs="1681455316836" moduleId="de.marw.cmake4eclipse.mbs.settings">
 | 
					 | 
				
			||||||
				<options/>
 | 
					 | 
				
			||||||
				<defs>
 | 
					 | 
				
			||||||
					<def name="CMAKE_BUILD_TYPE" type="STRING" val="Debug"/>
 | 
					 | 
				
			||||||
					<def name="USE_CWR_SYSTEMC" type="BOOL" val="ON"/>
 | 
					 | 
				
			||||||
					<def name="BUILD_SHARED_LIBS" type="BOOL" val="ON"/>
 | 
					 | 
				
			||||||
					<def name="CMAKE_INSTALL_PREFIX" type="FILEPATH" val="${ProjDirPath}/install"/>
 | 
					 | 
				
			||||||
					<def name="FW_BUILD" type="BOOL" val="ON"/>
 | 
					 | 
				
			||||||
				</defs>
 | 
					 | 
				
			||||||
			</storageModule>
 | 
					 | 
				
			||||||
		</cconfiguration>
 | 
					 | 
				
			||||||
		<cconfiguration id="cdt.managedbuild.toolchain.gnu.base.1336041151.1605951382">
 | 
					 | 
				
			||||||
			<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.toolchain.gnu.base.1336041151.1605951382" moduleId="org.eclipse.cdt.core.settings" name="RelWithDebInfo">
 | 
					 | 
				
			||||||
				<externalSettings/>
 | 
					 | 
				
			||||||
				<extensions>
 | 
					 | 
				
			||||||
					<extension id="org.eclipse.cdt.core.GNU_ELF" point="org.eclipse.cdt.core.BinaryParser"/>
 | 
					 | 
				
			||||||
					<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
 | 
					 | 
				
			||||||
					<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
 | 
					 | 
				
			||||||
					<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
 | 
					 | 
				
			||||||
				</extensions>
 | 
					 | 
				
			||||||
			</storageModule>
 | 
					 | 
				
			||||||
			<storageModule moduleId="cdtBuildSystem" version="4.0.0">
 | 
					 | 
				
			||||||
				<configuration artifactName="${ProjName}" buildProperties="" description="" id="cdt.managedbuild.toolchain.gnu.base.1336041151.1605951382" name="RelWithDebInfo" optionalBuildProperties="org.eclipse.cdt.docker.launcher.containerbuild.property.volumes=,org.eclipse.cdt.docker.launcher.containerbuild.property.selectedvolumes=" parent="org.eclipse.cdt.build.core.emptycfg">
 | 
					 | 
				
			||||||
					<folderInfo id="cdt.managedbuild.toolchain.gnu.base.1336041151.1605951382." name="/" resourcePath="">
 | 
					 | 
				
			||||||
						<toolChain id="cdt.managedbuild.toolchain.gnu.base.1009994445" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.base">
 | 
					 | 
				
			||||||
							<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.GNU_ELF" id="cdt.managedbuild.target.gnu.platform.base.1023431687" name="Debug Platform" osList="linux,hpux,aix,qnx" superClass="cdt.managedbuild.target.gnu.platform.base"/>
 | 
					 | 
				
			||||||
							<builder buildPath="/TGC-ISS/_build/Debug" id="cmake4eclipse.mbs.builder.87414385" keepEnvironmentInBuildfile="false" name="CMake Builder" parallelBuildOn="true" parallelizationNumber="unlimited" superClass="cmake4eclipse.mbs.builder"/>
 | 
					 | 
				
			||||||
							<tool id="cdt.managedbuild.tool.gnu.archiver.base.40272694" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
 | 
					 | 
				
			||||||
							<tool id="cdt.managedbuild.tool.gnu.cpp.compiler.base.288344887" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.base">
 | 
					 | 
				
			||||||
								<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.cpp.compiler.option.preprocessor.def.1881910565" name="Defined symbols (-D)" superClass="gnu.cpp.compiler.option.preprocessor.def" useByScannerDiscovery="false" valueType="definedSymbols">
 | 
					 | 
				
			||||||
									<listOptionValue builtIn="false" value="CWR_SYSTEMC=1"/>
 | 
					 | 
				
			||||||
								</option>
 | 
					 | 
				
			||||||
								<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.1745748578" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
 | 
					 | 
				
			||||||
							</tool>
 | 
					 | 
				
			||||||
							<tool id="cdt.managedbuild.tool.gnu.c.compiler.base.1398015713" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.base">
 | 
					 | 
				
			||||||
								<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.1810687689" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
 | 
					 | 
				
			||||||
							</tool>
 | 
					 | 
				
			||||||
							<tool id="cdt.managedbuild.tool.gnu.c.linker.base.120562679" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.base"/>
 | 
					 | 
				
			||||||
							<tool id="cdt.managedbuild.tool.gnu.cpp.linker.base.1158166201" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.base">
 | 
					 | 
				
			||||||
								<inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.120238241" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
 | 
					 | 
				
			||||||
									<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
 | 
					 | 
				
			||||||
									<additionalInput kind="additionalinput" paths="$(LIBS)"/>
 | 
					 | 
				
			||||||
								</inputType>
 | 
					 | 
				
			||||||
							</tool>
 | 
					 | 
				
			||||||
							<tool id="cdt.managedbuild.tool.gnu.assembler.base.1253632883" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.base">
 | 
					 | 
				
			||||||
								<inputType id="cdt.managedbuild.tool.gnu.assembler.input.502601048" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
 | 
					 | 
				
			||||||
							</tool>
 | 
					 | 
				
			||||||
						</toolChain>
 | 
					 | 
				
			||||||
					</folderInfo>
 | 
					 | 
				
			||||||
				</configuration>
 | 
					 | 
				
			||||||
			</storageModule>
 | 
					 | 
				
			||||||
			<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
 | 
					 | 
				
			||||||
			<storageModule buildDir="build/${ConfigName}" moduleId="de.marw.cdt.cmake.core.settings">
 | 
					 | 
				
			||||||
				<options/>
 | 
					 | 
				
			||||||
				<defs>
 | 
					 | 
				
			||||||
					<def name="CMAKE_BUILD_TYPE" type="STRING" val="${ConfigName}"/>
 | 
					 | 
				
			||||||
				</defs>
 | 
					 | 
				
			||||||
			</storageModule>
 | 
					 | 
				
			||||||
			<storageModule buildDir="build/${ConfigName}" dirtyTs="1698593290265" moduleId="de.marw.cmake4eclipse.mbs.settings">
 | 
					 | 
				
			||||||
				<options/>
 | 
					 | 
				
			||||||
				<defs>
 | 
					 | 
				
			||||||
					<def name="CMAKE_BUILD_TYPE" type="STRING" val="RelWithDebInfo"/>
 | 
					 | 
				
			||||||
					<def name="CMAKE_INSTALL_PREFIX" type="FILEPATH" val="${ProjDirPath}/install"/>
 | 
					 | 
				
			||||||
					<def name="WITH_TCC" type="BOOL" val="ON"/>
 | 
					 | 
				
			||||||
					<def name="FW_BUILD" type="BOOL" val="ON"/>
 | 
					 | 
				
			||||||
					<def name="ENABLE_CLANG_TIDY" type="BOOL" val="ON"/>
 | 
					 | 
				
			||||||
				</defs>
 | 
					 | 
				
			||||||
			</storageModule>
 | 
					 | 
				
			||||||
		</cconfiguration>
 | 
							</cconfiguration>
 | 
				
			||||||
	</storageModule>
 | 
						</storageModule>
 | 
				
			||||||
	<storageModule moduleId="cdtBuildSystem" version="4.0.0">
 | 
						<storageModule moduleId="cdtBuildSystem" version="4.0.0">
 | 
				
			||||||
@@ -181,10 +53,6 @@
 | 
				
			|||||||
	</storageModule>
 | 
						</storageModule>
 | 
				
			||||||
	<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
 | 
						<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
 | 
				
			||||||
	<storageModule moduleId="refreshScope" versionNumber="2">
 | 
						<storageModule moduleId="refreshScope" versionNumber="2">
 | 
				
			||||||
		<configuration configurationName="Debug-PA">
 | 
					 | 
				
			||||||
			<resource resourceType="PROJECT" workspacePath="/TGC-ISS"/>
 | 
					 | 
				
			||||||
		</configuration>
 | 
					 | 
				
			||||||
		<configuration configurationName="RelWithDebInfo"/>
 | 
					 | 
				
			||||||
		<configuration configurationName="Default">
 | 
							<configuration configurationName="Default">
 | 
				
			||||||
			<resource resourceType="PROJECT" workspacePath="/TGC-ISS"/>
 | 
								<resource resourceType="PROJECT" workspacePath="/TGC-ISS"/>
 | 
				
			||||||
		</configuration>
 | 
							</configuration>
 | 
				
			||||||
@@ -193,25 +61,13 @@
 | 
				
			|||||||
		</configuration>
 | 
							</configuration>
 | 
				
			||||||
	</storageModule>
 | 
						</storageModule>
 | 
				
			||||||
	<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
 | 
						<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
 | 
				
			||||||
	<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
 | 
					 | 
				
			||||||
	<storageModule cmakelistsFolder="" moduleId="de.marw.cmake4eclipse.mbs.settings">
 | 
					 | 
				
			||||||
		<targets>
 | 
					 | 
				
			||||||
			<target name=""/>
 | 
					 | 
				
			||||||
		</targets>
 | 
					 | 
				
			||||||
	</storageModule>
 | 
					 | 
				
			||||||
	<storageModule moduleId="scannerConfiguration">
 | 
						<storageModule moduleId="scannerConfiguration">
 | 
				
			||||||
		<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
 | 
							<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
 | 
				
			||||||
		<scannerConfigBuildInfo instanceId="cdt.managedbuild.toolchain.gnu.base.1336041151;cdt.managedbuild.toolchain.gnu.base.1336041151.1615713914;cdt.managedbuild.tool.gnu.c.compiler.base.1699395860;cdt.managedbuild.tool.gnu.c.compiler.input.1583122935">
 | 
							<scannerConfigBuildInfo instanceId="cdt.managedbuild.toolchain.gnu.base.1336041151;cdt.managedbuild.toolchain.gnu.base.1336041151.1615713914;cdt.managedbuild.tool.gnu.c.compiler.base.1699395860;cdt.managedbuild.tool.gnu.c.compiler.input.1583122935">
 | 
				
			||||||
			<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
 | 
								<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
 | 
				
			||||||
		</scannerConfigBuildInfo>
 | 
							</scannerConfigBuildInfo>
 | 
				
			||||||
		<scannerConfigBuildInfo instanceId="cdt.managedbuild.toolchain.gnu.base.1336041151.1605951382;cdt.managedbuild.toolchain.gnu.base.1336041151.1605951382.;cdt.managedbuild.tool.gnu.cpp.compiler.base.288344887;cdt.managedbuild.tool.gnu.cpp.compiler.input.1745748578">
 | 
					 | 
				
			||||||
			<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
 | 
					 | 
				
			||||||
		</scannerConfigBuildInfo>
 | 
					 | 
				
			||||||
		<scannerConfigBuildInfo instanceId="cdt.managedbuild.toolchain.gnu.base.1336041151;cdt.managedbuild.toolchain.gnu.base.1336041151.1615713914;cdt.managedbuild.tool.gnu.cpp.compiler.base.1934077203;cdt.managedbuild.tool.gnu.cpp.compiler.input.17118862">
 | 
							<scannerConfigBuildInfo instanceId="cdt.managedbuild.toolchain.gnu.base.1336041151;cdt.managedbuild.toolchain.gnu.base.1336041151.1615713914;cdt.managedbuild.tool.gnu.cpp.compiler.base.1934077203;cdt.managedbuild.tool.gnu.cpp.compiler.input.17118862">
 | 
				
			||||||
			<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
 | 
								<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
 | 
				
			||||||
		</scannerConfigBuildInfo>
 | 
							</scannerConfigBuildInfo>
 | 
				
			||||||
		<scannerConfigBuildInfo instanceId="cdt.managedbuild.toolchain.gnu.base.1336041151.1605951382;cdt.managedbuild.toolchain.gnu.base.1336041151.1605951382.;cdt.managedbuild.tool.gnu.c.compiler.base.1398015713;cdt.managedbuild.tool.gnu.c.compiler.input.1810687689">
 | 
					 | 
				
			||||||
			<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
 | 
					 | 
				
			||||||
		</scannerConfigBuildInfo>
 | 
					 | 
				
			||||||
	</storageModule>
 | 
						</storageModule>
 | 
				
			||||||
</cproject>
 | 
					</cproject>
 | 
				
			||||||
							
								
								
									
										8
									
								
								.envrc
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								.envrc
									
									
									
									
									
								
							@@ -1,8 +0,0 @@
 | 
				
			|||||||
module load ./Modulefile
 | 
					 | 
				
			||||||
distro=`/bin/lsb_release -i -s`
 | 
					 | 
				
			||||||
if [ $distro == "CentOS" ]; then 
 | 
					 | 
				
			||||||
    . /opt/rh/devtoolset-8/enable
 | 
					 | 
				
			||||||
    . /opt/rh/rh-python38/enable
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
layout python3
 | 
					 | 
				
			||||||
[ -f .envrc.$USER ] && . .envrc.$USER
 | 
					 | 
				
			||||||
@@ -1,62 +0,0 @@
 | 
				
			|||||||
name: Run architectural test suite on backends
 | 
					 | 
				
			||||||
on: push
 | 
					 | 
				
			||||||
jobs:
 | 
					 | 
				
			||||||
  build_job:
 | 
					 | 
				
			||||||
    name: Build ISS and Setup TGC-COMPLIANCE
 | 
					 | 
				
			||||||
    runs-on: ubuntu-latest
 | 
					 | 
				
			||||||
    container:
 | 
					 | 
				
			||||||
      image: git.minres.com/tooling/riscof_sail:latest
 | 
					 | 
				
			||||||
    steps:
 | 
					 | 
				
			||||||
      - name: Check out repository code
 | 
					 | 
				
			||||||
        run: git clone --recursive -b ${{gitea.ref_name}} https://git.minres.com/TGFS/TGC-ISS.git
 | 
					 | 
				
			||||||
      
 | 
					 | 
				
			||||||
      - name: Checkout TGC-COMPLIANCE
 | 
					 | 
				
			||||||
        run: |
 | 
					 | 
				
			||||||
          echo "${{ secrets.ACTRUNNER_PRIVATE_SSHKEY }}" > ssh_key
 | 
					 | 
				
			||||||
          chmod 600 ssh_key
 | 
					 | 
				
			||||||
          git clone --recursive -c core.sshCommand="/usr/bin/ssh -i  ssh_key -o StrictHostKeyChecking=accept-new" ssh://git@git.minres.com:2221/TGFS/TGC-COMPLIANCE.git
 | 
					 | 
				
			||||||
      
 | 
					 | 
				
			||||||
      - name: Build tgc-sim executable
 | 
					 | 
				
			||||||
        run: |
 | 
					 | 
				
			||||||
          cmake -S TGC-ISS -B TGC-ISS/build -DCMAKE_BUILD_TYPE=Debug -DWITH_ASMJIT=ON -DWITH_TCC=ON -DWITH_LLVM=ON
 | 
					 | 
				
			||||||
          cmake --build TGC-ISS/build -j24
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  interp_job:
 | 
					 | 
				
			||||||
    name: Test interp backend
 | 
					 | 
				
			||||||
    runs-on: ubuntu-latest
 | 
					 | 
				
			||||||
    needs:  build_job
 | 
					 | 
				
			||||||
    container:
 | 
					 | 
				
			||||||
      image: git.minres.com/tooling/riscof_sail:latest
 | 
					 | 
				
			||||||
    steps:
 | 
					 | 
				
			||||||
      - name: Run tests
 | 
					 | 
				
			||||||
        run: python3 TGC-COMPLIANCE/run_act.py -core TGC5C -sim TGC-ISS/build/dbt-rise-tgc/tgc-sim -w interp --dockerless --backend interp
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  llvm_job:
 | 
					 | 
				
			||||||
    name: Test llvm backend
 | 
					 | 
				
			||||||
    runs-on: ubuntu-latest
 | 
					 | 
				
			||||||
    needs:  build_job
 | 
					 | 
				
			||||||
    container:
 | 
					 | 
				
			||||||
      image: git.minres.com/tooling/riscof_sail:latest
 | 
					 | 
				
			||||||
    steps:
 | 
					 | 
				
			||||||
      - name: Run tests
 | 
					 | 
				
			||||||
        run: python3 TGC-COMPLIANCE/run_act.py -core TGC5C -sim TGC-ISS/build/dbt-rise-tgc/tgc-sim -w llvm --dockerless --backend llvm
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  tcc_job:
 | 
					 | 
				
			||||||
    name: Test tcc backend
 | 
					 | 
				
			||||||
    runs-on: ubuntu-latest
 | 
					 | 
				
			||||||
    needs:  build_job
 | 
					 | 
				
			||||||
    container:
 | 
					 | 
				
			||||||
      image: git.minres.com/tooling/riscof_sail:latest
 | 
					 | 
				
			||||||
    steps:
 | 
					 | 
				
			||||||
      - name: Run tests
 | 
					 | 
				
			||||||
        run: python3 TGC-COMPLIANCE/run_act.py -core TGC5C -sim TGC-ISS/build/dbt-rise-tgc/tgc-sim -w tcc --dockerless --backend tcc
 | 
					 | 
				
			||||||
        
 | 
					 | 
				
			||||||
  asmjit_job:
 | 
					 | 
				
			||||||
    name: Test asmjit backend
 | 
					 | 
				
			||||||
    runs-on: ubuntu-latest
 | 
					 | 
				
			||||||
    needs:  build_job
 | 
					 | 
				
			||||||
    container:
 | 
					 | 
				
			||||||
      image: git.minres.com/tooling/riscof_sail:latest
 | 
					 | 
				
			||||||
    steps:
 | 
					 | 
				
			||||||
      - name: Run tests
 | 
					 | 
				
			||||||
        run: python3 TGC-COMPLIANCE/run_act.py -core TGC5C -sim TGC-ISS/build/dbt-rise-tgc/tgc-sim -w asmjit --dockerless --backend asmjit
 | 
					 | 
				
			||||||
							
								
								
									
										20
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										20
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -1,23 +1,3 @@
 | 
				
			|||||||
/build/
 | 
					/build/
 | 
				
			||||||
/Debug/
 | 
					/Debug/
 | 
				
			||||||
.settings
 | 
					.settings
 | 
				
			||||||
/.venv*
 | 
					 | 
				
			||||||
/Debug-PA/
 | 
					 | 
				
			||||||
/_build/
 | 
					 | 
				
			||||||
/install/
 | 
					 | 
				
			||||||
/analysis_results
 | 
					 | 
				
			||||||
.vscode
 | 
					 | 
				
			||||||
*.log
 | 
					 | 
				
			||||||
*tcc_jit*.c
 | 
					 | 
				
			||||||
*.disass
 | 
					 | 
				
			||||||
*.dis
 | 
					 | 
				
			||||||
*.objdump
 | 
					 | 
				
			||||||
*.asm
 | 
					 | 
				
			||||||
*.signature
 | 
					 | 
				
			||||||
*.elf
 | 
					 | 
				
			||||||
*.trc
 | 
					 | 
				
			||||||
/*.core_desc
 | 
					 | 
				
			||||||
/fasterDecoding/
 | 
					 | 
				
			||||||
*.ll
 | 
					 | 
				
			||||||
/dbt-rise-plugins
 | 
					 | 
				
			||||||
/.direnv
 | 
					 | 
				
			||||||
							
								
								
									
										15
									
								
								.gitmodules
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										15
									
								
								.gitmodules
									
									
									
									
										vendored
									
									
								
							@@ -1,9 +1,12 @@
 | 
				
			|||||||
[submodule "scc"]
 | 
					[submodule "scc"]
 | 
				
			||||||
	path = scc
 | 
						path = scc
 | 
				
			||||||
	url = https://github.com/Minres/SystemC-Components.git
 | 
						url = https://github.com/Minres/SystemC-Components.git
 | 
				
			||||||
[submodule "dbt-rise-core"]
 | 
					[submodule "tgfs"]
 | 
				
			||||||
	path = dbt-rise-core
 | 
						path = tgfs
 | 
				
			||||||
	url = https://github.com/Minres/DBT-RISE-Core.git
 | 
						url = https://git.minres.com/DBT-RISE/DBT-RISE-TGFS.git
 | 
				
			||||||
[submodule "dbt-rise-tgc"]
 | 
					[submodule "dbt-core"]
 | 
				
			||||||
	path = dbt-rise-tgc
 | 
						path = dbt-core
 | 
				
			||||||
	url = https://git.minres.com/DBT-RISE/DBT-RISE-TGC.git
 | 
						url = https://git.minres.com/DBT-RISE/DBT-RISE-Core.git
 | 
				
			||||||
 | 
					[submodule "coredsl"]
 | 
				
			||||||
 | 
						path = coredsl
 | 
				
			||||||
 | 
						url = https://git.minres.com/DBT-RISE/CoreDSL.git
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										11
									
								
								.project
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								.project
									
									
									
									
									
								
							@@ -30,15 +30,4 @@
 | 
				
			|||||||
		<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
 | 
							<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
 | 
				
			||||||
		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
 | 
							<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
 | 
				
			||||||
	</natures>
 | 
						</natures>
 | 
				
			||||||
	<filteredResources>
 | 
					 | 
				
			||||||
		<filter>
 | 
					 | 
				
			||||||
			<id>1683227853345</id>
 | 
					 | 
				
			||||||
			<name></name>
 | 
					 | 
				
			||||||
			<type>10</type>
 | 
					 | 
				
			||||||
			<matcher>
 | 
					 | 
				
			||||||
				<id>org.eclipse.ui.ide.multiFilter</id>
 | 
					 | 
				
			||||||
				<arguments>1.0-name-matches-false-false-install</arguments>
 | 
					 | 
				
			||||||
			</matcher>
 | 
					 | 
				
			||||||
		</filter>
 | 
					 | 
				
			||||||
	</filteredResources>
 | 
					 | 
				
			||||||
</projectDescription>
 | 
					</projectDescription>
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										222
									
								
								CMakeLists.txt
									
									
									
									
									
								
							
							
						
						
									
										222
									
								
								CMakeLists.txt
									
									
									
									
									
								
							@@ -1,28 +1,20 @@
 | 
				
			|||||||
cmake_minimum_required(VERSION 3.16)
 | 
					cmake_minimum_required(VERSION 3.12)
 | 
				
			||||||
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/scc/cmake)
 | 
					set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake ${CMAKE_CURRENT_SOURCE_DIR}/scc/cmake)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
project(TGC-ISS VERSION 1.0.0 LANGUAGES CXX)
 | 
					project(TGFS-ISS VERSION 1.0.0 LANGUAGES CXX)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					set(CORE_NAME TGC_C CACHE STRING "The core to build the ISS for" )
 | 
				
			||||||
set(WITH_LLVM FALSE CACHE BOOL "Build LLVM based backend")
 | 
					set(WITH_LLVM FALSE CACHE BOOL "Build LLVM based backend")
 | 
				
			||||||
if(CMAKE_PROJECT_NAME STREQUAL "TGC-ISS")
 | 
					
 | 
				
			||||||
    ###########################################################################
 | 
					include(GNUInstallDirs)
 | 
				
			||||||
    # stand alone build settings
 | 
					include(Conan)
 | 
				
			||||||
    ###########################################################################
 | 
					 | 
				
			||||||
    set(CORE_NAME TGC5C CACHE STRING "The core to build the ISS for" )
 | 
					 | 
				
			||||||
    option(FW_BUILD "Enable the automatic download and build of some firmware to run on the ISS" OFF)
 | 
					 | 
				
			||||||
    option(ENABLE_SANITIZER "Enable address sanitizer" OFF)
 | 
					 | 
				
			||||||
    option(ENABLE_CLANG_TIDY "Add clang-tidy and clang-format automatically to builds" OFF)
 | 
					 | 
				
			||||||
    option(WITH_TCC "Build TCC backend" ON)
 | 
					 | 
				
			||||||
    option(WITH_LLVM "Build LLVM backend" OFF)
 | 
					 | 
				
			||||||
    option(WITH_ASMJIT "Build ASMJIT backend" ON)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
set(CMAKE_CXX_STANDARD 14)
 | 
					set(CMAKE_CXX_STANDARD 14)
 | 
				
			||||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
 | 
					set(CMAKE_CXX_STANDARD_REQUIRED ON)
 | 
				
			||||||
set(CMAKE_CXX_EXTENSIONS OFF)
 | 
					set(CMAKE_CXX_EXTENSIONS OFF)
 | 
				
			||||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
 | 
					set(CMAKE_POSITION_INDEPENDENT_CODE ON)
 | 
				
			||||||
    set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
 | 
					 | 
				
			||||||
    set(CMAKE_INSTALL_RPATH "${ORIGIN}")
 | 
					 | 
				
			||||||
include(CheckCXXCompilerFlag)
 | 
					include(CheckCXXCompilerFlag)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
CHECK_CXX_COMPILER_FLAG("-march=native" COMPILER_SUPPORTS_MARCH_NATIVE)
 | 
					CHECK_CXX_COMPILER_FLAG("-march=native" COMPILER_SUPPORTS_MARCH_NATIVE)
 | 
				
			||||||
if(COMPILER_SUPPORTS_MARCH_NATIVE)
 | 
					if(COMPILER_SUPPORTS_MARCH_NATIVE)
 | 
				
			||||||
	if("${CMAKE_BUILD_TYPE}" STREQUAL "") 
 | 
						if("${CMAKE_BUILD_TYPE}" STREQUAL "") 
 | 
				
			||||||
@@ -34,211 +26,41 @@ if(CMAKE_PROJECT_NAME STREQUAL "TGC-ISS")
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
 | 
					if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
 | 
				
			||||||
    set(warnings "-Wall -Wextra -Werror")
 | 
					    set(warnings "-Wall -Wextra -Werror")
 | 
				
			||||||
 | 
					    #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_GLIBCXX_USE_CXX11_ABI=0")
 | 
				
			||||||
    set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG")
 | 
					    set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG")
 | 
				
			||||||
    set(CMAKE_C_FLAGS_RELEASE "-O3 -DNDEBUG")
 | 
					    set(CMAKE_C_FLAGS_RELEASE "-O3 -DNDEBUG")
 | 
				
			||||||
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
 | 
					elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
 | 
				
			||||||
    set(warnings "/W4 /WX /EHsc")
 | 
					    set(warnings "/W4 /WX /EHsc")
 | 
				
			||||||
endif()
 | 
					endif()
 | 
				
			||||||
    if(ENABLE_SANITIZER)
 | 
					 | 
				
			||||||
        set(CMAKE_C_FLAGS             "${CMAKE_C_FLAGS} -fsanitize=address")
 | 
					 | 
				
			||||||
        set(CMAKE_CXX_FLAGS           "${CMAKE_CXX_FLAGS} -fsanitize=address")
 | 
					 | 
				
			||||||
        set(CMAKE_EXE_LINKER_FLAGS    "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=address")
 | 
					 | 
				
			||||||
        set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -fsanitize=address")
 | 
					 | 
				
			||||||
    endif()
 | 
					 | 
				
			||||||
    include(GNUInstallDirs)
 | 
					 | 
				
			||||||
    include(ConanInline)
 | 
					 | 
				
			||||||
    if(BUILD_SHARED_LIBS)
 | 
					 | 
				
			||||||
        set(SHARED_FLAG "True")
 | 
					 | 
				
			||||||
    else()
 | 
					 | 
				
			||||||
        set(SHARED_FLAG "False")
 | 
					 | 
				
			||||||
    endif()
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    set(CONAN_BOOST_OPTIONS
 | 
					setup_conan(TARGETS)
 | 
				
			||||||
    boost:fPIC=True
 | 
					 | 
				
			||||||
    boost:shared=False
 | 
					 | 
				
			||||||
    boost:header_only=False 
 | 
					 | 
				
			||||||
    boost:without_contract=True
 | 
					 | 
				
			||||||
    boost:without_graph=True
 | 
					 | 
				
			||||||
    boost:without_graph_parallel=True
 | 
					 | 
				
			||||||
    boost:without_iostreams=True
 | 
					 | 
				
			||||||
    boost:without_json=True
 | 
					 | 
				
			||||||
    boost:without_locale=True
 | 
					 | 
				
			||||||
    boost:without_log=True
 | 
					 | 
				
			||||||
    boost:without_math=True
 | 
					 | 
				
			||||||
    boost:without_mpi=True
 | 
					 | 
				
			||||||
    boost:without_nowide=True
 | 
					 | 
				
			||||||
    boost:without_python=True
 | 
					 | 
				
			||||||
    boost:without_random=True
 | 
					 | 
				
			||||||
    boost:without_regex=True
 | 
					 | 
				
			||||||
    boost:without_stacktrace=True
 | 
					 | 
				
			||||||
    boost:without_test=True
 | 
					 | 
				
			||||||
    boost:without_timer=True
 | 
					 | 
				
			||||||
    boost:without_type_erasure=True
 | 
					 | 
				
			||||||
    boost:without_wave=True
 | 
					 | 
				
			||||||
    )
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    set(B2_VERSION 4.9.6)
 | 
					# This line finds the boost lib and headers. 
 | 
				
			||||||
    set(CM_VERSION 3.20.5)
 | 
					 | 
				
			||||||
    set(LLVM_VERSION 13.0.0)
 | 
					 | 
				
			||||||
    set(CONAN_PACKAGE_LIST 
 | 
					 | 
				
			||||||
        fmt/8.0.1
 | 
					 | 
				
			||||||
        spdlog/1.9.2
 | 
					 | 
				
			||||||
        boost/1.75.0 
 | 
					 | 
				
			||||||
        gsl-lite/0.37.0 
 | 
					 | 
				
			||||||
        elfio/3.8 
 | 
					 | 
				
			||||||
        lz4/1.9.3 
 | 
					 | 
				
			||||||
        yaml-cpp/0.7.0 
 | 
					 | 
				
			||||||
        jsoncpp/1.9.5
 | 
					 | 
				
			||||||
        zlib/1.2.12
 | 
					 | 
				
			||||||
    )
 | 
					 | 
				
			||||||
    set(CONAN_PACKAGE_OPTIONS fmt:header_only=True ${CONAN_BOOST_OPTIONS})
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
 | 
					 | 
				
			||||||
        list(APPEND CONAN_PACKAGE_LIST tcc/0.9.27)
 | 
					 | 
				
			||||||
        option(WITH_TCC "Build TCC backend" ON)
 | 
					 | 
				
			||||||
    endif()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if(WITH_LLVM)
 | 
					 | 
				
			||||||
        list(APPEND CONAN_PACKAGE_LIST llvm-core/${LLVM_VERSION})
 | 
					 | 
				
			||||||
        list(APPEND CONAN_PACKAGE_OPTIONS libiconv:shared=True)
 | 
					 | 
				
			||||||
    endif()
 | 
					 | 
				
			||||||
    if(WITH_ASMJIT)
 | 
					 | 
				
			||||||
        list(APPEND CONAN_PACKAGE_LIST asmjit/cci.20230325)
 | 
					 | 
				
			||||||
        list(APPEND CONAN_PACKAGE_OPTIONS asmjit:shared=False)
 | 
					 | 
				
			||||||
    endif()
 | 
					 | 
				
			||||||
    if(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/dbt-rise-plugins)
 | 
					 | 
				
			||||||
         list(APPEND CONAN_PACKAGE_OPTIONS lua:compile_as_cpp=False)
 | 
					 | 
				
			||||||
         list(APPEND CONAN_PACKAGE_LIST lua/5.4.3)
 | 
					 | 
				
			||||||
    endif()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    conan_check()
 | 
					 | 
				
			||||||
    conan_add_remote(NAME minres URL https://git.minres.com/api/packages/Tooling/conan)
 | 
					 | 
				
			||||||
    ###########################################################################
 | 
					 | 
				
			||||||
    # Boost on CentOS 7 quirks: the b2 of conan-center is build against a newer libstdc++ and therefore does not run
 | 
					 | 
				
			||||||
    # with the oooooold libs on CentOS 7. Therefore we build our own version of b2 if it is not there
 | 
					 | 
				
			||||||
    ###########################################################################
 | 
					 | 
				
			||||||
	set(B2_META $ENV{HOME}/.conan/data/b2/${B2_VERSION}/_/_/metadata.json)
 | 
					 | 
				
			||||||
	set(CM_META $ENV{HOME}/.conan/data/cmake/${CM_VERSION}/_/_/metadata.json)
 | 
					 | 
				
			||||||
	set(LLVM_META $ENV{HOME}/.conan/data/llvm-core/${LLVM_VERSION}/_/_/metadata.json)
 | 
					 | 
				
			||||||
	if(DEFINED ENV{CONAN_USER_HOME})
 | 
					 | 
				
			||||||
        set(B2_META $ENV{CONAN_USER_HOME}/.conan/data/b2/${B2_VERSION}/_/_/metadata.json)
 | 
					 | 
				
			||||||
        set(CMAKE_META $ENV{CONAN_USER_HOME}/.conan/data/cmake/${CM_VERSION}/_/_/metadata.json)
 | 
					 | 
				
			||||||
    endif()
 | 
					 | 
				
			||||||
    if(NOT EXISTS ${CM_META})
 | 
					 | 
				
			||||||
        conan_configure(REQUIRES cmake/${CM_VERSION})
 | 
					 | 
				
			||||||
        conan_cmake_autodetect(settings BUILD_TYPE Release)
 | 
					 | 
				
			||||||
        conan_cmake_install(PATH_OR_REFERENCE . BUILD cmake SETTINGS ${settings})
 | 
					 | 
				
			||||||
    endif()
 | 
					 | 
				
			||||||
    find_program(LSB_RELEASE_EXEC lsb_release)
 | 
					 | 
				
			||||||
    if(NOT LSB_RELEASE_EXEC-NOTFOUND)
 | 
					 | 
				
			||||||
        execute_process(COMMAND "${LSB_RELEASE_EXEC}" --short --id OUTPUT_VARIABLE LSB_RELEASE_ID_SHORT OUTPUT_STRIP_TRAILING_WHITESPACE)
 | 
					 | 
				
			||||||
	    if(LSB_RELEASE_ID_SHORT MATCHES "CentOS")
 | 
					 | 
				
			||||||
            if(NOT EXISTS ${B2_META})
 | 
					 | 
				
			||||||
                conan_configure(REQUIRES b2/${B2_VERSION})
 | 
					 | 
				
			||||||
                conan_cmake_autodetect(settings BUILD_TYPE Release)
 | 
					 | 
				
			||||||
                conan_cmake_install(PATH_OR_REFERENCE . BUILD b2 SETTINGS ${settings})
 | 
					 | 
				
			||||||
            endif()
 | 
					 | 
				
			||||||
            if(NOT EXISTS ${LLVM_META})
 | 
					 | 
				
			||||||
                conan_configure(REQUIRES llvm-core/13.0.0)
 | 
					 | 
				
			||||||
                conan_cmake_autodetect(settings BUILD_TYPE Release)
 | 
					 | 
				
			||||||
                conan_cmake_install(PATH_OR_REFERENCE . BUILD llvm-core SETTINGS ${settings})
 | 
					 | 
				
			||||||
            endif()
 | 
					 | 
				
			||||||
        endif()
 | 
					 | 
				
			||||||
    endif()
 | 
					 | 
				
			||||||
    ###########################################################################
 | 
					 | 
				
			||||||
    # Boost on CentOS 7 quirks end
 | 
					 | 
				
			||||||
    ###########################################################################
 | 
					 | 
				
			||||||
    conan_cmake_configure(REQUIRES ${CONAN_PACKAGE_LIST}
 | 
					 | 
				
			||||||
                          GENERATORS cmake_find_package
 | 
					 | 
				
			||||||
                          OPTIONS ${CONAN_PACKAGE_OPTIONS}
 | 
					 | 
				
			||||||
                          )
 | 
					 | 
				
			||||||
    conan_cmake_autodetect(settings)
 | 
					 | 
				
			||||||
    conan_install()
 | 
					 | 
				
			||||||
    set(CONAN_CMAKE_SILENT_OUTPUT ON)               
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    find_package(fmt)
 | 
					 | 
				
			||||||
    find_package(spdlog)
 | 
					 | 
				
			||||||
    find_package(lz4)
 | 
					 | 
				
			||||||
    find_package(gsl-lite)
 | 
					 | 
				
			||||||
    find_package(yaml-cpp)
 | 
					 | 
				
			||||||
set(Boost_NO_BOOST_CMAKE ON) #  Don't do a find_package in config mode before searching for a regular boost install.
 | 
					set(Boost_NO_BOOST_CMAKE ON) #  Don't do a find_package in config mode before searching for a regular boost install.
 | 
				
			||||||
set(BOOST_ROOT ${CONAN_BOOST_ROOT})
 | 
					set(BOOST_ROOT ${CONAN_BOOST_ROOT})
 | 
				
			||||||
find_package(Threads)
 | 
					find_package(Threads)
 | 
				
			||||||
find_package(ZLIB)
 | 
					find_package(ZLIB)
 | 
				
			||||||
 | 
					find_package(yaml-cpp REQUIRED)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if(USE_CWR_SYSTEMC)
 | 
					include(clang-format)
 | 
				
			||||||
        include(SystemCPackage)
 | 
					set(ENABLE_CLANG_TIDY OFF CACHE BOOL "Add clang-tidy automatically to builds")
 | 
				
			||||||
    endif()
 | 
					 | 
				
			||||||
    ###############################################################################
 | 
					 | 
				
			||||||
    # setup clang-format and clang-tidy
 | 
					 | 
				
			||||||
    ###############################################################################
 | 
					 | 
				
			||||||
if (ENABLE_CLANG_TIDY)
 | 
					if (ENABLE_CLANG_TIDY)
 | 
				
			||||||
        set(CLANG_FORMAT_EXCLUDE_PATTERNS "scc" "install")
 | 
					    find_program (CLANG_TIDY_EXE NAMES "clang-tidy" PATHS /usr/local/opt/llvm/bin )
 | 
				
			||||||
        find_package(ClangFormat)
 | 
					 | 
				
			||||||
        find_program (CLANG_TIDY_EXE NAMES "clang-tidy" PATHS /usr/bin )
 | 
					 | 
				
			||||||
    if (CLANG_TIDY_EXE)
 | 
					    if (CLANG_TIDY_EXE)
 | 
				
			||||||
        message(STATUS "clang-tidy found: ${CLANG_TIDY_EXE}")
 | 
					        message(STATUS "clang-tidy found: ${CLANG_TIDY_EXE}")
 | 
				
			||||||
            set(CLANG_TIDY_CHECKS "-*")
 | 
					        set(CLANG_TIDY_CHECKS "-*,modernize-*")
 | 
				
			||||||
            set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-avoid-bind.PermissiveParameterList")
 | 
					        set(CMAKE_CXX_CLANG_TIDY "${CLANG_TIDY_EXE};-checks=${CLANG_TIDY_CHECKS};-header-filter='${CMAKE_SOURCE_DIR}/*';-fix"
 | 
				
			||||||
            set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-loop-convert.*")
 | 
					 | 
				
			||||||
            set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-make-shared.")
 | 
					 | 
				
			||||||
            set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-make-unique.")
 | 
					 | 
				
			||||||
            set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-pass-by-value.*")
 | 
					 | 
				
			||||||
            set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-raw-string-literal.*")
 | 
					 | 
				
			||||||
            set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-replace-auto-ptr.IncludeStyle")
 | 
					 | 
				
			||||||
            set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-replace-disallow-copy-and-assign-macro.MacroName")
 | 
					 | 
				
			||||||
            set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-replace-random-shuffle.IncludeStyle")
 | 
					 | 
				
			||||||
            set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-use-auto.*")
 | 
					 | 
				
			||||||
            set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-use-bool-literals.IgnoreMacros")
 | 
					 | 
				
			||||||
            set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-use-default-member-init.*")
 | 
					 | 
				
			||||||
            set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-use-emplace.*")
 | 
					 | 
				
			||||||
            set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-use-equals-default.IgnoreMacros")
 | 
					 | 
				
			||||||
            set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-use-equals-delete.IgnoreMacros")
 | 
					 | 
				
			||||||
            set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-use-nodiscard.ReplacementString")
 | 
					 | 
				
			||||||
            set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-use-noexcept.*")
 | 
					 | 
				
			||||||
            set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-use-nullptr.NullMacros")
 | 
					 | 
				
			||||||
            set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-use-override.*")
 | 
					 | 
				
			||||||
            set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-use-transparent-functors.SafeMode")
 | 
					 | 
				
			||||||
            set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-use-using.IgnoreMacros")
 | 
					 | 
				
			||||||
            set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},cppcoreguidelines-explicit-virtual-functions.IgnoreDestructors")
 | 
					 | 
				
			||||||
            #set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},cppcoreguidelines-*")
 | 
					 | 
				
			||||||
            set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},clang-diagnostic-*,clang-analyzer-*")
 | 
					 | 
				
			||||||
            set(DO_CLANG_TIDY "${CLANG_TIDY_EXE};-checks=${CLANG_TIDY_CHECKS};-header-filter='${CMAKE_SOURCE_DIR}/*';-fix"
 | 
					 | 
				
			||||||
            CACHE STRING "" FORCE)
 | 
					            CACHE STRING "" FORCE)
 | 
				
			||||||
    else()
 | 
					    else()
 | 
				
			||||||
            message(WARNING "clang-tidy not found!")
 | 
					        message(AUTHOR_WARNING "clang-tidy not found!")
 | 
				
			||||||
        set(CMAKE_CXX_CLANG_TIDY "" CACHE STRING "" FORCE) # delete it
 | 
					        set(CMAKE_CXX_CLANG_TIDY "" CACHE STRING "" FORCE) # delete it
 | 
				
			||||||
    endif()
 | 
					    endif()
 | 
				
			||||||
endif()
 | 
					endif()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if(FW_BUILD)
 | 
					include(CodeGen)
 | 
				
			||||||
        include(FetchContent)
 | 
					gen_coredsl(${CORE_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/tgfs/gen_input/TGFS.core_desc interp)
 | 
				
			||||||
        set(FETCHCONTENT_BASE_DIR ${CMAKE_CURRENT_BINARY_DIR}/..)
 | 
					 | 
				
			||||||
        FetchContent_Declare(
 | 
					 | 
				
			||||||
              riscvfw
 | 
					 | 
				
			||||||
              GIT_REPOSITORY https://git.minres.com/Firmware/Firmwares.git
 | 
					 | 
				
			||||||
              GIT_TAG        main
 | 
					 | 
				
			||||||
              GIT_SHALLOW OFF
 | 
					 | 
				
			||||||
              UPDATE_DISCONNECTED ON
 | 
					 | 
				
			||||||
        )
 | 
					 | 
				
			||||||
        FetchContent_GetProperties(riscvfw)
 | 
					 | 
				
			||||||
        if(NOT riscvfw_POPULATED)
 | 
					 | 
				
			||||||
              FetchContent_Populate(riscvfw)
 | 
					 | 
				
			||||||
        endif()
 | 
					 | 
				
			||||||
         add_subdirectory(${riscvfw_SOURCE_DIR})
 | 
					 | 
				
			||||||
    endif()
 | 
					 | 
				
			||||||
endif()
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
add_subdirectory(dbt-rise-core)
 | 
					add_subdirectory(dbt-core)
 | 
				
			||||||
if(CMAKE_PROJECT_NAME STREQUAL "TGC-ISS" AND NOT USE_CWR_SYSTEMC)
 | 
					 | 
				
			||||||
    set(SCC_CMAKE_CONFIG_DIR ${CMAKE_INSTALL_LIBDIR}/cmake/scc)
 | 
					 | 
				
			||||||
    add_subdirectory(scc/src/common)
 | 
					 | 
				
			||||||
else()
 | 
					 | 
				
			||||||
add_subdirectory(scc)
 | 
					add_subdirectory(scc)
 | 
				
			||||||
endif()
 | 
					add_subdirectory(tgfs)
 | 
				
			||||||
add_subdirectory(dbt-rise-tgc)
 | 
					 | 
				
			||||||
if(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/dbt-rise-plugins)
 | 
					 | 
				
			||||||
    add_subdirectory(dbt-rise-plugins)
 | 
					 | 
				
			||||||
endif()
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
include(CTest)
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										29
									
								
								LICENSE
									
									
									
									
									
								
							
							
						
						
									
										29
									
								
								LICENSE
									
									
									
									
									
								
							@@ -1,29 +0,0 @@
 | 
				
			|||||||
BSD 3-Clause License
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Copyright (c) 2016, MINRES Technologies GmbH
 | 
					 | 
				
			||||||
All rights reserved.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Redistribution and use in source and binary forms, with or without
 | 
					 | 
				
			||||||
modification, are permitted provided that the following conditions are met:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
* Redistributions of source code must retain the above copyright notice, this
 | 
					 | 
				
			||||||
  list of conditions and the following disclaimer.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
* Redistributions in binary form must reproduce the above copyright notice,
 | 
					 | 
				
			||||||
  this list of conditions and the following disclaimer in the documentation
 | 
					 | 
				
			||||||
  and/or other materials provided with the distribution.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
* Neither the name of the copyright holder nor the names of its
 | 
					 | 
				
			||||||
  contributors may be used to endorse or promote products derived from
 | 
					 | 
				
			||||||
  this software without specific prior written permission.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 | 
					 | 
				
			||||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | 
					 | 
				
			||||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 | 
					 | 
				
			||||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
 | 
					 | 
				
			||||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 | 
					 | 
				
			||||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 | 
					 | 
				
			||||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 | 
					 | 
				
			||||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 | 
					 | 
				
			||||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 | 
					 | 
				
			||||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | 
					 | 
				
			||||||
							
								
								
									
										19
									
								
								Modulefile
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								Modulefile
									
									
									
									
									
								
							@@ -13,10 +13,21 @@ if { $distro == "CentOS" && ![info exists ::env(PROJECT)] && ![info exists ::env
 | 
				
			|||||||
    puts stderr     "Don't forget to execute 'scl enable devtoolset-7 bash'"
 | 
					    puts stderr     "Don't forget to execute 'scl enable devtoolset-7 bash'"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
module load tools/utilities
 | 
					if {![info exists ::env(PROJECT)] && [file exists $::env(HOME)/.sdkman/candidates/java/11.0.9.hs-adpt/] != 1} { 
 | 
				
			||||||
module load tools/cmake
 | 
					    puts stderr "Please install java via 'sdk install java 11.0.9.hs-adpt'!"
 | 
				
			||||||
module load tools/clang
 | 
					    prereq java/11.0.9
 | 
				
			||||||
module load tools/gcc-riscv64-unknown-elf/13
 | 
					} else {
 | 
				
			||||||
 | 
					    prepend-path PATH $::env(HOME)/.sdkman/candidates/java/11.0.9.hs-adpt/bin
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if {![info exists ::env(PROJECT)] && [file exists $::env(HOME)/.sdkman/candidates/maven/3.6.3] != 1} { 
 | 
				
			||||||
 | 
					    puts stderr "Please install mvn via 'sdk install maven 3.6.3'!"
 | 
				
			||||||
 | 
					    prereq maven/3.6.3
 | 
				
			||||||
 | 
					} else {
 | 
				
			||||||
 | 
					    prepend-path PATH $::env(HOME)/.sdkman/candidates/sbt/1.4.4/bin
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					module load tools/cmake  tools/gcc-riscv64/9.2.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
setenv PROJECT TGFS-ISS
 | 
					setenv PROJECT TGFS-ISS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										86
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										86
									
								
								README.md
									
									
									
									
									
								
							@@ -1,86 +0,0 @@
 | 
				
			|||||||
# TGC-ISS
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The ISS for the cores of The Good Folk Series (TGFS) of MINRES.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
This ISS is based in DBT-RISE, a library to allow rapid ISS creation.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
## Quick start
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
* you need to have a C++14 capable compiler, make or ninja, python, and cmake installed
 | 
					 | 
				
			||||||
 
 | 
					 | 
				
			||||||
### common setup
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
* install conan.io (see also http://docs.conan.io/en/latest/installation.html):
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  ```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  pip3 install --user conan==1.59
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  ```
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  Another option is to use a Python VENV to isolate the used models from the system.
 | 
					 | 
				
			||||||
  In case of please run:
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  ```sh
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  python -mvenv .venv
 | 
					 | 
				
			||||||
  source .venv/bin/activate
 | 
					 | 
				
			||||||
  pip3 install conan==1.59
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  ``` 
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  Using conan for the first time you need to create a profile:
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  ```
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  conan profile create default --detect
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  ```
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
* checkout source from git
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  ```sh
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  git clone --recursive -b develop https://git.minres.com/TGFS/TGC-ISS.git
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  ``` 
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
### Standalone (C++) build
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
* start an out-of-source build:
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  ```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  cd TGC-ISS
 | 
					 | 
				
			||||||
  cmake -S . -B build/Debug
 | 
					 | 
				
			||||||
  cmake --build build/Debug -j10
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  ```
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
### Synopsys Platform Architect build
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Assuming environment for Platform Architect is properly set up.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  cd TGC-ISS/
 | 
					 | 
				
			||||||
  export TGFS_INSTALL_ROOT=`pwd`/install
 | 
					 | 
				
			||||||
  export SNPS_ENABLE_MEM_ON_DEMAND_IN_GENERIC_MEM=1
 | 
					 | 
				
			||||||
  source $COWAREHOME/SLS/linux/setup.sh pae
 | 
					 | 
				
			||||||
  export CC=$COWAREHOME/SLS/linux/common/bin/gcc
 | 
					 | 
				
			||||||
  export CXX=$COWAREHOME/SLS/linux/common/bin/g++
 | 
					 | 
				
			||||||
  cmake -S . -B build/PA -DCMAKE_BUILD_TYPE=Debug -DUSE_CWR_SYSTEMC=ON \
 | 
					 | 
				
			||||||
    -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=${TGFS_INSTALL_ROOT}
 | 
					 | 
				
			||||||
  cmake --build build/PA --target install -j16
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
The Synopsys PA installation requirements may vary on your system.
 | 
					 | 
				
			||||||
Now you may change to the directory dbt-rise-tgc/contrib to import the core model
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
cd dbt-rise-tgc/contrib
 | 
					 | 
				
			||||||
pct tgc_import.tcl
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
							
								
								
									
										13
									
								
								build.sh
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								build.sh
									
									
									
									
									
								
							@@ -1,13 +0,0 @@
 | 
				
			|||||||
export TGFS_INSTALL_ROOT=`pwd`/install
 | 
					 | 
				
			||||||
module load tools/pa/T-2022.06
 | 
					 | 
				
			||||||
module load tools/cmake
 | 
					 | 
				
			||||||
export SNPS_ENABLE_MEM_ON_DEMAND_IN_GENERIC_MEM=1
 | 
					 | 
				
			||||||
export CC=$COWAREHOME/common/bin/gcc
 | 
					 | 
				
			||||||
export CXX=$COWAREHOME/common/bin/g++
 | 
					 | 
				
			||||||
cmake -S . -B build/PA -DCMAKE_BUILD_TYPE=Debug -DUSE_CWR_SYSTEMC=ON -DBUILD_SHARED_LIBS=ON \
 | 
					 | 
				
			||||||
    -DCODEGEN=OFF -DCMAKE_INSTALL_PREFIX=${TGFS_INSTALL_ROOT}
 | 
					 | 
				
			||||||
cmake --build build/PA --target install -j16
 | 
					 | 
				
			||||||
#cd dbt-rise-tgc/contrib
 | 
					 | 
				
			||||||
# import the TGC core itself
 | 
					 | 
				
			||||||
#pct tgc_import.tcl
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
							
								
								
									
										110
									
								
								cmake/CodeGen.cmake
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										110
									
								
								cmake/CodeGen.cmake
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,110 @@
 | 
				
			|||||||
 | 
					cmake_minimum_required(VERSION 3.11)
 | 
				
			||||||
 | 
					option(ENABLE_CODEGEN "Enable code generation for supported cores" ON)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					set(ROOT_DIR ${CMAKE_CURRENT_LIST_DIR}/..)
 | 
				
			||||||
 | 
					set(DBT_CORE_TGC_DIR ${ROOT_DIR}/tgfs)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#helper to setup code generation and generate outputs
 | 
				
			||||||
 | 
					set(GENERATOR_JAR ${ROOT_DIR}/coredsl/com.minres.coredsl.generator.repository/target/com.minres.coredsl.generator-2.0.0-SNAPSHOT.jar)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if(EXISTS ${ROOT_DIR}/coredsl/pom.xml AND NOT EXISTS ${GENERATOR_JAR})
 | 
				
			||||||
 | 
					    execute_process(
 | 
				
			||||||
 | 
					   		COMMAND mvn package
 | 
				
			||||||
 | 
					   		WORKING_DIRECTORY ${ROOT_DIR}/coredsl
 | 
				
			||||||
 | 
					   		OUTPUT_VARIABLE StdOut
 | 
				
			||||||
 | 
					   		ERROR_VARIABLE StdErr
 | 
				
			||||||
 | 
						    RESULT_VARIABLE Status
 | 
				
			||||||
 | 
						    ERROR_QUIET)
 | 
				
			||||||
 | 
					    if(Status AND NOT Status EQUAL 0)
 | 
				
			||||||
 | 
					        message(STATUS "mvn package call failed: ${Status}, ${StdOut}, ${StdErr}")
 | 
				
			||||||
 | 
					    endif()
 | 
				
			||||||
 | 
					endif()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					set(JAVA_OPTS --add-modules ALL-SYSTEM --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED
 | 
				
			||||||
 | 
					  --add-opens=java.base/java.lang.annotation=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED 
 | 
				
			||||||
 | 
					  --add-opens=java.base/java.lang.module=ALL-UNNAMED --add-opens=java.base/java.lang.ref=ALL-UNNAMED 
 | 
				
			||||||
 | 
					  --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.math=ALL-UNNAMED 
 | 
				
			||||||
 | 
					  --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.net.spi=ALL-UNNAMED 
 | 
				
			||||||
 | 
					  --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/java.nio.channels=ALL-UNNAMED 
 | 
				
			||||||
 | 
					  --add-opens=java.base/java.nio.channels.spi=ALL-UNNAMED --add-opens=java.base/java.nio.charset=ALL-UNNAMED 
 | 
				
			||||||
 | 
					  --add-opens=java.base/java.nio.charset.spi=ALL-UNNAMED --add-opens=java.base/java.nio.file=ALL-UNNAMED 
 | 
				
			||||||
 | 
					  --add-opens=java.base/java.nio.file.attribute=ALL-UNNAMED --add-opens=java.base/java.nio.file.spi=ALL-UNNAMED 
 | 
				
			||||||
 | 
					  --add-opens=java.base/java.security=ALL-UNNAMED --add-opens=java.base/java.security.acl=ALL-UNNAMED 
 | 
				
			||||||
 | 
					  --add-opens=java.base/java.security.cert=ALL-UNNAMED --add-opens=java.base/java.security.interfaces=ALL-UNNAMED 
 | 
				
			||||||
 | 
					  --add-opens=java.base/java.security.spec=ALL-UNNAMED --add-opens=java.base/java.text=ALL-UNNAMED 
 | 
				
			||||||
 | 
					  --add-opens=java.base/java.text.spi=ALL-UNNAMED --add-opens=java.base/java.time=ALL-UNNAMED 
 | 
				
			||||||
 | 
					  --add-opens=java.base/java.time.chrono=ALL-UNNAMED --add-opens=java.base/java.time.format=ALL-UNNAMED 
 | 
				
			||||||
 | 
					  --add-opens=java.base/java.time.temporal=ALL-UNNAMED --add-opens=java.base/java.time.zone=ALL-UNNAMED 
 | 
				
			||||||
 | 
					  --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED
 | 
				
			||||||
 | 
					  --add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.locks=ALL-UNNAMED 
 | 
				
			||||||
 | 
					  --add-opens=java.base/java.util.function=ALL-UNNAMED --add-opens=java.base/java.util.jar=ALL-UNNAMED 
 | 
				
			||||||
 | 
					  --add-opens=java.base/java.util.regex=ALL-UNNAMED --add-opens=java.base/java.util.spi=ALL-UNNAMED 
 | 
				
			||||||
 | 
					  --add-opens=java.base/java.util.stream=ALL-UNNAMED --add-opens=java.base/java.util.zip=ALL-UNNAMED 
 | 
				
			||||||
 | 
					  --add-opens=java.datatransfer/java.awt.datatransfer=ALL-UNNAMED --add-opens=java.desktop/java.applet=ALL-UNNAMED 
 | 
				
			||||||
 | 
					  --add-opens=java.desktop/java.awt=ALL-UNNAMED --add-opens=java.desktop/java.awt.color=ALL-UNNAMED 
 | 
				
			||||||
 | 
					  --add-opens=java.desktop/java.awt.desktop=ALL-UNNAMED --add-opens=java.desktop/java.awt.dnd=ALL-UNNAMED 
 | 
				
			||||||
 | 
					  --add-opens=java.desktop/java.awt.dnd.peer=ALL-UNNAMED --add-opens=java.desktop/java.awt.event=ALL-UNNAMED 
 | 
				
			||||||
 | 
					  --add-opens=java.desktop/java.awt.font=ALL-UNNAMED --add-opens=java.desktop/java.awt.geom=ALL-UNNAMED 
 | 
				
			||||||
 | 
					  --add-opens=java.desktop/java.awt.im=ALL-UNNAMED --add-opens=java.desktop/java.awt.im.spi=ALL-UNNAMED 
 | 
				
			||||||
 | 
					  --add-opens=java.desktop/java.awt.image=ALL-UNNAMED --add-opens=java.desktop/java.awt.image.renderable=ALL-UNNAMED 
 | 
				
			||||||
 | 
					  --add-opens=java.desktop/java.awt.peer=ALL-UNNAMED --add-opens=java.desktop/java.awt.print=ALL-UNNAMED 
 | 
				
			||||||
 | 
					  --add-opens=java.desktop/java.beans=ALL-UNNAMED --add-opens=java.desktop/java.beans.beancontext=ALL-UNNAMED 
 | 
				
			||||||
 | 
					  --add-opens=java.instrument/java.lang.instrument=ALL-UNNAMED --add-opens=java.logging/java.util.logging=ALL-UNNAMED 
 | 
				
			||||||
 | 
					  --add-opens=java.management/java.lang.management=ALL-UNNAMED --add-opens=java.prefs/java.util.prefs=ALL-UNNAMED 
 | 
				
			||||||
 | 
					  --add-opens=java.rmi/java.rmi=ALL-UNNAMED --add-opens=java.rmi/java.rmi.activation=ALL-UNNAMED 
 | 
				
			||||||
 | 
					  --add-opens=java.rmi/java.rmi.dgc=ALL-UNNAMED --add-opens=java.rmi/java.rmi.registry=ALL-UNNAMED 
 | 
				
			||||||
 | 
					  --add-opens=java.rmi/java.rmi.server=ALL-UNNAMED --add-opens=java.sql/java.sql=ALL-UNNAMED)
 | 
				
			||||||
 | 
					set(GENERATOR java ${JAVA_OPTS} -jar ${GENERATOR_JAR})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					set(INPUT_DIR ${DBT_CORE_TGC_DIR}/gen_input)
 | 
				
			||||||
 | 
					set(REPO_DIR ${DBT_CORE_TGC_DIR}/gen_input/CoreDSL-Instruction-Set-Description)
 | 
				
			||||||
 | 
					set(TMPL_DIR ${DBT_CORE_TGC_DIR}/gen_input/templates/)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if(ENABLE_CODEGEN AND EXISTS ${GENERATOR_JAR})
 | 
				
			||||||
 | 
					    	macro(gen_coredsl CORE_NAME INPUT_FILE BACKEND)
 | 
				
			||||||
 | 
					            message(STATUS "Adding generation steps for ${CORE_NAME} in ${DBT_CORE_TGC_DIR} for ${BACKEND}")
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					    		string(TOUPPER ${BACKEND} BE_UPPER)
 | 
				
			||||||
 | 
					    		string(TOLOWER ${CORE_NAME} CORE_NAMEL)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if(EXISTS ${DBT_CORE_TGC_DIR}/generate.sh AND NOT EXISTS ${DBT_CORE_TGC_DIR}/incl/iss/arch/${CORE_NAMEL}.h)
 | 
				
			||||||
 | 
					                # make sure source file exist initially 
 | 
				
			||||||
 | 
					                execute_process(
 | 
				
			||||||
 | 
					                    COMMAND /bin/bash ${DBT_CORE_TGC_DIR}/../generate.sh $CORE_NAME $BACKEND
 | 
				
			||||||
 | 
					                    WORKING_DIRECTORY ${DBT_CORE_TGC_DIR}/..
 | 
				
			||||||
 | 
					                    RESULT_VARIABLE return_code)
 | 
				
			||||||
 | 
					            endif()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    		list(APPEND ${CORE_NAME}_MAPPING -m "${TMPL_DIR}/CORENAME.h.gtl:${DBT_CORE_TGC_DIR}/incl/iss/arch/${CORE_NAMEL}.h")
 | 
				
			||||||
 | 
					    		list(APPEND ${CORE_NAME}_MAPPING -m "${TMPL_DIR}/CORENAME.cpp.gtl:${DBT_CORE_TGC_DIR}/src/iss/${CORE_NAMEL}.cpp")
 | 
				
			||||||
 | 
					    		list(APPEND ${CORE_NAME}_MAPPING -m "${TMPL_DIR}/${BACKEND}/CORENAME.cpp.gtl:${DBT_CORE_TGC_DIR}/src/vm/interp/vm_${CORE_NAMEL}.cpp")
 | 
				
			||||||
 | 
					    		set(${CORE_NAME}_OUTPUT_FILES ${DBT_CORE_TGC_DIR}/incl/iss/arch/${CORE_NAMEL}.h ${DBT_CORE_TGC_DIR}/src/iss/${CORE_NAMEL}.cpp ${DBT_CORE_TGC_DIR}/src/vm/interp/vm_${CORE_NAMEL}.cpp)
 | 
				
			||||||
 | 
					    		#add_custom_command(
 | 
				
			||||||
 | 
					    		#    COMMAND ${GENERATOR} -b ${BE_UPPER} -c ${CORE_NAME} -r ${REPO_DIR} ${${CORE_NAME}_MAPPING} ${INPUT_FILE}
 | 
				
			||||||
 | 
					    		#    DEPENDS ${GENERATOR_JAR} ${INPUT_FILE} ${TMPL_DIR}/CORENAME.h.gtl ${TMPL_DIR}/CORENAME.cpp.gtl ${TMPL_DIR}/${BACKEND}/CORENAME.cpp.gtl
 | 
				
			||||||
 | 
					    		#    OUTPUT ${${CORE_NAME}_OUTPUT_FILES}
 | 
				
			||||||
 | 
					    		#    COMMENT "Generating code for ${CORE_NAME}."
 | 
				
			||||||
 | 
					    		#    USES_TERMINAL VERBATIM
 | 
				
			||||||
 | 
					    		#)    		
 | 
				
			||||||
 | 
					    		#add_custom_target(${CORE_NAME}_cpp DEPENDS ${${CORE_NAME}_OUTPUT_FILES})
 | 
				
			||||||
 | 
					    		add_custom_target(${CORE_NAME}_cpp
 | 
				
			||||||
 | 
					                COMMAND ${GENERATOR} -b ${BE_UPPER} -c ${CORE_NAME} -r ${REPO_DIR} ${${CORE_NAME}_MAPPING} ${INPUT_FILE}
 | 
				
			||||||
 | 
					                WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}
 | 
				
			||||||
 | 
					                COMMENT "Generating ISS sources"
 | 
				
			||||||
 | 
					                BYPRODUCTS ${${CORE_NAME}_OUTPUT_FILES}
 | 
				
			||||||
 | 
					                USES_TERMINAL
 | 
				
			||||||
 | 
					            )
 | 
				
			||||||
 | 
					            execute_process(
 | 
				
			||||||
 | 
					                COMMAND ${GENERATOR} -b ${BE_UPPER} -c ${CORE_NAME} -r ${REPO_DIR} ${${CORE_NAME}_MAPPING} ${INPUT_FILE}
 | 
				
			||||||
 | 
					                WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}
 | 
				
			||||||
 | 
					                RESULT_VARIABLE return_code)
 | 
				
			||||||
 | 
					    	endmacro()
 | 
				
			||||||
 | 
					else()
 | 
				
			||||||
 | 
						macro(gen_coredsl CORE_NAME INPUT_FILE BACKEND)
 | 
				
			||||||
 | 
							add_custom_target(${CORE_NAME}_cpp)
 | 
				
			||||||
 | 
					        message(STATUS "Not adding generation steps for ${CORE_NAME}(${ENABLE_CODEGEN}, ${GENERATOR_JAR})")
 | 
				
			||||||
 | 
					        if(NOT EXISTS ${GENERATOR_JAR})
 | 
				
			||||||
 | 
					            message(STATUS "CoreDSL Generator ${GENERATOR_JAR} does not exists")
 | 
				
			||||||
 | 
					        endif()
 | 
				
			||||||
 | 
						endmacro()
 | 
				
			||||||
 | 
					endif()
 | 
				
			||||||
							
								
								
									
										17
									
								
								conanfile.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								conanfile.txt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,17 @@
 | 
				
			|||||||
 | 
					[requires]
 | 
				
			||||||
 | 
					    fmt/6.1.2
 | 
				
			||||||
 | 
					    zlib/1.2.11
 | 
				
			||||||
 | 
					    boost/1.75.0
 | 
				
			||||||
 | 
					    gsl-lite/0.37.0
 | 
				
			||||||
 | 
					    elfio/3.8
 | 
				
			||||||
 | 
					    tcc/0.9.27
 | 
				
			||||||
 | 
					    yaml-cpp/0.6.3
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
					[generators]
 | 
				
			||||||
 | 
					    cmake
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[options]
 | 
				
			||||||
 | 
					    boost:fPIC=True
 | 
				
			||||||
 | 
					    boost:shared=False
 | 
				
			||||||
 | 
					    boost:header_only=False
 | 
				
			||||||
 | 
					    fmt:header_only=True
 | 
				
			||||||
							
								
								
									
										1
									
								
								coredsl
									
									
									
									
									
										Submodule
									
								
							
							
								
								
								
								
								
							
						
						
									
										1
									
								
								coredsl
									
									
									
									
									
										Submodule
									
								
							 Submodule coredsl added at 62d95f8b3c
									
								
							
							
								
								
									
										1
									
								
								dbt-core
									
									
									
									
									
										Submodule
									
								
							
							
								
								
								
								
								
							
						
						
									
										1
									
								
								dbt-core
									
									
									
									
									
										Submodule
									
								
							 Submodule dbt-core added at 95267382cf
									
								
							 Submodule dbt-rise-core deleted from e2ea2b139f
									
								
							 Submodule dbt-rise-tgc deleted from b25b7848c6
									
								
							
							
								
								
									
										25
									
								
								generate.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								generate.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,25 @@
 | 
				
			|||||||
 | 
					#!/bin/bash
 | 
				
			||||||
 | 
					##
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					JAVA_OPTS="--add-modules ALL-SYSTEM --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.annotation=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.lang.module=ALL-UNNAMED --add-opens=java.base/java.lang.ref=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.math=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.net.spi=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/java.nio.channels=ALL-UNNAMED --add-opens=java.base/java.nio.channels.spi=ALL-UNNAMED --add-opens=java.base/java.nio.charset=ALL-UNNAMED --add-opens=java.base/java.nio.charset.spi=ALL-UNNAMED --add-opens=java.base/java.nio.file=ALL-UNNAMED --add-opens=java.base/java.nio.file.attribute=ALL-UNNAMED --add-opens=java.base/java.nio.file.spi=ALL-UNNAMED --add-opens=java.base/java.security=ALL-UNNAMED --add-opens=java.base/java.security.acl=ALL-UNNAMED --add-opens=java.base/java.security.cert=ALL-UNNAMED --add-opens=java.base/java.security.interfaces=ALL-UNNAMED --add-opens=java.base/java.security.spec=ALL-UNNAMED --add-opens=java.base/java.text=ALL-UNNAMED --add-opens=java.base/java.text.spi=ALL-UNNAMED --add-opens=java.base/java.time=ALL-UNNAMED --add-opens=java.base/java.time.chrono=ALL-UNNAMED --add-opens=java.base/java.time.format=ALL-UNNAMED --add-opens=java.base/java.time.temporal=ALL-UNNAMED --add-opens=java.base/java.time.zone=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.locks=ALL-UNNAMED --add-opens=java.base/java.util.function=ALL-UNNAMED --add-opens=java.base/java.util.jar=ALL-UNNAMED --add-opens=java.base/java.util.regex=ALL-UNNAMED --add-opens=java.base/java.util.spi=ALL-UNNAMED --add-opens=java.base/java.util.stream=ALL-UNNAMED --add-opens=java.base/java.util.zip=ALL-UNNAMED --add-opens=java.datatransfer/java.awt.datatransfer=ALL-UNNAMED --add-opens=java.desktop/java.applet=ALL-UNNAMED --add-opens=java.desktop/java.awt=ALL-UNNAMED --add-opens=java.desktop/java.awt.color=ALL-UNNAMED --add-opens=java.desktop/java.awt.desktop=ALL-UNNAMED --add-opens=java.desktop/java.awt.dnd=ALL-UNNAMED --add-opens=java.desktop/java.awt.dnd.peer=ALL-UNNAMED --add-opens=java.desktop/java.awt.event=ALL-UNNAMED --add-opens=java.desktop/java.awt.font=ALL-UNNAMED --add-opens=java.desktop/java.awt.geom=ALL-UNNAMED --add-opens=java.desktop/java.awt.im=ALL-UNNAMED --add-opens=java.desktop/java.awt.im.spi=ALL-UNNAMED --add-opens=java.desktop/java.awt.image=ALL-UNNAMED --add-opens=java.desktop/java.awt.image.renderable=ALL-UNNAMED --add-opens=java.desktop/java.awt.peer=ALL-UNNAMED --add-opens=java.desktop/java.awt.print=ALL-UNNAMED --add-opens=java.desktop/java.beans=ALL-UNNAMED --add-opens=java.desktop/java.beans.beancontext=ALL-UNNAMED --add-opens=java.instrument/java.lang.instrument=ALL-UNNAMED --add-opens=java.logging/java.util.logging=ALL-UNNAMED --add-opens=java.management/java.lang.management=ALL-UNNAMED --add-opens=java.prefs/java.util.prefs=ALL-UNNAMED --add-opens=java.rmi/java.rmi=ALL-UNNAMED --add-opens=java.rmi/java.rmi.activation=ALL-UNNAMED --add-opens=java.rmi/java.rmi.dgc=ALL-UNNAMED --add-opens=java.rmi/java.rmi.registry=ALL-UNNAMED --add-opens=java.rmi/java.rmi.server=ALL-UNNAMED --add-opens=java.sql/java.sql=ALL-UNNAMED"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GENERATOR="java $JAVA_OPTS -jar coredsl/com.minres.coredsl.generator.repository/target/com.minres.coredsl.generator-2.0.0-SNAPSHOT.jar "
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CORE_NAME=$1
 | 
				
			||||||
 | 
					BACKEND=$2
 | 
				
			||||||
 | 
					CORE_NAME_LC=`echo $CORE_NAME | tr '[:upper:]' '[:lower:]' `
 | 
				
			||||||
 | 
					INPUT_FILE=tgfs/gen_input/TGFS.core_desc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					REPO_DIR=tgfs/gen_input/CoreDSL-Instruction-Set-Description 
 | 
				
			||||||
 | 
					TMPL_DIR=tgfs/gen_input/templates/interp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					MAPPING=""
 | 
				
			||||||
 | 
					MAPPING="$MAPPING -m ${TMPL_DIR}/CORENAME.h.gtl:tgfs/incl/iss/arch/${CORE_NAME_LC}.h"
 | 
				
			||||||
 | 
					MAPPING="$MAPPING -m ${TMPL_DIR}/CORENAME.cpp.gtl:tgfs/src/iss/${CORE_NAME_LC}.cpp"
 | 
				
			||||||
 | 
					MAPPING="$MAPPING -m ${TMPL_DIR}/vm_CORENAME.cpp.gtl:tgfs/src/vm/${BACKEND}/vm_${CORE_NAME_LC}.cpp"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[ -f coredsl/com.minres.coredsl.generator.repository/target/com.minres.coredsl.generator-2.0.0-SNAPSHOT.jar ] || (cd coredsl; mvn package)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$GENERATOR -c $CORE_NAME -r $REPO_DIR $MAPPING $INPUT_FILE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1 +0,0 @@
 | 
				
			|||||||
conan==1.59
 | 
					 | 
				
			||||||
							
								
								
									
										2
									
								
								scc
									
									
									
									
									
								
							
							
								
								
								
								
								
							
						
						
									
										2
									
								
								scc
									
									
									
									
									
								
							 Submodule scc updated: 0bdd2db84d...9919e5a350
									
								
							@@ -1,26 +0,0 @@
 | 
				
			|||||||
import re
 | 
					 | 
				
			||||||
import os
 | 
					 | 
				
			||||||
'''
 | 
					 | 
				
			||||||
This script takes all files that get dumped by the tcc backend when using the --dump-ir
 | 
					 | 
				
			||||||
option and replaces the Integers of addresses with their hex representation to allow
 | 
					 | 
				
			||||||
for easier debugging.
 | 
					 | 
				
			||||||
'''
 | 
					 | 
				
			||||||
current_dir = os.getcwd()  # Get the current directory
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
files_with_tcc_jit = [file for file in os.listdir(current_dir) if"jit" in file and not file.startswith("readable")]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
for each in files_with_tcc_jit:  
 | 
					 | 
				
			||||||
    readable_file = f"readable_{each}"
 | 
					 | 
				
			||||||
    if os.path.exists(readable_file):
 | 
					 | 
				
			||||||
        os.remove(readable_file)
 | 
					 | 
				
			||||||
    with open(each, "r") as file:
 | 
					 | 
				
			||||||
        content = file.read()
 | 
					 | 
				
			||||||
for each in files_with_tcc_jit:
 | 
					 | 
				
			||||||
    with open(each, "r") as file:
 | 
					 | 
				
			||||||
        content = file.read()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Replace numbers ending with "U" by their hex representation
 | 
					 | 
				
			||||||
    content = re.sub(r'\b(\d+)U\b(?=U)?', lambda m: hex(int(m.group(1))), content)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    with open(f"readable_{each}", "w") as file:
 | 
					 | 
				
			||||||
        file.write(content)
 | 
					 | 
				
			||||||
@@ -1,91 +0,0 @@
 | 
				
			|||||||
#!/bin/bash
 | 
					 | 
				
			||||||
##
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Absolute path to this script, e.g. /home/user/bin/foo.sh
 | 
					 | 
				
			||||||
SCRIPT=`readlink -f "$0"`
 | 
					 | 
				
			||||||
# Absolute path this script is in, thus /home/user/bin
 | 
					 | 
				
			||||||
SCRIPTDIR=`dirname "$SCRIPT"`
 | 
					 | 
				
			||||||
SCRIPTNAME=`basename "$SCRIPT"`
 | 
					 | 
				
			||||||
function print_help {
 | 
					 | 
				
			||||||
    echo "Usage: $SCRIPTNAME [-b <backend>] [-s <sim args>]}"
 | 
					 | 
				
			||||||
    echo "Run UCB risc-v compliance test suite on backends"
 | 
					 | 
				
			||||||
    echo "Optional cli arguments:"
 | 
					 | 
				
			||||||
    echo "  -b              backend type, default all"
 | 
					 | 
				
			||||||
    echo "  -s <args>       simulator arguments"
 | 
					 | 
				
			||||||
    echo "  -h              print help"
 | 
					 | 
				
			||||||
    echo "  -v              increase verbosity"
 | 
					 | 
				
			||||||
    echo "  -t             set build type"
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
SIM_ARGS="-v1"
 | 
					 | 
				
			||||||
BACKENDS=("interp" "tcc" "llvm" "asmjit")
 | 
					 | 
				
			||||||
DEBUG=0
 | 
					 | 
				
			||||||
BUILD_TYPE=Debug
 | 
					 | 
				
			||||||
while getopts 'b:s:hvt:' c
 | 
					 | 
				
			||||||
do
 | 
					 | 
				
			||||||
  case $c in
 | 
					 | 
				
			||||||
    b) BACKENDS=($OPTARG);;
 | 
					 | 
				
			||||||
    s) SIM_ARGS=$OPTARG ;;
 | 
					 | 
				
			||||||
    h) print_help; exit 0 ;;
 | 
					 | 
				
			||||||
    v) DEBUG=1 ;;
 | 
					 | 
				
			||||||
    t) BUILD_TYPE = $OPTARG;;
 | 
					 | 
				
			||||||
    ?)
 | 
					 | 
				
			||||||
      print_help >&2
 | 
					 | 
				
			||||||
      exit 1
 | 
					 | 
				
			||||||
      ;;
 | 
					 | 
				
			||||||
  esac
 | 
					 | 
				
			||||||
done
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
 | 
					 | 
				
			||||||
ROOT_DIR="$(dirname "$DIR")"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RISCV_TEST=$ROOT_DIR/build/riscv-tests
 | 
					 | 
				
			||||||
# prepare riscv-test binaries
 | 
					 | 
				
			||||||
if [ ! -d $RISCV_TEST ]; then
 | 
					 | 
				
			||||||
    mkdir -p $ROOT_DIR/build; cd $ROOT_DIR/build
 | 
					 | 
				
			||||||
    git clone --recursive https://github.com/riscv/riscv-tests.git
 | 
					 | 
				
			||||||
    cd $RISCV_TEST
 | 
					 | 
				
			||||||
    autoconf
 | 
					 | 
				
			||||||
    ./configure --with-xlen=32
 | 
					 | 
				
			||||||
    cd $ROOT_DIR
 | 
					 | 
				
			||||||
    make -C $RISCV_TEST -j -k 
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
# check that we have an executable
 | 
					 | 
				
			||||||
RISCV_EXE=$ROOT_DIR/build/${BUILD_TYPE}/dbt-rise-tgc/tgc-sim
 | 
					 | 
				
			||||||
if [ ! -x $RISCV_EXE ]; then
 | 
					 | 
				
			||||||
    mkdir -p build/${BUILD_TYPE}
 | 
					 | 
				
			||||||
    echo "running cmake -B build/${BUILD_TYPE} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DWITH_TCC=ON -DWITH_LLVM=ON "
 | 
					 | 
				
			||||||
    cmake -S . -B build/${BUILD_TYPE} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DWITH_TCC=ON -DWITH_LLVM=ON ../.. || exit 1
 | 
					 | 
				
			||||||
    cmake --build build/${BUILD_TYPE} -j 20 || exit 1
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
test_ui_list=`find ${RISCV_TEST}/isa -type f -name rv32ui-p-\* -executable | grep -v fence | grep -v ma_data |sort`
 | 
					 | 
				
			||||||
test_uc_list=`find ${RISCV_TEST}/isa -type f -name rv32uc-p-\* -executable | grep -v fence | sort`
 | 
					 | 
				
			||||||
test_um_list=`find ${RISCV_TEST}/isa -type f -name rv32um-p-\* -executable | grep -v fence | sort`
 | 
					 | 
				
			||||||
test_list="$test_ui_list $test_uc_list $test_um_list $test_mmode_list"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
for backend in "${BACKENDS[@]}"; do
 | 
					 | 
				
			||||||
    failed_list=()
 | 
					 | 
				
			||||||
    for elf in $test_list; do
 | 
					 | 
				
			||||||
    	[ $DEBUG -eq 0 ] || echo Running "${RISCV_EXE} $SIM_ARGS -f $elf --backend $backend"
 | 
					 | 
				
			||||||
        ${RISCV_EXE} $SIM_ARGS -f $elf --backend $backend
 | 
					 | 
				
			||||||
        if [ $? != 0 ]; then
 | 
					 | 
				
			||||||
            failed_list+="$backend:$elf "
 | 
					 | 
				
			||||||
        fi
 | 
					 | 
				
			||||||
    done
 | 
					 | 
				
			||||||
    tcount=`echo $test_list | wc -w`
 | 
					 | 
				
			||||||
    if [ ! -z "$failed_list" ]; then
 | 
					 | 
				
			||||||
        fcount=`echo $failed_list | wc -w`
 | 
					 | 
				
			||||||
        echo "($backend) $fcount of $tcount test(s) failed:" 
 | 
					 | 
				
			||||||
        echo $failed_list | tr ' ' '\n'
 | 
					 | 
				
			||||||
    else
 | 
					 | 
				
			||||||
        echo
 | 
					 | 
				
			||||||
        echo "($backend) All $tcount tests passed." 
 | 
					 | 
				
			||||||
        if [ $DEBUG -eq 1 ];then
 | 
					 | 
				
			||||||
        echo "List of executed tests:"
 | 
					 | 
				
			||||||
        for t in $test_list; do
 | 
					 | 
				
			||||||
            name=`basename $t`
 | 
					 | 
				
			||||||
            echo "  $name"
 | 
					 | 
				
			||||||
        done
 | 
					 | 
				
			||||||
        fi
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
done
 | 
					 | 
				
			||||||
							
								
								
									
										1
									
								
								tgfs
									
									
									
									
									
										Submodule
									
								
							
							
								
								
								
								
								
							
						
						
									
										1
									
								
								tgfs
									
									
									
									
									
										Submodule
									
								
							 Submodule tgfs added at 9c8b72693e
									
								
							
		Reference in New Issue
	
	Block a user