Deleted Added
sdiff udiff text old ( 7313:b0262368daa0 ) new ( 7422:feddb9077def )
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

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

92
93 # (header_output, decoder_output, decode_block, exec_output)
94 return (declareTemplate.subst(iop),
95 constructTemplate.subst(iop),
96 fullExecTemplate.subst(iop)
97 + initiateAccTemplate.subst(iop)
98 + completeAccTemplate.subst(iop))
99
100 def pickPredicate(blobs):
101 for val in blobs.values():
102 if re.search('(?<!Opt)CondCodes', val):
103 return condPredicateTest
104 return predicateTest
105
106 def loadStoreBase(name, Name, imm, eaCode, accCode, postAccCode,
107 memFlags, instFlags, double, strex, base = 'Memory',
108 execTemplateBase = ''):
109 codeBlobs = { "ea_code": eaCode,
110 "memacc_code": accCode,
111 "postacc_code": postAccCode }
112 codeBlobs["predicate_test"] = pickPredicate(codeBlobs)
113 return loadStoreBaseWork(name, Name, imm, False, False, False,
114 codeBlobs, memFlags, instFlags, double,
115 strex, base, execTemplateBase)
116
117 def RfeBase(name, Name, eaCode, accCode, memFlags, instFlags):
118 codeBlobs = { "ea_code": eaCode,
119 "memacc_code": accCode }
120 codeBlobs["predicate_test"] = pickPredicate(codeBlobs)
121 return loadStoreBaseWork(name, Name, False, False, True, False,
122 codeBlobs, memFlags, instFlags, False, False,
123 'RfeOp', 'Load')
124
125 def SrsBase(name, Name, eaCode, accCode, memFlags, instFlags):
126 codeBlobs = { "ea_code": eaCode,
127 "memacc_code": accCode,
128 "postacc_code": "" }
129 codeBlobs["predicate_test"] = pickPredicate(codeBlobs)
130 return loadStoreBaseWork(name, Name, False, False, False, True,
131 codeBlobs, memFlags, instFlags, False, False,
132 'SrsOp', 'Store')
133
134 def SwapBase(name, Name, eaCode, preAccCode, postAccCode, memFlags,
135 instFlags):
136 codeBlobs = { "ea_code": eaCode,
137 "preacc_code": preAccCode,
138 "postacc_code": postAccCode }
139 codeBlobs["predicate_test"] = pickPredicate(codeBlobs)
140 return loadStoreBaseWork(name, Name, False, True, False, False,
141 codeBlobs, memFlags, instFlags, False, False,
142 'Swap', 'Swap')
143
144 def memClassName(base, post, add, writeback, \
145 size=4, sign=False, user=False):
146 Name = base
147

--- 59 unchanged lines hidden ---