from os.path import dirname, join
from collections import namedtuple
+
def find_wiki_file(name):
filedir = os.path.dirname(os.path.abspath(__file__))
basedir = dirname(dirname(dirname(filedir)))
@unique
class Function(Enum):
NONE = 0
- ALU = 1<<1
- LDST = 1<<2
- SHIFT_ROT = 1<<3
- LOGICAL = 1<<4
- BRANCH = 1<<5
- CR = 1<<6
- TRAP = 1<<7
- MUL = 1<<8
- DIV = 1<<9
- SPR = 1<<10
+ ALU = 1 << 1
+ LDST = 1 << 2
+ SHIFT_ROT = 1 << 3
+ LOGICAL = 1 << 4
+ BRANCH = 1 << 5
+ CR = 1 << 6
+ TRAP = 1 << 7
+ MUL = 1 << 8
+ DIV = 1 << 9
+ SPR = 1 << 10
@unique
Z22 = 27
Z23 = 28
+
# supported instructions: make sure to keep up-to-date with CSV files
# just like everything else
_insns = [
# Internal Operation numbering. Add new opcodes here (FPADD, FPMUL etc.)
@unique
-class InternalOp(Enum):
+class MicrOp(Enum):
OP_ILLEGAL = 0 # important that this is zero (see power_decoder.py)
OP_NOP = 1
OP_ADD = 2
CONST_SH = 10
CONST_SH32 = 11
SPR = 12
- RS = 13 # for shiftrot (M-Form)
+ RS = 13 # for shiftrot (M-Form)
@unique
class In3Sel(Enum):
NONE = 0
RS = 1
- RB = 2 # for shiftrot (M-Form)
+ RB = 2 # for shiftrot (M-Form)
@unique
NONE = 0
update = 1
cix = 2
+ cx = 3
@unique
ONE = 1
CA = 2
+
@unique
class CRInSel(Enum):
NONE = 0
BC = 5
WHOLE_REG = 6
+
@unique
class CROutSel(Enum):
NONE = 0
'CA': 34,
'OV32': 44,
'CA32': 45
- }
+}
if __name__ == '__main__':
# find out what the heck is in SPR enum :)
- print ("sprs", len(SPR))
- print (dir(SPR))
- print (dir(Enum))
- print (SPR.__members__['TAR'])
+ print("sprs", len(SPR))
+ print(dir(SPR))
+ print(dir(Enum))
+ print(SPR.__members__['TAR'])
for x in SPR:
- print (x, x.value, str(x), x.name)
+ print(x, x.value, str(x), x.name)