From b6661da800739b0fca9e01ba6d5afaca4f286d84 Mon Sep 17 00:00:00 2001 From: Tor Aamodt Date: Sat, 17 Jul 2010 00:06:40 -0800 Subject: - bug fix: parsing hex int constants didn't have a-fA-F!?! - modify template to use printf from kernel (this works on our Fermi card--want it working on simulator for debugging) - add support for extern function declarations (so don't try to assemble them)... printf is extern [git-p4: depot-paths = "//depot/gpgpu_sim_research/fermi/distribution/": change = 6862] --- src/cuda-sim/cuda-sim.cc | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'src/cuda-sim/cuda-sim.cc') diff --git a/src/cuda-sim/cuda-sim.cc b/src/cuda-sim/cuda-sim.cc index 4480221..e2326f2 100644 --- a/src/cuda-sim/cuda-sim.cc +++ b/src/cuda-sim/cuda-sim.cc @@ -436,6 +436,23 @@ unsigned g_assemble_code_next_pc=1; std::map g_pc_to_finfo; std::vector function_info::s_g_pc_to_insn; +unsigned function_info::sm_next_uid = 1; + +function_info::function_info(int entry_point ) +{ + m_uid = sm_next_uid++; + m_entry_point = (entry_point==1)?true:false; + m_extern = (entry_point==2)?true:false; + num_reconvergence_pairs = 0; + m_symtab = NULL; + m_assembled = false; + m_return_var_sym = NULL; + m_kernel_info.cmem = 0; + m_kernel_info.lmem = 0; + m_kernel_info.regs = 0; + m_kernel_info.smem = 0; +} + void function_info::print_insn( unsigned pc, FILE * fp ) const { unsigned index = pc - m_start_PC; @@ -1765,6 +1782,10 @@ void gpgpu_ptx_sim_load_ptx_from_string( const char *p, unsigned source_num ) void gpgpu_ptx_assemble( std::string kname, void *kinfo ) { function_info *func_info = (function_info *)kinfo; + if( func_info->is_extern() ) { + printf("GPGPU-Sim: skipping assembly for extern declared function \'%s\'", func_info->get_name().c_str() ); + return; + } g_func_info = func_info; g_current_symbol_table = g_kernel_name_to_symtab_lookup[ kname ]; if( g_current_symbol_table == NULL ) { -- cgit v1.3