diff options
Diffstat (limited to 'riscV/NeedOp.v')
-rw-r--r-- | riscV/NeedOp.v | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/riscV/NeedOp.v b/riscV/NeedOp.v index 117bbcb4..da406d8a 100644 --- a/riscV/NeedOp.v +++ b/riscV/NeedOp.v @@ -87,6 +87,13 @@ Definition needs_of_operation (op: operation) (nv: nval): list nval := | Ointofsingle | Ointuofsingle | Osingleofint | Osingleofintu => op1 (default nv) | Olongofsingle | Olonguofsingle | Osingleoflong | Osingleoflongu => op1 (default nv) | Ocmp c => needs_of_condition c + | OEseqw _ => op2 (default nv) + | OEsnew _ => op2 (default nv) + | OEsltw _ => op2 (default nv) + | OEsltiw n => op1 (default nv) + | OExoriw n => op1 (bitwise nv) + | OEluiw n => op1 (default nv) + | OEaddiwr0 n => op1 (modarith nv) end. Definition operation_is_redundant (op: operation) (nv: nval): bool := @@ -154,6 +161,8 @@ Proof. - apply shlimm_sound; auto. - apply shrimm_sound; auto. - apply shruimm_sound; auto. +- apply xor_sound; auto with na. +- auto with na. Qed. Lemma operation_is_redundant_sound: |