From 4d75db550ee938067213dc60be9bf5116f4361e2 Mon Sep 17 00:00:00 2001 From: "Xiang, Haihao" Date: Tue, 17 Jul 2012 16:16:11 +0800 Subject: [PATCH] Waring if both predication and conditional modifier are enabled but use different flag registers Signed-off-by: Xiang, Haihao --- assembler/src/gram.y | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/assembler/src/gram.y b/assembler/src/gram.y index 60b5e84f..04a29fce 100644 --- a/assembler/src/gram.y +++ b/assembler/src/gram.y @@ -390,6 +390,11 @@ unaryinstruction: YYERROR; if ($3.flag_subreg_nr != -1) { + if ($$.header.predicate_control != BRW_PREDICATE_NONE && + ($1.bits2.da1.flag_reg_nr != $3.flag_reg_nr || + $1.bits2.da1.flag_subreg_nr != $3.flag_subreg_nr)) + fprintf(stderr, "WARNING: must use the same flag register if both prediction and conditional modifier are enabled\n"); + $$.bits2.da1.flag_reg_nr = $3.flag_reg_nr; $$.bits2.da1.flag_subreg_nr = $3.flag_subreg_nr; } @@ -422,6 +427,11 @@ binaryinstruction: YYERROR; if ($3.flag_subreg_nr != -1) { + if ($$.header.predicate_control != BRW_PREDICATE_NONE && + ($1.bits2.da1.flag_reg_nr != $3.flag_reg_nr || + $1.bits2.da1.flag_subreg_nr != $3.flag_subreg_nr)) + fprintf(stderr, "WARNING: must use the same flag register if both prediction and conditional modifier are enabled\n"); + $$.bits2.da1.flag_reg_nr = $3.flag_reg_nr; $$.bits2.da1.flag_subreg_nr = $3.flag_subreg_nr; } @@ -454,6 +464,11 @@ binaryaccinstruction: YYERROR; if ($3.flag_subreg_nr != -1) { + if ($$.header.predicate_control != BRW_PREDICATE_NONE && + ($1.bits2.da1.flag_reg_nr != $3.flag_reg_nr || + $1.bits2.da1.flag_subreg_nr != $3.flag_subreg_nr)) + fprintf(stderr, "WARNING: must use the same flag register if both prediction and conditional modifier are enabled\n"); + $$.bits2.da1.flag_reg_nr = $3.flag_reg_nr; $$.bits2.da1.flag_subreg_nr = $3.flag_subreg_nr; }