Upper 32 bits of XER should read as 0s

From the architecture:

  bits 0:31 and 35:43 are treated as reserved and return 0s when read
  using mfxer

Signed-off-by: Anton Blanchard <anton@linux.ibm.com>
pull/131/head
Anton Blanchard 5 years ago committed by Anton Blanchard
parent 467630573c
commit cc8a9e7893

@ -401,6 +401,8 @@ begin
if is_fast_spr(e_in.read_reg1) then if is_fast_spr(e_in.read_reg1) then
result := e_in.read_data1; result := e_in.read_data1;
if decode_spr_num(e_in.insn) = SPR_XER then if decode_spr_num(e_in.insn) = SPR_XER then
-- bits 0:31 and 35:43 are treated as reserved and return 0s when read using mfxer
result(63 downto 32) := (others => '0');
result(63-32) := v.e.xerc.so; result(63-32) := v.e.xerc.so;
result(63-33) := v.e.xerc.ov; result(63-33) := v.e.xerc.ov;
result(63-34) := v.e.xerc.ca; result(63-34) := v.e.xerc.ca;

Loading…
Cancel
Save