#
98207e9d |
|
31-Jan-2018 |
Anthony Fox <anthony.fox@cl.cam.ac.uk> |
Add checks for unpredictable ARMv7 encodings.
|
#
78f3d14b |
|
30-Jan-2018 |
Anthony Fox <anthony.fox@cl.cam.ac.uk> |
Improve handling of undefined and unpredictable for VFP instructions.
|
#
78579f78 |
|
24-Jul-2017 |
Anthony Fox <anthony.fox@cl.cam.ac.uk> |
Support more than one method of detecting floating-point underflow. Also update the L3 importer, which can be configured for different underflow detection options.
|
#
8df33d5d |
|
29-Jun-2017 |
Anthony Fox <anthony.fox@cl.cam.ac.uk> |
Minor updates to L3 ARM models.
|
#
086cbeb8 |
|
22-Jun-2017 |
Anthony Fox <anthony.fox@cl.cam.ac.uk> |
Minor changes within floating-point theory. • The operations float_negate1985 and float_abs1985 have been removed. • Added a predicate float_is_signalling and renamed float_some_nan to float_some_qnan. • Fixed problem with EQ_tm and GT_tm being swapped in binary_ieeeSyntax.
|
#
fd546f27 |
|
08-May-2017 |
Anthony Fox <anthony.fox@cl.cam.ac.uk> |
Update ARM model for latest L3. Simple bit patterns are now handled better.
|
#
b87b5c41 |
|
19-Apr-2017 |
Anthony Fox <anthony.fox@cl.cam.ac.uk> |
Update for latest version of L3.
|
#
7e1d02fe |
|
17-Feb-2017 |
Anthony Fox <anthony.fox@cl.cam.ac.uk> |
Fix for vmov_double in ARM model. Many of the changes in arm.sml (record type annotations) come from using a newer version of L3.
|
#
e821cde6 |
|
05-Aug-2016 |
Anthony Fox <anthony.fox@cl.cam.ac.uk> |
Add vldm and vstm to ARMv7 model. These aren't supported by the "step" or "spec" tools.
|
#
f9637ba7 |
|
03-Aug-2016 |
Anthony Fox <anthony.fox@cl.cam.ac.uk> |
Remove UndefinedVFP from ARMv7 model.
|
#
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.
|
#
685f5a80 |
|
22-Jun-2016 |
Anthony Fox <anthony.fox@cl.cam.ac.uk> |
Update ARMv7 model for latest version of L3.
|
#
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`.
|
#
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.
|
#
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.
|
#
0559f3bd |
|
14-Jul-2015 |
Anthony Fox <anthony.fox@cl.cam.ac.uk> |
Make use of alignmentTheory in the l3-machine-code examples.
|
#
dcc2c549 |
|
24-Nov-2014 |
Anthony Fox <anthony.fox@cl.cam.ac.uk> |
Some fixes for the L3 ARM model. A number of bugs were detected when validating the L3 model against the tests used to check the old (monadic) ARM model. These can be found here: http://www.cl.cam.ac.uk/~mom22/arm-tests/ The bugs were as follows: 1. Off by one error in definition of SignExtendFrom. 2. Off by one error in definition of SignedSatQ. 3. Error in setting Q flag for QDADD. 4. Error in setting the GE flags for USAX and USUB16. 5. Error in the top-halfword result for SXTB16, UXTB16, SXTAB16 and UXTAB16. 6. Error in handling the C flag for some data-processing instructions (looks to affect immediate value variants only). 7. Incorrectly identifying some STRD instructions as unpredictable. Note that 1-5 relate to instructions that are not supported by the decompiler, and 7 just prevented some valid code from being decompiled. As such, 6 is the most significant error fixed here. The model now passes all of the tests.
|
#
ae61d92a |
|
23-Oct-2014 |
Anthony Fox <anthony.fox@cl.cam.ac.uk> |
Update for compatibility with the latest version of L3.
|
#
a760a164 |
|
12-Sep-2014 |
Anthony Fox <anthony.fox@cl.cam.ac.uk> |
The ARM model now includes an instruction encoder. Also, expose the function arm_eval in arm_stepLib.
|
#
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.
|
#
17aa1139 |
|
08-May-2014 |
Anthony Fox <anthony.fox@cl.cam.ac.uk> |
Add tool support for working with ARM instructions MRS, MSR and RFE.
|
#
1dad77d3 |
|
08-Jan-2014 |
Anthony Fox <anthony.fox@cl.cam.ac.uk> |
Update to ARM model. Fixes MSR (banked register) and MRS (banked register) instructions, in accordance with corrections made within the ARM ARM.
|
#
cd3a314a |
|
16-Dec-2013 |
Anthony Fox <anthony.fox@cl.cam.ac.uk> |
Minor update to ARMv7-AR model.
|
#
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.
|
#
28acd234 |
|
15-Nov-2013 |
Anthony Fox <anthony.fox@cl.cam.ac.uk> |
Minor change to ISA models. All ‘rst record fields are now prefixed by the type name.
|
#
ca803355 |
|
30-Aug-2013 |
Anthony Fox <anthony.fox@cl.cam.ac.uk> |
Fix missing IncPC in specification of VMRS instruction.
|
#
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.
|
#
eb0d8209 |
|
19-Aug-2013 |
Anthony Fox <anthony.fox@cl.cam.ac.uk> |
Fix for Thumb instructions CBZ/CBNZ.
|
#
156fbbfe |
|
23-Jul-2013 |
Anthony Fox <anthony.fox@cl.cam.ac.uk> |
Some minor formatting (printing) changes in the L3 instruction set models.
|
#
73bf1a4d |
|
08-Jul-2013 |
Anthony Fox <anthony.fox@cl.cam.ac.uk> |
Reorganisation of files under examples/l3-machine-code.
|
#
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).
|
#
488e897d |
|
10-May-2013 |
Anthony Fox <anthony.fox@cl.cam.ac.uk> |
Fix for ARM MOVW.
|
#
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.
|
#
e8bedb67 |
|
17-Apr-2013 |
Anthony Fox <anthony.fox@cl.cam.ac.uk> |
Minor tweaks for l3-machine-code example.
|
#
9c2b9e2e |
|
17-Apr-2013 |
Anthony Fox <anthony.fox@cl.cam.ac.uk> |
Update L3 ARM model. Was missing some fixes.
|
#
89c7432e |
|
15-Apr-2013 |
Anthony Fox <anthony.fox@cl.cam.ac.uk> |
Add some ARM VFP instruction support (under l3-machine-code).
|
#
00ff34a1 |
|
12-Jan-2013 |
Anthony Fox <anthony.fox@cl.cam.ac.uk> |
Tweak to treatment of UNKNOWN flag values for multiplies (e.g. MULS) under ARMv4.
|
#
4ec8bdbe |
|
10-Jan-2013 |
Anthony Fox <anthony.fox@cl.cam.ac.uk> |
Minor fix to ARM specification. Test for unpredictability of MUL instructions should be "Rd = Rn" and not "Rd = Rm". (Only applies to ARMv4 through to ARMv6.)
|
#
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).
|