target/riscv: debug: Restrict the range of tselect value can be written
The value of tselect CSR can be written should be limited within the range of supported triggers number. Signed-off-by: Frank Chang <frank.chang@sifive.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: LIU Zhiwei <zhiwei_liu@linux.alibaba.com> Message-Id: <20220909134215.1843865-5-bmeng.cn@gmail.com> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
This commit is contained in:
parent
9495c4888a
commit
6ea8d3fc40
@ -127,10 +127,6 @@ bool tdata_available(CPURISCVState *env, int tdata_index)
|
||||
return false;
|
||||
}
|
||||
|
||||
if (unlikely(env->trigger_cur >= RV_MAX_TRIGGERS)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return tdata_mapping[trigger_type][tdata_index];
|
||||
}
|
||||
|
||||
@ -141,8 +137,9 @@ target_ulong tselect_csr_read(CPURISCVState *env)
|
||||
|
||||
void tselect_csr_write(CPURISCVState *env, target_ulong val)
|
||||
{
|
||||
/* all target_ulong bits of tselect are implemented */
|
||||
env->trigger_cur = val;
|
||||
if (val < RV_MAX_TRIGGERS) {
|
||||
env->trigger_cur = val;
|
||||
}
|
||||
}
|
||||
|
||||
static target_ulong tdata1_validate(CPURISCVState *env, target_ulong val,
|
||||
|
Loading…
Reference in New Issue
Block a user