diff options
author | Greg Brown <greg.brown@cl.cam.ac.uk> | 2022-03-19 13:28:42 +0000 |
---|---|---|
committer | Greg Brown <greg.brown@cl.cam.ac.uk> | 2022-03-19 13:53:40 +0000 |
commit | 535e4297a08c626d0e2e1923914727f914b8c9bd (patch) | |
tree | 10e9b728083c4c69b80c3a07c4e68bfa025519c8 /src/Helium/Instructions/Instances/Barrett.agda | |
parent | 78aad93db3d7029e0a9a8517a2db92533fd1f401 (diff) |
Modify pseudocode definition.
This change makes the following changes to the definition of pseudocode:
- Add a separate type `bit` for single-bit values.
- Change `var` and `state` to take `Fin`s instead of bounded naturals.
- Make `[_]` and `unbox` work for any sliced type.
- Generalise `_:_` and `slice` into `splice` and `cut` respectively,
making the two new operations inverses.
- Replace `tup` with `nil` and `cons` for building tuples.
- Add destructors `head` and `tail` for tuple types.
- Make function and procedure calls take a vector of arguments instead
of a tuple.
- Introduce an `if_then_` expression for if statements with a trivial
else branch.
Diffstat (limited to 'src/Helium/Instructions/Instances/Barrett.agda')
-rw-r--r-- | src/Helium/Instructions/Instances/Barrett.agda | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/Helium/Instructions/Instances/Barrett.agda b/src/Helium/Instructions/Instances/Barrett.agda index 5ec9ba4..606a9e9 100644 --- a/src/Helium/Instructions/Instances/Barrett.agda +++ b/src/Helium/Instructions/Instances/Barrett.agda @@ -25,9 +25,9 @@ open import Helium.Instructions.Core barret : (m -n : Expression [] (bits 32)) (t z : VecReg) (im : GenReg) → Procedure [] barret m -n t z im = index R (lit (im ′f)) ≔ m ∙ - invoke vqrdmulh-s32,t,z,m (tup []) ∙ + invoke vqrdmulh-s32,t,z,m [] ∙ index R (lit (im ′f)) ≔ -n ∙ - invoke vmla-s32,z,t,-n (tup []) ∙end + invoke vmla-s32,z,t,-n [] ∙end where vqrdmulh-s32,t,z,m = ExecBeats (vqrdmulh (record |