Add VME support in SEND

This commit is contained in:
Zhou Chang 2011-04-14 11:51:29 +08:00 committed by Damien Lespiau
parent 83a5c38e12
commit 52399867bf
4 changed files with 30 additions and 1 deletions

View File

@ -707,6 +707,7 @@
#define BRW_MESSAGE_TARGET_DATAPORT_WRITE 5 #define BRW_MESSAGE_TARGET_DATAPORT_WRITE 5
#define BRW_MESSAGE_TARGET_URB 6 #define BRW_MESSAGE_TARGET_URB 6
#define BRW_MESSAGE_TARGET_THREAD_SPAWNER 7 #define BRW_MESSAGE_TARGET_THREAD_SPAWNER 7
#define BRW_MESSAGE_TARGET_VME 8
#define BRW_SAMPLER_RETURN_FORMAT_FLOAT32 0 #define BRW_SAMPLER_RETURN_FORMAT_FLOAT32 0
#define BRW_SAMPLER_RETURN_FORMAT_UINT32 2 #define BRW_SAMPLER_RETURN_FORMAT_UINT32 2

View File

@ -1454,6 +1454,15 @@ struct brw_instruction
GLuint end_of_thread:1; GLuint end_of_thread:1;
} thread_spawner_gen5; } thread_spawner_gen5;
struct {
GLuint binding_table_index:8;
GLuint search_path_index:3;
GLuint lut_subindex:2;
GLuint message_type:2;
GLuint pad0:4;
GLuint header_present:1;
} vme_gen6;
struct { struct {
GLuint pad:19; GLuint pad:19;
GLuint header_present:1; GLuint header_present:1;

View File

@ -111,7 +111,7 @@ void set_direct_src_operand(struct src_operand *src, struct direct_reg *reg,
%token <integer> PUSH MREST POP WAIT DO ENDIF ILLEGAL %token <integer> PUSH MREST POP WAIT DO ENDIF ILLEGAL
%token <integer> MATH_INST %token <integer> MATH_INST
%token NULL_TOKEN MATH SAMPLER GATEWAY READ WRITE URB THREAD_SPAWNER %token NULL_TOKEN MATH SAMPLER GATEWAY READ WRITE URB THREAD_SPAWNER VME
%token MSGLEN RETURNLEN %token MSGLEN RETURNLEN
%token <integer> ALLOCATE USED COMPLETE TRANSPOSE INTERLEAVE %token <integer> ALLOCATE USED COMPLETE TRANSPOSE INTERLEAVE
@ -1118,6 +1118,24 @@ msgtarget: NULL_TOKEN
$$.bits3.thread_spawner.resource_select = $7; $$.bits3.thread_spawner.resource_select = $7;
} }
} }
| VME LPAREN INTEGER COMMA INTEGER COMMA INTEGER COMMA INTEGER RPAREN
{
$$.bits3.generic.msg_target =
BRW_MESSAGE_TARGET_VME;
if (gen_level == 6) {
$$.bits2.send_gen5.sfid =
BRW_MESSAGE_TARGET_VME;
$$.bits3.vme_gen6.binding_table_index = $3;
$$.bits3.vme_gen6.search_path_index = $5;
$$.bits3.vme_gen6.lut_subindex = $7;
$$.bits3.vme_gen6.message_type = $9;
$$.bits3.generic_gen5.header_present = 1;
} else {
fprintf (stderr, "Gen6- donesn't have vme function\n");
YYERROR;
}
}
; ;
urb_allocate: ALLOCATE { $$ = 1; } urb_allocate: ALLOCATE { $$ = 1; }

View File

@ -136,6 +136,7 @@ yylval.integer = BRW_CHANNEL_W;
"write" { return WRITE; } "write" { return WRITE; }
"urb" { return URB; } "urb" { return URB; }
"thread_spawner" { return THREAD_SPAWNER; } "thread_spawner" { return THREAD_SPAWNER; }
"vme" { return VME; }
"allocate" { return ALLOCATE; } "allocate" { return ALLOCATE; }
"used" { return USED; } "used" { return USED; }