diff options
Diffstat (limited to 'lisc/lisc.h')
-rw-r--r-- | lisc/lisc.h | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/lisc/lisc.h b/lisc/lisc.h index b7b7c75..d2f6ef2 100644 --- a/lisc/lisc.h +++ b/lisc/lisc.h @@ -102,15 +102,17 @@ static inline int isreg(Ref r) #define CMPS(X) \ X(eq) X(sle) X(slt) \ X(sgt) X(sge) X(ne) /* mirror opposite cmps! */ +#define COP(c) (c==Ceq||c==Cne ? c : NCmp-1 - c) -enum Cmp { -#define C(c) C##c, - CMPS(C) -#undef C - NCmp -}; +#define X(c) C##c, +enum Cmp { CMPS(X) NCmp }; +#undef X -#define COP(c) (c==Ceq||c==Cne ? c : NCmp-1 - c) +#define TYS(X) X(l) X(sw) X(uw) X(sh) X(uh) X(sb) X(ub) + +#define X(t) T##t, +enum Ty { TYS(X) NTy }; +#undef X enum Op { OXXX, @@ -122,8 +124,6 @@ enum Op { ORem, OMul, OAnd, - OSext, - OZext, OCmp, OCmp1 = OCmp + NCmp-1, OStorel, @@ -131,10 +131,9 @@ enum Op { OStores, OStoreb, OLoad, - OLoadsh, - OLoaduh, - OLoadsb, - OLoadub, + OLoad1 = OLoad + NTy-1, + OExt, + OExt1 = OExt + NTy-1, OAlloc, OAlloc1 = OAlloc + NAlign-1, OCopy, |