diff options
author | Daniel Henrique Barboza <dbarboza@ventanamicro.com> | 2025-07-14 10:37:39 -0300 |
---|---|---|
committer | Alistair Francis <alistair.francis@wdc.com> | 2025-07-30 10:59:26 +1000 |
commit | 16aa7771afeac422dcf7be2833d5426da6b814fa (patch) | |
tree | decb1fd98e9d3c061ccf6150b5066e61c3985d8c /hw/avr/arduino.c | |
parent | e111ffe48b29ca8abd450af9ee5dd71af3f93536 (diff) | |
download | qemu-16aa7771afeac422dcf7be2833d5426da6b814fa.zip qemu-16aa7771afeac422dcf7be2833d5426da6b814fa.tar.gz qemu-16aa7771afeac422dcf7be2833d5426da6b814fa.tar.bz2 |
target/riscv: do not call GETPC() in check_ret_from_m_mode()
GETPC() should always be called from the top level helper, e.g. the
first helper that is called by the translation code. We stopped doing
that in commit 3157a553ec, and then we introduced problems when
unwinding the exceptions being thrown by helper_mret(), as reported by
[1].
Call GETPC() at the top level helper and pass the value along.
[1] https://gitlab.com/qemu-project/qemu/-/issues/3020
Suggested-by: Richard Henderson <richard.henderson@linaro.org>
Fixes: 3157a553ec ("target/riscv: Add Smrnmi mnret instruction")
Closes: https://gitlab.com/qemu-project/qemu/-/issues/3020
Signed-off-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
Reviewed-by: Nutty Liu <liujingqi@lanxincomputing.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-ID: <20250714133739.1248296-1-dbarboza@ventanamicro.com>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
Diffstat (limited to 'hw/avr/arduino.c')
0 files changed, 0 insertions, 0 deletions