aboutsummaryrefslogtreecommitdiffstats
path: root/ia32/Op.v
diff options
context:
space:
mode:
authorXavier Leroy <xavier.leroy@inria.fr>2016-06-22 10:38:21 +0200
committerXavier Leroy <xavier.leroy@inria.fr>2016-06-22 10:38:21 +0200
commitf849a03bc11b2bc3c6373213afc2a7023c636679 (patch)
tree60511dae19358e2d7d4482a7b3ff10d95a0c90dd /ia32/Op.v
parent076e8fb1e20b5bc77e3a5d7011cd7b229fcc017d (diff)
downloadcompcert-f849a03bc11b2bc3c6373213afc2a7023c636679.tar.gz
compcert-f849a03bc11b2bc3c6373213afc2a7023c636679.zip
Improved handling of "rotate left" and "rotate right" operators
- Values: "rol" and "ror" are defined even if their second argument is not in the [0,31] range (for consistency with "rolm" and because the semantics is definitely well defined in this case). - NeedDomain: more precise analysis of "rol" and "rolm", could benefit the PowerPC port.
Diffstat (limited to 'ia32/Op.v')
-rw-r--r--ia32/Op.v4
1 files changed, 2 insertions, 2 deletions
diff --git a/ia32/Op.v b/ia32/Op.v
index e6df3f2d..f21d7c6a 100644
--- a/ia32/Op.v
+++ b/ia32/Op.v
@@ -450,7 +450,7 @@ Proof with (try exact I).
destruct v0; simpl in H0; try discriminate. destruct (Int.ltu i (Int.repr 31)); inv H0...
destruct v0; destruct v1; simpl... destruct (Int.ltu i0 Int.iwordsize)...
destruct v0; simpl... destruct (Int.ltu i Int.iwordsize)...
- destruct v0; simpl... destruct (Int.ltu i Int.iwordsize)...
+ destruct v0...
destruct v0; simpl... destruct (Int.ltu i Int.iwordsize)...
destruct v1; simpl... destruct (Int.ltu (Int.sub Int.iwordsize i) Int.iwordsize)...
eapply type_of_addressing_sound; eauto.
@@ -863,7 +863,7 @@ Proof.
destruct (Int.ltu i (Int.repr 31)); inv H1. TrivialExists.
inv H4; inv H2; simpl; auto. destruct (Int.ltu i0 Int.iwordsize); auto.
inv H4; simpl; auto. destruct (Int.ltu i Int.iwordsize); auto.
- inv H4; simpl; auto. destruct (Int.ltu i Int.iwordsize); auto.
+ inv H4; simpl; auto.
inv H4; simpl; auto. destruct (Int.ltu i Int.iwordsize); auto.
inv H2; simpl; auto. destruct (Int.ltu (Int.sub Int.iwordsize i) Int.iwordsize); auto.
eapply eval_addressing_inj; eauto.