rather big change to interaction between regfile and compunits on read
[soc.git] / src / soc / regfile / util.py
1 from soc.regfile.regfiles import FastRegs
2 from soc.decoder.power_enums import SPR, spr_dict
3
4 def fast_reg_to_spr(spr_num):
5 if spr_num == FastRegs.CTR:
6 return SPR.CTR.value
7 elif spr_num == FastRegs.LR:
8 return SPR.LR.value
9 elif spr_num == FastRegs.TAR:
10 return SPR.TAR.value
11 elif spr_num == FastRegs.SRR0:
12 return SPR.SRR0.value
13 elif spr_num == FastRegs.SRR1:
14 return SPR.SRR1.value
15
16
17 def spr_to_fast_reg(spr_num):
18 if not isinstance(spr_num, str):
19 spr_num = spr_dict[spr_num].SPR
20 if spr_num == 'CTR':
21 return FastRegs.CTR
22 elif spr_num == 'LR':
23 return FastRegs.LR
24 elif spr_num == 'TAR':
25 return FastRegs.TAR
26 elif spr_num == 'SRR0':
27 return FastRegs.SRR0
28 elif spr_num == 'SRR1':
29 return FastRegs.SRR1
30 return None