mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-07 17:53:56 -06:00
riscv, gdbstub.c: fix reg_width in ricsv_gen_dynamic_vector_feature()
Commit33a24910ae
changed 'reg_width' to use 'vlenb', i.e. vector length in bytes, when in this context we want 'reg_width' as the length in bits. Fix 'reg_width' back to the value in bits like7cb59921c0
("target/riscv/gdbstub.c: use 'vlenb' instead of shifting 'vlen'") set beforehand. While we're at it, rename 'reg_width' to 'bitsize' to provide a bit more clarity about what the variable represents. 'bitsize' is also used in riscv_gen_dynamic_csr_feature() with the same purpose, i.e. as an input to gdb_feature_builder_append_reg(). Cc: Akihiko Odaki <akihiko.odaki@daynix.com> Cc: Alex Bennée <alex.bennee@linaro.org> Reported-by: Robin Dapp <rdapp.gcc@gmail.com> Fixes:33a24910ae
("target/riscv: Use GDBFeature for dynamic XML") Signed-off-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com> Reviewed-by: LIU Zhiwei <zhiwei_liu@linux.alibaba.com> Acked-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Akihiko Odaki <akihiko.odaki@daynix.com> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Cc: qemu-stable <qemu-stable@nongnu.org> Message-ID: <20240517203054.880861-2-dbarboza@ventanamicro.com> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
This commit is contained in:
parent
190b867f28
commit
583edc4efb
1 changed files with 3 additions and 3 deletions
|
@ -288,7 +288,7 @@ static GDBFeature *riscv_gen_dynamic_csr_feature(CPUState *cs, int base_reg)
|
||||||
static GDBFeature *ricsv_gen_dynamic_vector_feature(CPUState *cs, int base_reg)
|
static GDBFeature *ricsv_gen_dynamic_vector_feature(CPUState *cs, int base_reg)
|
||||||
{
|
{
|
||||||
RISCVCPU *cpu = RISCV_CPU(cs);
|
RISCVCPU *cpu = RISCV_CPU(cs);
|
||||||
int reg_width = cpu->cfg.vlenb;
|
int bitsize = cpu->cfg.vlenb << 3;
|
||||||
GDBFeatureBuilder builder;
|
GDBFeatureBuilder builder;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
@ -298,7 +298,7 @@ static GDBFeature *ricsv_gen_dynamic_vector_feature(CPUState *cs, int base_reg)
|
||||||
|
|
||||||
/* First define types and totals in a whole VL */
|
/* First define types and totals in a whole VL */
|
||||||
for (i = 0; i < ARRAY_SIZE(vec_lanes); i++) {
|
for (i = 0; i < ARRAY_SIZE(vec_lanes); i++) {
|
||||||
int count = reg_width / vec_lanes[i].size;
|
int count = bitsize / vec_lanes[i].size;
|
||||||
gdb_feature_builder_append_tag(
|
gdb_feature_builder_append_tag(
|
||||||
&builder, "<vector id=\"%s\" type=\"%s\" count=\"%d\"/>",
|
&builder, "<vector id=\"%s\" type=\"%s\" count=\"%d\"/>",
|
||||||
vec_lanes[i].id, vec_lanes[i].gdb_type, count);
|
vec_lanes[i].id, vec_lanes[i].gdb_type, count);
|
||||||
|
@ -316,7 +316,7 @@ static GDBFeature *ricsv_gen_dynamic_vector_feature(CPUState *cs, int base_reg)
|
||||||
/* Define vector registers */
|
/* Define vector registers */
|
||||||
for (i = 0; i < 32; i++) {
|
for (i = 0; i < 32; i++) {
|
||||||
gdb_feature_builder_append_reg(&builder, g_strdup_printf("v%d", i),
|
gdb_feature_builder_append_reg(&builder, g_strdup_printf("v%d", i),
|
||||||
reg_width, i, "riscv_vector", "vector");
|
bitsize, i, "riscv_vector", "vector");
|
||||||
}
|
}
|
||||||
|
|
||||||
gdb_feature_builder_end(&builder);
|
gdb_feature_builder_end(&builder);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue