mem.isa (7119:5ad962dec52f) mem.isa (7120:d630089169f3)
1// -*- mode:c++ -*-
2
1// -*- mode:c++ -*-
2
3// Copyright (c) 2010 ARM Limited
4// All rights reserved
5//
6// The license below extends only to copyright in the software and shall
7// not be construed as granting a license to any other intellectual
8// property including but not limited to intellectual property relating
9// to a hardware implementation of the functionality of the software
10// licensed hereunder. You may use the software subject to the license
11// terms below provided that you ensure that this notice is replicated
12// unmodified and in its entirety in all distributions of the software,
13// modified or unmodified, in source code or in binary form.
14//
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
9// notice, this list of conditions and the following disclaimer;
10// redistributions in binary form must reproduce the above copyright

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

51 %(op_wb)s;
52 }
53 }
54
55 return fault;
56 }
57}};
58
15// Copyright (c) 2007-2008 The Florida State University
16// All rights reserved.
17//
18// Redistribution and use in source and binary forms, with or without
19// modification, are permitted provided that the following conditions are
20// met: redistributions of source code must retain the above copyright
21// notice, this list of conditions and the following disclaimer;
22// redistributions in binary form must reproduce the above copyright

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

63 %(op_wb)s;
64 }
65 }
66
67 return fault;
68 }
69}};
70
71def template StoreExecute {{
72 Fault %(class_name)s::execute(%(CPU_exec_context)s *xc,
73 Trace::InstRecord *traceData) const
74 {
75 Addr EA;
76 Fault fault = NoFault;
77
78 %(op_decl)s;
79 %(op_rd)s;
80 %(ea_code)s;
81
82 if (%(predicate_test)s)
83 {
84 if (fault == NoFault) {
85 %(memacc_code)s;
86 }
87
88 if (fault == NoFault) {
89 fault = xc->write((uint%(mem_acc_size)d_t&)Mem, EA,
90 memAccessFlags, NULL);
91 if (traceData) { traceData->setData(Mem); }
92 }
93
94 if (fault == NoFault) {
95 %(op_wb)s;
96 }
97 }
98
99 return fault;
100 }
101}};
102
103def template StoreInitiateAcc {{
104 Fault %(class_name)s::initiateAcc(%(CPU_exec_context)s *xc,
105 Trace::InstRecord *traceData) const
106 {
107 Addr EA;
108 Fault fault = NoFault;
109
110 %(op_decl)s;
111 %(op_rd)s;
112 %(ea_code)s;
113
114 if (%(predicate_test)s)
115 {
116 if (fault == NoFault) {
117 %(memacc_code)s;
118 }
119
120 if (fault == NoFault) {
121 fault = xc->write((uint%(mem_acc_size)d_t&)Mem, EA,
122 memAccessFlags, NULL);
123 if (traceData) { traceData->setData(Mem); }
124 }
125
126 // Need to write back any potential address register update
127 if (fault == NoFault) {
128 %(op_wb)s;
129 }
130 }
131
132 return fault;
133 }
134}};
135
59def template LoadInitiateAcc {{
60 Fault %(class_name)s::initiateAcc(%(CPU_exec_context)s *xc,
61 Trace::InstRecord *traceData) const
62 {
63 Addr EA;
64 Fault fault = NoFault;
65
66 %(op_src_decl)s;

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

101 %(op_wb)s;
102 }
103 }
104
105 return fault;
106 }
107}};
108
136def template LoadInitiateAcc {{
137 Fault %(class_name)s::initiateAcc(%(CPU_exec_context)s *xc,
138 Trace::InstRecord *traceData) const
139 {
140 Addr EA;
141 Fault fault = NoFault;
142
143 %(op_src_decl)s;

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

178 %(op_wb)s;
179 }
180 }
181
182 return fault;
183 }
184}};
185
186def template StoreCompleteAcc {{
187 Fault %(class_name)s::completeAcc(PacketPtr pkt,
188 %(CPU_exec_context)s *xc,
189 Trace::InstRecord *traceData) const
190 {
191 Fault fault = NoFault;
192
193 %(op_decl)s;
194 %(op_rd)s;
195
196 if (%(predicate_test)s)
197 {
198 if (fault == NoFault) {
199 %(op_wb)s;
200 }
201 }
202
203 return fault;
204 }
205}};
206
109def template LoadStoreImmDeclare {{
110 /**
111 * Static instruction class for "%(mnemonic)s".
112 */
113 class %(class_name)s : public %(base_class)s
114 {
115 public:
116

--- 64 unchanged lines hidden ---
207def template LoadStoreImmDeclare {{
208 /**
209 * Static instruction class for "%(mnemonic)s".
210 */
211 class %(class_name)s : public %(base_class)s
212 {
213 public:
214

--- 64 unchanged lines hidden ---