summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2014-03-20small test changesKathy Gray
2014-03-20Fix type checking bug that was incorrectly unifying type variables, leading ↵Kathy Gray
function 'a id x = x to have type 'a 'b . 'a -> 'b
2014-03-20Type bit[n] means bit[0..n-1]Gabriel Kerneis
2014-03-20Add missing GPR registers for Power exampleGabriel Kerneis
Second instruction now executes (but probably not correctly, check arithmetic since we ignore exts). Next step is to implement bitwise_or.
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-20Fix default type envGabriel Kerneis
2014-03-20More tests for implicit castsGabriel Kerneis
The last test added in vectors.sail fails.
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-19Fetch-decode-execute & init for powerGabriel Kerneis
2014-03-19Fix endiannessGabriel Kerneis
This will never end…
2014-03-19Fix bug when reading register through a castKathy Gray
2014-03-19Checking effects on functionsKathy Gray
2014-03-18Add parser support for empty and one element vectorsKathy Gray
2014-03-18More library functions for PowerGabriel Kerneis
2014-03-17Merge branch 'master' of https://bitbucket.org/Peter_Sewell/l2Kathy Gray
Conflicts: src/test/regbits.sail
2014-03-17More coercionsKathy Gray
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-13Make test_power compiling againGabriel Kerneis
2014-03-12Remove automagic register initializationGabriel Kerneis
2014-03-12Correctly type checking and interpreting accesses of register "fields". ↵Kathy Gray
Register-reading action isn't reading the subreg correctly still (seems to be making up a value though). Corrects but to vectors.sail and power.sail use of plus. (A new bug in power.sail is exposed using a binary operator with one value)
2014-03-11Change treatment of type abbreviations so that name and full type are ↵Kathy Gray
available for field lookups of registers; this feature still not fully working.
2014-03-11Exhibit bug in interpreter in vector testGabriel Kerneis
2014-03-11More work on interpreter and Power modelGabriel Kerneis
2014-03-11Confusion between first index and vector lengthGabriel Kerneis
2014-03-11Increase support for register "field" accesses; there is now a bug in how ↵Kathy Gray
run_interp handles SubReg register forms.
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-03-07Add default types to the initial env for provided functionsKathy Gray
2014-03-04Minimal power model to run hello worldGabriel Kerneis
Crashes because register initialization is missing.
2014-03-04More polymorphism for additionGabriel Kerneis
2014-03-04Various deinfix bugsGabriel Kerneis
2014-03-03new test fileKathy Gray
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-28Do not build power test by defaultGabriel Kerneis
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-28Correct bug in parsing and handling a['a:'b] typesKathy Gray
2014-02-27Fix error to constructor pattern matchingKathy Gray
2014-02-27Load POWER binary into interpreter's memoryGabriel Kerneis
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-25Sensible types for POWER registersGabriel Kerneis
2014-02-25Manage annotKathy Gray