def _translate_push_pop(self, tb, instruction, translate_fn): sp_name = "r13" # TODO: Use self._sp sp_size = instruction.operands[0].reg_list[0][0].size # Infer it from the registers list sp_reg = ArmRegisterOperand(sp_name, sp_size) sp_reg.wb = True instruction.operands = [sp_reg, instruction.operands[0]] instruction.ldm_stm_addr_mode = ARM_LDM_STM_FD translate_fn(tb, instruction)
def _translate_push_pop(self, tb, instruction, translate_fn): sp_name = "r13" # TODO: Use self._sp sp_size = instruction.operands[0].reg_list[0][ 0].size # Infer it from the registers list sp_reg = ArmRegisterOperand(sp_name, sp_size) sp_reg.wb = True instruction.operands = [sp_reg, instruction.operands[0]] instruction.ldm_stm_addr_mode = ARM_LDM_STM_FD translate_fn(tb, instruction)
def _translate_push_pop(self, tb, instruction, translate_fn): # PUSH and POP are equivalent to STM and LDM in FD mode with the SP # (and write-back) Instructions are modified to adapt it to the # LDM/STM interface sp_name = "r13" # TODO: Use self._sp sp_size = instruction.operands[0].reg_list[0][0].size # Infer it from the registers list sp_reg = ArmRegisterOperand(sp_name, sp_size) sp_reg.wb = True instruction.operands = [sp_reg, instruction.operands[0]] instruction.ldm_stm_addr_mode = ARM_LDM_STM_FD translate_fn(tb, instruction)
def _translate_push_pop(self, tb, instruction, translate_fn): # PUSH and POP are equivalent to STM and LDM in FD mode with the SP # (and write-back) Instructions are modified to adapt it to the # LDM/STM interface sp_name = "r13" # TODO: Use self._sp sp_size = instruction.operands[0].reg_list[0][ 0].size # Infer it from the registers list sp_reg = ArmRegisterOperand(sp_name, sp_size) sp_reg.wb = True instruction.operands = [sp_reg, instruction.operands[0]] instruction.ldm_stm_addr_mode = ARM_LDM_STM_FD translate_fn(tb, instruction)