Deleted Added
sdiff udiff text old ( 7120:d630089169f3 ) new ( 7128:01b4fff80dda )
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

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

48 return memClassName("STORE_IMM", post, add, writeback,
49 size, sign, user)
50
51 def storeRegClassName(post, add, writeback, \
52 size=4, sign=False, user=False):
53 return memClassName("STORE_REG", post, add, writeback,
54 size, sign, user)
55
56 def emitStore(name, Name, imm, eaCode, accCode, memFlags, instFlags, base):
57 global header_output, decoder_output, exec_output
58
59 (newHeader,
60 newDecoder,
61 newExec) = newLoadStoreBase(name, Name, imm,
62 eaCode, accCode,
63 memFlags, instFlags,

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

111
112 accCode = "Mem%s = Dest;\n" % buildMemSuffix(sign, size)
113 if writeback:
114 accCode += "Base = Base %s;\n" % offset
115 base = buildMemBase("MemoryNewReg", post, writeback)
116
117 emitStore(name, Name, False, eaCode, accCode, [], [], base)
118
119 def buildStores(mnem, size=4, sign=False, user=False):
120 buildImmStore(mnem, True, True, True, size, sign, user)
121 buildRegStore(mnem, True, True, True, size, sign, user)
122 buildImmStore(mnem, True, False, True, size, sign, user)
123 buildRegStore(mnem, True, False, True, size, sign, user)
124 buildImmStore(mnem, False, True, True, size, sign, user)
125 buildRegStore(mnem, False, True, True, size, sign, user)
126 buildImmStore(mnem, False, False, True, size, sign, user)
127 buildRegStore(mnem, False, False, True, size, sign, user)
128 buildImmStore(mnem, False, True, False, size, sign, user)
129 buildRegStore(mnem, False, True, False, size, sign, user)
130 buildImmStore(mnem, False, False, False, size, sign, user)
131 buildRegStore(mnem, False, False, False, size, sign, user)
132
133 buildStores("str")
134 buildStores("strt", user=True)
135 buildStores("strb", size=1)
136 buildStores("strbt", size=1, user=True)
137 buildStores("strh", size=2)
138 buildStores("strht", size=2, user=True)
139}};