Revision a1d1bb31 target-arm/translate.c

b/target-arm/translate.c
8600 8600
                                                  int search_pc)
8601 8601
{
8602 8602
    DisasContext dc1, *dc = &dc1;
8603
    CPUBreakpoint *bp;
8603 8604
    uint16_t *gen_opc_end;
8604 8605
    int j, lj;
8605 8606
    target_ulong pc_start;
......
8676 8677
        }
8677 8678
#endif
8678 8679

  
8679
        if (env->nb_breakpoints > 0) {
8680
            for(j = 0; j < env->nb_breakpoints; j++) {
8681
                if (env->breakpoints[j] == dc->pc) {
8680
        if (unlikely(env->breakpoints)) {
8681
            for (bp = env->breakpoints; bp != NULL; bp = bp->next) {
8682
                if (bp->pc == dc->pc) {
8682 8683
                    gen_set_condexec(dc);
8683 8684
                    gen_set_pc_im(dc->pc);
8684 8685
                    gen_exception(EXCP_DEBUG);
......
8731 8732
        /* Terminate the TB on memory ops if watchpoints are present.  */
8732 8733
        /* FIXME: This should be replacd by the deterministic execution
8733 8734
         * IRQ raising bits.  */
8734
        if (dc->is_mem && env->nb_watchpoints)
8735
        if (dc->is_mem && env->watchpoints)
8735 8736
            break;
8736 8737

  
8737 8738
        /* Translation stops when a conditional branch is enoutered.

Also available in: Unified diff