summaryrefslogtreecommitdiff
path: root/src/lem_interp
AgeCommit message (Collapse)Author
2017-08-28Merge branch 'experiments' of bitbucket.org:Peter_Sewell/sail into ↵Brian Campbell
mono-experiments # Conflicts: # src/gen_lib/sail_values.lem
2017-08-24Begin refactoring Sail libraryThomas Bauereiss
- Add back support for bit list representation of bit vectors, for backwards compatibility in order to ease integration with the interpreter. For this purpose, split out a file sail_operators.lem from sail_values.lem, and add a variant sail_operators_mwords.lem for the machine word representation of bitvectors. Currently, Sail is hardcoded to use machine words for the sequential state monad, and bit lists for the free monad, but this could be turned into a command line flag. - Add a prelude_wrappers.sail file for glueing the Sail prelude to the Lem library. The wrappers make use of sizeof expressions to extract type information from bitvectors (length, start index) in order to pass it to the Lem functions. - Add early return support to the free monad, using a new constructor "Return of 'r". As with the sequential monad, functions with early return are wrapped into "catch_early_return", which extracts the return value at the end of the function execution.
2017-08-17fixed the RISC-V fences (3 types: "rw,rw"/"r,rw"/"rw,w")Shaked Flur
2017-08-16lem_interp: remove broken val_to_string_internal functions, replace with ↵Jon French
string_of_value as used everywhere else
2017-08-02fix sail library test interpreter glue for API change. Also fix ↵Robert Norton
build_context val spec which was out of dated although lem did not complain for some reason...
2017-08-02fix run_with_elf*.ml with changed lem_interp apiJon French
2017-07-24interpreter: optionally print debugging tracesJon French
2017-07-24vector parts of interpreter now evaluate all arguments of expression before ↵Jon French
exiting due to one of them being unknown; fixes incorrect exhaustive analysis for footprints
2017-07-24move value type definitions to ott, and introduce new E_internal_value ast ↵Jon French
node for passing around encapsulated evaluated values; change Interp.to_exp to now just wrap values in this node
2017-07-06fix interpreter version of get_min/max_representable which similarly broken ↵Robert Norton
to ocaml version. TODO: also fix copies in sail_values.lem and sail_values_word.lem.
2017-07-06fix interpreter lteq/gteq for range/vec.Robert Norton
2017-07-06fix interpreter version of != which was broken for vector/range comparisons.Robert Norton
2017-06-22fix three different copies of the hardware_quot function to do proper ↵Robert Norton
trucation towards zero. Previous version was incorrect if result was exact and a<0 and b>0.
2017-06-22add a 'print' built-in function handy for writing sail tests.Robert Norton
2017-05-28fixed exmemShaked Flur
2017-05-26fix run_with builds after build_context gained an extra argument.Robert Norton
2017-05-24Merge branch 'master' of bitbucket.org:Peter_Sewell/sailShaked Flur
# Conflicts: # src/lem_interp/interp.lem # src/lem_interp/interp_inter_imp.lem # src/lem_interp/interp_interface.lem # src/parser.mly # src/pretty_print_lem.ml
2017-05-24added the exmem effect for AArch64 store-exclusiveShaked Flur
2017-05-24Change types of MEMr_tag, MEMval_tag and co. so that tag is separate from ↵Robert Norton
data and invent rmemt and wmvt effects for them. Extend the interpreter context to include lists of tagged memory read and write functions. The memory model must round down the address to the nearest capability aligned address when reading/writing tags. Remove TAGw which is no longer needed as a result.
2017-05-02docPeter Sewell
2017-04-24added register_value_for_regShaked Flur
2017-04-18added transactional memory supportShaked Flur
2017-04-03Rename TranslateAddress to TranslatePC and remove the accessType argument -- ↵Robert Norton
it is only ever used for translating the PC.
2017-03-29change reqiured to work with little endian interpreter.Robert Norton
2017-03-25endianness fixShaked Flur
2017-03-24fixed endiannessShaked Flur
2017-03-24Christopher, Peter: make "run_interp_model.ml" build again (endianness)Peter Sewell
2017-03-24Print tracking information for V_track, hopefully fix extern_vector_value, ↵Christopher Pulte
fix sail_values bug.
2017-03-23the interpreter/shallow expects little-endian memory-valuesShaked Flur
2017-03-02tweak commentsPeter Sewell
2017-02-08put back the header into Sail_impl_baseChristopher Pulte
2017-02-08pull in Shaked's type class instance changes, fix Ord and Eq instancesChristopher Pulte
2017-02-03fix headersPeter Sewell
2017-01-27fix right shiftKathy Gray
2017-01-26c128: xor E with 48 when storing in memory so that null cap is all zeros but ↵Robert Norton
has non-zero E (latest spec.)
2017-01-26christopher, kathy, peter: hacky experiment on nias_of_instructionPeter Sewell
2017-01-25Make interpreter a little more flexible on the format of a register type to ↵Kathy Gray
match ASL; add missing functions/cases to library
2017-01-25Merge branch 'master' of https://bitbucket.org/Peter_Sewell/sailKathy Gray
2017-01-25Make vector equality remember about the possibility of unknown valuesKathy Gray
2017-01-24functionality for comparing handwritten analysis function with exhaustive ↵Christopher Pulte
interpreter
2017-01-24Remember to pass through collapse argument in else case in bit_lifteds_to_stringRobert Norton
2017-01-23remove taint printingKathy Gray
2017-01-23Extend lib with min and maxKathy Gray
2017-01-14changes to enable interpreter exhaustive analysis in ppcmem againChristopher Pulte
2016-12-09sail changes for making lem embedding Isabelle-friendlierChristopher Pulte
2016-12-02fix interpreter build following refactoringRobert Norton
2016-12-01move interpreter-specific types from Sail_impl_base to Interp_interfaceChristopher Pulte
2016-11-30add new barrier kind for MIPS (only one for now).Robert Norton
2016-11-27make outcome_s contain the instruction state pretty print rather than the ↵Christopher Pulte
instruction state, factor out interpreter/shallow embedding value conversion
2016-11-23Add new type checking file. Small changes to type inference, temporary ↵Kathy Gray
change to printing