diff options
author | Gabe Black <gabeblack@google.com> | 2019-10-29 19:31:37 -0700 |
---|---|---|
committer | Gabe Black <gabeblack@google.com> | 2019-11-18 20:02:31 +0000 |
commit | 697e55995626f24658ce443287cd1ba90c2f68eb (patch) | |
tree | 4f19d13ded04c4d4b3ae53607fa90638ba96a7bd /src/arch/sparc | |
parent | 17a0c0b00644c37e9d8539a9de0a02dc213a6834 (diff) | |
download | gem5-697e55995626f24658ce443287cd1ba90c2f68eb.tar.xz |
arch: Make and use endian specific versions of the mem helpers.
Rather than using TheISA to pick an endian conversion function, we can
have a version defined for big and little endian and call the right one
from the ISA code.
Change-Id: I5014504968952e21abff3c5f6cbe58ca24233f33
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/22373
Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Diffstat (limited to 'src/arch/sparc')
-rw-r--r-- | src/arch/sparc/isa/formats/mem/swap.isa | 6 | ||||
-rw-r--r-- | src/arch/sparc/isa/formats/mem/util.isa | 10 |
2 files changed, 9 insertions, 7 deletions
diff --git a/src/arch/sparc/isa/formats/mem/swap.isa b/src/arch/sparc/isa/formats/mem/swap.isa index fcabc33e4..f8c4e900d 100644 --- a/src/arch/sparc/isa/formats/mem/swap.isa +++ b/src/arch/sparc/isa/formats/mem/swap.isa @@ -50,7 +50,7 @@ def template SwapExecute {{ } if (storeCond && fault == NoFault) { %(EA_trunc)s - fault = writeMemAtomic(xc, traceData, Mem, EA, + fault = writeMemAtomicBE(xc, traceData, Mem, EA, %(asi_val)s, &mem_data); } if (fault == NoFault) { @@ -87,7 +87,7 @@ def template SwapInitiateAcc {{ } if (fault == NoFault) { %(EA_trunc)s - fault = writeMemTiming(xc, traceData, Mem, EA, %(asi_val)s, + fault = writeMemTimingBE(xc, traceData, Mem, EA, %(asi_val)s, &mem_data); } return fault; @@ -103,7 +103,7 @@ def template SwapCompleteAcc {{ Fault fault = NoFault; %(op_decl)s; - getMem(pkt, Mem, traceData); + getMemBE(pkt, Mem, traceData); uint64_t mem_data = Mem; if (fault == NoFault) { diff --git a/src/arch/sparc/isa/formats/mem/util.isa b/src/arch/sparc/isa/formats/mem/util.isa index 8711cb812..5ee4143df 100644 --- a/src/arch/sparc/isa/formats/mem/util.isa +++ b/src/arch/sparc/isa/formats/mem/util.isa @@ -48,7 +48,7 @@ def template LoadExecute {{ %(fault_check)s; if (fault == NoFault) { %(EA_trunc)s - fault = readMemAtomic(xc, traceData, EA, Mem, %(asi_val)s); + fault = readMemAtomicBE(xc, traceData, EA, Mem, %(asi_val)s); } if (fault == NoFault) { %(code)s; @@ -89,7 +89,7 @@ def template LoadCompleteAcc {{ Fault fault = NoFault; %(op_decl)s; %(op_rd)s; - getMem(pkt, Mem, traceData); + getMemBE(pkt, Mem, traceData); %(code)s; if (fault == NoFault) { %(op_wb)s; @@ -119,7 +119,8 @@ def template StoreExecute {{ } if (storeCond && fault == NoFault) { %(EA_trunc)s - fault = writeMemAtomic(xc, traceData, Mem, EA, %(asi_val)s, 0); + fault = writeMemAtomicBE( + xc, traceData, Mem, EA, %(asi_val)s, 0); } if (fault == NoFault) { // Write the resulting state to the execution context @@ -149,7 +150,8 @@ def template StoreInitiateAcc {{ } if (storeCond && fault == NoFault) { %(EA_trunc)s - fault = writeMemTiming(xc, traceData, Mem, EA, %(asi_val)s, 0); + fault = writeMemTimingBE( + xc, traceData, Mem, EA, %(asi_val)s, 0); } return fault; } |