summaryrefslogtreecommitdiff
path: root/src/lem_interp
AgeCommit message (Collapse)Author
2017-10-24fix default cap value on cheri128 following previous changes -- E stored in ↵Robert Norton
registers is no longer xored with 48 so need to initialise it. Also use E and T values used by CHERI hw and adjust decoding functions appropriately. Fix shift functions for ocaml shallow embedding which failed to handle shifts greater than vector length.
2017-10-09add translations for missing read/write kinds.Robert Norton
2017-10-09add translation of IK_mem_rmw interp_inter_imp. TODO: could we get rid of ↵Robert Norton
this and use shallow embedding conversion?
2017-10-06move nias_of_instruction into RMEM so that it can use shallow embedding ast ↵Robert Norton
and not obsolete interp_interface one.
2017-09-29fix those build errorsChristopher Pulte
2017-09-29fix deep_shallow_convert, stop using interp_interface.instruction for most ↵Christopher Pulte
things, SF and CP bugfixing
2017-09-21added a comment to the x86 lock'd read and writeShaked Flur
2017-09-20add support for x86 lock prefix (also remove unused Read/Write_tag kind in ↵Robert Norton
etc/regfp.sail.
2017-09-15x86: implement regfp analysis function (no control flow yet)Robert Norton
2017-09-15reinstate deep/shallow conversionChristopher Pulte
2017-09-03added RISC-V strong-acquire/releaseShaked Flur
2017-08-31add EnumerationType type class: if a type is a member you get Ord membership ↵Christopher Pulte
and Set membership for free
2017-08-31added RISC-V AMOsShaked Flur
2017-08-30typeclass instance Ord(opcode)Christopher Pulte
2017-08-24typoShaked Flur
2017-08-24typoShaked Flur
2017-08-24added barrier-kind for x86 MFENCE;Shaked Flur
fixed some compare functions;
2017-08-22added RISC-V "fence w,w" and "fence.i";Shaked Flur
fixed the interpreter nias analysis;
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-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