mem.isa (12236:126ac9da6050) mem.isa (12385:288c62455dde)
1// -*- mode:c++ -*-
2
3// Copyright (c) 2007 MIPS Technologies, Inc.
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

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

138 class %(class_name)s : public %(base_class)s
139 {
140 public:
141
142 /// Constructor.
143 %(class_name)s(ExtMachInst machInst);
144
145 Fault execute(ExecContext *, Trace::InstRecord *) const;
1// -*- mode:c++ -*-
2
3// Copyright (c) 2007 MIPS Technologies, Inc.
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

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

138 class %(class_name)s : public %(base_class)s
139 {
140 public:
141
142 /// Constructor.
143 %(class_name)s(ExtMachInst machInst);
144
145 Fault execute(ExecContext *, Trace::InstRecord *) const;
146 Fault eaComp(ExecContext *, Trace::InstRecord *) const;
147 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const;
148 Fault completeAcc(Packet *, ExecContext *, Trace::InstRecord *) const;
149 };
150}};
151
152
153def template LoadStoreConstructor {{
154 %(class_name)s::%(class_name)s(ExtMachInst machInst)
155 : %(base_class)s("%(mnemonic)s", machInst, %(op_class)s)
156 {
157 %(constructor)s;
158 }
159}};
160
146 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const;
147 Fault completeAcc(Packet *, ExecContext *, Trace::InstRecord *) const;
148 };
149}};
150
151
152def template LoadStoreConstructor {{
153 %(class_name)s::%(class_name)s(ExtMachInst machInst)
154 : %(base_class)s("%(mnemonic)s", machInst, %(op_class)s)
155 {
156 %(constructor)s;
157 }
158}};
159
161
162def template EACompExecute {{
163 Fault
164 %(class_name)s::eaComp(ExecContext *xc, Trace::InstRecord *traceData) const
165 {
166 Addr EA;
167 Fault fault = NoFault;
168
169 if (this->isFloating()) {
170 %(fp_enable_check)s;
171
172 if(fault != NoFault)
173 return fault;
174 }
175
176 %(op_decl)s;
177 %(op_rd)s;
178 %(ea_code)s;
179
180 // NOTE: Trace Data is written using execute or completeAcc templates
181 if (fault == NoFault) {
182 xc->setEA(EA);
183 }
184
185 return fault;
186 }
187}};
188
189def template LoadExecute {{
190 Fault %(class_name)s::execute(ExecContext *xc,
191 Trace::InstRecord *traceData) const
192 {
193 Addr EA;
194 Fault fault = NoFault;
195
196 if (this->isFloating()) {

--- 387 unchanged lines hidden ---
160def template LoadExecute {{
161 Fault %(class_name)s::execute(ExecContext *xc,
162 Trace::InstRecord *traceData) const
163 {
164 Addr EA;
165 Fault fault = NoFault;
166
167 if (this->isFloating()) {

--- 387 unchanged lines hidden ---