summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/gpgpu-sim/shader.cc7
-rw-r--r--src/gpgpu-sim/shader.h2
2 files changed, 8 insertions, 1 deletions
diff --git a/src/gpgpu-sim/shader.cc b/src/gpgpu-sim/shader.cc
index 10845e5..169adbe 100644
--- a/src/gpgpu-sim/shader.cc
+++ b/src/gpgpu-sim/shader.cc
@@ -692,6 +692,11 @@ void shader_core_ctx::decode()
m_stats->shader_cycle_distro[2]++; // pipeline stalled
}
+void shader_core_ctx::read_operands()
+{
+ m_operand_collector.step();
+}
+
address_type coalesced_segment(address_type addr, unsigned segment_size_lg2bytes)
{
return (addr >> segment_size_lg2bytes);
@@ -1470,7 +1475,7 @@ void shader_core_ctx::cycle()
{
writeback();
execute();
- m_operand_collector.step();
+ read_operands();
decode();
fetch();
}
diff --git a/src/gpgpu-sim/shader.h b/src/gpgpu-sim/shader.h
index e015b11..c312d62 100644
--- a/src/gpgpu-sim/shader.h
+++ b/src/gpgpu-sim/shader.h
@@ -1168,6 +1168,8 @@ private:
void issue_warp( warp_inst_t *&warp, const warp_inst_t *pI, const active_mask_t &active_mask, unsigned warp_id );
void func_exec_inst( warp_inst_t &inst );
address_type translate_local_memaddr(address_type localaddr, unsigned tid, unsigned num_shader );
+
+ void read_operands();
void execute();