aboutsummaryrefslogtreecommitdiff
path: root/src/Compilers/ZExtended
diff options
context:
space:
mode:
authorGravatar Jason Gross <jgross@mit.edu>2017-11-03 18:30:27 -0400
committerGravatar Jason Gross <jgross@mit.edu>2017-11-03 18:30:27 -0400
commita6cd4891cd8c73aff596f13a6762abf154ec7d4d (patch)
treecf8ac236dbe9db0414c52216a07eb02b0e0fe4c2 /src/Compilers/ZExtended
parent3cd7034675be89d1c42bc681d3144fe4cff6aac0 (diff)
Add Zsub to extended syntax
Diffstat (limited to 'src/Compilers/ZExtended')
-rw-r--r--src/Compilers/ZExtended/Syntax.v2
-rw-r--r--src/Compilers/ZExtended/Syntax/Util.v2
2 files changed, 4 insertions, 0 deletions
diff --git a/src/Compilers/ZExtended/Syntax.v b/src/Compilers/ZExtended/Syntax.v
index 8b62af2c3..04f16c1fa 100644
--- a/src/Compilers/ZExtended/Syntax.v
+++ b/src/Compilers/ZExtended/Syntax.v
@@ -33,6 +33,7 @@ Inductive op : flat_type base_type -> flat_type base_type -> Set :=
| Zselect : op (tuple tZ 3) (tuple tZ 1)
| Zmul : op (tuple tZ 2) (tuple tZ 1)
| Zadd : op (tuple tZ 2) (tuple tZ 1)
+| Zsub : op (tuple tZ 2) (tuple tZ 1)
| Zopp : op (tuple tZ 1) (tuple tZ 1)
| Zshiftr : op (tuple tZ 2) (tuple tZ 1)
| Zshiftl : op (tuple tZ 2) (tuple tZ 1)
@@ -65,6 +66,7 @@ Definition interp_op {s d} (opv : op s d) : interp_flat_type interp_base_type s
| Zselect => curry3 Z.zselect
| Zmul => curry2 Z.mul
| Zadd => curry2 Z.add
+ | Zsub => curry2 Z.sub
| Zopp => Z.opp
| Zshiftr => curry2 Z.shiftr
| Zshiftl => curry2 Z.shiftl
diff --git a/src/Compilers/ZExtended/Syntax/Util.v b/src/Compilers/ZExtended/Syntax/Util.v
index d0c7b42db..e62915107 100644
--- a/src/Compilers/ZExtended/Syntax/Util.v
+++ b/src/Compilers/ZExtended/Syntax/Util.v
@@ -23,6 +23,7 @@ Definition invert_Const s d (opc : op s d) : option (interp_flat_type interp_bas
| Zselect
| Zmul
| Zadd
+ | Zsub
| Zopp
| Zshiftr
| Zshiftl
@@ -57,6 +58,7 @@ Definition unextend_op {s d} (opc : ZExtended.Syntax.op s d)
| Zselect => Some (Z.Syntax.Zselect _ _ _ _)
| Zmul => Some (Z.Syntax.Mul _ _ _)
| Zadd => Some (Z.Syntax.Add _ _ _)
+ | Zsub => Some (Z.Syntax.Sub _ _ _)
| Zopp => Some (Z.Syntax.Opp _ _)
| Zshiftr => Some (Z.Syntax.Shr _ _ _)
| Zshiftl => Some (Z.Syntax.Shl _ _ _)