[Intel-gfx] [PATCH] assembler: error for the wrong syntax of SEND instruction on GEN6+

Damien Lespiau damien.lespiau at intel.com
Thu Aug 15 13:00:17 CEST 2013


On Wed, Aug 14, 2013 at 02:21:16PM -0700, Ben Widawsky wrote:
> From: "Xiang, Haihao" <haihao.xiang at intel.com>
> 
>    predicate SEND execsize dst sendleadreg payload directsrcoperand instoptions
>    predicate SEND execsize dst sendleadreg payload imm32reg instoptions
>    predicate SEND execsize dst sendleadreg payload sndopr imm32reg instoptions
>    predicate SEND execsize dst sendleadreg payload exp directsrcoperand instoptions
> 
> The above four syntaxes are only used on legacy platforms which support implied move
> from payload to dst.
> 
> Signed-off-by: Xiang, Haihao <haihao.xiang at intel.com>
> Signed-off-by: Ben Widawsky <ben at bwidawsk.net>
> ---
> 
> Somehow this ended up in our internal IGT. Anyone have an issue with me
> pushing it to igt proper?

Maybe just a small rewording of "the syntax of send instruction" error
message. Otherwise:

Reviewed-by: Damien Lespiau <damien.lespiau at intel.com>

-- 
Damien

> 
> ---
>  assembler/gram.y | 16 +++++++++++++---
>  1 file changed, 13 insertions(+), 3 deletions(-)
> 
> diff --git a/assembler/gram.y b/assembler/gram.y
> index e58c1fe..8795797 100644
> --- a/assembler/gram.y
> +++ b/assembler/gram.y
> @@ -1215,6 +1215,9 @@ sendinstruction: predicate sendop execsize exp post_dst payload msgtarget
>  		}
>  		| predicate sendop execsize dst sendleadreg payload directsrcoperand instoptions
>  		{
> +		  if (IS_GENp(6))
> +                      error(&@2, "the syntax of send instruction\n");
> +
>  		  memset(&$$, 0, sizeof($$));
>  		  set_instruction_opcode(&$$, $2);
>  		  GEN(&$$)->header.destreg__conditionalmod = $5.nr; /* msg reg index */
> @@ -1233,6 +1236,9 @@ sendinstruction: predicate sendop execsize exp post_dst payload msgtarget
>  		  }
>  		| predicate sendop execsize dst sendleadreg payload imm32reg instoptions
>                  {
> +		  if (IS_GENp(6))
> +                      error(&@2, "the syntax of send instruction\n");
> +
>  		  if ($7.reg.type != BRW_REGISTER_TYPE_UD &&
>  		      $7.reg.type != BRW_REGISTER_TYPE_D &&
>  		      $7.reg.type != BRW_REGISTER_TYPE_V) {
> @@ -1336,6 +1342,9 @@ sendinstruction: predicate sendop execsize exp post_dst payload msgtarget
>  		}
>  		| predicate sendop execsize dst sendleadreg payload sndopr imm32reg instoptions
>  		{
> +		  if (IS_GENp(6))
> +                      error(&@2, "the syntax of send instruction\n");
> +
>  		  if ($8.reg.type != BRW_REGISTER_TYPE_UD &&
>  		      $8.reg.type != BRW_REGISTER_TYPE_D &&
>  		      $8.reg.type != BRW_REGISTER_TYPE_V) {
> @@ -1355,15 +1364,16 @@ sendinstruction: predicate sendop execsize exp post_dst payload msgtarget
>  		  if (set_instruction_src1(&$$, &$8, &@8) != 0)
>  		    YYERROR;
>  
> -		  if (IS_GENp(8)) {
> -		      gen8_set_eot(GEN8(&$$), !!($7 & EX_DESC_EOT_MASK));
> -		  } else if (IS_GENx(5)) {
> +		  if (IS_GENx(5)) {
>  		      GEN(&$$)->bits2.send_gen5.sfid = ($7 & EX_DESC_SFID_MASK);
>  		      GEN(&$$)->bits3.generic_gen5.end_of_thread = !!($7 & EX_DESC_EOT_MASK);
>  		  }
>  		}
>  		| predicate sendop execsize dst sendleadreg payload exp directsrcoperand instoptions
>  		{
> +		  if (IS_GENp(6))
> +                      error(&@2, "the syntax of send instruction\n");
> +
>  		  memset(&$$, 0, sizeof($$));
>  		  set_instruction_opcode(&$$, $2);
>  		  GEN(&$$)->header.destreg__conditionalmod = $5.nr; /* msg reg index */
> -- 
> 1.8.3.4
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx



More information about the Intel-gfx mailing list