1/*
2 * Copyright (c) 2011,2013 ARM Limited
3 * Copyright (c) 2013 Advanced Micro Devices, Inc.
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

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

210 uint8_t readyRegs;
211
212 public:
213 /////////////////////// Load Store Data //////////////////////
214 /** The effective virtual address (lds & stores only). */
215 Addr effAddr;
216
217 /** The effective physical address. */
218 Addr physEffAddr;
218 Addr physEffAddrLow;
219
220 /** The effective physical address
221 * of the second request for a split request
222 */
223 Addr physEffAddrHigh;
224
225 /** The memory request flags (from translation). */
226 unsigned memReqFlags;
227
228 /** data address space ID, for loads & stores. */
229 short asid;
230
231 /** The size of the request */
232 uint8_t effSize;

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

1056inline void
1057BaseDynInst<Impl>::finishTranslation(WholeTranslationState *state)
1058{
1059 fault = state->getFault();
1060
1061 instFlags[IsStrictlyOrdered] = state->isStrictlyOrdered();
1062
1063 if (fault == NoFault) {
1059 physEffAddr = state->getPaddr();
1064 // save Paddr for a single req
1065 physEffAddrLow = state->getPaddr();
1066
1067 // case for the request that has been split
1068 if (state->isSplit) {
1069 physEffAddrLow = state->sreqLow->getPaddr();
1070 physEffAddrHigh = state->sreqHigh->getPaddr();
1071 }
1072
1073 memReqFlags = state->getFlags();
1074
1075 if (state->mainReq->isCondSwap()) {
1076 assert(state->res);
1077 state->mainReq->setExtraData(*state->res);
1078 }
1079
1080 } else {
1081 state->deleteReqs();
1082 }
1083 delete state;
1084
1085 translationCompleted(true);
1086}
1087
1088#endif // __CPU_BASE_DYN_INST_HH__