cleaned up macros
[cacao.git] / alpha / ngen.h
index 8578813d056c1aab3f4ccc2eace855c34d069724..f7e01207e3115f836f709052a7ddbdc6fd649a3d 100644 (file)
@@ -177,31 +177,53 @@ int parentargs_base; /* offset in stackframe for the parameter from the caller*/
 #define M_JSR(a,b)              M_MEM (0x1a,a,b,0x4000)         /* call sbr   */
 #define M_RET(a,b)              M_MEM (0x1a,a,b,0x8000)         /* return     */
 
-#define M_IADD(a,b,c,const)     M_OP3 (0x10,0x0,  a,b,c,const)  /* 32 add     */
-#define M_LADD(a,b,c,const)     M_OP3 (0x10,0x20, a,b,c,const)  /* 64 add     */
-#define M_ISUB(a,b,c,const)     M_OP3 (0x10,0x09, a,b,c,const)  /* 32 sub     */
-#define M_LSUB(a,b,c,const)     M_OP3 (0x10,0x29, a,b,c,const)  /* 64 sub     */
-#define M_IMUL(a,b,c,const)     M_OP3 (0x13,0x00, a,b,c,const)  /* 32 mul     */
-#define M_LMUL(a,b,c,const)     M_OP3 (0x13,0x20, a,b,c,const)  /* 64 mul     */
-
-#define M_CMPEQ(a,b,c,const)    M_OP3 (0x10,0x2d, a,b,c,const)  /* c = a == b */
-#define M_CMPLT(a,b,c,const)    M_OP3 (0x10,0x4d, a,b,c,const)  /* c = a <  b */
-#define M_CMPLE(a,b,c,const)    M_OP3 (0x10,0x6d, a,b,c,const)  /* c = a <= b */
-
-#define M_CMPULE(a,b,c,const)   M_OP3 (0x10,0x3d, a,b,c,const)  /* c = a <= b */
-#define M_CMPULT(a,b,c,const)   M_OP3 (0x10,0x1d, a,b,c,const)  /* c = a <= b */
-
-#define M_AND(a,b,c,const)      M_OP3 (0x11,0x00, a,b,c,const)  /* c = a &  b */
-#define M_OR(a,b,c,const)       M_OP3 (0x11,0x20, a,b,c,const)  /* c = a |  b */
-#define M_XOR(a,b,c,const)      M_OP3 (0x11,0x40, a,b,c,const)  /* c = a ^  b */
-
-#define M_MOV(a,c)              M_OR (a,a,c,0)                  /* c = a      */
-#define M_CLR(c)                M_OR (31,31,c,0)                /* c = 0      */
-#define M_NOP                   M_OR (31,31,31,0)               /* ;          */
-
-#define M_SLL(a,b,c,const)      M_OP3 (0x12,0x39, a,b,c,const)  /* c = a << b */
-#define M_SRA(a,b,c,const)      M_OP3 (0x12,0x3c, a,b,c,const)  /* c = a >> b */
-#define M_SRL(a,b,c,const)      M_OP3 (0x12,0x34, a,b,c,const)  /* c = a >>>b */
+#define M_IADD(a,b,c)           M_OP3 (0x10,0x0,  a,b,c,0)      /* 32 add     */
+#define M_LADD(a,b,c)           M_OP3 (0x10,0x20, a,b,c,0)      /* 64 add     */
+#define M_ISUB(a,b,c)           M_OP3 (0x10,0x09, a,b,c,0)      /* 32 sub     */
+#define M_LSUB(a,b,c)           M_OP3 (0x10,0x29, a,b,c,0)      /* 64 sub     */
+#define M_IMUL(a,b,c)           M_OP3 (0x13,0x00, a,b,c,0)      /* 32 mul     */
+#define M_LMUL(a,b,c)           M_OP3 (0x13,0x20, a,b,c,0)      /* 64 mul     */
+
+#define M_IADD_IMM(a,b,c)       M_OP3 (0x10,0x0,  a,b,c,1)      /* 32 add     */
+#define M_LADD_IMM(a,b,c)       M_OP3 (0x10,0x20, a,b,c,1)      /* 64 add     */
+#define M_ISUB_IMM(a,b,c)       M_OP3 (0x10,0x09, a,b,c,1)      /* 32 sub     */
+#define M_LSUB_IMM(a,b,c)       M_OP3 (0x10,0x29, a,b,c,1)      /* 64 sub     */
+#define M_IMUL_IMM(a,b,c)       M_OP3 (0x13,0x00, a,b,c,1)      /* 32 mul     */
+#define M_LMUL_IMM(a,b,c)       M_OP3 (0x13,0x20, a,b,c,1)      /* 64 mul     */
+
+#define M_CMPEQ(a,b,c)          M_OP3 (0x10,0x2d, a,b,c,0)      /* c = a == b */
+#define M_CMPLT(a,b,c)          M_OP3 (0x10,0x4d, a,b,c,0)      /* c = a <  b */
+#define M_CMPLE(a,b,c)          M_OP3 (0x10,0x6d, a,b,c,0)      /* c = a <= b */
+
+#define M_CMPULE(a,b,c)         M_OP3 (0x10,0x3d, a,b,c,0)      /* c = a <= b */
+#define M_CMPULT(a,b,c)         M_OP3 (0x10,0x1d, a,b,c,0)      /* c = a <= b */
+
+#define M_CMPEQ_IMM(a,b,c)      M_OP3 (0x10,0x2d, a,b,c,1)      /* c = a == b */
+#define M_CMPLT_IMM(a,b,c)      M_OP3 (0x10,0x4d, a,b,c,1)      /* c = a <  b */
+#define M_CMPLE_IMM(a,b,c)      M_OP3 (0x10,0x6d, a,b,c,1)      /* c = a <= b */
+
+#define M_CMPULE_IMM(a,b,c)     M_OP3 (0x10,0x3d, a,b,c,1)      /* c = a <= b */
+#define M_CMPULT_IMM(a,b,c)     M_OP3 (0x10,0x1d, a,b,c,1)      /* c = a <= b */
+
+#define M_AND(a,b,c)            M_OP3 (0x11,0x00, a,b,c,0)      /* c = a &  b */
+#define M_OR( a,b,c)            M_OP3 (0x11,0x20, a,b,c,0)      /* c = a |  b */
+#define M_XOR(a,b,c)            M_OP3 (0x11,0x40, a,b,c,0)      /* c = a ^  b */
+
+#define M_AND_IMM(a,b,c)        M_OP3 (0x11,0x00, a,b,c,1)      /* c = a &  b */
+#define M_OR_IMM( a,b,c)        M_OP3 (0x11,0x20, a,b,c,1)      /* c = a |  b */
+#define M_XOR_IMM(a,b,c)        M_OP3 (0x11,0x40, a,b,c,1)      /* c = a ^  b */
+
+#define M_MOV(a,c)              M_OR (a,a,c)                    /* c = a      */
+#define M_CLR(c)                M_OR (31,31,c)                  /* c = 0      */
+#define M_NOP                   M_OR (31,31,31)                 /* ;          */
+
+#define M_SLL(a,b,c)            M_OP3 (0x12,0x39, a,b,c,0)      /* c = a << b */
+#define M_SRA(a,b,c)            M_OP3 (0x12,0x3c, a,b,c,0)      /* c = a >> b */
+#define M_SRL(a,b,c)            M_OP3 (0x12,0x34, a,b,c,0)      /* c = a >>>b */
+
+#define M_SLL_IMM(a,b,c)        M_OP3 (0x12,0x39, a,b,c,1)      /* c = a << b */
+#define M_SRA_IMM(a,b,c)        M_OP3 (0x12,0x3c, a,b,c,1)      /* c = a >> b */
+#define M_SRL_IMM(a,b,c)        M_OP3 (0x12,0x34, a,b,c,1)      /* c = a >>>b */
 
 #define M_FLD(a,b,disp)         M_MEM (0x22,a,b,disp)           /* load flt   */
 #define M_DLD(a,b,disp)         M_MEM (0x23,a,b,disp)           /* load dbl   */
