summaryrefslogtreecommitdiff
path: root/src/lem_interp
AgeCommit message (Collapse)Author
2014-03-04More polymorphism for additionGabriel Kerneis
2014-03-03Fixing assorted bugs. Adding ability to put a type on the identifier being ↵Kathy Gray
assigned to in assignments.
2014-03-01Fix printing bug on vector slicing that caused only one element to ever be ↵Kathy Gray
sliced
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-28Fetch-decode POWER interpreterGabriel Kerneis
Many limitations and bugs currently, but loads binary and decodes opcodes correctly (using endianness hacks). Disabled in the default test suite (but still compiled), run "make test_power" to try it.
2014-02-28Load ELF sections to virtual memory addressesGabriel Kerneis
Roughly 110KB/s (~5 seconds to load "hello" test).
2014-02-27Fix error to constructor pattern matchingKathy Gray
2014-02-27Partial fix for to_vec_inc/to_vec_decGabriel Kerneis
Lem's word library does some dark magic because of its assumption that words represent signed integers. Therefore, it is unreliable to truncate words, as well as to use the internal representation. boolListFrombitSeq seems safe for our purposes, though (provided the bitseq has been created with an infinite length from a positive integer).
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-26Fix vector slicingGabriel 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-18Put a plaster on bug for finding memory reading/writing operationsKathy Gray
2014-02-18Remove spurious add infixGabriel Kerneis
2014-02-18Report failing tests and return 1 in case of errorGabriel Kerneis
2014-02-18Improve interpreter pretty-printingGabriel Kerneis
2014-02-18Adding explicit order to for loopsKathy Gray
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-14Fix infinite loop bug, and test1.sail type checking bugKathy Gray
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-13Missing default case for literal equality testGabriel Kerneis
2014-02-13Display backtrace when interpreter failsGabriel Kerneis
2014-02-13Implement equality for big_int literalsGabriel Kerneis
Lem does not infer instances for typeclasses, falling back to unsafe comparison which does not work for big_int in OCaml.
2014-02-12More library functions for interpreterGabriel Kerneis
There is now enough stuff to decode and execute a very basic Branch instruction (encoding everything as little-endian rather than big- endian among many other work-arounds).
2014-02-12Fix endianess issuesGabriel Kerneis
2014-02-12Replace nat by natural in interpreterGabriel Kerneis
2014-02-07Fix a few stupid bugsGabriel Kerneis
2014-02-07Implement is_oneGabriel Kerneis
2014-02-07Report unimplemented function nameGabriel Kerneis
2014-02-05Replace symbolic link by actual fileGabriel Kerneis
2014-02-05First bit of Power specGabriel Kerneis
Only chapter about branches (except system calls because of sail typechecking issue). Decoding seems to work. Execution typechecks currently, but is pretty surely broken otherwise.
2014-02-05Revert "Accept single bits as boolean values for if in interpreter"Gabriel Kerneis
This reverts commit 828f19828e41ced146f06e9a7eb4183cd9ef3ab4. It was a temporary workaround now fixed when we generate Sail code.
2014-01-15Accept single bits as boolean values for if in interpreterGabriel Kerneis
2014-01-15Improve error messagesGabriel Kerneis
2014-01-14Fix vector concat pattern matchingGabriel Kerneis
The concatenation list was reversed.
2014-01-09Fixed pattern concatenation bugKathy Gray
2014-01-09Fixed a single-argument tuple bug on function callsKathy Gray
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).
2014-01-08Fixed literal vectors for binary vectors (pattern matching and as ↵Kathy Gray
expressions), hex vectors will only produce 0 length vectors.
2014-01-08Baby step to seeing a literal vector as a vector (ie. testing string support ↵Kathy Gray
from Lem)
2014-01-08Add support for letbound toplevel defs in interpreterKathy Gray
2014-01-07interp: recover identifiers in error messagesGabriel Kerneis
Not displayed currently because of new-lem's lack of string concatenation.
2013-12-16test: catch and print exceptionsGabriel Kerneis
2013-12-10Fixed bug in interpreterKathy Gray