summaryrefslogtreecommitdiff
path: root/src/sim/process.cc
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2010-06-02 12:58:00 -0500
committerGabe Black <gblack@eecs.umich.edu>2010-06-02 12:58:00 -0500
commit3951afd2fa6140f85a94c9636ac2d9e9d3a1c764 (patch)
treec87b78c2a3e450fb5cbc4529e15446fb97b2571f /src/sim/process.cc
parentebb273bb7b8a871c1c5c07e00593e0194985aa46 (diff)
downloadgem5-3951afd2fa6140f85a94c9636ac2d9e9d3a1c764.tar.xz
ARM: Detect thumb mode elf images.
Diffstat (limited to 'src/sim/process.cc')
-rw-r--r--src/sim/process.cc8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/sim/process.cc b/src/sim/process.cc
index 957c3cc3e..18f33abdc 100644
--- a/src/sim/process.cc
+++ b/src/sim/process.cc
@@ -755,14 +755,18 @@ LiveProcess::create(LiveProcessParams * params)
fatal("Unknown/unsupported operating system.");
}
#elif THE_ISA == ARM_ISA
- if (objFile->getArch() != ObjectFile::Arm)
+ if (objFile->getArch() != ObjectFile::Arm &&
+ objFile->getArch() != ObjectFile::Thumb)
fatal("Object file architecture does not match compiled ISA (ARM).");
switch (objFile->getOpSys()) {
case ObjectFile::UnknownOpSys:
warn("Unknown operating system; assuming Linux.");
// fall through
case ObjectFile::Linux:
- process = new ArmLinuxProcess(params, objFile);
+ if (objFile->getArch() == ObjectFile::Thumb)
+ panic("Thumb processes not yet supported.\n");
+ else
+ process = new ArmLinuxProcess(params, objFile);
break;
case ObjectFile::LinuxArmOABI:
fatal("M5 does not support ARM OABI binaries. Please recompile with an"