aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README.md27
-rw-r--r--arm/Asmgenproof1.v6
-rw-r--r--arm/Op.v2
3 files changed, 23 insertions, 12 deletions
diff --git a/README.md b/README.md
index 32b419a7..60855bfd 100644
--- a/README.md
+++ b/README.md
@@ -11,19 +11,28 @@ verified using the Coq proof assistant: the generated assembly code is
formally guaranteed to behave as prescribed by the semantics of the
source C code.
-CompCert is an ongoing research project. The present release is an
-advanced prototype intended for research, educational and evaluation
-purposes.
-
For more information on CompCert (supported platforms, supported C
features, installation instructions, using the compiler, etc), please
-refer to the [user's manual](http://compcert.inria.fr/man/).
+refer to the [Web site](http://compcert.inria.fr/) and especially
+the [user's manual](http://compcert.inria.fr/man/).
+
+## License
+CompCert is not free software. This non-commercial release can only
+be used for evaluation, research, educational and personal purposes.
+A commercial version of CompCert, without this restriction and with
+professional support, can be purchased from
+[AbsInt](http://www.absint.com). See the file `LICENSE` for more
+information.
## Copyright
The CompCert verified compiler is Copyright 2004, 2005, 2006, 2007,
-2008, 2009, 2010, 2011, 2012, 2013, 2014 Institut National de Recherche en
-Informatique et en Automatique (INRIA). It is distributed under the
-conditions stated in file `LICENSE`.
+2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 Institut National de
+Recherche en Informatique et en Automatique (INRIA).
## Contact
-The authors can be contacted by e-mail at compcert@yquem.inria.fr.
+General discussions on CompCert take place on the
+[compcert-users@inria.fr](https://sympa.inria.fr/sympa/info/compcert-users)
+mailing list.
+
+For inquiries on the commercial version of CompCert, please contact
+info@absint.com
diff --git a/arm/Asmgenproof1.v b/arm/Asmgenproof1.v
index c859434b..f0a698eb 100644
--- a/arm/Asmgenproof1.v
+++ b/arm/Asmgenproof1.v
@@ -730,12 +730,14 @@ Proof.
rewrite (int_ltu_not i i0). destruct (Int.ltu i i0); destruct (Int.eq i i0); reflexivity.
destruct (Int.ltu i i0); reflexivity.
(* int ptr *)
- destruct (Int.eq i Int.zero) eqn:?; try discriminate.
+ destruct (Int.eq i Int.zero &&
+ (Mem.valid_pointer m b0 (Int.unsigned i0) || Mem.valid_pointer m b0 (Int.unsigned i0 - 1))) eqn:?; try discriminate.
destruct c; simpl in *; inv H1.
rewrite Heqb1; reflexivity.
rewrite Heqb1; reflexivity.
(* ptr int *)
- destruct (Int.eq i0 Int.zero) eqn:?; try discriminate.
+ destruct (Int.eq i0 Int.zero &&
+ (Mem.valid_pointer m b0 (Int.unsigned i) || Mem.valid_pointer m b0 (Int.unsigned i - 1))) eqn:?; try discriminate.
destruct c; simpl in *; inv H1.
rewrite Heqb1; reflexivity.
rewrite Heqb1; reflexivity.
diff --git a/arm/Op.v b/arm/Op.v
index bda99e3c..bbdcd123 100644
--- a/arm/Op.v
+++ b/arm/Op.v
@@ -707,7 +707,7 @@ Definition is_trivial_op (op: operation) : bool :=
Definition op_depends_on_memory (op: operation) : bool :=
match op with
- | Ocmp (Ccompu _ | Ccompushift _ _) => true
+ | Ocmp (Ccompu _ | Ccompushift _ _| Ccompuimm _ _) => true
| _ => false
end.