History log of /seL4-l4v-10.1.1/HOL4/examples/l3-machine-code/arm/prog/arm_progLib.sml
Revision Date Author Comments
# 54f14ae8 25-Mar-2018 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Some fixes for the ARMv7 step tools.


# 2adb6f47 06-Nov-2017 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Fix changing endianness.


# 23792a99 19-Jun-2017 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Add arm_stepLib tool support for some SUBS PC instructions.

These instructions are used for exception return.


# 893e1146 02-Aug-2016 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Extend floating-point support within the ARMv7 model.

The model can be configured for VFPv2, VFPv3 or VFPv4.

Most VFP instructions are modelled now but some are still missing, i.e.:

• VCVT for fixed-point and half-precision.
• VSTM and VLDM.


# 0f19b5f7 27-May-2016 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Small improvement to ARM spec tool.

Better treatment of `aligned' under a conditional.


# 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.


# 0559f3bd 14-Jul-2015 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Make use of alignmentTheory in the l3-machine-code examples.


# e8330675 26-May-2015 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Improve the interface to stateLib.update_frame_state_thm.

Also add some explanatory comments within stateScript.sml.


# ac817518 11-May-2015 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Modify the type of HolKernel.syntax_fns and add some documentation.

This is in response to issue #247.

The change to the type makes things a little more natural when using partial applications - for example, HolKernel.syntax_fns1 can be used to provide syntax support for regular unary operations.


# 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.


# 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.


# 20091f92 03-Jun-2014 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Minor update to ARM tools.

word_memory_introduction now does a bit more simplification.


# e1db9805 29-May-2014 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Refinement to stateLib.introduce_map_definition.

Should do a better job when simplifying reg-map updates.


# 17aa1139 08-May-2014 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Add tool support for working with ARM instructions MRS, MSR and RFE.


# cc9dd295 21-Feb-2014 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Add assembly code parsing/printing support for the M0 and ARMv7 models.

There are new entry points to the decompiler. These take a function that maps a quotation (containing machine or assembly code) into a list of strings (typically hex). This facilitate the input of ARM assembly code. For example, the functions:

m0_decompLib.m0_decompile_code
m0_core_decompLib.m0_core_decompile_code
arm_decompLib.arm_decompile_code
arm_core_decompLib.arm_core_decompile_code

are provided with type

: string -> string quotation -> Thm.thm * Thm.thm


# dbf1679a 08-Jan-2014 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Adapt behaviour of l3_arm_triples (in arm_decompLib),

Provides better handling of load (pc relative) instructions.


# 64cf73f2 27-Nov-2013 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Update ISA models.

The new models are generated by the latest version of L3. This mostly results in just a few formatting (pretty-printing) changes. However, bit-patterns are now expanded out in a different manner. Specifically, applications of “word_extract” (over the match word) are replaced with applications of “v2w” (over the bits generated by “boolify”). Some minor updates were needed to accommodate this change.


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

The ARMv7 tools now support another memory representation.

Memory can now be treated as a map of type ``:word32 -> word32``.

Also reworked the tools with respect to the handling of word endianness.


# 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).


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

Tool support for "LDR (literal)" under M0.


# 44dc16f2 18-Oct-2013 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Support for generating TEMPORAL triples.

Currently works for ARM, M0 and MIPS models. Yet to update the x86-64 model.


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

Make the building of SPEC theorems more lazy (when using arm_progLib.arm_spec_hex).


# 8d08dc89 11-Oct-2013 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Various updates/improvements to the decompiler tools.


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

Minor improvements to ARM tools.


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

Update M0 tools.

Minor updates to other ISA tools.


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

Updates and improvements to the l3-machine-code decompilation tools.


# 40807410 27-Sep-2013 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Further updates to the tools linking the L3 ARM model to the decompiler.

A lot of code has been generalised (making it usable with other models) and the performance has been improved.


# 49cc100a 23-Sep-2013 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Update to ARM tools.

Triples are now generated with a "mode" variable. This is required to satisfy the "GoodMode" predicate. Before concrete modes were used, e.g. "16" for user mode.

In addition, various performance related enhancements have been made in helperLib (especially with regard to AC rewriting for the "*" operator).


# 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.


# 7d193ef7 25-Aug-2013 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Fix for duplicate theorems occurring in the output of arm_progLib.arm_spec_hex.


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

Support more ARM VFP instructions.

Adds VMOV, VCMP and VMRS.


# 08244dc4 08-Jul-2013 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Missing files from last commit.