aboutsummaryrefslogtreecommitdiffstats
path: root/mppa_k1c/Op.v
diff options
context:
space:
mode:
authorDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2019-03-16 18:24:03 +0100
committerDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2019-03-16 18:24:03 +0100
commit4e3b46ca2a30abf520672f4b1a28f91f171f6e7e (patch)
tree044fd5393f5fa563cfc85e7e60a00621d18044da /mppa_k1c/Op.v
parentfb02f9116621a0bcb9bb2c334ad782fee5887d0e (diff)
downloadcompcert-kvx-4e3b46ca2a30abf520672f4b1a28f91f171f6e7e.tar.gz
compcert-kvx-4e3b46ca2a30abf520672f4b1a28f91f171f6e7e.zip
nor implemente
Diffstat (limited to 'mppa_k1c/Op.v')
-rw-r--r--mppa_k1c/Op.v12
1 files changed, 12 insertions, 0 deletions
diff --git a/mppa_k1c/Op.v b/mppa_k1c/Op.v
index 8c5f01cd..275613bb 100644
--- a/mppa_k1c/Op.v
+++ b/mppa_k1c/Op.v
@@ -82,6 +82,8 @@ Inductive operation : Type :=
| Onandimm (n: int) (**r [rd = ~(r1 & n)] *)
| Oor (**r [rd = r1 | r2] *)
| Oorimm (n: int) (**r [rd = r1 | n] *)
+ | Onor (**r [rd = r1 | r2] *)
+ | Onorimm (n: int) (**r [rd = r1 | n] *)
| Oxor (**r [rd = r1 ^ r2] *)
| Oxorimm (n: int) (**r [rd = r1 ^ n] *)
| Oshl (**r [rd = r1 << r2] *)
@@ -254,6 +256,8 @@ Definition eval_operation
| Onandimm n, v1 :: nil => Some (Val.notint (Val.and v1 (Vint n)))
| Oor, v1 :: v2 :: nil => Some (Val.or v1 v2)
| Oorimm n, v1 :: nil => Some (Val.or v1 (Vint n))
+ | Onor, v1 :: v2 :: nil => Some (Val.notint (Val.or v1 v2))
+ | Onorimm n, v1 :: nil => Some (Val.notint (Val.or v1 (Vint n)))
| Oxor, v1 :: v2 :: nil => Some (Val.xor v1 v2)
| Oxorimm n, v1 :: nil => Some (Val.xor v1 (Vint n))
| Oshl, v1 :: v2 :: nil => Some (Val.shl v1 v2)
@@ -413,6 +417,8 @@ Definition type_of_operation (op: operation) : list typ * typ :=
| Onandimm _ => (Tint :: nil, Tint)
| Oor => (Tint :: Tint :: nil, Tint)
| Oorimm _ => (Tint :: nil, Tint)
+ | Onor => (Tint :: Tint :: nil, Tint)
+ | Onorimm _ => (Tint :: nil, Tint)
| Oxor => (Tint :: Tint :: nil, Tint)
| Oxorimm _ => (Tint :: nil, Tint)
| Oshl => (Tint :: Tint :: nil, Tint)
@@ -564,6 +570,9 @@ Proof with (try exact I; try reflexivity; auto using Val.Vptr_has_type).
(* or, orimm *)
- destruct v0; destruct v1...
- destruct v0...
+ (* nor, norimm *)
+ - destruct v0; destruct v1...
+ - destruct v0...
(* xor, xorimm *)
- destruct v0; destruct v1...
- destruct v0...
@@ -1031,6 +1040,9 @@ Proof.
(* or, orimm *)
- inv H4; inv H2; simpl; auto.
- inv H4; simpl; auto.
+ (* nor, norimm *)
+ - inv H4; inv H2; simpl; auto.
+ - inv H4; simpl; auto.
(* xor, xorimm *)
- inv H4; inv H2; simpl; auto.
- inv H4; simpl; auto.