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 --- 93 unchanged lines hidden (view full) --- 102 else: 103 accCode = ''' 104 Mem%(suffix)s = cSwap(Dest%(suffix)s, ((CPSR)Cpsr).e); 105 ''' % { "suffix" : buildMemSuffix(sign, size) } 106 if writeback: 107 accCode += "Base = Base %s;\n" % offset 108 109 memFlags = ["ArmISA::TLB::MustBeOne", "%d" % (size - 1)] |
110 if user: 111 memFlags.append("ArmISA::TLB::UserMode") 112 |
113 if strex: 114 memFlags.append("Request::LLSC") 115 Name = "%s_%s" % (mnem.upper(), Name) 116 base = buildMemBase("MemoryExImm", post, writeback) 117 postAccCode = "Result = !writeResult;" 118 execTemplateBase = 'StoreEx' 119 else: 120 if vstr: --- 61 unchanged lines hidden (view full) --- 182 eaCode += ";" 183 184 accCode = "Mem%(suffix)s = cSwap(Dest%(suffix)s, ((CPSR)Cpsr).e);" % \ 185 { "suffix" : buildMemSuffix(sign, size) } 186 if writeback: 187 accCode += "Base = Base %s;\n" % offset 188 base = buildMemBase("MemoryReg", post, writeback) 189 |
190 memFlags = ["ArmISA::TLB::MustBeOne", \ |
191 "ArmISA::TLB::AllowUnaligned", \ |
192 "%d" % (size - 1)] 193 if user: 194 memFlags.append("ArmISA::TLB::UserMode") |
195 |
196 emitStore(name, Name, False, eaCode, accCode, "",\ 197 memFlags, [], base) 198 |
199 def buildDoubleImmStore(mnem, post, add, writeback, \ 200 strex=False, vstr=False): 201 name = mnem 202 Name = storeDoubleImmClassName(post, add, writeback) 203 204 if add: 205 op = " +" 206 else: --- 128 unchanged lines hidden --- |