diff options
author | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2020-04-01 09:30:18 +0200 |
---|---|---|
committer | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2020-04-01 09:30:18 +0200 |
commit | 8e3ae6d6ff625dc8f93c54392b80b836b613c3cc (patch) | |
tree | 89dd3c21038ed8adc1a53167e77212d7fae0e9b3 /riscV/Op.v | |
parent | aedaa5cb1435008d1d872b7d6687bec5843798a0 (diff) | |
download | compcert-kvx-8e3ae6d6ff625dc8f93c54392b80b836b613c3cc.tar.gz compcert-kvx-8e3ae6d6ff625dc8f93c54392b80b836b613c3cc.zip |
porting to ppc riscV x86
Diffstat (limited to 'riscV/Op.v')
-rw-r--r-- | riscV/Op.v | 12 |
1 files changed, 9 insertions, 3 deletions
@@ -682,15 +682,21 @@ Definition is_trapping_op (op : operation) := | Ofloatoflong | Ofloatoflongu => true | _ => false end. + + +Definition args_of_operation op := + if eq_operation op Omove + then 1%nat + else List.length (fst (type_of_operation op)). Lemma is_trapping_op_sound: forall op vl sp m, - op <> Omove -> is_trapping_op op = false -> - (List.length vl) = (List.length (fst (type_of_operation op))) -> + (List.length vl) = args_of_operation op -> eval_operation genv sp op vl m <> None. Proof. - destruct op; intros; simpl in *; try congruence. + unfold args_of_operation. + destruct op; destruct eq_operation; intros; simpl in *; try congruence. all: try (destruct vl as [ | vh1 vl1]; try discriminate). all: try (destruct vl1 as [ | vh2 vl2]; try discriminate). all: try (destruct vl2 as [ | vh3 vl3]; try discriminate). |