mem.isa (12236:126ac9da6050) mem.isa (12385:288c62455dde)
1// -*- mode:c++ -*-
2
3// Copyright (c) 2003-2005 The Regents of The University of Michigan
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

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

125 class %(class_name)s : public %(base_class)s
126 {
127 public:
128
129 /// Constructor.
130 %(class_name)s(ExtMachInst machInst);
131
132 Fault execute(ExecContext *, Trace::InstRecord *) const;
1// -*- mode:c++ -*-
2
3// Copyright (c) 2003-2005 The Regents of The University of Michigan
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

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

125 class %(class_name)s : public %(base_class)s
126 {
127 public:
128
129 /// Constructor.
130 %(class_name)s(ExtMachInst machInst);
131
132 Fault execute(ExecContext *, Trace::InstRecord *) const;
133 Fault eaComp(ExecContext *, Trace::InstRecord *) const;
134 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const;
135 Fault completeAcc(PacketPtr, ExecContext *, Trace::InstRecord *) const;
136 };
137}};
138
139def template LoadStoreConstructor {{
140 %(class_name)s::%(class_name)s(ExtMachInst machInst)
141 : %(base_class)s("%(mnemonic)s", machInst, %(op_class)s)
142 {
143 %(constructor)s;
144 }
145}};
146
133 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const;
134 Fault completeAcc(PacketPtr, ExecContext *, Trace::InstRecord *) const;
135 };
136}};
137
138def template LoadStoreConstructor {{
139 %(class_name)s::%(class_name)s(ExtMachInst machInst)
140 : %(base_class)s("%(mnemonic)s", machInst, %(op_class)s)
141 {
142 %(constructor)s;
143 }
144}};
145
147def template EACompExecute {{
148 Fault %(class_name)s::eaComp(ExecContext *xc,
149 Trace::InstRecord *traceData) const
150 {
151 Addr EA;
152 Fault fault = NoFault;
153
146
154 %(fp_enable_check)s;
155 %(op_decl)s;
156 %(op_rd)s;
157 %(ea_code)s;
158
159 if (fault == NoFault) {
160 %(op_wb)s;
161 xc->setEA(EA);
162 }
163
164 return fault;
165 }
166}};
167
168
169def template LoadExecute {{
170 Fault %(class_name)s::execute(ExecContext *xc,
171 Trace::InstRecord *traceData) const
172 {
173 Addr EA;
174 Fault fault = NoFault;
175
176 %(fp_enable_check)s;

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

462 initiateAccTemplate = eval(exec_template_base + 'InitiateAcc')
463 completeAccTemplate = eval(exec_template_base + 'CompleteAcc')
464
465 # (header_output, decoder_output, decode_block, exec_output)
466 return (LoadStoreDeclare.subst(iop),
467 LoadStoreConstructor.subst(iop),
468 decode_template.subst(iop),
469 fullExecTemplate.subst(iop)
147def template LoadExecute {{
148 Fault %(class_name)s::execute(ExecContext *xc,
149 Trace::InstRecord *traceData) const
150 {
151 Addr EA;
152 Fault fault = NoFault;
153
154 %(fp_enable_check)s;

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

440 initiateAccTemplate = eval(exec_template_base + 'InitiateAcc')
441 completeAccTemplate = eval(exec_template_base + 'CompleteAcc')
442
443 # (header_output, decoder_output, decode_block, exec_output)
444 return (LoadStoreDeclare.subst(iop),
445 LoadStoreConstructor.subst(iop),
446 decode_template.subst(iop),
447 fullExecTemplate.subst(iop)
470 + EACompExecute.subst(iop)
471 + initiateAccTemplate.subst(iop)
472 + completeAccTemplate.subst(iop))
473}};
474
475def format LoadOrNop(memacc_code, ea_code = {{ EA = Rb + disp; }},
476 mem_flags = [], inst_flags = []) {{
477 (header_output, decoder_output, decode_block, exec_output) = \
478 LoadStoreBase(name, Name, ea_code, memacc_code, mem_flags, inst_flags,

--- 60 unchanged lines hidden ---
448 + initiateAccTemplate.subst(iop)
449 + completeAccTemplate.subst(iop))
450}};
451
452def format LoadOrNop(memacc_code, ea_code = {{ EA = Rb + disp; }},
453 mem_flags = [], inst_flags = []) {{
454 (header_output, decoder_output, decode_block, exec_output) = \
455 LoadStoreBase(name, Name, ea_code, memacc_code, mem_flags, inst_flags,

--- 60 unchanged lines hidden ---