In VA32 mode, BL, JIRL and PC* instructions should sign-extend the low
32 bit result to 64 bits.
Signed-off-by: Jiajie Chen <c@jia.je>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Song Gao <gaosong@loongson.cn>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-ID: <
20230822032724.
1353391-7-gaosong@loongson.cn>
Message-Id: <
20230822071959.35620-1-philmd@linaro.org>
static uint64_t make_address_pc(DisasContext *ctx, uint64_t addr)
{
+ if (ctx->va32) {
+ addr = (int32_t)addr;
+ }
return addr;
}