@@ -226,17 +248,17 @@ int parentargs_base; /* offset in stackframe for the parameter from the caller*/
 #define M_FDIVS(a,b,c)          M_FOP3 (0x16, 0x583, a,b,c)     /* flt div    */
 #define M_DDIVS(a,b,c)          M_FOP3 (0x16, 0x5a3, a,b,c)     /* dbl div    */
 
-#define M_CVTDF(a,b,c)          M_FOP3 (0x16, 0x0ac, a,b,c)     /* dbl2long   */
-#define M_CVTLF(a,b,c)          M_FOP3 (0x16, 0x0bc, a,b,c)     /* long2flt   */
-#define M_CVTLD(a,b,c)          M_FOP3 (0x16, 0x0be, a,b,c)     /* long2dbl   */
-#define M_CVTDL(a,b,c)          M_FOP3 (0x16, 0x1af, a,b,c)     /* dbl2long   */
-#define M_CVTDL_C(a,b,c)        M_FOP3 (0x16, 0x12f, a,b,c)     /* dbl2long   */
-#define M_CVTLI(a,b)            M_FOP3 (0x17, 0x130, 31,a,b)    /* long2int   */
+#define M_CVTDF(b,c)            M_FOP3 (0x16, 0x0ac, 31,b,c)    /* dbl2long   */
+#define M_CVTLF(b,c)            M_FOP3 (0x16, 0x0bc, 31,b,c)    /* long2flt   */
+#define M_CVTLD(b,c)            M_FOP3 (0x16, 0x0be, 31,b,c)    /* long2dbl   */
+#define M_CVTDL(b,c)            M_FOP3 (0x16, 0x1af, 31,b,c)    /* dbl2long   */
+#define M_CVTDL_C(b,c)          M_FOP3 (0x16, 0x12f, 31,b,c)    /* dbl2long   */
+#define M_CVTLI(b,c)            M_FOP3 (0x17, 0x130, 31,b,c)    /* long2int   */
 
