Mesa (master): nvc0: properly distribute macros in source form

Ben Skeggs darktama at kemper.freedesktop.org
Wed May 14 23:55:03 UTC 2014


Module: Mesa
Branch: master
Commit: 737477dac33d68b00b34019258d663945fbfeb56
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=737477dac33d68b00b34019258d663945fbfeb56

Author: Ben Skeggs <bskeggs at redhat.com>
Date:   Fri May  9 15:55:44 2014 +1000

nvc0: properly distribute macros in source form

Signed-off-by: Ben Skeggs <bskeggs at redhat.com>
Reviewed-by: Ilia Mirkin <imirkin at alum.mit.edu>

---

 src/gallium/drivers/nouveau/nvc0/mme/Makefile      |    7 +
 src/gallium/drivers/nouveau/nvc0/mme/com9097.mme   |  225 +++++++++++++++++++
 src/gallium/drivers/nouveau/nvc0/mme/com9097.mme.h |  125 +++++++++++
 .../drivers/nouveau/nvc0/nvc0_graph_macros.h       |  236 --------------------
 src/gallium/drivers/nouveau/nvc0/nvc0_screen.c     |   16 +-
 5 files changed, 365 insertions(+), 244 deletions(-)

diff --git a/src/gallium/drivers/nouveau/nvc0/mme/Makefile b/src/gallium/drivers/nouveau/nvc0/mme/Makefile
new file mode 100644
index 0000000..1c0f583
--- /dev/null
+++ b/src/gallium/drivers/nouveau/nvc0/mme/Makefile
@@ -0,0 +1,7 @@
+ENVYAS?=envyas
+TARGETS=com9097.mme.h
+
+all: $(TARGETS)
+
+$(TARGETS): %.mme.h: %.mme
+	$(ENVYAS) -a -w -mmacro $< -o $@
diff --git a/src/gallium/drivers/nouveau/nvc0/mme/com9097.mme b/src/gallium/drivers/nouveau/nvc0/mme/com9097.mme
new file mode 100644
index 0000000..da9975b
--- /dev/null
+++ b/src/gallium/drivers/nouveau/nvc0/mme/com9097.mme
@@ -0,0 +1,225 @@
+/* extrinsrt r1, r2, src, size, dst: replace bits [dst:dst+size) in r1
+ *  with bits [src:src+size) in r2
+ *
+ * bra(n)z annul: no delay slot
+ */
+
+/* Bitfield version of NVC0_3D_VERTEX_ARRAY_PER_INSTANCE[].
+ * Args: size, bitfield
+ */
+.section #mme9097_per_instance_bf
+   parm $r3
+   mov $r2 0x0
+   maddr 0x1620
+loop:
+   mov $r1 (add $r1 -1)
+   send (extrshl $r3 $r2 0x1 0x0)
+   exit branz $r1 #loop
+   mov $r2 (add $r2 0x1)
+
+/* The comments above the macros describe what they *should* be doing,
+ * but we use less functionality for now.
+ */
+
+/*
+ * for (i = 0; i < 8; ++i)
+ *    [NVC0_3D_BLEND_ENABLE(i)] = BIT(i of arg);
+ *
+ * [3428] = arg;
+ *
+ * if (arg == 0 || [NVC0_3D_MULTISAMPLE_ENABLE] == 0)
+ *    [0d9c] = 0;
+ * else
+ *    [0d9c] = [342c];
+ */
+.section #mme9097_blend_enables
+   maddr 0x14d8
+   send (extrinsrt 0x0 $r1 0x0 0x1 0x0)
+   send (extrinsrt 0x0 $r1 0x1 0x1 0x0)
+   send (extrinsrt 0x0 $r1 0x2 0x1 0x0)
+   send (extrinsrt 0x0 $r1 0x3 0x1 0x0)
+   send (extrinsrt 0x0 $r1 0x4 0x1 0x0)
+   send (extrinsrt 0x0 $r1 0x5 0x1 0x0)
+   exit send (extrinsrt 0x0 $r1 0x6 0x1 0x0)
+   send (extrinsrt 0x0 $r1 0x7 0x1 0x0)
+
+/*
+ * uint64 limit = (parm(0) << 32) | parm(1);
+ * uint64 start = (parm(2) << 32);
+ *
+ * if (limit) {
+ *    start |= parm(3);
+ *    --limit;
+ * } else {
+ *    start |= 1;
+ * }
+ *
+ * [0x1c04 + (arg & 0xf) * 16 + 0] = (start >> 32) & 0xff;
+ * [0x1c04 + (arg & 0xf) * 16 + 4] = start & 0xffffffff;
+ * [0x1f00 + (arg & 0xf) * 8 + 0] = (limit >> 32) & 0xff;
+ * [0x1f00 + (arg & 0xf) * 8 + 4] = limit & 0xffffffff;
+ */
+.section #mme9097_vertex_array_select
+   parm $r2
+   parm $r3
+   parm $r4
+   parm $r5
+   mov $r6 (extrinsrt 0x0 $r1 0x0 0x4 0x2)
+   mov $r7 (extrinsrt 0x0 $r1 0x0 0x4 0x1)
+   maddr $r6 (add $r6 0x1701)
+   send $r4
+   send $r5
+   maddr $r7 (add $r7 0x17c0)
+   exit send $r2
+   send $r3
+
+/*
+ * [GL_POLYGON_MODE_FRONT] = arg;
+ *
+ * if (BIT(31 of [0x3410]))
+ *    [1a24] = 0x7353;
+ *
+ * if ([NVC0_3D_SP_SELECT(3)] == 0x31 || [NVC0_3D_SP_SELECT(4)] == 0x41)
+ *    [02ec] = 0;
+ * else
+ * if ([GL_POLYGON_MODE_BACK] == GL_LINE || arg == GL_LINE)
+ *    [02ec] = BYTE(1 of [0x3410]) << 4;
+ * else
+ *    [02ec] = BYTE(0 of [0x3410]) << 4;
+ */
+.section #mme9097_poly_mode_front
+   read $r2 0x36c
+   read $r3 0x830
+   mov $r7 (or $r1 $r2)
+   read $r4 0x840
+   mov $r2 0x1
+   mov $r6 0x60
+   mov $r7 (and $r7 $r2)
+   braz $r7 #locn_0a_pmf
+   maddr 0x36b
+   mov $r6 0x200
+locn_0a_pmf:
+   mov $r7 (or $r3 $r4)
+   mov $r7 (and $r7 $r2)
+   braz $r7 #locn_0f_pmf
+   send $r1
+   mov $r6 0x0
+locn_0f_pmf:
+   exit maddr 0xbb
+   send $r6
+
+/*
+ * [GL_POLYGON_MODE_BACK] = arg;
+ *
+ * if (BIT(31 of [0x3410]))
+ *    [1a24] = 0x7353;
+ *
+ * if ([NVC0_3D_SP_SELECT(3)] == 0x31 || [NVC0_3D_SP_SELECT(4)] == 0x41)
+ *    [02ec] = 0;
+ * else
+ * if ([GL_POLYGON_MODE_FRONT] == GL_LINE || arg == GL_LINE)
+ *    [02ec] = BYTE(1 of [0x3410]) << 4;
+ * else
+ *    [02ec] = BYTE(0 of [0x3410]) << 4;
+ */
+/* NOTE: 0x3410 = 0x80002006 by default,
+ *  POLYGON_MODE == GL_LINE check replaced by (MODE & 1)
+ *  SP_SELECT(i) == (i << 4) | 1 check replaced by SP_SELECT(i) & 1
+ */
+.section #mme9097_poly_mode_back
+   read $r2 0x36b
+   read $r3 0x830
+   mov $r7 (or $r1 $r2)
+   read $r4 0x840
+   mov $r2 0x1
+   mov $r6 0x60
+   mov $r7 (and $r7 $r2)
+   braz $r7 #locn_0a_pmb
+   maddr 0x36c
+   mov $r6 0x200
+locn_0a_pmb:
+   mov $r7 (or $r3 $r4)
+   mov $r7 (and $r7 $r2)
+   braz $r7 #locn_0f_pmb
+   send $r1
+   mov $r6 0x0
+locn_0f_pmb:
+   exit maddr 0xbb
+   send $r6
+
+/*
+ * [NVC0_3D_SP_SELECT(4)] = arg
+ *
+ * if BIT(31 of [0x3410]) == 0
+ *    [1a24] = 0x7353;
+ *
+ * if ([NVC0_3D_SP_SELECT(3)] == 0x31 || arg == 0x41)
+ *    [02ec] = 0
+ * else
+ * if (any POLYGON MODE == LINE)
+ *    [02ec] = BYTE(1 of [3410]) << 4;
+ * else
+ *    [02ec] = BYTE(0 of [3410]) << 4; // 02ec valid bits are 0xff1
+ */
+.section #mme9097_gp_select
+   read $r2 0x36b
+   read $r3 0x36c
+   mov $r7 (or $r2 $r3)
+   read $r4 0x830
+   mov $r2 0x1
+   mov $r6 0x60
+   mov $r7 (and $r7 $r2)
+   braz $r7 #locn_0a_gs
+   maddr 0x840
+   mov $r6 0x200
+locn_0a_gs:
+   mov $r7 (or $r1 $r4)
+   mov $r7 (and $r7 $r2)
+   braz $r7 #locn_0f_gs
+   send $r1
+   mov $r6 0x0
+locn_0f_gs:
+   exit maddr 0xbb
+   send $r6
+
+/*
+ * [NVC0_3D_SP_SELECT(3)] = arg
+ *
+ * if BIT(31 of [0x3410]) == 0
+ *    [1a24] = 0x7353;
+ *
+ * if (arg == 0x31) {
+ *    if (BIT(2 of [0x3430])) {
+ *       int i = 15; do { --i; } while(i);
+ *       [0x1a2c] = 0;
+ *    }
+ * }
+ *
+ * if ([NVC0_3D_SP_SELECT(4)] == 0x41 || arg == 0x31)
+ *    [02ec] = 0
+ * else
+ * if ([any POLYGON_MODE] == GL_LINE)
+ *    [02ec] = BYTE(1 of [3410]) << 4;
+ * else
+ *    [02ec] = BYTE(0 of [3410]) << 4;
+ */
+.section #mme9097_tep_select
+   read $r2 0x36b
+   read $r3 0x36c
+   mov $r7 (or $r2 $r3)
+   read $r4 0x840
+   mov $r2 0x1
+   mov $r6 0x60
+   mov $r7 (and $r7 $r2)
+   braz $r7 #locn_0a_ts
+   maddr 0x830
+   mov $r6 0x200
+locn_0a_ts:
+   mov $r7 (or $r1 $r4)
+   mov $r7 (and $r7 $r2)
+   braz $r7 #locn_0f_ts
+   send $r1
+   mov $r6 0x0
+locn_0f_ts:
+   exit maddr 0xbb
+   send $r6
diff --git a/src/gallium/drivers/nouveau/nvc0/mme/com9097.mme.h b/src/gallium/drivers/nouveau/nvc0/mme/com9097.mme.h
new file mode 100644
index 0000000..fd81a2f
--- /dev/null
+++ b/src/gallium/drivers/nouveau/nvc0/mme/com9097.mme.h
@@ -0,0 +1,125 @@
+uint32_t mme9097_per_instance_bf[] = {
+/* 0x0003: loop */
+	0x00000301,
+	0x00000211,
+	0x05880021,
+	0xffffc911,
+	0x0040d043,
+	0xffff8897,
+	0x00005211,
+};
+
+uint32_t mme9097_blend_enables[] = {
+	0x05360021,
+	0x00404042,
+	0x00424042,
+	0x00444042,
+	0x00464042,
+	0x00484042,
+	0x004a4042,
+	0x004c40c2,
+	0x004e4042,
+};
+
+uint32_t mme9097_vertex_array_select[] = {
+	0x00000201,
+	0x00000301,
+	0x00000401,
+	0x00000501,
+	0x11004612,
+	0x09004712,
+	0x05c07621,
+	0x00002041,
+	0x00002841,
+	0x05f03f21,
+	0x000010c1,
+	0x00001841,
+};
+
+uint32_t mme9097_poly_mode_front[] = {
+	0x00db0215,
+	0x020c0315,
+/* 0x000a: locn_0a_pmf */
+	0x00128f10,
+/* 0x000f: locn_0f_pmf */
+	0x02100415,
+	0x00004211,
+	0x00180611,
+	0x0014bf10,
+	0x0000f807,
+	0x00dac021,
+	0x00800611,
+	0x00131f10,
+	0x0014bf10,
+	0x0000f807,
+	0x00000841,
+	0x00000611,
+	0x002ec0a1,
+	0x00003041,
+};
+
+uint32_t mme9097_poly_mode_back[] = {
+	0x00dac215,
+	0x020c0315,
+/* 0x000a: locn_0a_pmb */
+	0x00128f10,
+/* 0x000f: locn_0f_pmb */
+	0x02100415,
+	0x00004211,
+	0x00180611,
+	0x0014bf10,
+	0x0000f807,
+	0x00db0021,
+	0x00800611,
+	0x00131f10,
+	0x0014bf10,
+	0x0000f807,
+	0x00000841,
+	0x00000611,
+	0x002ec0a1,
+	0x00003041,
+};
+
+uint32_t mme9097_gp_select[] = {
+	0x00dac215,
+	0x00db0315,
+/* 0x000a: locn_0a_gs */
+	0x0012d710,
+/* 0x000f: locn_0f_gs */
+	0x020c0415,
+	0x00004211,
+	0x00180611,
+	0x0014bf10,
+	0x0000f807,
+	0x02100021,
+	0x00800611,
+	0x00130f10,
+	0x0014bf10,
+	0x0000f807,
+	0x00000841,
+	0x00000611,
+	0x002ec0a1,
+	0x00003041,
+};
+
+uint32_t mme9097_tep_select[] = {
+	0x00dac215,
+	0x00db0315,
+/* 0x000a: locn_0a_ts */
+	0x0012d710,
+/* 0x000f: locn_0f_ts */
+	0x02100415,
+	0x00004211,
+	0x00180611,
+	0x0014bf10,
+	0x0000f807,
+	0x020c0021,
+	0x00800611,
+	0x00130f10,
+	0x0014bf10,
+	0x0000f807,
+	0x00000841,
+	0x00000611,
+	0x002ec0a1,
+	0x00003041,
+};
diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_graph_macros.h b/src/gallium/drivers/nouveau/nvc0/nvc0_graph_macros.h
deleted file mode 100644
index f009980..0000000
--- a/src/gallium/drivers/nouveau/nvc0/nvc0_graph_macros.h
+++ /dev/null
@@ -1,236 +0,0 @@
-
-#ifndef __NVC0_PGRAPH_MACROS_H__
-#define __NVC0_PGRAPH_MACROS_H__
-
-/* extrinsrt r1, r2, src, size, dst: replace bits [dst:dst+size) in r1
- *  with bits [src:src+size) in r2
- *
- * bra(n)z annul: no delay slot
- */
-
-/* Bitfield version of NVC0_3D_VERTEX_ARRAY_PER_INSTANCE[].
- * Args: size, bitfield
- */
-static const uint32_t nvc0_9097_per_instance_bf[] =
-{
-   0x00000301, /* parm $r3 (the bitfield) */
-   0x00000211, /* mov $r2 0 */
-   0x05880021, /* maddr [NVC0_3D_VERTEX_ARRAY_PER_INSTANCE(0), increment = 4] */
-   0xffffc911, /* mov $r1 (add $r1 -0x1) */
-   0x0040d043, /* send (extrshl $r3 $r2 0x1 0) */
-   0xffff8897, /* exit branz $r1 0x3 */
-   0x00005211  /* mov $r2 (add $r2 0x1) */
-};
-
-/* The comments above the macros describe what they *should* be doing,
- * but we use less functionality for now.
- */
-
-/*
- * for (i = 0; i < 8; ++i)
- *    [NVC0_3D_BLEND_ENABLE(i)] = BIT(i of arg);
- *
- * [3428] = arg;
- *
- * if (arg == 0 || [NVC0_3D_MULTISAMPLE_ENABLE] == 0)
- *    [0d9c] = 0;
- * else
- *    [0d9c] = [342c];
- */
-static const uint32_t nvc0_9097_blend_enables[] =
-{
-   0x05360021, /* 0x00: maddr [NVC0_3D_BLEND_ENABLE(0), increment = 4] */
-   0x00404042, /* 0x01: send extrinsrt 0 $r1 0 0x1 0 */
-   0x00424042, /* 0x02: send extrinsrt 0 $r1 0x1 0x1 0 */
-   0x00444042, /* 0x03: send extrinsrt 0 $r1 0x2 0x1 0 */
-   0x00464042, /* 0x04: send extrinsrt 0 $r1 0x3 0x1 0 */
-   0x00484042, /* 0x05: send extrinsrt 0 $r1 0x4 0x1 0 */
-   0x004a4042, /* 0x06: send extrinsrt 0 $r1 0x5 0x1 0 */
-   0x004c40c2, /* 0x07: exit send extrinsrt 0 $r1 0x6 0x1 0 */
-   0x004e4042, /* 0x08: send extrinsrt 0 $r1 0x7 0x1 0 */
-};
-
-/*
- * uint64 limit = (parm(0) << 32) | parm(1);
- * uint64 start = (parm(2) << 32);
- *
- * if (limit) {
- *    start |= parm(3);
- *    --limit;
- * } else {
- *    start |= 1;
- * }
- *
- * [0x1c04 + (arg & 0xf) * 16 + 0] = (start >> 32) & 0xff;
- * [0x1c04 + (arg & 0xf) * 16 + 4] = start & 0xffffffff;
- * [0x1f00 + (arg & 0xf) * 8 + 0] = (limit >> 32) & 0xff;
- * [0x1f00 + (arg & 0xf) * 8 + 4] = limit & 0xffffffff;
- */
-static const uint32_t nvc0_9097_vertex_array_select[] =
-{
-   0x00000201, /* 0x00: parm $r2 */
-   0x00000301, /* 0x01: parm $r3 */
-   0x00000401, /* 0x02: parm $r4 */
-   0x00000501, /* 0x03: parm $r5 */
-   0x11004612, /* 0x04: mov $r6 extrinsrt 0 $r1 0 4 2 */
-   0x09004712, /* 0x05: mov $r7 extrinsrt 0 $r1 0 4 1 */
-   0x05c07621, /* 0x06: maddr $r6 add $6 0x1701 */
-   0x00002041, /* 0x07: send $r4 */
-   0x00002841, /* 0x08: send $r5 */
-   0x05f03f21, /* 0x09: maddr $r7 add $7 0x17c0 */
-   0x000010c1, /* 0x0a: exit send $r2 */
-   0x00001841, /* 0x0b: send $r3 */
-};
-
-/*
- * [GL_POLYGON_MODE_FRONT] = arg;
- *
- * if (BIT(31 of [0x3410]))
- *    [1a24] = 0x7353;
- *
- * if ([NVC0_3D_SP_SELECT(3)] == 0x31 || [NVC0_3D_SP_SELECT(4)] == 0x41)
- *    [02ec] = 0;
- * else
- * if ([GL_POLYGON_MODE_BACK] == GL_LINE || arg == GL_LINE)
- *    [02ec] = BYTE(1 of [0x3410]) << 4;
- * else
- *    [02ec] = BYTE(0 of [0x3410]) << 4;
- */
-static const uint32_t nvc0_9097_poly_mode_front[] =
-{
-   0x00db0215, /* 0x00: read $r2 [NVC0_3D_POLYGON_MODE_BACK] */
-   0x020c0315, /* 0x01: read $r3 [NVC0_3D_SP_SELECT(3)] */
-   0x00128f10, /* 0x02: mov $r7 or $r1 $r2 */
-   0x02100415, /* 0x03: read $r4 [NVC0_3D_SP_SELECT(4)] */
-   0x00004211, /* 0x04: mov $r2 0x1 */
-   0x00180611, /* 0x05: mov $r6 0x60 */
-   0x0014bf10, /* 0x06: mov $r7 and $r7 $r2 */
-   0x0000f807, /* 0x07: braz $r7 0xa */
-   0x00dac021, /* 0x08: maddr 0x36b */
-   0x00800611, /* 0x09: mov $r6 0x200 */
-   0x00131f10, /* 0x0a: mov $r7 or $r3 $r4 */
-   0x0014bf10, /* 0x0b: mov $r7 and $r7 $r2 */
-   0x0000f807, /* 0x0c: braz $r7 0xf */
-   0x00000841, /* 0x0d: send $r1 */
-   0x00000611, /* 0x0e: mov $r6 0 */
-   0x002ec0a1, /* 0x0f: exit maddr [02ec] */
-   0x00003041  /* 0x10: send $r6 */
-};
-
-/*
- * [GL_POLYGON_MODE_BACK] = arg;
- *
- * if (BIT(31 of [0x3410]))
- *    [1a24] = 0x7353;
- *
- * if ([NVC0_3D_SP_SELECT(3)] == 0x31 || [NVC0_3D_SP_SELECT(4)] == 0x41)
- *    [02ec] = 0;
- * else
- * if ([GL_POLYGON_MODE_FRONT] == GL_LINE || arg == GL_LINE)
- *    [02ec] = BYTE(1 of [0x3410]) << 4;
- * else
- *    [02ec] = BYTE(0 of [0x3410]) << 4;
- */
-/* NOTE: 0x3410 = 0x80002006 by default,
- *  POLYGON_MODE == GL_LINE check replaced by (MODE & 1)
- *  SP_SELECT(i) == (i << 4) | 1 check replaced by SP_SELECT(i) & 1
- */
-static const uint32_t nvc0_9097_poly_mode_back[] =
-{
-   0x00dac215, /* 0x00: read $r2 [NVC0_3D_POLYGON_MODE_FRONT] */
-   0x020c0315, /* 0x01: read $r3 [NVC0_3D_SP_SELECT(3)] */
-   0x00128f10, /* 0x02: mov $r7 or $r1 $r2 */
-   0x02100415, /* 0x03: read $r4 [NVC0_3D_SP_SELECT(4)] */
-   0x00004211, /* 0x04: mov $r2 0x1 */
-   0x00180611, /* 0x05: mov $r6 0x60 */
-   0x0014bf10, /* 0x06: mov $r7 and $r7 $r2 */
-   0x0000f807, /* 0x07: braz $r7 0xa */
-   0x00db0021, /* 0x08: maddr 0x36c */
-   0x00800611, /* 0x09: mov $r6 0x200 */
-   0x00131f10, /* 0x0a: mov $r7 or $r3 $r4 */
-   0x0014bf10, /* 0x0b: mov $r7 and $r7 $r2 */
-   0x0000f807, /* 0x0c: braz $r7 0xf */
-   0x00000841, /* 0x0d: send $r1 */
-   0x00000611, /* 0x0e: mov $r6 0 */
-   0x002ec0a1, /* 0x0f: exit maddr [02ec] */
-   0x00003041  /* 0x10: send $r6 */
-};
-
-/*
- * [NVC0_3D_SP_SELECT(4)] = arg
- *
- * if BIT(31 of [0x3410]) == 0
- *    [1a24] = 0x7353;
- *
- * if ([NVC0_3D_SP_SELECT(3)] == 0x31 || arg == 0x41)
- *    [02ec] = 0
- * else
- * if (any POLYGON MODE == LINE)
- *    [02ec] = BYTE(1 of [3410]) << 4;
- * else
- *    [02ec] = BYTE(0 of [3410]) << 4; // 02ec valid bits are 0xff1
- */
-static const uint32_t nvc0_9097_gp_select[] = /* 0x0f */
-{
-   0x00dac215, /* 0x00: read $r2 0x36b */
-   0x00db0315, /* 0x01: read $r3 0x36c */
-   0x0012d710, /* 0x02: mov $r7 or $r2 $r3 */
-   0x020c0415, /* 0x03: read $r4 0x830 */
-   0x00004211, /* 0x04: mov $r2 0x1 */
-   0x00180611, /* 0x05: mov $r6 0x60 */
-   0x0014bf10, /* 0x06: mov $r7 and $r7 $r2 */
-   0x0000f807, /* 0x07: braz $r7 0xa */
-   0x02100021, /* 0x08: maddr 0x840 */
-   0x00800611, /* 0x09: mov $r6 0x200 */
-   0x00130f10, /* 0x0a: mov $r7 or $r1 $r4 */
-   0x0014bf10, /* 0x0b: mov $r7 and $r7 $r2 */
-   0x0000f807, /* 0x0c: braz $r7 0xf */
-   0x00000841, /* 0x0d: send $r1 */
-   0x00000611, /* 0x0e: mov $r6 0 */
-   0x002ec0a1, /* 0x0f: exit maddr 0xbb */
-   0x00003041, /* 0x10: send $r6 */
-};
-
-/*
- * [NVC0_3D_SP_SELECT(3)] = arg
- *
- * if BIT(31 of [0x3410]) == 0
- *    [1a24] = 0x7353;
- *
- * if (arg == 0x31) {
- *    if (BIT(2 of [0x3430])) {
- *       int i = 15; do { --i; } while(i);
- *       [0x1a2c] = 0;
- *    }
- * }
- *
- * if ([NVC0_3D_SP_SELECT(4)] == 0x41 || arg == 0x31)
- *    [02ec] = 0
- * else
- * if ([any POLYGON_MODE] == GL_LINE)
- *    [02ec] = BYTE(1 of [3410]) << 4;
- * else
- *    [02ec] = BYTE(0 of [3410]) << 4;
- */
-static const uint32_t nvc0_9097_tep_select[] = /* 0x10 */
-{
-   0x00dac215, /* 0x00: read $r2 0x36b */
-   0x00db0315, /* 0x01: read $r3 0x36c */
-   0x0012d710, /* 0x02: mov $r7 or $r2 $r3 */
-   0x02100415, /* 0x03: read $r4 0x840 */
-   0x00004211, /* 0x04: mov $r2 0x1 */
-   0x00180611, /* 0x05: mov $r6 0x60 */
-   0x0014bf10, /* 0x06: mov $r7 and $r7 $r2 */
-   0x0000f807, /* 0x07: braz $r7 0xa */
-   0x020c0021, /* 0x08: maddr 0x830 */
-   0x00800611, /* 0x09: mov $r6 0x200 */
-   0x00130f10, /* 0x0a: mov $r7 or $r1 $r4 */
-   0x0014bf10, /* 0x0b: mov $r7 and $r7 $r2 */
-   0x0000f807, /* 0x0c: braz $r7 0xf */
-   0x00000841, /* 0x0d: send $r1 */
-   0x00000611, /* 0x0e: mov $r6 0 */
-   0x002ec0a1, /* 0x0f: exit maddr 0xbb */
-   0x00003041, /* 0x10: send $r6 */
-};
-
-#endif
diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c b/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c
index 1da991c..58d42f9 100644
--- a/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c
+++ b/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c
@@ -32,7 +32,7 @@
 #include "nvc0/nvc0_context.h"
 #include "nvc0/nvc0_screen.h"
 
