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:
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user