[Libre-soc-bugs] [Bug 1079] make LD/ST-with-update EXTRA3
bugzilla-daemon at libre-soc.org
bugzilla-daemon at libre-soc.org
Sat May 27 13:23:59 BST 2023
https://bugs.libre-soc.org/show_bug.cgi?id=1079
--- Comment #2 from Luke Kenneth Casson Leighton <lkcl at lkcl.net> ---
this is awkward:
class BaseRM(_Mapping):
_: _Field = range(24)
mmode: _Field = (0,)
mask: _Field = range(1, 4)
elwidth: _Field = range(4, 6)
ewsrc: _Field = range(6, 8)
subvl: _Field = range(8, 10)
mode: Mode.remap(range(19, 24))
--> alternative_smask: _Field = (6,7,19) <- special-case: LDST_IDX
smask: _Field = range(16, 19) <- everything else (not LDST_IDX)
extra: Extra.remap(range(10, 19))
extra2: Extra2.remap(range(10, 19))
extra3: Extra3.remap(range(10, 19))
now, by a happy coincidence - i think - it is possible to hit this:
* EXTRA2 : 0: [10,11] 1: [12,13] 2: [14,15] 3: [16,17] unused: [18]
* EXTRA3 : 0: [10,11,12] 1: [13,14,15] mask: [16,17,18]
* EXTRA32: 0: [10,11,12] 1: [13,14,15] 2: [16,17] mask: [6,7,18]
with this:
* RT - BaseRM.extra3[0] - bits 10,11,12
* RA - BaseRM.extra3[1] - bits 13,14,15
* RB - BaseRM.extra2[3] - bits 16,17
hooray! yes.
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the libre-soc-bugs
mailing list