Deleted Added
sdiff udiff text old ( 13028:9a09c342891e ) new ( 13121:4741df518ab8 )
full compact
1/*
2 * Copyright (c) 2010, 2012 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software
9 * licensed hereunder. You may use the software subject to the license
10 * terms below provided that you ensure that this notice is replicated

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

137 tc->setMiscReg(MISCREG_CPACR_EL1, cpacr);
138 // Generically enable floating point support.
139 FPEXC fpexc = tc->readMiscReg(MISCREG_FPEXC);
140 fpexc.en = 1;
141 tc->setMiscReg(MISCREG_FPEXC, fpexc);
142 }
143}
144
145template <class IntType>
146void
147ArmProcess::argsInit(int pageSize, IntRegIndex spIndex)
148{
149 int intSize = sizeof(IntType);
150
151 typedef AuxVector<IntType> auxv_t;
152 std::vector<auxv_t> auxv;

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

161 uint64_t align = 16;
162
163 // Patch the ld_bias for dynamic executables.
164 updateBias();
165
166 // load object file into target memory
167 objFile->loadSections(initVirtMem);
168
169 enum ArmCpuFeature {
170 Arm_Swp = 1 << 0,
171 Arm_Half = 1 << 1,
172 Arm_Thumb = 1 << 2,
173 Arm_26Bit = 1 << 3,
174 Arm_FastMult = 1 << 4,
175 Arm_Fpa = 1 << 5,
176 Arm_Vfp = 1 << 6,
177 Arm_Edsp = 1 << 7,
178 Arm_Java = 1 << 8,
179 Arm_Iwmmxt = 1 << 9,
180 Arm_Crunch = 1 << 10,
181 Arm_ThumbEE = 1 << 11,
182 Arm_Neon = 1 << 12,
183 Arm_Vfpv3 = 1 << 13,
184 Arm_Vfpv3d16 = 1 << 14
185 };
186
187 //Setup the auxilliary vectors. These will already have endian conversion.
188 //Auxilliary vectors are loaded only for elf formatted executables.
189 ElfObject * elfObject = dynamic_cast<ElfObject *>(objFile);
190 if (elfObject) {
191
192 if (objFile->getOpSys() == ObjectFile::Linux) {
193 IntType features =
194 Arm_Swp |
195 Arm_Half |
196 Arm_Thumb |
197// Arm_26Bit |
198 Arm_FastMult |
199// Arm_Fpa |
200 Arm_Vfp |
201 Arm_Edsp |
202// Arm_Java |
203// Arm_Iwmmxt |
204// Arm_Crunch |
205 Arm_ThumbEE |
206 Arm_Neon |
207 Arm_Vfpv3 |
208 Arm_Vfpv3d16 |
209 0;
210
211 //Bits which describe the system hardware capabilities
212 //XXX Figure out what these should be
213 auxv.push_back(auxv_t(M5_AT_HWCAP, features));
214 //Frequency at which times() increments
215 auxv.push_back(auxv_t(M5_AT_CLKTCK, 0x64));
216 //Whether to enable "secure mode" in the executable
217 auxv.push_back(auxv_t(M5_AT_SECURE, 0));

--- 281 unchanged lines hidden ---