mirror of
https://github.com/antonblanchard/microwatt.git
synced 2026-02-26 16:53:16 +00:00
decode2: Reduce metavalue warnings
Explicitly check for undefined values and propagate them. Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
This commit is contained in:
50
decode2.vhdl
50
decode2.vhdl
@@ -434,27 +434,37 @@ begin
|
||||
v.input_ov := '1'; -- need SO state if setting OV to 0
|
||||
end if;
|
||||
when OP_MFSPR =>
|
||||
case decode_spr_num(d_in.insn) is
|
||||
when SPR_XER =>
|
||||
v.input_ov := '1';
|
||||
when SPR_DAR | SPR_DSISR | SPR_PID | SPR_PTCR =>
|
||||
unit := LDST;
|
||||
when others =>
|
||||
end case;
|
||||
if is_X(d_in.insn) then
|
||||
v.input_ov := 'X';
|
||||
else
|
||||
case decode_spr_num(d_in.insn) is
|
||||
when SPR_XER =>
|
||||
v.input_ov := '1';
|
||||
when SPR_DAR | SPR_DSISR | SPR_PID | SPR_PTCR =>
|
||||
unit := LDST;
|
||||
when others =>
|
||||
end case;
|
||||
end if;
|
||||
when OP_MTSPR =>
|
||||
case decode_spr_num(d_in.insn) is
|
||||
when SPR_XER =>
|
||||
v.e.output_xer := '1';
|
||||
v.output_ov := '1';
|
||||
when SPR_DAR | SPR_DSISR | SPR_PID | SPR_PTCR =>
|
||||
unit := LDST;
|
||||
if d_in.valid = '1' then
|
||||
v.sgl_pipe := '1';
|
||||
end if;
|
||||
when others =>
|
||||
end case;
|
||||
if d_in.spr_info.valid = '1' and d_in.valid = '1' then
|
||||
v.sgl_pipe := '1';
|
||||
if is_X(d_in.insn) then
|
||||
v.e.output_xer := 'X';
|
||||
v.output_ov := 'X';
|
||||
v.sgl_pipe := 'X';
|
||||
else
|
||||
case decode_spr_num(d_in.insn) is
|
||||
when SPR_XER =>
|
||||
v.e.output_xer := '1';
|
||||
v.output_ov := '1';
|
||||
when SPR_DAR | SPR_DSISR | SPR_PID | SPR_PTCR =>
|
||||
unit := LDST;
|
||||
if d_in.valid = '1' then
|
||||
v.sgl_pipe := '1';
|
||||
end if;
|
||||
when others =>
|
||||
end case;
|
||||
if d_in.spr_info.valid = '1' and d_in.valid = '1' then
|
||||
v.sgl_pipe := '1';
|
||||
end if;
|
||||
end if;
|
||||
when OP_CMP | OP_MCRXRX =>
|
||||
v.input_ov := '1';
|
||||
|
||||
Reference in New Issue
Block a user