changelog shortlog tags branches changeset file revisions annotate raw help

Mercurial > hg > plan9front / sys/src/cmd/7l/optab.c

revision 7145: 84d616f1d180
parent 7144: d0b9ab522e8b
child 7170: 55bc217eb3f5
     1.1--- a/sys/src/cmd/7l/optab.c
     1.2+++ b/sys/src/cmd/7l/optab.c
     1.3@@ -42,25 +42,42 @@ Optab	optab[] =
     1.4 
     1.5 	/* logical operations */
     1.6 	{ AAND,		C_REG,	C_REG,	C_REG,		 1, 4, 0 },
     1.7+	{ AANDW,	C_REG,	C_REG,	C_REG,		 1, 4, 0 },
     1.8 	{ AAND,		C_REG,	C_NONE,	C_REG,		 1, 4, 0 },
     1.9+	{ AANDW,	C_REG,	C_NONE,	C_REG,		 1, 4, 0 },
    1.10 	{ ABIC,		C_REG,	C_REG,	C_REG,		 1, 4, 0 },
    1.11+	{ ABICW,	C_REG,	C_REG,	C_REG,		 1, 4, 0 },
    1.12 	{ ABIC,		C_REG,	C_NONE,	C_REG,		 1, 4, 0 },
    1.13+	{ ABICW,	C_REG,	C_NONE,	C_REG,		 1, 4, 0 },
    1.14 
    1.15-	{ AAND,		C_BITCON,	C_REG,	C_REG,		53, 4, 0 },
    1.16-	{ AAND,		C_BITCON,	C_NONE,	C_REG,		53, 4, 0 },
    1.17-	{ ABIC,		C_BITCON,	C_REG,	C_REG,		53, 4, 0 },
    1.18-	{ ABIC,		C_BITCON,	C_NONE,	C_REG,		53, 4, 0 },
    1.19+	{ AAND,		C_BITCON64,C_REG,C_REG,		53, 4, 0 },
    1.20+	{ AANDW,	C_BITCON32,C_REG,C_REG,		53, 4, 0 },
    1.21+	{ AAND,		C_BITCON64,C_NONE,C_REG,	53, 4, 0 },
    1.22+	{ AANDW,	C_BITCON32,C_NONE,C_REG,	53, 4, 0 },
    1.23+	{ ABIC,		C_BITCON64,C_REG,C_REG,		53, 4, 0 },
    1.24+	{ ABICW,	C_BITCON32,C_REG,C_REG,		53, 4, 0 },
    1.25+	{ ABIC,		C_BITCON64,C_NONE,C_REG,	53, 4, 0 },
    1.26+	{ ABICW,	C_BITCON32,C_NONE,C_REG,	53, 4, 0 },
    1.27 
    1.28 	{ AAND,		C_LCON,	C_REG,	C_REG,		28, 8, 0,	LFROM },
    1.29+	{ AANDW,	C_LCON,	C_REG,	C_REG,		28, 8, 0,	LFROM },
    1.30 	{ AAND,		C_LCON,	C_NONE,	C_REG,		28, 8, 0,	LFROM },
    1.31+	{ AANDW,	C_LCON,	C_NONE,	C_REG,		28, 8, 0,	LFROM },
    1.32 	{ ABIC,		C_LCON,	C_REG,	C_REG,		28, 8, 0,	LFROM },
    1.33+	{ ABICW,	C_LCON,	C_REG,	C_REG,		28, 8, 0,	LFROM },
    1.34 	{ ABIC,		C_LCON,	C_NONE,	C_REG,		28, 8, 0,	LFROM },
    1.35+	{ ABICW,	C_LCON,	C_NONE,	C_REG,		28, 8, 0,	LFROM },
    1.36 
    1.37 	{ AAND,		C_SHIFT,C_REG,	C_REG,		 3, 4, 0 },
    1.38+	{ AANDW,	C_SHIFT,C_REG,	C_REG,		 3, 4, 0 },
    1.39 	{ AAND,		C_SHIFT,C_NONE,	C_REG,		 3, 4, 0 },
    1.40+	{ AANDW,	C_SHIFT,C_NONE,	C_REG,		 3, 4, 0 },
    1.41 	{ ABIC,		C_SHIFT,C_REG,	C_REG,		 3, 4, 0 },
    1.42+	{ ABICW,	C_SHIFT,C_REG,	C_REG,		 3, 4, 0 },
    1.43 	{ ABIC,		C_SHIFT,C_NONE,	C_REG,		 3, 4, 0 },
    1.44+	{ ABICW,	C_SHIFT,C_NONE,	C_REG,		 3, 4, 0 },
    1.45 
    1.46+	/* moves */
    1.47 	{ AMOV,		C_RSP,	C_NONE,	C_RSP,		24, 4, 0 },
    1.48 	{ AMVN,		C_REG,	C_NONE,	C_REG,		24, 4, 0 },
    1.49 	{ AMOVB,		C_REG,	C_NONE,	C_REG,		45, 4, 0 },
    1.50@@ -70,12 +87,13 @@ Optab	optab[] =
    1.51 	/* TO DO: MVN C_SHIFT */
    1.52 
    1.53 	/* MOVs that become MOVK/MOVN/MOVZ/ADD/SUB/OR */
    1.54-	{ AMOVW,		C_MOVCON,	C_NONE,	C_REG,		32, 4, 0 },
    1.55+	{ AMOVW,	C_MOVCON,	C_NONE,	C_REG,		32, 4, 0 },
    1.56 	{ AMOV,		C_MOVCON,	C_NONE,	C_REG,		32, 4, 0 },
    1.57-//	{ AMOVW,		C_ADDCON,	C_NONE,	C_REG,		2, 4, 0 },
    1.58+//	{ AMOVW,	C_ADDCON,	C_NONE,	C_REG,		2, 4, 0 },
    1.59 //	{ AMOV,		C_ADDCON,	C_NONE,	C_REG,		2, 4, 0 },
    1.60-//	{ AMOVW,		C_BITCON,	C_NONE,	C_REG,		53, 4, 0 },
    1.61-//	{ AMOV,		C_BITCON,	C_NONE,	C_REG,		53, 4, 0 },
    1.62+
    1.63+	{ AMOV,		C_BITCON64,	C_NONE,	C_REG,		53, 4, 0 },
    1.64+	{ AMOVW,	C_BITCON32,	C_NONE,	C_REG,		53, 4, 0 },
    1.65 
    1.66 	{ AMOVK,		C_LCON,	C_NONE,	C_REG,			33, 4, 0 },
    1.67