226 Commits

Author SHA1 Message Date
788d52885c Merge branch 'develop' into main 2025-03-15 07:13:37 +01:00
bd3139b623 removes scc submodule 2025-03-15 07:08:21 +01:00
6fe60e03cd updates submodule 2025-03-14 20:04:01 +01:00
8d6fdb6ba7 Merge branch 'feature/privilege_refactor' into develop 2025-03-14 20:01:35 +01:00
4a74a73bee updates CMakeLists.txt and dbt-rise-tgc submodule 2025-03-14 19:45:21 +01:00
5d78cdf4df updates CMakeLists.txt and adds build config 2025-03-14 08:52:57 +01:00
e192c71104 updates submodules and adds cmake presets 2025-03-14 07:15:21 +01:00
140c2d67b1 updates dbt-rise-tgc 2025-02-13 13:41:38 +01:00
7d41bb9525 updates submodules 2025-02-12 20:45:47 +01:00
b2f87e8fad updates dbt-rise-core and scc 2025-02-03 20:53:59 +01:00
27b23dce8d Merge branch 'develop' of https://git.minres.com/TGFS/TGC-ISS.git into develop 2025-02-03 20:52:52 +01:00
2ff133732d forces clean build in Jenkins 2025-01-11 12:03:55 +01:00
dee78d1279 updates scc 2025-01-08 14:45:21 +01:00
dfad138010 update submodules 2024-12-28 13:11:41 +01:00
de4a6124e6 updates SCC 2024-12-23 20:15:32 +01:00
d063650904 updates scc 2024-12-23 16:49:25 +01:00
8eed85377b updates dbt-rise-tgc 2024-12-06 15:51:12 +01:00
fabceb7a93 updates submodules 2024-12-06 13:40:30 +01:00
88ad16ec94 updates submodules 2024-11-14 17:27:50 +01:00
abef96d93d lowers CXX standard and elfio version 2024-11-14 17:26:37 +01:00
478d1d4ac5 includes GC cores into Jenkins 2024-09-30 09:51:56 +02:00
5f43bb9c0f updates submodules 2024-09-30 08:48:31 +02:00
d9706c58f9 updates submodules 2024-09-27 20:10:53 +02:00
45b55d5c24 updates submodule 2024-09-24 08:42:33 +02:00
bacc9a8296 updates elfio and c++ version 2024-09-24 08:42:17 +02:00
b6e22e863a updates dbt-rise-tgc submodule 2024-09-23 10:06:10 +02:00
aad4a27516 updates dbt-rise submodules 2024-09-23 09:30:33 +02:00
e6b34cfad9 updates submodule, Jenkins displays available isa after building 2024-08-21 12:09:41 +02:00
3fb45df48c updates submodule 2024-08-21 11:05:01 +02:00
3489fd1516 updates submodule 2024-08-17 23:22:14 +02:00
8d199ba7ca changes c++ back to 14 2024-08-17 23:20:29 +02:00
30dd1044b0 updates submodule 2024-08-17 11:20:03 +02:00
d27cbcc05b adds TGC5F to testing 2024-08-17 09:22:33 +02:00
020a4d793f updates submodules 2024-08-17 09:22:03 +02:00
ed08913f26 updates submodules 2024-08-04 18:42:54 +02:00
17773cf9b1 updates tgc 2024-08-02 11:59:10 +02:00
ae71682920 updates TGC impl 2024-08-02 10:33:29 +02:00
5cfbbbc9ca updates dbt-rise-tgc to fix fcsr presence 2024-08-02 08:59:48 +02:00
7d71ebca30 update submodules 2024-08-01 11:02:45 +02:00
0b7969becf updates submodule 2024-07-31 12:31:10 +02:00
5bb29d2d3a adds script for annotating memory addrs to riscof memory dumps 2024-07-31 12:30:54 +02:00
46128e395f update submodule 2024-07-30 13:34:57 +02:00
3dc80460ac updates submodules 2024-07-25 19:35:37 +02:00
5d9d146aa2 updates submodules and script 2024-07-25 13:08:38 +02:00
a4ac323306 updates submodules 2024-07-24 14:49:19 +02:00
97190a133c updates submodules 2024-07-24 12:45:23 +02:00
c09fda3f25 updates submodules 2024-07-24 12:29:21 +02:00
47d7357ed9 updates submodules 2024-07-23 14:36:16 +02:00
78245ec817 updates submodules 2024-07-23 13:47:51 +02:00
4058eed106 updates submodules 2024-07-22 09:24:19 +02:00
1fee44c084 enables all cores in Jenkinsfile 2024-07-18 14:32:59 +02:00
497b1d33d4 updates submodules 2024-07-18 14:32:46 +02:00
db0d125651 adds Debug tools 2024-07-18 14:21:24 +02:00
c365d4f822 removes TGC5B from testing as it is also not generated atm 2024-07-11 22:05:07 +02:00
6ce8eada3e removes TGC5C from generation as it is already in TGC-ISS 2024-07-11 16:37:21 +02:00
6ee4840d8d removes TGC5B from testing 2024-07-11 15:46:56 +02:00
2a0899a671 adjust cache line size 2024-07-11 14:06:07 +02:00
c0e557316f adds switch to mkdir 2024-07-11 12:59:43 +02:00
c4a746d4c8 splits 32 and 64 bits, disables RVE for now 2024-07-11 12:41:14 +02:00
45e5ab6133 cleans repo before checkout 2024-07-11 11:26:54 +02:00
8811f13d1c checks out ISS explicitly 2024-07-11 11:23:17 +02:00
c2056c30f3 fixes syntax for multiline command 2024-07-11 10:55:27 +02:00
3da38170ff generates cores manually 2024-07-11 10:53:59 +02:00
5c31d06a58 . 2024-07-11 10:24:49 +02:00
99e36acbae fixes bugs 2024-07-11 10:19:56 +02:00
21ca5aee7a different agents for different stages 2024-07-11 10:14:46 +02:00
c99a7982b7 adds seperate image for core gen 2024-07-11 10:04:35 +02:00
3d657d42bc fixes typo yet again 2024-07-11 09:52:02 +02:00
8de84ca4be fixes typo 2024-07-11 09:46:25 +02:00
fa1c960247 updates Jenkinsfile 2024-07-11 09:41:06 +02:00
ab4a0eeb6e updates submodule 2024-07-11 08:41:16 +02:00
cc61e0b476 changes dockerless to local 2024-07-10 13:16:11 +02:00
856e251be4 updates submodules 2024-07-10 12:57:36 +02:00
b118b43988 upgrades cxx version for std::variant in vmbase, updates asmjit and reorder for proper build 2024-07-10 12:57:36 +02:00
e8037b9c27 updates dbt-rise-tgc 2024-07-09 13:57:43 +02:00
c0bae483c1 updates submodules 2024-07-09 13:52:50 +02:00
d7d072bb0b Merge branch 'develop' into main 2024-07-05 08:07:22 +02:00
d488581e3a fixes build setup 2024-07-05 08:06:56 +02:00
97b52b9e05 updates submodules 2024-07-05 07:42:26 +02:00
6dbce5cb23 updates submodules to get extended finishing conditions 2024-07-05 05:57:12 +02:00
c19e7c6a46 update submodules to add FCOUNT 2024-07-04 10:48:33 +02:00
bfea2374b4 updates dbt-rise-tgc to pull template updates 2024-06-21 10:49:47 +02:00
2825646edc updates scc 2024-06-21 09:28:49 +02:00
c1e0379f7b Merge branch 'develop' into main 2024-06-20 07:10:59 +02:00
d602c61dfe updates README to re-apply fixes for #1 and #2 2024-06-20 07:10:38 +02:00
4b65d31b89 Merge branch 'develop' into main 2024-06-20 07:06:27 +02:00
bbe7e7525e updates submodules 2024-06-14 19:55:01 +02:00
ac23db44cf applies clang-format 2024-06-14 17:43:26 +02:00
4964fe3f79 updates CLI of CMake 2024-06-14 17:40:23 +02:00
bea38f761d enables tcc in Jenkins 2024-05-31 10:59:02 +02:00
405bae926c updates submodules 2024-05-31 10:58:41 +02:00
9c0cb351fe updates min cmake version 2024-05-31 10:57:47 +02:00
3b6f7b5e83 disables TCC in Jenkinsfile 2024-05-22 18:04:13 +02:00
dc8e631824 enables TCC in Jenkinsfile 2024-05-22 18:00:24 +02:00
e67306b781 adds final-ish Jenkinsfile, removes action, updates submodule 2024-05-22 17:47:31 +02:00
f8152e8ca5 sets Conanhome in jenkinsfile
Some checks failed
Run architectural test suite on backends / Build ISS, Setup TGC-COMPLIANCE, Run tests on backends (push) Failing after 6m10s
2024-05-22 15:58:39 +02:00
2dc4409928 adds missing steps
Some checks failed
Run architectural test suite on backends / Build ISS, Setup TGC-COMPLIANCE, Run tests on backends (push) Failing after 6m19s
2024-05-22 15:35:02 +02:00
558d5849a6 adds interp test
Some checks failed
Run architectural test suite on backends / Build ISS, Setup TGC-COMPLIANCE, Run tests on backends (push) Has been cancelled
2024-05-22 15:33:40 +02:00
aa69088189 adds build step to Jenkinsfile
Some checks failed
Run architectural test suite on backends / Build ISS, Setup TGC-COMPLIANCE, Run tests on backends (push) Failing after 6m26s
2024-05-22 15:21:57 +02:00
92283be000 changes Jenkinsfile to Info only
Some checks failed
Run architectural test suite on backends / Build ISS, Setup TGC-COMPLIANCE, Run tests on backends (push) Failing after 5m52s
2024-05-22 15:10:15 +02:00
73c9934708 Adds Jenkinsfile
Some checks failed
Run architectural test suite on backends / Build ISS, Setup TGC-COMPLIANCE, Run tests on backends (push) Failing after 6m37s
2024-05-22 14:05:29 +02:00
ff649a9d97 updates dbt-rise-core
Some checks failed
Run architectural test suite on backends / Build ISS, Setup TGC-COMPLIANCE, Run tests on backends (push) Failing after 6m14s
2024-05-15 17:09:42 +02:00
4c2d8f2d97 updates submodules
Some checks failed
Run architectural test suite on backends / Build ISS, Setup TGC-COMPLIANCE, Run tests on backends (push) Failing after 6m11s
2024-05-11 15:27:08 +02:00
6e3bbad01b updates submodule
Some checks failed
Run architectural test suite on backends / Build ISS, Setup TGC-COMPLIANCE, Run tests on backends (push) Failing after 6m17s
2024-05-11 15:17:12 +02:00
ae03038323 makes building tcc dependent on WITH_TCC option
Some checks failed
Run architectural test suite on backends / Build ISS, Setup TGC-COMPLIANCE, Run tests on backends (push) Failing after 6m18s
2024-05-11 15:07:20 +02:00
b8fa095940 disables tcc in action
Some checks failed
Run architectural test suite on backends / Build ISS, Setup TGC-COMPLIANCE, Run tests on backends (push) Failing after 1m55s
2024-05-11 14:56:21 +02:00
d4a2e133eb asmjit should pass act now
Some checks failed
Run architectural test suite on backends / Build ISS, Setup TGC-COMPLIANCE, Run tests on backends (push) Failing after 2m8s
2024-05-11 14:52:56 +02:00
17b8e4a7fc actions are tricky
Some checks failed
Run architectural test suite on backends / Build ISS, Setup TGC-COMPLIANCE, Run tests on backends (push) Failing after 6m47s
2024-04-22 20:52:19 +02:00
ddec62b3a3 does this work?
All checks were successful
Run architectural test suite on backends / Build ISS, Setup TGC-COMPLIANCE, Run tests on backends (push) Successful in 1m15s
2024-04-22 20:50:25 +02:00
5a7ab89f43 more testing
All checks were successful
Run architectural test suite on backends / Build ISS, Setup TGC-COMPLIANCE, Run tests on backends (push) Successful in 1m17s
2024-04-22 20:48:20 +02:00
36487d1b75 more testing
All checks were successful
Run architectural test suite on backends / Build ISS, Setup TGC-COMPLIANCE, Run tests on backends (push) Successful in 1m20s
2024-04-22 20:46:25 +02:00
c65cf3a804 ident fix
Some checks failed
Run architectural test suite on backends / Build ISS, Setup TGC-COMPLIANCE, Run tests on backends (push) Failing after 6m34s
2024-04-22 20:36:50 +02:00
e03001dd91 working on more solutions 2024-04-22 20:36:03 +02:00
3d216107d9 adds apparently working solution
All checks were successful
Run architectural test suite on backends / Build ISS, Setup TGC-COMPLIANCE, Run tests on backends (push) Successful in 6m50s
2024-04-22 20:28:07 +02:00
ff1fe0f1af fixes indentation
Some checks failed
Run architectural test suite on backends / Build ISS, Setup TGC-COMPLIANCE, Run tests on backends (push) Failing after 6m44s
2024-04-22 20:20:55 +02:00
493b8be2ed adds more approaches 2024-04-22 20:19:18 +02:00
b347393ff6 adds yet another approach
All checks were successful
Run architectural test suite on backends / Build ISS, Setup TGC-COMPLIANCE, Run tests on backends (push) Successful in 6m27s
2024-04-22 20:09:32 +02:00
bdb7cbd36d adds different approach to indicate failure
All checks were successful
Run architectural test suite on backends / Build ISS, Setup TGC-COMPLIANCE, Run tests on backends (push) Successful in 6m41s
2024-04-22 19:56:07 +02:00
646452e0ea changes since continue on error for a job is disable for gitea
All checks were successful
Run architectural test suite on backends / Build ISS, Setup TGC-COMPLIANCE, Run tests on backends (push) Successful in 7m12s
2024-04-22 19:45:17 +02:00
f41056924c removes ls on mounted volume
Some checks failed
Run architectural test suite on backends / Build ISS, Setup TGC-COMPLIANCE, Run tests on backends (push) Failing after 5m18s
2024-04-22 19:16:38 +02:00
bc1e82952a adds valid volume
Some checks failed
Run architectural test suite on backends / Build ISS, Setup TGC-COMPLIANCE, Run tests on backends (push) Failing after 59s
2024-04-22 18:49:03 +02:00
03bb12efdb adds test for mount
Some checks failed
Run architectural test suite on backends / Build ISS, Setup TGC-COMPLIANCE, Run tests on backends (push) Has been cancelled
2024-04-22 18:43:13 +02:00
7b6c0291b2 fixes typo, moves continue on error
Some checks failed
Run architectural test suite on backends / Build ISS, Setup TGC-COMPLIANCE, Run tests on backends (push) Failing after 5m20s
2024-04-22 18:32:59 +02:00
bd30872ed3 sets CONAN_USER_HOME instead
All checks were successful
Run architectural test suite on backends / Build ISS, Setup TGC-COMPLIANCE, Run tests on backends (push) Successful in 6m40s
2024-04-22 18:24:04 +02:00
74abd3032a adds CONAN_HOME as shell env variable
All checks were successful
Run architectural test suite on backends / Build ISS, Setup TGC-COMPLIANCE, Run tests on backends (push) Successful in 6m46s
2024-04-22 18:12:40 +02:00
2e14223e1e changes syntax
Some checks failed
Run architectural test suite on backends / Build ISS, Setup TGC-COMPLIANCE, Run tests on backends (push) Has been cancelled
2024-04-22 18:10:08 +02:00
4a09f1c634 debugging env
Some checks failed
Run architectural test suite on backends / Build ISS, Setup TGC-COMPLIANCE, Run tests on backends (push) Has been cancelled
2024-04-22 18:08:13 +02:00
d322c7c9d8 updates env setting
Some checks failed
Run architectural test suite on backends / Build ISS, Setup TGC-COMPLIANCE, Run tests on backends (push) Has been cancelled
2024-04-22 18:05:51 +02:00
bc6eed67e8 adds Conanhome to action
All checks were successful
Run architectural test suite on backends / Build ISS, Setup TGC-COMPLIANCE, Run tests on backends (push) Successful in 7m3s
2024-04-22 17:12:20 +02:00
57ce6aab92 updates dbt-rise-tgc and updates build system
All checks were successful
Run architectural test suite on backends / Build ISS, Setup TGC-COMPLIANCE, Run tests on backends (push) Successful in 6m28s
2024-04-16 14:47:58 +02:00
734522f6c3 fix log macro riscv_hart_common
All checks were successful
Run architectural test suite on backends / Build ISS, Setup TGC-COMPLIANCE, Run tests on backends (push) Successful in 8m36s
2024-04-15 13:06:33 +02:00
9c7b95ae23 adds dirs and continue despite error
All checks were successful
Run architectural test suite on backends / Build ISS, Setup TGC-COMPLIANCE, Run tests on backends (push) Successful in 8m31s
2024-03-24 18:21:23 +01:00
cf8472f2fc changes job name
Some checks failed
Run architectural test suite on backends / Build ISS, Setup TGC-COMPLIANCE, Run tests on backends (push) Failing after 6m21s
2024-03-24 18:00:41 +01:00
cc23e02b89 moves tests into single job
Some checks failed
Run architectural test suite on backends / Build ISS and Setup TGC-COMPLIANCE (push) Has been cancelled
2024-03-24 17:59:36 +01:00
f21461e1ab changes typo
Some checks failed
Run architectural test suite on backends / Build ISS and Setup TGC-COMPLIANCE (push) Successful in 6m38s
Run architectural test suite on backends / Test interp backend (push) Failing after 1m3s
Run architectural test suite on backends / Test llvm backend (push) Successful in 1m0s
Run architectural test suite on backends / Test tcc backend (push) Failing after 1m2s
Run architectural test suite on backends / Test asmjit backend (push) Failing after 1m1s
2024-03-24 17:33:23 +01:00
13094e78ce removes supposed fix
Some checks failed
Run architectural test suite on backends / Test interp backend (push) Blocked by required conditions
Run architectural test suite on backends / Test llvm backend (push) Blocked by required conditions
Run architectural test suite on backends / Test tcc backend (push) Blocked by required conditions
Run architectural test suite on backends / Test asmjit backend (push) Blocked by required conditions
Run architectural test suite on backends / Build ISS and Setup TGC-COMPLIANCE (push) Has been cancelled
2024-03-24 17:32:18 +01:00
7bb4c283a3 latest changes
Some checks failed
Run architectural test suite on backends / Build ISS and Setup TGC-COMPLIANCE (push) Failing after 2m0s
Run architectural test suite on backends / Test interp backend (push) Has been skipped
Run architectural test suite on backends / Test llvm backend (push) Has been skipped
Run architectural test suite on backends / Test tcc backend (push) Has been skipped
Run architectural test suite on backends / Test asmjit backend (push) Has been skipped
2024-03-24 17:29:17 +01:00
86f58adaa4 makes pretty :)
Some checks failed
Run architectural test suite on backends / Build ISS and Setup TGC-COMPLIANCE (push) Failing after 4m58s
Run architectural test suite on backends / Test interp backend (push) Has been skipped
Run architectural test suite on backends / Test llvm backend (push) Has been skipped
Run architectural test suite on backends / Test tcc backend (push) Has been skipped
Run architectural test suite on backends / Test asmjit backend (push) Has been skipped
2024-03-24 17:06:56 +01:00
4efcbfbd35 Merge branch 'develop' of https://git.minres.com/TGFS/TGC-ISS into develop 2024-03-24 17:05:55 +01:00
ac08908336 fixes indentation 2024-03-24 17:05:50 +01:00
60e6fec07d removes empty lines 2024-03-24 17:03:15 +01:00
061b21ed51 Merge branch 'develop' of https://git.minres.com/TGFS/TGC-ISS into develop 2024-03-24 17:01:42 +01:00
406cec6d27 cleans up workflow 2024-03-24 17:01:34 +01:00
95096fe98a changes build system to always build cmake
Some checks failed
Interp architectural test suite / Setup and build ISS (push) Failing after 4m25s
Interp architectural test suite / Test llvm backend (push) Has been cancelled
Interp architectural test suite / Test tcc backend (push) Has been cancelled
Interp architectural test suite / Test asmjit backend (push) Has been cancelled
Interp architectural test suite / Test interp backend (push) Has been cancelled
2024-03-24 16:50:28 +01:00
5bbdb3bfa2 changes zlib version
Some checks failed
Interp architectural test suite / Setup and build ISS (push) Failing after 2m28s
Interp architectural test suite / Test llvm backend (push) Has been cancelled
Interp architectural test suite / Test tcc backend (push) Has been cancelled
Interp architectural test suite / Test asmjit backend (push) Has been cancelled
Interp architectural test suite / Test interp backend (push) Has been cancelled
2024-03-24 16:22:12 +01:00
6c304055bf updates build system to cope better with CentOS
Some checks failed
Interp architectural test suite / Setup and build ISS (push) Failing after 2m23s
Interp architectural test suite / Test interp backend (push) Failing after 1m6s
Interp architectural test suite / Test llvm backend (push) Failing after 1m14s
Interp architectural test suite / Test asmjit backend (push) Has been cancelled
Interp architectural test suite / Test tcc backend (push) Has been cancelled
2024-03-24 16:15:21 +01:00
6ef27d8c58 adds correct syntax
Some checks failed
Interp architectural test suite / Setup and build ISS (push) Failing after 4m10s
Interp architectural test suite / Test interp backend (push) Failing after 1m18s
Interp architectural test suite / Test tcc backend (push) Has been cancelled
Interp architectural test suite / Test asmjit backend (push) Has been cancelled
Interp architectural test suite / Test llvm backend (push) Has been cancelled
2024-03-24 16:02:00 +01:00
4c64d076fc adds tests for all backends 2024-03-24 15:58:38 +01:00
538406e9f3 adds correct branch checkout
All checks were successful
Interp architectural test suite / Build and test interp backend (push) Successful in 7m40s
2024-03-24 15:49:59 +01:00
0d5eb6c1ce hopefully last debug
All checks were successful
Interp architectural test suite / Build and test interp backend (push) Successful in 7m5s
2024-03-24 13:54:12 +01:00
c785b0e33c debug
All checks were successful
Interp architectural test suite / Build and test interp backend (push) Successful in 6m46s
2024-03-24 13:44:33 +01:00
dd47d9d9d1 debug
All checks were successful
Interp architectural test suite / Build and test interp backend (push) Successful in 6m40s
2024-03-24 13:35:49 +01:00
c9ce22379b debug
All checks were successful
Interp architectural test suite / Build and test interp backend (push) Successful in 6m16s
2024-03-24 13:26:17 +01:00
607aca574c debug
All checks were successful
Interp architectural test suite / Build and test interp backend (push) Successful in 6m11s
2024-03-24 13:14:30 +01:00
247bed12ee updates submodules
All checks were successful
Interp architectural test suite / Build and test interp backend (push) Successful in 6m24s
2024-03-24 13:03:02 +01:00
b7ee50dc21 removes debug messages 2024-03-24 12:57:46 +01:00
417921fc55 debug
All checks were successful
Interp architectural test suite / Build and test interp backend (push) Successful in 6m38s
2024-03-24 12:53:34 +01:00
e0e9a207e8 fake commit 2
All checks were successful
Interp architectural test suite / Build and test interp backend (push) Successful in 7m9s
2024-03-24 12:29:24 +01:00
de56a5c5a3 fake commit 2024-03-24 12:29:00 +01:00
1baed20dbb fixes oversight
Some checks failed
Interp architectural test suite / Build and test interp backend (push) Failing after 6m12s
2024-03-24 12:17:42 +01:00
246fbdefb6 fixes typo
Some checks failed
Interp architectural test suite / Build and test interp backend (push) Failing after 5m55s
2024-03-24 12:11:24 +01:00
afff028374 next debug
Some checks failed
Interp architectural test suite / Build and test interp backend (push) Failing after 6m7s
2024-03-24 12:04:58 +01:00
070f179ca8 restricts ssh permissions
Some checks failed
Interp architectural test suite / Build and test interp backend (push) Failing after 1m22s
2024-03-24 12:02:55 +01:00
b157d916cb accepts ssh fingerprint
Some checks failed
Interp architectural test suite / Build and test interp backend (push) Failing after 1m31s
2024-03-24 12:00:09 +01:00
eb98e7525f adds different auth checkout
Some checks failed
Interp architectural test suite / Build and test interp backend (push) Failing after 1m46s
2024-03-24 11:56:03 +01:00
a817b7b47b adds verbosity for debugging action
Some checks failed
Interp architectural test suite / Build and test interp backend (push) Failing after 1m27s
2024-03-24 11:46:09 +01:00
5545f58f85 adds ssh auth for checkout
Some checks failed
Interp architectural test suite / Build and test interp backend (push) Failing after 1m16s
2024-03-24 11:43:01 +01:00
11d7a731ce changes checkout to git clone
Some checks failed
Interp architectural test suite / Build and test interp backend (push) Failing after 6m5s
2024-03-24 11:16:02 +01:00
37a47b0f83 Merge branch 'develop' of https://git.minres.com/TGFS/TGC-ISS into develop
Some checks failed
Interp architectural test suite / test and publish job (push) Failing after 6m50s
2024-03-24 11:05:33 +01:00
cbdf6aab01 adds action to test interp 2024-03-24 11:05:23 +01:00
0050dfd523 update formatting in dbt-rise submodules 2024-03-19 11:51:02 +01:00
262df83e8e Merge branch 'develop' of https://git.minres.com/TGFS/TGC-ISS into develop 2024-03-19 11:28:45 +01:00
5c6732f1ae updates submodules 2024-03-19 11:28:34 +01:00
4c107e03a0 fixes installation for PA 2024-03-15 16:48:03 +01:00
862b852f96 Add a new LOG macro in SCC to avoid conflicts with other libraries. 2024-03-14 09:46:01 +01:00
7a70f103f2 updates submodules 2024-03-07 13:58:42 +01:00
9d647b72d7 updates submodules 2024-02-21 07:10:49 +01:00
bd23b776bd updates FW location link 2024-02-21 07:08:46 +01:00
fa79e3f0c9 updates dbt-rise-core with clang-format changes 2024-02-15 10:17:30 +01:00
17f9f06dae updates scc to pull in AXI4 pinlevel target fix 2024-02-08 21:19:42 +01:00
8393aa568f updates dbt-rise-tgc 2024-01-12 11:49:33 +01:00
e4ee3fc7d8 updates scc 2024-01-12 09:36:13 +01:00
5bc46da768 updates submodules 2024-01-12 08:41:30 +01:00
6c0d7d91aa makes TGC-ISS installable 2024-01-10 09:44:18 +01:00
3c6c0337e5 updates scc 2023-12-22 10:49:44 +01:00
4bcad78a22 updates scc 2023-12-20 10:01:37 +01:00
5a121af14a updates iss 2023-12-17 12:56:04 +01:00
e38d3e3b13 updates scc 2023-12-17 12:32:42 +01:00
d4f71de938 updates iss 2023-12-16 18:07:16 +01:00
6418867a28 adds asmjit to test script 2023-12-14 14:28:17 +01:00
8902d96ad4 updates scc 2023-12-09 18:10:27 +01:00
c8d6537fde updates scc 2023-12-09 16:56:25 +01:00
0690f07fca updates submodule 2023-12-02 17:43:19 +01:00
5e0c19f7a0 moves riscv toolchain to riscv64-unknown-elf 2023-12-02 09:23:30 +01:00
940b05e71d apply clang-format 10 fixes 2023-12-01 14:52:03 +01:00
a9d2b5b564 updates submodules to apply clang-format fixes 2023-11-30 11:52:12 +01:00
a8c9b5fe18 updates submodules 2023-11-22 11:53:34 +01:00
9b1f8de430 updates dbt-rise-tgc 2023-11-05 17:19:58 +01:00
d5f5eae880 updates scc 2023-11-05 16:35:01 +01:00
d07614989e updates dbt-rise-tgc and scc 2023-11-05 16:25:27 +01:00
614c8702bf updates scc 2023-11-05 15:39:50 +01:00
5bec3c33b0 updates scc 2023-10-30 20:49:34 +01:00
9235848c6a updates environment setup 2023-10-29 18:57:09 +01:00
4ef49674ec updates .gitignore 2023-10-29 17:13:38 +01:00
a703188c8b removes dbt-rise-plugins submodule 2023-10-29 17:11:52 +01:00
864ccd9165 updates submodules 2023-10-29 17:11:25 +01:00
b48d2b76d2 adapts to changes in submodules 2023-10-29 16:20:38 +01:00
b1c78c19bd update submodules 2023-10-29 16:07:20 +01:00
eda55ae93e updates scc 2023-10-29 15:20:24 +01:00
bff845d5dc updates scc 2023-10-29 14:50:24 +01:00
9560956e8d updates dbt-rise submodules 2023-10-29 14:32:48 +01:00
fbcabc4fd5 updates modules 2023-10-22 15:27:00 +02:00
edb8c6ef5b Merge branch 'develop' of https://git.minres.com/TGFS/TGC-ISS into develop 2023-10-22 15:10:22 +02:00
9fa17e41e5 adds asmjit 2023-10-22 15:10:17 +02:00
6a00ef075d updates config files 2023-10-21 22:03:54 +02:00
49165b2120 updates submodules 2023-10-21 21:32:50 +02:00
4f67fd47c2 updates submodules 2023-10-19 09:45:49 +02:00
74f8d71645 cleans structure and parts of implementation 2023-10-01 18:33:52 +02:00
292bc1d92a updates dbt-rise-tgc 2023-09-30 22:17:41 +02:00
4cb8ca3f61 updates project configuration 2023-09-30 22:11:48 +02:00
73476e4c90 updates dbt-rise-tgc 2023-09-27 07:52:05 +02:00
92d96af651 updates dbt-rise-tgc 2023-09-27 06:20:20 +02:00
b7c3379e19 updates submodules 2023-09-26 20:19:36 +02:00
5198c5f91b updates submodule 2023-09-25 11:01:19 +02:00
b406743206 updates submodule 2023-09-25 09:45:31 +02:00
d29c2bca04 adds newest changes 2023-09-23 11:31:18 +02:00
24 changed files with 1118 additions and 188 deletions

