arch-arm: Annotate original address in CMOs
authorGiacomo Travaglini <giacomo.travaglini@arm.com>
Wed, 9 Oct 2019 13:53:38 +0000 (14:53 +0100)
committerGiacomo Travaglini <giacomo.travaglini@arm.com>
Tue, 5 Nov 2019 16:31:57 +0000 (16:31 +0000)
commit76b10e2b4abf36e441707e7e075ade75b11ab667
treeb54452fdeb47c20de2da79c283cb57f86421d946
parent75a127e8ba8885c7112fa92de5d81fa024981280
arch-arm: Annotate original address in CMOs

This is needed when a CMO triggers an exception (e.g. DataAbort) In that
case the faulting address should be the one encoded in the instruction
rather than the cacheline address:

According to armarm:
If a memory fault that sets FAR_EL1 is generated from a data cache
maintenance or other DC instruction, FAR_EL1[63:0] holds the address
specified in the register argument of the instruction.

Change-Id: I6d0dadbef6e70db57438b01a76c5def3bdd2d974
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/22443
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Tested-by: kokoro <noreply+kokoro@google.com>
src/arch/arm/faults.cc
src/arch/arm/faults.hh
src/arch/arm/insts/mem64.hh
src/arch/arm/isa/insts/data64.isa