-#define M_CVTDFS(a,b,c)         M_FOP3 (0x16, 0x5ac, a,b,c)     /* dbl2long   */
-#define M_CVTDLS(a,b,c)         M_FOP3 (0x16, 0x5af, a,b,c)     /* dbl2long   */
-#define M_CVTDL_CS(a,b,c)       M_FOP3 (0x16, 0x52f, a,b,c)     /* dbl2long   */
-#define M_CVTLIS(a,b)           M_FOP3 (0x17, 0x530, 31,a,b)    /* long2int   */
+#define M_CVTDFS(b,c)           M_FOP3 (0x16, 0x5ac, 31,b,c)    /* dbl2long   */
+#define M_CVTDLS(b,c)           M_FOP3 (0x16, 0x5af, 31,b,c)    /* dbl2long   */
+#define M_CVTDL_CS(b,c)         M_FOP3 (0x16, 0x52f, 31,b,c)    /* dbl2long   */
+#define M_CVTLIS(b,c)           M_FOP3 (0x17, 0x530, 31,b,c)    /* long2int   */
 
 #define M_FCMPEQ(a,b,c)         M_FOP3 (0x16, 0x0a5, a,b,c)     /* c = a==b   */
 #define M_FCMPLT(a,b,c)         M_FOP3 (0x16, 0x0a6, a,b,c)     /* c = a<b    */
@@ -255,49 +277,99 @@ int parentargs_base; /* offset in stackframe for the parameter from the caller*/
 
 #define M_TRAPB                 M_MEM (0x18,0,0,0x0000)        /* trap barrier*/
 
