summaryrefslogtreecommitdiff
path: root/lib/mono_rewrites.sail
AgeCommit message (Collapse)Author
2019-03-15Make mono_rewrites less dependant on ASL preludeThomas Bauereiss
... so that it can be more easily used for other specs. Also add some functions to vector_dec.sail to support this.
2019-03-07Fix bug in a mono rewrite helper functionThomas Bauereiss
2019-02-07Monomorphisation tweaks for v8.5Thomas Bauereiss
Various tweaks to the monomorphisation rewrites. Disable old sizeof rewriting for Lem backend and rely on the type checker rewriting implicit arguments. Also avoid unifying nexps with sums, as this can easily fail due to commutativity and associativity.
2019-01-29Add a few more type annotations after mono rewritesThomas Bauereiss
2018-12-13Remove redundant zero extensions more aggressively in mono rewritesThomas Bauereiss
subrange_subrange_concat does a zero extension internally, so another zero extension of its result is redundant and can lead to a type error in Lem (because Lem's type system cannot calculate the length of the intermediate result of subrange_subrange_concat).
2018-12-13Fix issue with sizeof-rewriting and monomorphisationAlasdair Armstrong
Sizeof-rewriting could introduce extra arguments to functions that instantiate_simple_equations could fill in with overly complicated types, causing unification to fail when building lem.
2018-08-07Improve cast introduction for LemBrian Campbell
Handles mutable variables and conditionals (there are still some corner cases that don't appear in Aarch64 to do). The pretty printer is now back to preferring to use concrete types, but has a special case for casts to print more general types.
2018-07-11Fix off-by-one bugs in monomorphisation rewrites involving bitvector subrangesThomas Bauereiss
CHERI test suite now passes using Isabelle-generated emulator
2018-05-17Clean up MIPS for HOL4 a littleBrian Campbell
Move mono_rewrites into lib
2018-02-16Add alternative definitions of aarch64 functions for monomorphisationBrian Campbell
2018-02-14Another mono rewrite for aarch64Brian Campbell
2018-02-08Add (most of) the bitvector cast insertion transformationBrian Campbell
to help Lem go from a general type `bits('n)` to a specific type `bits(16)` at a case split, and the other way around for a returned value. Doesn't handle function clause patterns yet
2018-02-02Add arithmetic shift right for aarch64 monoBrian Campbell
2018-01-29Sync mono rewrites definitions with libraryBrian Campbell
2018-01-26One more mono rewriteBrian Campbell
2018-01-19Update monomorphisation for sail2Brian Campbell
(no vector type start position, comment syntax)
2018-01-16Another useful monomorphisation rewriteBrian Campbell
2018-01-09More monomorphisation rewrites for aarch64Brian Campbell
2018-01-09Add some optional experimental rewrites to help with monomorphisationBrian Campbell