History log of /seL4-l4v-10.1.1/HOL4/examples/l3-machine-code/x64/model/x64Script.sml
Revision Date Author Comments
# 04d2447f 28-Dec-2017 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Add some SSE (streaming SIMD extensions) instructions to the x86-64 model.


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

Support x86 "bit test" instructions.

Adds BT, BTS, BTR and BTC.


# c09ecefa 14-Aug-2017 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Minor improvements to x86 model and tools.

The parser now checks for inconsistent use of byte registers.


# 539efbf2 18-Jul-2017 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Minor update to x86 model.


# 05b22a3d 06-Jun-2017 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Remove reference to old BadMemAccess x86 exception.


# dfb8c2ed 05-Jun-2017 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Support a few more instruction in the x86-64 model.

Now covers IDIV, IMUL and multi-byte NOPs.


# b87b5c41 19-Apr-2017 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Update for latest version of L3.


# 705c001d 09-Feb-2017 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Fix for x86 model.

The RAX and RDX were swapped in the dividend.


# f8ba39d7 04-Dec-2016 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Improve x86 encoding for SETcc.


# 20962d66 21-Nov-2016 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Add SETcc instruction to x86-64 model.


# b07a0d61 05-Aug-2016 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Adapt x64 encoder to avoid use of ARB.


# f52585dc 22-Jun-2016 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Update x86 model for latest version of L3.


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

Update x86 model to cover CLC, SMC and STC instructions.


# 6c49cd84 19-May-2016 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Update the ARMv7, ARM-M0, MIPS and x86-64 models.

Exported from the latest version of L3.


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


# 7afc41b1 11-Apr-2016 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Fix misspecification for x86 division.

The divisor is register RDX not RAX.


# 02115b46 30-Mar-2016 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Minor updates for the x64 model.

• The decoder has been tweaked (mainly for use under SML). Previously it would succeed in decoding an instruction even if there were too few bytes.

• x64DisassembleLib has been removed. The function x64_disassemble has been implemented in x64AssemblerLib.


# 96edb9f3 20-Nov-2015 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Update for the latest version of L3, which has additional floating-point support.

Cover IEEE754:1985 behaviour for "abs" and "neg". Also adds support for "compare", "toInt" and "fromInt" at the machine level.


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

Update model for latest version of L3.


# b2f6c17e 12-Jun-2015 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Simplify the x86-64 model under L3 examples.

The instruction cache has been removed, together with the CPUID instruction. Also, the memory now has type ``: word64 -> word8`` instead of ``: word64 -> word8 option``.


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

Tweak to x86-64 instruction encoder.


# 4f16bf90 27-Aug-2014 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Update for x86-64 model and tools.

- x64Theory now includes an instruction encoder.
- The functions in x64_stepLib have been renamed, e.g. x64_step is now x64_step_hex.


# 05f7f073 13-Mar-2014 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Further refinements to x86-64 decoding.

The decoder now fails when an "address override prefix" is present (the model only considers 64-bit addresses).

Also make another attempt to fix the decoding issue addressed in checkin d69c0c9.


# d69c0c93 04-Mar-2014 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Fix for x86 decoding of instructions with a SIB byte when there is no base register.

Need to read a 32-bit displacement in these cases.


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


# 156fbbfe 23-Jul-2013 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Some minor formatting (printing) changes in the L3 instruction set models.


# e5404c45 19-Jul-2013 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Add support for x86 instructions LEAVE and LOOP.


# 602ca563 17-Jul-2013 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Extend L3 x86 model with support for MOVSX instructions (move with sign extend).


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

Reorganisation of files under examples/l3-machine-code.


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


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