Move XER low bits out of register file
authorPaul Mackerras <paulus@ozlabs.org>
Wed, 29 Jun 2022 10:02:36 +0000 (20:02 +1000)
committerPaul Mackerras <paulus@ozlabs.org>
Wed, 29 Jun 2022 10:02:36 +0000 (20:02 +1000)
commit204fedc63f7831e35cea09688b6e5249de8938da
tree3a7bbb1934d6d14c465dd1f088ebbc0a2fffe9fb
parentbdd4d041629f92484806812e54744ed5d8413c55
Move XER low bits out of register file

Besides the overflow and status carry bits, XER has 18 bits which need
to retain the value written by mtxer (in case software wants to
emulate the move-assist instructions (lswi, lswx, stswi, stswx).
Until now these bits (and others) have been stored in the GPR file as
a "fast" SPR, but this causes complications because XER is not really
a fast SPR.

Instead, we now store these 18 bits in the 'ctrl' signal, which exists
in execute1.  This will enable us to simplify the data path in future,
and has the added bonus that with a little bit of plumbing, we can get
the full XER value printed when dumping registers at the end of a
simulation.

Therefore this changes scripts/run_test.sh to remove the greps which
exclude XER from the comparison of actual and expected register
results.

Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
common.vhdl
core.vhdl
cr_file.vhdl
execute1.vhdl
register_file.vhdl
scripts/run_test.sh