History log of /seL4-l4v-10.1.1/HOL4/examples/l3-machine-code/common/utilsLib.sml
Revision Date Author Comments
# 3de6da44 27-Mar-2018 Michael Norrish <Michael.Norrish@nicta.com.au>

Fix examples/l3-machine-code


# d530f31c 21-Sep-2017 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Add conversion INT_WORD_GROUND_CONV.


# 268ca9e2 06-Sep-2016 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Avoid "inventing new type variable" messages when loading some Lib files.


# 6f9db12d 14-Jul-2016 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Add some extra helper functions within utilsLib.


# 996ac857 19-Jun-2016 Michael Norrish <Michael.Norrish@nicta.com.au>

Use <=> instead of = for some boolean equalities


# d424454c 19-Jun-2016 Michael Norrish <Michael.Norrish@nicta.com.au>

Make l3-machine-code/utilsLib parse wrt a specific grammar


# 9e04470a 19-Jun-2016 Yong Kiam <tanyongkiam@gmail.com>

Add brackets to reduce sensitivity to equality looseness


# a26cf18e 06-May-2016 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Speedup CASE_RAND_CONV.


# 2d952b27 05-May-2016 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Remove a print_thm in CASE_RAND_CONV (used in testing).


# e4b57460 06-May-2016 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Implement CASE_RAND_CONV.

This is still somewhat experimental - it can convert instances of

f (case x of .. => y1 | .. => y2 | .. => yn)

to

case x of .. => f y1 | .. => f y2 | .. => f yn


# 25bc4063 06-May-2016 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Update some Holmake files to use CLINE_OPTIONS.


# fdeae967 29-Apr-2016 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Update for the latest version of L3.

Changes have been made when exporting operations of the form:

`f : args -> state -> value * state`

If the state is not changed then this is now exported as

`f : args -> state -> value`

If the state is changed but the `value` type is `unit` then it this is now exported as

`f : args -> state -> state`.


# 9652789f 29-Mar-2016 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Support for simplifying and evaluating enumerated type representation/abstraction maps.

For example, given

Datatype `enum = one | two`;

the following now works

> EVAL ``num2enum 1``;
val it = |- num2enum 1 = two: thm
> EVAL ``enum2num two``;
val it = |- enum2num two = 1: thm

> SIMP_CONV (srw_ss()) [] ``enum2num two``;
val it = |- enum2num two = 1: thm
> SIMP_CONV (srw_ss()) [] ``num2enum 1``;
val it = |- num2enum 1 = two: thm

This also works when building custom compsets using computeLib. add_datatype_info.

NOTE: This change may break some proofs (some in example/ARM have been fixed).


# d7726677 15-Feb-2016 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Update L3 examples.

Most changes relate to Poly/ML moving to fixed-width integers.


# d5ee45bd 20-Jan-2016 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Various updates to the L3 examples.

Most changes are brought about by improvements and generalisations within stateLib and utilsLib.

A Holmakefile has been added to a new decompilers sub-directory and some *decomp_demoScript files have also been added. This makes it easier to perform regression testing.


# 61ada824 11-Nov-2015 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Print out configuration options when an unrecognised option is supplied.


# f69520e1 16-Oct-2015 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Update model for latest version of L3.


# cd6c9672 05-Mar-2015 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Towards decompilation of MIPS.

Fails for code with branches.

Contains minor changes elsewhere (e.g. handling of endianness and quotations).


# 5119d3f3 05-Feb-2015 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Update ARM tools.

Provides support for a few more instructions.


# a43765ce 01-Sep-2014 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Improvement for utilsLib.add_datatypes.


# bbe4fa68 27-Jul-2014 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Update for L3 examples.

Fixes a potential problem with the handling of word replicate.

Moves some shared code into stateLib (the register_combinations function).

Some other minor fixes.


# 8651dcdc 11-Jul-2014 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Fix for utilsLib.Run_CONV.


# 94a38f25 10-Jul-2014 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Tweaks within utilsLib.


# 4a32990b 08-Jul-2014 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Move some shared code into utilsLib.


# e5073aed 04-Nov-2013 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Updates for machine-code tools.

Added support for introducing SEP_ARRAY predicates for memory operations (applied to the ARM and M0 models).


# e609174b 16-Oct-2013 Anthony Fox <anthony.fox@cl.cam.ac.uk>

The ARM-M0 model is now hooked up to the "core/fast" decompiler.


# ea82f495 30-Aug-2013 Anthony Fox <anthony.fox@cl.cam.ac.uk>

The Hoare-triples for PC-relative loads now have immediate values appearing in the code-pool.

This affects the triples that are generated for instruction such as "ldr r1, [pc, #12]".

The tools for the other ISA models need minor updates following changes in stateLib.


# b3d73d40 22-Aug-2013 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Support more ARM VFP instructions.

Adds VMOV, VCMP and VMRS.


# 788183c5 21-Jun-2013 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Changes to the standard L3 ARM model.

These have been brought about by minor modifications to the L3 export (a little bit more simplification occurs).


# 1b7b89d9 10-May-2013 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Updates to l3-machine-code.

Includes a monadic version of the ARM model, which includes data aborts.


# 88836d23 22-Jan-2013 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Add tool support for LDM instructions that load to the PC, i.e. those that
perform a branch.


# bb9064c1 09-Jan-2013 Anthony Fox <anthony.fox@cl.cam.ac.uk>

New ARM and x86 instruction set models, with tool support for generating Hoare triples.

The new models are generated using a domain specific language; see ITP 2012 paper: "Directions in ISA Specification" (LNCS 7406).

The tools should be quite a bit faster than those found in examples/ARM/v7 and examples/machine-code. However, they are less extensive (this is work-in-progress).