1// -*- mode:c++ -*-
2
3// Copyright (c) 2015 RISC-V Foundation
4// Copyright (c) 2016 The University of Virginia
5// All rights reserved.
6//
7// Redistribution and use in source and binary forms, with or without
8// modification, are permitted provided that the following conditions are

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

104 * Static instruction class for "%(mnemonic)s".
105 */
106 class %(class_name)s : public %(base_class)s
107 {
108 public:
109 /// Constructor.
110 %(class_name)s(ExtMachInst machInst);
111
112 %(BasicExecDeclare)s
113
114 %(EACompDeclare)s
115
116 %(InitiateAccDeclare)s
117
118 %(CompleteAccDeclare)s
112 Fault execute(ExecContext *, Trace::InstRecord *) const;
113 Fault eaComp(ExecContext *, Trace::InstRecord *) const;
114 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const;
115 Fault completeAcc(PacketPtr, ExecContext *, Trace::InstRecord *) const;
116 };
117}};
118
122def template EACompDeclare {{
123 Fault
124 eaComp(ExecContext *, Trace::InstRecord *) const;
125}};
119
127def template InitiateAccDeclare {{
128 Fault
129 initiateAcc(ExecContext *, Trace::InstRecord *) const;
130}};
131
132
133def template CompleteAccDeclare {{
134 Fault
135 completeAcc(PacketPtr, ExecContext *, Trace::InstRecord *) const;
136}};
137
120def template LoadStoreConstructor {{
121 %(class_name)s::%(class_name)s(ExtMachInst machInst):
122 %(base_class)s("%(mnemonic)s", machInst, %(op_class)s)
123 {
124 %(constructor)s;
125 %(offset_code)s;
126 }
127}};

--- 218 unchanged lines hidden ---