summary refs log tree commit diff
path: root/ops.h
diff options
context:
space:
mode:
Diffstat (limited to 'ops.h')
-rw-r--r--ops.h266
1 files changed, 137 insertions, 129 deletions
diff --git a/ops.h b/ops.h
index 9f02262..285bc5c 100644
--- a/ops.h
+++ b/ops.h
@@ -2,6 +2,11 @@
 	#define X(NMemArgs, SetsZeroFlag, LeavesFlags)
 #endif
 
+#ifndef V /* riscv64 */
+	#define V(Imm)
+#endif
+
+
 #define T(a,b,c,d,e,f,g,h) {                          \
 	{[Kw]=K##a, [Kl]=K##b, [Ks]=K##c, [Kd]=K##d}, \
 	{[Kw]=K##e, [Kl]=K##f, [Ks]=K##g, [Kd]=K##h}  \
@@ -13,108 +18,108 @@
 /*********************/
 
 /* Arithmetic and Bits */
-O(add,     T(w,l,s,d, w,l,s,d), 1) X(2, 1, 0)
-O(sub,     T(w,l,s,d, w,l,s,d), 1) X(2, 1, 0)
-O(neg,     T(w,l,s,d, x,x,x,x), 1) X(1, 1, 0)
-O(div,     T(w,l,s,d, w,l,s,d), 1) X(0, 0, 0)
-O(rem,     T(w,l,e,e, w,l,e,e), 1) X(0, 0, 0)
-O(udiv,    T(w,l,e,e, w,l,e,e), 1) X(0, 0, 0)
-O(urem,    T(w,l,e,e, w,l,e,e), 1) X(0, 0, 0)
-O(mul,     T(w,l,s,d, w,l,s,d), 1) X(2, 0, 0)
-O(and,     T(w,l,e,e, w,l,e,e), 1) X(2, 1, 0)
-O(or,      T(w,l,e,e, w,l,e,e), 1) X(2, 1, 0)
-O(xor,     T(w,l,e,e, w,l,e,e), 1) X(2, 1, 0)
-O(sar,     T(w,l,e,e, w,w,e,e), 1) X(1, 1, 0)
-O(shr,     T(w,l,e,e, w,w,e,e), 1) X(1, 1, 0)
-O(shl,     T(w,l,e,e, w,w,e,e), 1) X(1, 1, 0)
+O(add,     T(w,l,s,d, w,l,s,d), 1) X(2, 1, 0) V(1)
+O(sub,     T(w,l,s,d, w,l,s,d), 1) X(2, 1, 0) V(0)
+O(neg,     T(w,l,s,d, x,x,x,x), 1) X(1, 1, 0) V(0)
+O(div,     T(w,l,s,d, w,l,s,d), 1) X(0, 0, 0) V(0)
+O(rem,     T(w,l,e,e, w,l,e,e), 1) X(0, 0, 0) V(0)
+O(udiv,    T(w,l,e,e, w,l,e,e), 1) X(0, 0, 0) V(0)
+O(urem,    T(w,l,e,e, w,l,e,e), 1) X(0, 0, 0) V(0)
+O(mul,     T(w,l,s,d, w,l,s,d), 1) X(2, 0, 0) V(0)
+O(and,     T(w,l,e,e, w,l,e,e), 1) X(2, 1, 0) V(1)
+O(or,      T(w,l,e,e, w,l,e,e), 1) X(2, 1, 0) V(1)
+O(xor,     T(w,l,e,e, w,l,e,e), 1) X(2, 1, 0) V(1)
+O(sar,     T(w,l,e,e, w,w,e,e), 1) X(1, 1, 0) V(1)
+O(shr,     T(w,l,e,e, w,w,e,e), 1) X(1, 1, 0) V(1)
+O(shl,     T(w,l,e,e, w,w,e,e), 1) X(1, 1, 0) V(1)
 
 /* Comparisons */
-O(ceqw,    T(w,w,e,e, w,w,e,e), 1) X(0, 1, 0)
-O(cnew,    T(w,w,e,e, w,w,e,e), 1) X(0, 1, 0)
-O(csgew,   T(w,w,e,e, w,w,e,e), 1) X(0, 1, 0)
-O(csgtw,   T(w,w,e,e, w,w,e,e), 1) X(0, 1, 0)
-O(cslew,   T(w,w,e,e, w,w,e,e), 1) X(0, 1, 0)
-O(csltw,   T(w,w,e,e, w,w,e,e), 1) X(0, 1, 0)
-O(cugew,   T(w,w,e,e, w,w,e,e), 1) X(0, 1, 0)
-O(cugtw,   T(w,w,e,e, w,w,e,e), 1) X(0, 1, 0)
-O(culew,   T(w,w,e,e, w,w,e,e), 1) X(0, 1, 0)
-O(cultw,   T(w,w,e,e, w,w,e,e), 1) X(0, 1, 0)
-
-O(ceql,    T(l,l,e,e, l,l,e,e), 1) X(0, 1, 0)
-O(cnel,    T(l,l,e,e, l,l,e,e), 1) X(0, 1, 0)
-O(csgel,   T(l,l,e,e, l,l,e,e), 1) X(0, 1, 0)
-O(csgtl,   T(l,l,e,e, l,l,e,e), 1) X(0, 1, 0)
-O(cslel,   T(l,l,e,e, l,l,e,e), 1) X(0, 1, 0)
-O(csltl,   T(l,l,e,e, l,l,e,e), 1) X(0, 1, 0)
-O(cugel,   T(l,l,e,e, l,l,e,e), 1) X(0, 1, 0)
-O(cugtl,   T(l,l,e,e, l,l,e,e), 1) X(0, 1, 0)
-O(culel,   T(l,l,e,e, l,l,e,e), 1) X(0, 1, 0)
-O(cultl,   T(l,l,e,e, l,l,e,e), 1) X(0, 1, 0)
-
-O(ceqs,    T(s,s,e,e, s,s,e,e), 1) X(0, 1, 0)
-O(cges,    T(s,s,e,e, s,s,e,e), 1) X(0, 1, 0)
-O(cgts,    T(s,s,e,e, s,s,e,e), 1) X(0, 1, 0)
-O(cles,    T(s,s,e,e, s,s,e,e), 1) X(0, 1, 0)
-O(clts,    T(s,s,e,e, s,s,e,e), 1) X(0, 1, 0)
-O(cnes,    T(s,s,e,e, s,s,e,e), 1) X(0, 1, 0)
-O(cos,     T(s,s,e,e, s,s,e,e), 1) X(0, 1, 0)
-O(cuos,    T(s,s,e,e, s,s,e,e), 1) X(0, 1, 0)
-
-O(ceqd,    T(d,d,e,e, d,d,e,e), 1) X(0, 1, 0)
-O(cged,    T(d,d,e,e, d,d,e,e), 1) X(0, 1, 0)
-O(cgtd,    T(d,d,e,e, d,d,e,e), 1) X(0, 1, 0)
-O(cled,    T(d,d,e,e, d,d,e,e), 1) X(0, 1, 0)
-O(cltd,    T(d,d,e,e, d,d,e,e), 1) X(0, 1, 0)
-O(cned,    T(d,d,e,e, d,d,e,e), 1) X(0, 1, 0)
-O(cod,     T(d,d,e,e, d,d,e,e), 1) X(0, 1, 0)
-O(cuod,    T(d,d,e,e, d,d,e,e), 1) X(0, 1, 0)
+O(ceqw,    T(w,w,e,e, w,w,e,e), 1) X(0, 1, 0) V(0)
+O(cnew,    T(w,w,e,e, w,w,e,e), 1) X(0, 1, 0) V(0)
+O(csgew,   T(w,w,e,e, w,w,e,e), 1) X(0, 1, 0) V(0)
+O(csgtw,   T(w,w,e,e, w,w,e,e), 1) X(0, 1, 0) V(0)
+O(cslew,   T(w,w,e,e, w,w,e,e), 1) X(0, 1, 0) V(0)
+O(csltw,   T(w,w,e,e, w,w,e,e), 1) X(0, 1, 0) V(1)
+O(cugew,   T(w,w,e,e, w,w,e,e), 1) X(0, 1, 0) V(0)
+O(cugtw,   T(w,w,e,e, w,w,e,e), 1) X(0, 1, 0) V(0)
+O(culew,   T(w,w,e,e, w,w,e,e), 1) X(0, 1, 0) V(0)
+O(cultw,   T(w,w,e,e, w,w,e,e), 1) X(0, 1, 0) V(1)
+
+O(ceql,    T(l,l,e,e, l,l,e,e), 1) X(0, 1, 0) V(0)
+O(cnel,    T(l,l,e,e, l,l,e,e), 1) X(0, 1, 0) V(0)
+O(csgel,   T(l,l,e,e, l,l,e,e), 1) X(0, 1, 0) V(0)
+O(csgtl,   T(l,l,e,e, l,l,e,e), 1) X(0, 1, 0) V(0)
+O(cslel,   T(l,l,e,e, l,l,e,e), 1) X(0, 1, 0) V(0)
+O(csltl,   T(l,l,e,e, l,l,e,e), 1) X(0, 1, 0) V(1)
+O(cugel,   T(l,l,e,e, l,l,e,e), 1) X(0, 1, 0) V(0)
+O(cugtl,   T(l,l,e,e, l,l,e,e), 1) X(0, 1, 0) V(0)
+O(culel,   T(l,l,e,e, l,l,e,e), 1) X(0, 1, 0) V(0)
+O(cultl,   T(l,l,e,e, l,l,e,e), 1) X(0, 1, 0) V(1)
+
+O(ceqs,    T(s,s,e,e, s,s,e,e), 1) X(0, 1, 0) V(0)
+O(cges,    T(s,s,e,e, s,s,e,e), 1) X(0, 1, 0) V(0)
+O(cgts,    T(s,s,e,e, s,s,e,e), 1) X(0, 1, 0) V(0)
+O(cles,    T(s,s,e,e, s,s,e,e), 1) X(0, 1, 0) V(0)
+O(clts,    T(s,s,e,e, s,s,e,e), 1) X(0, 1, 0) V(0)
+O(cnes,    T(s,s,e,e, s,s,e,e), 1) X(0, 1, 0) V(0)
+O(cos,     T(s,s,e,e, s,s,e,e), 1) X(0, 1, 0) V(0)
+O(cuos,    T(s,s,e,e, s,s,e,e), 1) X(0, 1, 0) V(0)
+
+O(ceqd,    T(d,d,e,e, d,d,e,e), 1) X(0, 1, 0) V(0)
+O(cged,    T(d,d,e,e, d,d,e,e), 1) X(0, 1, 0) V(0)
+O(cgtd,    T(d,d,e,e, d,d,e,e), 1) X(0, 1, 0) V(0)
+O(cled,    T(d,d,e,e, d,d,e,e), 1) X(0, 1, 0) V(0)
+O(cltd,    T(d,d,e,e, d,d,e,e), 1) X(0, 1, 0) V(0)
+O(cned,    T(d,d,e,e, d,d,e,e), 1) X(0, 1, 0) V(0)
+O(cod,     T(d,d,e,e, d,d,e,e), 1) X(0, 1, 0) V(0)
+O(cuod,    T(d,d,e,e, d,d,e,e), 1) X(0, 1, 0) V(0)
 
 /* Memory */
-O(storeb,  T(w,e,e,e, m,e,e,e), 0) X(0, 0, 1)
-O(storeh,  T(w,e,e,e, m,e,e,e), 0) X(0, 0, 1)
-O(storew,  T(w,e,e,e, m,e,e,e), 0) X(0, 0, 1)
-O(storel,  T(l,e,e,e, m,e,e,e), 0) X(0, 0, 1)
-O(stores,  T(s,e,e,e, m,e,e,e), 0) X(0, 0, 1)
-O(stored,  T(d,e,e,e, m,e,e,e), 0) X(0, 0, 1)
-
-O(loadsb,  T(m,m,e,e, x,x,e,e), 0) X(0, 0, 1)
-O(loadub,  T(m,m,e,e, x,x,e,e), 0) X(0, 0, 1)
-O(loadsh,  T(m,m,e,e, x,x,e,e), 0) X(0, 0, 1)
-O(loaduh,  T(m,m,e,e, x,x,e,e), 0) X(0, 0, 1)
-O(loadsw,  T(m,m,e,e, x,x,e,e), 0) X(0, 0, 1)
-O(loaduw,  T(m,m,e,e, x,x,e,e), 0) X(0, 0, 1)
-O(load,    T(m,m,m,m, x,x,x,x), 0) X(0, 0, 1)
+O(storeb,  T(w,e,e,e, m,e,e,e), 0) X(0, 0, 1) V(0)
+O(storeh,  T(w,e,e,e, m,e,e,e), 0) X(0, 0, 1) V(0)
+O(storew,  T(w,e,e,e, m,e,e,e), 0) X(0, 0, 1) V(0)
+O(storel,  T(l,e,e,e, m,e,e,e), 0) X(0, 0, 1) V(0)
+O(stores,  T(s,e,e,e, m,e,e,e), 0) X(0, 0, 1) V(0)
+O(stored,  T(d,e,e,e, m,e,e,e), 0) X(0, 0, 1) V(0)
+
+O(loadsb,  T(m,m,e,e, x,x,e,e), 0) X(0, 0, 1) V(0)
+O(loadub,  T(m,m,e,e, x,x,e,e), 0) X(0, 0, 1) V(0)
+O(loadsh,  T(m,m,e,e, x,x,e,e), 0) X(0, 0, 1) V(0)
+O(loaduh,  T(m,m,e,e, x,x,e,e), 0) X(0, 0, 1) V(0)
+O(loadsw,  T(m,m,e,e, x,x,e,e), 0) X(0, 0, 1) V(0)
+O(loaduw,  T(m,m,e,e, x,x,e,e), 0) X(0, 0, 1) V(0)
+O(load,    T(m,m,m,m, x,x,x,x), 0) X(0, 0, 1) V(0)
 
 /* Extensions and Truncations */
-O(extsb,   T(w,w,e,e, x,x,e,e), 1) X(0, 0, 1)
-O(extub,   T(w,w,e,e, x,x,e,e), 1) X(0, 0, 1)
-O(extsh,   T(w,w,e,e, x,x,e,e), 1) X(0, 0, 1)
-O(extuh,   T(w,w,e,e, x,x,e,e), 1) X(0, 0, 1)
-O(extsw,   T(e,w,e,e, e,x,e,e), 1) X(0, 0, 1)
-O(extuw,   T(e,w,e,e, e,x,e,e), 1) X(0, 0, 1)
-
-O(exts,    T(e,e,e,s, e,e,e,x), 1) X(0, 0, 1)
-O(truncd,  T(e,e,d,e, e,e,x,e), 1) X(0, 0, 1)
-O(stosi,   T(s,s,e,e, x,x,e,e), 1) X(0, 0, 1)
-O(stoui,   T(s,s,e,e, x,x,e,e), 1) X(0, 0, 1)
-O(dtosi,   T(d,d,e,e, x,x,e,e), 1) X(0, 0, 1)
-O(dtoui,   T(d,d,e,e, x,x,e,e), 1) X(0, 0, 1)
-O(swtof,   T(e,e,w,w, e,e,x,x), 1) X(0, 0, 1)
-O(uwtof,   T(e,e,w,w, e,e,x,x), 1) X(0, 0, 1)
-O(sltof,   T(e,e,l,l, e,e,x,x), 1) X(0, 0, 1)
-O(ultof,   T(e,e,l,l, e,e,x,x), 1) X(0, 0, 1)
-O(cast,    T(s,d,w,l, x,x,x,x), 1) X(0, 0, 1)
+O(extsb,   T(w,w,e,e, x,x,e,e), 1) X(0, 0, 1) V(0)
+O(extub,   T(w,w,e,e, x,x,e,e), 1) X(0, 0, 1) V(0)
+O(extsh,   T(w,w,e,e, x,x,e,e), 1) X(0, 0, 1) V(0)
+O(extuh,   T(w,w,e,e, x,x,e,e), 1) X(0, 0, 1) V(0)
+O(extsw,   T(e,w,e,e, e,x,e,e), 1) X(0, 0, 1) V(0)
+O(extuw,   T(e,w,e,e, e,x,e,e), 1) X(0, 0, 1) V(0)
+
+O(exts,    T(e,e,e,s, e,e,e,x), 1) X(0, 0, 1) V(0)
+O(truncd,  T(e,e,d,e, e,e,x,e), 1) X(0, 0, 1) V(0)
+O(stosi,   T(s,s,e,e, x,x,e,e), 1) X(0, 0, 1) V(0)
+O(stoui,   T(s,s,e,e, x,x,e,e), 1) X(0, 0, 1) V(0)
+O(dtosi,   T(d,d,e,e, x,x,e,e), 1) X(0, 0, 1) V(0)
+O(dtoui,   T(d,d,e,e, x,x,e,e), 1) X(0, 0, 1) V(0)
+O(swtof,   T(e,e,w,w, e,e,x,x), 1) X(0, 0, 1) V(0)
+O(uwtof,   T(e,e,w,w, e,e,x,x), 1) X(0, 0, 1) V(0)
+O(sltof,   T(e,e,l,l, e,e,x,x), 1) X(0, 0, 1) V(0)
+O(ultof,   T(e,e,l,l, e,e,x,x), 1) X(0, 0, 1) V(0)
+O(cast,    T(s,d,w,l, x,x,x,x), 1) X(0, 0, 1) V(0)
 
 /* Stack Allocation */
-O(alloc4,  T(e,l,e,e, e,x,e,e), 0) X(0, 0, 0)
-O(alloc8,  T(e,l,e,e, e,x,e,e), 0) X(0, 0, 0)
-O(alloc16, T(e,l,e,e, e,x,e,e), 0) X(0, 0, 0)
+O(alloc4,  T(e,l,e,e, e,x,e,e), 0) X(0, 0, 0) V(0)
+O(alloc8,  T(e,l,e,e, e,x,e,e), 0) X(0, 0, 0) V(0)
+O(alloc16, T(e,l,e,e, e,x,e,e), 0) X(0, 0, 0) V(0)
 
 /* Variadic Function Helpers */
-O(vaarg,   T(m,m,m,m, x,x,x,x), 0) X(0, 0, 0)
-O(vastart, T(m,e,e,e, x,e,e,e), 0) X(0, 0, 0)
+O(vaarg,   T(m,m,m,m, x,x,x,x), 0) X(0, 0, 0) V(0)
+O(vastart, T(m,e,e,e, x,e,e,e), 0) X(0, 0, 0) V(0)
 
-O(copy,    T(w,l,s,d, x,x,x,x), 0) X(0, 0, 1)
+O(copy,    T(w,l,s,d, x,x,x,x), 0) X(0, 0, 1) V(0)
 
 
 /****************************************/
@@ -122,52 +127,55 @@ O(copy,    T(w,l,s,d, x,x,x,x), 0) X(0, 0, 1)
 /****************************************/
 
 /* Miscellaneous and Architecture-Specific Operations */
-O(nop,     T(x,x,x,x, x,x,x,x), 0) X(0, 0, 1)
-O(addr,    T(m,m,e,e, x,x,e,e), 0) X(0, 0, 1)
-O(swap,    T(w,l,s,d, w,l,s,d), 0) X(1, 0, 0)
-O(sign,    T(w,l,e,e, x,x,e,e), 0) X(0, 0, 0)
-O(salloc,  T(e,l,e,e, e,x,e,e), 0) X(0, 0, 0)
-O(xidiv,   T(w,l,e,e, x,x,e,e), 0) X(1, 0, 0)
-O(xdiv,    T(w,l,e,e, x,x,e,e), 0) X(1, 0, 0)
-O(xcmp,    T(w,l,s,d, w,l,s,d), 0) X(1, 1, 0)
-O(xtest,   T(w,l,e,e, w,l,e,e), 0) X(1, 1, 0)
-O(acmp,    T(w,l,e,e, w,l,e,e), 0) X(0, 0, 0)
-O(acmn,    T(w,l,e,e, w,l,e,e), 0) X(0, 0, 0)
-O(afcmp,   T(e,e,s,d, e,e,s,d), 0) X(0, 0, 0)
+O(nop,     T(x,x,x,x, x,x,x,x), 0) X(0, 0, 1) V(0)
+O(addr,    T(m,m,e,e, x,x,e,e), 0) X(0, 0, 1) V(0)
+O(swap,    T(w,l,s,d, w,l,s,d), 0) X(1, 0, 0) V(0)
+O(sign,    T(w,l,e,e, x,x,e,e), 0) X(0, 0, 0) V(0)
+O(salloc,  T(e,l,e,e, e,x,e,e), 0) X(0, 0, 0) V(0)
+O(xidiv,   T(w,l,e,e, x,x,e,e), 0) X(1, 0, 0) V(0)
+O(xdiv,    T(w,l,e,e, x,x,e,e), 0) X(1, 0, 0) V(0)
+O(xcmp,    T(w,l,s,d, w,l,s,d), 0) X(1, 1, 0) V(0)
+O(xtest,   T(w,l,e,e, w,l,e,e), 0) X(1, 1, 0) V(0)
+O(acmp,    T(w,l,e,e, w,l,e,e), 0) X(0, 0, 0) V(0)
+O(acmn,    T(w,l,e,e, w,l,e,e), 0) X(0, 0, 0) V(0)
+O(afcmp,   T(e,e,s,d, e,e,s,d), 0) X(0, 0, 0) V(0)
+O(reqz,    T(w,l,e,e, x,x,e,e), 0) X(0, 0, 0) V(0)
+O(rnez,    T(w,l,e,e, x,x,e,e), 0) X(0, 0, 0) V(0)
 
 /* Arguments, Parameters, and Calls */
-O(par,     T(x,x,x,x, x,x,x,x), 0) X(0, 0, 0)
-O(parc,    T(e,x,e,e, e,x,e,e), 0) X(0, 0, 0)
-O(pare,    T(e,x,e,e, e,x,e,e), 0) X(0, 0, 0)
-O(arg,     T(w,l,s,d, x,x,x,x), 0) X(0, 0, 0)
-O(argc,    T(e,x,e,e, e,l,e,e), 0) X(0, 0, 0)
-O(arge,    T(e,l,e,e, e,x,e,e), 0) X(0, 0, 0)
-O(argv,    T(x,x,x,x, x,x,x,x), 0) X(0, 0, 0)
-O(call,    T(m,m,m,m, x,x,x,x), 0) X(0, 0, 0)
+O(par,     T(x,x,x,x, x,x,x,x), 0) X(0, 0, 0) V(0)
+O(parc,    T(e,x,e,e, e,x,e,e), 0) X(0, 0, 0) V(0)
+O(pare,    T(e,x,e,e, e,x,e,e), 0) X(0, 0, 0) V(0)
+O(arg,     T(w,l,s,d, x,x,x,x), 0) X(0, 0, 0) V(0)
+O(argc,    T(e,x,e,e, e,l,e,e), 0) X(0, 0, 0) V(0)
+O(arge,    T(e,l,e,e, e,x,e,e), 0) X(0, 0, 0) V(0)
+O(argv,    T(x,x,x,x, x,x,x,x), 0) X(0, 0, 0) V(0)
+O(call,    T(m,m,m,m, x,x,x,x), 0) X(0, 0, 0) V(0)
 
 /* Flags Setting */
-O(flagieq,  T(x,x,e,e, x,x,e,e), 0) X(0, 0, 1)
-O(flagine,  T(x,x,e,e, x,x,e,e), 0) X(0, 0, 1)
-O(flagisge, T(x,x,e,e, x,x,e,e), 0) X(0, 0, 1)
-O(flagisgt, T(x,x,e,e, x,x,e,e), 0) X(0, 0, 1)
-O(flagisle, T(x,x,e,e, x,x,e,e), 0) X(0, 0, 1)
-O(flagislt, T(x,x,e,e, x,x,e,e), 0) X(0, 0, 1)
-O(flagiuge, T(x,x,e,e, x,x,e,e), 0) X(0, 0, 1)
-O(flagiugt, T(x,x,e,e, x,x,e,e), 0) X(0, 0, 1)
-O(flagiule, T(x,x,e,e, x,x,e,e), 0) X(0, 0, 1)
-O(flagiult, T(x,x,e,e, x,x,e,e), 0) X(0, 0, 1)
-O(flagfeq,  T(x,x,e,e, x,x,e,e), 0) X(0, 0, 1)
-O(flagfge,  T(x,x,e,e, x,x,e,e), 0) X(0, 0, 1)
-O(flagfgt,  T(x,x,e,e, x,x,e,e), 0) X(0, 0, 1)
-O(flagfle,  T(x,x,e,e, x,x,e,e), 0) X(0, 0, 1)
-O(flagflt,  T(x,x,e,e, x,x,e,e), 0) X(0, 0, 1)
-O(flagfne,  T(x,x,e,e, x,x,e,e), 0) X(0, 0, 1)
-O(flagfo,   T(x,x,e,e, x,x,e,e), 0) X(0, 0, 1)
-O(flagfuo,  T(x,x,e,e, x,x,e,e), 0) X(0, 0, 1)
+O(flagieq,  T(x,x,e,e, x,x,e,e), 0) X(0, 0, 1) V(0)
+O(flagine,  T(x,x,e,e, x,x,e,e), 0) X(0, 0, 1) V(0)
+O(flagisge, T(x,x,e,e, x,x,e,e), 0) X(0, 0, 1) V(0)
+O(flagisgt, T(x,x,e,e, x,x,e,e), 0) X(0, 0, 1) V(0)
+O(flagisle, T(x,x,e,e, x,x,e,e), 0) X(0, 0, 1) V(0)
+O(flagislt, T(x,x,e,e, x,x,e,e), 0) X(0, 0, 1) V(0)
+O(flagiuge, T(x,x,e,e, x,x,e,e), 0) X(0, 0, 1) V(0)
+O(flagiugt, T(x,x,e,e, x,x,e,e), 0) X(0, 0, 1) V(0)
+O(flagiule, T(x,x,e,e, x,x,e,e), 0) X(0, 0, 1) V(0)
+O(flagiult, T(x,x,e,e, x,x,e,e), 0) X(0, 0, 1) V(0)
+O(flagfeq,  T(x,x,e,e, x,x,e,e), 0) X(0, 0, 1) V(0)
+O(flagfge,  T(x,x,e,e, x,x,e,e), 0) X(0, 0, 1) V(0)
+O(flagfgt,  T(x,x,e,e, x,x,e,e), 0) X(0, 0, 1) V(0)
+O(flagfle,  T(x,x,e,e, x,x,e,e), 0) X(0, 0, 1) V(0)
+O(flagflt,  T(x,x,e,e, x,x,e,e), 0) X(0, 0, 1) V(0)
+O(flagfne,  T(x,x,e,e, x,x,e,e), 0) X(0, 0, 1) V(0)
+O(flagfo,   T(x,x,e,e, x,x,e,e), 0) X(0, 0, 1) V(0)
+O(flagfuo,  T(x,x,e,e, x,x,e,e), 0) X(0, 0, 1) V(0)
 
 
 #undef T
 #undef X
+#undef V
 #undef O
 
 /*