summaryrefslogtreecommitdiff
path: root/assembler/gram.y
diff options
context:
space:
mode:
Diffstat (limited to 'assembler/gram.y')
-rw-r--r--assembler/gram.y16
1 files changed, 14 insertions, 2 deletions
diff --git a/assembler/gram.y b/assembler/gram.y
index 96893529..23e1a576 100644
--- a/assembler/gram.y
+++ b/assembler/gram.y
@@ -1190,7 +1190,11 @@ sendinstruction: predicate sendop execsize exp post_dst payload msgtarget
YYERROR;
}
- if (IS_GENp(8)) {
+ if (IS_GENp(9)) {
+ gen8_set_src1_reg_file(GEN8(&$$), BRW_IMMEDIATE_VALUE);
+ gen8_set_src1_reg_type(GEN8(&$$), BRW_REGISTER_TYPE_D);
+ gen9_set_send_extdesc(GEN8(&$$), 0);
+ } else if (IS_GENp(8)) {
gen8_set_src1_reg_file(GEN8(&$$), BRW_IMMEDIATE_VALUE);
gen8_set_src1_reg_type(GEN8(&$$), BRW_REGISTER_TYPE_D);
} else {
@@ -1308,7 +1312,11 @@ sendinstruction: predicate sendop execsize exp post_dst payload msgtarget
set_instruction_src0(&$$, &src0, NULL);
set_instruction_src1(&$$, &$7, NULL);
- if (IS_GENp(8)) {
+ if (IS_GENp(9)) {
+ gen8_set_sfid(GEN8(&$$), $6 & EX_DESC_SFID_MASK);
+ gen8_set_eot(GEN8(&$$), !!($6 & EX_DESC_EOT_MASK));
+ gen9_set_send_extdesc(GEN8(&$$), $6 & EX_DESC_FUNC_MASK);
+ } else if (IS_GENp(8)) {
gen8_set_sfid(GEN8(&$$), $6 & EX_DESC_SFID_MASK);
gen8_set_eot(GEN8(&$$), !!($6 & EX_DESC_EOT_MASK));
} else {
@@ -1358,6 +1366,10 @@ sendinstruction: predicate sendop execsize exp post_dst payload msgtarget
if (IS_GENp(8)) {
gen8_set_sfid(GEN8(&$$), $6 & EX_DESC_SFID_MASK);
gen8_set_eot(GEN8(&$$), !!($6 & EX_DESC_EOT_MASK));
+ gen9_set_send_extdesc(GEN8(&$$), $6 & EX_DESC_FUNC_MASK);
+ } else if (IS_GENp(8)) {
+ gen8_set_sfid(GEN8(&$$), $6 & EX_DESC_SFID_MASK);
+ gen8_set_eot(GEN8(&$$), !!($6 & EX_DESC_EOT_MASK));
} else {
GEN(&$$)->header.destreg__conditionalmod = ($6 & EX_DESC_SFID_MASK); /* SFID */
GEN(&$$)->bits3.generic_gen5.end_of_thread = !!($6 & EX_DESC_EOT_MASK);