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 --- |