19534176e0
and breaks it into a separate EA and MemAccess templated from how the Alpha ARch. was coded to do the same thing. arch/mips/isa/bitfields.isa: comment change arch/mips/isa/decoder.isa: re-structuring of load/store instruction definitions arch/mips/isa/formats/mem.isa: Define LoadMemory & Store Memory formats Use style of formatting & base class similar to what was used for ALPHA arch/mips/isa/formats/util.isa: Insert LoadStoreBase function here from alpha/arch/isa/mem.isa arch/mips/isa/operands.isa: change shw->sh and uhw->uh --HG-- extra : convert_revision : 5d85f15f4a600dd4c473a3b4a170ba39cf07fc8a
36 lines
1.2 KiB
Text
36 lines
1.2 KiB
Text
def operand_types {{
|
|
'sb' : ('signed int', 8),
|
|
'ub' : ('unsigned int', 8),
|
|
'sh' : ('signed int', 16),
|
|
'uh' : ('unsigned int', 16),
|
|
'sw' : ('signed int', 32),
|
|
'uw' : ('unsigned int', 32),
|
|
'sd' : ('signed int', 64),
|
|
'ud' : ('unsigned int', 64),
|
|
'sf' : ('float', 32),
|
|
'df' : ('float', 64),
|
|
'qf' : ('float', 128)
|
|
}};
|
|
|
|
def operands {{
|
|
'Rd': ('IntReg', 'uw', 'RD', 'IsInteger', 1),
|
|
'Rs': ('IntReg', 'uw', 'RS', 'IsInteger', 2),
|
|
'Rt': ('IntReg', 'uw', 'RT', 'IsInteger', 3),
|
|
'R31': ('IntReg', 'uw','R31','IsInteger', 4),
|
|
|
|
'IntImm': ('IntReg', 'uw', 'INTIMM', 'IsInteger', 3),
|
|
'Sa': ('IntReg', 'uw', 'SA', 'IsInteger', 4),
|
|
|
|
'Fd': ('FloatReg', 'sf', 'FD', 'IsFloating', 1),
|
|
'Fs': ('FloatReg', 'sf', 'FS', 'IsFloating', 2),
|
|
'Ft': ('FloatReg', 'sf', 'FT', 'IsFloating', 3),
|
|
|
|
'Mem': ('Mem', 'ud', None, ('IsMemRef', 'IsLoad', 'IsStore'), 4),
|
|
|
|
'NPC': ('NPC', 'uw', None, ( None, None, 'IsControl' ), 4),
|
|
'NNPC': ('NNPC', 'uw', None, ( None, None, 'IsControl' ), 4)
|
|
#'Runiq': ('ControlReg', 'uq', 'Uniq', None, 1),
|
|
#'FPCR': ('ControlReg', 'uq', 'Fpcr', None, 1),
|
|
# The next two are hacks for non-full-system call-pal emulation
|
|
#'R0': ('IntReg', 'uq', '0', None, 1),
|
|
}};
|