-#define M_S4ADDL(a,b,c,const)   M_OP3 (0x10,0x02, a,b,c,const) /* c = a*4 + b */
-#define M_S4ADDQ(a,b,c,const)   M_OP3 (0x10,0x22, a,b,c,const) /* c = a*4 + b */
-#define M_S4SUBL(a,b,c,const)   M_OP3 (0x10,0x0b, a,b,c,const) /* c = a*4 - b */
-#define M_S4SUBQ(a,b,c,const)   M_OP3 (0x10,0x2b, a,b,c,const) /* c = a*4 - b */
-#define M_S8ADDL(a,b,c,const)   M_OP3 (0x10,0x12, a,b,c,const) /* c = a*8 + b */
-#define M_S8ADDQ(a,b,c,const)   M_OP3 (0x10,0x32, a,b,c,const) /* c = a*8 + b */
-#define M_S8SUBL(a,b,c,const)   M_OP3 (0x10,0x1b, a,b,c,const) /* c = a*8 - b */
-#define M_S8SUBQ(a,b,c,const)   M_OP3 (0x10,0x3b, a,b,c,const) /* c = a*8 - b */
-#define M_SAADDQ(a,b,c,const)   M_S8ADDQ(a,b,c,const)          /* c = a*8 + b */
+#define M_S4ADDL(a,b,c)         M_OP3 (0x10,0x02, a,b,c,0)     /* c = a*4 + b */
+#define M_S4ADDQ(a,b,c)         M_OP3 (0x10,0x22, a,b,c,0)     /* c = a*4 + b */
+#define M_S4SUBL(a,b,c)         M_OP3 (0x10,0x0b, a,b,c,0)     /* c = a*4 - b */
+#define M_S4SUBQ(a,b,c)         M_OP3 (0x10,0x2b, a,b,c,0)     /* c = a*4 - b */
+#define M_S8ADDL(a,b,c)         M_OP3 (0x10,0x12, a,b,c,0)     /* c = a*8 + b */
+#define M_S8ADDQ(a,b,c)         M_OP3 (0x10,0x32, a,b,c,0)     /* c = a*8 + b */
+#define M_S8SUBL(a,b,c)         M_OP3 (0x10,0x1b, a,b,c,0)     /* c = a*8 - b */
+#define M_S8SUBQ(a,b,c)         M_OP3 (0x10,0x3b, a,b,c,0)     /* c = a*8 - b */
+#define M_SAADDQ(a,b,c)         M_S8ADDQ(a,b,c)                /* c = a*8 + b */
+
+#define M_S4ADDL_IMM(a,b,c)     M_OP3 (0x10,0x02, a,b,c,1)     /* c = a*4 + b */
+#define M_S4ADDQ_IMM(a,b,c)     M_OP3 (0x10,0x22, a,b,c,1)     /* c = a*4 + b */
+#define M_S4SUBL_IMM(a,b,c)     M_OP3 (0x10,0x0b, a,b,c,1)     /* c = a*4 - b */
+#define M_S4SUBQ_IMM(a,b,c)     M_OP3 (0x10,0x2b, a,b,c,1)     /* c = a*4 - b */
+#define M_S8ADDL_IMM(a,b,c)     M_OP3 (0x10,0x12, a,b,c,1)     /* c = a*8 + b */
+#define M_S8ADDQ_IMM(a,b,c)     M_OP3 (0x10,0x32, a,b,c,1)     /* c = a*8 + b */
+#define M_S8SUBL_IMM(a,b,c)     M_OP3 (0x10,0x1b, a,b,c,1)     /* c = a*8 - b */
+#define M_S8SUBQ_IMM(a,b,c)     M_OP3 (0x10,0x3b, a,b,c,1)     /* c = a*8 - b */
 
 #define M_LLD_U(a,b,disp)       M_MEM (0x0b,a,b,disp)          /* unalign ld  */
 #define M_LST_U(a,b,disp)       M_MEM (0x0f,a,b,disp)          /* unalign st  */
 
