From 9b43d5685c269331ea6d15fe3ed0dade063a798a Mon Sep 17 00:00:00 2001 From: Tor Aamodt Date: Sat, 17 Jul 2010 10:19:14 -0800 Subject: - add support for ld/st with generic addresses - add support for parsing cache operators (still need to pass to timing model) [git-p4: depot-paths = "//depot/gpgpu_sim_research/fermi/distribution/": change = 6868] --- src/cuda-sim/ptx_sim.h | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'src/cuda-sim/ptx_sim.h') diff --git a/src/cuda-sim/ptx_sim.h b/src/cuda-sim/ptx_sim.h index b4a78c8..976ce70 100644 --- a/src/cuda-sim/ptx_sim.h +++ b/src/cuda-sim/ptx_sim.h @@ -231,11 +231,34 @@ struct stack_entry { unsigned m_call_uid; }; +class ptx_version { +public: + ptx_version() + { + m_valid = false; + m_ptx_version = 0; + m_ptx_extensions = 0; + } + ptx_version(float ver, unsigned extensions) + { + m_valid = true; + m_ptx_version = ver; + m_ptx_extensions = extensions; + } + float ver() const { assert(m_valid); return m_ptx_version; } + float extensions() const { assert(m_valid); return m_ptx_extensions; } +private: + bool m_valid; + float m_ptx_version; + unsigned m_ptx_extensions; +}; + class ptx_thread_info { public: ~ptx_thread_info(); ptx_thread_info(); + const ptx_version &get_ptx_version() const; ptx_reg_t get_operand_value( const symbol *reg ); ptx_reg_t get_operand_value( const operand_info &op ); void set_operand_value( const operand_info &dst, const ptx_reg_t &data ); @@ -450,11 +473,14 @@ unsigned type_decode( unsigned type, size_t &size, int &t ); addr_t generic_to_local( unsigned smid, unsigned hwtid, addr_t addr ); addr_t generic_to_shared( unsigned smid, addr_t addr ); +addr_t generic_to_global( addr_t addr ); addr_t local_to_generic( unsigned smid, unsigned hwtid, addr_t addr ); addr_t shared_to_generic( unsigned smid, addr_t addr ); +addr_t global_to_generic( addr_t addr ); bool isspace_local( unsigned smid, unsigned hwtid, addr_t addr ); bool isspace_shared( unsigned smid, addr_t addr ); bool isspace_global( addr_t addr ); +unsigned whichspace( addr_t addr ); #endif -- cgit v1.3