diff options
author | Xavier Leroy <xavier.leroy@inria.fr> | 2016-06-22 10:38:21 +0200 |
---|---|---|
committer | Xavier Leroy <xavier.leroy@inria.fr> | 2016-06-22 10:38:21 +0200 |
commit | f849a03bc11b2bc3c6373213afc2a7023c636679 (patch) | |
tree | 60511dae19358e2d7d4482a7b3ff10d95a0c90dd /ia32/Op.v | |
parent | 076e8fb1e20b5bc77e3a5d7011cd7b229fcc017d (diff) | |
download | compcert-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.v | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -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. |