summaryrefslogtreecommitdiff
path: root/src/test/power.sail
AgeCommit message (Collapse)Author
2018-08-01Remove old test directory in src/testAlasdair Armstrong
2016-10-10changed the way registers/register fields work, fixes, nicer names for new ↵Christopher Pulte
letbound variables
2016-09-21fixesChristopher Pulte
2016-09-07push some lem pp changesChristopher Pulte
2016-07-12sail-to-lem and lem library fixesChristopher
2015-12-21fixes, pp progressChristopher
2015-12-15better location informationChristopher
2015-11-05some progress on lem backend: rewrite away mutable variable assignments, ↵Christopher Pulte
rewrite for-loops, if/case-expressions to return updated variables
2014-11-27updated test for power.sailKathy Gray
2014-11-19Correct off-by-one bug in type checking vector slicesKathy Gray
Convert sparse vectors into full-fledged vectors more frequently and on export to memory system
2014-11-12Stop overzealously looking for constructors, only when the type suggests toKathy Gray
2014-11-04Fixes bugs:Kathy Gray
not setting starting bit of vector properly not treating properly if when given a non boolean --- bool largely removed in place of bit, removing many/most is_one casts but true and false are still possible values coerces between bit vectors of length one and bits again, because reading from a register can otherwise be wrong with respect to the interface
2014-10-22Update printing for testing, fix some bugs found along the wayKathy Gray
2014-10-16bug fixes to run test from Christopher's testsKathy Gray
2014-10-14Iron out bugs in running new executable with branching; add new executable ↵Kathy Gray
as well.
2014-08-27Changes to get another (slightly larger) executable running;Kathy Gray
adding executable as a test as well
2014-08-26small changes for armKathy Gray
2014-08-20Add ability to track register dependencies in interactive stepper; thus ↵Kathy Gray
testing register tracking/tainting
2014-08-19Add file that actually drives command line interpreterKathy Gray
2014-08-18Handling many register reads, writes, and memory reads.Kathy Gray
There are problems that warrant discussion about handling special registers that hold records or data structures previously.
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-04Update power.sailGabriel Kerneis
2014-07-02Update Power exampleGabriel Kerneis
2014-06-11power.sail: store mode64bit in a bool registerGabriel Kerneis
This is now possible because we handle coercions better.
2014-06-11Update power.sail: remove some hacksGabriel Kerneis
2014-06-07Don't use cycle for fetch-decode-executeGabriel Kerneis
2014-06-07exts returns bit[64] instead of natGabriel Kerneis
Update power.sail to new, pretty-printer-based version
2014-06-04Fixup type coercions and overloadingKathy Gray
Reduce the number of implicit coercions we're doing, expanding overloading and fixing up types of functions. Warning: test_power does not run as not all overloaded funcitons are implemented Warning: vector concatenation does not pretty print to sail source yet
2014-06-02Fix dependent-type for MEM in power.sailGabriel Kerneis
Now, constraint resolution works for test/power.sail
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-03Power example now EXECUTES (almost) CORRECTLY! \o/Gabriel Kerneis
Warning: we set the link register to the address of the first instruction, which means the program is effectively an infinite loop returning 42 forever. (Except it slows down and leaks memory, probably because the interpreter doesn't optimise the tail call in fde_loop.) 42, 42, 42, 42, 42, 42, 42, 42, ...
2014-04-03Remove workarounds and update Power modelGabriel Kerneis
2014-04-03Exhibit two bugs about bitwise operators and vector castsGabriel Kerneis
2014-04-02Fix EXTS and signedness of to_numGabriel Kerneis
2014-04-02Update Power modelGabriel 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-19Fetch-decode-execute & init for powerGabriel Kerneis
2014-03-13Make test_power compiling againGabriel Kerneis
2014-03-11More work on interpreter and Power modelGabriel Kerneis
2014-03-04Minimal power model to run hello worldGabriel Kerneis
Crashes because register initialization is missing.
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-25Sensible types for POWER registersGabriel Kerneis
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-12Remove spurious declarationGabriel Kerneis
2014-02-12Fix type errors in power.sailGabriel Kerneis
2014-02-07Implement is_oneGabriel Kerneis
2014-02-07Use bit->bool coercion for power.sailGabriel Kerneis
2014-02-05Replace symbolic link by actual fileGabriel Kerneis