summaryrefslogtreecommitdiff
path: root/assembler
diff options
context:
space:
mode:
authorXiang, Haihao <haihao.xiang@intel.com>2013-02-22 11:14:11 +0800
committerBen Widawsky <benjamin.widawsky@intel.com>2013-11-06 09:39:41 -0800
commitbf05bd55310a1cde8efb835d4352c9f7c4fbcb60 (patch)
tree527b1de155883cc0c93b919962f12ce6241bbe1e /assembler
parentb6a33bdcce9dd3a9c55d9077b380f0d5ec6d0da3 (diff)
assembler/bdw: Check & Refinement Engine message
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com> Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
Diffstat (limited to 'assembler')
-rw-r--r--assembler/gen8_instruction.h8
-rw-r--r--assembler/gram.y21
2 files changed, 22 insertions, 7 deletions
diff --git a/assembler/gen8_instruction.h b/assembler/gen8_instruction.h
index 41632348..87fa3a92 100644
--- a/assembler/gen8_instruction.h
+++ b/assembler/gen8_instruction.h
@@ -216,6 +216,14 @@ F(vme_message_type, 110, 109)
F(vme_binding_table_index, 103, 96)
/** @} */
+/**
+ * Check & Refinement Engine message function control bits:
+ * @ {
+ */
+F(cre_message_type, 110, 109)
+F(cre_binding_table_index, 103, 96)
+/** @} */
+
#undef F
/**
diff --git a/assembler/gram.y b/assembler/gram.y
index c75e5718..9b183bee 100644
--- a/assembler/gram.y
+++ b/assembler/gram.y
@@ -1796,15 +1796,22 @@ msgtarget: NULL_TOKEN
}
| CRE LPAREN INTEGER COMMA INTEGER RPAREN
{
- if (gen_level < 75)
- error (&@1, "Below Gen7.5 doesn't have CRE function\n");
+ if (IS_GENp(8)) {
+ gen8_set_sfid(GEN8(&$$), HSW_SFID_CRE);
+ gen8_set_header_present(GEN8(&$$), 1); /* Must be 1 */
+ gen8_set_cre_binding_table_index(GEN8(&$$), $3);
+ gen8_set_cre_message_type(GEN8(&$$), $5);
+ } else {
+ if (gen_level < 75)
+ error (&@1, "Below Gen7.5 doesn't have CRE function\n");
- GEN(&$$)->bits3.generic.msg_target = HSW_SFID_CRE;
+ GEN(&$$)->bits3.generic.msg_target = HSW_SFID_CRE;
- GEN(&$$)->bits2.send_gen5.sfid = HSW_SFID_CRE;
- GEN(&$$)->bits3.cre_gen75.binding_table_index = $3;
- GEN(&$$)->bits3.cre_gen75.message_type = $5;
- GEN(&$$)->bits3.generic_gen5.header_present = 1;
+ GEN(&$$)->bits2.send_gen5.sfid = HSW_SFID_CRE;
+ GEN(&$$)->bits3.cre_gen75.binding_table_index = $3;
+ GEN(&$$)->bits3.cre_gen75.message_type = $5;
+ GEN(&$$)->bits3.generic_gen5.header_present = 1;
+ }
}
| DATA_PORT LPAREN INTEGER COMMA INTEGER COMMA INTEGER COMMA