@@ -384,6 +384,13 @@ static int pad (FILE *f, int c)
return 0;
}
+static int flag_reg (FILE *file, const int flag_nr, const int flag_subreg_nr)
+{
+ if (flag_nr || flag_subreg_nr)
+ return format (file, ".f%d.%d", flag_nr, flag_subreg_nr);
+ return 0;
+}
+
static int control (FILE *file, char *name, char *ctrl[], GLuint id, int *space)
{
if (!ctrl[id]) {
@@ -796,9 +803,14 @@ int disasm (FILE *file, struct brw_instruction *inst)
err |= control (file, "debug control", debug_ctrl, inst->header.debug_control, NULL);
if (inst->header.opcode != BRW_OPCODE_SEND &&
- inst->header.opcode != BRW_OPCODE_SENDC)
+ inst->header.opcode != BRW_OPCODE_SENDC) {
err |= control (file, "conditional modifier", conditional_modifier,
inst->header.sfid_destreg__conditionalmod, NULL);
+ if (inst->header.sfid_destreg__conditionalmod)
+ err |= flag_reg (file,
+ inst->bits2.da1.flag_reg_nr,
+ inst->bits2.da1.flag_subreg_nr);
+ }
if (inst->header.opcode != BRW_OPCODE_NOP) {
string (file, "(");