summaryrefslogtreecommitdiff
path: root/src/lem_interp/run_interp.ml
AgeCommit message (Collapse)Author
2014-05-12More interface supportKathy Gray
2014-05-08more interface changesKathy Gray
2014-04-04Cosmetic improvements (statistics, --quiet)Gabriel Kerneis
2014-04-04Improve Power executionGabriel Kerneis
- Move FDE loop to the OCaml side of the Power model (avoid leaking memory due to lack of TCO in interpreter) - Display cycle count - Check the value of CIA at the end of each cycle and stop if it is equal to the initial value of LR, returning the value in GPR3.
2014-04-02Solve more constraints; fix up test suite bugs uncovered by solving more ↵Kathy Gray
constraints. Clean up Lem output a little for readability while debugging.
2014-03-20Remove work-around from interpreter, move it to power.sailGabriel Kerneis
Two bugs are worked-around here: - missing cast to nat when a vector is wrapped in exts (exts is a no-op currently anyway, so we are discarding it) - missing cast (due to limited type-inference) in one if branch: type given explicitly.
2014-03-20Workaround missing casts for external callsGabriel Kerneis
This patch should be reverted when the interpreter is fixed. The first instruction of main.bin is now executed. The second one fails, seemingly because of a similar missing cast issue (external function add receives register GPR1 as value).
2014-03-19Fix endiannessGabriel Kerneis
This will never end…
2014-03-17Revert broken vector handlingGabriel Kerneis
2014-03-14Support regbits read and writeGabriel Kerneis
No support for non-contiguous writes.
2014-03-14Pretty-print subreg correctlyGabriel Kerneis
2014-03-12Remove automagic register initializationGabriel Kerneis
2014-03-11More work on interpreter and Power modelGabriel Kerneis
2014-03-07Treat registers as values when not being actively read or written to, so ↵Kathy Gray
that we can have a vector of registers for example. Also, register types can be explicitly referenced.
2014-02-28Fix endiannessGabriel Kerneis
In fact, increasing order is big-endian, not little-endian. This is good news for us, because it means we do not need any switch for the POWER spec.
2014-02-28Load ELF sections to virtual memory addressesGabriel Kerneis
Roughly 110KB/s (~5 seconds to load "hello" test).
2014-02-27More flexible test executionGabriel Kerneis
2014-02-27Merge branch 'interp_typed'Kathy Gray
Conflicts: src/lem_interp/interp.lem src/lem_interp/run_interp.ml
2014-02-26Get interpreter working using types, no added functionality yetKathy Gray
2014-02-26Debug and fix memory multi-bytes memory writesGabriel Kerneis
2014-02-25Manage annotKathy Gray
2014-02-25First step of using type information in interpreter. Reading and writing ↵Kathy Gray
plain registers supported; memory reading and writing is broken.
2014-02-21Add type annotations to lem grammar, including printing out the annotated ↵Kathy Gray
ast, and extending the interpreter to expect annotations. Annotations and locations are still not used by the interpreter.
2014-02-18Report failing tests and return 1 in case of errorGabriel Kerneis
2014-02-18Improve interpreter pretty-printingGabriel Kerneis
2014-02-14Attempt multi-byte memory read and writeGabriel Kerneis
Test seems to fail for some reason, probably endianess and off-by-one bugs all over the place. Needs debugging code to monitor memory updates and display bitvectors in a compact way.
2014-02-14Write slice to memoryGabriel Kerneis
I'm not sure whether this is useful at all. It is currently a bit broken when subrange is not in the "correct" order. Presumably the typechecker should catch this? I'm not quite sure what the intended semantics should be. Probably the same bug occurs with register slices too.
2014-02-14Register slice writeGabriel Kerneis
2014-02-13Index memory with big_ints in interpreterGabriel Kerneis
Also add support for sliced reads. Still need to implement sliced writes, as well as multi-word memory writes.
2014-02-13Display backtrace when interpreter failsGabriel Kerneis
2014-02-12Fix endianess issuesGabriel Kerneis
2014-02-12Replace nat by natural in interpreterGabriel Kerneis
2014-01-09Fixed bug in resuming after an action (which was manifesting as an apparent ↵Kathy Gray
pattern match bug, which was actually working fine).
2013-12-16test: catch and print exceptionsGabriel Kerneis
2013-12-06Output test name on startGabriel Kerneis
2013-11-28Updated syntax with working examplesKathy Gray
2013-11-07Stub for external callsGabriel Kerneis
2013-11-05Support parsing for extern callsGabriel Kerneis
2013-10-16Basic MEM and register implementation for interpreterGabriel Kerneis
This is extremely naive, and does not support slices.
2013-10-16Clean up action pretty-printingGabriel Kerneis
2013-10-15Resume interpreter after actionsGabriel Kerneis
At the moment, writes are ignored and reads always return unit.
2013-10-14Run main() to execute testsGabriel Kerneis
Tests do not pass because of weird pattern-matching errors in the interpreter.
2013-10-14Pretty-print interpeter valuesGabriel Kerneis
2013-10-10Run interpreterGabriel Kerneis
Forgotten because of a wrong .gitignore.