mirror of
https://github.com/antonblanchard/microwatt.git
synced 2026-01-11 23:43:15 +00:00
core: Implement the TAR register and the bctar instruction
Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
This commit is contained in:
parent
081684273e
commit
0fb8967290
@ -26,6 +26,7 @@ package common is
|
||||
constant SPR_XER : spr_num_t := 1;
|
||||
constant SPR_LR : spr_num_t := 8;
|
||||
constant SPR_CTR : spr_num_t := 9;
|
||||
constant SPR_TAR : spr_num_t := 815;
|
||||
constant SPR_DSISR : spr_num_t := 18;
|
||||
constant SPR_DAR : spr_num_t := 19;
|
||||
constant SPR_TB : spr_num_t := 268;
|
||||
@ -459,6 +460,8 @@ package body common is
|
||||
n := 11;
|
||||
when SPR_XER =>
|
||||
n := 12;
|
||||
when SPR_TAR =>
|
||||
n := 13;
|
||||
when others =>
|
||||
n := 0;
|
||||
return "000000";
|
||||
|
||||
@ -94,7 +94,7 @@ architecture behaviour of decode1 is
|
||||
2#1100000010# => '1', 2#1100100010# => '1', 2#1101000010# => '1', 2#1101100010# => '1', 2#1110000010# => '1', 2#1110100010# => '1', 2#1111000010# => '1', 2#1111100010# => '1',
|
||||
2#1000010000# => '1', -- bcctr
|
||||
2#0000010000# => '1', -- bclr
|
||||
2#1000110000# => '0', -- bctar
|
||||
2#1000110000# => '1', -- bctar
|
||||
2#0100000001# => '1', -- crand
|
||||
2#0010000001# => '1', -- crandc
|
||||
2#0100100001# => '1', -- creqv
|
||||
@ -467,11 +467,12 @@ begin
|
||||
if f_in.insn(23) = '0' then
|
||||
v.ispr1 := fast_spr_num(SPR_CTR);
|
||||
end if;
|
||||
-- TODO: Add TAR
|
||||
if f_in.insn(10) = '0' then
|
||||
v.ispr2 := fast_spr_num(SPR_LR);
|
||||
else
|
||||
elsif f_in.insn(6) = '0' then
|
||||
v.ispr2 := fast_spr_num(SPR_CTR);
|
||||
else
|
||||
v.ispr2 := fast_spr_num(SPR_TAR);
|
||||
end if;
|
||||
else
|
||||
-- Could be OP_RFID
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user