diff options
Diffstat (limited to 'src/oat/utils/assembler.cc')
| -rw-r--r-- | src/oat/utils/assembler.cc | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/src/oat/utils/assembler.cc b/src/oat/utils/assembler.cc index 249a771d84..92ce0b8001 100644 --- a/src/oat/utils/assembler.cc +++ b/src/oat/utils/assembler.cc @@ -20,6 +20,7 @@ #include <vector> #include "arm/assembler_arm.h" +#include "mips/assembler_mips.h" #include "x86/assembler_x86.h" #include "globals.h" #include "memory_region.h" @@ -101,11 +102,17 @@ void AssemblerBuffer::ExtendCapacity() { Assembler* Assembler::Create(InstructionSet instruction_set) { - if (instruction_set == kX86) { - return new x86::X86Assembler(); - } else { - CHECK(instruction_set == kArm || instruction_set == kThumb2); - return new arm::ArmAssembler(); + switch (instruction_set) { + case kArm: + case kThumb2: + return new arm::ArmAssembler(); + case kMips: + return new mips::MipsAssembler(); + case kX86: + return new x86::X86Assembler(); + default: + LOG(FATAL) << "Unknown InstructionSet: " << instruction_set; + return NULL; } } |