96
.clang-format Normal file
View File

@ -0,0 +1,96 @@
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
...

104
.cproject
View File

@ -14,9 +14,9 @@
<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">
<folderInfo id="cdt.managedbuild.toolchain.gnu.base.1336041151.1615713914" name="/" resourcePath="">
<toolChain id="cdt.managedbuild.toolchain.gnu.base.1297474963" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.base">
<toolChain id="cdt.managedbuild.toolchain.gnu.base.1297474963" name="Linux GCC" nonInternalBuilderId="cmake4eclipse.mbs.builder" 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"/>
<builder buildPath="/TGC-ISS/_build/Debug" id="cmake4eclipse.mbs.builder.1823257054" keepEnvironmentInBuildfile="false" name="CMake Builder" parallelBuildOn="true" parallelizationNumber="unlimited" superClass="cmake4eclipse.mbs.builder"/>
<builder buildPath="/TGC-ISS/build/Debug" id="cmake4eclipse.mbs.builder.1295402556" keepEnvironmentInBuildfile="false" name="CMake Builder" superClass="cmake4eclipse.mbs.builder"/>
<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">
<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">
@ -48,14 +48,14 @@
<def name="CMAKE_BUILD_TYPE" type="STRING" val="${ConfigName}"/>
</defs>
</storageModule>
<storageModule buildDir="build/${ConfigName}" dirtyTs="1692539890623" moduleId="de.marw.cmake4eclipse.mbs.settings">
<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="BUILD_SHARED_LIBS" type="BOOL" val="ON"/>
<def name="CMAKE_INSTALL_PREFIX" type="FILEPATH" val="${ProjDirPath}/install"/>
<def name="WITH_LLVM" type="BOOL" val="ON"/>
<def name="FW_BUILD" type="BOOL" val="ON"/>
<def name="WITH_TCC" type="BOOL" val="ON"/>
<def name="BUILD_COMMON_FW" type="BOOL" val="ON"/>
<def name="ENABLE_CLANG_TIDY" type="BOOL" val="ON"/>
</defs>
</storageModule>
</cconfiguration>
@ -128,7 +128,7 @@
</extensions>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<configuration buildProperties="" description="" id="cdt.managedbuild.toolchain.gnu.base.1336041151.1605951382" name="RelWithDebInfo" optionalBuildProperties="" parent="org.eclipse.cdt.build.core.emptycfg">
<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"/>
@ -164,14 +164,74 @@
<def name="CMAKE_BUILD_TYPE" type="STRING" val="${ConfigName}"/>
</defs>
</storageModule>
<storageModule buildDir="build/${ConfigName}" dirtyTs="1688932648378" moduleId="de.marw.cmake4eclipse.mbs.settings">
<storageModule buildDir="build/${ConfigName}" dirtyTs="1741980051132" moduleId="de.marw.cmake4eclipse.mbs.settings">
<options/>
<defs>
<def name="CMAKE_BUILD_TYPE" type="STRING" val="RelWithDebInfo"/>
<def name="BUILD_SHARED_LIBS" type="BOOL" val="ON"/>
<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"/>
<def name="WITH_LLVM" type="BOOL" val="ON"/>
</defs>
</storageModule>
</cconfiguration>
<cconfiguration id="cdt.managedbuild.toolchain.gnu.base.1336041151.1605951382.761803221">
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.toolchain.gnu.base.1336041151.1605951382.761803221" moduleId="org.eclipse.cdt.core.settings" name="RelWithDebInfo4Prof">
<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.761803221" name="RelWithDebInfo4Prof" optionalBuildProperties="org.eclipse.cdt.docker.launcher.containerbuild.property.selectedvolumes=,org.eclipse.cdt.docker.launcher.containerbuild.property.volumes=" parent="org.eclipse.cdt.build.core.emptycfg">
<folderInfo id="cdt.managedbuild.toolchain.gnu.base.1336041151.1605951382.761803221." name="/" resourcePath="">
<toolChain id="cdt.managedbuild.toolchain.gnu.base.1676282966" 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.199403809" 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.1047317958" keepEnvironmentInBuildfile="false" name="CMake Builder" parallelBuildOn="true" parallelizationNumber="unlimited" superClass="cmake4eclipse.mbs.builder"/>
<tool id="cdt.managedbuild.tool.gnu.archiver.base.1763962491" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
<tool id="cdt.managedbuild.tool.gnu.cpp.compiler.base.300429051" 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.934487129" 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.1430696020" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
</tool>
<tool id="cdt.managedbuild.tool.gnu.c.compiler.base.9511508" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.base">
<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.695529941" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
</tool>
<tool id="cdt.managedbuild.tool.gnu.c.linker.base.1813114373" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.base"/>
<tool id="cdt.managedbuild.tool.gnu.cpp.linker.base.1557756316" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.base">
<inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.536309197" 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.587229911" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.base">
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.1060210827" 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="1727093289061" 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"/>
<def name="ENABLE_GPROF" type="BOOL" val="ON"/>
</defs>
</storageModule>
</cconfiguration>
@ -192,15 +252,37 @@
<resource resourceType="PROJECT" workspacePath="/TGC-ISS"/>
</configuration>
</storageModule>
<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">
<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">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
</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">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
</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 moduleId="org.eclipse.cdt.make.core.buildtargets">
<buildTargets>
<target name="format" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
<buildCommand>make</buildCommand>
<buildArguments>$&lt;cmake4eclipse_dyn&gt;</buildArguments>
<buildTarget>format</buildTarget>
<stopOnError>true</stopOnError>
<useDefaultCommand>true</useDefaultCommand>
<runAllBuilders>true</runAllBuilders>
</target>
</buildTargets>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
</cproject>

