diff --git a/gpu-simulator/trace-parser/trace_parser.cc b/gpu-simulator/trace-parser/trace_parser.cc index 6b2b59557..e48c299de 100644 --- a/gpu-simulator/trace-parser/trace_parser.cc +++ b/gpu-simulator/trace-parser/trace_parser.cc @@ -201,15 +201,22 @@ bool inst_trace_t::parse_from_string(std::string trace, unsigned long long base_address = 0; std::vector deltas; // read addresses as base address and deltas + // remember that the first active processor doesn't have a delta - it + // corresponds to the base address + bool first_bit1_found = false; ss >> std::hex >> base_address; for (int s = 0; s < WARP_SIZE; s++) { if (mask_bits.test(s)) { - long long delta = 0; - ss >> std::dec >> delta; - deltas.push_back(delta); + if(!first_bit1_found) { + first_bit1_found = true; + continue; + } else { + long long delta = 0; + ss >> std::dec >> delta; + deltas.push_back(delta); + } } } - memadd_info->base_delta_decompress(base_address, deltas, mask_bits); } } // Finish Parsing