diff -r 741b3059946e -r ed03df6d9093 src/mem/ruby/system/RubySystem.cc --- a/src/mem/ruby/system/RubySystem.cc Sun Oct 25 16:01:52 2015 -0700 +++ b/src/mem/ruby/system/RubySystem.cc Wed Oct 28 08:26:13 2015 +0000 @@ -370,7 +370,7 @@ } // Restore eventq head - eventq_head = eventq->replaceHead(eventq_head); + eventq->replaceHead(eventq_head); // Restore curTick and Ruby System's clock setCurTick(curtick_original); resetClock(); diff -r 741b3059946e -r ed03df6d9093 src/mem/stack_dist_calc.cc --- a/src/mem/stack_dist_calc.cc Sun Oct 25 16:01:52 2015 -0700 +++ b/src/mem/stack_dist_calc.cc Wed Oct 28 08:26:13 2015 +0000 @@ -359,8 +359,6 @@ StackDistCalc::calcStackDistAndUpdate(const Addr r_address, bool addNewNode) { Node* newLeafNode; - // Return index if the address was already present in stack - uint64_t r_index = index; auto ai = aiMap.lower_bound(r_address); @@ -380,7 +378,7 @@ // key already exists // save the index counter value when this address was // encountered before and update it to the current index value - r_index = ai->second; + uint64_t r_index = ai->second; if (addNewNode) { // Update aiMap aiMap(Address) = current index @@ -462,8 +460,6 @@ std::pair< uint64_t, bool> StackDistCalc::calcStackDist(const Addr r_address, bool mark) { - // Return index if the address was already present in stack - uint64_t r_index = index; // Default value of isMarked flag for each node. bool _mark = false; @@ -480,7 +476,7 @@ // key already exists // save the index counter value when this address was // encountered before - r_index = ai->second; + uint64_t r_index = ai->second; // Get the value of mark flag if previously marked _mark = tree[0][r_index]->isMarked; @@ -569,7 +565,6 @@ StackDistCalc::printStack(int n) const { Node* node; - uint64_t r_index; int count = 0; DPRINTF(StackDist, "Printing last %d entries in tree\n", n); @@ -578,7 +573,7 @@ for (auto it = tree[0].rbegin(); (count < n) && (it != tree[0].rend()); ++it, ++count) { node = it->second; - r_index = node->nodeIndex; + uint64_t r_index = node->nodeIndex; // Lookup aiMap using the index returned by the leaf iterator for (auto ai = aiMap.rbegin(); ai != aiMap.rend(); ++ai) { diff -r 741b3059946e -r ed03df6d9093 src/base/loader/dtb_object.cc --- a/src/base/loader/dtb_object.cc Sun Oct 25 16:01:52 2015 -0700 +++ b/src/base/loader/dtb_object.cc Wed Oct 28 08:26:13 2015 +0000 @@ -109,7 +109,10 @@ // try adding the node by walking dtb tree to proper insertion point offset = fdt_path_offset((void*)fdt_buf_w_space, root_path); offset = fdt_add_subnode((void*)fdt_buf_w_space, offset, node_name); - offset = fdt_path_offset((void*)fdt_buf_w_space, full_path_node_name); + // if we successfully add the subnode, get the offset + if (offset >= 0) + offset = fdt_path_offset((void*)fdt_buf_w_space, full_path_node_name); + if (offset < 0) { warn("Error finding or adding \"chosen\" subnode to flattened " "device tree, errno: %d\n", offset); diff -r 741b3059946e -r ed03df6d9093 src/mem/cache/tags/fa_lru.cc --- a/src/mem/cache/tags/fa_lru.cc Sun Oct 25 16:01:52 2015 -0700 +++ b/src/mem/cache/tags/fa_lru.cc Wed Oct 28 08:26:13 2015 +0000 @@ -67,7 +67,7 @@ numCaches = floorLog2(size) - 17; if (numCaches >0){ cacheBoundaries = new FALRUBlk *[numCaches]; - cacheMask = (1 << numCaches) - 1; + cacheMask = (ULL(1) << numCaches) - 1; } else { cacheMask = 0; } diff -r 741b3059946e -r ed03df6d9093 src/mem/dram_ctrl.cc --- a/src/mem/dram_ctrl.cc Sun Oct 25 16:01:52 2015 -0700 +++ b/src/mem/dram_ctrl.cc Wed Oct 28 08:26:13 2015 +0000 @@ -341,9 +341,8 @@ rank = addr % ranksPerChannel; addr = addr / ranksPerChannel; - // lastly, get the row bits + // lastly, get the row bits, no need to remove them from addr row = addr % rowsPerBank; - addr = addr / rowsPerBank; } else if (addrMapping == Enums::RoRaBaCoCh) { // take out the lower-order column bits addr = addr / columnsPerStripe; @@ -364,9 +363,8 @@ rank = addr % ranksPerChannel; addr = addr / ranksPerChannel; - // lastly, get the row bits + // lastly, get the row bits, no need to remove them from addr row = addr % rowsPerBank; - addr = addr / rowsPerBank; } else if (addrMapping == Enums::RoCoRaBaCh) { // optimise for closed page mode and utilise maximum // parallelism of the DRAM (at the cost of power) @@ -391,9 +389,8 @@ // next, the higher-order column bites addr = addr / (columnsPerRowBuffer / columnsPerStripe); - // lastly, get the row bits + // lastly, get the row bits, no need to remove them from addr row = addr % rowsPerBank; - addr = addr / rowsPerBank; } else panic("Unknown address mapping policy chosen!"); diff -r 741b3059946e -r ed03df6d9093 src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.hh --- a/src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.hh Sun Oct 25 16:01:52 2015 -0700 +++ b/src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.hh Wed Oct 28 08:26:13 2015 +0000 @@ -70,7 +70,7 @@ private: GarnetNetwork_d *m_net_ptr; - const NodeID m_id; + const NodeID M5_CLASS_VAR_USED m_id; const int m_virtual_networks, m_vc_per_vnet, m_num_vcs; std::vector m_out_vc_state; std::vector m_vc_allocator;