Deleted Added
sdiff udiff text old ( 7746:79adfecb2b8a ) new ( 8069:a3f5f75db279 )
full compact
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"):
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
61
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,
79 self.memFlags, [], 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)
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)
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 ---