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>
This commit is contained in:
Nicolas Pitre 2009-10-27 21:19:43 -04:00 committed by David Brownell
parent 39dd68bca6
commit 76afa936ba
1 changed files with 2 additions and 2 deletions

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)