aboutsummaryrefslogtreecommitdiffstats
path: root/backend/Lineartyping.v
diff options
context:
space:
mode:
authorDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2019-09-05 11:19:22 +0200
committerDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2019-09-05 11:19:22 +0200
commitc4cc75dc6abcb0eee6f3288e96fea4aec540fd68 (patch)
treee63d0437c3f3cb43eb26cced8ad94acc62e82dad /backend/Lineartyping.v
parent7042070a3668ae149ec6a490b8e7c1a6aa82d6fe (diff)
downloadcompcert-kvx-c4cc75dc6abcb0eee6f3288e96fea4aec540fd68.tar.gz
compcert-kvx-c4cc75dc6abcb0eee6f3288e96fea4aec540fd68.zip
more proofs going through
Diffstat (limited to 'backend/Lineartyping.v')
-rw-r--r--backend/Lineartyping.v16
1 files changed, 15 insertions, 1 deletions
diff --git a/backend/Lineartyping.v b/backend/Lineartyping.v
index 1fe23a9d..da66b6ff 100644
--- a/backend/Lineartyping.v
+++ b/backend/Lineartyping.v
@@ -76,7 +76,7 @@ Definition wt_instr (i: instruction) : bool :=
let (targs, tres) := type_of_operation op in
subtype tres (mreg_type res)
end
- | Lload chunk addr args dst =>
+ | Lload trap chunk addr args dst =>
subtype (type_of_chunk chunk) (mreg_type dst)
| Ltailcall sg ros =>
zeq (size_arguments sg) 0
@@ -332,6 +332,20 @@ Local Opaque mreg_type.
apply wt_setreg. eapply Val.has_subtype; eauto.
destruct a; simpl in H0; try discriminate. eapply Mem.load_type; eauto.
apply wt_undef_regs; auto.
+- (* load notrap1 *)
+ simpl in *; InvBooleans.
+ econstructor; eauto.
+ apply wt_setreg. eapply Val.has_subtype; eauto.
+ unfold default_notrap_load_value.
+ constructor.
+ apply wt_undef_regs; auto.
+- (* load notrap2 *)
+ simpl in *; InvBooleans.
+ econstructor; eauto.
+ apply wt_setreg. eapply Val.has_subtype; eauto.
+ unfold default_notrap_load_value.
+ constructor.
+ apply wt_undef_regs; auto.
- (* store *)
simpl in *; InvBooleans.
econstructor. eauto. eauto. eauto.