From bf05bd55310a1cde8efb835d4352c9f7c4fbcb60 Mon Sep 17 00:00:00 2001 From: "Xiang, Haihao" Date: Fri, 22 Feb 2013 11:14:11 +0800 Subject: assembler/bdw: Check & Refinement Engine message Signed-off-by: Xiang, Haihao Signed-off-by: Ben Widawsky --- assembler/gen8_instruction.h | 8 ++++++++ assembler/gram.y | 21 ++++++++++++++------- 2 files changed, 22 insertions(+), 7 deletions(-) (limited to 'assembler') 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 -- cgit v1.2.3