str.isa (7746:79adfecb2b8a) | str.isa (8069:a3f5f75db279) |
---|---|
1// -*- mode:c++ -*- 2 3// Copyright (c) 2010 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 --- 33 unchanged lines hidden (view full) --- 42 header_output = "" 43 decoder_output = "" 44 exec_output = "" 45 46 class StoreInst(LoadStoreInst): 47 execBase = 'Store' 48 49 def __init__(self, mnem, post, add, writeback, size=4, | 1// -*- mode:c++ -*- 2 3// Copyright (c) 2010 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 --- 33 unchanged lines hidden (view full) --- 42 header_output = "" 43 decoder_output = "" 44 exec_output = "" 45 46 class StoreInst(LoadStoreInst): 47 execBase = 'Store' 48 49 def __init__(self, mnem, post, add, writeback, size=4, |
50 sign=False, user=False, flavor="normal"): | 50 sign=False, user=False, flavor="normal", 51 instFlags = []): |
51 super(StoreInst, self).__init__() 52 53 self.name = mnem 54 self.post = post 55 self.add = add 56 self.writeback = writeback 57 self.size = size 58 self.sign = sign 59 self.user = user 60 self.flavor = flavor | 52 super(StoreInst, self).__init__() 53 54 self.name = mnem 55 self.post = post 56 self.add = add 57 self.writeback = writeback 58 self.size = size 59 self.sign = sign 60 self.user = user 61 self.flavor = flavor |
61 | 62 self.instFlags = instFlags |
62 if self.add: 63 self.op = " +" 64 else: 65 self.op = " -" 66 67 self.memFlags = ["ArmISA::TLB::MustBeOne"] 68 self.codeBlobs = { "postacc_code" : "" } 69 70 def emitHelper(self, base = 'Memory', wbDecl = None): 71 72 global header_output, decoder_output, exec_output 73 74 codeBlobs = self.codeBlobs 75 codeBlobs["predicate_test"] = pickPredicate(codeBlobs) 76 (newHeader, 77 newDecoder, 78 newExec) = self.fillTemplates(self.name, self.Name, codeBlobs, | 63 if self.add: 64 self.op = " +" 65 else: 66 self.op = " -" 67 68 self.memFlags = ["ArmISA::TLB::MustBeOne"] 69 self.codeBlobs = { "postacc_code" : "" } 70 71 def emitHelper(self, base = 'Memory', wbDecl = None): 72 73 global header_output, decoder_output, exec_output 74 75 codeBlobs = self.codeBlobs 76 codeBlobs["predicate_test"] = pickPredicate(codeBlobs) 77 (newHeader, 78 newDecoder, 79 newExec) = self.fillTemplates(self.name, self.Name, codeBlobs, |
79 self.memFlags, [], base, wbDecl) | 80 self.memFlags, self.instFlags, base, wbDecl) |
80 81 header_output += newHeader 82 decoder_output += newDecoder 83 exec_output += newExec 84 85 class SrsInst(LoadStoreInst): 86 execBase = 'Store' 87 decConstBase = 'Srs' --- 128 unchanged lines hidden (view full) --- 216 def storeImmClassName(post, add, writeback, size=4, sign=False, user=False): 217 return memClassName("STORE_IMM", post, add, writeback, size, sign, user) 218 219 class StoreImmEx(StoreImmInst, StoreSingle): 220 execBase = 'StoreEx' 221 decConstBase = 'StoreExImm' 222 basePrefix = 'MemoryExImm' 223 nameFunc = staticmethod(storeImmClassName) | 81 82 header_output += newHeader 83 decoder_output += newDecoder 84 exec_output += newExec 85 86 class SrsInst(LoadStoreInst): 87 execBase = 'Store' 88 decConstBase = 'Srs' --- 128 unchanged lines hidden (view full) --- 217 def storeImmClassName(post, add, writeback, size=4, sign=False, user=False): 218 return memClassName("STORE_IMM", post, add, writeback, size, sign, user) 219 220 class StoreImmEx(StoreImmInst, StoreSingle): 221 execBase = 'StoreEx' 222 decConstBase = 'StoreExImm' 223 basePrefix = 'MemoryExImm' 224 nameFunc = staticmethod(storeImmClassName) |
225 instFlags = ['IsStoreConditional'] |
|
224 225 def __init__(self, *args, **kargs): 226 super(StoreImmEx, self).__init__(*args, **kargs) 227 self.codeBlobs["postacc_code"] = "Result = !writeResult;" 228 229 class StoreImm(StoreImmInst, StoreSingle): 230 decConstBase = 'LoadStoreImm' 231 basePrefix = 'MemoryImm' --- 63 unchanged lines hidden (view full) --- 295 def storeDoubleImmClassName(post, add, writeback): 296 return memClassName("STORE_IMMD", post, add, writeback, 4, False, False) 297 298 class StoreDoubleImmEx(StoreImmInst, StoreDouble): 299 execBase = 'StoreEx' 300 decConstBase = 'StoreExDImm' 301 basePrefix = 'MemoryExDImm' 302 nameFunc = staticmethod(storeDoubleImmClassName) | 226 227 def __init__(self, *args, **kargs): 228 super(StoreImmEx, self).__init__(*args, **kargs) 229 self.codeBlobs["postacc_code"] = "Result = !writeResult;" 230 231 class StoreImm(StoreImmInst, StoreSingle): 232 decConstBase = 'LoadStoreImm' 233 basePrefix = 'MemoryImm' --- 63 unchanged lines hidden (view full) --- 297 def storeDoubleImmClassName(post, add, writeback): 298 return memClassName("STORE_IMMD", post, add, writeback, 4, False, False) 299 300 class StoreDoubleImmEx(StoreImmInst, StoreDouble): 301 execBase = 'StoreEx' 302 decConstBase = 'StoreExDImm' 303 basePrefix = 'MemoryExDImm' 304 nameFunc = staticmethod(storeDoubleImmClassName) |
305 instFlags = ['IsStoreConditional'] |
|
303 304 def __init__(self, *args, **kargs): 305 super(StoreDoubleImmEx, self).__init__(*args, **kargs) 306 self.codeBlobs["postacc_code"] = "Result = !writeResult;" 307 308 class StoreDoubleImm(StoreImmInst, StoreDouble): 309 decConstBase = 'LoadStoreDImm' 310 basePrefix = 'MemoryDImm' --- 69 unchanged lines hidden --- | 306 307 def __init__(self, *args, **kargs): 308 super(StoreDoubleImmEx, self).__init__(*args, **kargs) 309 self.codeBlobs["postacc_code"] = "Result = !writeResult;" 310 311 class StoreDoubleImm(StoreImmInst, StoreDouble): 312 decConstBase = 'LoadStoreDImm' 313 basePrefix = 'MemoryDImm' --- 69 unchanged lines hidden --- |