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 instFlags = []):
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
62 self.instFlags = instFlags
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,
80 self.memFlags, self.instFlags, base, wbDecl)
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']
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']
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 ---