aboutsummaryrefslogtreecommitdiff
path: root/src/cuda-sim/ptx_parser.h
diff options
context:
space:
mode:
authorMengchi Zhang <[email protected]>2019-06-10 11:42:33 -0400
committerGitHub <[email protected]>2019-06-10 11:42:33 -0400
commit87a7893b5280baa8c64964fe3e4aa9c75369ade0 (patch)
treef270b9f1caab2c405224c0168a8388299374bf51 /src/cuda-sim/ptx_parser.h
parent2ea18072618e7fe4e541f84de7d8575998299a1c (diff)
parent6f634718f6e1ddff8a9ec9da5de74856870b23c7 (diff)
Merge pull request #12 from echoedit/dev
Dev
Diffstat (limited to 'src/cuda-sim/ptx_parser.h')
-rw-r--r--src/cuda-sim/ptx_parser.h38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/cuda-sim/ptx_parser.h b/src/cuda-sim/ptx_parser.h
index fb1b7f2..c52fe20 100644
--- a/src/cuda-sim/ptx_parser.h
+++ b/src/cuda-sim/ptx_parser.h
@@ -29,6 +29,7 @@
#define ptx_parser_INCLUDED
#include "../abstract_hardware_model.h"
+#include "ptx_ir.h"
extern const char *g_filename;
extern int g_error_detected;
@@ -44,7 +45,20 @@ class ptx_recognizer {
scanner = NULL;
g_size = -1;
g_add_identifier_cached__identifier = NULL;
+ g_alignment_spec = -1;
+ g_var_type = NULL;
+ g_opcode = -1;
+ g_space_spec = undefined_space;
+ g_ptr_spec = undefined_space;
+ g_scalar_type_spec = -1;
+ g_vector_spec = -1;
+ g_extern_spec = 0;
+ g_func_decl = 0;
+ g_ident_add_uid = 0;
+ g_const_alloc = 1;
+ g_max_regs_per_thread = 0;
}
+ // global list
yyscan_t scanner;
#define LINEBUF_SIZE (4*1024)
char linebuf[LINEBUF_SIZE];
@@ -53,7 +67,31 @@ class ptx_recognizer {
char *g_add_identifier_cached__identifier;
int g_add_identifier_cached__array_dim;
int g_add_identifier_cached__array_ident;
+ int g_alignment_spec;
+ // variable declaration stuff:
+ type_info *g_var_type;
+ // instruction definition stuff:
+ const symbol *g_pred;
+ int g_neg_pred;
+ int g_pred_mod;
+ symbol *g_label;
+ int g_opcode;
+ std::list<operand_info> g_operands;
+ std::list<int> g_options;
+ std::list<int> g_wmma_options;
+ std::list<int> g_scalar_type;
+ // type specifier stuff:
+ memory_space_t g_space_spec;
+ memory_space_t g_ptr_spec;
+ int g_scalar_type_spec;
+ int g_vector_spec;
+ int g_extern_spec;
+ int g_func_decl;
+ int g_ident_add_uid;
+ unsigned g_const_alloc;
+ unsigned g_max_regs_per_thread;
+ // member function list
void init_directive_state();
void init_instruction_state();
void start_function( int entry_point );