summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2017-08-19RISC-V store-releaseShaked Flur
2017-08-17added RISC-V load-acquireShaked Flur
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-12Resolve ambiguity between negation of integers and boolsThomas Bauereiss
2017-08-12Fix compilation issue for 32-bit systemsThomas Bauereiss
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-19split library tests into separate files to avoid risk of sail compiler stack ↵Robert Norton
overflow.
2017-07-19borrow some of aa's bash code to convert library test suite output to junit ↵Robert Norton
xml for jenkins.
2017-07-06Tests for (almost) all sail builtins. Many interesting things discovered. ↵Robert Norton
Library in need of rationalisation.
2017-07-06fix off by one in type of add_vec builtin function. There are many more ↵Robert Norton
dubious types but will wait for library rationalisation to fix.
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-07-06substitute all uses of mod_big_int and div_big_int for Z.rem and Z.div which ↵Robert Norton
have correct rounding behaviour. Missed these when changing quot and mod functions.
2017-07-06implement abs function correctly for ocaml shallow embedding.Robert Norton
2017-07-06fix dodgy get_min/max_representable functions. Looks like an attempt at ↵Robert Norton
optimisation went wrong.
2017-07-04further testing of sail library.Robert Norton
2017-06-30add more tests for sail library. Can't compile entire file due to sail ↵Robert Norton
performance bug or infinite loop. Add some missing shallow embedding funcitons.
2017-06-29beginnings of a sail library test suite.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-06-14Add a work-in-progress version of sail_values.lemBrian Campbell
that uses the new Lem machine words library.
2017-06-05Attempt to make Lem-prettyprinting of function clauses more robustThomas Bauereiss
Instead of abusing patterns as expressions, bind patterns to names (if they are more complex than an identifier or literal and don't have a name already) and generate expressions referring to those names (which we then pass as arguments to the auxiliary functions).
2017-06-05Fix pretty-printing of function clauses with wildcards for LemThomas Bauereiss
Before, wildcards sometimes ended up in the arguments to the function call on the RHS, in particular when using vector patterns (which implicitly introduce wildcards for the order and index parameters).
2017-06-02Add tag memory to Lem shallow embeddingThomas Bauereiss
2017-05-28fixed exmemShaked Flur
2017-05-26fix run_with builds after build_context gained an extra argument.Robert Norton
2017-05-24fixed missing _tag bitsShaked Flur
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-24it turns out that Zarith has a divide function which does truncation towards ↵Robert Norton
zero but it is not exposed via Bit_int_Z. Use it instead of rolling our own. Also ocaml / and mod already do the right thing.
2017-05-10Build Cheri_embed_types.thy together with Cheri_embed_sequential.thyThomas Bauereiss
2017-05-08add make rules to (attempt to) build arm and power ml.Robert Norton
2017-05-08add some missing things in sail_values and make big_int version the default ↵Robert Norton
for set_vector_subrange_bit.
2017-05-08add error messages for unhandled pattern match nodes in ocaml pretty printer.Robert Norton
2017-05-08put failwith in brackets to avoid parse error.Robert Norton
2017-05-02docPeter Sewell
2017-04-27add command line argument for setting undef values to all zero or all one. ↵Robert Norton
Some tests intentionally produce undefined values (e.g. divide by zero) and this might be required for them to work.
2017-04-25optimise to_vec_int because it is used by MEMr to convert each byte to vector.Robert Norton
2017-04-25replace memory representation with map of 1MB pages rather than map of ↵Robert Norton
bytes. This makes loading binaries much quicker but doesn't seem to make a big difference to execution speed.
2017-04-25remove unused function.Robert Norton
2017-04-25Add support for uart terminal. Also add read_bit_reg function for faster and ↵Robert Norton
neater access to registers of single bit.
2017-04-24added register_value_for_regShaked Flur
2017-04-21it turns out zarith has a function for printing big_ints in hex. Remove the ↵Robert Norton
dependency on ocaml uint library by using it.