On Thu, Oct 28, 2021 at 6:22 PM Frank Chang <[email protected]> wrote: > > On Thu, Oct 28, 2021 at 12:45 PM Alistair Francis > <[email protected]> wrote: >> >> From: Chih-Min Chao <[email protected]> >> >> The sNaN propagation behavior has been changed since >> cd20cee7 in https://github.com/riscv/riscv-isa-manual. >> >> Signed-off-by: Chih-Min Chao <[email protected]> >> Signed-off-by: Frank Chang <[email protected]> >> Acked-by: Alistair Francis <[email protected]> >> Message-id: [email protected] >> Signed-off-by: Alistair Francis <[email protected]> >> --- >> target/riscv/fpu_helper.c | 16 ++++++++++++---- >> 1 file changed, 12 insertions(+), 4 deletions(-) >> >> diff --git a/target/riscv/fpu_helper.c b/target/riscv/fpu_helper.c >> index 8700516a14..d62f470900 100644 >> --- a/target/riscv/fpu_helper.c >> +++ b/target/riscv/fpu_helper.c >> @@ -174,14 +174,18 @@ uint64_t helper_fmin_s(CPURISCVState *env, uint64_t >> rs1, uint64_t rs2) >> { >> float32 frs1 = check_nanbox_s(rs1); >> float32 frs2 = check_nanbox_s(rs2); >> - return nanbox_s(float32_minnum(frs1, frs2, &env->fp_status)); >> + return nanbox_s(env->priv_ver < PRIV_VERSION_1_11_0 ? >> + float32_minnum(frs1, frs2, &env->fp_status) : >> + float32_minimum_number(frs1, frs2, &env->fp_status)); >> } >> >> uint64_t helper_fmax_s(CPURISCVState *env, uint64_t rs1, uint64_t rs2) >> { >> float32 frs1 = check_nanbox_s(rs1); >> float32 frs2 = check_nanbox_s(rs2); >> - return nanbox_s(float32_maxnum(frs1, frs2, &env->fp_status)); >> + return nanbox_s(env->priv_ver < PRIV_VERSION_1_11_0 ? >> + float32_maxnum(frs1, frs2, &env->fp_status) : >> + float32_maximum_number(frs1, frs2, &env->fp_status)); >> } >> >> uint64_t helper_fsqrt_s(CPURISCVState *env, uint64_t rs1) >> @@ -283,12 +287,16 @@ uint64_t helper_fdiv_d(CPURISCVState *env, uint64_t >> frs1, uint64_t frs2) >> >> uint64_t helper_fmin_d(CPURISCVState *env, uint64_t frs1, uint64_t frs2) >> { >> - return float64_minnum(frs1, frs2, &env->fp_status); >> + return env->priv_ver < PRIV_VERSION_1_11_0 ? >> + float64_minnum(frs1, frs2, &env->fp_status) : >> + float64_minimum_number(frs1, frs2, &env->fp_status); >> } >> >> uint64_t helper_fmax_d(CPURISCVState *env, uint64_t frs1, uint64_t frs2) >> { >> - return float64_maxnum(frs1, frs2, &env->fp_status); >> + return env->priv_ver < PRIV_VERSION_1_11_0 ? >> + float64_maxnum(frs1, frs2, &env->fp_status) : >> + float64_maximum_number(frs1, frs2, &env->fp_status); >> } >> >> uint64_t helper_fcvt_s_d(CPURISCVState *env, uint64_t rs1) >> -- >> 2.31.1 >> > > Hi Alistair, > > Did you pull the latest v5 patchset? > https://lists.nongnu.org/archive/html/qemu-riscv/2021-10/msg00557.html
Strange, I don't see it on the patches list. All I see is v4 Alistair > > I added more texts in the commit message to describe why we tie RVF version > with Priv version. > I think it's still okay to pull this one as I don't think there's any > functional changes, IIRC. > > Regards, > Frank Chang
