diff -r edde97a6ea7c -r 9bb72531ffd5 src/base/loader/elf_object.cc --- a/src/base/loader/elf_object.cc Sun Apr 18 21:33:59 2010 -0700 +++ b/src/base/loader/elf_object.cc Wed Apr 28 19:24:20 2010 +0800 @@ -94,7 +94,11 @@ ehdr.e_ident[EI_CLASS] == ELFCLASS32) { arch = ObjectFile::I386; } else if (ehdr.e_ident[EI_CLASS] == ELFCLASS64) { - arch = ObjectFile::Alpha; + // Dec. 2009, Gou Pengfei + if ( ehdr.e_machine == EM_TRIPS ) { + arch = ObjectFile::Trips; + } else + arch = ObjectFile::Alpha; } else if (ehdr.e_machine == EM_ARM) { arch = ObjectFile::Arm; } else if (ehdr.e_machine == EM_PPC && @@ -110,11 +114,13 @@ fatal("The binary you're trying to load is compiled for 64-bit " "Power. M5\n only supports 32-bit Power. Please " "recompile your binary.\n"); - } else { + } + else { warn("Unknown architecture: %d\n", ehdr.e_machine); arch = ObjectFile::UnknownArch; } + //Detect the operating system switch (ehdr.e_ident[EI_OSABI]) { diff -r edde97a6ea7c -r 9bb72531ffd5 src/base/loader/object_file.hh --- a/src/base/loader/object_file.hh Sun Apr 18 21:33:59 2010 -0700 +++ b/src/base/loader/object_file.hh Wed Apr 28 19:24:20 2010 +0800 @@ -53,7 +53,9 @@ X86_64, I386, Arm, - Power + Power, + // Dec. 2009, Gou Pengfei + Trips }; enum OpSys {