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.y14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/cuda-sim/ptx.y b/src/cuda-sim/ptx.y
index 360be51..f8b29c4 100644
--- a/src/cuda-sim/ptx.y
+++ b/src/cuda-sim/ptx.y
@@ -44,6 +44,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
%token CALLTARGETS_DIRECTIVE
%token <int_value> CONST_DIRECTIVE
%token CONSTPTR_DIRECTIVE
+%token PTR_DIRECTIVE
%token ENTRY_DIRECTIVE
%token EXTERN_DIRECTIVE
%token FILE_DIRECTIVE
@@ -242,9 +243,20 @@ 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(); }
+param_entry: PARAM_DIRECTIVE { add_space_spec(param_space_unclassified,0); } variable_spec ptr_spec identifier_spec { add_function_arg(); }
| REG_DIRECTIVE { add_space_spec(reg_space,0); } variable_spec identifier_spec { add_function_arg(); }
+ptr_spec: /*empty*/
+ | PTR_DIRECTIVE ptr_space_spec ptr_align_spec
+ | PTR_DIRECTIVE ptr_align_spec
+
+ptr_space_spec: GLOBAL_DIRECTIVE
+ | LOCAL_DIRECTIVE
+ | CONST_DIRECTIVE
+ | SHARED_DIRECTIVE
+
+ptr_align_spec: ALIGN_DIRECTIVE INT_OPERAND
+
statement_block: LEFT_BRACE statement_list RIGHT_BRACE
statement_list: directive_statement { add_directive(); }