summaryrefslogtreecommitdiff
path: root/src/Helium/Instructions
AgeCommit message (Collapse)Author
2022-04-18Do a big refactor.Greg Brown
- Replace the decidable predicates on expressions and statements with separate data types. - Reorganise the Hoare logic semantics to remove unnecessary definitions. - Make liberal use of modules to group related definitions together. - Unify the types for denotational and Hoare logic semantics. - Make bits an abstraction of array types.
2022-03-19Modify pseudocode definition.Greg Brown
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.
2022-02-15Make expressions unable to change state.Greg Brown
2022-02-13Write pseudocode definition of Barrett reductionGreg Brown
2022-02-13Define vmla instruction.Greg Brown
2022-02-13Extract common code from pseudocode instructionsGreg Brown
2022-02-13Refactor to group instruction definitions togetherGreg Brown