macromem.isa (6726:a5322e816a2a) macromem.isa (6754:72836109775f)
1// -*- mode:c++ -*-
2
3// Copyright (c) 2007-2008 The Florida State University
4// All rights reserved.
5//
6// Redistribution and use in source and binary forms, with or without
7// modification, are permitted provided that the following conditions are
8// met: redistributions of source code must retain the above copyright

--- 58 unchanged lines hidden (view full) ---

67let {{
68 microLdrUopIop = InstObjParams('ldr_uop', 'MicroLdrUop',
69 'MicroMemOp',
70 {'memacc_code': 'Ra = Mem;',
71 'ea_code': 'EA = Rb + (UP ? imm : -imm);',
72 'predicate_test': predicateTest},
73 ['IsMicroop'])
74
1// -*- mode:c++ -*-
2
3// Copyright (c) 2007-2008 The Florida State University
4// All rights reserved.
5//
6// Redistribution and use in source and binary forms, with or without
7// modification, are permitted provided that the following conditions are
8// met: redistributions of source code must retain the above copyright

--- 58 unchanged lines hidden (view full) ---

67let {{
68 microLdrUopIop = InstObjParams('ldr_uop', 'MicroLdrUop',
69 'MicroMemOp',
70 {'memacc_code': 'Ra = Mem;',
71 'ea_code': 'EA = Rb + (UP ? imm : -imm);',
72 'predicate_test': predicateTest},
73 ['IsMicroop'])
74
75 microLdrRetUopCode = '''
76 Ra = Mem;
77 Cpsr = cpsrWriteByInstr(Cpsr, Spsr, 0xF, true);
78 '''
79 microLdrRetUopIop = InstObjParams('ldr_ret_uop', 'MicroLdrRetUop',
80 'MicroMemOp',
81 {'memacc_code': microLdrRetUopCode,
82 'ea_code':
83 'EA = Rb + (UP ? imm : -imm);',
84 'predicate_test': predicateTest},
85 ['IsMicroop'])
86
75 microStrUopIop = InstObjParams('str_uop', 'MicroStrUop',
76 'MicroMemOp',
77 {'memacc_code': 'Mem = Ra;',
78 'ea_code': 'EA = Rb + (UP ? imm : -imm);',
79 'predicate_test': predicateTest},
80 ['IsMicroop'])
81
82 header_output = MicroMemDeclare.subst(microLdrUopIop) + \
87 microStrUopIop = InstObjParams('str_uop', 'MicroStrUop',
88 'MicroMemOp',
89 {'memacc_code': 'Mem = Ra;',
90 'ea_code': 'EA = Rb + (UP ? imm : -imm);',
91 'predicate_test': predicateTest},
92 ['IsMicroop'])
93
94 header_output = MicroMemDeclare.subst(microLdrUopIop) + \
95 MicroMemDeclare.subst(microLdrRetUopIop) + \
83 MicroMemDeclare.subst(microStrUopIop)
84 decoder_output = MicroConstructor.subst(microLdrUopIop) + \
96 MicroMemDeclare.subst(microStrUopIop)
97 decoder_output = MicroConstructor.subst(microLdrUopIop) + \
98 MicroConstructor.subst(microLdrRetUopIop) + \
85 MicroConstructor.subst(microStrUopIop)
86 exec_output = LoadExecute.subst(microLdrUopIop) + \
99 MicroConstructor.subst(microStrUopIop)
100 exec_output = LoadExecute.subst(microLdrUopIop) + \
101 LoadExecute.subst(microLdrRetUopIop) + \
87 StoreExecute.subst(microStrUopIop) + \
88 LoadInitiateAcc.subst(microLdrUopIop) + \
102 StoreExecute.subst(microStrUopIop) + \
103 LoadInitiateAcc.subst(microLdrUopIop) + \
104 LoadInitiateAcc.subst(microLdrRetUopIop) + \
89 StoreInitiateAcc.subst(microStrUopIop) + \
90 LoadCompleteAcc.subst(microLdrUopIop) + \
105 StoreInitiateAcc.subst(microStrUopIop) + \
106 LoadCompleteAcc.subst(microLdrUopIop) + \
107 LoadCompleteAcc.subst(microLdrRetUopIop) + \
91 StoreCompleteAcc.subst(microStrUopIop)
92}};
93
94////////////////////////////////////////////////////////////////////
95//
96// Integer = Integer op Immediate microops
97//
98

--- 243 unchanged lines hidden ---
108 StoreCompleteAcc.subst(microStrUopIop)
109}};
110
111////////////////////////////////////////////////////////////////////
112//
113// Integer = Integer op Immediate microops
114//
115

--- 243 unchanged lines hidden ---