def _setup_arm_arch(self): """Set up ARM architecture. """ arch_mode = arch.ARCH_ARM_MODE_THUMB self.arch_info = ArmArchitectureInformation(arch_mode) self.disassembler = ArmDisassembler(architecture_mode=arch_mode) self.ir_translator = ArmTranslator(architecture_mode=arch_mode)
def _setup_arm_arch(self, arch_mode=None): """Set up ARM architecture. """ if arch_mode is None: arch_mode = arch.ARCH_ARM_MODE_THUMB self.name = "ARM" self.arch_info = ArmArchitectureInformation(arch_mode) self.disassembler = ArmDisassembler(architecture_mode=arch_mode) self.ir_translator = ArmTranslator(architecture_mode=arch_mode) # Load instruction pointer register. if self.arch_info.architecture_mode == arch.ARCH_ARM_MODE_THUMB: self.ip = "r15" self.sp = "r13" self.ws = 2 # TODO Check. elif self.arch_info.architecture_mode == arch.ARCH_ARM_MODE_ARM: self.ip = "r15" self.sp = "r13" self.ws = 4 else: raise Exception("Invalid architecture mode.")