Deleted Added
sdiff udiff text old ( 12386:2bf5fb25a5f1 ) new ( 12527:264a2d7e5c1d )
full compact
1// -*- mode:c++ -*-
2
3// Copyright (c) 2011-2014 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

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

223 def emit(self):
224 self.buildEACode()
225
226 # Code that actually handles the access
227 if self.flavor == "fp":
228 if self.size == 4:
229 accCode = '''
230 uint64_t data = cSwap(Mem_ud, isBigEndian64(xc->tcBase()));
231 AA64FpDestP0_uw = (uint32_t)data;
232 AA64FpDestP1_uw = 0;
233 AA64FpDestP2_uw = 0;
234 AA64FpDestP3_uw = 0;
235 AA64FpDest2P0_uw = (data >> 32);
236 AA64FpDest2P1_uw = 0;
237 AA64FpDest2P2_uw = 0;
238 AA64FpDest2P3_uw = 0;
239 '''
240 elif self.size == 8:
241 accCode = '''
242 AA64FpDestP0_uw = (uint32_t)Mem_tud[0];
243 AA64FpDestP1_uw = (uint32_t)(Mem_tud[0] >> 32);
244 AA64FpDestP2_uw = 0;
245 AA64FpDestP3_uw = 0;
246 AA64FpDest2P0_uw = (uint32_t)Mem_tud[1];
247 AA64FpDest2P1_uw = (uint32_t)(Mem_tud[1] >> 32);
248 AA64FpDest2P2_uw = 0;
249 AA64FpDest2P3_uw = 0;
250 '''
251 else:
252 if self.sign:
253 if self.size == 4:
254 accCode = '''
255 uint64_t data = cSwap(Mem_ud,
256 isBigEndian64(xc->tcBase()));
257 XDest = sext<32>((uint32_t)data);
258 XDest2 = sext<32>(data >> 32);
259 '''
260 elif self.size == 8:
261 accCode = '''
262 XDest = Mem_tud[0];
263 XDest2 = Mem_tud[1];
264 '''
265 else:
266 if self.size == 4:
267 accCode = '''
268 uint64_t data = cSwap(Mem_ud,
269 isBigEndian64(xc->tcBase()));
270 XDest = (uint32_t)data;
271 XDest2 = data >> 32;
272 '''
273 elif self.size == 8:
274 accCode = '''
275 XDest = Mem_tud[0];
276 XDest2 = Mem_tud[1];
277 '''
278 self.codeBlobs["memacc_code"] = accCode
279
280 # Push it out to the output files
281 wbDecl = None
282 if self.writeback and not self.micro:
283 wbDecl = self.wbDecl
284 self.emitHelper(self.base, wbDecl)

--- 163 unchanged lines hidden ---