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 --- 184 unchanged lines hidden (view full) --- 193 isBigEndian64(xc->tcBase())); 194 AA64FpDestP0_uw = (uint32_t)data; 195 AA64FpDestP1_uw = (data >> 32); 196 AA64FpDestP2_uw = 0; 197 AA64FpDestP3_uw = 0; 198 ''' 199 elif self.size == 16: 200 accCode = ''' |
201 auto data = cSwap(Mem%s, isBigEndian64(xc->tcBase())); 202 AA64FpDestP0_uw = (uint32_t)data[0]; 203 AA64FpDestP1_uw = (data[0] >> 32); 204 AA64FpDestP2_uw = (uint32_t)data[1]; 205 AA64FpDestP3_uw = (data[1] >> 32); |
206 ''' 207 elif self.flavor == "widen" or self.size == 8: 208 accCode = "XDest = cSwap(Mem%s, isBigEndian64(xc->tcBase()));" 209 else: 210 accCode = "WDest = cSwap(Mem%s, isBigEndian64(xc->tcBase()));" 211 212 accCode = accCode % buildMemSuffix(self.sign, self.size) 213 --- 20 unchanged lines hidden (view full) --- 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 --- |