Lines Matching refs:ctrl
312 target_ulong ctrl = env->tdata1[trigger_index]; in trigger_priv_match() local
321 if ((ctrl >> 3) & BIT(env->priv)) { in trigger_priv_match()
328 if ((ctrl >> 23) & BIT(env->priv)) { in trigger_priv_match()
333 if ((ctrl >> 3) & BIT(env->priv)) { in trigger_priv_match()
341 if ((ctrl >> 25) & BIT(env->priv)) { in trigger_priv_match()
346 if ((ctrl >> 6) & BIT(env->priv)) { in trigger_priv_match()
420 static uint32_t type2_breakpoint_size(CPURISCVState *env, target_ulong ctrl) in type2_breakpoint_size() argument
425 sizehi = extract32(ctrl, 21, 2); in type2_breakpoint_size()
427 sizelo = extract32(ctrl, 16, 2); in type2_breakpoint_size()
431 static inline bool type2_breakpoint_enabled(target_ulong ctrl) in type2_breakpoint_enabled() argument
433 bool mode = !!(ctrl & (TYPE2_U | TYPE2_S | TYPE2_M)); in type2_breakpoint_enabled()
434 bool rwx = !!(ctrl & (TYPE2_LOAD | TYPE2_STORE | TYPE2_EXEC)); in type2_breakpoint_enabled()
440 target_ulong ctrl) in type2_mcontrol_validate() argument
446 val = tdata1_validate(env, ctrl, TRIGGER_TYPE_AD_MATCH); in type2_mcontrol_validate()
449 warn_always_zero_bit(ctrl, TYPE2_MATCH, "match"); in type2_mcontrol_validate()
450 warn_always_zero_bit(ctrl, TYPE2_CHAIN, "chain"); in type2_mcontrol_validate()
451 warn_always_zero_bit(ctrl, TYPE2_ACTION, "action"); in type2_mcontrol_validate()
452 warn_always_zero_bit(ctrl, TYPE2_TIMING, "timing"); in type2_mcontrol_validate()
453 warn_always_zero_bit(ctrl, TYPE2_SELECT, "select"); in type2_mcontrol_validate()
454 warn_always_zero_bit(ctrl, TYPE2_HIT, "hit"); in type2_mcontrol_validate()
457 size = type2_breakpoint_size(env, ctrl); in type2_mcontrol_validate()
462 val |= (ctrl & TYPE2_SIZELO); in type2_mcontrol_validate()
464 val |= (ctrl & TYPE2_SIZEHI); in type2_mcontrol_validate()
469 val |= (ctrl & (TYPE2_U | TYPE2_S | TYPE2_M | in type2_mcontrol_validate()
477 target_ulong ctrl = env->tdata1[index]; in type2_breakpoint_insert() local
479 bool enabled = type2_breakpoint_enabled(ctrl); in type2_breakpoint_insert()
488 if (ctrl & TYPE2_EXEC) { in type2_breakpoint_insert()
492 if (ctrl & TYPE2_LOAD) { in type2_breakpoint_insert()
495 if (ctrl & TYPE2_STORE) { in type2_breakpoint_insert()
500 size = type2_breakpoint_size(env, ctrl); in type2_breakpoint_insert()
559 static inline bool type6_breakpoint_enabled(target_ulong ctrl) in type6_breakpoint_enabled() argument
561 bool mode = !!(ctrl & (TYPE6_VU | TYPE6_VS | TYPE6_U | TYPE6_S | TYPE6_M)); in type6_breakpoint_enabled()
562 bool rwx = !!(ctrl & (TYPE6_LOAD | TYPE6_STORE | TYPE6_EXEC)); in type6_breakpoint_enabled()
568 target_ulong ctrl) in type6_mcontrol6_validate() argument
574 val = tdata1_validate(env, ctrl, TRIGGER_TYPE_AD_MATCH6); in type6_mcontrol6_validate()
577 warn_always_zero_bit(ctrl, TYPE6_MATCH, "match"); in type6_mcontrol6_validate()
578 warn_always_zero_bit(ctrl, TYPE6_CHAIN, "chain"); in type6_mcontrol6_validate()
579 warn_always_zero_bit(ctrl, TYPE6_ACTION, "action"); in type6_mcontrol6_validate()
580 warn_always_zero_bit(ctrl, TYPE6_TIMING, "timing"); in type6_mcontrol6_validate()
581 warn_always_zero_bit(ctrl, TYPE6_SELECT, "select"); in type6_mcontrol6_validate()
582 warn_always_zero_bit(ctrl, TYPE6_HIT, "hit"); in type6_mcontrol6_validate()
585 size = extract32(ctrl, 16, 4); in type6_mcontrol6_validate()
590 val |= (ctrl & TYPE6_SIZE); in type6_mcontrol6_validate()
594 val |= (ctrl & (TYPE6_VU | TYPE6_VS | TYPE6_U | TYPE6_S | TYPE6_M | in type6_mcontrol6_validate()
602 target_ulong ctrl = env->tdata1[index]; in type6_breakpoint_insert() local
604 bool enabled = type6_breakpoint_enabled(ctrl); in type6_breakpoint_insert()
613 if (ctrl & TYPE6_EXEC) { in type6_breakpoint_insert()
617 if (ctrl & TYPE6_LOAD) { in type6_breakpoint_insert()
621 if (ctrl & TYPE6_STORE) { in type6_breakpoint_insert()
626 size = extract32(ctrl, 16, 4); in type6_breakpoint_insert()
799 target_ulong ctrl) in itrigger_validate() argument
804 val = tdata1_validate(env, ctrl, TRIGGER_TYPE_INST_CNT); in itrigger_validate()
807 warn_always_zero_bit(ctrl, ITRIGGER_ACTION, "action"); in itrigger_validate()
808 warn_always_zero_bit(ctrl, ITRIGGER_HIT, "hit"); in itrigger_validate()
809 warn_always_zero_bit(ctrl, ITRIGGER_PENDING, "pending"); in itrigger_validate()
812 val |= ctrl & (ITRIGGER_VU | ITRIGGER_VS | ITRIGGER_U | ITRIGGER_S | in itrigger_validate()
946 target_ulong ctrl; in riscv_cpu_debug_check_breakpoint() local
961 ctrl = env->tdata1[i]; in riscv_cpu_debug_check_breakpoint()
964 if ((ctrl & TYPE2_EXEC) && (bp->pc == pc)) { in riscv_cpu_debug_check_breakpoint()
970 ctrl = env->tdata1[i]; in riscv_cpu_debug_check_breakpoint()
973 if ((ctrl & TYPE6_EXEC) && (bp->pc == pc)) { in riscv_cpu_debug_check_breakpoint()
992 target_ulong ctrl; in riscv_cpu_debug_check_watchpoint() local
1007 ctrl = env->tdata1[i]; in riscv_cpu_debug_check_watchpoint()
1011 if (ctrl & TYPE2_LOAD) { in riscv_cpu_debug_check_watchpoint()
1014 if (ctrl & TYPE2_STORE) { in riscv_cpu_debug_check_watchpoint()
1023 ctrl = env->tdata1[i]; in riscv_cpu_debug_check_watchpoint()
1027 if (ctrl & TYPE6_LOAD) { in riscv_cpu_debug_check_watchpoint()
1030 if (ctrl & TYPE6_STORE) { in riscv_cpu_debug_check_watchpoint()