str64.isa (10037:5cac77888310) str64.isa (12219:5c42cf79d862)
1// -*- mode:c++ -*-
2
1// -*- mode:c++ -*-
2
3// Copyright (c) 2011-2013 ARM Limited
3// Copyright (c) 2011-2013,2017 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

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

272 class StoreEx64(StoreRawRegInst64, StoreSingle64):
273 decConstBase = 'LoadStoreEx64'
274 base = 'ArmISA::MemoryEx64'
275 writeback = False
276 post = False
277 execBase = 'StoreEx64'
278 def __init__(self, *args, **kargs):
279 super(StoreEx64, self).__init__(*args, **kargs)
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

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

272 class StoreEx64(StoreRawRegInst64, StoreSingle64):
273 decConstBase = 'LoadStoreEx64'
274 base = 'ArmISA::MemoryEx64'
275 writeback = False
276 post = False
277 execBase = 'StoreEx64'
278 def __init__(self, *args, **kargs):
279 super(StoreEx64, self).__init__(*args, **kargs)
280 self.codeBlobs["postacc_code"] = "XResult = !writeResult;"
280 self.codeBlobs["postacc_code"] = \
281 "XResult = !writeResult; SevMailbox = 1; LLSCLock = 0;"
281
282 def buildStores64(mnem, NameBase, size, flavor="normal"):
283 StoreImm64(mnem, NameBase + "_IMM", size, flavor=flavor).emit()
284 StorePre64(mnem, NameBase + "_PRE", size, flavor=flavor).emit()
285 StorePost64(mnem, NameBase + "_POST", size, flavor=flavor).emit()
286 StoreReg64(mnem, NameBase + "_REG", size, flavor=flavor).emit()
287
288 buildStores64("strb", "STRB64", 1)

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

338 execBase = 'StoreEx64'
339 decConstBase = 'StoreImmDEx64'
340 base = 'ArmISA::MemoryDImmEx64'
341 micro = False
342 post = False
343 writeback = False
344 def __init__(self, *args, **kargs):
345 super(StoreImmDEx64, self).__init__(*args, **kargs)
282
283 def buildStores64(mnem, NameBase, size, flavor="normal"):
284 StoreImm64(mnem, NameBase + "_IMM", size, flavor=flavor).emit()
285 StorePre64(mnem, NameBase + "_PRE", size, flavor=flavor).emit()
286 StorePost64(mnem, NameBase + "_POST", size, flavor=flavor).emit()
287 StoreReg64(mnem, NameBase + "_REG", size, flavor=flavor).emit()
288
289 buildStores64("strb", "STRB64", 1)

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

339 execBase = 'StoreEx64'
340 decConstBase = 'StoreImmDEx64'
341 base = 'ArmISA::MemoryDImmEx64'
342 micro = False
343 post = False
344 writeback = False
345 def __init__(self, *args, **kargs):
346 super(StoreImmDEx64, self).__init__(*args, **kargs)
346 self.codeBlobs["postacc_code"] = "XResult = !writeResult;"
347 self.codeBlobs["postacc_code"] = \
348 "XResult = !writeResult; SevMailbox = 1; LLSCLock = 0;"
347
348 class StoreRegU64(StoreReg64):
349 decConstBase = 'LoadStoreRegU64'
350 micro = True
351
352 StoreImmDEx64("stlxp", "STLXPW64", 4, flavor="relexp").emit()
353 StoreImmDEx64("stlxp", "STLXPX64", 8, flavor="relexp").emit()
354 StoreImmDEx64("stxp", "STXPW64", 4, flavor="exp").emit()

--- 18 unchanged lines hidden ---
349
350 class StoreRegU64(StoreReg64):
351 decConstBase = 'LoadStoreRegU64'
352 micro = True
353
354 StoreImmDEx64("stlxp", "STLXPW64", 4, flavor="relexp").emit()
355 StoreImmDEx64("stlxp", "STLXPX64", 8, flavor="relexp").emit()
356 StoreImmDEx64("stxp", "STXPW64", 4, flavor="exp").emit()

--- 18 unchanged lines hidden ---