summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2014-04-15Put conditional path information into constraint gathering so that checking ↵Kathy Gray
uses appropriate information gleaned from pattern matching
2014-04-10more constraint resolution; and turning off some assert falses until I find ↵Kathy Gray
out why unification isn't being forced everywhere it needs to
2014-04-08Reduce redundant information in ASTKathy Gray
2014-04-08Try to reduce size of Lem output a little bitKathy 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-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-03Implement some arithmetic operationsGabriel Kerneis
2014-04-03Re-index vector slicesGabriel Kerneis
- increasing vector slices are re-indexed from 0 - decreasing vector slices are re-indexed towards 0 I don't know how the type system handles this currently, but it is essential for the correctness of execution.
2014-04-03Implement bitwise library operationsGabriel Kerneis
2014-04-03Remove workarounds and update Power modelGabriel Kerneis
2014-04-03Typeclass Eq for valuesGabriel Kerneis
Again, this is necessary to compare big_int
2014-04-03make sail backwards compatible to older ocaml againKathy Gray
2014-04-03Do implicit coercions on expliciit castsKathy Gray
2014-04-03Fix arity error in bitwise helper functionKathy Gray
2014-04-03start solving more constraintsKathy Gray
2014-04-03Exhibit two bugs about bitwise operators and vector castsGabriel Kerneis
2014-04-03Correct types of bitwise operatorsGabriel Kerneis
2014-04-03More constraint solving through evaluation, fix size knowledge on coercion.Kathy Gray
2014-04-02Fix bug that was throwing away the cast telling the interpreter to read a ↵Kathy Gray
register
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-04-02Checking missing cast for register as value in testsuiteGabriel Kerneis
2014-04-02eq and neq return bit, not boolGabriel Kerneis
2014-04-02Fix EXTS and signedness of to_numGabriel Kerneis
2014-04-02Update Power modelGabriel Kerneis
2014-04-02Skip constraint resolution to build Power modelGabriel Kerneis
2014-04-02Add more information for resolving constraints involving variables; clean up ↵Kathy Gray
various constraint generation (removing repetitive and adding missing constraints)
2014-04-02Add -skip_constraints to type-check without constraintsGabriel Kerneis
2014-04-01Allow negative "nat" internallyGabriel Kerneis
to_num and to_vec probably still need to be fixed
2014-04-01Fix parsing of nexp constraintsGabriel Kerneis
2014-04-01More type corrections for constraintsKathy Gray
2014-04-01constraint corrections for to_num and to_vecKathy Gray
2014-03-31Fix constraint bug with +Kathy Gray
2014-03-31Extend constraint checking, and add casts for base of a vector shifts (i.e. ↵Kathy Gray
from 0 to 32 etc, doesn't change order yet.).
2014-03-31test/vectors.sail: failing constraint checkingGabriel Kerneis
Type error: Type constraint mismatch: constraint arising from here requires 0 to be greater than or equal to 32
2014-03-27Check simple constraints (i.e. ones using only constants).Kathy Gray
Changes syntax of tuple type from * to , so that nexps of the form 8 * 'n can be supported in the parser, which was apparently not true before.
2014-03-26More steps towards solving and using constraint informationKathy Gray
2014-03-26Steps towards solving constraintsKathy Gray
2014-03-23adding if testKathy Gray
2014-03-23Correctly unify types with default declarations and across if blocks for ↵Kathy Gray
introduced variables.
2014-03-23Fix more unification bugsKathy Gray
2014-03-20reset earlier commits to test3, that were supposed to be chosen instead of ↵Kathy Gray
my changes in the conflict resolution but oops.
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).