aboutsummaryrefslogtreecommitdiffstats
path: root/src/intel/compiler/brw_disasm.c
diff options
context:
space:
mode:
authorIan Romanick <[email protected]>2018-04-18 14:02:33 -0700
committerIan Romanick <[email protected]>2018-08-22 20:31:32 -0700
commitd515c75463824759f983304242178ed29f98ed3d (patch)
tree4e8b8ed4a975ca5703ab2c3301ac96865116219b /src/intel/compiler/brw_disasm.c
parentf347348f8af80a0fd79c4271affc8e374c4ea4ec (diff)
intel/compiler: Implement untyped atomic float min, max, and compare-swap dataport messages
v2: Split changes to the message type field to another patch. Suggested by Caio. Signed-off-by: Ian Romanick <[email protected]> Reviewed-by: Caio Marcelo de Oliveira Filho <[email protected]>
Diffstat (limited to 'src/intel/compiler/brw_disasm.c')
-rw-r--r--src/intel/compiler/brw_disasm.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/intel/compiler/brw_disasm.c b/src/intel/compiler/brw_disasm.c
index 88f12144f83..322f4544dfd 100644
--- a/src/intel/compiler/brw_disasm.c
+++ b/src/intel/compiler/brw_disasm.c
@@ -421,6 +421,8 @@ static const char *const dp_dc1_msg_type_hsw[32] = {
[HSW_DATAPORT_DC_PORT1_ATOMIC_COUNTER_OP_SIMD4X2] =
"DC 4x2 atomic counter op",
[HSW_DATAPORT_DC_PORT1_TYPED_SURFACE_WRITE] = "DC typed surface write",
+ [GEN9_DATAPORT_DC_PORT1_UNTYPED_ATOMIC_FLOAT_OP] =
+ "DC untyped atomic float op",
};
static const char *const aop[16] = {
@@ -441,6 +443,12 @@ static const char *const aop[16] = {
[BRW_AOP_PREDEC] = "predec",
};
+static const char *const aop_float[4] = {
+ [BRW_AOP_FMAX] = "fmax",
+ [BRW_AOP_FMIN] = "fmin",
+ [BRW_AOP_FCMPWR] = "fcmpwr",
+};
+
static const char * const pixel_interpolator_msg_types[4] = {
[GEN7_PIXEL_INTERPOLATOR_LOC_SHARED_OFFSET] = "per_message_offset",
[GEN7_PIXEL_INTERPOLATOR_LOC_SAMPLE] = "sample_position",
@@ -1797,6 +1805,11 @@ brw_disassemble_inst(FILE *file, const struct gen_device_info *devinfo,
simd_modes[msg_ctrl >> 4], msg_ctrl & 0xf);
break;
}
+ case GEN9_DATAPORT_DC_PORT1_UNTYPED_ATOMIC_FLOAT_OP:
+ format(file, "SIMD%d,", (msg_ctrl & (1 << 4)) ? 8 : 16);
+ control(file, "atomic float op", aop_float, msg_ctrl & 0xf,
+ &space);
+ break;
default:
format(file, "0x%x", msg_ctrl);
}