spr, not existent in the Power v3.0 spec.
https://bugs.libre-soc.org/show_bug.cgi?id=917#c54
works fine, required removal of hack in ISACaller to uppercase spr
to SPR
XFX-Form
-* mtspr SPR,RS
+* mtspr spr,RS
Pseudo-code:
- n <- spr[5:9] || spr[0:4]
+ n <- spr
switch (n)
case(13): see(Book_III_p974)
case(808, 809, 810, 811):
XFX-Form
-* mfspr RT,SPR
+* mfspr RT,spr
Pseudo-code:
- n <- spr[5:9] || spr[0:4]
+ n <- spr
switch (n)
case(129): see(Book_III_p975)
case(808, 809, 810, 811):
Immediate field that specifies signed versus
unsigned conversion.
Formats: X
+ spr (16:20,11:15)
+ Field used to specify a Special Purpose Register
+ for the mtspr and mfspr instructions.
+ Formats: XFX
SPR (11:20)
Field used to specify a Special Purpose Register
for the mtspr and mfspr instructions.
assert regnum <= 7, "sigh, TODO, 128 CR fields"
val = (val & 0b11) | (regnum << 2)
else:
- if name == 'spr':
- sig = getattr(fields, name.upper())
- else:
- sig = getattr(fields, name)
+ sig = getattr(fields, name)
val = yield sig
# these are all opcode fields involved in index-selection of CR,
# and need to do "standard" arithmetic. CR[BA+32] for example