From: Ali Saidi Date: Fri, 24 Jan 2014 21:29:30 +0000 (-0600) Subject: mem: Remove explict cast from memhelper. X-Git-Tag: stable_2014_08_26~205 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=904872a01a81ef5ee3f20e42c0657e35a491d6c9;p=gem5.git 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. --- 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; }