diff options
author | Ali Saidi <Ali.Saidi@ARM.com> | 2014-01-24 15:29:30 -0600 |
---|---|---|
committer | Ali Saidi <Ali.Saidi@ARM.com> | 2014-01-24 15:29:30 -0600 |
commit | 904872a01a81ef5ee3f20e42c0657e35a491d6c9 (patch) | |
tree | 2e09d2a786de6eb2e2c81ab0f726429ae54b6c11 | |
parent | 427ceb57a9e1c7e226a549fda4556211bf206066 (diff) | |
download | gem5-904872a01a81ef5ee3f20e42c0657e35a491d6c9.tar.xz |
mem: Remove explict cast from memhelper.
Previously we were casting the result type to the the memory type which
is incorrect for things like dual-memory operations which still return a
single result.
-rw-r--r-- | src/arch/generic/memhelpers.hh | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/src/arch/generic/memhelpers.hh b/src/arch/generic/memhelpers.hh index f7bbfa269..7ed6141d0 100644 --- a/src/arch/generic/memhelpers.hh +++ b/src/arch/generic/memhelpers.hh @@ -1,4 +1,16 @@ /* + * Copyright (c) 2013 ARM Limited + * All rights reserved + * + * The license below extends only to copyright in the software and shall + * not be construed as granting a license to any other intellectual + * property including but not limited to intellectual property relating + * to a hardware implementation of the functionality of the software + * licensed hereunder. You may use the software subject to the license + * terms below provided that you ensure that this notice is replicated + * unmodified and in its entirety in all distributions of the software, + * modified or unmodified, in source code or in binary form. + * * Copyright (c) 2011 Google * All rights reserved. * @@ -32,6 +44,7 @@ #define __ARCH_GENERIC_MEMHELPERS_HH__ #include "base/types.hh" +#include "mem/request.hh" #include "sim/byteswap.hh" #include "sim/fault_fwd.hh" #include "sim/insttracer.hh" @@ -92,7 +105,10 @@ writeMemAtomic(XC *xc, Trace::InstRecord *traceData, const MemT &mem, { Fault fault = writeMemTiming(xc, traceData, mem, addr, flags, res); if (fault == NoFault && res != NULL) { - *res = TheISA::gtoh((MemT)*res); + if (flags & Request::MEM_SWAP || flags & Request::MEM_SWAP_COND) + *res = TheISA::gtoh((MemT)*res); + else + *res = TheISA::gtoh(*res); } return fault; } |