diff options
author | Gabe Black <gblack@eecs.umich.edu> | 2010-06-02 12:58:00 -0500 |
---|---|---|
committer | Gabe Black <gblack@eecs.umich.edu> | 2010-06-02 12:58:00 -0500 |
commit | 3951afd2fa6140f85a94c9636ac2d9e9d3a1c764 (patch) | |
tree | c87b78c2a3e450fb5cbc4529e15446fb97b2571f /src/sim/process.cc | |
parent | ebb273bb7b8a871c1c5c07e00593e0194985aa46 (diff) | |
download | gem5-3951afd2fa6140f85a94c9636ac2d9e9d3a1c764.tar.xz |
ARM: Detect thumb mode elf images.
Diffstat (limited to 'src/sim/process.cc')
-rw-r--r-- | src/sim/process.cc | 8 |
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" |