target/riscv: calloc() memory per register.
authorTim Newsome <tim@sifive.com>
Tue, 2 Nov 2021 16:55:07 +0000 (09:55 -0700)
committerAntonio Borneo <borneo.antonio@gmail.com>
Fri, 24 Dec 2021 15:10:20 +0000 (15:10 +0000)
commit3ba21e5f007a81b42be194a663cb6f15f150b245
tree8497a8c7d190210325365e6e8c9fc9049fb233c4
parent9828c0a440364fac11eb80fdea5dfaaaee42ab2d
target/riscv: calloc() memory per register.

This replaces a static array with 8 bytes per register. When there are
vector registers larger than 8 bytes, they would end up clobbering each
other's values. I can't believe I didn't catch this earlier.

See https://github.com/riscv/riscv-openocd/pull/658

Change-Id: I9df4eaf05617a2c8df3140fff9fe53f61ab2b261
Signed-off-by: Tim Newsome <tim@sifive.com>
Reviewed-on: https://review.openocd.org/c/openocd/+/6775
Tested-by: jenkins
Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
src/target/riscv/riscv.c
src/target/riscv/riscv.h