-
Notifications
You must be signed in to change notification settings - Fork 18
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Many updates: * Added pruning pass to remove dead/unreachable code * Added backend to generate an extension-specific document * Removed dependence on riscv-opcodes; all instruction .yaml files have their encoding now * Updated schema to be more version-centric with extensions * Started process of refactoring so that AstNodes don't have any irrelevant SyntaxNodes * Added some unit tests for the IDL compiler * Numerous bug fixes
- Loading branch information
Showing
342 changed files
with
35,091 additions
and
14,390 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,5 @@ | ||
require: rubocop-minitest | ||
|
||
AllCops: | ||
TargetRubyVersion: 3.2.3 | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,96 @@ | ||
# yaml-language-server: $schema=../../schemas/csr_schema.json | ||
|
||
vstval: | ||
long_name: Virtual supervisor Trap Value | ||
address: 0x243 | ||
virtual_address: 0x143 | ||
description: Holds trap-specific information | ||
priv_mode: S | ||
length: VSXLEN | ||
definedBy: H | ||
fields: | ||
VALUE: | ||
location_rv32: 31-0 | ||
location_rv64: 63-0 | ||
description: | | ||
Written with trap-specific information when a trap is taken into VS-mode. | ||
The values are: | ||
!=== | ||
! Exception type ! Value | ||
! [0] Instruction address misaligned ! The misaligned virtual PC (same as the value written to `mepc`). | ||
! [1] Instruction access fault ! The <% if ext?(:C) %> portion of the <% end %> virtual PC causing the access fault <%- unless ext?(:C) -%>(same as the value written to `mepc`)<%- end -%>. | ||
! [2] Illegal Instruction ! The encoding of the illegal instruction. | ||
! [3] Breakpoint | ||
! <%- if REPORT_VA_IN_STVAL_ON_BREAKPOINT -%> | ||
When caused by an EBREAK instruction, the virtual PC of the breakpoint instruction. | ||
<%- else -%> | ||
When caused by an EBREAK instruction, zero. | ||
<%- end -%> | ||
When caused by a data address (_i.e._, watchpoint) breakpoint, the faulting virtual address. | ||
When caused by an instruction address breakpoint, the faulting virtual PC. | ||
! [4] Load address misaligned ! The misaligned virtual load address. | ||
! [5] Load access fault | ||
! The part of virtual load address causing in the access fault. | ||
When the load is misaligned, the reported value is the smallest address on the page causing a fault | ||
(_e.g._, if an 8-byte load is equally split across a page and the fault occurs on the second page, | ||
address + 4 is reported). | ||
(Even though the access fault arises on a physical address, the virtual address is reported) | ||
! [6] Store/AMO address misaligned ! The misaligned virtual store/AMO address. | ||
! [7] Store/AMO access fault | ||
! The virtual store/AMO address causing the access fault. | ||
When the store/AMO is misaligned, the reported value is the smallest address on the page causing a fault | ||
(_e.g._, if an 8-byte store is equally split across a page and the fault occurs on the second page, | ||
address + 4 is reported). | ||
(Even though the access fault arises on a physical address, the virtual address is reported) | ||
! [8] Environment call from U-mode <% if ext?(:H) %>or VU-mode<% end %> ! Zero | ||
! [9] Environment call from (H)S-mode ! Zero | ||
<%- if ext?(:H) -%> | ||
! [10] Environment call from VS-mode ! Zero | ||
<%- end -%> | ||
! [12] Instruction page fault | ||
! The <% if ext?(:C) %> portion of the <% end %> virtual PC causing the page fault | ||
<% unless ext?(:C) %>(same as the value written to `mepc`)<% end %>. | ||
! [13] Load page fault | ||
! The part of the virtual load address causing in the page fault. | ||
When the load is misaligned, the reported value is the smallest address on the page causing a fault | ||
(_e.g._, if an 8-byte load is equally split across a page and the fault occurs on the second page, address + 4 is reported). | ||
! [15] Store/AMO page fault | ||
! The virtual store/AMO address causing in the page fault. | ||
When the store/AMO is misaligned, the reported value is the smallest address on the page causing a fault | ||
(_e.g._, if an 8-byte store is equally split across a page and the fault occurs on the second page, address + 4 is reported). | ||
<%- if ext?(:H) -%> | ||
! [20] Instruction guest-page fault | ||
! The <% if ext?(:C) %> portion of the <% end %> virtual PC causing the fault <% unless ext?(:C) %>(same as the value written to `mepc`)<% end %>. | ||
The guest physical address is reported in `mtval2`. | ||
! [21] Load guest-page fault | ||
! The part of the virtual address causing the fault. | ||
When the load is misaligned, the reported value is the smallest address on the page causing a fault | ||
(_e.g._, if an 8-byte load is equally split across a page and the fault occurs on the second page, address + 4 is reported). | ||
The guest physical address is reported in `mtval2`. | ||
! [22] Virutal instruction | ||
! The encoding of the faulting virtual instruction. | ||
! [23] Store/AMO guest-page fault | ||
! The part of the virtual address causing the fault. | ||
When the store/AMO is misaligned, the reported value is the smallest address on the page causing a fault | ||
(_e.g._, if an 8-byte store is equally split across a page and the fault occurs on the second page, address + 4 is reported). | ||
The guest physical address is reported in `htval`. | ||
<%- end -%> | ||
!=== | ||
type: RW-H | ||
reset_value: 0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.