aboutsummaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorjackbackrack2015-05-19 16:02:21 -0700
committerjackbackrack2015-05-19 16:02:21 -0700
commitf4edadb530297f4f3e293c81c0d8414f8279b65b (patch)
tree643db928ee1a396a2ecbf8477fd3fa6aee9f3927 /spec
parenteb7d0913bd01cffdc2be944c7001721f737b44bf (diff)
parent14bb9cda8352388bcd33ba9ca2700805dc51639f (diff)
get flo backend running again with no pads and generic operators
Diffstat (limited to 'spec')
-rw-r--r--spec/spec.tex9
1 files changed, 4 insertions, 5 deletions
diff --git a/spec/spec.tex b/spec/spec.tex
index 3d4611e2..2930e3c8 100644
--- a/spec/spec.tex
+++ b/spec/spec.tex
@@ -754,15 +754,15 @@ The output width of a dynamic shift left operation is the width of the original
\[
\begin{array}{rll}
\kws{primop} & \kws{Resultant Type} & \kws{Resultant Width} \\
-\kws{dshr}(\pds{op}:UInt, \pds{op2}:UInt) & UInt & width(op) - pow(2,width(op2)) \\
-\kws{dshr}(\pds{op}:SInt, \pds{op2}:UInt) & SInt & width(op) - pow(2,width(op2)) \\
+\kws{dshr}(\pds{op}:UInt, \pds{op2}:UInt) & UInt & width(op) \\
+\kws{dshr}(\pds{op}:SInt, \pds{op2}:UInt) & SInt & width(op) \\
\end{array}
\]
The shift right operation accepts either an unsigned or a signed integer, plus a non-negative integer literal specifying the number of bits to shift.
The resultant value has the same type as the operand.
The shift amount must be less than or equal to the width of the operand.
The output of a shift right operation is equal to the original signal with the least significant $n$ bits truncated, where $n$ is the dynamic shift amount.
-The output width of a dynamic shift right operation is the width of the original signal minus 2 raised to the width of the dynamic shift amount.
+The output width of a dynamic shift right operation is the width of the original signal.
\subsection{Convert to Signed}
\[
@@ -792,7 +792,7 @@ If the input type is SInt, primop returns -1 * input value, as an SInt with the
\[
\begin{array}{rll}
\kws{primop} & \kws{Resultant Type} & \kws{Resultant Width} \\
-\kws{bit-not} (\pds{op1:UInt}, \pds{op2:UInt}) & UInt & max(width(op1),width(op2)) \\
+\kws{bit-not} (\pds{op1:UInt}) & UInt & width(op1) \\
\kws{bit-and} (\pds{op1:UInt}, \pds{op2:UInt}) & UInt & max(width(op1),width(op2)) \\
\kws{bit-or} (\pds{op1:UInt}, \pds{op2:UInt}) & UInt & max(width(op1),width(op2)) \\
\kws{bit-xor} (\pds{op1:UInt}, \pds{op2:UInt}) & UInt & max(width(op1),width(op2)) \\
@@ -805,7 +805,6 @@ The operands must be unsigned integers, and the resultant width is equal to the
\[
\begin{array}{rll}
\kws{primop} & \kws{Resultant Type} & \kws{Resultant Width} \\
-\kws{bit-not-reduce} (\pds{op:UInt}*) & UInt & max(width(op)*) \\
\kws{bit-and-reduce} (\pds{op:UInt}*) & UInt & max(width(op)*) \\
\kws{bit-or-reduce} (\pds{op:UInt}*) & UInt & max(width(op)*) \\
\kws{bit-xor-reduce} (\pds{op:UInt}*) & UInt & max(width(op)*) \\