Browse Source

ARM: fix single-step of Thumb unconditional branch

Only type 1 branch instruction has a condition code, not type 2.
Currently they're both tagged with ARM_B which doesn't allow for the
distinction.

Signed-off-by: Nicolas Pitre <nico@marvell.com>
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
tags/v0.3.0-rc0
Nicolas Pitre 14 years ago
committed by David Brownell
parent
commit
76afa936ba
1 changed files with 2 additions and 2 deletions
  1. +2
    -2
      src/target/arm_simulator.c

+ 2
- 2
src/target/arm_simulator.c View File

@@ -317,8 +317,8 @@ int arm_simulate_step_core(target_t *target, uint32_t *dry_run_pc, struct arm_si
return retval;
instruction_size = 2;

/* check condition code (only for branch instructions) */
if (instruction.type == ARM_B &&
/* check condition code (only for branch (1) instructions) */
if ((opcode & 0xf000) == 0xd000 &&
!thumb_pass_branch_condition(sim->get_cpsr(sim, 0, 32), opcode))
{
if (dry_run_pc)


Loading…
Cancel
Save