diff --git a/src/mem/ruby/common/Address.cc b/src/mem/ruby/common/Address.cc
index 1afefc2..5c89d31 100644
--- a/src/mem/ruby/common/Address.cc
+++ b/src/mem/ruby/common/Address.cc
@@ -28,6 +28,7 @@
 
 #include "mem/ruby/common/Address.hh"
 
+#include "base/bitfield.hh"
 #include "mem/ruby/system/RubySystem.hh"
 
 Addr
@@ -48,14 +49,7 @@
 Addr
 maskLowOrderBits(Addr addr, unsigned int number)
 {
-  Addr mask;
-
-  if (number >= ADDRESS_WIDTH - 1) {
-      mask = ~0;
-  } else {
-      mask = (Addr)~0 << number;
-  }
-  return (addr & mask);
+    return mbits<Addr>(addr, 63, number);
 }
 
 Addr
@@ -67,15 +61,14 @@
 Addr
 makeLineAddress(Addr addr)
 {
-    return maskLowOrderBits(addr, RubySystem::getBlockSizeBits());
+    return mbits<Addr>(addr, 63, RubySystem::getBlockSizeBits());
 }
 
 // returns the next stride address based on line address
 Addr
 makeNextStrideAddress(Addr addr, int stride)
 {
-    return maskLowOrderBits(addr, RubySystem::getBlockSizeBits())
-        + RubySystem::getBlockSizeBytes() * stride;
+    return makeLineAddress(addr) + RubySystem::getBlockSizeBytes() * stride;
 }
 
 std::string
@@ -83,7 +76,6 @@
 {
     std::stringstream out;
     out << "[" << std::hex << "0x" << addr << "," << " line 0x"
-       << maskLowOrderBits(addr, RubySystem::getBlockSizeBits())
-       << std::dec << "]";
+       << makeLineAddress(addr) << std::dec << "]";
     return out.str();
 }
diff --git a/src/mem/ruby/profiler/AddressProfiler.cc b/src/mem/ruby/profiler/AddressProfiler.cc
index acdc860..9d96de7 100644
--- a/src/mem/ruby/profiler/AddressProfiler.cc
+++ b/src/mem/ruby/profiler/AddressProfiler.cc
@@ -30,6 +30,7 @@
 
 #include <vector>
 
+#include "base/bitfield.hh"
 #include "base/stl_helpers.hh"
 #include "mem/ruby/profiler/Profiler.hh"
 #include "mem/ruby/protocol/RubyRequest.hh"
@@ -298,7 +299,7 @@
         // record macro data address trace info
 
         // 6 for datablock, 4 to make it 16x more coarse
-        Addr macro_addr = maskLowOrderBits(data_addr, 10);
+        Addr macro_addr = mbits<Addr>(data_addr, 63, 10);
         lookupTraceForAddress(macro_addr, m_macroBlockAccessTrace).
             update(type, access_mode, id, sharing_miss);
 
diff --git a/src/mem/ruby/structures/Prefetcher.cc b/src/mem/ruby/structures/Prefetcher.cc
index df8fdfc..70b3035 100644
--- a/src/mem/ruby/structures/Prefetcher.cc
+++ b/src/mem/ruby/structures/Prefetcher.cc
@@ -28,6 +28,7 @@
 
 #include "mem/ruby/structures/Prefetcher.hh"
 
+#include "base/bitfield.hh"
 #include "debug/RubyPrefetcher.hh"
 #include "mem/ruby/slicc_interface/RubySlicc_ComponentMapping.hh"
 #include "mem/ruby/system/RubySystem.hh"
@@ -475,5 +476,5 @@
 Addr
 Prefetcher::pageAddress(Addr addr) const
 {
-    return maskLowOrderBits(addr, m_page_shift);
+    return mbits<Addr>(addr, 63, m_page_shift);
 }