10
.envrc Normal file
View File

@ -0,0 +1,10 @@
module load ./Modulefile
distro=`/bin/lsb_release -i -s`
if [ $distro == "CentOS" ]; then
. /opt/rh/devtoolset-8/enable
. /opt/rh/rh-python38/enable
elif [ $distro == "Rocky" ]; then
. /opt/rh/gcc-toolset-11/enable
fi
layout python3
[ -f .envrc.$USER ] && . .envrc.$USER

13
.gitignore vendored
View File

@ -1,5 +1,4 @@
/build/
/Debug/
.settings
/.venv*
/Debug-PA/
@ -10,7 +9,17 @@
*.log
*tcc_jit*.c
*.disass
*.dis
*.objdump
*.asm
*.signature
*.elf
*.trc
/*.core_desc
/fasterDecoding/
*.ll
*.ll
/dbt-rise-plugins
/.direnv
/TGC_C_XRB/
/.envrc.eyck
/.cache

View File

@ -1,177 +1,239 @@
cmake_minimum_required(VERSION 3.16)
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/scc/cmake)
cmake_minimum_required(VERSION 3.20)
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
project(TGFS-ISS VERSION 1.0.0 LANGUAGES CXX)
project(TGC-ISS VERSION 1.0.0 LANGUAGES CXX)
set(WITH_LLVM FALSE CACHE BOOL "Build LLVM based backend")
if(CMAKE_PROJECT_NAME STREQUAL "TGFS-ISS")
###########################################################################
# stand alone build settings
###########################################################################
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)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
set(CMAKE_INSTALL_RPATH "${ORIGIN}")
include(CheckCXXCompilerFlag)
CHECK_CXX_COMPILER_FLAG("-march=native" COMPILER_SUPPORTS_MARCH_NATIVE)
if(COMPILER_SUPPORTS_MARCH_NATIVE)
if("${CMAKE_BUILD_TYPE}" STREQUAL "")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native")
elseif(NOT(${CMAKE_BUILD_TYPE} STREQUAL "RelWithDebInfo"))
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native")
endif()
endif()
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
set(warnings "-Wall -Wextra -Werror")
set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG")
set(CMAKE_C_FLAGS_RELEASE "-O3 -DNDEBUG")
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
set(warnings "/W4 /WX /EHsc")
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
boost:fPIC=True
boost:shared=${SHARED_FLAG}
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)
set(CM_VERSION 3.20.5)
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.13
)
set(CONAN_PACKAGE_OPTIONS fmt:header_only=True ${CONAN_BOOST_OPTIONS})
if(CMAKE_PROJECT_NAME STREQUAL "TGC-ISS")
###########################################################################
# stand alone build settings
###########################################################################
set(CORE_NAME TGC5C CACHE STRING "The core to build the ISS for" )
option(BUILD_COMMON_FW "Enable the automatic download and build of some firmware to run on the ISS" OFF)
option(ENABLE_SANITIZER "Enable address sanitizer" OFF)
option(ENABLE_GRPOF "Enable gprof instrumentation" OFF)
option(ENABLE_CLANG_TIDY "Add clang-tidy and clang-format automatically to builds" OFF)
option(WITH_TCC "Build TCC backend" OFF)
option(WITH_LLVM "Build LLVM backend" OFF)
option(WITH_ASMJIT "Build ASMJIT backend" ON)
option(PORTABLE "Build executable without platform specific optimizations" OFF)
if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
list(APPEND CONAN_PACKAGE_LIST tcc/0.9.27)
option(WITH_TCC "Build TCC backend" ON)
endif()
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
set(CMAKE_INSTALL_RPATH "${ORIGIN}")
include(CheckCXXCompilerFlag)
CHECK_CXX_COMPILER_FLAG("-march=native" COMPILER_SUPPORTS_MARCH_NATIVE)
if(COMPILER_SUPPORTS_MARCH_NATIVE AND NOT PORTABLE)
message(STATUS "Applying platform specific optimizations")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native")
endif()
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
set(warnings "-Wall -Wextra -Werror")
set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG")
set(CMAKE_C_FLAGS_RELEASE "-O3 -DNDEBUG")
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
set(warnings "/W4 /WX /EHsc")
endif()
if(ENABLE_SANITIZER)
list(APPEND CMAKE_C_FLAGS "-fsanitize=address")
list(APPEND CMAKE_CXX_FLAGS "-fsanitize=address")
list(APPEND CMAKE_EXE_LINKER_FLAGS "-fsanitize=address")
list(APPEND CMAKE_SHARED_LINKER_FLAGS "-fsanitize=address")
endif()
if(ENABLE_GPROF)
list(APPEND CMAKE_C_FLAGS "-pg")
list(APPEND CMAKE_CXX_FLAGS "-pg")
list(APPEND CMAKE_EXE_LINKER_FLAGS "-pg")
list(APPEND CMAKE_SHARED_LINKER_FLAGS "-pg")
endif()
include(GNUInstallDirs)
include(ConanInline)
if(BUILD_SHARED_LIBS)
set(SHARED_FLAG "True")
else()
set(SHARED_FLAG "False")
endif()
set(CONAN_BOOST_OPTIONS
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)
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.11
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(WITH_LLVM)
list(APPEND CONAN_PACKAGE_LIST llvm-core/13.0.0)
list(APPEND CONAN_PACKAGE_OPTIONS libiconv:shared=True)
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()
if(WITH_LLVM)
list(APPEND CONAN_PACKAGE_LIST llvm-core/${LLVM_VERSION})
list(APPEND CONAN_PACKAGE_OPTIONS libiconv:shared=True llvm-code:targets=X85)
endif()
if(WITH_ASMJIT)
list(APPEND CONAN_PACKAGE_LIST asmjit/cci.20240531)
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)
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 ${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 ${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()
###########################################################################
# 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)
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})
find_package(Threads)
find_package(ZLIB)
if(USE_CWR_SYSTEMC)
include(SystemCPackage)
endif()
if(FW_BUILD)
include(FetchContent)
set(FETCHCONTENT_BASE_DIR ${CMAKE_CURRENT_BINARY_DIR}/..)
FetchContent_Declare(
riscvfw
GIT_REPOSITORY https://git.minres.com/VP/Firmwares.git
GIT_TAG main
UPDATE_DISCONNECTED FALSE
)
FetchContent_GetProperties(riscvfw)
if(NOT riscvfw_POPULATED)
FetchContent_Populate(riscvfw)
endif()
add_subdirectory(${riscvfw_SOURCE_DIR})
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
###########################################################################
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")
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)
set(LLVM_META $ENV{CONAN_USER_HOME}/.conan/data/llvm-core/${LLVM_VERSION}/_/_/metadata.json)
endif()
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 ${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()
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_ROOT ${CONAN_BOOST_ROOT})
find_package(Threads)
find_package(ZLIB)
if(USE_CWR_SYSTEMC)
include(SystemCPackage)
endif()
###############################################################################
# setup clang-format and clang-tidy
###############################################################################
if (ENABLE_CLANG_TIDY)
set(CLANG_FORMAT_EXCLUDE_PATTERNS "build" "install")
find_package(ClangFormat)
find_program (CLANG_TIDY_EXE NAMES "clang-tidy" PATHS /usr/bin )
if (CLANG_TIDY_EXE)
message(STATUS "clang-tidy found: ${CLANG_TIDY_EXE}")
set(CLANG_TIDY_CHECKS "-*")
set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-avoid-bind.PermissiveParameterList")
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)
else()
message(WARNING "clang-tidy not found!")
set(CMAKE_CXX_CLANG_TIDY "" CACHE STRING "" FORCE) # delete it
endif()
endif()
if(FW_BUILD)
include(FetchContent)
set(FETCHCONTENT_BASE_DIR ${CMAKE_CURRENT_BINARY_DIR}/..)
FetchContent_Declare(
riscvfw
GIT_REPOSITORY https://git.minres.com/Firmware/Firmwares.git
GIT_TAG develop
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(scc)
add_subdirectory(dbt-rise-tgc)
if(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/dbt-rise-plugins)
add_subdirectory(dbt-rise-plugins)
add_subdirectory(dbt-rise-plugins)
endif()
include(CTest)

39
CMakePresets.json Normal file
View File

@ -0,0 +1,39 @@
{
"version": 3,
"cmakeMinimumRequired": {
"major": 3,
"minor": 21,
"patch": 0
},
"configurePresets": [
{
"name": "Debug",
"displayName": "Debug build",
"generator": "Ninja",
"binaryDir": "${sourceDir}/build/${presetName}",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"CMAKE_INSTALL_PREFIX": "${sourceDir}/install/${presetName}",
"CMAKE_EXPORT_COMPILE_COMMANDS": "ON"
}
},
{
"name": "Release",
"displayName": "Release build",
"generator": "Ninja",
"binaryDir": "${sourceDir}/build/${presetName}",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"CMAKE_INSTALL_PREFIX": "${sourceDir}/install/${presetName}",
"CMAKE_EXPORT_COMPILE_COMMANDS": "ON"
}
}
],
"buildPresets": [
{
"name": "Debug",
"description": "Debug build",
"displayName": "Debug"
}
]
}

114
Jenkinsfile vendored Normal file
View File

@ -0,0 +1,114 @@
void checkout_project(String repoUrl, String branch = 'develop') {
checkout([
$class: 'GitSCM',
branches: [
[name: "*/${branch}"]
],
extensions: [
[$class: 'CleanBeforeCheckout'],
[$class: 'SubmoduleOption', disableSubmodules: false, parentCredentials: true, recursiveSubmodules: true, reference: '', trackingSubmodules: false, shallow: true]
],
submoduleCfg: [],
userRemoteConfigs: [
[credentialsId: 'gitea-jenkins', url: repoUrl]
]
])
}
pipeline {
agent any
stages {
stage("Checkout and build"){
agent {docker { image 'ubuntu-riscv' }}
stages{
stage("Checkout TGC-Compliance and TGC-GEN"){
steps {
sh 'rm -rf * .??* '
checkout_project("https://git.minres.com/TGFS/TGC-ISS.git", "develop")
dir("TGC-COMPLIANCE"){
checkout_project("https://git.minres.com/TGFS/TGC-COMPLIANCE.git", "master")
}
dir("TGC-GEN"){
checkout_project("https://git.minres.com/TGFS/TGC-GEN.git", "develop")
}
}
}
stage("Generate cores and build TGC-ISS"){
steps {
sh '''
for core in TGC5A TGC5B TGC5D TGC5E TGC5F RV32GC; do
for backend in interp llvm tcc asmjit; do
TGC-GEN/scripts/generate_iss.sh -o dbt-rise-tgc/ -c $core -b ${backend} TGC-GEN/CoreDSL/${core}.core_desc
done
done
for core in TGC6B TGC6C TGC6D TGC6E RV64GC; do
for backend in interp llvm asmjit; do
TGC-GEN/scripts/generate_iss.sh -o dbt-rise-tgc/ -c $core -b ${backend} TGC-GEN/CoreDSL/${core}.core_desc
done
done
'''
sh 'conan profile new default --detect --force'
sh 'rm -rf build'
sh 'cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DWITH_ASMJIT=ON -DWITH_TCC=ON -DWITH_LLVM=ON'
sh 'cmake --build build -j'
sh 'build/dbt-rise-tgc/tgc-sim --isa ?'
}
}
}
}
stage("Run test suite") {
agent {
docker {
image 'git.minres.com/tooling/riscof_sail:latest'
args ' -e CONAN_USER_HOME=/var/jenkins_home/workspace/riscof_sail'
}
}
stages {
stage('ACT 32bit') {
matrix {
axes {
axis {
name 'CORE'
values 'TGC5A', 'TGC5B', 'TGC5C', 'TGC5D', 'TGC5E', 'TGC5F', 'RV32GC'
}
axis {
name 'BACKEND'
values 'interp', 'llvm', 'tcc', 'asmjit'
}
}
stages {
stage('Run riscof') {
steps {
sh "mkdir -p ${BACKEND}"
sh "python3 TGC-COMPLIANCE/run_act.py -core ${CORE} -sim build/dbt-rise-tgc/tgc-sim -w ${BACKEND} --local --backend ${BACKEND}"
}
}
}
}
}
stage('ACT 64bit') {
matrix {
axes {
axis {
name 'CORE'
values 'TGC6B', 'TGC6C', 'TGC6D', 'TGC6E', 'RV64GC'
}
axis {
name 'BACKEND'
values 'interp', 'llvm', 'asmjit'
}
}
stages {
stage('Run riscof') {
steps {
sh "mkdir -p ${BACKEND}"
sh "python3 TGC-COMPLIANCE/run_act.py -core ${CORE} -sim build/dbt-rise-tgc/tgc-sim -w ${BACKEND} --local --backend ${BACKEND}"
}
}
}
}
}
}
}
}
}

