diff -r c88a5644d81a -r eb586b1cf8ca src/arch/isa_parser.py --- a/src/arch/isa_parser.py Wed Jun 29 03:57:55 2011 -0700 +++ b/src/arch/isa_parser.py Wed Jun 29 03:58:47 2011 -0700 @@ -1792,23 +1792,28 @@ """Generate operandTypeMap from the user's 'def operand_types' statement.""" operand_type = {} - for (ext, (desc, size)) in user_dict.iteritems(): - if desc == 'signed int': - ctype = 'int%d_t' % size - elif desc == 'unsigned int': - ctype = 'uint%d_t' % size - elif desc == 'float': - if size == 32: - ctype = 'float' - elif size == 64: - ctype = 'double' - elif desc == 'twin64 int': - ctype = 'Twin64_t' - elif desc == 'twin32 int': - ctype = 'Twin32_t' - if ctype == '': - error(parser, lineno, - 'Unrecognized type description "%s" in user_dict') + for (ext, val) in user_dict.iteritems(): + ctype = '' + if isinstance(val, (list, tuple)): + (desc, size) = val + if desc == 'signed int': + ctype = 'int%d_t' % size + elif desc == 'unsigned int': + ctype = 'uint%d_t' % size + elif desc == 'float': + if size == 32: + ctype = 'float' + elif size == 64: + ctype = 'double' + elif desc == 'twin64 int': + ctype = 'Twin64_t' + elif desc == 'twin32 int': + ctype = 'Twin32_t' + if ctype == '': + error(self, lineno, + 'Unrecognized type description "%s" in user_dict') + else: + ctype = val operand_type[ext] = ctype self.operandTypeMap = operand_type