Skip to content

Vector arith idl #605

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 12 commits into
base: vector
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@ RUN apt-get install -y --no-install-recommends git \
clang-format \
clang-tidy \
libelf-dev \
gcc-riscv64-unknown-elf
gcc-riscv64-unknown-elf \
shellcheck
RUN apt-get clean autoclean
RUN apt-get autoremove -y
RUN rm -rf /var/lib/{apt,dpkg,cache,log}/*
Expand Down
28 changes: 28 additions & 0 deletions .github/workflows/regress.yml
Original file line number Diff line number Diff line change
Expand Up @@ -191,3 +191,31 @@ jobs:
run: ./bin/build_container
- name: Generate extension PDF
run: ./do gen:profile[MockProfileRelease]
regress-gen-go:
runs-on: ubuntu-latest
env:
SINGULARITY: 1
steps:
- name: Clone Github Repo Action
uses: actions/checkout@v4
- name: Setup apptainer
uses: eWaterCycle/[email protected]
- name: Get container from cache
id: cache-sif
uses: actions/cache@v4
with:
path: .singularity/image.sif
key: ${{ hashFiles('container.def', 'bin/.container-tag') }}
- name: Get gems and node files from cache
id: cache-bundle-npm
uses: actions/cache@v4
with:
path: |
.home/.gems
node_modules
key: ${{ hashFiles('Gemfile.lock') }}-${{ hashFiles('package-lock.json') }}
- if: ${{ steps.cache-sif.outputs.cache-hit != 'true' }}
name: Build container
run: ./bin/build_container
- name: Generate Go code
run: ./do gen:go
13 changes: 8 additions & 5 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -74,11 +74,14 @@ repos:
hooks:
- id: pyupgrade

# - repo: https://github.com/koalaman/shellcheck-precommit
# rev: v0.10.0
# hooks:
# - id: shellcheck
# args: ["--severity=error"]
- repo: local
hooks:
- id: shellcheck
name: shellcheck
types: [shell]
language: system
entry: shellcheck
args: ["--severity=error"]

- repo: https://github.com/scop/pre-commit-shfmt
rev: v3.11.0-1
Expand Down
2 changes: 2 additions & 0 deletions Rakefile
Original file line number Diff line number Diff line change
Expand Up @@ -435,6 +435,8 @@ namespace :test do
Rake::Task["#{$root}/gen/certificate_doc/pdf/MockCertificateModel.pdf"].invoke
Rake::Task["#{$root}/gen/profile_doc/pdf/MockProfileRelease.pdf"].invoke

Rake::Task["gen:go"].invoke

puts
puts "Regression test PASSED"
end
Expand Down
1 change: 1 addition & 0 deletions arch/csr/H/henvcfgh.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ $schema: "csr_schema.json#"
kind: csr
name: henvcfgh
address: 0x61A
base: 32
long_name: most-significant 32 bits of Hypervisor Environment Configuration
description: |
The henvcfgh CSR is a 32-bit read/write register for the most-significant 32 bits of `henvcfg`.
Expand Down
1 change: 1 addition & 0 deletions arch/csr/Zihpm/hpmcounter10h.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ kind: csr
name: hpmcounter10h
long_name: User-mode Hardware Performance Counter 7, high half
address: 0xC8A
base: 32
description: |
Alias for M-mode CSR `mhpmcounter10h`.

Expand Down
1 change: 1 addition & 0 deletions arch/csr/Zihpm/hpmcounter11h.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ kind: csr
name: hpmcounter11h
long_name: User-mode Hardware Performance Counter 8, high half
address: 0xC8B
base: 32
description: |
Alias for M-mode CSR `mhpmcounter11h`.

Expand Down
1 change: 1 addition & 0 deletions arch/csr/Zihpm/hpmcounter12h.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ kind: csr
name: hpmcounter12h
long_name: User-mode Hardware Performance Counter 9, high half
address: 0xC8C
base: 32
description: |
Alias for M-mode CSR `mhpmcounter12h`.

Expand Down
1 change: 1 addition & 0 deletions arch/csr/Zihpm/hpmcounter13h.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ kind: csr
name: hpmcounter13h
long_name: User-mode Hardware Performance Counter 10, high half
address: 0xC8D
base: 32
description: |
Alias for M-mode CSR `mhpmcounter13h`.

Expand Down
1 change: 1 addition & 0 deletions arch/csr/Zihpm/hpmcounter14h.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ kind: csr
name: hpmcounter14h
long_name: User-mode Hardware Performance Counter 11, high half
address: 0xC8E
base: 32
description: |
Alias for M-mode CSR `mhpmcounter14h`.

Expand Down
1 change: 1 addition & 0 deletions arch/csr/Zihpm/hpmcounter15h.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ kind: csr
name: hpmcounter15h
long_name: User-mode Hardware Performance Counter 12, high half
address: 0xC8F
base: 32
description: |
Alias for M-mode CSR `mhpmcounter15h`.

Expand Down
1 change: 1 addition & 0 deletions arch/csr/Zihpm/hpmcounter16h.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ kind: csr
name: hpmcounter16h
long_name: User-mode Hardware Performance Counter 13, high half
address: 0xC90
base: 32
description: |
Alias for M-mode CSR `mhpmcounter16h`.

Expand Down
1 change: 1 addition & 0 deletions arch/csr/Zihpm/hpmcounter17h.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ kind: csr
name: hpmcounter17h
long_name: User-mode Hardware Performance Counter 14, high half
address: 0xC91
base: 32
description: |
Alias for M-mode CSR `mhpmcounter17h`.

Expand Down
1 change: 1 addition & 0 deletions arch/csr/Zihpm/hpmcounter18h.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ kind: csr
name: hpmcounter18h
long_name: User-mode Hardware Performance Counter 15, high half
address: 0xC92
base: 32
description: |
Alias for M-mode CSR `mhpmcounter18h`.

Expand Down
1 change: 1 addition & 0 deletions arch/csr/Zihpm/hpmcounter19h.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ kind: csr
name: hpmcounter19h
long_name: User-mode Hardware Performance Counter 16, high half
address: 0xC93
base: 32
description: |
Alias for M-mode CSR `mhpmcounter19h`.

Expand Down
1 change: 1 addition & 0 deletions arch/csr/Zihpm/hpmcounter20h.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ kind: csr
name: hpmcounter20h
long_name: User-mode Hardware Performance Counter 17, high half
address: 0xC94
base: 32
description: |
Alias for M-mode CSR `mhpmcounter20h`.

Expand Down
1 change: 1 addition & 0 deletions arch/csr/Zihpm/hpmcounter21h.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ kind: csr
name: hpmcounter21h
long_name: User-mode Hardware Performance Counter 18, high half
address: 0xC95
base: 32
description: |
Alias for M-mode CSR `mhpmcounter21h`.

Expand Down
1 change: 1 addition & 0 deletions arch/csr/Zihpm/hpmcounter22h.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ kind: csr
name: hpmcounter22h
long_name: User-mode Hardware Performance Counter 19, high half
address: 0xC96
base: 32
description: |
Alias for M-mode CSR `mhpmcounter22h`.

Expand Down
1 change: 1 addition & 0 deletions arch/csr/Zihpm/hpmcounter23h.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ kind: csr
name: hpmcounter23h
long_name: User-mode Hardware Performance Counter 20, high half
address: 0xC97
base: 32
description: |
Alias for M-mode CSR `mhpmcounter23h`.

Expand Down
1 change: 1 addition & 0 deletions arch/csr/Zihpm/hpmcounter24h.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ kind: csr
name: hpmcounter24h
long_name: User-mode Hardware Performance Counter 21, high half
address: 0xC98
base: 32
description: |
Alias for M-mode CSR `mhpmcounter24h`.

Expand Down
1 change: 1 addition & 0 deletions arch/csr/Zihpm/hpmcounter25h.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ kind: csr
name: hpmcounter25h
long_name: User-mode Hardware Performance Counter 22, high half
address: 0xC99
base: 32
description: |
Alias for M-mode CSR `mhpmcounter25h`.

Expand Down
1 change: 1 addition & 0 deletions arch/csr/Zihpm/hpmcounter26h.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ kind: csr
name: hpmcounter26h
long_name: User-mode Hardware Performance Counter 23, high half
address: 0xC9A
base: 32
description: |
Alias for M-mode CSR `mhpmcounter26h`.

Expand Down
1 change: 1 addition & 0 deletions arch/csr/Zihpm/hpmcounter27h.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ kind: csr
name: hpmcounter27h
long_name: User-mode Hardware Performance Counter 24, high half
address: 0xC9B
base: 32
description: |
Alias for M-mode CSR `mhpmcounter27h`.

Expand Down
1 change: 1 addition & 0 deletions arch/csr/Zihpm/hpmcounter28h.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ kind: csr
name: hpmcounter28h
long_name: User-mode Hardware Performance Counter 25, high half
address: 0xC9C
base: 32
description: |
Alias for M-mode CSR `mhpmcounter28h`.

Expand Down
1 change: 1 addition & 0 deletions arch/csr/Zihpm/hpmcounter29h.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ kind: csr
name: hpmcounter29h
long_name: User-mode Hardware Performance Counter 26, high half
address: 0xC9D
base: 32
description: |
Alias for M-mode CSR `mhpmcounter29h`.

Expand Down
1 change: 1 addition & 0 deletions arch/csr/Zihpm/hpmcounter30h.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ kind: csr
name: hpmcounter30h
long_name: User-mode Hardware Performance Counter 27, high half
address: 0xC9E
base: 32
description: |
Alias for M-mode CSR `mhpmcounter30h`.

Expand Down
1 change: 1 addition & 0 deletions arch/csr/Zihpm/hpmcounter31h.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ kind: csr
name: hpmcounter31h
long_name: User-mode Hardware Performance Counter 28, high half
address: 0xC9F
base: 32
description: |
Alias for M-mode CSR `mhpmcounter31h`.

Expand Down
1 change: 1 addition & 0 deletions arch/csr/Zihpm/hpmcounter3h.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ kind: csr
name: hpmcounter3h
long_name: User-mode Hardware Performance Counter 0, high half
address: 0xC83
base: 32
description: |
Alias for M-mode CSR `mhpmcounter3h`.

Expand Down
1 change: 1 addition & 0 deletions arch/csr/Zihpm/hpmcounter4h.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ kind: csr
name: hpmcounter4h
long_name: User-mode Hardware Performance Counter 1, high half
address: 0xC84
base: 32
description: |
Alias for M-mode CSR `mhpmcounter4h`.

Expand Down
1 change: 1 addition & 0 deletions arch/csr/Zihpm/hpmcounter5h.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ kind: csr
name: hpmcounter5h
long_name: User-mode Hardware Performance Counter 2, high half
address: 0xC85
base: 32
description: |
Alias for M-mode CSR `mhpmcounter5h`.

Expand Down
1 change: 1 addition & 0 deletions arch/csr/Zihpm/hpmcounter6h.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ kind: csr
name: hpmcounter6h
long_name: User-mode Hardware Performance Counter 3, high half
address: 0xC86
base: 32
description: |
Alias for M-mode CSR `mhpmcounter6h`.

Expand Down
1 change: 1 addition & 0 deletions arch/csr/Zihpm/hpmcounter7h.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ kind: csr
name: hpmcounter7h
long_name: User-mode Hardware Performance Counter 4, high half
address: 0xC87
base: 32
description: |
Alias for M-mode CSR `mhpmcounter7h`.

Expand Down
1 change: 1 addition & 0 deletions arch/csr/Zihpm/hpmcounter8h.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ kind: csr
name: hpmcounter8h
long_name: User-mode Hardware Performance Counter 5, high half
address: 0xC88
base: 32
description: |
Alias for M-mode CSR `mhpmcounter8h`.

Expand Down
1 change: 1 addition & 0 deletions arch/csr/Zihpm/hpmcounter9h.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ kind: csr
name: hpmcounter9h
long_name: User-mode Hardware Performance Counter 6, high half
address: 0xC89
base: 32
description: |
Alias for M-mode CSR `mhpmcounter9h`.

Expand Down
1 change: 1 addition & 0 deletions arch/csr/menvcfgh.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ $schema: "csr_schema.json#"
kind: csr
name: menvcfgh
address: 0x31A
base: 32
long_name: Machine Environment Configuration
description: Contains bits to enable/disable extensions
priv_mode: M
Expand Down
1 change: 1 addition & 0 deletions arch/csr/mseccfgh.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ $schema: "csr_schema.json#"
kind: csr
name: mseccfgh
long_name: Most significant 32 bits of Machine Security Configuration
base: 32
address: 0x757
priv_mode: M
length: 32
Expand Down
1 change: 1 addition & 0 deletions arch/csr/timeh.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ kind: csr
name: timeh
long_name: High-half timer for RDTIME Instruction
address: 0xC81
base: 32
description: |
[when,"TIME_CSR_IMPLEMENTED == false"]
This CSR does not exist, and access will cause an IllegalInstruction exception.
Expand Down
2 changes: 1 addition & 1 deletion arch/ext/Zcd.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -39,5 +39,5 @@ versions:
allOf:
- anyOf:
- { name: Zca, version: "= 1.0.0" }
- { name: C, version: "= 1.0.0" }
- { name: C, version: "~> 2.0.0" }
- { name: D, version: "~> 2.2.0" }
4 changes: 4 additions & 0 deletions arch/ext/Zce.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -76,3 +76,7 @@ versions:
# - [Zcb, "1.0.0"]
# - [Zcmp, "1.0.0"]
# - [Zcmt, "1.0.0"]
conflicts:
anyOf:
- allOf: [C, D]
- Zcd
9 changes: 7 additions & 2 deletions arch/ext/Zcf.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ kind: extension
name: Zcf
long_name: Compressed instructions for single precision floating point
description: |
Zcf is the existing set of compressed single precision floating point loads and stores:
Zcf is the existing set of compressed single precision floating point loads and stores (RV32 only):
`c.flw`, `c.flwsp`, `c.fsw`, `c.fswsp`.

type: unprivileged
Expand Down Expand Up @@ -35,4 +35,9 @@ versions:
- name: Graeme Smecher
- name: Nicolas Brunie
- name: Jiawei
requires: F
requires:
allOf:
- anyOf:
- { name: Zca, version: "= 1.0.0" }
- { name: C, version: "~> 2.0.0" }
- { name: F, version: "~> 2.2.0" }
1 change: 1 addition & 0 deletions arch/ext/Zcmp.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,7 @@ versions:
- name: Graeme Smecher
- name: Nicolas Brunie
- name: Jiawei
requires: { name: Zca, version: ">= 1.0.0" }
conflicts:
anyOf:
- allOf: [C, D]
Expand Down
Loading