Mesa (master): r600: Add flags to INTERP_X and INTERP_Z two-slot ops
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Wed Jan 20 12:19:15 UTC 2021
Module: Mesa
Branch: master
Commit: f57ae1e69cfa5328d1520dd8832bf79805932fcb
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=f57ae1e69cfa5328d1520dd8832bf79805932fcb
Author: Gert Wollny <gert.wollny at collabora.com>
Date: Mon Jan 18 18:03:39 2021 +0100
r600: Add flags to INTERP_X and INTERP_Z two-slot ops
v2: use the gap in the enum bit field to add the 2-slot bit
Signed-off-by: Gert Wollny <gert.wollny at collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8563>
---
src/gallium/drivers/r600/r600_isa.c | 4 ++--
src/gallium/drivers/r600/r600_isa.h | 5 +++++
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/src/gallium/drivers/r600/r600_isa.c b/src/gallium/drivers/r600/r600_isa.c
index 57b0e044f9d..0a5c4dac101 100644
--- a/src/gallium/drivers/r600/r600_isa.c
+++ b/src/gallium/drivers/r600/r600_isa.c
@@ -194,8 +194,8 @@ const struct alu_op_info r600_alu_op_table[] = {
{"MULADD_IEEE_PREV", 2, { -1, 0xD5 },{ 0, 0, AF_V, AF_V}, AF_PREV_INTERLEAVE | AF_IEEE },
{"INTERP_XY", 2, { -1, 0xD6 },{ 0, 0, AF_4V, AF_4V}, AF_INTERP },
{"INTERP_ZW", 2, { -1, 0xD7 },{ 0, 0, AF_4V, AF_4V}, AF_INTERP },
- {"INTERP_X", 2, { -1, 0xD8 },{ 0, 0, AF_V, AF_V}, AF_INTERP },
- {"INTERP_Z", 2, { -1, 0xD9 },{ 0, 0, AF_V, AF_V}, AF_INTERP },
+ {"INTERP_X", 2, { -1, 0xD8 },{ 0, 0, AF_2V, AF_2V}, AF_INTERP },
+ {"INTERP_Z", 2, { -1, 0xD9 },{ 0, 0, AF_2V, AF_2V}, AF_INTERP },
{"STORE_FLAGS", 1, { -1, 0xDA },{ 0, 0, AF_V, AF_V}, 0 },
{"LOAD_STORE_FLAGS", 1, { -1, 0xDB },{ 0, 0, AF_V, AF_V}, 0 },
{"LDS_1A", 2, { -1, 0xDC },{ 0, 0, AF_V, AF_V}, 0 },
diff --git a/src/gallium/drivers/r600/r600_isa.h b/src/gallium/drivers/r600/r600_isa.h
index 73694f7b434..1c098fbb187 100644
--- a/src/gallium/drivers/r600/r600_isa.h
+++ b/src/gallium/drivers/r600/r600_isa.h
@@ -47,6 +47,9 @@ enum alu_op_flags
AF_4V = (AF_V | AF_4SLOT),
AF_VS = (AF_V | AF_S), /* allowed in any slot */
+ AF_2SLOT = (1 << 3),
+ AF_2V = AF_V | AF_2SLOT, /* XY or ZW */
+
AF_KILL = (1<<4),
AF_PRED = (1<<5),
AF_SET = (1<<6),
@@ -55,6 +58,7 @@ enum alu_op_flags
AF_PREV_INTERLEAVE = (1<<7),
AF_MOVA = (1<<8), /* all MOVA instructions */
+
AF_IEEE = (1<<10),
AF_DST_TYPE_MASK = (3<<11),
@@ -107,6 +111,7 @@ enum alu_op_flags
/* condition codes - 3 bits */
AF_CC_SHIFT = 29,
+
AF_CC_MASK = (7U << AF_CC_SHIFT),
AF_CC_E = (0U << AF_CC_SHIFT),
AF_CC_GT = (1U << AF_CC_SHIFT),
More information about the mesa-commit
mailing list