mem-ruby: Make bitSelect use bits<Addr>

There is no need to replicate bits<Addr>' functionality.

As a side effect, ADDRESS_WIDTH is no longer used and was removed

Change-Id: Ia5679f3976c81f779665d82cb758850092f2a293
Signed-off-by: Daniel R. Carvalho <odanrc@yahoo.com.br>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/21085
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Anthony Gutierrez <anthony.gutierrez@amd.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>
Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
Daniel R. Carvalho
2019-09-07 12:08:40 +02:00
committed by Daniel Carvalho
parent 4a701c11e4
commit efc73cddc4
2 changed files with 1 additions and 11 deletions

View File

@@ -35,15 +35,7 @@ Addr
bitSelect(Addr addr, unsigned int small, unsigned int big)
{
assert(big >= small);
if (big >= ADDRESS_WIDTH - 1) {
return (addr >> small);
} else {
Addr mask = ~((Addr)~0 << (big + 1));
// FIXME - this is slow to manipulate a 64-bit number using 32-bits
Addr partial = (addr & mask);
return (partial >> small);
}
return bits<Addr>(addr, big, small);
}
Addr

View File

@@ -35,8 +35,6 @@
#include "base/types.hh"
const uint32_t ADDRESS_WIDTH = 64; // address width in bytes
// selects bits inclusive
Addr bitSelect(Addr addr, unsigned int small, unsigned int big);
Addr maskLowOrderBits(Addr addr, unsigned int number);