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.
This commit is contained in:
Ali Saidi
2014-01-24 15:29:30 -06:00
parent 427ceb57a9
commit 904872a01a

View File

@@ -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;
}