summaryrefslogtreecommitdiff
path: root/src/cuda-sim/ptx.y
diff options
context:
space:
mode:
Diffstat (limited to 'src/cuda-sim/ptx.y')
-rw-r--r--src/cuda-sim/ptx.y11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/cuda-sim/ptx.y b/src/cuda-sim/ptx.y
index 1551f22..833e082 100644
--- a/src/cuda-sim/ptx.y
+++ b/src/cuda-sim/ptx.y
@@ -133,6 +133,7 @@
%token V4_TYPE
%token COMMA
%token PRED
+%token HALF_OPTION
%token EQ_OPTION
%token NE_OPTION
%token LT_OPTION
@@ -205,6 +206,7 @@
%token ALL_OPTION
%token GLOBAL_OPTION
%token CTA_OPTION
+%token SYS_OPTION
%token EXIT_OPTION
%token ABS_OPTION
%token TO_OPTION
@@ -260,7 +262,8 @@ function_decl_header: ENTRY_DIRECTIVE { $$ = 1; g_func_decl=1; func_header(".ent
| EXTERN_DIRECTIVE FUNC_DIRECTIVE { $$ = 2; g_func_decl=1; func_header(".func"); }
;
-param_list: param_entry { add_directive(); }
+param_list: /*empty*/
+ | param_entry { add_directive(); }
| param_list COMMA {func_header_info(",");} param_entry { add_directive(); }
param_entry: PARAM_DIRECTIVE { add_space_spec(param_space_unclassified,0); } variable_spec identifier_spec { add_function_arg(); }
@@ -277,8 +280,10 @@ statement_list: directive_statement { add_directive(); }
;
directive_statement: variable_declaration SEMI_COLON
- | VERSION_DIRECTIVE DOUBLE_OPERAND { add_version_info($2); }
+ | VERSION_DIRECTIVE DOUBLE_OPERAND { add_version_info($2, 0); }
+ | VERSION_DIRECTIVE DOUBLE_OPERAND PLUS { add_version_info($2,1); }
| TARGET_DIRECTIVE IDENTIFIER COMMA IDENTIFIER { target_header2($2,$4); }
+ | TARGET_DIRECTIVE IDENTIFIER COMMA IDENTIFIER COMMA IDENTIFIER { target_header3($2,$4,$6); }
| TARGET_DIRECTIVE IDENTIFIER { target_header($2); }
| FILE_DIRECTIVE INT_OPERAND STRING { add_file($2,$3); }
| LOC_DIRECTIVE INT_OPERAND INT_OPERAND INT_OPERAND
@@ -416,6 +421,7 @@ option: type_spec
| ALL_OPTION { add_option(ALL_OPTION); }
| GLOBAL_OPTION { add_option(GLOBAL_OPTION); }
| CTA_OPTION { add_option(CTA_OPTION); }
+ | SYS_OPTION { add_option(SYS_OPTION); }
| GEOM_MODIFIER_1D { add_option(GEOM_MODIFIER_1D); }
| GEOM_MODIFIER_2D { add_option(GEOM_MODIFIER_2D); }
| GEOM_MODIFIER_3D { add_option(GEOM_MODIFIER_3D); }
@@ -428,6 +434,7 @@ option: type_spec
| ABS_OPTION { add_option(ABS_OPTION); }
| atomic_operation_spec ;
| TO_OPTION { add_option(TO_OPTION); }
+ | HALF_OPTION { add_option(HALF_OPTION); }
;
atomic_operation_spec: ATOMIC_AND { add_option(ATOMIC_AND); }