summaryrefslogtreecommitdiff
path: root/src/sim
diff options
context:
space:
mode:
Diffstat (limited to 'src/sim')
-rw-r--r--src/sim/process.cc15
-rw-r--r--src/sim/process.hh16
2 files changed, 26 insertions, 5 deletions
diff --git a/src/sim/process.cc b/src/sim/process.cc
index dab374d84..244fb9297 100644
--- a/src/sim/process.cc
+++ b/src/sim/process.cc
@@ -86,6 +86,16 @@ using namespace TheISA;
// current number of allocated processes
int num_processes = 0;
+template<class IntType>
+M5_auxv_t<IntType>::M5_auxv_t(IntType type, IntType val)
+{
+ a_type = TheISA::htog(type);
+ a_val = TheISA::htog(val);
+}
+
+template class M5_auxv_t<uint32_t>;
+template class M5_auxv_t<uint64_t>;
+
Process::Process(ProcessParams * params)
: SimObject(params), system(params->system), checkpointRestored(false),
max_stack_size(params->max_stack_size)
@@ -658,11 +668,6 @@ LiveProcess::create(LiveProcessParams * params)
if (objFile->getArch() != ObjectFile::Alpha)
fatal("Object file architecture does not match compiled ISA (Alpha).");
- if (objFile->hasTLS())
- fatal("Object file has a TLS section and single threaded TLS is not\n"
- " currently supported for Alpha! Please recompile your "
- "executable with \n a non-TLS toolchain.\n");
-
switch (objFile->getOpSys()) {
case ObjectFile::Tru64:
process = new AlphaTru64Process(params, objFile);
diff --git a/src/sim/process.hh b/src/sim/process.hh
index d6ed59ced..996663847 100644
--- a/src/sim/process.hh
+++ b/src/sim/process.hh
@@ -61,6 +61,22 @@ namespace TheISA
class RemoteGDB;
}
+template<class IntType>
+struct M5_auxv_t
+{
+ IntType a_type;
+ union {
+ IntType a_val;
+ IntType a_ptr;
+ IntType a_fcn;
+ };
+
+ M5_auxv_t()
+ {}
+
+ M5_auxv_t(IntType type, IntType val);
+};
+
class Process : public SimObject
{
public: