arch-arm: Fix FSC generation in AbortFault
authorGiacomo Travaglini <giacomo.travaglini@arm.com>
Fri, 9 Feb 2018 10:01:39 +0000 (10:01 +0000)
committerGiacomo Travaglini <giacomo.travaglini@arm.com>
Thu, 8 Mar 2018 10:11:36 +0000 (10:11 +0000)
commit72ecef7a759f10b4816ecf13a1289fc6d9443c92
tree998f6efce665e127846b89d5d55aa41a9ee0c489
parentdbf7b0adc53b2ab78ae327653870fdcf8b63b572
arch-arm: Fix FSC generation in AbortFault

The fault status code generated by a Prefetch/Data Fault was containing
a wrong value when the fault was triggered in aarch32 but handled in
aarch64.  This because the encoding differs between the two ISAs and the
encoder was just checking the starting ISA rather than the the ending
one. In this case the getFsr must be called after we know which is the
ending ISA, which happens only after ArmFault::invoke gets called.  The
fsc update hence happens before writing into the Syndrome register.

Change-Id: I725f12b6dcc0178f608233bd3d15e466d1cd1ffc
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/8362
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
src/arch/arm/faults.cc
src/arch/arm/faults.hh
src/arch/arm/isa.cc