-#include "nvc0/nvc0_graph_macros.h"
+#include "nvc0/mme/com9097.mme.h"
 
 #ifndef NOUVEAU_GETPARAM_GRAPH_UNITS
 # define NOUVEAU_GETPARAM_GRAPH_UNITS 13
@@ -921,13 +921,13 @@ nvc0_screen_create(struct nouveau_device *dev)
 #define MK_MACRO(m, n) i = nvc0_graph_set_macro(screen, m, i, sizeof(n), n);
 
    i = 0;
-   MK_MACRO(NVC0_3D_MACRO_VERTEX_ARRAY_PER_INSTANCE, nvc0_9097_per_instance_bf);
-   MK_MACRO(NVC0_3D_MACRO_BLEND_ENABLES, nvc0_9097_blend_enables);
-   MK_MACRO(NVC0_3D_MACRO_VERTEX_ARRAY_SELECT, nvc0_9097_vertex_array_select);
-   MK_MACRO(NVC0_3D_MACRO_TEP_SELECT, nvc0_9097_tep_select);
-   MK_MACRO(NVC0_3D_MACRO_GP_SELECT, nvc0_9097_gp_select);
-   MK_MACRO(NVC0_3D_MACRO_POLYGON_MODE_FRONT, nvc0_9097_poly_mode_front);
-   MK_MACRO(NVC0_3D_MACRO_POLYGON_MODE_BACK, nvc0_9097_poly_mode_back);
+   MK_MACRO(NVC0_3D_MACRO_VERTEX_ARRAY_PER_INSTANCE, mme9097_per_instance_bf);
+   MK_MACRO(NVC0_3D_MACRO_BLEND_ENABLES, mme9097_blend_enables);
+   MK_MACRO(NVC0_3D_MACRO_VERTEX_ARRAY_SELECT, mme9097_vertex_array_select);
+   MK_MACRO(NVC0_3D_MACRO_TEP_SELECT, mme9097_tep_select);
+   MK_MACRO(NVC0_3D_MACRO_GP_SELECT, mme9097_gp_select);
+   MK_MACRO(NVC0_3D_MACRO_POLYGON_MODE_FRONT, mme9097_poly_mode_front);
+   MK_MACRO(NVC0_3D_MACRO_POLYGON_MODE_BACK, mme9097_poly_mode_back);
 
    BEGIN_NVC0(push, NVC0_3D(RASTERIZE_ENABLE), 1);
    PUSH_DATA (push, 1);




More information about the mesa-commit mailing list