29/03/2011:
Label moved out of ASM.ma labelled_instruction datatype, as the Paris compiler
can only produce at most one label per instruction emitted.
Merged the LTL and LIN datatypes.
Added comments to the ASM datatypes.
Changed identifiers from bytes to words.
Formalised missing Assembly.ma file.
30/03/2011:
Split translate_statements into two functions.
Added a dependent type for the invariant that a LIN function body does not
start with a label, and is not empty.
01/04/2011:
In retrospect:
The Clight semantics are based on CompCert 1.6 rather than the prototype's;
this also affects some of the common files.
The identifiers are Words so that we can use BitVectorTries for maps.
Similarly, integers are based on BitVectors rather than Coq-style binary
integers + range proof.
8051 memory spaces are present, but are not (yet?) in the prototype.
Dependent types are used to fix the number of arguments for addressing modes
in RTLabs.
04/04/2011:
common/Identifiers.ma provides identifiers similar to atomSig in the
prototype, except that we use the universe's name as a tag for the type of
identifiers to provide some extra type safety.
08/04/2011:
Make return register optional in RTLabs
26/04/2011:
Remove register from RTLabs return statements because it ends up being
redundant (we always use the register in the function record).
The constants follow CompCert's rather than the prototype's with the result
that they match up more closely with the addressing modes in RTLabs.
One of the front end operations for subtraction (subpp) appears to be missing
from the prototype at present.
19/05/2011:
Dump Param var_type from the Clight to Cminor stage - we need to treat them
like the other variables.
Generate list of pointer variables from Clight types rather than
recalculation.
Drop signatures from function call statements in Cminor and RTLabs - they
appear to be unused.