-#define M_ZAP(a,b,c,const)      M_OP3 (0x12,0x30, a,b,c,const)
-#define M_ZAPNOT(a,b,c,const)   M_OP3 (0x12,0x31, a,b,c,const)
-
-#define M_BZEXT(a,b)            M_ZAPNOT(a, 0x01, b, CONST)    /*  8 zeroext  */
-#define M_CZEXT(a,b)            M_ZAPNOT(a, 0x03, b, CONST)    /* 16 zeroext  */
-#define M_IZEXT(a,b)            M_ZAPNOT(a, 0x0f, b, CONST)    /* 32 zeroext  */
-
-#define M_EXTBL(a,b,c,const)    M_OP3 (0x12,0x06, a,b,c,const)
-#define M_EXTWL(a,b,c,const)    M_OP3 (0x12,0x16, a,b,c,const)
-#define M_EXTLL(a,b,c,const)    M_OP3 (0x12,0x26, a,b,c,const)
-#define M_EXTQL(a,b,c,const)    M_OP3 (0x12,0x36, a,b,c,const)
-#define M_EXTWH(a,b,c,const)    M_OP3 (0x12,0x5a, a,b,c,const)
-#define M_EXTLH(a,b,c,const)    M_OP3 (0x12,0x6a, a,b,c,const)
-#define M_EXTQH(a,b,c,const)    M_OP3 (0x12,0x7a, a,b,c,const)
-#define M_INSBL(a,b,c,const)    M_OP3 (0x12,0x0b, a,b,c,const)
-#define M_INSWL(a,b,c,const)    M_OP3 (0x12,0x1b, a,b,c,const)
-#define M_INSLL(a,b,c,const)    M_OP3 (0x12,0x2b, a,b,c,const)
-#define M_INSQL(a,b,c,const)    M_OP3 (0x12,0x3b, a,b,c,const)
-#define M_INSWH(a,b,c,const)    M_OP3 (0x12,0x57, a,b,c,const)
-#define M_INSLH(a,b,c,const)    M_OP3 (0x12,0x67, a,b,c,const)
-#define M_INSQH(a,b,c,const)    M_OP3 (0x12,0x77, a,b,c,const)
-#define M_MSKBL(a,b,c,const)    M_OP3 (0x12,0x02, a,b,c,const)
-#define M_MSKWL(a,b,c,const)    M_OP3 (0x12,0x12, a,b,c,const)
-#define M_MSKLL(a,b,c,const)    M_OP3 (0x12,0x22, a,b,c,const)
-#define M_MSKQL(a,b,c,const)    M_OP3 (0x12,0x32, a,b,c,const)
-#define M_MSKWH(a,b,c,const)    M_OP3 (0x12,0x52, a,b,c,const)
-#define M_MSKLH(a,b,c,const)    M_OP3 (0x12,0x62, a,b,c,const)
-#define M_MSKQH(a,b,c,const)    M_OP3 (0x12,0x72, a,b,c,const)
-
-#define M_UMULH(a,b,c,const)    M_OP3 (0x13,0x30, a,b,c,const) /* 64 umulh    */
+#define M_ZAP(a,b,c)            M_OP3 (0x12,0x30, a,b,c,0)
+#define M_ZAPNOT(a,b,c)         M_OP3 (0x12,0x31, a,b,c,0)
+
+#define M_ZAP_IMM(a,b,c)        M_OP3 (0x12,0x30, a,b,c,1)
+#define M_ZAPNOT_IMM(a,b,c)     M_OP3 (0x12,0x31, a,b,c,1)
+
+#define M_BZEXT(a,b)            M_ZAPNOT_IMM(a, 0x01, b)       /*  8 zeroext  */
+#define M_CZEXT(a,b)            M_ZAPNOT_IMM(a, 0x03, b)       /* 16 zeroext  */
+#define M_IZEXT(a,b)            M_ZAPNOT_IMM(a, 0x0f, b)       /* 32 zeroext  */
+
+#define M_EXTBL(a,b,c)          M_OP3 (0x12,0x06, a,b,c,0)
+#define M_EXTWL(a,b,c)          M_OP3 (0x12,0x16, a,b,c,0)
+#define M_EXTLL(a,b,c)          M_OP3 (0x12,0x26, a,b,c,0)
+#define M_EXTQL(a,b,c)          M_OP3 (0x12,0x36, a,b,c,0)
+#define M_EXTWH(a,b,c)          M_OP3 (0x12,0x5a, a,b,c,0)
+#define M_EXTLH(a,b,c)          M_OP3 (0x12,0x6a, a,b,c,0)
+#define M_EXTQH(a,b,c)          M_OP3 (0x12,0x7a, a,b,c,0)
+#define M_INSBL(a,b,c)          M_OP3 (0x12,0x0b, a,b,c,0)
+#define M_INSWL(a,b,c)          M_OP3 (0x12,0x1b, a,b,c,0)
+#define M_INSLL(a,b,c)          M_OP3 (0x12,0x2b, a,b,c,0)
+#define M_INSQL(a,b,c)          M_OP3 (0x12,0x3b, a,b,c,0)
+#define M_INSWH(a,b,c)          M_OP3 (0x12,0x57, a,b,c,0)
+#define M_INSLH(a,b,c)          M_OP3 (0x12,0x67, a,b,c,0)
+#define M_INSQH(a,b,c)          M_OP3 (0x12,0x77, a,b,c,0)
+#define M_MSKBL(a,b,c)          M_OP3 (0x12,0x02, a,b,c,0)
+#define M_MSKWL(a,b,c)          M_OP3 (0x12,0x12, a,b,c,0)
+#define M_MSKLL(a,b,c)          M_OP3 (0x12,0x22, a,b,c,0)
+#define M_MSKQL(a,b,c)          M_OP3 (0x12,0x32, a,b,c,0)
+#define M_MSKWH(a,b,c)          M_OP3 (0x12,0x52, a,b,c,0)
+#define M_MSKLH(a,b,c)          M_OP3 (0x12,0x62, a,b,c,0)
+#define M_MSKQH(a,b,c)          M_OP3 (0x12,0x72, a,b,c,0)
+
+#define M_EXTBL_IMM(a,b,c)      M_OP3 (0x12,0x06, a,b,c,1)
+#define M_EXTWL_IMM(a,b,c)      M_OP3 (0x12,0x16, a,b,c,1)
+#define M_EXTLL_IMM(a,b,c)      M_OP3 (0x12,0x26, a,b,c,1)
+#define M_EXTQL_IMM(a,b,c)      M_OP3 (0x12,0x36, a,b,c,1)
+#define M_EXTWH_IMM(a,b,c)      M_OP3 (0x12,0x5a, a,b,c,1)
+#define M_EXTLH_IMM(a,b,c)      M_OP3 (0x12,0x6a, a,b,c,1)
+#define M_EXTQH_IMM(a,b,c)      M_OP3 (0x12,0x7a, a,b,c,1)
+#define M_INSBL_IMM(a,b,c)      M_OP3 (0x12,0x0b, a,b,c,1)
+#define M_INSWL_IMM(a,b,c)      M_OP3 (0x12,0x1b, a,b,c,1)
+#define M_INSLL_IMM(a,b,c)      M_OP3 (0x12,0x2b, a,b,c,1)
+#define M_INSQL_IMM(a,b,c)      M_OP3 (0x12,0x3b, a,b,c,1)
+#define M_INSWH_IMM(a,b,c)      M_OP3 (0x12,0x57, a,b,c,1)
+#define M_INSLH_IMM(a,b,c)      M_OP3 (0x12,0x67, a,b,c,1)
+#define M_INSQH_IMM(a,b,c)      M_OP3 (0x12,0x77, a,b,c,1)
+#define M_MSKBL_IMM(a,b,c)      M_OP3 (0x12,0x02, a,b,c,1)
+#define M_MSKWL_IMM(a,b,c)      M_OP3 (0x12,0x12, a,b,c,1)
+#define M_MSKLL_IMM(a,b,c)      M_OP3 (0x12,0x22, a,b,c,1)
+#define M_MSKQL_IMM(a,b,c)      M_OP3 (0x12,0x32, a,b,c,1)
+#define M_MSKWH_IMM(a,b,c)      M_OP3 (0x12,0x52, a,b,c,1)
+#define M_MSKLH_IMM(a,b,c)      M_OP3 (0x12,0x62, a,b,c,1)
+#define M_MSKQH_IMM(a,b,c)      M_OP3 (0x12,0x72, a,b,c,1)
+
+#define M_UMULH(a,b,c)          M_OP3 (0x13,0x30, a,b,c,0)     /* 64 umulh    */
+
+#define M_UMULH_IMM(a,b,c)      M_OP3 (0x13,0x30, a,b,c,1)     /* 64 umulh    */
+
+#define M_CMOVEQ(a,b,c)         M_OP3 (0x11,0x24, a,b,c,0)     /* a==0 ? c=b  */
+#define M_CMOVNE(a,b,c)         M_OP3 (0x11,0x26, a,b,c,0)     /* a!=0 ? c=b  */
+#define M_CMOVLT(a,b,c)         M_OP3 (0x11,0x44, a,b,c,0)     /* a< 0 ? c=b  */
+#define M_CMOVGE(a,b,c)         M_OP3 (0x11,0x46, a,b,c,0)     /* a>=0 ? c=b  */
+#define M_CMOVLE(a,b,c)         M_OP3 (0x11,0x64, a,b,c,0)     /* a<=0 ? c=b  */
+#define M_CMOVGT(a,b,c)         M_OP3 (0x11,0x66, a,b,c,0)     /* a> 0 ? c=b  */
+
+#define M_CMOVEQ_IMM(a,b,c)     M_OP3 (0x11,0x24, a,b,c,1)     /* a==0 ? c=b  */
+#define M_CMOVNE_IMM(a,b,c)     M_OP3 (0x11,0x26, a,b,c,1)     /* a!=0 ? c=b  */
+#define M_CMOVLT_IMM(a,b,c)     M_OP3 (0x11,0x44, a,b,c,1)     /* a< 0 ? c=b  */
+#define M_CMOVGE_IMM(a,b,c)     M_OP3 (0x11,0x46, a,b,c,1)     /* a>=0 ? c=b  */
+#define M_CMOVLE_IMM(a,b,c)     M_OP3 (0x11,0x64, a,b,c,1)     /* a<=0 ? c=b  */
+#define M_CMOVGT_IMM(a,b,c)     M_OP3 (0x11,0x66, a,b,c,1)     /* a> 0 ? c=b  */
 
 /* macros for unused commands (see an Alpha-manual for description) ***********/ 
 
