isel takes a CR bit, not a CR field

Fix a GHDL assert in isel.

Signed-off-by: Anton Blanchard <anton@linux.ibm.com>
jtag-port
Anton Blanchard 5 years ago committed by Anton Blanchard
parent 60b05ee1e5
commit e67924f55e

@ -110,6 +110,7 @@ begin
variable result_with_carry : std_ulogic_vector(64 downto 0); variable result_with_carry : std_ulogic_vector(64 downto 0);
variable result_en : std_ulogic; variable result_en : std_ulogic;
variable crnum : crnum_t; variable crnum : crnum_t;
variable crbit : integer range 0 to 31;
variable scrnum : crnum_t; variable scrnum : crnum_t;
variable lo, hi : integer; variable lo, hi : integer;
variable sh, mb, me : std_ulogic_vector(5 downto 0); variable sh, mb, me : std_ulogic_vector(5 downto 0);
@ -238,8 +239,8 @@ begin
result := e_in.read_data3; result := e_in.read_data3;
result_en := '1'; result_en := '1';
when OP_ISEL => when OP_ISEL =>
crnum := to_integer(unsigned(insn_bc(e_in.insn))); crbit := to_integer(unsigned(insn_bc(e_in.insn)));
if e_in.cr(31-crnum) = '1' then if e_in.cr(31-crbit) = '1' then
result := e_in.read_data1; result := e_in.read_data1;
else else
result := e_in.read_data2; result := e_in.read_data2;

Loading…
Cancel
Save