History log of /seL4-l4v-10.1.1/HOL4/examples/ARM/v7/arm_encoderLib.sml
Revision Date Author Comments
# 21e53512 25-Mar-2018 Michael Norrish <Michael.Norrish@nicta.com.au>

Get ARM examples to build; v7-step regression fails though


# 29126407 23-Jul-2010 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Minor change capturing unpredictable case for LDM -- from latest ARM reference
errata 7.

Changed the return type for functions provided by arm_parserLib and
arm_encoderLib. They now include a symbol table, which identifies the address
of labels.

Clean up following changes to EmitML. Also, some other tweaks wrt evaluation.


# 2d28b95c 24-Jun-2010 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Update that adds support for ThumbEE.

/* From the ARM reference...

ThumbEE

Is a variant of the Thumb instruction set that is designed as a target for
dynamically generated code. It is:
* a required extension to the ARMv7-A profile
* an optional extension to the ARMv7-R profile. */


# 469ce305 03-Jun-2010 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Added support for hardware interrupts: reset, fiq and irq. This adds an extra
argument to the next state functions, i.e. we now have

arm_next : iiid -> HWInterrupt -> unit M

and

ARM_NEXT : HWInterrupt -> arm_state -> arm_state option

In the absence of an interrupt, the previous behaviour is obtained with

ARM_NEXT NoInterrupt : arm_state -> arm_state option

The single-step behaviour for interrupts can be obtained with

armLib.arm_step "" "reset" (* ARM_NEXT HW_Reset *)
armLib.arm_step "" "irq" (* ARM_NEXT HW_Irq *)
armLib.arm_step "" "fiq" (* ARM_NEXT HW_Fiq *)

There has also been some minor tidying-up to the code.


# a96d330b 03-Mar-2010 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Some changes to make things up-to-date with the latest ARM Architecture
Reference Manual, i.e. errata version 6. The changes mostly relate to the
specification of Undefined and Unpredictable instruction instances.


# a6b4a573 01-Mar-2010 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Numerous assorted changes, including:

- renamed some constants, e.g. sN -> psrN etc.
- changed handling of IT state for architecture versions < v6T2.
- some fixes to the parser and to the handling of the ADR instruction.
- added a couple of functions (arm_parserLib.calc_itstate and
arm_random_testingLib.arm_step_updates).


# 8f08a545 22-Jan-2010 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Fix to instruction evaluator wrt instructions relying on the
theorem condT_set_q.

Also, protect occurrences of term_to_string wrt subsequent changes
to the term/type grammars.


# a6edb681 24-Nov-2009 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Support for ground-term evaluation of the ARM model within HOL -- the program
memory is implemented as a Patricia tree.


# f5a5396e 19-Oct-2009 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Fix encoding of TBB and TBH.

Random testing now avoids store exclusive instructions, which are not
supported by arm_stepLib (yet).

Random testing now ensures that offsets for branches and loads/stores
are fairly small -- this should make it easier to do testing on hardware.


# 83dfb4a7 17-Oct-2009 Anthony Fox <anthony.fox@cl.cam.ac.uk>

A few changes:

1. Make it clear that the ARMv7-M profile is not properly supported (yet).
2. Fix for EmitML script (following changes to memory).
3. Fixed parsing/encoding for 16-bit Thumb MOV (register) instruction.
4. Fixed bugs in model for BFI, SSAT and SSAT16.


# 6913e4d7 29-Sep-2009 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Some fixes to the parser and encoder.

Added a new tool "arm_random_testingLib". This randomly generates
instructions and derives test vectors (where registers and memory
represented as free variables). Magnus will use this to carry out
validation checks on hardware.


# add70cef 18-Sep-2009 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Fix bug in the model (relating to encoding of Thumb2 immediate values).

Also add more checks to encoding function and fixed a couple of bugs in
the parser/encoder/disassembler.


# 9241c39a 09-Sep-2009 Anthony Fox <anthony.fox@cl.cam.ac.uk>

A few refinements. Also added an examples file, which demonstrates how
to use armLib.


# 9dfee26e 18-Aug-2009 Anthony Fox <anthony.fox@cl.cam.ac.uk>

A new Monadic ARM instruction set specification. Covers all current ISA
versions i.e. ARMv4 to ARMv7.

Doesn't cover the ThumbEE, VFP and Advanced SIMD extensions. Also doesn't
model hardware interrupts - these will be added at a later date.

To use the armLib tools, Moscow ML users will likely have to apply the patch to
avoid the Chr exception.
<http://hol.sourceforge.net/mosml-chr-instructions.html>