Deleted Added
sdiff udiff text old ( 7119:5ad962dec52f ) 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("LOAD_IMM", post, add, writeback,
49 size, sign, user)
50
51 def loadRegClassName(post, add, writeback, \
52 size=4, sign=False, user=False):
53 return memClassName("LOAD_REG", post, add, writeback,
54 size, sign, user)
55
56 def emitLoad(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 = "Dest = Mem%s;\n" % buildMemSuffix(sign, size)
113 if writeback:
114 accCode += "Base = Base %s;\n" % offset
115 base = buildMemBase("MemoryNewReg", post, writeback)
116
117 emitLoad(name, Name, False, eaCode, accCode, [], [], base)
118
119 def buildLoads(mnem, size=4, sign=False, user=False):
120 buildImmLoad(mnem, True, True, True, size, sign, user)
121 buildRegLoad(mnem, True, True, True, size, sign, user)
122 buildImmLoad(mnem, True, False, True, size, sign, user)
123 buildRegLoad(mnem, True, False, True, size, sign, user)
124 buildImmLoad(mnem, False, True, True, size, sign, user)
125 buildRegLoad(mnem, False, True, True, size, sign, user)
126 buildImmLoad(mnem, False, False, True, size, sign, user)
127 buildRegLoad(mnem, False, False, True, size, sign, user)
128 buildImmLoad(mnem, False, True, False, size, sign, user)
129 buildRegLoad(mnem, False, True, False, size, sign, user)
130 buildImmLoad(mnem, False, False, False, size, sign, user)
131 buildRegLoad(mnem, False, False, False, size, sign, user)
132
133 buildLoads("ldr")
134 buildLoads("ldrt", user=True)
135 buildLoads("ldrb", size=1)
136 buildLoads("ldrbt", size=1, user=True)
137 buildLoads("ldrsb", size=1, sign=True)
138 buildLoads("ldrsbt", size=1, sign=True, user=True)
139 buildLoads("ldrh", size=2)
140 buildLoads("ldrht", size=2, user=True)
141 buildLoads("hdrsh", size=2, sign=True)
142 buildLoads("ldrsht", size=2, sign=True, user=True)
143}};