summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHomer Hsing <homer.xing@intel.com>2012-09-28 13:46:21 +0800
committerDamien Lespiau <damien.lespiau@intel.com>2013-03-04 15:54:34 +0000
commitc56d78611641cfa7eff5b046054b051206a97dc6 (patch)
treed03ff5ff563f80a26ccc33b750f875654655ebc3
parent397e1ccccbd00fcf2ec763f9d6f8c82db8d395ee (diff)
Make sure Gen6 ENDIF work
-rw-r--r--assembler/src/gram.y12
1 files changed, 10 insertions, 2 deletions
diff --git a/assembler/src/gram.y b/assembler/src/gram.y
index 826a3fcf..df0fe622 100644
--- a/assembler/src/gram.y
+++ b/assembler/src/gram.y
@@ -431,6 +431,10 @@ instruction: unaryinstruction
ifelseinstruction: ENDIF
{
// for Gen4
+ if(gen_level > 5) {
+ fprintf(stderr, "ENDIF Syntax error: should be 'ENDIF execsize relativelocation'\n");
+ YYERROR;
+ }
memset(&$$, 0, sizeof($$));
$$.header.opcode = $1;
$$.header.thread_control |= BRW_THREAD_SWITCH;
@@ -440,8 +444,12 @@ ifelseinstruction: ENDIF
}
| ENDIF execsize relativelocation instoptions
{
- // for Gen7+
- /* Gen7 bspec: predication is prohibited */
+ // for Gen6+
+ /* Gen6, Gen7 bspec: predication is prohibited */
+ if(gen_level <= 5) {
+ fprintf(stderr, "ENDIF Syntax error: should be 'ENDIF'\n");
+ YYERROR;
+ }
memset(&$$, 0, sizeof($$));
$$.header.opcode = $1;
$$.header.execution_size = $2;