View File

@ -13,9 +13,10 @@ if { $distro == "CentOS" && ![info exists ::env(PROJECT)] && ![info exists ::env
puts stderr "Don't forget to execute 'scl enable devtoolset-7 bash'"
}
module load tools/utilities
module load tools/cmake
#module load tools/gcc-riscv64/9.2.0
module load tools/gcc-riscv32-unknown-elf/11
module load tools/clang
module load tools/gcc-riscv64-unknown-elf/13
setenv PROJECT TGFS-ISS

View File

@ -14,7 +14,7 @@ This ISS is based in DBT-RISE, a library to allow rapid ISS creation.
```
pip3 install --user conan==1.59
pip3 install --user 'conan<2.0'
```
@ -31,10 +31,11 @@ This ISS is based in DBT-RISE, a library to allow rapid ISS creation.
Using conan for the first time you need to create a profile:
```
conan profile create default --detect
```sh
conan profile new --detect default
conan remote add gitea https://git.minres.com/api/packages/Tooling/conan
```
* checkout source from git

107
cmake/ConanInline.cmake Normal file
View File

@ -0,0 +1,107 @@
set(CONAN_CMAKE_LIST_DIR ${CMAKE_CURRENT_BINARY_DIR})
macro(conan_check)
# for backwards compatibility
cmake_parse_arguments(MARGS "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN} )
find_program(CONAN conan)
if(NOT EXISTS ${CONAN})
message(FATAL_ERROR "Conan is required. Please see README.md")
return()
endif()
execute_process(COMMAND ${CONAN} --version
OUTPUT_VARIABLE CONAN_VERSION_OUTPUT)
string(REGEX MATCHALL "[0-9.]+" CONAN_VERSION ${CONAN_VERSION_OUTPUT})
if (NOT (CONAN_VERSION VERSION_GREATER_EQUAL 1.36.0))
message(FATAL_ERROR "Please upgrade your conan to a version greater or equal 1.36")
endif()
if(NOT EXISTS ${CONAN_CMAKE_LIST_DIR}/conan.cmake)
message("Downloading conan.cmake to ${CONAN_CMAKE_LIST_DIR}")
set(URL https://raw.githubusercontent.com/conan-io/cmake-conan/0.18.1/conan.cmake)
file(DOWNLOAD ${URL} ${CONAN_CMAKE_LIST_DIR}/conan.cmake TIMEOUT 60 STATUS DOWNLOAD_STATUS)
list(GET DOWNLOAD_STATUS 0 STATUS_CODE)
list(GET DOWNLOAD_STATUS 1 ERROR_MESSAGE)
if(NOT (${STATUS_CODE} EQUAL 0))
# Exit CMake if the download failed, printing the error message.
message(FATAL_ERROR "Error occurred during download: ${ERROR_MESSAGE}")
endif()
if(NOT EXISTS ${CONAN_CMAKE_LIST_DIR}/conan.cmake)
message(FATAL_ERROR "Could not download conan.cmake. Please check your internet connection or proxy settings")
endif()
file (SIZE ${CONAN_CMAKE_LIST_DIR}/conan.cmake CONAN_CMAKE_SIZE)
if(${CONAN_CMAKE_SIZE} EQUAL 0)
message(FATAL_ERROR "Could not download conan.cmake. Please check your internet connection or proxy settings")
endif()
endif()
if("${CMAKE_BUILD_TYPE}" STREQUAL "")
set(CMAKE_BUILD_TYPE Release)
endif()
include(${CONAN_CMAKE_LIST_DIR}/conan.cmake)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_BINARY_DIR})
endmacro()
macro(conan_setup)
set(options TARGETS)
cmake_parse_arguments(MARGS "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN} )
set(conanfile_cmake_paths ${CMAKE_BINARY_DIR}/conan_paths.cmake)
set(conanfile_cmake ${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
if(EXISTS ${CMAKE_CURRENT_BINARY_DIR}/conanbuildinfo.cmake)
set(conanfile_cmake ${CMAKE_CURRENT_BINARY_DIR}/conanbuildinfo.cmake)
endif()
if(EXISTS "${conanfile_cmake_paths}")
include(${conanfile_cmake_paths})
elseif(EXISTS "${conanfile_cmake}")
include(${conanfile_cmake})
if( MARGS_TARGETS)
conan_basic_setup(TARGETS)
else()
conan_basic_setup()
endif()
endif()
endmacro()
function(conan_configure)
conan_cmake_generate_conanfile(OFF ${ARGV})
endfunction()
macro(conan_install)
set(options BUILD_TYPE BUILD)
set(oneValueArgs BUILD_TYPE BUILD)
cmake_parse_arguments(MARGS "" "${oneValueArgs}" "" ${ARGN} )
if(MARGS_BUILD_TYPE)
conan_cmake_autodetect(settings BUILD_TYPE ${MARGS_BUILD_TYPE})
else()
conan_cmake_autodetect(settings BUILD_TYPE)
endif()
if(CMAKE_CXX_STANDARD)
list(APPEND settings compiler.cppstd=${CMAKE_CXX_STANDARD})
endif()
if(USE_NCSC_SYSTEMC)
list(APPEND settings compiler.libcxx=libstdc++)
endif()
if (NOT "$ENV{CONAN_PROFILE_NAME}" STREQUAL "")
set(CONAN_PROFILE "$ENV{CONAN_PROFILE_NAME}" CACHE INTERNAL "Copied from environment variable")
else()
set(CONAN_PROFILE "default" CACHE INTERNAL "Copied from environment variable")
endif()
if(MARGS_BUILD)
conan_cmake_install(PATH_OR_REFERENCE .
BUILD ${MARGS_BUILD}
PROFILE_BUILD ${CONAN_PROFILE}
SETTINGS ${settings})
else()
conan_cmake_install(PATH_OR_REFERENCE .
BUILD missing
PROFILE_BUILD ${CONAN_PROFILE}
SETTINGS ${settings})
endif()
endmacro()

View File

@ -0,0 +1,34 @@
# Find Clang format
#
#
if(NOT CLANG_FORMAT_BIN_NAME)
set(CLANG_FORMAT_BIN_NAME clang-format)
endif()
# if custom path check there first
if(CLANG_FORMAT_ROOT_DIR)
find_program(CLANG_FORMAT_BIN
NAMES
${CLANG_FORMAT_BIN_NAME}
PATHS
"${CLANG_FORMAT_ROOT_DIR}"
NO_DEFAULT_PATH)
else()
find_program(CLANG_FORMAT_BIN NAMES ${CLANG_FORMAT_BIN_NAME})
endif()
include(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(
ClangFormat
DEFAULT_MSG
CLANG_FORMAT_BIN)
mark_as_advanced(
CLANG_FORMAT_BIN)
if(ClangFormat_FOUND)
# A CMake script to find all source files and setup clang-format targets for them
include(clang-format)
else()
message("clang-format not found. Not setting up format targets")
endif()

40
cmake/clang-format.cmake Normal file
View File

@ -0,0 +1,40 @@
# additional target to perform clang-format run, requires clang-format
set(CLANG_FORMAT_CXX_FILE_EXTENSIONS ${CLANG_FORMAT_CXX_FILE_EXTENSIONS} *.cpp *.h *.cxx *.hxx *.hpp *.cc *.ipp)
file(GLOB_RECURSE ALL_SOURCE_FILES ${CLANG_FORMAT_CXX_FILE_EXTENSIONS})
# Don't include some common build folders
set(CLANG_FORMAT_EXCLUDE_PATTERNS ${CLANG_FORMAT_EXCLUDE_PATTERNS} "/CMakeFiles/" "cmake")
# get all project files file
foreach (SOURCE_FILE ${ALL_SOURCE_FILES})
foreach (EXCLUDE_PATTERN ${CLANG_FORMAT_EXCLUDE_PATTERNS})
string(FIND ${SOURCE_FILE} ${EXCLUDE_PATTERN} EXCLUDE_FOUND)
if (NOT ${EXCLUDE_FOUND} EQUAL -1)
list(REMOVE_ITEM ALL_SOURCE_FILES ${SOURCE_FILE})
endif ()
endforeach ()
endforeach ()
set(FORMAT_TARGET_NAME format)
if(NOT CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME)
set(FORMAT_TARGET_NAME format-${PROJECT_NAME})
endif()
add_custom_target(${FORMAT_TARGET_NAME}
COMMENT "Running clang-format to change files"
COMMAND ${CLANG_FORMAT_BIN} -style=file -i ${ALL_SOURCE_FILES}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)
add_custom_target(${FORMAT_TARGET_NAME}-check
COMMENT "Checking clang-format changes"
# Use ! to negate the result for correct output
COMMAND !
${CLANG_FORMAT_BIN}
-style=file
-output-replacements-xml
${ALL_SOURCE_FILES}
| grep -q "replacement offset"
)

5
docs/.gitignore vendored Normal file
View File

@ -0,0 +1,5 @@
*.log
*.dis
*.asm
*.ll
*tcc_*

43
docs/offsets.txt Normal file
View File

@ -0,0 +1,43 @@
X0 (zero) : 0 (0x00)
X1 (ra) : 4 (0x04)
X2 (sp) : 8 (0x08)
X3 (gp) : 12 (0x0c)
X4 (tp) : 16 (0x10)
X5 (t0) : 20 (0x14)
X6 (t1) : 24 (0x18)
X7 (t2) : 28 (0x1c)
X8 (s0/fp): 32 (0x20)
X9 (s1) : 36 (0x24)
X10 (a0) : 40 (0x28)
X11 (a1) : 44 (0x2c)
X12 (a2) : 48 (0x30)
X13 (a3) : 52 (0x34)
X14 (a4) : 56 (0x38)
X15 (a5) : 60 (0x3c)
X16 (a6) : 64 (0x40)
X17 (a7) : 68 (0x44)
X18 (s2) : 72 (0x48)
X19 (s3) : 76 (0x4c)
X20 (s4) : 80 (0x50)
X21 (s5) : 84 (0x54)
X22 (s6) : 88 (0x58)
X23 (s7) : 92 (0x5c)
X24 (s8) : 96 (0x60)
X25 (s9) : 100 (0x64)
X26 (s10) : 104 (0x68)
X27 (s11) : 108 (0x6c)
X28 (t3) : 112 (0x70)
X29 (t4) : 116 (0x74)
X30 (t5) : 120 (0x78)
X31 (t6) : 124 (0x7c)
PC : 128 (0x80)
NEXT_PC : 132 (0x84)
PRIV : 136 (0x88)
DPC : 137 (0x89)
trap_state : 141 (0x8d)
pending_trap : 145 (0x91)
icount : 149 (0x95)
cycle : 157 (0x9d)
instret : 165 (0xa5)
instruction : 173 (0xad)
last_branch : 177 (0xb1)

1
requirements.txt Normal file
View File

@ -0,0 +1 @@
conan==1.59

1
scc

Submodule scc deleted from baba1214d3

View File

@ -0,0 +1,75 @@
import argparse
import os
import subprocess
def get_address_from_objdump(elf_file, symbol):
result = subprocess.run(
["riscv64-unknown-elf-objdump", "-t", elf_file], capture_output=True, text=True
)
for line in result.stdout.splitlines():
if symbol in line:
return int(line.split()[0], 16)
return None
def annotate_dump(signature_file, elf_file):
begin_signature = get_address_from_objdump(elf_file, "begin_signature")
end_signature = get_address_from_objdump(elf_file, "end_signature")
if begin_signature is None or end_signature is None:
print(f"Symbols not found in {elf_file}")
return
address = begin_signature
annotated_lines = []
with open(signature_file, "r") as sig_file:
for line in sig_file:
annotated_lines.append(f"{hex(address)}: {line.strip()}")
address += 4
output_file = signature_file + ".annotated"
with open(output_file, "w") as out_file:
out_file.write("\n".join(annotated_lines))
print(f"Annotated file created: {output_file}")
def process_directory(root_dir):
for subdir, _, files in os.walk(root_dir):
elf_file = None
signature_file = None
for file in files:
if file.endswith(".elf"):
elf_file = os.path.join(subdir, file)
elif file.endswith(".signature"):
signature_file = os.path.join(subdir, file)
if elf_file and signature_file:
annotate_dump(signature_file, elf_file)
elif signature_file:
print(f"No ELF file found for {signature_file}")
def main():
parser = argparse.ArgumentParser(
description="""
Annotate memory dumps with addresses. Parses all subdirectories from the given root.
Expects a .signature with a corresponding .elf in the same directory.
Designed to annotate riscof signatures."""
)
parser.add_argument(
"root_dir", type=str, help="Root directory to search for .signature files"
)
args = parser.parse_args()
if not os.path.isdir(args.root_dir):
print("Invalid root directory")
return
process_directory(args.root_dir)
if __name__ == "__main__":
main()

View File

@ -0,0 +1,157 @@
import argparse
import os
import shutil
import subprocess
from pathlib import Path
def validate_elf_file(filepath: str) -> str:
if not os.path.isfile(filepath):
raise argparse.ArgumentTypeError(f"{filepath} is not a valid file.")
# Use the 'file' command to check if it's an ELF file
result = subprocess.run(
["file", filepath], capture_output=True, text=True, check=False
)
if "ELF" not in result.stdout:
raise argparse.ArgumentTypeError(f"{filepath} is not a valid ELF file.")
return filepath
def run_test_and_move_output(elf_file: str, backend: str, isa: str = "tgc5c") -> None:
# Call 'test' with the specified backend mode
os.chdir(Path(__file__).parent.parent)
sim_path = "build/Debug/dbt-rise-tgc/tgc-sim"
run_command = [
sim_path,
"-f",
elf_file,
"--backend",
backend,
"--isa",
isa,
"-p",
"build/Debug/dbt-rise-plugins/pctrace/pctrace.so=dbt-rise-tgc/contrib/instr/TGC5C_instr.yaml",
"-i",
"10000",
]
print(f"Running: \n{' '.join(run_command)}")
try:
subprocess.run(run_command, check=False, timeout=10)
except subprocess.TimeoutExpired:
print("Execution timed out")
# Move the output.trc file
if os.path.exists("output.trc"):
shutil.move("output.trc", f"Debug/{backend}.trc")
else:
print(
f"output.trc does not exist after running with backend {backend}, so it cannot be renamed."
)
def create_shortened_diff_files(backend: str) -> None:
file1_path = "Debug/interp.trc"
file2_path = f"Debug/{backend}.trc"
def validate_file(filepath: str) -> str:
if not os.path.isfile(filepath):
raise ValueError(f"{filepath} is not a valid file.")
return filepath
file1_path = validate_file(file1_path)
file2_path = validate_file(file2_path)
with open(file1_path, "r", encoding="utf8") as file1, open(
file2_path, "r", encoding="utf8"
) as file2:
lines1 = file1.readlines()
lines2 = file2.readlines()
diff_index = -1
for index, (line1, line2) in enumerate(zip(lines1, lines2)):
if line1 != line2:
diff_index = index
break
if diff_index == -1:
print("The files are identical.")
return
start_index = max(0, diff_index - 5)
end_index = min(len(lines1), diff_index + 6)
shortened_lines1 = lines1[start_index:end_index]
shortened_lines2 = lines2[start_index:end_index]
with open("Debug/short_interp.trc", "w", encoding="utf8") as short_file1:
short_file1.writelines(shortened_lines1)
with open(f"Debug/short_{backend}.trc", "w", encoding="utf8") as short_file2:
short_file2.writelines(shortened_lines2)
def create_disassembly(elf_file_path: str) -> None:
def validate_file(filepath: str) -> str:
if not os.path.isfile(filepath):
raise ValueError(f"{filepath} is not a valid file.")
return filepath
elf_file_path = validate_file(elf_file_path)
output_file_path = "Debug/dut.dis"
with open(output_file_path, "w", encoding="utf8") as output_file:
subprocess.run(
[
"riscv64-unknown-elf-objdump",
"-d",
"-Mnumeric",
"-Mno-aliases",
elf_file_path,
],
stdout=output_file,
check=True,
)
def main(args: argparse.Namespace) -> None:
elf_file = args.elf_file
backend = args.backend
isa = args.isa
# Set environment variable
os.environ["REGDUMP"] = "True"
# Run the tests and move the output files
run_test_and_move_output(elf_file, "interp", isa)
run_test_and_move_output(elf_file, backend, isa)
create_shortened_diff_files(backend)
create_disassembly(elf_file)
if __name__ == "__main__":
# sys.exit(
# "This script needs to be adapted, it assumed to be in a directory named 'Debug'"
# )
parser = argparse.ArgumentParser(
description="Process an ELF file with a specified backend. Generates register traces for interp and the specified backend"
)
parser.add_argument(
"elf_file", type=validate_elf_file, help="The ELF file to be processed."
)
parser.add_argument(
"--backend",
type=str,
default="asmjit",
help="The backend to be used. Default is asmjit.",
required=False,
)
parser.add_argument(
"--isa",
type=str,
default="tgc5c",
help="The isa to be used. Default 'tgc5c'",
required=False,
)
main(args=parser.parse_args())

View File

@ -17,7 +17,7 @@ function print_help {
echo " -t set build type"
}
SIM_ARGS="-v1"
BACKENDS=("interp" "tcc" "llvm")
BACKENDS=("interp" "tcc" "llvm" "asmjit")
DEBUG=0
BUILD_TYPE=Debug
while getopts 'b:s:hvt:' c
@ -36,7 +36,7 @@ do
done
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
ROOT_DIR=$DIR
ROOT_DIR="$(dirname "$DIR")"
RISCV_TEST=$ROOT_DIR/build/riscv-tests
# prepare riscv-test binaries

View File

@ -0,0 +1,29 @@
import argparse
import re
def simplify_trace(input_file, output_file):
with open(input_file, "r") as infile, open(output_file, "w") as outfile:
for line in infile:
# Enhanced regex to match the instruction number, mode, and PC
match = re.search(r"\[\d+\] \[[MI]\]: (0x[0-9A-Fa-f]+)", line)
if match:
pc = match.group(1).lower()
outfile.write(f"{pc}\n")
def main():
parser = argparse.ArgumentParser(
description="Simplify a trace from an instruction set simulator."
)
parser.add_argument("input_file", type=str, help="The input trace file")
parser.add_argument(
"output_file", type=str, help="The output file for the simplified trace"
)
args = parser.parse_args()
simplify_trace(args.input_file, args.output_file)
if __name__ == "__main__":
main()

View File

@ -0,0 +1,26 @@
import argparse
def simplify_trace(input_file, output_file):
with open(input_file, "r") as infile, open(output_file, "w") as outfile:
for line in infile:
# Split the line by the first comma and take the PC part
pc = line.split(",")[0].strip().lower()
outfile.write(f"{pc}\n")
def main():
parser = argparse.ArgumentParser(
description="Simplify traces from instruction set simulators."
)
parser.add_argument("input_file", type=str, help="The input trace file")
parser.add_argument(
"output_file", type=str, help="The output file for the simplified trace"
)
args = parser.parse_args()
simplify_trace(args.input_file, args.output_file)
if __name__ == "__main__":
main()