@@ -305,13 +377,6 @@ int parentargs_base; /* offset in stackframe for the parameter from the caller*/
 #define M_ORNOT(a,b,c,const)    M_OP3 (0x11,0x28, a,b,c,const) /* c = a |~ b  */
 #define M_XORNOT(a,b,c,const)   M_OP3 (0x11,0x48, a,b,c,const) /* c = a ^~ b  */
 
-#define M_CMOVEQ(a,b,c,const)   M_OP3 (0x11,0x24, a,b,c,const) /* a==0 ? c=b  */
-#define M_CMOVNE(a,b,c,const)   M_OP3 (0x11,0x26, a,b,c,const) /* a!=0 ? c=b  */
-#define M_CMOVLT(a,b,c,const)   M_OP3 (0x11,0x44, a,b,c,const) /* a< 0 ? c=b  */
-#define M_CMOVGE(a,b,c,const)   M_OP3 (0x11,0x46, a,b,c,const) /* a>=0 ? c=b  */
-#define M_CMOVLE(a,b,c,const)   M_OP3 (0x11,0x64, a,b,c,const) /* a<=0 ? c=b  */
-#define M_CMOVGT(a,b,c,const)   M_OP3 (0x11,0x66, a,b,c,const) /* a> 0 ? c=b  */
-
 #define M_CMPBGE(a,b,c,const)   M_OP3 (0x10,0x0f, a,b,c,const)
 
 #define M_FCMPUN(a,b,c)         M_FOP3 (0x16, 0x0a4, a,b,c)    /* unordered   */