summaryrefslogtreecommitdiff
path: root/src/lem_interp
AgeCommit message (Collapse)Author
2014-08-12taint tracking through most of interpreterKathy Gray
Need to add cases for tracking a taint past a conditional check where possible; and then to actually generate them from reading registers.
2014-08-12more taint tracking, yet againKathy Gray
2014-08-11More taint tracking.Kathy Gray
Catch interp_inter_imp up with interp. WARNING: This commit triggers an exponential performance bug in Lem. To alleviate this bug, I am running with a locally modified Lem that has line 1321 of lem/src/typed_ast.ml commented out (On my laptop, I gave up trying to compile after about 900 seconds; beefier computers May be able to run unmodified, I don't know)
2014-08-09More tracking register dependency; another check point that compiles in ↵Kathy Gray
under two minutes
2014-08-08Tracking register dependence.Kathy Gray
Check point where Lem will compile interpreter in under 2 minutes
2014-08-07Fix bug introduced by last commitKathy Gray
2014-08-07Track taints across machine calls.Kathy Gray
This introduced a bug in vector.sail, commented out and needs to be fixed.
2014-08-05start tainting values with register dependenciesKathy Gray
2014-08-01Support separated memory read/write functions.Kathy Gray
Also allows register writing functions to be on the left hand side of an assignment in the same way. The last parameter to a writing function is the value to be written, and should appear on the right hand side of an assignment expression.
2014-07-30working dec vectorsKathy Gray
2014-07-25Add another type signature needed (we think but Susmit and I can't quite ↵Kathy Gray
remember why) for ppcmem integration.
2014-07-25Additional functions for interfaceKathy Gray
2014-07-18Writing to concatenated aliasesKathy Gray
2014-07-16Reading from an alias to two concatenated registers; not writing yet.Kathy Gray
2014-07-16Get writing working for aliases in the interpreter, other than concatenation.Kathy Gray
2014-07-15Finishing up some of the support for ExitKathy Gray
2014-07-14Add register to alias concatenation typeKathy Gray
2014-07-14Initial support for aliases and exit through the type system and the ↵Kathy Gray
interpreter. An alias can be read within the interpreter, but not written to. Exits aren't yet taken in the interpreter.
2014-07-03Adjust behavior on Unknown values in pattern match to stop matching as soon ↵Kathy Gray
as a pattern is matched without using an unknown; also causes full expansion on function calls with unknowns matched in patterns, however the local state is not reset.
2014-07-02Fix ordering issue in vector-concat pattern matchingGabriel Kerneis
2014-07-01Update case of EXTSGabriel Kerneis
2014-06-30Support for nondeterministic blocksKathy Gray
2014-06-25Add support for memory barrierKathy Gray
2014-06-25Add support for actions that read just a slice or single bit of a registerKathy Gray
2014-06-24Get enumerations working in interpreterKathy Gray
(plus a few other small related corrections)
2014-06-24Get vector length for to_inc_vec and to_dec_vec from the type system after ↵Kathy Gray
constraint solving (instead of hardcoding 64 as the default).
2014-06-23Get indexed vectors, particularly with default values, workingKathy Gray
2014-06-19Add mod:vec->range->vecGabriel Kerneis
2014-06-18Fix mod_vec in libraryGabriel Kerneis
2014-06-18Add definition of mod to libKathy Gray
2014-06-18Make hex constants work; improve utility of casts for selecting overloaded ↵Kathy Gray
functions
2014-06-12Interpret when an unknown is inserted into the program by interp_exhaustiveKathy Gray
Short version of below; ready to hook interp_exhaustive up to something to test, but haven't yet. If an unknown value influences a pattern match within an expression, each passing pattern is found and the bodies strung together into a block with let expressions to bind the variables. In a function call, the cases are all collected but the support is not in place at the moment to evaluate them. If an unknown is the result of the cond expression in an if, the then and else case become a block. Unknowns within the interpreter propagate to more Unknowns; also for some but not all library functions yet.
2014-06-11Equality between range and bit vectorGabriel Kerneis
The type-constraints are inspired from those for (+). They seem to work but I am not sure they make sense. The vector is interpreted as unsigned.
2014-06-11Improve error message for missing library functionsGabriel Kerneis
2014-06-10Minor color and build tweaksGabriel Kerneis
2014-06-10More colorsGabriel Kerneis
2014-06-09Better, colored holeGabriel Kerneis
2014-06-09Improve interaction after chat with PeterGabriel Kerneis
- remember mode (run, step or next) between instructions - display continuation by default in step mode - start in step mode by default - incompatible change: the shorthand for stack is now bt (=backtrace), since s becomes the shorthand for step - incompatible change: pressing enter now repeats the current mode, instead of "step"
2014-06-09Support deinfix pretty-printingGabriel Kerneis
2014-06-09Add more stops in interpreter (stopping just at the point of each internal ↵Kathy Gray
function call) Also turning off an annoying printf I left in.
2014-06-09Working towards evaluating with interp_exhaustiveKathy Gray
2014-06-09Add "continuation" command in interpreterGabriel Kerneis
This displays the full continuation of the current breakpoint, which is basically the closest that we have from the "context" requested by Peter. Especially using it after the "execute" breakpoint shows the code of the instruction to be executed.
2014-06-09Add switch to show/hide casts in interpreterGabriel Kerneis
Use "show_casts" and "hide_casts" in interactive interpreter to display or show casts in expressions. Hidden by default (makes things much less readable otherwise).
2014-06-09Merge branch 'for-dagstuhl' into masterGabriel Kerneis
Conflicts: src/lem_interp/interp_lib.lem src/lem_interp/run_interp.ml Remove "to_vec_safe" work-around
2014-06-07Add optional overloading on expected return type to fix bug in constraint ↵Kathy Gray
solving; get test_power running again by supporting the correct operations and bit operations
2014-06-07exts returns bit[64] instead of natGabriel Kerneis
Update power.sail to new, pretty-printer-based version
2014-06-07Improve help messageGabriel Kerneis
2014-06-07Print mem and envGabriel Kerneis
2014-06-07Stack printingGabriel Kerneis
2014-06-07Print holes as [x]Gabriel Kerneis