mem.isa (7313:b0262368daa0) | mem.isa (7422:feddb9077def) |
---|---|
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 | 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 |
|
100 def loadStoreBase(name, Name, imm, eaCode, accCode, postAccCode, 101 memFlags, instFlags, double, strex, base = 'Memory', 102 execTemplateBase = ''): 103 codeBlobs = { "ea_code": eaCode, 104 "memacc_code": accCode, | 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, |
105 "postacc_code": postAccCode, 106 "predicate_test": predicateTest } | 111 "postacc_code": postAccCode } 112 codeBlobs["predicate_test"] = pickPredicate(codeBlobs) |
107 return loadStoreBaseWork(name, Name, imm, False, False, False, 108 codeBlobs, memFlags, instFlags, double, 109 strex, base, execTemplateBase) 110 111 def RfeBase(name, Name, eaCode, accCode, memFlags, instFlags): 112 codeBlobs = { "ea_code": eaCode, | 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, |
113 "memacc_code": accCode, 114 "predicate_test": predicateTest } | 119 "memacc_code": accCode } 120 codeBlobs["predicate_test"] = pickPredicate(codeBlobs) |
115 return loadStoreBaseWork(name, Name, False, False, True, False, 116 codeBlobs, memFlags, instFlags, False, False, 117 'RfeOp', 'Load') 118 119 def SrsBase(name, Name, eaCode, accCode, memFlags, instFlags): 120 codeBlobs = { "ea_code": eaCode, 121 "memacc_code": accCode, | 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, |
122 "postacc_code": "", 123 "predicate_test": predicateTest } | 128 "postacc_code": "" } 129 codeBlobs["predicate_test"] = pickPredicate(codeBlobs) |
124 return loadStoreBaseWork(name, Name, False, False, False, True, 125 codeBlobs, memFlags, instFlags, False, False, 126 'SrsOp', 'Store') 127 128 def SwapBase(name, Name, eaCode, preAccCode, postAccCode, memFlags, 129 instFlags): 130 codeBlobs = { "ea_code": eaCode, 131 "preacc_code": preAccCode, | 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, |
132 "postacc_code": postAccCode, 133 "predicate_test": predicateTest } | 138 "postacc_code": postAccCode } 139 codeBlobs["predicate_test"] = pickPredicate(codeBlobs) |
134 return loadStoreBaseWork(name, Name, False, True, False, False, 135 codeBlobs, memFlags, instFlags, False, False, 136 'Swap', 'Swap') 137 138 def memClassName(base, post, add, writeback, \ 139 size=4, sign=False, user=False): 140 Name = base 141 --- 59 unchanged lines hidden --- | 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 --- |