Commit Graph

241 Commits

Author SHA1 Message Date
Peter Rugg
f0bcd2ccd1 Don't write on CSpecialRW from R0 2020-05-11 23:52:04 +01:00
Peter Rugg
ec9f19dc26 Disable assert since normal instructions can read SCRs 2020-05-11 22:39:12 +01:00
Peter Rugg
20eb1129b1 Complete PCC checks 2020-05-11 17:25:21 +01:00
Peter Rugg
0ee9c65f3a Forward cap-only instructions to the ALU 2020-05-11 17:24:43 +01:00
Peter Rugg
461ca6a703 Merge branch 'CHERI' into pdr32-wip 2020-05-11 14:08:42 +01:00
Peter Rugg
f5ec436d19 Bump cheri-cap-lib 2020-05-07 16:34:09 +01:00
Peter Rugg
27947f4df7 Refactoring around SCRs 2020-05-07 16:19:26 +01:00
jon
77c7a6f3c0 Use the existing functions for casting. 2020-05-07 13:20:11 +01:00
jon
e3664c2bfd Do sign extension properly on loads. 2020-05-07 12:17:14 +01:00
jon
9c0130a200 Support for permissions and bounds checks for memory operations, taking
the cap mode into account.
2020-05-06 18:48:44 +01:00
jon
cbb0d859c7 Feed capability checks and bounds checks into the memory pipe and back
into the reorder buffer.
2020-05-05 18:28:28 +01:00
jon
500811430b Initial support for decoding Capability Memory instructions. 2020-05-05 12:23:10 +01:00
jon
21d1207e6b The beginnings of an implementation of LQ and SQ.
Also a bug-fix to unseal nextPCC for control flow instructions, which
should only affect CCall (which was leaving PCC sealed).
2020-05-01 17:26:41 +01:00
jon
0177c2cd6e Use the bounds of PCC to check legacy control flow instructions rather
than the bounds of the newPCC after C(Set/Inc)Offset, which may have
become unrepresentable.
2020-05-01 12:17:20 +01:00
jon
90d9d7cbc7 Move back to considering the instruction width when checking PCC. 2020-04-30 15:33:01 +01:00
Alexandre Joannou
b70498e00a Try new types to hold capabilities 2020-04-30 14:07:37 +01:00
jon
0b68498940 Fix interface with special capability register file trap handling.
Call the correct trap function, and report the correct privilege level.
2020-04-30 12:00:55 +01:00
Marno van der Maas
6dff23f30a Added BLUESPECDIR to read me 2020-04-30 11:56:13 +01:00
jon
44199a841b Only check the bounds of nextPc if the branch is taken... 2020-04-29 18:34:02 +01:00
jon
1439fe98c7 Fix 2 bugs.
Restore from sepc on sret.
To "inclusive" bounds check on Jumps and Branches.
2020-04-29 13:42:23 +01:00
jon
d3e0908785 Check PCC bounds in rename. 2020-04-28 19:08:07 +01:00
Marno van der Maas
68d4afa8c9 Added submodule update to read me 2020-04-28 14:58:35 +01:00
Marno van der Maas
1cf28c0d1d Added link to verilator build instructions 2020-04-28 14:41:01 +01:00
jon
ab6b8966db Bounds-check legacy jalr and br correctly. 2020-04-28 11:47:09 +01:00
jon
f63d55d4e5 Fix bug; consistently treat mepc as the offset of mepcc.
Also remove PCC from the SCR file.
2020-04-27 17:36:02 +01:00
Alexandre Joannou
e5b7ba6b13 Fixes to build with cap PCC for non RVFI-DII case 2020-04-27 16:48:34 +01:00
jon
d24750f0ec Bump the capability library. 2020-04-27 15:56:48 +01:00
Alexandre Joannou
1a3915d8a2 Fix display message when running the dependency script 2020-04-27 15:27:16 +01:00
jon
13d020cb9e Merge branch 'parallel-build' into CHERI 2020-04-27 15:19:05 +01:00
jon
5693af05e5 Changes to make PCC consistent.
Specifically, attach the bounds to PC all the way back into the branch predictors.
2020-04-27 15:13:36 +01:00
Alexandre Joannou
dfde021eb6 Avoid creation of outputfile on failure of dependency script + add beri license header 2020-04-24 15:09:04 +01:00
jon
b31c299da6 Merge branch 'parallel-build' of https://github.com/CTSRD-CHERI/Toooba into parallel-build 2020-04-24 11:48:15 +01:00
jon
6222ff6c9a Merge branch 'CHERI' into parallel-build 2020-04-24 11:47:27 +01:00
jon
2251457840 Implement target bounds-check for CJALR. 2020-04-23 17:54:18 +01:00
Peter Rugg
df7dde5759 Bump cheri-cap-lib 2020-04-23 15:44:47 +01:00
Alexandre Joannou
370ed61bc4 Integrate the generation of dependenices to Makefiles 2020-04-23 14:55:28 +01:00
Peter Rugg
28c09ef1df Factor out SCR definitions 2020-04-23 13:15:26 +01:00
jon
92e3216c69 Don't use special recursive build for the top level, as this just rebuilds everything. 2020-04-23 10:42:45 +01:00
Alexandre Joannou
aa79240629 generalise genDependencies a bit with env variables (no obvious getoptsin tcl AFAIK) 2020-04-23 02:04:19 +01:00
jon
f6b7132d4f Makefile updates to do a parallel build, including the tcl script to generate a dependency graph using the Bluespec compiler (which was written by Alexandre). 2020-04-22 22:44:19 +01:00
Peter Rugg
1859e86b4e Merge branch 'pdr32-wip' into HEAD 2020-04-22 18:11:37 +01:00
Peter Rugg
3b30d2db36 Add BuildCap unsealing 2020-04-22 15:52:23 +01:00
Peter Rugg
8cc8f71cb9 Perform bounds check on requested length rather than rounded length.
This prevents issues with overflow in the top, and should be correct
based on the rounding used in the SetBounds function.
2020-04-22 14:27:11 +01:00
Peter Rugg
a89a606a6d Factor out Opcodes and CSRs into separate files 2020-04-21 20:36:56 +01:00
Peter Rugg
3693326b62 Don't sign extend CSetBoundsImm immediate 2020-04-21 16:45:04 +01:00
Peter Rugg
8a4fa786dd Add CToPtr special case 2020-04-21 13:52:33 +01:00
Peter Rugg
1773530c72 Attempt to enable AUIPCC 2020-04-20 23:11:58 +01:00
Peter Rugg
923d4915cb Make SetBounds legal 2020-04-20 23:05:26 +01:00
Peter Rugg
8e01cf68df More concise FShow for CapChecks 2020-04-20 21:28:09 +01:00
Peter Rugg
b4be80eba1 Bounds Check fixes 2020-04-20 21:23:42 +01:00